diff --git a/Podfile b/Podfile index 9240e60c55..061581fed0 100644 --- a/Podfile +++ b/Podfile @@ -10,11 +10,11 @@ def database_pods end def ui_pods - pod 'MBProgressHUD', '~> 1.1.0' + pod 'MBProgressHUD' end def diff_pods - pod 'DifferenceKit', '~> 1.0' + pod 'DifferenceKit' end def jitsi_pods @@ -46,13 +46,13 @@ def shared_pods database_pods # Network - pod 'Nuke', '~> 7.6' + pod 'Nuke' pod 'Nuke-FLAnimatedImage-Plugin' pod 'Starscream', '~> 3' pod 'ReachabilitySwift' # Authentication SDKs - pod 'OAuthSwift' + pod 'OAuthSwift', '1.2.2' pod '1PasswordExtension' # Debugging @@ -81,7 +81,6 @@ post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| - config.build_settings['SWIFT_VERSION'] = '4.1' config.build_settings['ENABLE_BITCODE'] = 'NO' if config.name == 'Debug' diff --git a/Podfile.lock b/Podfile.lock index c721d8bf3d..d58e9b66ab 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -1,107 +1,122 @@ PODS: - - 1PasswordExtension (1.8.5) - - Crashlytics (3.11.1): - - Fabric (~> 1.8.1) - - DifferenceKit (1.1.3): - - DifferenceKit/Core (= 1.1.3) - - DifferenceKit/UIKitExtension (= 1.1.3) - - DifferenceKit/Core (1.1.3) - - DifferenceKit/UIKitExtension (1.1.3): + - 1PasswordExtension (1.8.6) + - Crashlytics (3.14.0): + - Fabric (~> 1.10.2) + - DifferenceKit (1.1.5): + - DifferenceKit/Core (= 1.1.5) + - DifferenceKit/UIKitExtension (= 1.1.5) + - DifferenceKit/Core (1.1.5) + - DifferenceKit/UIKitExtension (1.1.5): - DifferenceKit/Core - - Fabric (1.8.2) - - Firebase/Core (5.12.0): + - Fabric (1.10.2) + - Firebase/Core (6.22.0): - Firebase/CoreOnly - - FirebaseAnalytics (= 5.3.0) - - Firebase/CoreOnly (5.12.0): - - FirebaseCore (= 5.1.7) - - FirebaseAnalytics (5.3.0): - - FirebaseCore (~> 5.1) - - FirebaseInstanceID (~> 3.3) - - GoogleAppMeasurement (~> 5.3) - - GoogleUtilities/AppDelegateSwizzler (~> 5.2) - - GoogleUtilities/MethodSwizzler (~> 5.2) - - GoogleUtilities/Network (~> 5.2) - - "GoogleUtilities/NSData+zlib (~> 5.2)" - - nanopb (~> 0.3) - - FirebaseCore (5.1.7): - - GoogleUtilities/Logger (~> 5.2) - - FirebaseInstanceID (3.3.0): - - FirebaseCore (~> 5.1) - - GoogleUtilities/Environment (~> 5.3) - - GoogleUtilities/UserDefaults (~> 5.3) + - FirebaseAnalytics (= 6.4.1) + - Firebase/CoreOnly (6.22.0): + - FirebaseCore (= 6.6.6) + - FirebaseAnalytics (6.4.1): + - FirebaseCore (~> 6.6) + - FirebaseInstallations (~> 1.1) + - GoogleAppMeasurement (= 6.4.1) + - GoogleUtilities/AppDelegateSwizzler (~> 6.0) + - GoogleUtilities/MethodSwizzler (~> 6.0) + - GoogleUtilities/Network (~> 6.0) + - "GoogleUtilities/NSData+zlib (~> 6.0)" + - nanopb (= 0.3.9011) + - FirebaseCore (6.6.6): + - FirebaseCoreDiagnostics (~> 1.2) + - FirebaseCoreDiagnosticsInterop (~> 1.2) + - GoogleUtilities/Environment (~> 6.5) + - GoogleUtilities/Logger (~> 6.5) + - FirebaseCoreDiagnostics (1.2.3): + - FirebaseCoreDiagnosticsInterop (~> 1.2) + - GoogleDataTransportCCTSupport (~> 2.0) + - GoogleUtilities/Environment (~> 6.5) + - GoogleUtilities/Logger (~> 6.5) + - nanopb (~> 0.3.901) + - FirebaseCoreDiagnosticsInterop (1.2.0) + - FirebaseInstallations (1.1.1): + - FirebaseCore (~> 6.6) + - GoogleUtilities/UserDefaults (~> 6.5) + - PromisesObjC (~> 1.2) - FLAnimatedImage (1.0.12) - FLEX (2.4.0) - - GoogleAppMeasurement (5.3.0): - - GoogleUtilities/AppDelegateSwizzler (~> 5.2) - - GoogleUtilities/MethodSwizzler (~> 5.2) - - GoogleUtilities/Network (~> 5.2) - - "GoogleUtilities/NSData+zlib (~> 5.2)" - - nanopb (~> 0.3) - - GoogleUtilities/AppDelegateSwizzler (5.3.4): + - GoogleAppMeasurement (6.4.1): + - GoogleUtilities/AppDelegateSwizzler (~> 6.0) + - GoogleUtilities/MethodSwizzler (~> 6.0) + - GoogleUtilities/Network (~> 6.0) + - "GoogleUtilities/NSData+zlib (~> 6.0)" + - nanopb (= 0.3.9011) + - GoogleDataTransport (5.1.1) + - GoogleDataTransportCCTSupport (2.0.2): + - GoogleDataTransport (~> 5.1) + - nanopb (~> 0.3.901) + - GoogleUtilities/AppDelegateSwizzler (6.5.2): - GoogleUtilities/Environment - GoogleUtilities/Logger - GoogleUtilities/Network - - GoogleUtilities/Environment (5.3.4) - - GoogleUtilities/Logger (5.3.4): + - GoogleUtilities/Environment (6.5.2) + - GoogleUtilities/Logger (6.5.2): - GoogleUtilities/Environment - - GoogleUtilities/MethodSwizzler (5.3.4): + - GoogleUtilities/MethodSwizzler (6.5.2): - GoogleUtilities/Logger - - GoogleUtilities/Network (5.3.4): + - GoogleUtilities/Network (6.5.2): - GoogleUtilities/Logger - "GoogleUtilities/NSData+zlib" - GoogleUtilities/Reachability - - "GoogleUtilities/NSData+zlib (5.3.4)" - - GoogleUtilities/Reachability (5.3.4): + - "GoogleUtilities/NSData+zlib (6.5.2)" + - GoogleUtilities/Reachability (6.5.2): - GoogleUtilities/Logger - - GoogleUtilities/UserDefaults (5.3.4): + - GoogleUtilities/UserDefaults (6.5.2): - GoogleUtilities/Logger - - JitsiMeetSDK (2.4.2) - - MBProgressHUD (1.1.0) + - JitsiMeetSDK (2.7.0) + - MBProgressHUD (1.2.0) - MobilePlayer (1.4.0) - - nanopb (0.3.901): - - nanopb/decode (= 0.3.901) - - nanopb/encode (= 0.3.901) - - nanopb/decode (0.3.901) - - nanopb/encode (0.3.901) - - Nuke (7.6.3) - - Nuke-FLAnimatedImage-Plugin (6.0): + - nanopb (0.3.9011): + - nanopb/decode (= 0.3.9011) + - nanopb/encode (= 0.3.9011) + - nanopb/decode (0.3.9011) + - nanopb/encode (0.3.9011) + - Nuke (8.4.1) + - Nuke-FLAnimatedImage-Plugin (6.2): - FLAnimatedImage (~> 1.0) - - Nuke (~> 7.5) + - Nuke (~> 8.0) - OAuthSwift (1.2.2) + - PromisesObjC (1.2.8) - RCMarkdownParser (3.0.7) - - ReachabilitySwift (4.2.1) - - Realm (3.21.0): - - Realm/Headers (= 3.21.0) - - Realm/Headers (3.21.0) - - RealmSwift (3.21.0): - - Realm (= 3.21.0) - - RocketChatViewController (1.0.0): - - RocketChatViewController/Composer (= 1.0.0) - - RocketChatViewController/ViewController (= 1.0.0) - - RocketChatViewController/Composer (1.0.0) - - RocketChatViewController/ViewController (1.0.0): - - DifferenceKit (~> 1.0) + - ReachabilitySwift (5.0.0) + - Realm (4.4.0): + - Realm/Headers (= 4.4.0) + - Realm/Headers (4.4.0) + - RealmSwift (4.4.0): + - Realm (= 4.4.0) + - RocketChatViewController (1.0.1): + - RocketChatViewController/Composer (= 1.0.1) + - RocketChatViewController/ViewController (= 1.0.1) + - RocketChatViewController/Composer (1.0.1) + - RocketChatViewController/ViewController (1.0.1): + - DifferenceKit (~> 1.1) - semver (1.1.0) - SimpleImageViewer (1.2.0): - FLAnimatedImage - - Starscream (3.0.6) - - SwiftLint (0.27.0) - - SwiftyJSON (4.2.0) - - SwipeCellKit (2.6.0) + - Starscream (3.1.1) + - SwiftLint (0.39.2) + - SwiftyJSON (5.0.0) + - SwipeCellKit (2.7.1) DEPENDENCIES: - 1PasswordExtension - Crashlytics - - DifferenceKit (~> 1.0) + - DifferenceKit - Fabric - Firebase/Core - FLEX (~> 2.0) - JitsiMeetSDK - - MBProgressHUD (~> 1.1.0) + - MBProgressHUD - MobilePlayer (from `https://github.com/RocketChat/RCiOSMobilePlayer`) - - Nuke (~> 7.6) + - Nuke - Nuke-FLAnimatedImage-Plugin - - OAuthSwift + - OAuthSwift (= 1.2.2) - RCMarkdownParser (from `https://github.com/RocketChat/RCMarkdownParser.git`) - ReachabilitySwift - RealmSwift @@ -114,7 +129,7 @@ DEPENDENCIES: - SwipeCellKit SPEC REPOS: - https://github.com/cocoapods/specs.git: + https://github.com/CocoaPods/Specs.git: - 1PasswordExtension - Crashlytics - DifferenceKit @@ -122,10 +137,14 @@ SPEC REPOS: - Firebase - FirebaseAnalytics - FirebaseCore - - FirebaseInstanceID + - FirebaseCoreDiagnostics + - FirebaseCoreDiagnosticsInterop + - FirebaseInstallations - FLAnimatedImage - FLEX - GoogleAppMeasurement + - GoogleDataTransport + - GoogleDataTransportCCTSupport - GoogleUtilities - JitsiMeetSDK - MBProgressHUD @@ -133,6 +152,7 @@ SPEC REPOS: - Nuke - Nuke-FLAnimatedImage-Plugin - OAuthSwift + - PromisesObjC - ReachabilitySwift - Realm - RealmSwift @@ -160,44 +180,49 @@ CHECKOUT OPTIONS: :commit: 7c4ec046817df378b694bebdbcfe3565869ce82e :git: https://github.com/RocketChat/RCMarkdownParser.git RocketChatViewController: - :commit: ff8b2f080e05e10286f1d84304f0713375c3f952 + :commit: 20b09477f1e15173c10b99a8b67e78b04102546c :git: https://github.com/RocketChat/RocketChatViewController SimpleImageViewer: :commit: 8222c338de0f285ca0c2d556c5d8dedd4a365b52 :git: https://github.com/cardoso/SimpleImageViewer.git SPEC CHECKSUMS: - 1PasswordExtension: 0e95bdea64ec8ff2f4f693be5467a09fac42a83d - Crashlytics: ca7ab4bc304aa216bdc2e4c1a96389ee77252203 - DifferenceKit: 5018791b6c1fc839921a3c171a0a539ace6ea60c - Fabric: d2b22f443ba195d8a7cc204da230977c72733b40 - Firebase: 9190018e296139d938b99521cde0c15a6e8d2946 - FirebaseAnalytics: 63202d2665de4e6adcbdce189135255d8b5962ba - FirebaseCore: 027d350adc039aa5483357c6f56556f117c5170e - FirebaseInstanceID: e2fa4cb35ef5558c200f7f0ad8a53e212215f93e + 1PasswordExtension: f97cc80ae58053c331b2b6dc8843ba7103b33794 + Crashlytics: 540b7e5f5da5a042647227a5e3ac51d85eed06df + DifferenceKit: 516f12e336ed65a3a0665847b5c3cb5cad4bd4ea + Fabric: 706c8b8098fff96c33c0db69cbf81f9c551d0d74 + Firebase: 32f9520684e87c7af3f0704f7f88042626d6b536 + FirebaseAnalytics: 83f822fd0d33a46f49f89b8c3ab16ab4d89df08a + FirebaseCore: 9aca0f1fffb405176ba15311a5621fcde4106fcf + FirebaseCoreDiagnostics: 13a6564cd6d5375066bbc8940cc1753af24497f3 + FirebaseCoreDiagnosticsInterop: 296e2c5f5314500a850ad0b83e9e7c10b011a850 + FirebaseInstallations: acb3216eb9784d3b1d2d2d635ff74fa892cc0c44 FLAnimatedImage: 4a0b56255d9b05f18b6dd7ee06871be5d3b89e31 FLEX: bd1a39e55b56bb413b6f1b34b3c10a0dc44ef079 - GoogleAppMeasurement: 5029d78f2b438bd30ffb44e6c558b57c21622727 - GoogleUtilities: abb092d2c12e817fa3e0e7b274987dd72fb86ec3 - JitsiMeetSDK: 0111509f659c1d93a1ad09697161136af3122bda - MBProgressHUD: e7baa36a220447d8aeb12769bf0585582f3866d9 + GoogleAppMeasurement: e49be3954045b17d046f271b9cc1ec052bad9702 + GoogleDataTransport: 6ffa4dd0b6d547f8d27b91bd92fa9e197a3f5f1f + GoogleDataTransportCCTSupport: 12f02e5c8f09c055615de90bcd5ba2c375546051 + GoogleUtilities: ad0f3b691c67909d03a3327cc205222ab8f42e0e + JitsiMeetSDK: e09c2864b89fb3ac5f6733f6f85218bccb2c50be + MBProgressHUD: 3ee5efcc380f6a79a7cc9b363dd669c5e1ae7406 MobilePlayer: 6c1df67588b247f80554ba60e67734215ab31a87 - nanopb: 2901f78ea1b7b4015c860c2fdd1ea2fee1a18d48 - Nuke: 44130e95e09463f8773ae4b96b90de1eba6b3350 - Nuke-FLAnimatedImage-Plugin: e4c39d13061a08ac0bdcb0cd7a23882f4a43f4a6 + nanopb: 18003b5e52dab79db540fe93fe9579f399bd1ccd + Nuke: d780e3507a86b86c589ab3cc5cd302d5456f06fb + Nuke-FLAnimatedImage-Plugin: c6e8f6cffd57659953a149ff1682370b9040d09d OAuthSwift: 27b34fe80b76b67cd8f45571e0be2432bc9f6de1 + PromisesObjC: c119f3cd559f50b7ae681fa59dc1acd19173b7e6 RCMarkdownParser: f107c58b83065d001e20c988443e6eab9c0a1e26 - ReachabilitySwift: 35720ffea59c1c76d15f885be77fd33e33985427 - Realm: 38e9dcb19104b58407167d99f70d4995f7c16023 - RealmSwift: 3183cc1ad48378fbcd634311b22c0e6c44021152 - RocketChatViewController: 8c9fa96502913d268bcecf6d15830f1ffd711e7b + ReachabilitySwift: 985039c6f7b23a1da463388634119492ff86c825 + Realm: e125f464884cda953ebefe70c671b75b03b81b9b + RealmSwift: 33656a42bd300959a081fc13347376bc478071af + RocketChatViewController: ab532fa2810a165dc4f8e79a337253c09434cce6 semver: 11ae3bc4a6036efbc86b5863ef5fa32c065c8bbd SimpleImageViewer: 6ed0d2acf7c166a5b4e795bccc7b9ea1b225ff9b - Starscream: ef3ece99d765eeccb67de105bfa143f929026cf5 - SwiftLint: 3207c1faa2240bf8973b191820a116113cd11073 - SwiftyJSON: c4bcba26dd9ec7a027fc8eade48e2c911f229e96 - SwipeCellKit: 935ca28c187ec6e1ffb2b578cf8ddca842bfdcbb + Starscream: 4bb2f9942274833f7b4d296a55504dcfc7edb7b0 + SwiftLint: 22ccbbe3b8008684be5955693bab135e0ed6a447 + SwiftyJSON: 36413e04c44ee145039d332b4f4e2d3e8d6c4db7 + SwipeCellKit: 3972254a826da74609926daf59b08d6c72e619ea -PODFILE CHECKSUM: d269dc70e4ec3c574e7cd282bba50ba0c4f7a868 +PODFILE CHECKSUM: b10caf0bb2791a9d36dbf06be978f728fdcadbf5 -COCOAPODS: 1.5.3 +COCOAPODS: 1.9.0 diff --git a/Pods/1PasswordExtension/LICENSE.txt b/Pods/1PasswordExtension/LICENSE.txt index fbe2df3c89..a2ee23cd0a 100644 --- a/Pods/1PasswordExtension/LICENSE.txt +++ b/Pods/1PasswordExtension/LICENSE.txt @@ -1,4 +1,4 @@ -Copyright (c) 2014 AgileBits Inc. +Copyright (c) 2014-2020 AgileBits Inc. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/Pods/1PasswordExtension/OnePasswordExtension.h b/Pods/1PasswordExtension/OnePasswordExtension.h index 25d63dc838..db7256c030 100644 --- a/Pods/1PasswordExtension/OnePasswordExtension.h +++ b/Pods/1PasswordExtension/OnePasswordExtension.h @@ -1,9 +1,22 @@ +//Copyright (c) 2014-2020 AgileBits Inc. // -// 1Password Extension +//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: // -// Lovingly handcrafted by Dave Teare, Michael Fey, Rad Azzouz, and Roustem Karimov. -// Copyright (c) 2014 AgileBits. All rights reserved. +//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. #import #import @@ -23,36 +36,39 @@ NS_ASSUME_NONNULL_BEGIN #endif // Login Dictionary keys - Used to get or set the properties of a 1Password Login -#define AppExtensionURLStringKey @"url_string" -#define AppExtensionUsernameKey @"username" -#define AppExtensionPasswordKey @"password" -#define AppExtensionTOTPKey @"totp" -#define AppExtensionTitleKey @"login_title" -#define AppExtensionNotesKey @"notes" -#define AppExtensionSectionTitleKey @"section_title" -#define AppExtensionFieldsKey @"fields" -#define AppExtensionReturnedFieldsKey @"returned_fields" -#define AppExtensionOldPasswordKey @"old_password" -#define AppExtensionPasswordGeneratorOptionsKey @"password_generator_options" + +FOUNDATION_EXPORT NSString *const AppExtensionURLStringKey; +FOUNDATION_EXPORT NSString *const AppExtensionUsernameKey; +FOUNDATION_EXPORT NSString *const AppExtensionPasswordKey; +FOUNDATION_EXPORT NSString *const AppExtensionTOTPKey; +FOUNDATION_EXPORT NSString *const AppExtensionTitleKey; +FOUNDATION_EXPORT NSString *const AppExtensionNotesKey; +FOUNDATION_EXPORT NSString *const AppExtensionSectionTitleKey; +FOUNDATION_EXPORT NSString *const AppExtensionFieldsKey; +FOUNDATION_EXPORT NSString *const AppExtensionReturnedFieldsKey; +FOUNDATION_EXPORT NSString *const AppExtensionOldPasswordKey; +FOUNDATION_EXPORT NSString *const AppExtensionPasswordGeneratorOptionsKey; // Password Generator options - Used to set the 1Password Password Generator options when saving a new Login or when changing the password for for an existing Login -#define AppExtensionGeneratedPasswordMinLengthKey @"password_min_length" -#define AppExtensionGeneratedPasswordMaxLengthKey @"password_max_length" -#define AppExtensionGeneratedPasswordRequireDigitsKey @"password_require_digits" -#define AppExtensionGeneratedPasswordRequireSymbolsKey @"password_require_symbols" -#define AppExtensionGeneratedPasswordForbiddenCharactersKey @"password_forbidden_characters" +FOUNDATION_EXPORT NSString *const AppExtensionGeneratedPasswordMinLengthKey; +FOUNDATION_EXPORT NSString *const AppExtensionGeneratedPasswordMaxLengthKey; +FOUNDATION_EXPORT NSString *const AppExtensionGeneratedPasswordRequireDigitsKey; +FOUNDATION_EXPORT NSString *const AppExtensionGeneratedPasswordRequireSymbolsKey; +FOUNDATION_EXPORT NSString *const AppExtensionGeneratedPasswordForbiddenCharactersKey; // Errors codes -#define AppExtensionErrorDomain @"OnePasswordExtension" - -#define AppExtensionErrorCodeCancelledByUser 0 -#define AppExtensionErrorCodeAPINotAvailable 1 -#define AppExtensionErrorCodeFailedToContactExtension 2 -#define AppExtensionErrorCodeFailedToLoadItemProviderData 3 -#define AppExtensionErrorCodeCollectFieldsScriptFailed 4 -#define AppExtensionErrorCodeFillFieldsScriptFailed 5 -#define AppExtensionErrorCodeUnexpectedData 6 -#define AppExtensionErrorCodeFailedToObtainURLStringFromWebView 7 +FOUNDATION_EXPORT NSString *const AppExtensionErrorDomain; + +FOUNDATION_EXPORT NS_ENUM(NSUInteger, AppExtensionErrorCode) { + AppExtensionErrorCodeCancelledByUser = 0, + AppExtensionErrorCodeAPINotAvailable = 1, + AppExtensionErrorCodeFailedToContactExtension = 2, + AppExtensionErrorCodeFailedToLoadItemProviderData = 3, + AppExtensionErrorCodeCollectFieldsScriptFailed = 4, + AppExtensionErrorCodeFillFieldsScriptFailed = 5, + AppExtensionErrorCodeUnexpectedData = 6, + AppExtensionErrorCodeFailedToObtainURLStringFromWebView = 7 +}; // Note to creators of libraries or frameworks: // If you include this code within your library, then to prevent potential duplicate symbol @@ -152,13 +168,13 @@ typedef void (^OnePasswordExtensionItemCompletionBlock)(NSExtensionItem * __null /*! Called from your web view controller, this method will show all the saved logins for the active page in the provided web - view, and automatically fill the HTML form fields. Supports both WKWebView and UIWebView. + view, and automatically fill the HTML form fields. Supports WKWebView. @discussion 1Password will show all matching Login for the naked domain of the current website. For example if the user has an item in your 1Password vault with "subdomain1.domain.com” as the website and another one with "subdomain2.domain.com”, and the current website is "https://domain.com", 1Password will show both items. However, if no matching login is found for "https://domain.com", the 1Password Extension will display the "New Login" button so that the user can create a new Login for the current website. - @param webView The web view which displays the form to be filled. The active UIWebView Or WKWebView. Must not be nil. + @param webView The web view which displays the form to be filled. The active WKWebView. Must not be nil. @param viewController The view controller from which the 1Password Extension is invoked. Usually `self` @@ -168,7 +184,7 @@ typedef void (^OnePasswordExtensionItemCompletionBlock)(NSExtensionItem * __null @param completion Completion block called on completion with parameters success, and error. The success reply parameter that is YES if the 1Password Extension has been successfully completed or NO otherwise. The error reply parameter that is nil if the 1Password Extension has been successfully completed, or it contains error information about the completion failure. */ -- (void)fillItemIntoWebView:(nonnull id)webView forViewController:(nonnull UIViewController *)viewController sender:(nullable id)sender showOnlyLogins:(BOOL)yesOrNo completion:(nonnull OnePasswordSuccessCompletionBlock)completion; +- (void)fillItemIntoWebView:(nonnull WKWebView *)webView forViewController:(nonnull UIViewController *)viewController sender:(nullable id)sender showOnlyLogins:(BOOL)yesOrNo completion:(nonnull OnePasswordSuccessCompletionBlock)completion; /*! Called in the UIActivityViewController completion block to find out whether or not the user selected the 1Password Extension activity. @@ -182,27 +198,21 @@ typedef void (^OnePasswordExtensionItemCompletionBlock)(NSExtensionItem * __null /*! The returned NSExtensionItem can be used to create your own UIActivityViewController. Use `isOnePasswordExtensionActivityType:` and `fillReturnedItems:intoWebView:completion:` in the activity view controller completion block to process the result. The completion block is guaranteed to be called on the main thread. - @param webView The web view which displays the form to be filled. The active UIWebView Or WKWebView. Must not be nil. + @param webView The web view which displays the form to be filled. The active WKWebView. Must not be nil. @param completion Completion block called on completion with extensionItem and error. The extensionItem reply parameter that is contains all the info required by the 1Password extension if has been successfully completed or nil otherwise. The error reply parameter that is nil if the 1Password extension item has been successfully created, or it contains error information about the completion failure. */ -- (void)createExtensionItemForWebView:(nonnull id)webView completion:(nonnull OnePasswordExtensionItemCompletionBlock)completion; +- (void)createExtensionItemForWebView:(nonnull WKWebView *)webView completion:(nonnull OnePasswordExtensionItemCompletionBlock)completion; /*! Method used in the UIActivityViewController completion block to fill information into a web view. @param returnedItems Array which contains the selected activity in the share sheet. Empty array if the share sheet is cancelled by the user. - @param webView The web view which displays the form to be filled. The active UIWebView Or WKWebView. Must not be nil. + @param webView The web view which displays the form to be filled. The active WKWebView. Must not be nil. @param completion Completion block called on completion with parameters success, and error. The success reply parameter that is YES if the 1Password Extension has been successfully completed or NO otherwise. The error reply parameter that is nil if the 1Password Extension has been successfully completed, or it contains error information about the completion failure. */ -- (void)fillReturnedItems:(nullable NSArray *)returnedItems intoWebView:(nonnull id)webView completion:(nonnull OnePasswordSuccessCompletionBlock)completion; - -/*! - Deprecated in version 1.5 - @see Use fillItemIntoWebView:forViewController:sender:showOnlyLogins:completion: instead - */ -- (void)fillLoginIntoWebView:(nonnull id)webView forViewController:(nonnull UIViewController *)viewController sender:(nullable id)sender completion:(nonnull OnePasswordSuccessCompletionBlock)completion __attribute__((deprecated("Use fillItemIntoWebView:forViewController:sender:showOnlyLogins:completion: instead. Deprecated in version 1.5"))); +- (void)fillReturnedItems:(nullable NSArray *)returnedItems intoWebView:(nonnull WKWebView *)webView completion:(nonnull OnePasswordSuccessCompletionBlock)completion; @end #if __has_feature(nullability) diff --git a/Pods/1PasswordExtension/OnePasswordExtension.m b/Pods/1PasswordExtension/OnePasswordExtension.m index 133f548428..b19667bc52 100644 --- a/Pods/1PasswordExtension/OnePasswordExtension.m +++ b/Pods/1PasswordExtension/OnePasswordExtension.m @@ -1,12 +1,45 @@ +//Copyright (c) 2014-2020 AgileBits Inc. // -// 1Password Extension +//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: // -// Lovingly handcrafted by Dave Teare, Michael Fey, Rad Azzouz, and Roustem Karimov. -// Copyright (c) 2014 AgileBits. All rights reserved. +//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. #import "OnePasswordExtension.h" +NSString *const AppExtensionURLStringKey = @"url_string"; +NSString *const AppExtensionUsernameKey = @"username"; +NSString *const AppExtensionPasswordKey = @"password"; +NSString *const AppExtensionTOTPKey = @"totp"; +NSString *const AppExtensionTitleKey = @"login_title"; +NSString *const AppExtensionNotesKey = @"notes"; +NSString *const AppExtensionSectionTitleKey = @"section_title"; +NSString *const AppExtensionFieldsKey = @"fields"; +NSString *const AppExtensionReturnedFieldsKey = @"returned_fields"; +NSString *const AppExtensionOldPasswordKey = @"old_password"; +NSString *const AppExtensionPasswordGeneratorOptionsKey = @"password_generator_options"; + +NSString *const AppExtensionGeneratedPasswordMinLengthKey = @"password_min_length"; +NSString *const AppExtensionGeneratedPasswordMaxLengthKey = @"password_max_length"; +NSString *const AppExtensionGeneratedPasswordRequireDigitsKey = @"password_require_digits"; +NSString *const AppExtensionGeneratedPasswordRequireSymbolsKey = @"password_require_symbols"; +NSString *const AppExtensionGeneratedPasswordForbiddenCharactersKey = @"password_forbidden_characters"; + +NSString *const AppExtensionErrorDomain = @"OnePasswordExtension"; + // Version #define VERSION_NUMBER @(185) static NSString *const AppExtensionVersionNumberKey = @"version_number"; @@ -60,7 +93,6 @@ - (void)findLoginForURLString:(nonnull NSString *)URLString forViewController:(n return; } -#ifdef __IPHONE_8_0 NSDictionary *item = @{ AppExtensionVersionNumberKey: VERSION_NUMBER, AppExtensionURLStringKey: URLString }; UIActivityViewController *activityViewController = [self activityViewControllerForItem:item viewController:viewController sender:sender typeIdentifier:kUTTypeAppExtensionFindLoginAction]; @@ -90,7 +122,6 @@ - (void)findLoginForURLString:(nonnull NSString *)URLString forViewController:(n }; [viewController presentViewController:activityViewController animated:YES completion:nil]; -#endif } #pragma mark - New User Registration @@ -108,8 +139,6 @@ - (void)storeLoginForURLString:(nonnull NSString *)URLString loginDetails:(nulla return; } - -#ifdef __IPHONE_8_0 NSMutableDictionary *newLoginAttributesDict = [NSMutableDictionary new]; newLoginAttributesDict[AppExtensionVersionNumberKey] = VERSION_NUMBER; newLoginAttributesDict[AppExtensionURLStringKey] = URLString; @@ -145,7 +174,6 @@ - (void)storeLoginForURLString:(nonnull NSString *)URLString loginDetails:(nulla }; [viewController presentViewController:activityViewController animated:YES completion:nil]; -#endif } #pragma mark - Change Password @@ -163,7 +191,6 @@ - (void)changePasswordForLoginForURLString:(nonnull NSString *)URLString loginDe return; } -#ifdef __IPHONE_8_0 NSMutableDictionary *item = [NSMutableDictionary new]; item[AppExtensionVersionNumberKey] = VERSION_NUMBER; item[AppExtensionURLStringKey] = URLString; @@ -200,34 +227,20 @@ - (void)changePasswordForLoginForURLString:(nonnull NSString *)URLString loginDe }; [viewController presentViewController:activityViewController animated:YES completion:nil]; -#endif } #pragma mark - Web View filling Support -- (void)fillItemIntoWebView:(nonnull id)webView forViewController:(nonnull UIViewController *)viewController sender:(nullable id)sender showOnlyLogins:(BOOL)yesOrNo completion:(nonnull OnePasswordSuccessCompletionBlock)completion { +- (void)fillItemIntoWebView:(nonnull WKWebView *)webView forViewController:(nonnull UIViewController *)viewController sender:(nullable id)sender showOnlyLogins:(BOOL)yesOrNo completion:(nonnull OnePasswordSuccessCompletionBlock)completion { NSAssert(webView != nil, @"webView must not be nil"); NSAssert(viewController != nil, @"viewController must not be nil"); - NSAssert([webView isKindOfClass:[UIWebView class]] || [webView isKindOfClass:[WKWebView class]], @"webView must be an instance of WKWebView or UIWebView."); + NSAssert([webView isKindOfClass:[WKWebView class]], @"webView must be an instance of WKWebView."); -#ifdef __IPHONE_8_0 - if ([webView isKindOfClass:[UIWebView class]]) { - [self fillItemIntoUIWebView:webView webViewController:viewController sender:(id)sender showOnlyLogins:yesOrNo completion:^(BOOL success, NSError *error) { - if (completion) { - completion(success, error); - } - }]; - } - #if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_8_0 || ONE_PASSWORD_EXTENSION_ENABLE_WK_WEB_VIEW - else if ([webView isKindOfClass:[WKWebView class]]) { - [self fillItemIntoWKWebView:webView forViewController:viewController sender:(id)sender showOnlyLogins:yesOrNo completion:^(BOOL success, NSError *error) { - if (completion) { - completion(success, error); - } - }]; - } - #endif -#endif + [self fillItemIntoWKWebView:webView forViewController:viewController sender:(id)sender showOnlyLogins:yesOrNo completion:^(BOOL success, NSError *error) { + if (completion) { + completion(success, error); + } + }]; } #pragma mark - Support for custom UIActivityViewControllers @@ -236,46 +249,33 @@ - (BOOL)isOnePasswordExtensionActivityType:(nullable NSString *)activityType { return [@"com.agilebits.onepassword-ios.extension" isEqualToString:activityType] || [@"com.agilebits.beta.onepassword-ios.extension" isEqualToString:activityType]; } -- (void)createExtensionItemForWebView:(nonnull id)webView completion:(nonnull OnePasswordExtensionItemCompletionBlock)completion { +- (void)createExtensionItemForWebView:(nonnull WKWebView *)webView completion:(nonnull OnePasswordExtensionItemCompletionBlock)completion { NSAssert(webView != nil, @"webView must not be nil"); - NSAssert([webView isKindOfClass:[UIWebView class]] || [webView isKindOfClass:[WKWebView class]], @"webView must be an instance of WKWebView or UIWebView."); + NSAssert([webView isKindOfClass:[WKWebView class]], @"webView must be an instance of WKWebView."); -#ifdef __IPHONE_8_0 - if ([webView isKindOfClass:[UIWebView class]]) { - UIWebView *uiWebView = (UIWebView *)webView; - NSString *collectedPageDetails = [uiWebView stringByEvaluatingJavaScriptFromString:OPWebViewCollectFieldsScript]; - - [self createExtensionItemForURLString:uiWebView.request.URL.absoluteString webPageDetails:collectedPageDetails completion:completion]; - } - #if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_8_0 || ONE_PASSWORD_EXTENSION_ENABLE_WK_WEB_VIEW - else if ([webView isKindOfClass:[WKWebView class]]) { - WKWebView *wkWebView = (WKWebView *)webView; - [wkWebView evaluateJavaScript:OPWebViewCollectFieldsScript completionHandler:^(NSString *result, NSError *evaluateError) { - if (result == nil) { - NSLog(@"1Password Extension failed to collect web page fields: %@", evaluateError); - NSError *failedToCollectFieldsError = [OnePasswordExtension failedToCollectFieldsErrorWithUnderlyingError:evaluateError]; - if (completion) { - if ([NSThread isMainThread]) { + [webView evaluateJavaScript:OPWebViewCollectFieldsScript completionHandler:^(NSString *result, NSError *evaluateError) { + if (result == nil) { + NSLog(@"1Password Extension failed to collect web page fields: %@", evaluateError); + NSError *failedToCollectFieldsError = [OnePasswordExtension failedToCollectFieldsErrorWithUnderlyingError:evaluateError]; + if (completion) { + if ([NSThread isMainThread]) { + completion(nil, failedToCollectFieldsError); + } + else { + dispatch_async(dispatch_get_main_queue(), ^{ completion(nil, failedToCollectFieldsError); - } - else { - dispatch_async(dispatch_get_main_queue(), ^{ - completion(nil, failedToCollectFieldsError); - }); - } + }); } - - return; } - [self createExtensionItemForURLString:wkWebView.URL.absoluteString webPageDetails:result completion:completion]; - }]; - } - #endif -#endif + return; + } + + [self createExtensionItemForURLString:webView.URL.absoluteString webPageDetails:result completion:completion]; + }]; } -- (void)fillReturnedItems:(nullable NSArray *)returnedItems intoWebView:(nonnull id)webView completion:(nonnull OnePasswordSuccessCompletionBlock)completion { +- (void)fillReturnedItems:(nullable NSArray *)returnedItems intoWebView:(nonnull WKWebView *)webView completion:(nonnull OnePasswordSuccessCompletionBlock)completion { NSAssert(webView != nil, @"webView must not be nil"); if (returnedItems.count == 0) { @@ -308,14 +308,10 @@ - (void)fillReturnedItems:(nullable NSArray *)returnedItems intoWebView:(nonnull #pragma mark - Private methods - (BOOL)isSystemAppExtensionAPIAvailable { -#ifdef __IPHONE_8_0 return [NSExtensionItem class] != nil; -#else - return NO; -#endif } -- (void)findLoginIn1PasswordWithURLString:(nonnull NSString *)URLString collectedPageDetails:(nullable NSString *)collectedPageDetails forWebViewController:(nonnull UIViewController *)forViewController sender:(nullable id)sender withWebView:(nonnull id)webView showOnlyLogins:(BOOL)yesOrNo completion:(nonnull OnePasswordSuccessCompletionBlock)completion { +- (void)findLoginIn1PasswordWithURLString:(nonnull NSString *)URLString collectedPageDetails:(nullable NSString *)collectedPageDetails forWebViewController:(nonnull UIViewController *)forViewController sender:(nullable id)sender withWebView:(nonnull WKWebView *)webView showOnlyLogins:(BOOL)yesOrNo completion:(nonnull OnePasswordSuccessCompletionBlock)completion { if ([URLString length] == 0) { NSError *URLStringError = [OnePasswordExtension failedToObtainURLStringFromWebViewError]; NSLog(@"Failed to findLoginIn1PasswordWithURLString: %@", URLStringError); @@ -380,7 +376,6 @@ - (void)findLoginIn1PasswordWithURLString:(nonnull NSString *)URLString collecte [forViewController presentViewController:activityViewController animated:YES completion:nil]; } -#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_8_0 || ONE_PASSWORD_EXTENSION_ENABLE_WK_WEB_VIEW - (void)fillItemIntoWKWebView:(nonnull WKWebView *)webView forViewController:(nonnull UIViewController *)viewController sender:(nullable id)sender showOnlyLogins:(BOOL)yesOrNo completion:(nonnull OnePasswordSuccessCompletionBlock)completion { [webView evaluateJavaScript:OPWebViewCollectFieldsScript completionHandler:^(NSString *result, NSError *error) { if (result == nil) { @@ -399,18 +394,8 @@ - (void)fillItemIntoWKWebView:(nonnull WKWebView *)webView forViewController:(no }]; }]; } -#endif -- (void)fillItemIntoUIWebView:(nonnull UIWebView *)webView webViewController:(nonnull UIViewController *)viewController sender:(nullable id)sender showOnlyLogins:(BOOL)yesOrNo completion:(nonnull OnePasswordSuccessCompletionBlock)completion { - NSString *collectedPageDetails = [webView stringByEvaluatingJavaScriptFromString:OPWebViewCollectFieldsScript]; - [self findLoginIn1PasswordWithURLString:webView.request.URL.absoluteString collectedPageDetails:collectedPageDetails forWebViewController:viewController sender:sender withWebView:webView showOnlyLogins:yesOrNo completion:^(BOOL success, NSError *error) { - if (completion) { - completion(success, error); - } - }]; -} - -- (void)executeFillScript:(NSString * __nullable)fillScript inWebView:(nonnull id)webView completion:(nonnull OnePasswordSuccessCompletionBlock)completion { +- (void)executeFillScript:(NSString * __nullable)fillScript inWebView:(nonnull WKWebView *)webView completion:(nonnull OnePasswordSuccessCompletionBlock)completion { if (fillScript == nil) { NSLog(@"Failed to executeFillScript, fillScript is missing"); @@ -424,43 +409,21 @@ - (void)executeFillScript:(NSString * __nullable)fillScript inWebView:(nonnull i NSMutableString *scriptSource = [OPWebViewFillScript mutableCopy]; [scriptSource appendFormat:@"(document, %@, undefined);", fillScript]; -#ifdef __IPHONE_8_0 - if ([webView isKindOfClass:[UIWebView class]]) { - NSString *result = [((UIWebView *)webView) stringByEvaluatingJavaScriptFromString:scriptSource]; + [webView evaluateJavaScript:scriptSource completionHandler:^(NSString *result, NSError *evaluationError) { BOOL success = (result != nil); NSError *error = nil; if (!success) { - NSLog(@"Cannot executeFillScript, stringByEvaluatingJavaScriptFromString failed"); - error = [OnePasswordExtension failedToFillFieldsErrorWithLocalizedErrorMessage:NSLocalizedStringFromTable(@"Failed to fill web page because script could not be evaluated", @"OnePasswordExtension", @"1Password Extension Error Message") underlyingError:nil]; + NSLog(@"Cannot executeFillScript, evaluateJavaScript failed: %@", evaluationError); + error = [OnePasswordExtension failedToFillFieldsErrorWithLocalizedErrorMessage:NSLocalizedStringFromTable(@"Failed to fill web page because script could not be evaluated", @"OnePasswordExtension", @"1Password Extension Error Message") underlyingError:error]; } if (completion) { completion(success, error); } - } - - #if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_8_0 || ONE_PASSWORD_EXTENSION_ENABLE_WK_WEB_VIEW - else if ([webView isKindOfClass:[WKWebView class]]) { - [((WKWebView *)webView) evaluateJavaScript:scriptSource completionHandler:^(NSString *result, NSError *evaluationError) { - BOOL success = (result != nil); - NSError *error = nil; - - if (!success) { - NSLog(@"Cannot executeFillScript, evaluateJavaScript failed: %@", evaluationError); - error = [OnePasswordExtension failedToFillFieldsErrorWithLocalizedErrorMessage:NSLocalizedStringFromTable(@"Failed to fill web page because script could not be evaluated", @"OnePasswordExtension", @"1Password Extension Error Message") underlyingError:error]; - } - - if (completion) { - completion(success, error); - } - }]; - } - #endif -#endif + }]; } -#ifdef __IPHONE_8_0 - (void)processExtensionItem:(nullable NSExtensionItem *)extensionItem completion:(nonnull OnePasswordLoginDictionaryCompletionBlock)completion { if (extensionItem.attachments.count == 0) { NSDictionary *userInfo = @{ NSLocalizedDescriptionKey: @"Unexpected data returned by App Extension: extension item had no attachments." }; @@ -503,7 +466,6 @@ - (void)processExtensionItem:(nullable NSExtensionItem *)extensionItem completio } - (UIActivityViewController *)activityViewControllerForItem:(nonnull NSDictionary *)item viewController:(nonnull UIViewController*)viewController sender:(nullable id)sender typeIdentifier:(nonnull NSString *)typeIdentifier { -#ifdef __IPHONE_8_0 NSAssert(NO == (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad && sender == nil), @"sender must not be nil on iPad."); NSItemProvider *itemProvider = [[NSItemProvider alloc] initWithItem:item typeIdentifier:typeIdentifier]; @@ -525,13 +487,8 @@ - (UIActivityViewController *)activityViewControllerForItem:(nonnull NSDictionar } return controller; -#else - return nil; -#endif } -#endif - - (void)createExtensionItemForURLString:(nonnull NSString *)URLString webPageDetails:(nullable NSString *)webPageDetails completion:(nonnull OnePasswordExtensionItemCompletionBlock)completion { NSError *jsonError = nil; NSData *data = [webPageDetails dataUsingEncoding:NSUTF8StringEncoding]; @@ -678,15 +635,4 @@ + (NSError *)failedToObtainURLStringFromWebViewError { \ "; - -#pragma mark - Deprecated methods - -/* - Deprecated in version 1.5 - Use fillItemIntoWebView:forViewController:sender:showOnlyLogins:completion: instead - */ -- (void)fillLoginIntoWebView:(nonnull id)webView forViewController:(nonnull UIViewController *)viewController sender:(nullable id)sender completion:(nonnull OnePasswordSuccessCompletionBlock)completion { - [self fillItemIntoWebView:webView forViewController:viewController sender:sender showOnlyLogins:YES completion:completion]; -} - @end diff --git a/Pods/1PasswordExtension/README.md b/Pods/1PasswordExtension/README.md index 3797dd7426..78ffeada1a 100644 --- a/Pods/1PasswordExtension/README.md +++ b/Pods/1PasswordExtension/README.md @@ -23,8 +23,8 @@ You might be looking at this 23 KB README and think integrating with 1Password i If you're the type that just wants the code, here it is: -* [OnePasswordExtension.h](https://raw.githubusercontent.com/AgileBits/onepassword-app-extension/master/OnePasswordExtension.h?token=110676__eyJzY29wZSI6IlJhd0Jsb2I6QWdpbGVCaXRzL29uZXBhc3N3b3JkLWFwcC1leHRlbnNpb24vbWFzdGVyL09uZVBhc3N3b3JkRXh0ZW5zaW9uLmgiLCJleHBpcmVzIjoxNDA3Mjg0MTMwfQ%3D%3D--3867c64b22a5923bead5948001ce2ff048892799) -* [OnePasswordExtension.m](https://raw.githubusercontent.com/AgileBits/onepassword-app-extension/master/OnePasswordExtension.m?token=110676__eyJzY29wZSI6IlJhd0Jsb2I6QWdpbGVCaXRzL29uZXBhc3N3b3JkLWFwcC1leHRlbnNpb24vbWFzdGVyL09uZVBhc3N3b3JkRXh0ZW5zaW9uLm0iLCJleHBpcmVzIjoxNDA3Mjg0MTA5fQ%3D%3D--05c6ea9c73d0afb9f30e53a31d81df00b7c02077) +* [OnePasswordExtension.h](https://raw.githubusercontent.com/AgileBits/onepassword-app-extension/master/OnePasswordExtension.h) +* [OnePasswordExtension.m](https://raw.githubusercontent.com/AgileBits/onepassword-app-extension/master/OnePasswordExtension.m) Simply include these two files in your project, add a button with a [1Password login image](https://github.com/AgileBits/onepassword-app-extension/tree/master/1Password.xcassets) on it to your view, set the button's action to call the appropriate `OnePasswordExtension` method, and you're all set! @@ -52,7 +52,7 @@ The sample project depends upon having the latest version of Xcode, as well as t If you are developing for OS X, you can enable betas within the 1Password > Preferences > Updates window (as shown [here](i.agilebits.com/Preferences_197C0C6B.png)) and enabling the _Include beta builds_ checkbox. Mac App Store users should [download the web store version](https://agilebits.com/downloads) in order to enable betas. --> -To install 1Password, you will need to download it from the [App Store](http://j.mp/1PasSITE). +To install 1Password, you will need to download it from the [App Store](https://1pw.ca/download/ios). Let us know that you're an app developer and planning to add 1Password support by emailing us to [support+appex@agilebits.com](mailto:support+appex@agilebits.com). @@ -103,7 +103,7 @@ Note that `isAppExtensionAvailable` looks to see if any app is installed that su -For more information about URL schemes in iOS 9, please refer to the [Privacy and Your Apps session](https://developer.apple.com/videos/wwdc/2015/?id=703) from WWDC 2015 at around the the 9th minute mark. +For more information about URL schemes in iOS 9, please refer to the [Privacy and Your Apps session](https://developer.apple.com/videos/play/wwdc2015/703/) from WWDC 2015 at around the the 9th minute mark. Next we need to wire up the action for this button to this method in your UIViewController: @@ -263,7 +263,7 @@ Adding 1Password to your change password screen is very similar to adding 1Passw ### Use Case #4: Web View Filling -The 1Password App Extension is not limited to filling native UIs. With just a little bit of extra effort, users can fill `UIWebView`s and `WKWebView`s within your application as well. +The 1Password App Extension is not limited to filling native UIs. With just a little bit of extra effort, users can fill `WKWebView`s within your application as well. Simply add a button to your UI with its action assigned to this method in your web view's UIViewController: @@ -285,18 +285,6 @@ If you use a web view to login (i.e. OAuth) and you do not want other activities If your app uses `SFSafariViewController`, the 1Password App Extension will show up in the share sheet on devices running iOS 9.2 or later just like it does in Safari. No implementation is required. -## Projects supporting iOS 7.1 and earlier - -If your project's Deployment Target is earlier than iOS 8.0, please make sure that you link the `MobileCoreServices` and the `WebKit` frameworks as follows: - - - -#### WKWebView support for projects with iOS 7.1 or earlier as the Deployment Target - -If the **Deployment Target** is `7.1` or earlier in your project or target and you are using `WKWebViews` (runtime checks for iOS 8 devices), you simply need to add `ONE_PASSWORD_EXTENSION_ENABLE_WK_WEB_VIEW=1` to your `Preprocessor Macros`. - - - ## Best Practices * Use the same `URLString` during Registration and Login. @@ -313,8 +301,8 @@ If the **Deployment Target** is `7.1` or earlier in your project or target and y If you open up OnePasswordExtension.m and start poking around, you'll be interested in these references. -* [Apple Extension Guide](https://developer.apple.com/library/prerelease/ios/documentation/General/Conceptual/ExtensibilityPG/index.html#//apple_ref/doc/uid/TP40014214) -* [NSItemProvider](https://developer.apple.com/library/prerelease/ios/documentation/Foundation/Reference/NSItemProvider_Class/index.html#//apple_ref/doc/uid/TP40014351), [NSExtensionItem](https://developer.apple.com/library/prerelease/ios/documentation/Foundation/Reference/NSExtensionItem_Class/index.html#//apple_ref/doc/uid/TP40014375), and [UIActivityViewController](https://developer.apple.com/library/prerelease/ios/documentation/UIKit/Reference/UIActivityViewController_Class/index.html#//apple_ref/doc/uid/TP40011976) class references. +* [Apple Extension Guide](https://developer.apple.com/library/archive/documentation/General/Conceptual/ExtensibilityPG/index.html#//apple_ref/doc/uid/TP40014214) +* [NSItemProvider](https://developer.apple.com/documentation/foundation/nsitemprovider#//apple_ref/doc/uid/TP40014351), [NSExtensionItem](https://developer.apple.com/documentation/foundation/nsextensionitem#//apple_ref/doc/uid/TP40014375), and [UIActivityViewController](https://developer.apple.com/documentation/uikit/uiactivityviewcontroller#//apple_ref/doc/uid/TP40011976) class references. ## Contact Us @@ -322,5 +310,3 @@ If you open up OnePasswordExtension.m and start poking around, you'll be interes Contact us, please! We'd love to hear from you about how you integrated 1Password within your app, how we can further improve things, and add your app to [apps that integrate with 1Password](https://blog.agilebits.com/1password-apps/). You can reach us at support+appex@agilebits.com, or if you prefer, [@1Password](https://twitter.com/1Password) on Twitter. - -You can also [subscribe to our 1Password App Extension Developers newsletter](https://blog.agilebits.com/1password-extension-developers-newsletter/). We’ll send you an occasional newsletter containing 1Password App Extension news, updates, and tricks, to help you realize the full potential of the 1Password Extension API in your iOS apps. diff --git a/Pods/Crashlytics/README.md b/Pods/Crashlytics/README.md index 2715a06b7c..996af5078b 100644 --- a/Pods/Crashlytics/README.md +++ b/Pods/Crashlytics/README.md @@ -1,39 +1,23 @@ -![Crashlytics Header](https://docs.fabric.io/ios/cocoapod-readmes/cocoapods-crashlytics-header.png) -Part of [Google Fabric](https://get.fabric.io), [Crashlytics](http://try.crashlytics.com/) offers the most powerful, yet lightest weight crash reporting solution for iOS. Crashlytics also provides real-time analytics through [Answers](https://answers.io/) and app distributions to testers using [Beta](http://try.crashlytics.com/beta/). +# Crashlytics -## Setup - -1. Visit [https://fabric.io/sign_up](https://fabric.io/sign_up) to create your Fabric account and to download Fabric.app. - -1. Open Fabric.app, login and select the Crashlytics SDK. - - ![Fabric Plugin](https://docs.fabric.io/ios/cocoapod-readmes/cocoapods-fabric-plugin.png) +## Overview -1. The Fabric app automatically detects when a project uses CocoaPods and gives you the option to install via the Podfile or Xcode. +[Crashlytics](https://firebase.google.com/docs/crashlytics/get-started?platform=ios) offers the most powerful, yet lightest weight crash reporting solution for iOS. - ![Fabric Installation Options](https://docs.fabric.io/ios/cocoapod-readmes/cocoapods-pod-installation-option.png) -1. Select the Podfile option and follow the installation instructions to update your Podfile. **Note:** the Crashlytics Pod includes Answers. If you have Answers included as a separate Pod it should be removed from your Podfile to avoid duplicate symbol errors. - - ``` - pod 'Fabric' - pod 'Crashlytics' - ``` - -1. Run `pod install` +## Setup -1. Add a Run Script Build Phase and build your app. +To start using Crashlytics, there are two options: - ![Fabric Run Script Build Phase](https://docs.fabric.io/ios/cocoapod-readmes/cocoapods-rsbp.png) +1) The recommended way is to go to the [Firebase Crashlytics Docs](https://firebase.google.com/docs/crashlytics/get-started?platform=ios) and follow the directions there. -1. Initialize the SDK by inserting code outlined in the Fabric.app. +2) If you aren't using Firebase yet, go to [Fabric Kits](https://fabric.io/kits), and follow the directions for Crashlytics. -1. Run your app to finish the installation. ## Resources -* [Documentation](https://docs.fabric.io/apple/crashlytics/overview.html) +* [API Reference](https://firebase.google.com/docs/reference/ios/crashlytics/api/reference/Classes) * [Forums](https://stackoverflow.com/questions/tagged/google-fabric) -* [Website](http://try.crashlytics.com/) -* Follow us on Twitter: [@fabric](https://twitter.com/fabric) and [@crashlytics](https://twitter.com/crashlytics) +* [Website](https://firebase.google.com/docs/crashlytics) +* Follow us on Twitter: [@crashlytics](https://twitter.com/crashlytics) diff --git a/Pods/Crashlytics/iOS/Crashlytics.framework/Crashlytics b/Pods/Crashlytics/iOS/Crashlytics.framework/Crashlytics index 79eb5165e0..214fb90513 100755 Binary files a/Pods/Crashlytics/iOS/Crashlytics.framework/Crashlytics and b/Pods/Crashlytics/iOS/Crashlytics.framework/Crashlytics differ diff --git a/Pods/Crashlytics/iOS/Crashlytics.framework/Info.plist b/Pods/Crashlytics/iOS/Crashlytics.framework/Info.plist index bfa283150d..d86059be5c 100644 Binary files a/Pods/Crashlytics/iOS/Crashlytics.framework/Info.plist and b/Pods/Crashlytics/iOS/Crashlytics.framework/Info.plist differ diff --git a/Pods/Crashlytics/iOS/Crashlytics.framework/run b/Pods/Crashlytics/iOS/Crashlytics.framework/run index 9058ea62c0..736cd2ff57 100755 --- a/Pods/Crashlytics/iOS/Crashlytics.framework/run +++ b/Pods/Crashlytics/iOS/Crashlytics.framework/run @@ -3,26 +3,71 @@ # run # # Copyright (c) 2015 Crashlytics. All rights reserved. +# +# +# This script is meant to be run as a Run Script in the "Build Phases" section +# of your Xcode project. It sends debug symbols to symbolicate stacktraces, +# sends build events to track versions, and onboard apps for Crashlytics. +# +# This script calls upload-symbols twice: +# +# 1) First it calls upload-symbols synchronously in "validation" mode. If the +# script finds issues with the build environment, it will report errors to Xcode. +# In validation mode it exits before doing any time consuming work. +# +# 2) Then it calls upload-symbols in the background to actually send the build +# event and upload symbols. It does this in the background so that it doesn't +# slow down your builds. If an error happens here, you won't see it in Xcode. +# +# You can find the output for the background execution in Console.app, by +# searching for "upload-symbols". +# +# If you want verbose output, you can pass the --debug flag to this script +# # Figure out where we're being called from DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) -# Quote path in case of spaces or special chars -DIR="\"${DIR}" +# If the first argument is specified without a dash, treat it as the Fabric API +# Key and add it as an argument +if [ -z "$1" ] || [[ $1 == -* ]]; then + API_KEY_ARG="" +else + API_KEY_ARG="-a $1"; shift +fi + +# If a second argument is specified without a dash, treat it as the Build Secret +# and add it as an argument +if [ -z "$1" ] || [[ $1 == -* ]]; then + BUILD_SECRET_ARG="" +else + BUILD_SECRET_ARG="-bs $1"; shift +fi + +# Build up the arguments list, passing through any flags added after the +# API Key and Build Secret +ARGUMENTS="$API_KEY_ARG $BUILD_SECRET_ARG $@" +VALIDATE_ARGUMENTS="$ARGUMENTS --build-phase --validate" +UPLOAD_ARGUMENTS="$ARGUMENTS --build-phase" -PATH_SEP="/" -VALIDATE_COMMAND="uploadDSYM\" $@ validate run-script" -UPLOAD_COMMAND="uploadDSYM\" $@ run-script" +# Quote the path to handle folders with special characters +COMMAND_PATH="\"$DIR/upload-symbols\" " -# Ensure params are as expected, run in sync mode to validate -eval $DIR$PATH_SEP$VALIDATE_COMMAND +# Ensure params are as expected, run in sync mode to validate, +# and cause a build error if validation fails +eval $COMMAND_PATH$VALIDATE_ARGUMENTS return_code=$? if [[ $return_code != 0 ]]; then exit $return_code fi -# Verification passed, upload dSYM in background to prevent Xcode from waiting -# Note: Validation is performed again before upload. -# Output can still be found in Console.app -eval $DIR$PATH_SEP$UPLOAD_COMMAND > /dev/null 2>&1 & +# Verification passed, convert and upload cSYMs in the background to prevent +# build delays +# +# Note: Validation is performed again at this step before upload +# +# Note: Output can still be found in Console.app, by searching for +# "upload-symbols" +# +eval $COMMAND_PATH$UPLOAD_ARGUMENTS > /dev/null 2>&1 & diff --git a/Pods/Crashlytics/iOS/Crashlytics.framework/upload-symbols b/Pods/Crashlytics/iOS/Crashlytics.framework/upload-symbols new file mode 100755 index 0000000000..5af65deccc Binary files /dev/null and b/Pods/Crashlytics/iOS/Crashlytics.framework/upload-symbols differ diff --git a/Pods/Crashlytics/iOS/Crashlytics.framework/uploadDSYM b/Pods/Crashlytics/iOS/Crashlytics.framework/uploadDSYM deleted file mode 100755 index 8deb7c9c38..0000000000 Binary files a/Pods/Crashlytics/iOS/Crashlytics.framework/uploadDSYM and /dev/null differ diff --git a/Pods/DifferenceKit/README.md b/Pods/DifferenceKit/README.md index 6ddb51e7b7..c0107a3e2f 100644 --- a/Pods/DifferenceKit/README.md +++ b/Pods/DifferenceKit/README.md @@ -16,8 +16,7 @@ The algorithm is optimized based on the Paul Heckel's algorithm. Carthage Swift Package Manager
-Build Status +CI Status Platform Lincense

@@ -182,80 +181,102 @@ The frameworks and its version that compared is below. - [RxDataSources](https://github.com/RxSwiftCommunity/RxDataSources) ([Differentiator](https://github.com/RxSwiftCommunity/RxDataSources/tree/master/Sources/Differentiator)) - 4.0.1 - [FlexibleDiff](https://github.com/RACCommunity/FlexibleDiff) - 0.0.8 - [IGListKit](https://github.com/Instagram/IGListKit) - 3.4.0 -- [DeepDiff](https://github.com/onmyway133/DeepDiff) - 2.0.1 -- [Differ](https://github.com/tonyarnold/Differ) ([Diff.swift](https://github.com/wokalski/Diff.swift)) - 1.4.1 +- [DeepDiff](https://github.com/onmyway133/DeepDiff) - 2.2.0 +- [Differ](https://github.com/tonyarnold/Differ) ([Diff.swift](https://github.com/wokalski/Diff.swift)) - 1.4.3 - [Dwifft](https://github.com/jflinter/Dwifft) - 0.9 +- [Swift.CollectionDifference](https://developer.apple.com/documentation/swift/collectiondifference) - Swift 5.1 ### Performance Comparison Benchmark project is [here](https://github.com/ra1028/DifferenceKit/blob/master/Benchmark). -Performance was mesured by code compiled using `Xcode10.2` and `Swift 5.0` with `-O -whole-module-optimization` and run on `iPhoneXs simulator`. +Performance was mesured by code compiled using `Xcode11.1` and `Swift 5.1` with `-O` optimization and run on `iPhone11 Pro simulator`. Use `Foundation.UUID` as an element of collections. #### - From 5,000 elements to 1,000 deleted, 1,000 inserted and 200 shuffled -| |Time(sec) | -|:------------|------------:| -|DifferenceKit|`0.0021` | -|RxDataSources|`0.0067` | -|IGListKit |`0.0490` | -|FlexibleDiff |`0.0117` | -|DeepDiff |`0.0263` | -|Differ |`1.2661` | -|Dwifft |`0.4552` | +| |Time(sec) | +|:-------------------------|-------------------------:| +|DifferenceKit |`0.0019` | +|RxDataSources |`0.0074` | +|IGListKit |`0.0346` | +|FlexibleDiff |`0.0161` | +|DeepDiff |`0.0373` | +|Differ |`1.0581` | +|Dwifft |`0.4732` | +|Swift.CollectionDifference|`0.0620` | #### - From 100,000 elements to 10,000 deleted, 10,000 inserted and 2,000 shuffled -| |Time(sec) | -|:------------|------------:| -|DifferenceKit|`0.0364` | -|RxDataSources|`0.1167` | -|IGListKit |`1.0130` | -|FlexibleDiff |`0.2104` | -|DeepDiff |`0.4180` | -|Differ |`136.8958` | -|Dwifft |`211.4457` | +| |Time(sec) | +|:-------------------------|-------------------------:| +|DifferenceKit |`0.0348` | +|RxDataSources |`0.1024` | +|IGListKit |`0.7002` | +|FlexibleDiff |`0.2189` | +|DeepDiff |`0.5537` | +|Differ |`153.8007` | +|Dwifft |`187.1341` | +|Swift.CollectionDifference|`5.0281` | ### Features Comparison +#### - Algorithm + +| |Base algorithm|Order| +|:-------------------------|-------------:|----:| +|DifferenceKit |Heckel |O(N) | +|RxDataSources |Heckel |O(N) | +|FlexibleDiff |Heckel |O(N) | +|IGListKit |Heckel |O(N) | +|DeepDiff |Heckel |O(N) | +|Differ |Myers |O(ND)| +|Dwifft |Myers |O(ND)| +|Swift.CollectionDifference|Myers |O(ND)| + +\* [**Heckel algorithm**](https://dl.acm.org/citation.cfm?id=359467) +\* [**Myers algorithm**](http://www.xmailserver.org/diff2.pdf) + #### - Supported Collection -| |Linear|Sectioned|Duplicate element/section| -|:------------|:----:|:-------:|:-----------------------:| -|DifferenceKit|✅ |✅ |✅ | -|RxDataSources|❌ |✅ |❌ | -|FlexibleDiff |✅ |✅ |✅ | -|IGListKit |✅ |❌ |✅ | -|DeepDiff |✅ |❌ |✅ | -|Differ |✅ |✅ |✅ | -|Dwifft |✅ |✅ |✅ | +| |Linear|Sectioned|Duplicate element/section| +|:-------------------------|:----:|:-------:|:-----------------------:| +|DifferenceKit |✅ |✅ |✅ | +|RxDataSources |❌ |✅ |❌ | +|FlexibleDiff |✅ |✅ |✅ | +|IGListKit |✅ |❌ |✅ | +|DeepDiff |✅ |❌ |✅ | +|Differ |✅ |✅ |✅ | +|Dwifft |✅ |✅ |✅ | +|Swift.CollectionDifference|✅ |❌ |✅ | \* **Linear** means 1-dimensional collection \* **Sectioned** means 2-dimensional collection #### - Supported Element Diff -| |Delete|Insert|Move|Reload|Move across sections| -|:------------|:----:|:----:|:--:|:----:|:------------------:| -|DifferenceKit|✅ |✅ |✅ |✅ |✅ | -|RxDataSources|✅ |✅ |✅ |✅ |✅ | -|FlexibleDiff |✅ |✅ |✅ |✅ |❌ | -|IGListKit |✅ |✅ |✅ |✅ |❌ | -|DeepDiff |✅ |✅ |✅ |✅ |❌ | -|Differ |✅ |✅ |✅ |❌ |❌ | -|Dwifft |✅ |✅ |❌ |❌ |❌ | +| |Delete|Insert|Move|Reload|Move across sections| +|:-------------------------|:----:|:----:|:--:|:----:|:------------------:| +|DifferenceKit |✅ |✅ |✅ |✅ |✅ | +|RxDataSources |✅ |✅ |✅ |✅ |✅ | +|FlexibleDiff |✅ |✅ |✅ |✅ |❌ | +|IGListKit |✅ |✅ |✅ |✅ |❌ | +|DeepDiff |✅ |✅ |✅ |✅ |❌ | +|Differ |✅ |✅ |✅ |❌ |❌ | +|Dwifft |✅ |✅ |❌ |❌ |❌ | +|Swift.CollectionDifference|✅ |✅ |✅ |❌ |❌ | #### - Supported Section Diff -| |Delete|Insert|Move|Reload| -|:------------|:----:|:----:|:--:|:----:| -|DifferenceKit|✅ |✅ |✅ |✅ | -|RxDataSources|✅ |✅ |✅ |❌ | -|FlexibleDiff |✅ |✅ |✅ |✅ | -|IGListKit |❌ |❌ |❌ |❌ | -|DeepDiff |❌ |❌ |❌ |❌ | -|Differ |✅ |✅ |✅ |❌ | -|Dwifft |✅ |✅ |❌ |❌ | +| |Delete|Insert|Move|Reload| +|:-------------------------|:----:|:----:|:--:|:----:| +|DifferenceKit |✅ |✅ |✅ |✅ | +|RxDataSources |✅ |✅ |✅ |❌ | +|FlexibleDiff |✅ |✅ |✅ |✅ | +|IGListKit |❌ |❌ |❌ |❌ | +|DeepDiff |❌ |❌ |❌ |❌ | +|Differ |✅ |✅ |✅ |❌ | +|Dwifft |✅ |✅ |❌ |❌ | +|Swift.CollectionDifference|❌ |❌ |❌ |❌ | --- @@ -311,9 +332,15 @@ Add the following to your `Cartfile`: github "ra1028/DifferenceKit" ``` +### [Swift Package Manager for Apple platforms](https://developer.apple.com/documentation/xcode/adding_package_dependencies_to_your_app) + +Select Xcode menu `File > Swift Packages > Add Package Dependency` and enter repository URL with GUI. +``` +Repository: https://github.com/ra1028/DifferenceKit +``` + ### [Swift Package Manager](https://swift.org/package-manager/) -The SwiftPM version does not include the extensions for UI. Add the following to the dependencies of your `Package.swift`: ```swift .package(url: "https://github.com/ra1028/DifferenceKit.git", from: "version") @@ -335,12 +362,12 @@ DifferenceKit was developed with reference to the following excellent materials - [A technique for isolating differences between files](https://dl.acm.org/citation.cfm?id=359467) (by [Paul Heckel](https://dl.acm.org/author_page.cfm?id=81100051772)) - [DifferenceAlgorithmComparison](https://github.com/horita-yuya/DifferenceAlgorithmComparison) (by [@horita-yuya](https://github.com/horita-yuya)) -- [RxDataSources](https://github.com/RxSwiftCommunity/RxDataSources) (by [@kzaher](https://github.com/kzaher), [RxSwift Community](https://github.com/RxSwiftCommunity)) #### OSS using DifferenceKit The list of the awesome OSS which uses this library. They also help to understanding how to use DifferenceKit. - [Carbon](https://github.com/ra1028/Carbon) (by [@ra1028](https://github.com/ra1028)) +- [DiffableDataSources](https://github.com/ra1028/DiffableDataSources) (by [@ra1028](https://github.com/ra1028)) - [Rocket.Chat.iOS](https://github.com/RocketChat/Rocket.Chat.iOS) (by [RocketChat](https://github.com/RocketChat)) - [wire-ios](https://github.com/wireapp/wire-ios) (by [Wire Swiss GmbH](https://github.com/wireapp)) - [ReactiveLists](https://github.com/plangrid/ReactiveLists) (by [PlanGrid](https://github.com/plangrid)) @@ -350,6 +377,7 @@ The list of the awesome OSS which uses this library. They also help to understan #### Other diffing libraries I respect and ️❤️ all libraries involved in diffing. +- [RxDataSources](https://github.com/RxSwiftCommunity/RxDataSources) (by [@kzaher](https://github.com/kzaher), [RxSwift Community](https://github.com/RxSwiftCommunity)) - [IGListKit](https://github.com/Instagram/IGListKit) (by [Instagram](https://github.com/Instagram)) - [FlexibleDiff](https://github.com/RACCommunity/FlexibleDiff) (by [@andersio](https://github.com/andersio), [RACCommunity](https://github.com/RACCommunity)) - [DeepDiff](https://github.com/onmyway133/DeepDiff) (by [@onmyway133](https://github.com/onmyway133)) diff --git a/Pods/DifferenceKit/Sources/Algorithm.swift b/Pods/DifferenceKit/Sources/Algorithm.swift index d57f67b8a0..213add3582 100644 --- a/Pods/DifferenceKit/Sources/Algorithm.swift +++ b/Pods/DifferenceKit/Sources/Algorithm.swift @@ -586,7 +586,7 @@ internal struct DiffResult { @usableFromInline internal let targetReferences: ContiguousArray - @inlinable + @usableFromInline internal init( deleted: [Index] = [], inserted: [Index] = [], @@ -614,8 +614,8 @@ internal struct Trace { @usableFromInline internal var isTracked = false - @inlinable - init() {} + @usableFromInline + internal init() {} } /// The occurrences of element. @@ -633,7 +633,7 @@ internal final class IndicesReference { @usableFromInline internal var position = 0 - @inlinable + @usableFromInline internal init(_ indices: ContiguousArray) { self.indices = indices } @@ -661,7 +661,7 @@ internal struct TableKey: Hashable { @usableFromInline internal let pointer: UnsafePointer - @inlinable + @usableFromInline internal init(pointer: UnsafePointer) { self.pointeeHashValue = pointer.pointee.hashValue self.pointer = pointer diff --git a/Pods/DifferenceKit/Sources/AnyDifferentiable.swift b/Pods/DifferenceKit/Sources/AnyDifferentiable.swift index 2ccc8869c2..e9c7bf3491 100644 --- a/Pods/DifferenceKit/Sources/AnyDifferentiable.swift +++ b/Pods/DifferenceKit/Sources/AnyDifferentiable.swift @@ -42,7 +42,6 @@ public struct AnyDifferentiable: Differentiable { /// /// - Parameters: /// - base: A differentiable value to wrap. - @inlinable public init(_ base: D) { if let anyDifferentiable = base as? AnyDifferentiable { self = anyDifferentiable @@ -94,7 +93,7 @@ internal struct DifferentiableBox: AnyDifferentiableBox { return baseComponent.differenceIdentifier } - @inlinable + @usableFromInline internal init(_ base: Base) { baseComponent = base } diff --git a/Pods/DifferenceKit/Sources/ArraySection.swift b/Pods/DifferenceKit/Sources/ArraySection.swift index 60426661fd..0a7e2ab3b1 100644 --- a/Pods/DifferenceKit/Sources/ArraySection.swift +++ b/Pods/DifferenceKit/Sources/ArraySection.swift @@ -19,7 +19,6 @@ public struct ArraySection: Diff /// - Parameters: /// - model: A differentiable model of section. /// - elements: The collection of element in the section. - @inlinable public init(model: Model, elements: C) where C.Element == Element { self.model = model self.elements = Array(elements) diff --git a/Pods/DifferenceKit/Sources/Changeset.swift b/Pods/DifferenceKit/Sources/Changeset.swift index 16e6561f9f..55b8e9effe 100644 --- a/Pods/DifferenceKit/Sources/Changeset.swift +++ b/Pods/DifferenceKit/Sources/Changeset.swift @@ -38,7 +38,6 @@ public struct Changeset { /// - elementInserted: The paths of inserted elements. /// - elementUpdated: The paths of updated elements. /// - elementMoved: The pairs of source and target path of moved elements. - @inlinable public init( data: Collection, sectionDeleted: [Int] = [], diff --git a/Pods/DifferenceKit/Sources/ContentIdentifiable.swift b/Pods/DifferenceKit/Sources/ContentIdentifiable.swift new file mode 100644 index 0000000000..60daabe043 --- /dev/null +++ b/Pods/DifferenceKit/Sources/ContentIdentifiable.swift @@ -0,0 +1,16 @@ +/// Represents the value that identified for differentiate. +public protocol ContentIdentifiable { + /// A type representing the identifier. + associatedtype DifferenceIdentifier: Hashable + + /// An identifier value for difference calculation. + var differenceIdentifier: DifferenceIdentifier { get } +} + +public extension ContentIdentifiable where Self: Hashable { + /// The `self` value as an identifier for difference calculation. + @inlinable + var differenceIdentifier: Self { + return self + } +} diff --git a/Pods/DifferenceKit/Sources/Differentiable.swift b/Pods/DifferenceKit/Sources/Differentiable.swift index 0610b24021..889561dd76 100644 --- a/Pods/DifferenceKit/Sources/Differentiable.swift +++ b/Pods/DifferenceKit/Sources/Differentiable.swift @@ -1,16 +1,2 @@ -/// Represents the value that identified for differentiate. -public protocol Differentiable: ContentEquatable { - /// A type representing the identifier. - associatedtype DifferenceIdentifier: Hashable - - /// An identifier value for difference calculation. - var differenceIdentifier: DifferenceIdentifier { get } -} - -public extension Differentiable where Self: Hashable { - /// The `self` value as an identifier for difference calculation. - @inlinable - var differenceIdentifier: Self { - return self - } -} +/// Represents a type that can be used for identifying and comparing for equality. +public typealias Differentiable = ContentIdentifiable & ContentEquatable diff --git a/Pods/DifferenceKit/Sources/ElementPath.swift b/Pods/DifferenceKit/Sources/ElementPath.swift index bbcaffa38f..ddf3363357 100644 --- a/Pods/DifferenceKit/Sources/ElementPath.swift +++ b/Pods/DifferenceKit/Sources/ElementPath.swift @@ -12,7 +12,6 @@ public struct ElementPath: Hashable { /// - Parameters: /// - element: The element index (or offset). /// - section: The section index (or offset). - @inlinable public init(element: Int, section: Int) { self.element = element self.section = section diff --git a/Pods/DifferenceKit/Sources/StagedChangeset.swift b/Pods/DifferenceKit/Sources/StagedChangeset.swift index 60db5d4ec9..7c6319c498 100644 --- a/Pods/DifferenceKit/Sources/StagedChangeset.swift +++ b/Pods/DifferenceKit/Sources/StagedChangeset.swift @@ -37,7 +37,6 @@ public struct StagedChangeset { /// /// - Parameters: /// - changesets: The collection of `Changeset`. - @inlinable public init(_ changesets: C) where C.Element == Changeset { self.changesets = ContiguousArray(changesets) } diff --git a/Pods/Fabric/README.md b/Pods/Fabric/README.md index 9eca6105ad..e99ce8344f 100644 --- a/Pods/Fabric/README.md +++ b/Pods/Fabric/README.md @@ -1,38 +1,23 @@ -![Fabric Header](https://docs.fabric.io/ios/cocoapod-readmes/cocoapods-fabric-header.png) # Fabric ## Overview -[Fabric](https://get.fabric.io) provides developers with the tools they need to build the best apps. Developed and maintained by Google and the team that built Crashlytics, Fabric provides an easy way to manage all your SDKs so that you’ll never have to worry about tedious configurations or juggling different accounts. We let you get right into coding and building the next big app. +[Fabric](https://get.fabric.io) provides developers with the tools they need to build the best apps. Developed and maintained by Google and the team that built Crashlytics. -For a full list of SDK provided through Fabric visit [https://fabric.io/kits](https://fabric.io/kits). +For a full list of SDKs provided through Fabric visit [https://fabric.io/kits](https://fabric.io/kits). -## Setup - -The Fabric Pod is a dependency for all Fabric SDKs and is included when installing any Fabric related Pods. General setup instructions are shown below; however, these vary depending on the selected SDK. - -1. Visit [https://fabric.io/sign_up](https://fabric.io/sign_up) to create your Fabric account and to download Fabric.app. - -1. Open Fabric.app, login and select an SDK to install. +To follow the migration to Firebase, check out the [Fabric Roadmap](https://get.fabric.io/roadmap). - ![Fabric Plugin](https://docs.fabric.io/ios/cocoapod-readmes/cocoapods-fabric-plugin.png) -1. The Fabric app automatically detects when a project uses CocoaPods and gives you the option to install via the Podfile or Xcode. - - ![Fabric Installation Options](https://docs.fabric.io/ios/cocoapod-readmes/cocoapods-pod-installation-option.png) - -1. Select the Podfile option and follow the installation instructions to update your Podfile. Note: the example below is for the Crashlytics SDK. The instructions will vary based on the selected SDK. - - ![Fabric Podfile Instructions](https://docs.fabric.io/ios/cocoapod-readmes/cocoapods-podfile-instructions.png) +## Setup -1. Add a Run Script Build Phase and build your app. +Fabric is a dependency for the Crashlytics SDK. To start using Crashlytics, there are two options: - ![Fabric Run Script Build Phase](https://docs.fabric.io/ios/cocoapod-readmes/cocoapods-rsbp.png) +1) The recommended way is to go to the [Firebase Crashlytics Docs](https://firebase.google.com/docs/crashlytics/get-started?platform=ios) and follow the directions there. -1. Initialize the SDK by inserting code outlined in Fabric.app. +2) If you aren't using Firebase yet, go to [Fabric Kits](https://fabric.io/kits), and follow the directions for Crashlytics. -1. Run your app to finish the installation. ## Resources diff --git a/Pods/Fabric/iOS/Fabric.framework/Fabric b/Pods/Fabric/iOS/Fabric.framework/Fabric index 3057fdf419..aa394a3de9 100755 Binary files a/Pods/Fabric/iOS/Fabric.framework/Fabric and b/Pods/Fabric/iOS/Fabric.framework/Fabric differ diff --git a/Pods/Fabric/iOS/Fabric.framework/Info.plist b/Pods/Fabric/iOS/Fabric.framework/Info.plist index 46b5064836..a617b035fa 100644 Binary files a/Pods/Fabric/iOS/Fabric.framework/Info.plist and b/Pods/Fabric/iOS/Fabric.framework/Info.plist differ diff --git a/Pods/Fabric/iOS/Fabric.framework/run b/Pods/Fabric/iOS/Fabric.framework/run index 9058ea62c0..736cd2ff57 100755 --- a/Pods/Fabric/iOS/Fabric.framework/run +++ b/Pods/Fabric/iOS/Fabric.framework/run @@ -3,26 +3,71 @@ # run # # Copyright (c) 2015 Crashlytics. All rights reserved. +# +# +# This script is meant to be run as a Run Script in the "Build Phases" section +# of your Xcode project. It sends debug symbols to symbolicate stacktraces, +# sends build events to track versions, and onboard apps for Crashlytics. +# +# This script calls upload-symbols twice: +# +# 1) First it calls upload-symbols synchronously in "validation" mode. If the +# script finds issues with the build environment, it will report errors to Xcode. +# In validation mode it exits before doing any time consuming work. +# +# 2) Then it calls upload-symbols in the background to actually send the build +# event and upload symbols. It does this in the background so that it doesn't +# slow down your builds. If an error happens here, you won't see it in Xcode. +# +# You can find the output for the background execution in Console.app, by +# searching for "upload-symbols". +# +# If you want verbose output, you can pass the --debug flag to this script +# # Figure out where we're being called from DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) -# Quote path in case of spaces or special chars -DIR="\"${DIR}" +# If the first argument is specified without a dash, treat it as the Fabric API +# Key and add it as an argument +if [ -z "$1" ] || [[ $1 == -* ]]; then + API_KEY_ARG="" +else + API_KEY_ARG="-a $1"; shift +fi + +# If a second argument is specified without a dash, treat it as the Build Secret +# and add it as an argument +if [ -z "$1" ] || [[ $1 == -* ]]; then + BUILD_SECRET_ARG="" +else + BUILD_SECRET_ARG="-bs $1"; shift +fi + +# Build up the arguments list, passing through any flags added after the +# API Key and Build Secret +ARGUMENTS="$API_KEY_ARG $BUILD_SECRET_ARG $@" +VALIDATE_ARGUMENTS="$ARGUMENTS --build-phase --validate" +UPLOAD_ARGUMENTS="$ARGUMENTS --build-phase" -PATH_SEP="/" -VALIDATE_COMMAND="uploadDSYM\" $@ validate run-script" -UPLOAD_COMMAND="uploadDSYM\" $@ run-script" +# Quote the path to handle folders with special characters +COMMAND_PATH="\"$DIR/upload-symbols\" " -# Ensure params are as expected, run in sync mode to validate -eval $DIR$PATH_SEP$VALIDATE_COMMAND +# Ensure params are as expected, run in sync mode to validate, +# and cause a build error if validation fails +eval $COMMAND_PATH$VALIDATE_ARGUMENTS return_code=$? if [[ $return_code != 0 ]]; then exit $return_code fi -# Verification passed, upload dSYM in background to prevent Xcode from waiting -# Note: Validation is performed again before upload. -# Output can still be found in Console.app -eval $DIR$PATH_SEP$UPLOAD_COMMAND > /dev/null 2>&1 & +# Verification passed, convert and upload cSYMs in the background to prevent +# build delays +# +# Note: Validation is performed again at this step before upload +# +# Note: Output can still be found in Console.app, by searching for +# "upload-symbols" +# +eval $COMMAND_PATH$UPLOAD_ARGUMENTS > /dev/null 2>&1 & diff --git a/Pods/Fabric/iOS/Fabric.framework/upload-symbols b/Pods/Fabric/iOS/Fabric.framework/upload-symbols new file mode 100755 index 0000000000..a18d0b68f2 Binary files /dev/null and b/Pods/Fabric/iOS/Fabric.framework/upload-symbols differ diff --git a/Pods/Fabric/iOS/Fabric.framework/uploadDSYM b/Pods/Fabric/iOS/Fabric.framework/uploadDSYM deleted file mode 100755 index 2e823acfc2..0000000000 Binary files a/Pods/Fabric/iOS/Fabric.framework/uploadDSYM and /dev/null differ diff --git a/Pods/Fabric/run b/Pods/Fabric/run index 9058ea62c0..736cd2ff57 100755 --- a/Pods/Fabric/run +++ b/Pods/Fabric/run @@ -3,26 +3,71 @@ # run # # Copyright (c) 2015 Crashlytics. All rights reserved. +# +# +# This script is meant to be run as a Run Script in the "Build Phases" section +# of your Xcode project. It sends debug symbols to symbolicate stacktraces, +# sends build events to track versions, and onboard apps for Crashlytics. +# +# This script calls upload-symbols twice: +# +# 1) First it calls upload-symbols synchronously in "validation" mode. If the +# script finds issues with the build environment, it will report errors to Xcode. +# In validation mode it exits before doing any time consuming work. +# +# 2) Then it calls upload-symbols in the background to actually send the build +# event and upload symbols. It does this in the background so that it doesn't +# slow down your builds. If an error happens here, you won't see it in Xcode. +# +# You can find the output for the background execution in Console.app, by +# searching for "upload-symbols". +# +# If you want verbose output, you can pass the --debug flag to this script +# # Figure out where we're being called from DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) -# Quote path in case of spaces or special chars -DIR="\"${DIR}" +# If the first argument is specified without a dash, treat it as the Fabric API +# Key and add it as an argument +if [ -z "$1" ] || [[ $1 == -* ]]; then + API_KEY_ARG="" +else + API_KEY_ARG="-a $1"; shift +fi + +# If a second argument is specified without a dash, treat it as the Build Secret +# and add it as an argument +if [ -z "$1" ] || [[ $1 == -* ]]; then + BUILD_SECRET_ARG="" +else + BUILD_SECRET_ARG="-bs $1"; shift +fi + +# Build up the arguments list, passing through any flags added after the +# API Key and Build Secret +ARGUMENTS="$API_KEY_ARG $BUILD_SECRET_ARG $@" +VALIDATE_ARGUMENTS="$ARGUMENTS --build-phase --validate" +UPLOAD_ARGUMENTS="$ARGUMENTS --build-phase" -PATH_SEP="/" -VALIDATE_COMMAND="uploadDSYM\" $@ validate run-script" -UPLOAD_COMMAND="uploadDSYM\" $@ run-script" +# Quote the path to handle folders with special characters +COMMAND_PATH="\"$DIR/upload-symbols\" " -# Ensure params are as expected, run in sync mode to validate -eval $DIR$PATH_SEP$VALIDATE_COMMAND +# Ensure params are as expected, run in sync mode to validate, +# and cause a build error if validation fails +eval $COMMAND_PATH$VALIDATE_ARGUMENTS return_code=$? if [[ $return_code != 0 ]]; then exit $return_code fi -# Verification passed, upload dSYM in background to prevent Xcode from waiting -# Note: Validation is performed again before upload. -# Output can still be found in Console.app -eval $DIR$PATH_SEP$UPLOAD_COMMAND > /dev/null 2>&1 & +# Verification passed, convert and upload cSYMs in the background to prevent +# build delays +# +# Note: Validation is performed again at this step before upload +# +# Note: Output can still be found in Console.app, by searching for +# "upload-symbols" +# +eval $COMMAND_PATH$UPLOAD_ARGUMENTS > /dev/null 2>&1 & diff --git a/Pods/Fabric/upload-symbols b/Pods/Fabric/upload-symbols index b41105957c..a18d0b68f2 100755 Binary files a/Pods/Fabric/upload-symbols and b/Pods/Fabric/upload-symbols differ diff --git a/Pods/Fabric/uploadDSYM b/Pods/Fabric/uploadDSYM deleted file mode 100755 index 2e823acfc2..0000000000 Binary files a/Pods/Fabric/uploadDSYM and /dev/null differ diff --git a/Pods/Firebase/CoreOnly/Sources/Firebase.h b/Pods/Firebase/CoreOnly/Sources/Firebase.h index 6461547d8e..e5049ca432 100755 --- a/Pods/Firebase/CoreOnly/Sources/Firebase.h +++ b/Pods/Firebase/CoreOnly/Sources/Firebase.h @@ -1,3 +1,17 @@ +// Copyright 2019 Google +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + #import #if !defined(__has_include) @@ -6,20 +20,14 @@ #else #if __has_include() #import - #else - #ifndef FIREBASE_ANALYTICS_SUPPRESS_WARNING - #warning "FirebaseAnalytics.framework is not included in your target. Please add \ -`Firebase/Core` to your Podfile or add FirebaseAnalytics.framework to your project to ensure \ -Firebase services work as intended." - #endif // #ifndef FIREBASE_ANALYTICS_SUPPRESS_WARNING #endif #if __has_include() #import #endif - #if __has_include() - #import + #if __has_include() + #import #endif #if __has_include() @@ -28,6 +36,13 @@ Firebase services work as intended." #if __has_include() #import + #if !__has_include() + #ifndef FIREBASE_ANALYTICS_SUPPRESS_WARNING + #warning "FirebaseAnalytics.framework is not included in your target. Please add \ +`Firebase/Analytics` to your Podfile or add FirebaseAnalytics.framework to your project to ensure \ +Firebase Dynamic Links works as intended." + #endif // #ifndef FIREBASE_ANALYTICS_SUPPRESS_WARNING + #endif #endif #if __has_include() @@ -40,28 +55,62 @@ Firebase services work as intended." #if __has_include() #import + #if !__has_include() + #ifndef FIREBASE_ANALYTICS_SUPPRESS_WARNING + #warning "FirebaseAnalytics.framework is not included in your target. Please add \ +`Firebase/Analytics` to your Podfile or add FirebaseAnalytics.framework to your project to ensure \ +Firebase In App Messaging works as intended." + #endif // #ifndef FIREBASE_ANALYTICS_SUPPRESS_WARNING + #endif #endif #if __has_include() #import #endif - #if __has_include() - #import - #endif - #if __has_include() #import + #if !__has_include() + #ifndef FIREBASE_ANALYTICS_SUPPRESS_WARNING + #warning "FirebaseAnalytics.framework is not included in your target. Please add \ +`Firebase/Analytics` to your Podfile or add FirebaseAnalytics.framework to your project to ensure \ +Firebase Messaging works as intended." + #endif // #ifndef FIREBASE_ANALYTICS_SUPPRESS_WARNING + #endif +#endif + + #if __has_include() + #import #endif #if __has_include() #import #endif + #if __has_include() + #import + #endif + + #if __has_include() + #import + #endif + + #if __has_include() + #import + #endif + + #if __has_include() + #import + #endif + #if __has_include() #import #endif + #if __has_include() + #import + #endif + #if __has_include() #import #endif @@ -74,16 +123,34 @@ Firebase services work as intended." #import #endif + #if __has_include() + #import + #endif + #if __has_include() #import #endif #if __has_include() #import + #if !__has_include() + #ifndef FIREBASE_ANALYTICS_SUPPRESS_WARNING + #warning "FirebaseAnalytics.framework is not included in your target. Please add \ +`Firebase/Analytics` to your Podfile or add FirebaseAnalytics.framework to your project to ensure \ +Firebase Performance works as intended." + #endif // #ifndef FIREBASE_ANALYTICS_SUPPRESS_WARNING + #endif #endif #if __has_include() #import + #if !__has_include() + #ifndef FIREBASE_ANALYTICS_SUPPRESS_WARNING + #warning "FirebaseAnalytics.framework is not included in your target. Please add \ +`Firebase/Analytics` to your Podfile or add FirebaseAnalytics.framework to your project to ensure \ +Firebase Remote Config works as intended." + #endif // #ifndef FIREBASE_ANALYTICS_SUPPRESS_WARNING + #endif #endif #if __has_include() diff --git a/Pods/GoogleUtilities/LICENSE b/Pods/Firebase/LICENSE similarity index 100% rename from Pods/GoogleUtilities/LICENSE rename to Pods/Firebase/LICENSE diff --git a/Pods/Firebase/README.md b/Pods/Firebase/README.md old mode 100755 new mode 100644 index 49aa2ee0c8..23d66e8586 --- a/Pods/Firebase/README.md +++ b/Pods/Firebase/README.md @@ -1,87 +1,270 @@ -# Firebase APIs for iOS +# Firebase iOS Open Source Development + [![Actions Status][gh-core-badge]][gh-actions] + [![Actions Status][gh-dynamiclinks-badge]][gh-actions] + [![Actions Status][gh-datatransport-badge]][gh-actions] + [![Actions Status][gh-storage-badge]][gh-actions] + [![Actions Status][gh-zip-badge]][gh-actions] + [![Travis](https://travis-ci.org/firebase/firebase-ios-sdk.svg?branch=master)](https://travis-ci.org/firebase/firebase-ios-sdk) -Simplify your iOS development, grow your user base, and monetize more -effectively with Firebase services. +This repository contains all Firebase iOS SDK source except FirebaseAnalytics, +FirebasePerformance, and FirebaseML. -Much more information can be found at [https://firebase.google.com](https://firebase.google.com). +The repository also includes GoogleUtilities source. The +[GoogleUtilities](GoogleUtilities/README.md) pod is +a set of utilities used by Firebase and other Google products. -## Install a Firebase SDK using CocoaPods +Firebase is an app development platform with tools to help you build, grow and +monetize your app. More information about Firebase can be found at +[https://firebase.google.com](https://firebase.google.com). -Firebase distributes several iOS specific APIs and SDKs via CocoaPods. -You can install the CocoaPods tool on OS X by running the following command from -the terminal. Detailed information is available in the [Getting Started -guide](https://guides.cocoapods.org/using/getting-started.html#getting-started). +## Installation +See the three subsections for details about three different installation methods. +1. [Standard pod install](README.md#standard-pod-install) +1. [Installing from the GitHub repo](README.md#installing-from-github) +1. [Experimental Carthage](README.md#carthage-ios-only) + +### Standard pod install + +Go to +[https://firebase.google.com/docs/ios/setup](https://firebase.google.com/docs/ios/setup). + +### Installing from GitHub + +For releases starting with 5.0.0, the source for each release is also deployed +to CocoaPods master and available via standard +[CocoaPods Podfile syntax](https://guides.cocoapods.org/syntax/podfile.html#pod). + +These instructions can be used to access the Firebase repo at other branches, +tags, or commits. + +#### Background + +See +[the Podfile Syntax Reference](https://guides.cocoapods.org/syntax/podfile.html#pod) +for instructions and options about overriding pod source locations. + +#### Accessing Firebase Source Snapshots + +All of the official releases are tagged in this repo and available via CocoaPods. To access a local +source snapshot or unreleased branch, use Podfile directives like the following: + +To access FirebaseFirestore via a branch: ``` -$ sudo gem install cocoapods +pod 'FirebaseCore', :git => 'https://github.com/firebase/firebase-ios-sdk.git', :branch => 'master' +pod 'FirebaseFirestore', :git => 'https://github.com/firebase/firebase-ios-sdk.git', :branch => 'master' ``` -## Try out an SDK +To access FirebaseMessaging via a checked out version of the firebase-ios-sdk repo do: + +``` +pod 'FirebaseCore', :path => '/path/to/firebase-ios-sdk' +pod 'FirebaseMessaging', :path => '/path/to/firebase-ios-sdk' +``` + +### Carthage (iOS only) + +Instructions for the experimental Carthage distribution are at +[Carthage](Carthage.md). + +### Rome + +Instructions for installing binary frameworks via +[Rome](https://github.com/CocoaPods/Rome) are at [Rome](Rome.md). + +### Using Firebase from a Framework or a library + +[Using Firebase from a Framework or a library](docs/firebase_in_libraries.md) -You can try any of the SDKs with `pod try`. Run the following command and select -the SDK you are interested in when prompted: +## Development + +To develop Firebase software in this repository, ensure that you have at least +the following software: + + * Xcode 10.1 (or later) + * CocoaPods 1.7.2 (or later) + * [CocoaPods generate](https://github.com/square/cocoapods-generate) + +For the pod that you want to develop: + +`pod gen Firebase{name here}.podspec --local-sources=./ --auto-open --platforms=ios` + +Note: If the CocoaPods cache is out of date, you may need to run +`pod repo update` before the `pod gen` command. + +Note: Set the `--platforms` option to `macos` or `tvos` to develop/test for +those platforms. Since 10.2, Xcode does not properly handle multi-platform +CocoaPods workspaces. + +Firestore has a self contained Xcode project. See +[Firestore/README.md](Firestore/README.md). + +### Development for Catalyst +* `pod gen {name here}.podspec --local-sources=./ --auto-open --platforms=ios` +* Check the Mac box in the App-iOS Build Settings +* Sign the App in the Settings Signing & Capabilities tab +* Click Pods in the Project Manager +* Add Signing to the iOS host app and unit test targets +* Select the Unit-unit scheme +* Run it to build and test + +### Adding a New Firebase Pod + +See [AddNewPod.md](AddNewPod.md). + +### Code Formatting + +To ensure that the code is formatted consistently, run the script +[./scripts/style.sh](https://github.com/firebase/firebase-ios-sdk/blob/master/scripts/style.sh) +before creating a PR. + +Travis will verify that any code changes are done in a style compliant way. Install +`clang-format` and `swiftformat`. +These commands will get the right versions: ``` -$ pod try Firebase +brew upgrade https://raw.githubusercontent.com/Homebrew/homebrew-core/e3496d9/Formula/clang-format.rb +brew upgrade https://raw.githubusercontent.com/Homebrew/homebrew-core/7963c3d/Formula/swiftformat.rb ``` -Note that some SDKs may require credentials. More information is available in -the SDK-specific documentation at [https://firebase.google.com/docs/](https://firebase.google.com/docs/). - -## Add a Firebase SDK to your iOS app - -CocoaPods is used to install and manage dependencies in existing Xcode projects. - -1. Create an Xcode project, and save it to your local machine. -2. Create a file named `Podfile` in your project directory. This file defines - your project's dependencies, and is commonly referred to as a Podspec. -3. Open `Podfile`, and add your dependencies. A simple Podspec is shown here: - - ``` - platform :ios, '8.0' - pod 'Firebase' - ``` - -4. Save the file. - -5. Open a terminal and `cd` to the directory containing the Podfile. - - ``` - $ cd /project/ - ``` - -6. Run the `pod install` command. This will install the SDKs specified in the - Podspec, along with any dependencies they may have. - - ``` - $ pod install - ``` - -7. Open your app's `.xcworkspace` file to launch Xcode. Use this file for all - development on your app. - -8. You can also install other Firebase SDKs by adding the subspecs in the - Podfile. - - ``` - pod 'Firebase/AdMob' - pod 'Firebase/Analytics' - pod 'Firebase/Auth' - pod 'Firebase/Crash' - pod 'Firebase/Database' - pod 'Firebase/DynamicLinks' - pod 'Firebase/Firestore' - pod 'Firebase/Functions' - pod 'Firebase/Invites' - pod 'Firebase/Messaging' - pod 'Firebase/MLCommon' - pod 'Firebase/MLModelInterpreter' - pod 'Firebase/MLVision' - pod 'Firebase/MLVisionBarcodeModel' - pod 'Firebase/MLVisionFaceModel' - pod 'Firebase/MLVisionLabelModel' - pod 'Firebase/MLVisionTextModel' - pod 'Firebase/Performance' - pod 'Firebase/RemoteConfig' - pod 'Firebase/Storage' - ``` +Note: if you already have a newer version of these installed you may need to +`brew switch` to this version. + +To update this section, find the versions of clang-format and swiftformat.rb to +match the versions in the CI failure logs +[here](https://github.com/Homebrew/homebrew-core/tree/master/Formula). + +### Running Unit Tests + +Select a scheme and press Command-u to build a component and run its unit tests. + +#### Viewing Code Coverage + +First, make sure that [xcov](https://github.com/nakiostudio/xcov) is installed with `gem install xcov`. + +After running the `AllUnitTests_iOS` scheme in Xcode, execute +`xcov --workspace Firebase.xcworkspace --scheme AllUnitTests_iOS --output_directory xcov_output` +at Example/ in the terminal. This will aggregate the coverage, and you can run `open xcov_output/index.html` to see the results. + +### Running Sample Apps +In order to run the sample apps and integration tests, you'll need valid +`GoogleService-Info.plist` files for those samples. The Firebase Xcode project contains dummy plist +files without real values, but can be replaced with real plist files. To get your own +`GoogleService-Info.plist` files: + +1. Go to the [Firebase Console](https://console.firebase.google.com/) +2. Create a new Firebase project, if you don't already have one +3. For each sample app you want to test, create a new Firebase app with the sample app's bundle +identifier (e.g. `com.google.Database-Example`) +4. Download the resulting `GoogleService-Info.plist` and replace the appropriate dummy plist file +(e.g. in [Example/Database/App/](Example/Database/App/)); + +Some sample apps like Firebase Messaging ([Example/Messaging/App](Example/Messaging/App)) require +special Apple capabilities, and you will have to change the sample app to use a unique bundle +identifier that you can control in your own Apple Developer account. + +## Specific Component Instructions +See the sections below for any special instructions for those components. + +### Firebase Auth + +If you're doing specific Firebase Auth development, see +[the Auth Sample README](Example/Auth/README.md) for instructions about +building and running the FirebaseAuth pod along with various samples and tests. + +### Firebase Database + +To run the Database Integration tests, make your database authentication rules +[public](https://firebase.google.com/docs/database/security/quickstart). + +### Firebase Storage + +To run the Storage Integration tests, follow the instructions in +[FIRStorageIntegrationTests.m](Example/Storage/Tests/Integration/FIRStorageIntegrationTests.m). + +#### Push Notifications + +Push notifications can only be delivered to specially provisioned App IDs in the developer portal. +In order to actually test receiving push notifications, you will need to: + +1. Change the bundle identifier of the sample app to something you own in your Apple Developer +account, and enable that App ID for push notifications. +2. You'll also need to +[upload your APNs Provider Authentication Key or certificate to the Firebase Console](https://firebase.google.com/docs/cloud-messaging/ios/certs) +at **Project Settings > Cloud Messaging > [Your Firebase App]**. +3. Ensure your iOS device is added to your Apple Developer portal as a test device. + +#### iOS Simulator + +The iOS Simulator cannot register for remote notifications, and will not receive push notifications. +In order to receive push notifications, you'll have to follow the steps above and run the app on a +physical device. + +## Community Supported Efforts + +We've seen an amazing amount of interest and contributions to improve the Firebase SDKs, and we are +very grateful! We'd like to empower as many developers as we can to be able to use Firebase and +participate in the Firebase community. + +### tvOS, macOS, watchOS and Catalyst +Thanks to contributions from the community, many of Firebase SDKs now compile, run unit tests, and work on +tvOS, macOS, watchOS and Catalyst. + +For tvOS, checkout the [Sample](Example/tvOSSample). +For watchOS, currently only Messaging and Storage (and their dependencies) have limited support. Checkout the +[Independent Watch App Sample](Example/watchOSSample). + +Keep in mind that macOS, tvOS, watchOS and Catalyst are not officially supported by Firebase, and this +repository is actively developed primarily for iOS. While we can catch basic unit test issues with +Travis, there may be some changes where the SDK no longer works as expected on macOS, tvOS or watchOS. If you +encounter this, please [file an issue](https://github.com/firebase/firebase-ios-sdk/issues). + +During app setup in the console, you may get to a step that mentions something like "Checking if the app +has communicated with our servers". This relies on Analytics and will not work on macOS/tvOS/watchOS/Catalyst. +**It's safe to ignore the message and continue**, the rest of the SDKs will work as expected. + +To install, add a subset of the following to the Podfile: + +``` +pod 'Firebase/ABTesting' # No watchOS support yet +pod 'Firebase/Auth' # No watchOS support yet +pod 'Firebase/Crashlytics' # No watchOS support yet +pod 'Firebase/Database' # No watchOS support yet +pod 'Firebase/Firestore' # No watchOS support yet +pod 'Firebase/Functions' # No watchOS support yet +pod 'Firebase/Messaging' +pod 'Firebase/RemoteConfig' # No watchOS support yet +pod 'Firebase/Storage' +``` + +#### Additional Catalyst Notes + +* FirebaseAuth and FirebaseMessaging require adding `Keychain Sharing Capability` +to Build Settings. +* FirebaseFirestore requires signing the +[gRPC Resource target](https://github.com/firebase/firebase-ios-sdk/issues/3500#issuecomment-518741681). + +## Roadmap + +See [Roadmap](ROADMAP.md) for more about the Firebase iOS SDK Open Source +plans and directions. + +## Contributing + +See [Contributing](CONTRIBUTING.md) for more information on contributing to the Firebase +iOS SDK. + +## License + +The contents of this repository is licensed under the +[Apache License, version 2.0](http://www.apache.org/licenses/LICENSE-2.0). + +Your use of Firebase is governed by the +[Terms of Service for Firebase Services](https://firebase.google.com/terms/). + +[gh-actions]: https://github.com/firebase/firebase-ios-sdk/actions +[gh-core-badge]: https://github.com/firebase/firebase-ios-sdk/workflows/core/badge.svg +[gh-datatransport-badge]: https://github.com/firebase/firebase-ios-sdk/workflows/datatransport/badge.svg +[gh-dynamiclinks-badge]: https://github.com/firebase/firebase-ios-sdk/workflows/dynamiclinks/badge.svg +[gh-storage-badge]: https://github.com/firebase/firebase-ios-sdk/workflows/storage/badge.svg +[gh-zip-badge]: https://github.com/firebase/firebase-ios-sdk/workflows/zip/badge.svg diff --git a/Pods/FirebaseAnalytics/Frameworks/FIRAnalyticsConnector.framework/FIRAnalyticsConnector b/Pods/FirebaseAnalytics/Frameworks/FIRAnalyticsConnector.framework/FIRAnalyticsConnector index 897b5da29e..00739c911e 100755 Binary files a/Pods/FirebaseAnalytics/Frameworks/FIRAnalyticsConnector.framework/FIRAnalyticsConnector and b/Pods/FirebaseAnalytics/Frameworks/FIRAnalyticsConnector.framework/FIRAnalyticsConnector differ diff --git a/Pods/FirebaseAnalytics/Frameworks/FIRAnalyticsConnector.framework/Modules/module.modulemap b/Pods/FirebaseAnalytics/Frameworks/FIRAnalyticsConnector.framework/Modules/module.modulemap index 73fb1d7a0f..99a4b1dc23 100755 --- a/Pods/FirebaseAnalytics/Frameworks/FIRAnalyticsConnector.framework/Modules/module.modulemap +++ b/Pods/FirebaseAnalytics/Frameworks/FIRAnalyticsConnector.framework/Modules/module.modulemap @@ -1,5 +1,11 @@ framework module FIRAnalyticsConnector { export * - module * { export *} + module * { export * } + link "sqlite3" + link "z" + link framework "CoreData" link framework "Security" - link framework "SystemConfiguration"} + link framework "StoreKit" + link framework "SystemConfiguration" + link framework "UIKit" +} diff --git a/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/FirebaseAnalytics b/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/FirebaseAnalytics index b20d5d25c2..980dd8d547 100755 Binary files a/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/FirebaseAnalytics and b/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/FirebaseAnalytics differ diff --git a/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRAnalytics.h b/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRAnalytics.h index 39d23f18f2..be0b1faee5 100755 --- a/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRAnalytics.h +++ b/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRAnalytics.h @@ -9,6 +9,10 @@ NS_ASSUME_NONNULL_BEGIN /// The top level Firebase Analytics singleton that provides methods for logging events and setting /// user properties. See the developer guides for general /// information on using Firebase Analytics in your apps. +/// +/// @note The Analytics SDK uses SQLite to persist events and other app-specific data. Calling +/// certain thread-unsafe global SQLite methods like `sqlite3_shutdown()` can result in +/// unexpected crashes at runtime. NS_SWIFT_NAME(Analytics) @interface FIRAnalytics : NSObject @@ -107,6 +111,19 @@ NS_SWIFT_NAME(Analytics) + (void)setScreenName:(nullable NSString *)screenName screenClass:(nullable NSString *)screenClassOverride; +/// Sets whether analytics collection is enabled for this app on this device. This setting is +/// persisted across app sessions. By default it is enabled. +/// +/// @param analyticsCollectionEnabled A flag that enables or disables Analytics collection. ++ (void)setAnalyticsCollectionEnabled:(BOOL)analyticsCollectionEnabled; + +/// Sets the interval of inactivity in seconds that terminates the current session. The default +/// value is 1800 seconds (30 minutes). +/// +/// @param sessionTimeoutInterval The custom time of inactivity in seconds before the current +/// session terminates. ++ (void)setSessionTimeoutInterval:(NSTimeInterval)sessionTimeoutInterval; + /// The unique ID for this instance of the application. + (NSString *)appInstanceID; diff --git a/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIREventNames.h b/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIREventNames.h index c70c53e25f..d7719d9a0b 100755 --- a/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIREventNames.h +++ b/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIREventNames.h @@ -12,46 +12,41 @@ #import -/// Add Payment Info event. This event signifies that a user has submitted their payment information -/// to your app. +/// Add Payment Info event. This event signifies that a user has submitted their payment +/// information. Note: If you supply the @c kFIRParameterValue parameter, you must also supply the +/// @c kFIRParameterCurrency parameter so that revenue metrics can be computed accurately. Params: +/// +///
    +///
  • @c kFIRParameterCoupon (NSString) (optional)
  • +///
  • @c kFIRParameterCurrency (NSString) (optional)
  • +///
  • @c kFIRParameterItems (NSArray) (optional)
  • +///
  • @c kFIRParameterPaymentType (NSString) (optional)
  • +///
  • @c kFIRParameterValue (double as NSNumber) (optional)
  • +///
static NSString *const kFIREventAddPaymentInfo NS_SWIFT_NAME(AnalyticsEventAddPaymentInfo) = @"add_payment_info"; -/// E-Commerce Add To Cart event. This event signifies that an item was added to a cart for -/// purchase. Add this event to a funnel with kFIREventEcommercePurchase to gauge the effectiveness -/// of your checkout process. Note: If you supply the @c kFIRParameterValue parameter, you must -/// also supply the @c kFIRParameterCurrency parameter so that revenue metrics can be computed +/// E-Commerce Add To Cart event. This event signifies that an item(s) was added to a cart for +/// purchase. Add this event to a funnel with @c kFIREventPurchase to gauge the effectiveness of +/// your checkout process. Note: If you supply the @c kFIRParameterValue parameter, you must also +/// supply the @c kFIRParameterCurrency parameter so that revenue metrics can be computed /// accurately. Params: /// ///
    -///
  • @c kFIRParameterQuantity (signed 64-bit integer as NSNumber)
  • -///
  • @c kFIRParameterItemID (NSString)
  • -///
  • @c kFIRParameterItemName (NSString)
  • -///
  • @c kFIRParameterItemCategory (NSString)
  • -///
  • @c kFIRParameterItemLocationID (NSString) (optional)
  • -///
  • @c kFIRParameterPrice (double as NSNumber) (optional)
  • ///
  • @c kFIRParameterCurrency (NSString) (optional)
  • +///
  • @c kFIRParameterItems (NSArray) (optional)
  • ///
  • @c kFIRParameterValue (double as NSNumber) (optional)
  • -///
  • @c kFIRParameterOrigin (NSString) (optional)
  • -///
  • @c kFIRParameterDestination (NSString) (optional)
  • -///
  • @c kFIRParameterStartDate (NSString) (optional)
  • -///
  • @c kFIRParameterEndDate (NSString) (optional)
  • ///
static NSString *const kFIREventAddToCart NS_SWIFT_NAME(AnalyticsEventAddToCart) = @"add_to_cart"; -/// E-Commerce Add To Wishlist event. This event signifies that an item was added to a wishlist. -/// Use this event to identify popular gift items in your app. Note: If you supply the -/// @c kFIRParameterValue parameter, you must also supply the @c kFIRParameterCurrency -/// parameter so that revenue metrics can be computed accurately. Params: +/// E-Commerce Add To Wishlist event. This event signifies that an item was added to a wishlist. Use +/// this event to identify popular gift items. Note: If you supply the @c kFIRParameterValue +/// parameter, you must also supply the @c kFIRParameterCurrency parameter so that revenue metrics +/// can be computed accurately. Params: /// ///
    -///
  • @c kFIRParameterQuantity (signed 64-bit integer as NSNumber)
  • -///
  • @c kFIRParameterItemID (NSString)
  • -///
  • @c kFIRParameterItemName (NSString)
  • -///
  • @c kFIRParameterItemCategory (NSString)
  • -///
  • @c kFIRParameterItemLocationID (NSString) (optional)
  • -///
  • @c kFIRParameterPrice (double as NSNumber) (optional)
  • ///
  • @c kFIRParameterCurrency (NSString) (optional)
  • +///
  • @c kFIRParameterItems (NSArray) (optional)
  • ///
  • @c kFIRParameterValue (double as NSNumber) (optional)
  • ///
static NSString *const kFIREventAddToWishlist NS_SWIFT_NAME(AnalyticsEventAddToWishlist) = @@ -64,26 +59,16 @@ static NSString *const kFIREventAddToWishlist NS_SWIFT_NAME(AnalyticsEventAddToW static NSString *const kFIREventAppOpen NS_SWIFT_NAME(AnalyticsEventAppOpen) = @"app_open"; /// E-Commerce Begin Checkout event. This event signifies that a user has begun the process of -/// checking out. Add this event to a funnel with your kFIREventEcommercePurchase event to gauge the -/// effectiveness of your checkout process. Note: If you supply the @c kFIRParameterValue -/// parameter, you must also supply the @c kFIRParameterCurrency parameter so that revenue -/// metrics can be computed accurately. Params: +/// checking out. Add this event to a funnel with your @c kFIREventPurchase event to gauge the +/// effectiveness of your checkout process. Note: If you supply the @c kFIRParameterValue parameter, +/// you must also supply the @c kFIRParameterCurrency parameter so that revenue metrics can be +/// computed accurately. Params: /// ///
    -///
  • @c kFIRParameterValue (double as NSNumber) (optional)
  • +///
  • @c kFIRParameterCoupon (NSString) (optional)
  • ///
  • @c kFIRParameterCurrency (NSString) (optional)
  • -///
  • @c kFIRParameterTransactionID (NSString) (optional)
  • -///
  • @c kFIRParameterStartDate (NSString) (optional)
  • -///
  • @c kFIRParameterEndDate (NSString) (optional)
  • -///
  • @c kFIRParameterNumberOfNights (signed 64-bit integer as NSNumber) (optional) for -/// hotel bookings
  • -///
  • @c kFIRParameterNumberOfRooms (signed 64-bit integer as NSNumber) (optional) for -/// hotel bookings
  • -///
  • @c kFIRParameterNumberOfPassengers (signed 64-bit integer as NSNumber) (optional) -/// for travel bookings
  • -///
  • @c kFIRParameterOrigin (NSString) (optional)
  • -///
  • @c kFIRParameterDestination (NSString) (optional)
  • -///
  • @c kFIRParameterTravelClass (NSString) (optional) for travel bookings
  • +///
  • @c kFIRParameterItems (NSArray) (optional)
  • +///
  • @c kFIRParameterValue (double as NSNumber) (optional)
  • ///
static NSString *const kFIREventBeginCheckout NS_SWIFT_NAME(AnalyticsEventBeginCheckout) = @"begin_checkout"; @@ -110,6 +95,7 @@ static NSString *const kFIREventCampaignDetails NS_SWIFT_NAME(AnalyticsEventCamp ///
  • @c kFIRParameterCheckoutStep (unsigned 64-bit integer as NSNumber)
  • ///
  • @c kFIRParameterCheckoutOption (NSString) (optional)
  • /// +/// This constant has been deprecated. static NSString *const kFIREventCheckoutProgress NS_SWIFT_NAME(AnalyticsEventCheckoutProgress) = @"checkout_progress"; @@ -150,6 +136,7 @@ static NSString *const kFIREventEarnVirtualCurrency ///
  • @c kFIRParameterDestination (NSString) (optional)
  • ///
  • @c kFIRParameterTravelClass (NSString) (optional) for travel bookings
  • /// +/// This constant has been deprecated. Use @c kFIREventPurchase constant instead. static NSString *const kFIREventEcommercePurchase NS_SWIFT_NAME(AnalyticsEventEcommercePurchase) = @"ecommerce_purchase"; @@ -173,6 +160,21 @@ static NSString *const kFIREventGenerateLead NS_SWIFT_NAME(AnalyticsEventGenerat /// static NSString *const kFIREventJoinGroup NS_SWIFT_NAME(AnalyticsEventJoinGroup) = @"join_group"; +/// Level End event. Log this event when the user finishes a level. Params: +/// +///
      +///
    • @c kFIRParameterLevelName (NSString)
    • +///
    • @c kFIRParameterSuccess (NSString)
    • +///
    +static NSString *const kFIREventLevelEnd NS_SWIFT_NAME(AnalyticsEventLevelEnd) = @"level_end"; + +/// Level Start event. Log this event when the user starts a new level. Params: +/// +///
      +///
    • @c kFIRParameterLevelName (NSString)
    • +///
    +static NSString *const kFIREventLevelStart NS_SWIFT_NAME(AnalyticsEventLevelStart) = @"level_start"; + /// Level Up event. This event signifies that a player has leveled up in your gaming app. It can /// help you gauge the level distribution of your userbase and help you identify certain levels that /// are difficult to pass. Params: @@ -214,6 +216,7 @@ static NSString *const kFIREventPostScore NS_SWIFT_NAME(AnalyticsEventPostScore) ///
  • @c kFIRParameterCurrency (NSString) (optional)
  • ///
  • @c kFIRParameterValue (double as NSNumber) (optional)
  • /// +/// This constant has been deprecated. Use @c kFIREventViewPromotion constant instead. static NSString *const kFIREventPresentOffer NS_SWIFT_NAME(AnalyticsEventPresentOffer) = @"present_offer"; @@ -227,24 +230,18 @@ static NSString *const kFIREventPresentOffer NS_SWIFT_NAME(AnalyticsEventPresent ///
  • @c kFIRParameterValue (double as NSNumber) (optional)
  • ///
  • @c kFIRParameterTransactionID (NSString) (optional)
  • /// +/// This constant has been deprecated. Use @c kFIREventRefund constant instead. static NSString *const kFIREventPurchaseRefund NS_SWIFT_NAME(AnalyticsEventPurchaseRefund) = @"purchase_refund"; -/// Remove from cart event. Params: +/// E-Commerce Remove from Cart event. This event signifies that an item(s) was removed from a cart. +/// Note: If you supply the @c kFIRParameterValue parameter, you must also supply the @c +/// kFIRParameterCurrency parameter so that revenue metrics can be computed accurately. Params: /// ///
      -///
    • @c kFIRParameterQuantity (signed 64-bit integer as NSNumber)
    • -///
    • @c kFIRParameterItemID (NSString)
    • -///
    • @c kFIRParameterItemName (NSString)
    • -///
    • @c kFIRParameterItemCategory (NSString)
    • -///
    • @c kFIRParameterItemLocationID (NSString) (optional)
    • -///
    • @c kFIRParameterPrice (double as NSNumber) (optional)
    • ///
    • @c kFIRParameterCurrency (NSString) (optional)
    • +///
    • @c kFIRParameterItems (NSArray) (optional)
    • ///
    • @c kFIRParameterValue (double as NSNumber) (optional)
    • -///
    • @c kFIRParameterOrigin (NSString) (optional)
    • -///
    • @c kFIRParameterDestination (NSString) (optional)
    • -///
    • @c kFIRParameterStartDate (NSString) (optional)
    • -///
    • @c kFIRParameterEndDate (NSString) (optional)
    • ///
    static NSString *const kFIREventRemoveFromCart NS_SWIFT_NAME(AnalyticsEventRemoveFromCart) = @"remove_from_cart"; @@ -277,6 +274,7 @@ static NSString *const kFIREventSearch NS_SWIFT_NAME(AnalyticsEventSearch) = @"s ///
  • @c kFIRParameterContentType (NSString)
  • ///
  • @c kFIRParameterItemID (NSString)
  • /// +/// This constant has been deprecated. Use @c kFIREventSelectItem constant instead. static NSString *const kFIREventSelectContent NS_SWIFT_NAME(AnalyticsEventSelectContent) = @"select_content"; @@ -286,6 +284,7 @@ static NSString *const kFIREventSelectContent NS_SWIFT_NAME(AnalyticsEventSelect ///
  • @c kFIRParameterCheckoutStep (unsigned 64-bit integer as NSNumber)
  • ///
  • @c kFIRParameterCheckoutOption (NSString)
  • /// +/// This constant has been deprecated. static NSString *const kFIREventSetCheckoutOption NS_SWIFT_NAME(AnalyticsEventSetCheckoutOption) = @"set_checkout_option"; @@ -340,43 +339,24 @@ static NSString *const kFIREventTutorialComplete NS_SWIFT_NAME(AnalyticsEventTut static NSString *const kFIREventUnlockAchievement NS_SWIFT_NAME(AnalyticsEventUnlockAchievement) = @"unlock_achievement"; -/// View Item event. This event signifies that some content was shown to the user. This content may -/// be a product, a webpage or just a simple image or text. Use the appropriate parameters to -/// contextualize the event. Use this event to discover the most popular items viewed in your app. -/// Note: If you supply the @c kFIRParameterValue parameter, you must also supply the -/// @c kFIRParameterCurrency parameter so that revenue metrics can be computed accurately. -/// Params: +/// View Item event. This event signifies that a user has viewed an item. Use the appropriate +/// parameters to contextualize the event. Use this event to discover the most popular items viewed +/// in your app. Note: If you supply the @c kFIRParameterValue parameter, you must also supply the +/// @c kFIRParameterCurrency parameter so that revenue metrics can be computed accurately. Params: /// ///
      -///
    • @c kFIRParameterItemID (NSString)
    • -///
    • @c kFIRParameterItemName (NSString)
    • -///
    • @c kFIRParameterItemCategory (NSString)
    • -///
    • @c kFIRParameterItemLocationID (NSString) (optional)
    • -///
    • @c kFIRParameterPrice (double as NSNumber) (optional)
    • -///
    • @c kFIRParameterQuantity (signed 64-bit integer as NSNumber) (optional)
    • ///
    • @c kFIRParameterCurrency (NSString) (optional)
    • +///
    • @c kFIRParameterItems (NSArray) (optional)
    • ///
    • @c kFIRParameterValue (double as NSNumber) (optional)
    • -///
    • @c kFIRParameterStartDate (NSString) (optional)
    • -///
    • @c kFIRParameterEndDate (NSString) (optional)
    • -///
    • @c kFIRParameterFlightNumber (NSString) (optional) for travel bookings
    • -///
    • @c kFIRParameterNumberOfPassengers (signed 64-bit integer as NSNumber) (optional) -/// for travel bookings
    • -///
    • @c kFIRParameterNumberOfNights (signed 64-bit integer as NSNumber) (optional) for -/// travel bookings
    • -///
    • @c kFIRParameterNumberOfRooms (signed 64-bit integer as NSNumber) (optional) for -/// travel bookings
    • -///
    • @c kFIRParameterOrigin (NSString) (optional)
    • -///
    • @c kFIRParameterDestination (NSString) (optional)
    • -///
    • @c kFIRParameterSearchTerm (NSString) (optional) for travel bookings
    • -///
    • @c kFIRParameterTravelClass (NSString) (optional) for travel bookings
    • ///
    static NSString *const kFIREventViewItem NS_SWIFT_NAME(AnalyticsEventViewItem) = @"view_item"; -/// View Item List event. Log this event when the user has been presented with a list of items of a -/// certain category. Params: +/// View Item List event. Log this event when a user sees a list of items or offerings. Params: /// ///
      -///
    • @c kFIRParameterItemCategory (NSString)
    • +///
    • @c kFIRParameterItems (NSArray) (optional)
    • +///
    • @c kFIRParameterItemListID (NSString) (optional)
    • +///
    • @c kFIRParameterItemListName (NSString) (optional)
    • ///
    static NSString *const kFIREventViewItemList NS_SWIFT_NAME(AnalyticsEventViewItemList) = @"view_item_list"; @@ -387,21 +367,107 @@ static NSString *const kFIREventViewItemList NS_SWIFT_NAME(AnalyticsEventViewIte ///
      ///
    • @c kFIRParameterSearchTerm (NSString)
    • ///
    +/// This constant has been deprecated. static NSString *const kFIREventViewSearchResults NS_SWIFT_NAME(AnalyticsEventViewSearchResults) = @"view_search_results"; -/// Level Start event. Log this event when the user starts a new level. Params: +/// Add Shipping Info event. This event signifies that a user has submitted their shipping +/// information. Note: If you supply the @c kFIRParameterValue parameter, you must also supply the +/// @c kFIRParameterCurrency parameter so that revenue metrics can be computed accurately. Params: /// ///
      -///
    • @c kFIRParameterLevelName (NSString)
    • +///
    • @c kFIRParameterCoupon (NSString) (optional)
    • +///
    • @c kFIRParameterCurrency (NSString) (optional)
    • +///
    • @c kFIRParameterItems (NSArray) (optional)
    • +///
    • @c kFIRParameterShippingTier (NSString) (optional)
    • +///
    • @c kFIRParameterValue (double as NSNumber) (optional)
    • ///
    -static NSString *const kFIREventLevelStart NS_SWIFT_NAME(AnalyticsEventLevelStart) = - @"level_start"; +static NSString *const kFIREventAddShippingInfo NS_SWIFT_NAME(AnalyticsEventAddShippingInfo) = + @"add_shipping_info"; -/// Level End event. Log this event when the user finishes a level. Params: +/// E-Commerce Purchase event. This event signifies that an item(s) was purchased by a user. Note: +/// This is different from the in-app purchase event, which is reported automatically for App +/// Store-based apps. Note: If you supply the @c kFIRParameterValue parameter, you must also supply +/// the @c kFIRParameterCurrency parameter so that revenue metrics can be computed accurately. +/// Params: /// ///
      -///
    • @c kFIRParameterLevelName (NSString)
    • -///
    • @c kFIRParameterSuccess (NSString)
    • +///
    • @c kFIRParameterAffiliation (NSString) (optional)
    • +///
    • @c kFIRParameterCoupon (NSString) (optional)
    • +///
    • @c kFIRParameterCurrency (NSString) (optional)
    • +///
    • @c kFIRParameterItems (NSArray) (optional)
    • +///
    • @c kFIRParameterShipping (double as NSNumber) (optional)
    • +///
    • @c kFIRParameterTax (double as NSNumber) (optional)
    • +///
    • @c kFIRParameterTransactionID (NSString) (optional)
    • +///
    • @c kFIRParameterValue (double as NSNumber) (optional)
    • ///
    -static NSString *const kFIREventLevelEnd NS_SWIFT_NAME(AnalyticsEventLevelEnd) = @"level_end"; +static NSString *const kFIREventPurchase NS_SWIFT_NAME(AnalyticsEventPurchase) = @"purchase"; + +/// E-Commerce Refund event. This event signifies that a refund was issued. Note: If you supply the +/// @c kFIRParameterValue parameter, you must also supply the @c kFIRParameterCurrency parameter so +/// that revenue metrics can be computed accurately. Params: +/// +///
      +///
    • @c kFIRParameterAffiliation (NSString) (optional)
    • +///
    • @c kFIRParameterCoupon (NSString) (optional)
    • +///
    • @c kFIRParameterCurrency (NSString) (optional)
    • +///
    • @c kFIRParameterItems (NSArray) (optional)
    • +///
    • @c kFIRParameterShipping (double as NSNumber) (optional)
    • +///
    • @c kFIRParameterTax (double as NSNumber) (optional)
    • +///
    • @c kFIRParameterTransactionID (NSString) (optional)
    • +///
    • @c kFIRParameterValue (double as NSNumber) (optional)
    • +///
    +static NSString *const kFIREventRefund NS_SWIFT_NAME(AnalyticsEventRefund) = @"refund"; + +/// Select Item event. This event signifies that an item was selected by a user from a list. Use the +/// appropriate parameters to contextualize the event. Use this event to discover the most popular +/// items selected. Params: +/// +///
      +///
    • @c kFIRParameterItems (NSArray) (optional)
    • +///
    • @c kFIRParameterItemListID (NSString) (optional)
    • +///
    • @c kFIRParameterItemListName (NSString) (optional)
    • +///
    +static NSString *const kFIREventSelectItem NS_SWIFT_NAME(AnalyticsEventSelectItem) = @"select_item"; + +/// Select promotion event. This event signifies that a user has selected a promotion offer. Use the +/// appropriate parameters to contextualize the event, such as the item(s) for which the promotion +/// applies. Params: +/// +///
      +///
    • @c kFIRParameterCreativeName (NSString) (optional)
    • +///
    • @c kFIRParameterCreativeSlot (NSString) (optional)
    • +///
    • @c kFIRParameterItems (NSArray) (optional)
    • +///
    • @c kFIRParameterLocationID (NSString) (optional)
    • +///
    • @c kFIRParameterPromotionID (NSString) (optional)
    • +///
    • @c kFIRParameterPromotionName (NSString) (optional)
    • +///
    +static NSString *const kFIREventSelectPromotion NS_SWIFT_NAME(AnalyticsEventSelectPromotion) = + @"select_promotion"; + +/// E-commerce View Cart event. This event signifies that a user has viewed their cart. Use this to +/// analyze your purchase funnel. Note: If you supply the @c kFIRParameterValue parameter, you must +/// also supply the @c kFIRParameterCurrency parameter so that revenue metrics can be computed +/// accurately. Params: +/// +///
      +///
    • @c kFIRParameterCurrency (NSString) (optional)
    • +///
    • @c kFIRParameterItems (NSArray) (optional)
    • +///
    • @c kFIRParameterValue (double as NSNumber) (optional)
    • +///
    +static NSString *const kFIREventViewCart NS_SWIFT_NAME(AnalyticsEventViewCart) = @"view_cart"; + +/// View Promotion event. This event signifies that a promotion was shown to a user. Add this event +/// to a funnel with the @c kFIREventAddToCart and @c kFIREventPurchase to gauge your conversion +/// process. Params: +/// +///
      +///
    • @c kFIRParameterCreativeName (NSString) (optional)
    • +///
    • @c kFIRParameterCreativeSlot (NSString) (optional)
    • +///
    • @c kFIRParameterItems (NSArray) (optional)
    • +///
    • @c kFIRParameterLocationID (NSString) (optional)
    • +///
    • @c kFIRParameterPromotionID (NSString) (optional)
    • +///
    • @c kFIRParameterPromotionName (NSString) (optional)
    • +///
    +static NSString *const kFIREventViewPromotion NS_SWIFT_NAME(AnalyticsEventViewPromotion) = + @"view_promotion"; diff --git a/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRParameterNames.h b/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRParameterNames.h index 4e1366ce91..5775d866c4 100755 --- a/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRParameterNames.h +++ b/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRParameterNames.h @@ -32,8 +32,8 @@ static NSString *const kFIRParameterAchievementID NS_SWIFT_NAME(AnalyticsParamet static NSString *const kFIRParameterAdNetworkClickID NS_SWIFT_NAME(AnalyticsParameterAdNetworkClickID) = @"aclid"; -/// The store or affiliation from which this transaction occurred (NSString). -///
    +/// A product affiliation to designate a supplying company or brick and mortar store location
    +/// (NSString). 
     ///     NSDictionary *params = @{
     ///       kFIRParameterAffiliation : @"Google Store",
     ///       // ...
    @@ -71,6 +71,7 @@ static NSString *const kFIRParameterCharacter NS_SWIFT_NAME(AnalyticsParameterCh
     ///       // ...
     ///     };
     /// 
    +/// This constant has been deprecated. static NSString *const kFIRParameterCheckoutStep NS_SWIFT_NAME(AnalyticsParameterCheckoutStep) = @"checkout_step"; @@ -81,6 +82,7 @@ static NSString *const kFIRParameterCheckoutStep NS_SWIFT_NAME(AnalyticsParamete /// // ... /// }; ///
    +/// This constant has been deprecated. static NSString *const kFIRParameterCheckoutOption NS_SWIFT_NAME(AnalyticsParameterCheckoutOption) = @"checkout_option"; @@ -97,10 +99,10 @@ static NSString *const kFIRParameterContent NS_SWIFT_NAME(AnalyticsParameterCont static NSString *const kFIRParameterContentType NS_SWIFT_NAME(AnalyticsParameterContentType) = @"content_type"; -/// Coupon code for a purchasable item (NSString). +/// Coupon code used for a purchase (NSString). ///
     ///     NSDictionary *params = @{
    -///       kFIRParameterCoupon : @"zz123",
    +///       kFIRParameterCoupon : @"SUMMER_FUN",
     ///       // ...
     ///     };
     /// 
    @@ -136,8 +138,8 @@ static NSString *const kFIRParameterCreativeName NS_SWIFT_NAME(AnalyticsParamete static NSString *const kFIRParameterCreativeSlot NS_SWIFT_NAME(AnalyticsParameterCreativeSlot) = @"creative_slot"; -/// Purchase currency in 3-letter -/// ISO_4217 format (NSString). +/// Currency of the purchase or items associated with the event, in 3-letter +/// ISO_4217 format (NSString). ///
     ///     NSDictionary *params = @{
     ///       kFIRParameterCurrency : @"USD",
    @@ -186,10 +188,10 @@ static NSString *const kFIRParameterFlightNumber NS_SWIFT_NAME(AnalyticsParamete
     /// 
    static NSString *const kFIRParameterGroupID NS_SWIFT_NAME(AnalyticsParameterGroupID) = @"group_id"; -/// Index of an item in a list (signed 64-bit integer as NSNumber). +/// The index of the item in a list (signed 64-bit integer as NSNumber). ///
     ///     NSDictionary *params = @{
    -///       kFIRParameterIndex : @(1),
    +///       kFIRParameterIndex : @(5),
     ///       // ...
     ///     };
     /// 
    @@ -205,20 +207,20 @@ static NSString *const kFIRParameterIndex NS_SWIFT_NAME(AnalyticsParameterIndex) static NSString *const kFIRParameterItemBrand NS_SWIFT_NAME(AnalyticsParameterItemBrand) = @"item_brand"; -/// Item category (NSString). +/// Item category (context-specific) (NSString). ///
     ///     NSDictionary *params = @{
    -///       kFIRParameterItemCategory : @"t-shirts",
    +///       kFIRParameterItemCategory : @"pants",
     ///       // ...
     ///     };
     /// 
    static NSString *const kFIRParameterItemCategory NS_SWIFT_NAME(AnalyticsParameterItemCategory) = @"item_category"; -/// Item ID (NSString). +/// Item ID (context-specific) (NSString). ///
     ///     NSDictionary *params = @{
    -///       kFIRParameterItemID : @"p7654",
    +///       kFIRParameterItemID : @"SKU_12345",
     ///       // ...
     ///     };
     /// 
    @@ -232,13 +234,14 @@ static NSString *const kFIRParameterItemID NS_SWIFT_NAME(AnalyticsParameterItemI /// // ... /// }; /// +/// This constant has been deprecated. Use @c kFIRParameterLocationID constant instead. static NSString *const kFIRParameterItemLocationID NS_SWIFT_NAME(AnalyticsParameterItemLocationID) = @"item_location_id"; -/// Item name (NSString). +/// Item Name (context-specific) (NSString). ///
     ///     NSDictionary *params = @{
    -///       kFIRParameterItemName : @"abc",
    +///       kFIRParameterItemName : @"jeggings",
     ///       // ...
     ///     };
     /// 
    @@ -252,13 +255,14 @@ static NSString *const kFIRParameterItemName NS_SWIFT_NAME(AnalyticsParameterIte /// // ... /// }; /// +/// This constant has been deprecated. Use @c kFIRParameterItemListName constant instead. static NSString *const kFIRParameterItemList NS_SWIFT_NAME(AnalyticsParameterItemList) = @"item_list"; /// Item variant (NSString). ///
     ///     NSDictionary *params = @{
    -///       kFIRParameterItemVariant : @"Red",
    +///       kFIRParameterItemVariant : @"Black",
     ///       // ...
     ///     };
     /// 
    @@ -374,11 +378,11 @@ static NSString *const kFIRParameterScore NS_SWIFT_NAME(AnalyticsParameterScore) static NSString *const kFIRParameterSearchTerm NS_SWIFT_NAME(AnalyticsParameterSearchTerm) = @"search_term"; -/// Shipping cost (double as NSNumber). +/// Shipping cost associated with a transaction (double as NSNumber). ///
     ///     NSDictionary *params = @{
    -///       kFIRParameterShipping : @(9.50),
    -///       kFIRParameterCurrency : @"USD",  // e.g. $9.50 USD
    +///       kFIRParameterShipping : @(5.99),
    +///       kFIRParameterCurrency : @"USD",  // e.g. $5.99 USD
     ///       // ...
     ///     };
     /// 
    @@ -392,9 +396,21 @@ static NSString *const kFIRParameterShipping NS_SWIFT_NAME(AnalyticsParameterShi /// // ... /// }; /// +/// +/// This constant has been deprecated. Use Method constant instead. static NSString *const kFIRParameterSignUpMethod NS_SWIFT_NAME(AnalyticsParameterSignUpMethod) = @"sign_up_method"; +/// A particular approach used in an operation; for example, "facebook" or "email" in the context +/// of a sign_up or login event. (NSString). +///
    +///     NSDictionary *params = @{
    +///       kFIRParameterMethod : @"google",
    +///       // ...
    +///     };
    +/// 
    +static NSString *const kFIRParameterMethod NS_SWIFT_NAME(AnalyticsParameterMethod) = @"method"; + /// The origin of your traffic, such as an Ad network (for example, google) or partner (urban /// airship). Identify the advertiser, site, publication, etc. that is sending traffic to your /// property. Highly recommended (NSString). @@ -417,11 +433,11 @@ static NSString *const kFIRParameterSource NS_SWIFT_NAME(AnalyticsParameterSourc static NSString *const kFIRParameterStartDate NS_SWIFT_NAME(AnalyticsParameterStartDate) = @"start_date"; -/// Tax amount (double as NSNumber). +/// Tax cost associated with a transaction (double as NSNumber). ///
     ///     NSDictionary *params = @{
    -///       kFIRParameterTax : @(1.0),
    -///       kFIRParameterCurrency : @"USD",  // e.g. $1.00 USD
    +///       kFIRParameterTax : @(2.43),
    +///       kFIRParameterCurrency : @"USD",  // e.g. $2.43 USD
     ///       // ...
     ///     };
     /// 
    @@ -437,10 +453,10 @@ static NSString *const kFIRParameterTax NS_SWIFT_NAME(AnalyticsParameterTax) = @ /// static NSString *const kFIRParameterTerm NS_SWIFT_NAME(AnalyticsParameterTerm) = @"term"; -/// A single ID for a ecommerce group transaction (NSString). +/// The unique identifier of a transaction (NSString). ///
     ///     NSDictionary *params = @{
    -///       kFIRParameterTransactionID : @"ab7236dd9823",
    +///       kFIRParameterTransactionID : @"T12345",
     ///       // ...
     ///     };
     /// 
    @@ -505,3 +521,150 @@ static NSString *const kFIRParameterLevelName NS_SWIFT_NAME(AnalyticsParameterLe /// }; /// static NSString *const kFIRParameterSuccess NS_SWIFT_NAME(AnalyticsParameterSuccess) = @"success"; + +/// Indicates that the associated event should either extend the current session +/// or start a new session if no session was active when the event was logged. +/// Specify YES to extend the current session or to start a new session; any +/// other value will not extend or start a session. +///
    +///     NSDictionary *params = @{
    +///       kFIRParameterExtendSession : @YES,
    +///       // ...
    +///     };
    +/// 
    +static NSString *const kFIRParameterExtendSession NS_SWIFT_NAME(AnalyticsParameterExtendSession) = + @"extend_session"; + +/// Monetary value of discount associated with a purchase (double as NSNumber). +///
    +///     NSDictionary *params = @{
    +///       kFIRParameterDiscount : @(2.0),
    +///       kFIRParameterCurrency : @"USD",  // e.g. $2.00 USD
    +///       // ...
    +///     };
    +/// 
    +static NSString *const kFIRParameterDiscount NS_SWIFT_NAME(AnalyticsParameterDiscount) = + @"discount"; + +/// Item Category (context-specific) (NSString). +///
    +///     NSDictionary *params = @{
    +///       kFIRParameterItemCategory2 : @"pants",
    +///       // ...
    +///     };
    +/// 
    +static NSString *const kFIRParameterItemCategory2 NS_SWIFT_NAME(AnalyticsParameterItemCategory2) = + @"item_category2"; + +/// Item Category (context-specific) (NSString). +///
    +///     NSDictionary *params = @{
    +///       kFIRParameterItemCategory3 : @"pants",
    +///       // ...
    +///     };
    +/// 
    +static NSString *const kFIRParameterItemCategory3 NS_SWIFT_NAME(AnalyticsParameterItemCategory3) = + @"item_category3"; + +/// Item Category (context-specific) (NSString). +///
    +///     NSDictionary *params = @{
    +///       kFIRParameterItemCategory4 : @"pants",
    +///       // ...
    +///     };
    +/// 
    +static NSString *const kFIRParameterItemCategory4 NS_SWIFT_NAME(AnalyticsParameterItemCategory4) = + @"item_category4"; + +/// Item Category (context-specific) (NSString). +///
    +///     NSDictionary *params = @{
    +///       kFIRParameterItemCategory5 : @"pants",
    +///       // ...
    +///     };
    +/// 
    +static NSString *const kFIRParameterItemCategory5 NS_SWIFT_NAME(AnalyticsParameterItemCategory5) = + @"item_category5"; + +/// The ID of the list in which the item was presented to the user (NSString). +///
    +///     NSDictionary *params = @{
    +///       kFIRParameterItemListID : @"ABC123",
    +///       // ...
    +///     };
    +/// 
    +static NSString *const kFIRParameterItemListID NS_SWIFT_NAME(AnalyticsParameterItemListID) = + @"item_list_id"; + +/// The name of the list in which the item was presented to the user (NSString). +///
    +///     NSDictionary *params = @{
    +///       kFIRParameterItemListName : @"Related products",
    +///       // ...
    +///     };
    +/// 
    +static NSString *const kFIRParameterItemListName NS_SWIFT_NAME(AnalyticsParameterItemListName) = + @"item_list_name"; + +/// The list of items involved in the transaction. (NSArray). +///
    +///     NSDictionary *params = @{
    +///       kFIRParameterItems : @[
    +///         @{kFIRParameterItemName : @"jeggings", kFIRParameterItemCategory : @"pants"},
    +///         @{kFIRParameterItemName : @"boots", kFIRParameterItemCategory : @"shoes"},
    +///       ],
    +///     };
    +/// 
    +static NSString *const kFIRParameterItems NS_SWIFT_NAME(AnalyticsParameterItems) = @"items"; + +/// The location associated with the event. Preferred to be the Google +/// Place ID that corresponds to the +/// associated item but could be overridden to a custom location ID string.(NSString).
    +///     NSDictionary *params = @{
    +///       kFIRParameterLocationID : @"ChIJiyj437sx3YAR9kUWC8QkLzQ",
    +///       // ...
    +///     };
    +/// 
    +static NSString *const kFIRParameterLocationID NS_SWIFT_NAME(AnalyticsParameterLocationID) = + @"location_id"; + +/// The chosen method of payment (NSString). +///
    +///     NSDictionary *params = @{
    +///       kFIRParameterPaymentType : @"Visa",
    +///       // ...
    +///     };
    +/// 
    +static NSString *const kFIRParameterPaymentType NS_SWIFT_NAME(AnalyticsParameterPaymentType) = + @"payment_type"; + +/// The ID of a product promotion (NSString). +///
    +///     NSDictionary *params = @{
    +///       kFIRParameterPromotionID : @"ABC123",
    +///       // ...
    +///     };
    +/// 
    +static NSString *const kFIRParameterPromotionID NS_SWIFT_NAME(AnalyticsParameterPromotionID) = + @"promotion_id"; + +/// The name of a product promotion (NSString). +///
    +///     NSDictionary *params = @{
    +///       kFIRParameterPromotionName : @"Summer Sale",
    +///       // ...
    +///     };
    +/// 
    +static NSString *const kFIRParameterPromotionName NS_SWIFT_NAME(AnalyticsParameterPromotionName) = + @"promotion_name"; + +/// The shipping tier (e.g. Ground, Air, Next-day) selected for delivery of the purchased item +/// (NSString). +///
    +///     NSDictionary *params = @{
    +///       kFIRParameterShippingTier : @"Ground",
    +///       // ...
    +///     };
    +/// 
    +static NSString *const kFIRParameterShippingTier NS_SWIFT_NAME(AnalyticsParameterShippingTier) = + @"shipping_tier"; diff --git a/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRUserPropertyNames.h b/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRUserPropertyNames.h index f50707fa15..132aef770c 100755 --- a/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRUserPropertyNames.h +++ b/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRUserPropertyNames.h @@ -15,3 +15,15 @@ /// The method used to sign in. For example, "google", "facebook" or "twitter". static NSString *const kFIRUserPropertySignUpMethod NS_SWIFT_NAME(AnalyticsUserPropertySignUpMethod) = @"sign_up_method"; + +/// Indicates whether events logged by Google Analytics can be used to personalize ads for the user. +/// Set to "YES" to enable, or "NO" to disable. Default is enabled. See the +/// documentation for +/// more details and information about related settings. +/// +///
    +///     [FIRAnalytics setUserPropertyString:@"NO"
    +///                                 forName:kFIRUserPropertyAllowAdPersonalizationSignals];
    +/// 
    +static NSString *const kFIRUserPropertyAllowAdPersonalizationSignals + NS_SWIFT_NAME(AnalyticsUserPropertyAllowAdPersonalizationSignals) = @"allow_personalized_ads"; diff --git a/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Modules/module.modulemap b/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Modules/module.modulemap index ef80595cd7..d7c59054aa 100755 --- a/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Modules/module.modulemap +++ b/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Modules/module.modulemap @@ -1,10 +1,12 @@ framework module FirebaseAnalytics { umbrella header "FirebaseAnalytics.h" export * - module * { export *} + module * { export * } link "sqlite3" link "z" + link framework "CoreData" link framework "Security" link framework "StoreKit" link framework "SystemConfiguration" - link framework "UIKit"} + link framework "UIKit" +} diff --git a/Pods/FirebaseAnalytics/Frameworks/FirebaseCoreDiagnostics.framework/FirebaseCoreDiagnostics b/Pods/FirebaseAnalytics/Frameworks/FirebaseCoreDiagnostics.framework/FirebaseCoreDiagnostics deleted file mode 100755 index 8384856183..0000000000 Binary files a/Pods/FirebaseAnalytics/Frameworks/FirebaseCoreDiagnostics.framework/FirebaseCoreDiagnostics and /dev/null differ diff --git a/Pods/FirebaseAnalytics/Frameworks/FirebaseCoreDiagnostics.framework/Modules/module.modulemap b/Pods/FirebaseAnalytics/Frameworks/FirebaseCoreDiagnostics.framework/Modules/module.modulemap deleted file mode 100755 index bbcb94e31d..0000000000 --- a/Pods/FirebaseAnalytics/Frameworks/FirebaseCoreDiagnostics.framework/Modules/module.modulemap +++ /dev/null @@ -1,6 +0,0 @@ -framework module FirebaseCoreDiagnostics { - export * - module * { export *} - link "z" - link framework "Security" - link framework "SystemConfiguration"} diff --git a/Pods/FirebaseCore/Firebase/Core/Public/FIRAnalyticsConfiguration.h b/Pods/FirebaseCore/Firebase/Core/Public/FIRAnalyticsConfiguration.h deleted file mode 100644 index ca1d32c6e2..0000000000 --- a/Pods/FirebaseCore/Firebase/Core/Public/FIRAnalyticsConfiguration.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright 2017 Google - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - * This class provides configuration fields for Firebase Analytics. - */ -NS_SWIFT_NAME(AnalyticsConfiguration) -@interface FIRAnalyticsConfiguration : NSObject - -/** - * Returns the shared instance of FIRAnalyticsConfiguration. - */ -+ (FIRAnalyticsConfiguration *)sharedInstance NS_SWIFT_NAME(shared()); - -/** - * Sets the minimum engagement time in seconds required to start a new session. The default value - * is 10 seconds. - */ -- (void)setMinimumSessionInterval:(NSTimeInterval)minimumSessionInterval; - -/** - * Sets the interval of inactivity in seconds that terminates the current session. The default - * value is 1800 seconds (30 minutes). - */ -- (void)setSessionTimeoutInterval:(NSTimeInterval)sessionTimeoutInterval; - -/** - * Sets whether analytics collection is enabled for this app on this device. This setting is - * persisted across app sessions. By default it is enabled. - */ -- (void)setAnalyticsCollectionEnabled:(BOOL)analyticsCollectionEnabled; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/FirebaseCore/Firebase/Core/FIRAnalyticsConfiguration.m b/Pods/FirebaseCore/FirebaseCore/Sources/FIRAnalyticsConfiguration.m similarity index 79% rename from Pods/FirebaseCore/Firebase/Core/FIRAnalyticsConfiguration.m rename to Pods/FirebaseCore/FirebaseCore/Sources/FIRAnalyticsConfiguration.m index 33aa1687f5..3a7d6de0e7 100644 --- a/Pods/FirebaseCore/Firebase/Core/FIRAnalyticsConfiguration.m +++ b/Pods/FirebaseCore/FirebaseCore/Sources/FIRAnalyticsConfiguration.m @@ -12,11 +12,14 @@ // See the License for the specific language governing permissions and // limitations under the License. -#import "FIRAnalyticsConfiguration.h" +#import -#import "Private/FIRAnalyticsConfiguration+Internal.h" +#import "FirebaseCore/Sources/Private/FIRAnalyticsConfiguration.h" +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-implementations" @implementation FIRAnalyticsConfiguration +#pragma clang diagnostic pop + (FIRAnalyticsConfiguration *)sharedInstance { static FIRAnalyticsConfiguration *sharedInstance = nil; @@ -36,16 +39,6 @@ - (void)postNotificationName:(NSString *)name value:(id)value { userInfo:@{name : value}]; } -- (void)setMinimumSessionInterval:(NSTimeInterval)minimumSessionInterval { - [self postNotificationName:kFIRAnalyticsConfigurationSetMinimumSessionIntervalNotification - value:@(minimumSessionInterval)]; -} - -- (void)setSessionTimeoutInterval:(NSTimeInterval)sessionTimeoutInterval { - [self postNotificationName:kFIRAnalyticsConfigurationSetSessionTimeoutIntervalNotification - value:@(sessionTimeoutInterval)]; -} - - (void)setAnalyticsCollectionEnabled:(BOOL)analyticsCollectionEnabled { [self setAnalyticsCollectionEnabled:analyticsCollectionEnabled persistSetting:YES]; } diff --git a/Pods/FirebaseCore/Firebase/Core/FIRApp.m b/Pods/FirebaseCore/FirebaseCore/Sources/FIRApp.m similarity index 61% rename from Pods/FirebaseCore/Firebase/Core/FIRApp.m rename to Pods/FirebaseCore/FirebaseCore/Sources/FIRApp.m index 3b352fa7d1..002f93c516 100644 --- a/Pods/FirebaseCore/Firebase/Core/FIRApp.m +++ b/Pods/FirebaseCore/FirebaseCore/Sources/FIRApp.m @@ -14,33 +14,50 @@ #include -#import "FIRApp.h" -#import "FIRConfiguration.h" -#import "Private/FIRAnalyticsConfiguration+Internal.h" -#import "Private/FIRAppInternal.h" -#import "Private/FIRBundleUtil.h" -#import "Private/FIRComponentContainerInternal.h" -#import "Private/FIRCoreConfigurable.h" -#import "Private/FIRLogger.h" -#import "Private/FIROptionsInternal.h" - -NSString *const kFIRServiceAdMob = @"AdMob"; -NSString *const kFIRServiceAuth = @"Auth"; -NSString *const kFIRServiceAuthUI = @"AuthUI"; -NSString *const kFIRServiceCrash = @"Crash"; -NSString *const kFIRServiceDatabase = @"Database"; -NSString *const kFIRServiceDynamicLinks = @"DynamicLinks"; -NSString *const kFIRServiceFirestore = @"Firestore"; -NSString *const kFIRServiceFunctions = @"Functions"; -NSString *const kFIRServiceInstanceID = @"InstanceID"; -NSString *const kFIRServiceInvites = @"Invites"; -NSString *const kFIRServiceMessaging = @"Messaging"; -NSString *const kFIRServiceMeasurement = @"Measurement"; -NSString *const kFIRServicePerformance = @"Performance"; -NSString *const kFIRServiceRemoteConfig = @"RemoteConfig"; -NSString *const kFIRServiceStorage = @"Storage"; -NSString *const kGGLServiceAnalytics = @"Analytics"; -NSString *const kGGLServiceSignIn = @"SignIn"; +#if __has_include() +#import +#endif + +#if __has_include() +#import +#endif + +#import + +#import "FirebaseCore/Sources/FIRBundleUtil.h" +#import "FirebaseCore/Sources/FIRVersion.h" +#import "FirebaseCore/Sources/Private/FIRAnalyticsConfiguration.h" +#import "FirebaseCore/Sources/Private/FIRAppInternal.h" +#import "FirebaseCore/Sources/Private/FIRComponentContainerInternal.h" +#import "FirebaseCore/Sources/Private/FIRConfigurationInternal.h" +#import "FirebaseCore/Sources/Private/FIRCoreDiagnosticsConnector.h" +#import "FirebaseCore/Sources/Private/FIRLibrary.h" +#import "FirebaseCore/Sources/Private/FIRLogger.h" +#import "FirebaseCore/Sources/Private/FIROptionsInternal.h" + +#import + +#import + +// The kFIRService strings are only here while transitioning CoreDiagnostics from the Analytics +// pod to a Core dependency. These symbols are not used and should be deleted after the transition. +NSString *const kFIRServiceAdMob; +NSString *const kFIRServiceAuth; +NSString *const kFIRServiceAuthUI; +NSString *const kFIRServiceCrash; +NSString *const kFIRServiceDatabase; +NSString *const kFIRServiceDynamicLinks; +NSString *const kFIRServiceFirestore; +NSString *const kFIRServiceFunctions; +NSString *const kFIRServiceInstanceID; +NSString *const kFIRServiceInvites; +NSString *const kFIRServiceMessaging; +NSString *const kFIRServiceMeasurement; +NSString *const kFIRServicePerformance; +NSString *const kFIRServiceRemoteConfig; +NSString *const kFIRServiceStorage; +NSString *const kGGLServiceAnalytics; +NSString *const kGGLServiceSignIn; NSString *const kFIRDefaultAppName = @"__FIRAPP_DEFAULT"; NSString *const kFIRAppReadyToConfigureSDKNotification = @"FIRAppReadyToConfigureSDKNotification"; @@ -61,6 +78,7 @@ NSString *const kFIRAppDiagnosticsFIRAppKey = @"FIRApp"; NSString *const kFIRAppDiagnosticsSDKNameKey = @"SDKName"; NSString *const kFIRAppDiagnosticsSDKVersionKey = @"SDKVersion"; +NSString *const kFIRAppDiagnosticsApplePlatformPrefix = @"apple-platform"; // Auth internal notification notification and key. NSString *const FIRAuthStateDidChangeInternalNotification = @@ -81,7 +99,7 @@ * An array of all classes that registered as `FIRCoreConfigurable` in order to receive lifecycle * events from Core. */ -static NSMutableArray> *gRegisteredAsConfigurable; +static NSMutableArray> *sRegisteredAsConfigurable; @interface FIRApp () @@ -99,29 +117,16 @@ @implementation FIRApp static NSMutableDictionary *sAllApps; static FIRApp *sDefaultApp; static NSMutableDictionary *sLibraryVersions; +static dispatch_once_t sFirebaseUserAgentOnceToken; + (void)configure { FIROptions *options = [FIROptions defaultOptions]; if (!options) { - // Read the Info.plist to see if the flag is set. At this point we can't check any user defaults - // since the app isn't configured at all, so only rely on the Info.plist value. - NSNumber *collectionEnabledPlistValue = [[self class] readDataCollectionSwitchFromPlist]; - if (collectionEnabledPlistValue == nil || [collectionEnabledPlistValue boolValue]) { - [[NSNotificationCenter defaultCenter] - postNotificationName:kFIRAppDiagnosticsNotification - object:nil - userInfo:@{ - kFIRAppDiagnosticsConfigurationTypeKey : @(FIRConfigTypeCore), - kFIRAppDiagnosticsErrorKey : [FIRApp errorForMissingOptions] - }]; - } - [NSException raise:kFirebaseCoreErrorDomain - format: - @"`[FIRApp configure];` (`FirebaseApp.configure()` in Swift) could not find " - @"a valid GoogleService-Info.plist in your project. Please download one " - @"from %@.", - kPlistURL]; + format:@"`[FIRApp configure];` (`FirebaseApp.configure()` in Swift) could not find " + @"a valid GoogleService-Info.plist in your project. Please download one " + @"from %@.", + kPlistURL]; } [FIRApp configureWithOptions:options]; #if TARGET_OS_OSX || TARGET_OS_TV @@ -140,6 +145,17 @@ + (void)configureWithOptions:(FIROptions *)options { [FIRApp configureWithName:kFIRDefaultAppName options:options]; } ++ (NSCharacterSet *)applicationNameAllowedCharacters { + static NSCharacterSet *applicationNameAllowedCharacters; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + NSMutableCharacterSet *allowedNameCharacters = [NSMutableCharacterSet alphanumericCharacterSet]; + [allowedNameCharacters addCharactersInString:@"-_"]; + applicationNameAllowedCharacters = [allowedNameCharacters copy]; + }); + return applicationNameAllowedCharacters; +} + + (void)configureWithName:(NSString *)name options:(FIROptions *)options { if (!name || !options) { [NSException raise:kFirebaseCoreErrorDomain format:@"Neither name nor options can be nil."]; @@ -150,27 +166,28 @@ + (void)configureWithName:(NSString *)name options:(FIROptions *)options { if ([name isEqualToString:kFIRDefaultAppName]) { if (sDefaultApp) { - [NSException raise:kFirebaseCoreErrorDomain - format:@"Default app has already been configured."]; + // The default app already exixts. Handle duplicate `configure` calls and return. + [self appWasConfiguredTwice:sDefaultApp usingOptions:options]; + return; } FIRLogDebug(kFIRLoggerCore, @"I-COR000001", @"Configuring the default app."); } else { // Validate the app name and ensure it hasn't been configured already. - for (NSUInteger charIndex = 0; charIndex < name.length; charIndex++) { - char character = [name characterAtIndex:charIndex]; - if (!((character >= 'a' && character <= 'z') || (character >= 'A' && character <= 'Z') || - (character >= '0' && character <= '9') || character == '_' || character == '-')) { - [NSException raise:kFirebaseCoreErrorDomain - format: - @"App name should only contain Letters, " - @"Numbers, Underscores, and Dashes."]; - } - } + NSCharacterSet *nameCharacters = [NSCharacterSet characterSetWithCharactersInString:name]; - if (sAllApps && sAllApps[name]) { + if (![[self applicationNameAllowedCharacters] isSupersetOfSet:nameCharacters]) { [NSException raise:kFirebaseCoreErrorDomain - format:@"App named %@ has already been configured.", name]; + format:@"App name can only contain alphanumeric, " + @"hyphen (-), and underscore (_) characters"]; + } + + @synchronized(self) { + if (sAllApps && sAllApps[name]) { + // The app already exists. Handle a duplicate `configure` call and return. + [self appWasConfiguredTwice:sAllApps[name] usingOptions:options]; + return; + } } FIRLogDebug(kFIRLoggerCore, @"I-COR000002", @"Configuring app named %@", name); @@ -183,10 +200,44 @@ + (void)configureWithName:(NSString *)name options:(FIROptions *)options { } [FIRApp addAppToAppDictionary:app]; + + // The FIRApp instance is ready to go, `sDefaultApp` is assigned, other SDKs are now ready to be + // instantiated. + [app.container instantiateEagerComponents]; [FIRApp sendNotificationsToSDKs:app]; } } +/// Called when `configure` has been called multiple times for the same app. This can either throw +/// an exception (most cases) or ignore the duplicate configuration in situations where it's allowed +/// like an extension. ++ (void)appWasConfiguredTwice:(FIRApp *)app usingOptions:(FIROptions *)options { + // Only extensions should potentially be able to call `configure` more than once. + if (![GULAppEnvironmentUtil isAppExtension]) { + // Throw an exception since this is now an invalid state. + if (app.isDefaultApp) { + [NSException raise:kFirebaseCoreErrorDomain + format:@"Default app has already been configured."]; + } else { + [NSException raise:kFirebaseCoreErrorDomain + format:@"App named %@ has already been configured.", app.name]; + } + } + + // In an extension, the entry point could be called multiple times. As long as the options are + // identical we should allow multiple `configure` calls. + if ([options isEqual:app.options]) { + // Everything is identical but the extension's lifecycle triggered `configure` twice. + // Ignore duplicate calls and return since everything should still be in a valid state. + FIRLogDebug(kFIRLoggerCore, @"I-COR000035", + @"Ignoring second `configure` call in an extension."); + return; + } else { + [NSException raise:kFirebaseCoreErrorDomain + format:@"App named %@ has already been configured.", app.name]; + } +} + + (FIRApp *)defaultApp { if (sDefaultApp) { return sDefaultApp; @@ -216,18 +267,20 @@ + (NSDictionary *)allApps { if (!sAllApps) { FIRLogError(kFIRLoggerCore, @"I-COR000005", @"No app has been configured yet."); } - NSDictionary *dict = [NSDictionary dictionaryWithDictionary:sAllApps]; - return dict; + return [sAllApps copy]; } } // Public only for tests + (void)resetApps { - sDefaultApp = nil; - [sAllApps removeAllObjects]; - sAllApps = nil; - [sLibraryVersions removeAllObjects]; - sLibraryVersions = nil; + @synchronized(self) { + sDefaultApp = nil; + [sAllApps removeAllObjects]; + sAllApps = nil; + [sLibraryVersions removeAllObjects]; + sLibraryVersions = nil; + sFirebaseUserAgentOnceToken = 0; + } } - (void)deleteApp:(FIRAppVoidBoolCallback)completion { @@ -235,6 +288,8 @@ - (void)deleteApp:(FIRAppVoidBoolCallback)completion { if (sAllApps && sAllApps[self.name]) { FIRLogDebug(kFIRLoggerCore, @"I-COR000006", @"Deleting app named %@", self.name); + // Remove all registered libraries from the container to avoid creating new instances. + [self.container removeAllComponents]; // Remove all cached instances from the container before deleting the app. [self.container removeAllCachedInstances]; @@ -263,9 +318,8 @@ + (void)addAppToAppDictionary:(FIRApp *)app { sAllApps[app.name] = app; } else { [NSException raise:kFirebaseCoreErrorDomain - format: - @"Configuration fails. It may be caused by an invalid GOOGLE_APP_ID in " - @"GoogleService-Info.plist or set in the customized options."]; + format:@"Configuration fails. It may be caused by an invalid GOOGLE_APP_ID in " + @"GoogleService-Info.plist or set in the customized options."]; } } @@ -281,50 +335,24 @@ - (instancetype)initInstanceWithName:(NSString *)name options:(FIROptions *)opti return self; } -- (void)getTokenForcingRefresh:(BOOL)forceRefresh withCallback:(FIRTokenCallback)callback { - if (!_getTokenImplementation) { - callback(nil, nil); - return; - } - - _getTokenImplementation(forceRefresh, callback); +- (void)dealloc { + [[NSNotificationCenter defaultCenter] removeObserver:self]; } - (BOOL)configureCore { [self checkExpectedBundleID]; if (![self isAppIDValid]) { - if (_options.usingOptionsFromDefaultPlist && [self isDataCollectionDefaultEnabled]) { - [[NSNotificationCenter defaultCenter] - postNotificationName:kFIRAppDiagnosticsNotification - object:nil - userInfo:@{ - kFIRAppDiagnosticsConfigurationTypeKey : @(FIRConfigTypeCore), - kFIRAppDiagnosticsErrorKey : [FIRApp errorForInvalidAppID], - }]; - } return NO; } - if ([self isDataCollectionDefaultEnabled]) { - [[NSNotificationCenter defaultCenter] - postNotificationName:kFIRAppDiagnosticsNotification - object:nil - userInfo:@{ - kFIRAppDiagnosticsConfigurationTypeKey : @(FIRConfigTypeCore), - kFIRAppDiagnosticsFIRAppKey : self - }]; - } + [self logCoreTelemetryIfEnabled]; #if TARGET_OS_IOS // Initialize the Analytics once there is a valid options under default app. Analytics should // always initialize first by itself before the other SDKs. if ([self.name isEqualToString:kFIRDefaultAppName]) { Class firAnalyticsClass = NSClassFromString(@"FIRAnalytics"); - if (!firAnalyticsClass) { - FIRLogWarning(kFIRLoggerCore, @"I-COR000022", - @"Firebase Analytics is not available. To add it, include Firebase/Core in the " - @"Podfile or add FirebaseAnalytics.framework to the Link Build Phase"); - } else { + if (firAnalyticsClass) { #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wundeclared-selector" SEL startWithConfigurationSelector = @selector(startWithConfiguration:options:); @@ -332,6 +360,7 @@ - (BOOL)configureCore { if ([firAnalyticsClass respondsToSelector:startWithConfigurationSelector]) { #pragma clang diagnostic push #pragma clang diagnostic ignored "-Warc-performSelector-leaks" +#pragma clang diagnostic ignored "-Wdeprecated-declarations" [firAnalyticsClass performSelector:startWithConfigurationSelector withObject:[FIRConfiguration sharedInstance].analyticsConfiguration withObject:_options]; @@ -341,6 +370,8 @@ - (BOOL)configureCore { } #endif + [self subscribeForAppDidBecomeActiveNotifications]; + return YES; } @@ -367,14 +398,17 @@ - (void)setDataCollectionDefaultEnabled:(BOOL)dataCollectionDefaultEnabled { } // Check if the Analytics flag is explicitly set. If so, no further actions are necessary. - if ([self.options isAnalyticsCollectionExpicitlySet]) { + if ([self.options isAnalyticsCollectionExplicitlySet]) { return; } // The Analytics flag has not been explicitly set, so update with the value being set. +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" [[FIRAnalyticsConfiguration sharedInstance] setAnalyticsCollectionEnabled:dataCollectionDefaultEnabled persistSetting:NO]; +#pragma clang diagnostic pop } - (BOOL)isDataCollectionDefaultEnabled { @@ -431,8 +465,10 @@ + (void)sendNotificationsToSDKs:(FIRApp *)app { // This is the new way of sending information to SDKs. // TODO: Do we want this on a background thread, maybe? - for (Class library in gRegisteredAsConfigurable) { - [library configureWithApp:app]; + @synchronized(self) { + for (Class library in sRegisteredAsConfigurable) { + [library configureWithApp:app]; + } } } @@ -471,52 +507,127 @@ + (NSError *)errorForInvalidAppID { userInfo:errorDict]; } -+ (void)registerAsConfigurable:(Class)klass { - // This is called at +load time, keep the work to a minimum. - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - gRegisteredAsConfigurable = [[NSMutableArray alloc] initWithCapacity:1]; - }); - - NSAssert([(Class)klass conformsToProtocol:@protocol(FIRCoreConfigurable)], - @"The class being registered (%@) must conform to `FIRCoreConfigurable`.", klass); - [gRegisteredAsConfigurable addObject:klass]; -} - + (BOOL)isDefaultAppConfigured { return (sDefaultApp != nil); } -+ (void)registerLibrary:(nonnull NSString *)library withVersion:(nonnull NSString *)version { ++ (void)registerLibrary:(nonnull NSString *)name withVersion:(nonnull NSString *)version { // Create the set of characters which aren't allowed, only if this feature is used. NSMutableCharacterSet *allowedSet = [NSMutableCharacterSet alphanumericCharacterSet]; [allowedSet addCharactersInString:@"-_."]; NSCharacterSet *disallowedSet = [allowedSet invertedSet]; // Make sure the library name and version strings do not contain unexpected characters, and // add the name/version pair to the dictionary. - if ([library rangeOfCharacterFromSet:disallowedSet].location == NSNotFound && + if ([name rangeOfCharacterFromSet:disallowedSet].location == NSNotFound && [version rangeOfCharacterFromSet:disallowedSet].location == NSNotFound) { - if (!sLibraryVersions) { - sLibraryVersions = [[NSMutableDictionary alloc] init]; + @synchronized(self) { + if (!sLibraryVersions) { + sLibraryVersions = [[NSMutableDictionary alloc] init]; + } + sLibraryVersions[name] = version; } - sLibraryVersions[library] = version; } else { FIRLogError(kFIRLoggerCore, @"I-COR000027", - @"The library name (%@) or version number (%@) contain illegal characters. " + @"The library name (%@) or version number (%@) contain invalid characters. " @"Only alphanumeric, dash, underscore and period characters are allowed.", - library, version); + name, version); } } ++ (void)registerInternalLibrary:(nonnull Class)library + withName:(nonnull NSString *)name + withVersion:(nonnull NSString *)version { + // This is called at +load time, keep the work to a minimum. + + // Ensure the class given conforms to the proper protocol. + if (![(Class)library conformsToProtocol:@protocol(FIRLibrary)] || + ![(Class)library respondsToSelector:@selector(componentsToRegister)]) { + [NSException raise:NSInvalidArgumentException + format:@"Class %@ attempted to register components, but it does not conform to " + @"`FIRLibrary or provide a `componentsToRegister:` method.", + library]; + } + + [FIRComponentContainer registerAsComponentRegistrant:library]; + if ([(Class)library respondsToSelector:@selector(configureWithApp:)]) { + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + sRegisteredAsConfigurable = [[NSMutableArray alloc] init]; + }); + @synchronized(self) { + [sRegisteredAsConfigurable addObject:library]; + } + } + [self registerLibrary:name withVersion:version]; +} + + (NSString *)firebaseUserAgent { - NSMutableArray *libraries = - [[NSMutableArray alloc] initWithCapacity:sLibraryVersions.count]; - for (NSString *libraryName in sLibraryVersions) { - [libraries - addObject:[NSString stringWithFormat:@"%@/%@", libraryName, sLibraryVersions[libraryName]]]; + @synchronized(self) { + dispatch_once(&sFirebaseUserAgentOnceToken, ^{ + // Report FirebaseCore version for useragent string + [FIRApp registerLibrary:@"fire-ios" + withVersion:[NSString stringWithUTF8String:FIRCoreVersionString]]; + + NSDictionary *info = [[NSBundle mainBundle] infoDictionary]; + NSString *xcodeVersion = info[@"DTXcodeBuild"]; + NSString *sdkVersion = info[@"DTSDKBuild"]; + if (xcodeVersion) { + [FIRApp registerLibrary:@"xcode" withVersion:xcodeVersion]; + } + if (sdkVersion) { + [FIRApp registerLibrary:@"apple-sdk" withVersion:sdkVersion]; + } + + NSString *swiftFlagValue = [self hasSwiftRuntime] ? @"true" : @"false"; + [FIRApp registerLibrary:@"swift" withVersion:swiftFlagValue]; + + [FIRApp registerLibrary:kFIRAppDiagnosticsApplePlatformPrefix + withVersion:[self applePlatform]]; + }); + + NSMutableArray *libraries = + [[NSMutableArray alloc] initWithCapacity:sLibraryVersions.count]; + for (NSString *libraryName in sLibraryVersions) { + [libraries addObject:[NSString stringWithFormat:@"%@/%@", libraryName, + sLibraryVersions[libraryName]]]; + } + [libraries sortUsingSelector:@selector(localizedCaseInsensitiveCompare:)]; + return [libraries componentsJoinedByString:@" "]; } - [libraries sortUsingSelector:@selector(localizedCaseInsensitiveCompare:)]; - return [libraries componentsJoinedByString:@" "]; +} + ++ (BOOL)hasSwiftRuntime { + // The class + // [Swift._SwiftObject](https://github.com/apple/swift/blob/5eac3e2818eb340b11232aff83edfbd1c307fa03/stdlib/public/runtime/SwiftObject.h#L35) + // is a part of Swift runtime, so it should be present if Swift runtime is available. + + BOOL hasSwiftRuntime = + objc_lookUpClass("Swift._SwiftObject") != nil || + // Swift object class name before + // https://github.com/apple/swift/commit/9637b4a6e11ddca72f5f6dbe528efc7c92f14d01 + objc_getClass("_TtCs12_SwiftObject") != nil; + + return hasSwiftRuntime; +} + ++ (NSString *)applePlatform { + NSString *applePlatform = @"unknown"; + + // When a Catalyst app is run on macOS then both `TARGET_OS_MACCATALYST` and `TARGET_OS_IOS` are + // `true`, which means the condition list is order-sensitive. +#if TARGET_OS_MACCATALYST + applePlatform = @"maccatalyst"; +#elif TARGET_OS_IOS + applePlatform = @"ios"; +#elif TARGET_OS_TV + applePlatform = @"tvos"; +#elif TARGET_OS_OSX + applePlatform = @"macos"; +#elif TARGET_OS_WATCH + applePlatform = @"watchos"; +#endif + + return applePlatform; } - (void)checkExpectedBundleID { @@ -524,8 +635,8 @@ - (void)checkExpectedBundleID { NSString *expectedBundleID = [self expectedBundleID]; // The checking is only done when the bundle ID is provided in the serviceInfo dictionary for // backward compatibility. - if (expectedBundleID != nil && - ![FIRBundleUtil hasBundleIdentifier:expectedBundleID inBundles:bundles]) { + if (expectedBundleID != nil && ![FIRBundleUtil hasBundleIdentifierPrefix:expectedBundleID + inBundles:bundles]) { FIRLogError(kFIRLoggerCore, @"I-COR000008", @"The project's Bundle ID is inconsistent with " @"either the Bundle ID in '%@.%@', or the Bundle ID in the options if you are " @@ -538,15 +649,6 @@ - (void)checkExpectedBundleID { } } -// TODO: Remove once SDKs transition to Auth interop library. -- (nullable NSString *)getUID { - if (!_getUIDImplementation) { - FIRLogWarning(kFIRLoggerCore, @"I-COR000025", @"FIRAuth getUID implementation wasn't set."); - return nil; - } - return _getUIDImplementation(); -} - #pragma mark - private - App ID Validation /** @@ -579,33 +681,32 @@ + (BOOL)validateAppID:(NSString *)appID { return NO; } - // All app IDs must start with at least ":". - NSString *const versionPattern = @"^\\d+:"; - NSRegularExpression *versionRegex = - [NSRegularExpression regularExpressionWithPattern:versionPattern options:0 error:NULL]; - if (!versionRegex) { + NSScanner *stringScanner = [NSScanner scannerWithString:appID]; + stringScanner.charactersToBeSkipped = nil; + + NSString *appIDVersion; + if (![stringScanner scanCharactersFromSet:[NSCharacterSet decimalDigitCharacterSet] + intoString:&appIDVersion]) { return NO; } - NSRange appIDRange = NSMakeRange(0, appID.length); - NSArray *versionMatches = [versionRegex matchesInString:appID options:0 range:appIDRange]; - if (versionMatches.count != 1) { + if (![stringScanner scanString:@":" intoString:NULL]) { + // appIDVersion must be separated by ":" return NO; } - NSRange versionRange = [(NSTextCheckingResult *)versionMatches.firstObject range]; - NSString *appIDVersion = [appID substringWithRange:versionRange]; - NSArray *knownVersions = @[ @"1:" ]; + NSArray *knownVersions = @[ @"1" ]; if (![knownVersions containsObject:appIDVersion]) { // Permit unknown yet properly formatted app ID versions. + FIRLogInfo(kFIRLoggerCore, @"I-COR000010", @"Unknown GOOGLE_APP_ID version: %@", appIDVersion); return YES; } - if (![FIRApp validateAppIDFormat:appID withVersion:appIDVersion]) { + if (![self validateAppIDFormat:appID withVersion:appIDVersion]) { return NO; } - if (![FIRApp validateAppIDFingerprint:appID withVersion:appIDVersion]) { + if (![self validateAppIDFingerprint:appID withVersion:appIDVersion]) { return NO; } @@ -635,32 +736,76 @@ + (BOOL)validateAppIDFormat:(NSString *)appID withVersion:(NSString *)version { return NO; } - if (![version hasSuffix:@":"]) { + NSScanner *stringScanner = [NSScanner scannerWithString:appID]; + stringScanner.charactersToBeSkipped = nil; + + // Skip version part + // '**::ios:' + if (![stringScanner scanString:version intoString:NULL]) { + // The version part is missing or mismatched + return NO; + } + + // Validate version part (see part between '*' symbols below) + // '*:*:ios:' + if (![stringScanner scanString:@":" intoString:NULL]) { + // appIDVersion must be separated by ":" return NO; } - if (![appID hasPrefix:version]) { + // Validate version part (see part between '*' symbols below) + // ':**:ios:'. + NSInteger projectNumber = NSNotFound; + if (![stringScanner scanInteger:&projectNumber]) { + // NO project number found. return NO; } - NSString *const pattern = @"^\\d+:ios:[a-f0-9]+$"; - NSRegularExpression *regex = - [NSRegularExpression regularExpressionWithPattern:pattern options:0 error:NULL]; - if (!regex) { + // Validate version part (see part between '*' symbols below) + // ':*:*ios:'. + if (![stringScanner scanString:@":" intoString:NULL]) { + // The project number must be separated by ":" return NO; } - NSRange localRange = NSMakeRange(version.length, appID.length - version.length); - NSUInteger numberOfMatches = [regex numberOfMatchesInString:appID options:0 range:localRange]; - if (numberOfMatches != 1) { + // Validate version part (see part between '*' symbols below) + // '::*ios*:'. + NSString *platform; + if (![stringScanner scanUpToString:@":" intoString:&platform]) { return NO; } + + if (![platform isEqualToString:@"ios"]) { + // The platform must be @"ios" + return NO; + } + + // Validate version part (see part between '*' symbols below) + // '::ios*:*'. + if (![stringScanner scanString:@":" intoString:NULL]) { + // The platform must be separated by ":" + return NO; + } + + // Validate version part (see part between '*' symbols below) + // '::ios:**'. + unsigned long long fingerprint = NSNotFound; + if (![stringScanner scanHexLongLong:&fingerprint]) { + // Fingerprint part is missing + return NO; + } + + if (!stringScanner.isAtEnd) { + // There are not allowed characters in the fingerprint part + return NO; + } + return YES; } /** * Validates that the fingerprint of the app ID string is what is expected based on the supplied - * version. The version must end in ":". + * version. * * Note that the v1 hash algorithm is not permitted on the client and cannot be fully validated. * @@ -670,18 +815,6 @@ + (BOOL)validateAppIDFormat:(NSString *)appID withVersion:(NSString *)version { * otherwise. */ + (BOOL)validateAppIDFingerprint:(NSString *)appID withVersion:(NSString *)version { - if (!appID.length || !version.length) { - return NO; - } - - if (![version hasSuffix:@":"]) { - return NO; - } - - if (![appID hasPrefix:version]) { - return NO; - } - // Extract the supplied fingerprint from the supplied app ID. // This assumes the app ID format is the same for all known versions below. If the app ID format // changes in future versions, the tokenizing of the app ID format will need to take into account @@ -702,7 +835,7 @@ + (BOOL)validateAppIDFingerprint:(NSString *)appID withVersion:(NSString *)versi return NO; } - if ([version isEqual:@"1:"]) { + if ([version isEqual:@"1"]) { // The v1 hash algorithm is not permitted on the client so the actual hash cannot be validated. return YES; } @@ -766,26 +899,40 @@ + (nullable NSNumber *)readDataCollectionSwitchFromPlist { #pragma mark - Sending Logs +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wunused-parameter" - (void)sendLogsWithServiceName:(NSString *)serviceName version:(NSString *)version error:(NSError *)error { - // If the user has manually turned off data collection, return and don't send logs. - if (![self isDataCollectionDefaultEnabled]) { - return; - } + // Do nothing. Please remove calls to this method. +} +#pragma clang diagnostic pop - NSMutableDictionary *userInfo = [[NSMutableDictionary alloc] initWithDictionary:@{ - kFIRAppDiagnosticsConfigurationTypeKey : @(FIRConfigTypeSDK), - kFIRAppDiagnosticsSDKNameKey : serviceName, - kFIRAppDiagnosticsSDKVersionKey : version, - kFIRAppDiagnosticsFIRAppKey : self - }]; - if (error) { - userInfo[kFIRAppDiagnosticsErrorKey] = error; +#pragma mark - App Life Cycle + +- (void)subscribeForAppDidBecomeActiveNotifications { +#if TARGET_OS_IOS || TARGET_OS_TV + NSNotificationName notificationName = UIApplicationDidBecomeActiveNotification; +#elif TARGET_OS_OSX + NSNotificationName notificationName = NSApplicationDidBecomeActiveNotification; +#endif + +#if !TARGET_OS_WATCH + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(appDidBecomeActive:) + name:notificationName + object:nil]; +#endif +} + +- (void)appDidBecomeActive:(NSNotification *)notification { + [self logCoreTelemetryIfEnabled]; +} + +- (void)logCoreTelemetryIfEnabled { + if ([self isDataCollectionDefaultEnabled]) { + [FIRCoreDiagnosticsConnector logCoreTelemetryWithOptions:_options]; } - [[NSNotificationCenter defaultCenter] postNotificationName:kFIRAppDiagnosticsNotification - object:nil - userInfo:userInfo]; } @end diff --git a/Pods/FirebaseCore/Firebase/Core/FIRAppAssociationRegistration.m b/Pods/FirebaseCore/FirebaseCore/Sources/FIRAppAssociationRegistration.m similarity index 96% rename from Pods/FirebaseCore/Firebase/Core/FIRAppAssociationRegistration.m rename to Pods/FirebaseCore/FirebaseCore/Sources/FIRAppAssociationRegistration.m index 2aecdabe1a..e4125cd255 100644 --- a/Pods/FirebaseCore/Firebase/Core/FIRAppAssociationRegistration.m +++ b/Pods/FirebaseCore/FirebaseCore/Sources/FIRAppAssociationRegistration.m @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -#import "Private/FIRAppAssociationRegistration.h" +#import "FirebaseCore/Sources/Private/FIRAppAssociationRegistration.h" #import diff --git a/Pods/FirebaseCore/Firebase/Core/Private/FIRBundleUtil.h b/Pods/FirebaseCore/FirebaseCore/Sources/FIRBundleUtil.h similarity index 88% rename from Pods/FirebaseCore/Firebase/Core/Private/FIRBundleUtil.h rename to Pods/FirebaseCore/FirebaseCore/Sources/FIRBundleUtil.h index c458a2c4c6..d9475dd29e 100644 --- a/Pods/FirebaseCore/Firebase/Core/Private/FIRBundleUtil.h +++ b/Pods/FirebaseCore/FirebaseCore/Sources/FIRBundleUtil.h @@ -45,8 +45,9 @@ + (NSArray *)relevantURLSchemes; /** - * Checks if the bundle identifier exists in the given bundles. + * Checks if any of the given bundles have a matching bundle identifier prefix (removing extension + * suffixes). */ -+ (BOOL)hasBundleIdentifier:(NSString *)bundleIdentifier inBundles:(NSArray *)bundles; ++ (BOOL)hasBundleIdentifierPrefix:(NSString *)bundleIdentifier inBundles:(NSArray *)bundles; @end diff --git a/Pods/FirebaseCore/Firebase/Core/FIRBundleUtil.m b/Pods/FirebaseCore/FirebaseCore/Sources/FIRBundleUtil.m similarity index 63% rename from Pods/FirebaseCore/Firebase/Core/FIRBundleUtil.m rename to Pods/FirebaseCore/FirebaseCore/Sources/FIRBundleUtil.m index 93ee02e97d..b858f14c41 100644 --- a/Pods/FirebaseCore/Firebase/Core/FIRBundleUtil.m +++ b/Pods/FirebaseCore/FirebaseCore/Sources/FIRBundleUtil.m @@ -12,7 +12,9 @@ // See the License for the specific language governing permissions and // limitations under the License. -#import "Private/FIRBundleUtil.h" +#import "FirebaseCore/Sources/FIRBundleUtil.h" + +#import @implementation FIRBundleUtil @@ -45,13 +47,29 @@ + (NSArray *)relevantURLSchemes { return result; } -+ (BOOL)hasBundleIdentifier:(NSString *)bundleIdentifier inBundles:(NSArray *)bundles { ++ (BOOL)hasBundleIdentifierPrefix:(NSString *)bundleIdentifier inBundles:(NSArray *)bundles { for (NSBundle *bundle in bundles) { - if ([bundle.bundleIdentifier isEqualToString:bundleIdentifier]) { + // This allows app extensions that have the app's bundle as their prefix to pass this test. + NSString *applicationBundleIdentifier = + [GULAppEnvironmentUtil isAppExtension] + ? [self bundleIdentifierByRemovingLastPartFrom:bundle.bundleIdentifier] + : bundle.bundleIdentifier; + + if ([applicationBundleIdentifier isEqualToString:bundleIdentifier]) { return YES; } } return NO; } ++ (NSString *)bundleIdentifierByRemovingLastPartFrom:(NSString *)bundleIdentifier { + NSString *bundleIDComponentsSeparator = @"."; + + NSMutableArray *bundleIDComponents = + [[bundleIdentifier componentsSeparatedByString:bundleIDComponentsSeparator] mutableCopy]; + [bundleIDComponents removeLastObject]; + + return [bundleIDComponents componentsJoinedByString:bundleIDComponentsSeparator]; +} + @end diff --git a/Pods/FirebaseCore/Firebase/Core/FIRComponent.m b/Pods/FirebaseCore/FirebaseCore/Sources/FIRComponent.m similarity index 93% rename from Pods/FirebaseCore/Firebase/Core/FIRComponent.m rename to Pods/FirebaseCore/FirebaseCore/Sources/FIRComponent.m index 2474d1aabf..9c1fbed3cb 100644 --- a/Pods/FirebaseCore/Firebase/Core/FIRComponent.m +++ b/Pods/FirebaseCore/FirebaseCore/Sources/FIRComponent.m @@ -14,10 +14,10 @@ * limitations under the License. */ -#import "Private/FIRComponent.h" +#import "FirebaseCore/Sources/Private/FIRComponent.h" -#import "Private/FIRComponentContainer.h" -#import "Private/FIRDependency.h" +#import "FirebaseCore/Sources/Private/FIRComponentContainer.h" +#import "FirebaseCore/Sources/Private/FIRDependency.h" @interface FIRComponent () diff --git a/Pods/FirebaseCore/Firebase/Core/FIRComponentContainer.m b/Pods/FirebaseCore/FirebaseCore/Sources/FIRComponentContainer.m similarity index 60% rename from Pods/FirebaseCore/Firebase/Core/FIRComponentContainer.m rename to Pods/FirebaseCore/FirebaseCore/Sources/FIRComponentContainer.m index 381c95c431..bbe887824f 100644 --- a/Pods/FirebaseCore/Firebase/Core/FIRComponentContainer.m +++ b/Pods/FirebaseCore/FirebaseCore/Sources/FIRComponentContainer.m @@ -14,67 +14,54 @@ * limitations under the License. */ -#import "Private/FIRComponentContainer.h" +#import "FirebaseCore/Sources/Private/FIRComponentContainer.h" -#import "Private/FIRAppInternal.h" -#import "Private/FIRComponent.h" -#import "Private/FIRComponentRegistrant.h" -#import "Private/FIRLogger.h" +#import "FirebaseCore/Sources/Private/FIRAppInternal.h" +#import "FirebaseCore/Sources/Private/FIRComponent.h" +#import "FirebaseCore/Sources/Private/FIRLibrary.h" +#import "FirebaseCore/Sources/Private/FIRLogger.h" NS_ASSUME_NONNULL_BEGIN @interface FIRComponentContainer () -/// The dictionary of components that are registered for a particular app. The key is an NSString +/// The dictionary of components that are registered for a particular app. The key is an `NSString` /// of the protocol. @property(nonatomic, strong) NSMutableDictionary *components; /// Cached instances of components that requested to be cached. @property(nonatomic, strong) NSMutableDictionary *cachedInstances; +/// Protocols of components that have requested to be eagerly instantiated. +@property(nonatomic, strong, nullable) NSMutableArray *eagerProtocolsToInstantiate; + @end @implementation FIRComponentContainer // Collection of all classes that register to provide components. -static NSMutableSet *gFIRComponentRegistrants; +static NSMutableSet *sFIRComponentRegistrants; #pragma mark - Public Registration -+ (void)registerAsComponentRegistrant:(Class)klass { ++ (void)registerAsComponentRegistrant:(Class)klass { static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ - gFIRComponentRegistrants = [[NSMutableSet alloc] init]; + sFIRComponentRegistrants = [[NSMutableSet alloc] init]; }); - [self registerAsComponentRegistrant:klass inSet:gFIRComponentRegistrants]; + [self registerAsComponentRegistrant:klass inSet:sFIRComponentRegistrants]; } -+ (void)registerAsComponentRegistrant:(Class)klass inSet:(NSMutableSet *)allRegistrants { - // Validate the array to store the components is initialized. - if (!allRegistrants) { - FIRLogWarning(kFIRLoggerCore, @"I-COR000025", - @"Attempted to store registered components in an empty set."); - return; - } - - // Ensure the class given conforms to the proper protocol. - if (![klass conformsToProtocol:@protocol(FIRComponentRegistrant)] || - ![klass respondsToSelector:@selector(componentsToRegister)]) { - [NSException raise:NSInvalidArgumentException - format: - @"Class %@ attempted to register components, but it does not conform to " - @"`FIRComponentRegistrant` or provide a `componentsToRegister:` method.", - klass]; - } - ++ (void)registerAsComponentRegistrant:(Class)klass + inSet:(NSMutableSet *)allRegistrants { [allRegistrants addObject:klass]; } #pragma mark - Internal Initialization - (instancetype)initWithApp:(FIRApp *)app { - return [self initWithApp:app registrants:gFIRComponentRegistrants]; + return [self initWithApp:app registrants:sFIRComponentRegistrants]; } - (instancetype)initWithApp:(FIRApp *)app registrants:(NSMutableSet *)allRegistrants { @@ -90,8 +77,11 @@ - (instancetype)initWithApp:(FIRApp *)app registrants:(NSMutableSet *)all } - (void)populateComponentsFromRegisteredClasses:(NSSet *)classes forApp:(FIRApp *)app { + // Keep track of any components that need to eagerly instantiate after all components are added. + self.eagerProtocolsToInstantiate = [[NSMutableArray alloc] init]; + // Loop through the verified component registrants and populate the components array. - for (Class klass in classes) { + for (Class klass in classes) { // Loop through all the components being registered and store them as appropriate. // Classes which do not provide functionality should use a dummy FIRComponentRegistrant // protocol. @@ -108,14 +98,16 @@ - (void)populateComponentsFromRegisteredClasses:(NSSet *)classes forApp:( // Store the creation block for later usage. self.components[protocolName] = component.creationBlock; - // Instantiate the + // Queue any protocols that should be eagerly instantiated. Don't instantiate them yet + // because they could depend on other components that haven't been added to the components + // array yet. BOOL shouldInstantiateEager = (component.instantiationTiming == FIRInstantiationTimingAlwaysEager); BOOL shouldInstantiateDefaultEager = (component.instantiationTiming == FIRInstantiationTimingEagerInDefaultApp && [app isDefaultApp]); if (shouldInstantiateEager || shouldInstantiateDefaultEager) { - [self instantiateInstanceForProtocol:component.protocol withBlock:component.creationBlock]; + [self.eagerProtocolsToInstantiate addObject:component.protocol]; } } } @@ -123,11 +115,28 @@ - (void)populateComponentsFromRegisteredClasses:(NSSet *)classes forApp:( #pragma mark - Instance Creation +- (void)instantiateEagerComponents { + // After all components are registered, instantiate the ones that are requesting eager + // instantiation. + @synchronized(self) { + for (Protocol *protocol in self.eagerProtocolsToInstantiate) { + // Get an instance for the protocol, which will instantiate it since it couldn't have been + // cached yet. Ignore the instance coming back since we don't need it. + __unused id unusedInstance = [self instanceForProtocol:protocol]; + } + + // All eager instantiation is complete, clear the stored property now. + self.eagerProtocolsToInstantiate = nil; + } +} + /// Instantiate an instance of a class that conforms to the specified protocol. /// This will: /// - Call the block to create an instance if possible, /// - Validate that the instance returned conforms to the protocol it claims to, /// - Cache the instance if the block requests it +/// +/// Note that this method assumes the caller already has @sychronized on self. - (nullable id)instantiateInstanceForProtocol:(Protocol *)protocol withBlock:(FIRComponentCreationBlock)creationBlock { if (!creationBlock) { @@ -163,41 +172,41 @@ - (nullable id)instantiateInstanceForProtocol:(Protocol *)protocol - (nullable id)instanceForProtocol:(Protocol *)protocol { // Check if there is a cached instance, and return it if so. NSString *protocolName = NSStringFromProtocol(protocol); - id cachedInstance = self.cachedInstances[protocolName]; - if (cachedInstance) { - return cachedInstance; - } - // Use the creation block to instantiate an instance and return it. - FIRComponentCreationBlock creationBlock = self.components[protocolName]; - return [self instantiateInstanceForProtocol:protocol withBlock:creationBlock]; + id cachedInstance; + @synchronized(self) { + cachedInstance = self.cachedInstances[protocolName]; + if (!cachedInstance) { + // Use the creation block to instantiate an instance and return it. + FIRComponentCreationBlock creationBlock = self.components[protocolName]; + cachedInstance = [self instantiateInstanceForProtocol:protocol withBlock:creationBlock]; + } + } + return cachedInstance; } #pragma mark - Lifecycle - (void)removeAllCachedInstances { - // Loop through the cache and notify each instance that is a maintainer to clean up after itself. - for (id instance in self.cachedInstances.allValues) { - if ([instance conformsToProtocol:@protocol(FIRComponentLifecycleMaintainer)] && - [instance respondsToSelector:@selector(appWillBeDeleted:)]) { - [instance appWillBeDeleted:self.app]; + @synchronized(self) { + // Loop through the cache and notify each instance that is a maintainer to clean up after + // itself. + for (id instance in self.cachedInstances.allValues) { + if ([instance conformsToProtocol:@protocol(FIRComponentLifecycleMaintainer)] && + [instance respondsToSelector:@selector(appWillBeDeleted:)]) { + [instance appWillBeDeleted:self.app]; + } } - } - [self.cachedInstances removeAllObjects]; + // Empty the cache. + [self.cachedInstances removeAllObjects]; + } } -#pragma mark - Testing Initializers - -// TODO(wilsonryan): Set up a testing flag so this only is compiled in with unit tests. -/// Initialize an instance with an app and existing components. -- (instancetype)initWithApp:(FIRApp *)app - components:(NSDictionary *)components { - self = [self initWithApp:app registrants:[[NSMutableSet alloc] init]]; - if (self) { - _components = [components mutableCopy]; +- (void)removeAllComponents { + @synchronized(self) { + [self.components removeAllObjects]; } - return self; } @end diff --git a/Pods/FirebaseCore/Firebase/Core/FIRComponentType.m b/Pods/FirebaseCore/FirebaseCore/Sources/FIRComponentType.m similarity index 86% rename from Pods/FirebaseCore/Firebase/Core/FIRComponentType.m rename to Pods/FirebaseCore/FirebaseCore/Sources/FIRComponentType.m index bdc004fbce..6410f2ea1c 100644 --- a/Pods/FirebaseCore/Firebase/Core/FIRComponentType.m +++ b/Pods/FirebaseCore/FirebaseCore/Sources/FIRComponentType.m @@ -14,9 +14,9 @@ * limitations under the License. */ -#import "Private/FIRComponentType.h" +#import "FirebaseCore/Sources/Private/FIRComponentType.h" -#import "Private/FIRComponentContainerInternal.h" +#import "FirebaseCore/Sources/Private/FIRComponentContainerInternal.h" @implementation FIRComponentType diff --git a/Pods/FirebaseCore/Firebase/Core/FIRConfiguration.m b/Pods/FirebaseCore/FirebaseCore/Sources/FIRConfiguration.m similarity index 90% rename from Pods/FirebaseCore/Firebase/Core/FIRConfiguration.m rename to Pods/FirebaseCore/FirebaseCore/Sources/FIRConfiguration.m index cd6486257e..a1c9f4a2e9 100644 --- a/Pods/FirebaseCore/Firebase/Core/FIRConfiguration.m +++ b/Pods/FirebaseCore/FirebaseCore/Sources/FIRConfiguration.m @@ -12,7 +12,9 @@ // See the License for the specific language governing permissions and // limitations under the License. -#import "FIRConfiguration.h" +#import "FirebaseCore/Sources/Private/FIRConfigurationInternal.h" + +#import "FirebaseCore/Sources/Private/FIRAnalyticsConfiguration.h" extern void FIRSetLoggerLevel(FIRLoggerLevel loggerLevel); diff --git a/Pods/FirebaseCore/FirebaseCore/Sources/FIRCoreDiagnosticsConnector.m b/Pods/FirebaseCore/FirebaseCore/Sources/FIRCoreDiagnosticsConnector.m new file mode 100644 index 0000000000..4981ca1b05 --- /dev/null +++ b/Pods/FirebaseCore/FirebaseCore/Sources/FIRCoreDiagnosticsConnector.m @@ -0,0 +1,61 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FirebaseCore/Sources/Private/FIRCoreDiagnosticsConnector.h" + +#import + +#import + +#import "FirebaseCore/Sources/Private/FIRAppInternal.h" +#import "FirebaseCore/Sources/Private/FIRDiagnosticsData.h" +#import "FirebaseCore/Sources/Private/FIROptionsInternal.h" + +// Define the interop class symbol declared as an extern in FIRCoreDiagnosticsInterop. +Class FIRCoreDiagnosticsImplementation; + +@implementation FIRCoreDiagnosticsConnector + ++ (void)initialize { + if (!FIRCoreDiagnosticsImplementation) { + FIRCoreDiagnosticsImplementation = NSClassFromString(@"FIRCoreDiagnostics"); + if (FIRCoreDiagnosticsImplementation) { + NSAssert([FIRCoreDiagnosticsImplementation + conformsToProtocol:@protocol(FIRCoreDiagnosticsInterop)], + @"If FIRCoreDiagnostics is implemented, it must conform to the interop protocol."); + NSAssert( + [FIRCoreDiagnosticsImplementation respondsToSelector:@selector(sendDiagnosticsData:)], + @"If FIRCoreDiagnostics is implemented, it must implement +sendDiagnosticsData."); + } + } +} + ++ (void)logCoreTelemetryWithOptions:(FIROptions *)options { + if (FIRCoreDiagnosticsImplementation) { + FIRDiagnosticsData *diagnosticsData = [[FIRDiagnosticsData alloc] init]; + [diagnosticsData insertValue:@(YES) forKey:kFIRCDIsDataCollectionDefaultEnabledKey]; + [diagnosticsData insertValue:[FIRApp firebaseUserAgent] forKey:kFIRCDFirebaseUserAgentKey]; + [diagnosticsData insertValue:@(FIRConfigTypeCore) forKey:kFIRCDConfigurationTypeKey]; + [diagnosticsData insertValue:options.googleAppID forKey:kFIRCDGoogleAppIDKey]; + [diagnosticsData insertValue:options.bundleID forKey:kFIRCDBundleIDKey]; + [diagnosticsData insertValue:@(options.usingOptionsFromDefaultPlist) + forKey:kFIRCDUsingOptionsFromDefaultPlistKey]; + [diagnosticsData insertValue:options.libraryVersionID forKey:kFIRCDLibraryVersionIDKey]; + [FIRCoreDiagnosticsImplementation sendDiagnosticsData:diagnosticsData]; + } +} + +@end diff --git a/Pods/FirebaseCore/Firebase/Core/FIRDependency.m b/Pods/FirebaseCore/FirebaseCore/Sources/FIRDependency.m similarity index 95% rename from Pods/FirebaseCore/Firebase/Core/FIRDependency.m rename to Pods/FirebaseCore/FirebaseCore/Sources/FIRDependency.m index f979984147..e1e25783ef 100644 --- a/Pods/FirebaseCore/Firebase/Core/FIRDependency.m +++ b/Pods/FirebaseCore/FirebaseCore/Sources/FIRDependency.m @@ -14,7 +14,7 @@ * limitations under the License. */ -#import "Private/FIRDependency.h" +#import "FirebaseCore/Sources/Private/FIRDependency.h" @interface FIRDependency () diff --git a/Pods/FirebaseCore/FirebaseCore/Sources/FIRDiagnosticsData.m b/Pods/FirebaseCore/FirebaseCore/Sources/FIRDiagnosticsData.m new file mode 100644 index 0000000000..bbe0561d95 --- /dev/null +++ b/Pods/FirebaseCore/FirebaseCore/Sources/FIRDiagnosticsData.m @@ -0,0 +1,66 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FirebaseCore/Sources/Private/FIRDiagnosticsData.h" + +#import + +#import "FirebaseCore/Sources/Private/FIRAppInternal.h" +#import "FirebaseCore/Sources/Private/FIROptionsInternal.h" + +@implementation FIRDiagnosticsData { + /** Backing ivar for the diagnosticObjects property. */ + NSMutableDictionary *_diagnosticObjects; +} + +- (instancetype)init { + self = [super init]; + if (self) { + _diagnosticObjects = [[NSMutableDictionary alloc] init]; + } + return self; +} + +- (void)insertValue:(nullable id)value forKey:(NSString *)key { + if (key) { + _diagnosticObjects[key] = value; + } +} + +#pragma mark - FIRCoreDiagnosticsData + +- (NSDictionary *)diagnosticObjects { + if (!_diagnosticObjects[kFIRCDllAppsCountKey]) { + _diagnosticObjects[kFIRCDllAppsCountKey] = @([FIRApp allApps].count); + } + if (!_diagnosticObjects[kFIRCDIsDataCollectionDefaultEnabledKey]) { + _diagnosticObjects[kFIRCDIsDataCollectionDefaultEnabledKey] = + @([[FIRApp defaultApp] isDataCollectionDefaultEnabled]); + } + if (!_diagnosticObjects[kFIRCDFirebaseUserAgentKey]) { + _diagnosticObjects[kFIRCDFirebaseUserAgentKey] = [FIRApp firebaseUserAgent]; + } + return _diagnosticObjects; +} + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wunused-parameter" +- (void)setDiagnosticObjects:(NSDictionary *)diagnosticObjects { + NSAssert(NO, @"Please use -insertValue:forKey:"); +} +#pragma clang diagnostic pop + +@end diff --git a/Pods/FirebaseCore/Firebase/Core/FIRErrors.m b/Pods/FirebaseCore/FirebaseCore/Sources/FIRErrors.m similarity index 58% rename from Pods/FirebaseCore/Firebase/Core/FIRErrors.m rename to Pods/FirebaseCore/FirebaseCore/Sources/FIRErrors.m index 6d6d52d2ce..104eeb8252 100644 --- a/Pods/FirebaseCore/Firebase/Core/FIRErrors.m +++ b/Pods/FirebaseCore/FirebaseCore/Sources/FIRErrors.m @@ -12,18 +12,10 @@ // See the License for the specific language governing permissions and // limitations under the License. -#import "Private/FIRErrors.h" +#import "FirebaseCore/Sources/Private/FIRErrors.h" NSString *const kFirebaseErrorDomain = @"com.firebase"; -NSString *const kFirebaseAdMobErrorDomain = @"com.firebase.admob"; -NSString *const kFirebaseAppInviteErrorDomain = @"com.firebase.appinvite"; -NSString *const kFirebaseAuthErrorDomain = @"com.firebase.auth"; -NSString *const kFirebaseCloudMessagingErrorDomain = @"com.firebase.cloudmessaging"; NSString *const kFirebaseConfigErrorDomain = @"com.firebase.config"; NSString *const kFirebaseCoreErrorDomain = @"com.firebase.core"; -NSString *const kFirebaseCrashReportingErrorDomain = @"com.firebase.crashreporting"; -NSString *const kFirebaseDatabaseErrorDomain = @"com.firebase.database"; -NSString *const kFirebaseDurableDeepLinkErrorDomain = @"com.firebase.durabledeeplink"; -NSString *const kFirebaseInstanceIDErrorDomain = @"com.firebase.instanceid"; NSString *const kFirebasePerfErrorDomain = @"com.firebase.perf"; NSString *const kFirebaseStorageErrorDomain = @"com.firebase.storage"; diff --git a/Pods/FirebaseCore/FirebaseCore/Sources/FIRHeartbeatInfo.m b/Pods/FirebaseCore/FirebaseCore/Sources/FIRHeartbeatInfo.m new file mode 100644 index 0000000000..277b0f712b --- /dev/null +++ b/Pods/FirebaseCore/FirebaseCore/Sources/FIRHeartbeatInfo.m @@ -0,0 +1,61 @@ +// Copyright 2019 Google +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#import "FirebaseCore/Sources/Private/FIRHeartbeatInfo.h" +#import +#import + +const static long secondsInDay = 86400; +@implementation FIRHeartbeatInfo : NSObject + +/** Updates the storage with the heartbeat information corresponding to this tag. + * @param heartbeatTag Tag which could either be sdk specific tag or the global tag. + * @return Boolean representing whether the heartbeat needs to be sent for this tag or not. + */ ++ (BOOL)updateIfNeededHeartbeatDateForTag:(NSString *)heartbeatTag { + @synchronized(self) { + NSString *const kHeartbeatStorageFile = @"HEARTBEAT_INFO_STORAGE"; + GULHeartbeatDateStorage *dataStorage = + [[GULHeartbeatDateStorage alloc] initWithFileName:kHeartbeatStorageFile]; + NSDate *heartbeatTime = [dataStorage heartbeatDateForTag:heartbeatTag]; + NSDate *currentDate = [NSDate date]; + if (heartbeatTime != nil) { + NSTimeInterval secondsBetween = [currentDate timeIntervalSinceDate:heartbeatTime]; + if (secondsBetween < secondsInDay) { + return false; + } + } + return [dataStorage setHearbeatDate:currentDate forTag:heartbeatTag]; + } +} + ++ (FIRHeartbeatInfoCode)heartbeatCodeForTag:(NSString *)heartbeatTag { + NSString *globalTag = @"GLOBAL"; + BOOL isSdkHeartbeatNeeded = [FIRHeartbeatInfo updateIfNeededHeartbeatDateForTag:heartbeatTag]; + BOOL isGlobalHeartbeatNeeded = [FIRHeartbeatInfo updateIfNeededHeartbeatDateForTag:globalTag]; + if (!isSdkHeartbeatNeeded && !isGlobalHeartbeatNeeded) { + // Both sdk and global heartbeat not needed. + return FIRHeartbeatInfoCodeNone; + } else if (isSdkHeartbeatNeeded && !isGlobalHeartbeatNeeded) { + // Only SDK heartbeat needed. + return FIRHeartbeatInfoCodeSDK; + } else if (!isSdkHeartbeatNeeded && isGlobalHeartbeatNeeded) { + // Only global heartbeat needed. + return FIRHeartbeatInfoCodeGlobal; + } else { + // Both sdk and global heartbeat are needed. + return FIRHeartbeatInfoCodeCombined; + } +} +@end diff --git a/Pods/FirebaseCore/Firebase/Core/FIRLogger.m b/Pods/FirebaseCore/FirebaseCore/Sources/FIRLogger.m similarity index 92% rename from Pods/FirebaseCore/Firebase/Core/FIRLogger.m rename to Pods/FirebaseCore/FirebaseCore/Sources/FIRLogger.m index d1e3b37382..ba2ee1f584 100644 --- a/Pods/FirebaseCore/Firebase/Core/FIRLogger.m +++ b/Pods/FirebaseCore/FirebaseCore/Sources/FIRLogger.m @@ -12,31 +12,25 @@ // See the License for the specific language governing permissions and // limitations under the License. -#import "Private/FIRLogger.h" +#import "FirebaseCore/Sources/Private/FIRLogger.h" #import #import #import -#import "Private/FIRVersion.h" +#import "FirebaseCore/Sources/FIRVersion.h" +FIRLoggerService kFIRLoggerCore = @"[Firebase/Core]"; + +// All the FIRLoggerService definitions should be migrated to clients. Do not add new ones! FIRLoggerService kFIRLoggerABTesting = @"[Firebase/ABTesting]"; FIRLoggerService kFIRLoggerAdMob = @"[Firebase/AdMob]"; FIRLoggerService kFIRLoggerAnalytics = @"[Firebase/Analytics]"; FIRLoggerService kFIRLoggerAuth = @"[Firebase/Auth]"; -FIRLoggerService kFIRLoggerCore = @"[Firebase/Core]"; FIRLoggerService kFIRLoggerCrash = @"[Firebase/Crash]"; -FIRLoggerService kFIRLoggerDatabase = @"[Firebase/Database]"; -FIRLoggerService kFIRLoggerDynamicLinks = @"[Firebase/DynamicLinks]"; -FIRLoggerService kFIRLoggerFirestore = @"[Firebase/Firestore]"; -FIRLoggerService kFIRLoggerInstanceID = @"[Firebase/InstanceID]"; -FIRLoggerService kFIRLoggerInvites = @"[Firebase/Invites]"; FIRLoggerService kFIRLoggerMLKit = @"[Firebase/MLKit]"; -FIRLoggerService kFIRLoggerMessaging = @"[Firebase/Messaging]"; FIRLoggerService kFIRLoggerPerf = @"[Firebase/Performance]"; FIRLoggerService kFIRLoggerRemoteConfig = @"[Firebase/RemoteConfig]"; -FIRLoggerService kFIRLoggerStorage = @"[Firebase/Storage]"; -FIRLoggerService kFIRLoggerSwizzler = @"[FirebaseSwizzlingUtilities]"; /// Arguments passed on launch. NSString *const kFIRDisableDebugModeApplicationArgument = @"-FIRDebugDisabled"; diff --git a/Pods/FirebaseCore/Firebase/Core/FIROptions.m b/Pods/FirebaseCore/FirebaseCore/Sources/FIROptions.m similarity index 80% rename from Pods/FirebaseCore/Firebase/Core/FIROptions.m rename to Pods/FirebaseCore/FirebaseCore/Sources/FIROptions.m index db83d9c654..d185330940 100644 --- a/Pods/FirebaseCore/Firebase/Core/FIROptions.m +++ b/Pods/FirebaseCore/FirebaseCore/Sources/FIROptions.m @@ -12,11 +12,11 @@ // See the License for the specific language governing permissions and // limitations under the License. -#import "Private/FIRAppInternal.h" -#import "Private/FIRBundleUtil.h" -#import "Private/FIRErrors.h" -#import "Private/FIRLogger.h" -#import "Private/FIROptionsInternal.h" +#import "FirebaseCore/Sources/FIRBundleUtil.h" +#import "FirebaseCore/Sources/FIRVersion.h" +#import "FirebaseCore/Sources/Private/FIRAppInternal.h" +#import "FirebaseCore/Sources/Private/FIRLogger.h" +#import "FirebaseCore/Sources/Private/FIROptionsInternal.h" // Keys for the strings in the plist file. NSString *const kFIRAPIKey = @"API_KEY"; @@ -39,12 +39,13 @@ NSString *const kFIRIsAnalyticsEnabled = @"IS_ANALYTICS_ENABLED"; NSString *const kFIRIsSignInEnabled = @"IS_SIGNIN_ENABLED"; -// Library version ID. -NSString *const kFIRLibraryVersionID = - @"5" // Major version (one or more digits) - @"01" // Minor version (exactly 2 digits) - @"07" // Build number (exactly 2 digits) - @"000"; // Fixed "000" +// Library version ID formatted like: +// @"5" // Major version (one or more digits) +// @"04" // Minor version (exactly 2 digits) +// @"01" // Build number (exactly 2 digits) +// @"000"; // Fixed "000" +NSString *kFIRLibraryVersionID; + // Plist file name. NSString *const kServiceInfoFileName = @"GoogleService-Info"; // Plist file type. @@ -108,30 +109,6 @@ + (FIROptions *)defaultOptions { #pragma mark - Private class methods -+ (void)initialize { - // Report FirebaseCore version for useragent string - NSRange major = NSMakeRange(0, 1); - NSRange minor = NSMakeRange(1, 2); - NSRange patch = NSMakeRange(3, 2); - [FIRApp - registerLibrary:@"fire-ios" - withVersion:[NSString stringWithFormat:@"%@.%d.%d", - [kFIRLibraryVersionID substringWithRange:major], - [[kFIRLibraryVersionID substringWithRange:minor] - intValue], - [[kFIRLibraryVersionID substringWithRange:patch] - intValue]]]; - NSDictionary *info = [[NSBundle mainBundle] infoDictionary]; - NSString *xcodeVersion = info[@"DTXcodeBuild"]; - NSString *sdkVersion = info[@"DTSDKBuild"]; - if (xcodeVersion) { - [FIRApp registerLibrary:@"xcode" withVersion:xcodeVersion]; - } - if (sdkVersion) { - [FIRApp registerLibrary:@"apple-sdk" withVersion:sdkVersion]; - } -} - + (NSDictionary *)defaultOptionsDictionary { if (sDefaultOptionsDictionary != nil) { return sDefaultOptionsDictionary; @@ -185,6 +162,7 @@ - (id)copyWithZone:(NSZone *)zone { if (newOptions) { newOptions.optionsDictionary = self.optionsDictionary; newOptions.deepLinkURLScheme = self.deepLinkURLScheme; + newOptions.appGroupID = self.appGroupID; newOptions.editingLocked = self.isEditingLocked; newOptions.usingOptionsFromDefaultPlist = self.usingOptionsFromDefaultPlist; } @@ -296,6 +274,16 @@ - (void)setGoogleAppID:(NSString *)googleAppID { } - (NSString *)libraryVersionID { + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + // The unit tests are set up to catch anything that does not properly convert. + NSString *version = [NSString stringWithUTF8String:FIRCoreVersionString]; + NSArray *components = [version componentsSeparatedByString:@"."]; + NSString *major = [components objectAtIndex:0]; + NSString *minor = [NSString stringWithFormat:@"%02d", [[components objectAtIndex:1] intValue]]; + NSString *patch = [NSString stringWithFormat:@"%02d", [[components objectAtIndex:2] intValue]]; + kFIRLibraryVersionID = [NSString stringWithFormat:@"%@%@%@000", major, minor, patch]; + }); return kFIRLibraryVersionID; } @@ -336,6 +324,64 @@ - (void)setBundleID:(NSString *)bundleID { _optionsDictionary[kFIRBundleID] = [bundleID copy]; } +- (void)setAppGroupID:(NSString *)appGroupID { + [self checkEditingLocked]; + _appGroupID = [appGroupID copy]; +} + +#pragma mark - Equality + +- (BOOL)isEqual:(id)object { + if (!object || ![object isKindOfClass:[FIROptions class]]) { + return NO; + } + + return [self isEqualToOptions:(FIROptions *)object]; +} + +- (BOOL)isEqualToOptions:(FIROptions *)options { + // Skip any non-FIROptions classes. + if (![options isKindOfClass:[FIROptions class]]) { + return NO; + } + + // Check the internal dictionary and custom properties for differences. + if (![options.optionsDictionary isEqualToDictionary:self.optionsDictionary]) { + return NO; + } + + // Validate extra properties not contained in the dictionary. Only validate it if one of the + // objects has the property set. + if ((options.deepLinkURLScheme != nil || self.deepLinkURLScheme != nil) && + ![options.deepLinkURLScheme isEqualToString:self.deepLinkURLScheme]) { + return NO; + } + + if ((options.appGroupID != nil || self.appGroupID != nil) && + ![options.appGroupID isEqualToString:self.appGroupID]) { + return NO; + } + + // Validate the Analytics options haven't changed with the Info.plist. + if (![options.analyticsOptionsDictionary isEqualToDictionary:self.analyticsOptionsDictionary]) { + return NO; + } + + // We don't care about the `editingLocked` or `usingOptionsFromDefaultPlist` properties since + // those relate to lifecycle and construction, we only care if the contents of the options + // themselves are equal. + return YES; +} + +- (NSUInteger)hash { + // This is strongly recommended for any object that implements a custom `isEqual:` method to + // ensure that dictionary and set behavior matches other `isEqual:` checks. + // Note: `self.analyticsOptionsDictionary` was left out here since it solely relies on the + // contents of the main bundle's `Info.plist`. We should avoid reading that file and the contents + // should be identical. + return self.optionsDictionary.hash ^ self.deepLinkURLScheme.hash ^ self.appGroupID.hash; +} + #pragma mark - Internal instance methods - (NSDictionary *)analyticsOptionsDictionaryWithInfoDictionary:(NSDictionary *)infoDictionary { @@ -389,7 +435,7 @@ - (BOOL)isMeasurementEnabled { return [value boolValue]; } -- (BOOL)isAnalyticsCollectionExpicitlySet { +- (BOOL)isAnalyticsCollectionExplicitlySet { // If it's de-activated, it classifies as explicity set. If not, it's not a good enough indication // that the developer wants FirebaseAnalytics enabled so continue checking. if (self.isAnalyticsCollectionDeactivated) { diff --git a/Pods/FirebaseCore/Firebase/Core/Private/FIRVersion.h b/Pods/FirebaseCore/FirebaseCore/Sources/FIRVersion.h similarity index 100% rename from Pods/FirebaseCore/Firebase/Core/Private/FIRVersion.h rename to Pods/FirebaseCore/FirebaseCore/Sources/FIRVersion.h diff --git a/Pods/FirebaseCore/Firebase/Core/FIRVersion.m b/Pods/FirebaseCore/FirebaseCore/Sources/FIRVersion.m similarity index 100% rename from Pods/FirebaseCore/Firebase/Core/FIRVersion.m rename to Pods/FirebaseCore/FirebaseCore/Sources/FIRVersion.m diff --git a/Pods/FirebaseCore/Firebase/Core/Private/FIRAnalyticsConfiguration+Internal.h b/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRAnalyticsConfiguration.h similarity index 83% rename from Pods/FirebaseCore/Firebase/Core/Private/FIRAnalyticsConfiguration+Internal.h rename to Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRAnalyticsConfiguration.h index be624b4941..6429ac70ea 100644 --- a/Pods/FirebaseCore/Firebase/Core/Private/FIRAnalyticsConfiguration+Internal.h +++ b/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRAnalyticsConfiguration.h @@ -14,7 +14,7 @@ * limitations under the License. */ -#import "FIRAnalyticsConfiguration.h" +#import /// Values stored in analyticsEnabledState. Never alter these constants since they must match with /// values persisted to disk. @@ -38,7 +38,14 @@ static NSString *const kFIRAnalyticsConfigurationSetMinimumSessionIntervalNotifi static NSString *const kFIRAnalyticsConfigurationSetSessionTimeoutIntervalNotification = @"FIRAnalyticsConfigurationSetSessionTimeoutIntervalNotification"; -@interface FIRAnalyticsConfiguration (Internal) +@interface FIRAnalyticsConfiguration : NSObject + +/// Returns the shared instance of FIRAnalyticsConfiguration. ++ (FIRAnalyticsConfiguration *)sharedInstance; + +// Sets whether analytics collection is enabled for this app on this device. This setting is +// persisted across app sessions. By default it is enabled. +- (void)setAnalyticsCollectionEnabled:(BOOL)analyticsCollectionEnabled; /// Sets whether analytics collection is enabled for this app on this device, and a flag to persist /// the value or not. The setting should not be persisted if being set by the global data collection diff --git a/Pods/FirebaseCore/Firebase/Core/Private/FIRAppAssociationRegistration.h b/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRAppAssociationRegistration.h similarity index 100% rename from Pods/FirebaseCore/Firebase/Core/Private/FIRAppAssociationRegistration.h rename to Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRAppAssociationRegistration.h diff --git a/Pods/FirebaseCore/Firebase/Core/Private/FIRAppInternal.h b/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRAppInternal.h similarity index 61% rename from Pods/FirebaseCore/Firebase/Core/Private/FIRAppInternal.h rename to Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRAppInternal.h index e1aa65d0ba..ad1a186b93 100644 --- a/Pods/FirebaseCore/Firebase/Core/Private/FIRAppInternal.h +++ b/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRAppInternal.h @@ -14,11 +14,11 @@ * limitations under the License. */ -#import "FIRApp.h" -#import "FIRErrors.h" +#import +#import @class FIRComponentContainer; -@protocol FIRCoreConfigurable; +@protocol FIRLibrary; /** * The internal interface to FIRApp. This is meant for first-party integrators, who need to receive @@ -34,28 +34,6 @@ typedef NS_ENUM(NSInteger, FIRConfigType) { FIRConfigTypeSDK = 2, }; -/** - * Names of services provided by Firebase. - */ -extern NSString *const kFIRServiceAdMob; -extern NSString *const kFIRServiceAuth; -extern NSString *const kFIRServiceAuthUI; -extern NSString *const kFIRServiceCrash; -extern NSString *const kFIRServiceDatabase; -extern NSString *const kFIRServiceDynamicLinks; -extern NSString *const kFIRServiceInstanceID; -extern NSString *const kFIRServiceInvites; -extern NSString *const kFIRServiceMessaging; -extern NSString *const kFIRServiceMeasurement; -extern NSString *const kFIRServiceRemoteConfig; -extern NSString *const kFIRServiceStorage; - -/** - * Names of services provided by the Google pod, but logged by the Firebase pod. - */ -extern NSString *const kGGLServiceAnalytics; -extern NSString *const kGGLServiceSignIn; - extern NSString *const kFIRDefaultAppName; extern NSString *const kFIRAppReadyToConfigureSDKNotification; extern NSString *const kFIRAppDeleteNotification; @@ -109,24 +87,6 @@ extern NSString *const FIRAuthStateDidChangeInternalNotificationAppKey; */ extern NSString *const FIRAuthStateDidChangeInternalNotificationUIDKey; -/** @typedef FIRTokenCallback - @brief The type of block which gets called when a token is ready. - */ -typedef void (^FIRTokenCallback)(NSString *_Nullable token, NSError *_Nullable error); - -/** @typedef FIRAppGetTokenImplementation - @brief The type of block which can provide an implementation for the @c getTokenWithCallback: - method. - @param forceRefresh Forces the token to be refreshed. - @param callback The block which should be invoked when the async call completes. - */ -typedef void (^FIRAppGetTokenImplementation)(BOOL forceRefresh, FIRTokenCallback callback); - -/** @typedef FIRAppGetUID - @brief The type of block which can provide an implementation for the @c getUID method. - */ -typedef NSString *_Nullable (^FIRAppGetUIDImplementation)(void); - @interface FIRApp () /** @@ -134,17 +94,6 @@ typedef NSString *_Nullable (^FIRAppGetUIDImplementation)(void); */ @property(nonatomic, readonly) BOOL isDefaultApp; -/** @property getTokenImplementation - @brief Gets or sets the block to use for the implementation of - @c getTokenForcingRefresh:withCallback: - */ -@property(nonatomic, copy) FIRAppGetTokenImplementation getTokenImplementation; - -/** @property getUIDImplementation - @brief Gets or sets the block to use for the implementation of @c getUID. - */ -@property(nonatomic, copy) FIRAppGetUIDImplementation getUIDImplementation; - /* * The container of interop SDKs for this app. */ @@ -164,23 +113,25 @@ typedef NSString *_Nullable (^FIRAppGetUIDImplementation)(void); + (BOOL)isDefaultAppConfigured; /** - * Register a class that conforms to `FIRCoreConfigurable`. Each SDK should have one class that - * registers in order to provide critical information for interoperability and lifecycle events. - * TODO(wilsonryan): Write more documentation. + * Registers a given third-party library with the given version number to be reported for + * analytics. + * + * @param name Name of the library. + * @param version Version of the library. */ -+ (void)registerAsConfigurable:(Class)klass; ++ (void)registerLibrary:(nonnull NSString *)name withVersion:(nonnull NSString *)version; /** - * Registers a given third-party library with the given version number to be reported for - * analyitcs. + * Registers a given internal library with the given version number to be reported for + * analytics. * - * @param library Name of the library - * @param version Version of the library + * @param library Optional parameter for component registration. + * @param name Name of the library. + * @param version Version of the library. */ -// clang-format off -+ (void)registerLibrary:(NSString *)library - withVersion:(NSString *)version NS_SWIFT_NAME(registerLibrary(_:version:)); -// clang-format on ++ (void)registerInternalLibrary:(nonnull Class)library + withName:(nonnull NSString *)name + withVersion:(nonnull NSString *)version; /** * A concatenated string representing all the third-party libraries and version numbers. @@ -189,6 +140,8 @@ typedef NSString *_Nullable (^FIRAppGetUIDImplementation)(void); /** * Used by each SDK to send logs about SDK configuration status to Clearcut. + * + * @note This API is a no-op, please remove calls to it. */ - (void)sendLogsWithServiceName:(NSString *)serviceName version:(NSString *)version @@ -204,19 +157,6 @@ typedef NSString *_Nullable (^FIRAppGetUIDImplementation)(void); */ - (instancetype)initInstanceWithName:(NSString *)name options:(FIROptions *)options; -/** @fn getTokenForcingRefresh:withCallback: - @brief Retrieves the Firebase authentication token, possibly refreshing it. - @param forceRefresh Forces a token refresh. Useful if the token becomes invalid for some reason - other than an expiration. - @param callback The block to invoke when the token is available. - */ -- (void)getTokenForcingRefresh:(BOOL)forceRefresh withCallback:(FIRTokenCallback)callback; - -/** - * Expose the UID of the current user for Firestore. - */ -- (nullable NSString *)getUID; - @end NS_ASSUME_NONNULL_END diff --git a/Pods/FirebaseCore/Firebase/Core/Private/FIRComponent.h b/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRComponent.h similarity index 100% rename from Pods/FirebaseCore/Firebase/Core/Private/FIRComponent.h rename to Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRComponent.h diff --git a/Pods/FirebaseCore/Firebase/Core/Private/FIRComponentContainer.h b/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRComponentContainer.h similarity index 85% rename from Pods/FirebaseCore/Firebase/Core/Private/FIRComponentContainer.h rename to Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRComponentContainer.h index 10e2255389..8dfab9c10d 100644 --- a/Pods/FirebaseCore/Firebase/Core/Private/FIRComponentContainer.h +++ b/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRComponentContainer.h @@ -15,7 +15,8 @@ */ #import -#import "FIRComponentType.h" +#import +#import NS_ASSUME_NONNULL_BEGIN @@ -38,10 +39,6 @@ NS_SWIFT_NAME(FirebaseComponentContainer) /// Unavailable. Use the `container` property on `FIRApp`. - (instancetype)init NS_UNAVAILABLE; -/// Register a class to provide components for the interoperability system. The class should conform -/// to `FIRComponentRegistrant` and provide an array of `FIRComponent` objects. -+ (void)registerAsComponentRegistrant:(Class)klass; - @end NS_ASSUME_NONNULL_END diff --git a/Pods/FirebaseCore/Firebase/Core/Private/FIRComponentContainerInternal.h b/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRComponentContainerInternal.h similarity index 58% rename from Pods/FirebaseCore/Firebase/Core/Private/FIRComponentContainerInternal.h rename to Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRComponentContainerInternal.h index bb73e7bab5..bf39bc6ce4 100644 --- a/Pods/FirebaseCore/Firebase/Core/Private/FIRComponentContainerInternal.h +++ b/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRComponentContainerInternal.h @@ -15,8 +15,8 @@ */ #import -#import "FIRComponent.h" -#import "FIRComponentContainer.h" +#import +#import @class FIRApp; @@ -24,16 +24,26 @@ NS_ASSUME_NONNULL_BEGIN @interface FIRComponentContainer (Private) -/// Initializes a contain for a given app. This should only be called by the app itself. +/// Initializes a container for a given app. This should only be called by the app itself. - (instancetype)initWithApp:(FIRApp *)app; /// Retrieves an instance that conforms to the specified protocol. This will return `nil` if the -/// protocol wasn't registered, or if the instance couldn't instantiate for the provided app. +/// protocol wasn't registered, or if the instance couldn't be instantiated for the provided app. - (nullable id)instanceForProtocol:(Protocol *)protocol NS_SWIFT_NAME(instance(for:)); +/// Instantiates all the components that have registered as "eager" after initialization. +- (void)instantiateEagerComponents; + /// Remove all of the cached instances stored and allow them to clean up after themselves. - (void)removeAllCachedInstances; +/// Removes all the components. After calling this method no new instances will be created. +- (void)removeAllComponents; + +/// Register a class to provide components for the interoperability system. The class should conform +/// to `FIRComponentRegistrant` and provide an array of `FIRComponent` objects. ++ (void)registerAsComponentRegistrant:(Class)klass; + @end NS_ASSUME_NONNULL_END diff --git a/Pods/FirebaseCore/Firebase/Core/Private/FIRComponentType.h b/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRComponentType.h similarity index 100% rename from Pods/FirebaseCore/Firebase/Core/Private/FIRComponentType.h rename to Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRComponentType.h diff --git a/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRConfigurationInternal.h b/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRConfigurationInternal.h new file mode 100644 index 0000000000..0d1a36f666 --- /dev/null +++ b/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRConfigurationInternal.h @@ -0,0 +1,29 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +@class FIRAnalyticsConfiguration; + +@interface FIRConfiguration () + +/** + * The configuration class for Firebase Analytics. This should be removed once the logic for + * enabling and disabling Analytics is moved to Analytics. + */ +@property(nonatomic, readwrite) FIRAnalyticsConfiguration *analyticsConfiguration; + +@end diff --git a/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRCoreDiagnosticsConnector.h b/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRCoreDiagnosticsConnector.h new file mode 100644 index 0000000000..76c0c05f0a --- /dev/null +++ b/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRCoreDiagnosticsConnector.h @@ -0,0 +1,35 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +@class FIRDiagnosticsData; +@class FIROptions; + +NS_ASSUME_NONNULL_BEGIN + +/** Connects FIRCore with the CoreDiagnostics library. */ +@interface FIRCoreDiagnosticsConnector : NSObject + +/** Logs FirebaseCore related data. + * + * @param options The options object containing data to log. + */ ++ (void)logCoreTelemetryWithOptions:(FIROptions *)options; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/FirebaseCore/Firebase/Core/Private/FIRDependency.h b/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRDependency.h similarity index 100% rename from Pods/FirebaseCore/Firebase/Core/Private/FIRDependency.h rename to Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRDependency.h diff --git a/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRDiagnosticsData.h b/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRDiagnosticsData.h new file mode 100644 index 0000000000..ac5ef2c4f9 --- /dev/null +++ b/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRDiagnosticsData.h @@ -0,0 +1,35 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** Implements the FIRCoreDiagnosticsData protocol to log diagnostics data. */ +@interface FIRDiagnosticsData : NSObject + +/** Inserts values into the diagnosticObjects dictionary if the value isn't nil. + * + * @param value The value to insert if it's not nil. + * @param key The key to associate it with. + */ +- (void)insertValue:(nullable id)value forKey:(NSString *)key; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/FirebaseCore/Firebase/Core/Private/FIRErrorCode.h b/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRErrorCode.h similarity index 64% rename from Pods/FirebaseCore/Firebase/Core/Private/FIRErrorCode.h rename to Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRErrorCode.h index 01d3c56e36..f77b3d0024 100644 --- a/Pods/FirebaseCore/Firebase/Core/Private/FIRErrorCode.h +++ b/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRErrorCode.h @@ -34,22 +34,5 @@ typedef NS_ENUM(NSInteger, FIRErrorCode) { /** * Error code for failing to configure a specific service. */ - FIRErrorCodeAdMobFailed = -110, - FIRErrorCodeAppInviteFailed = -112, - FIRErrorCodeCloudMessagingFailed = -113, FIRErrorCodeConfigFailed = -114, - FIRErrorCodeDatabaseFailed = -115, - FIRErrorCodeCrashReportingFailed = -118, - FIRErrorCodeDurableDeepLinkFailed = -119, - FIRErrorCodeAuthFailed = -120, - FIRErrorCodeInstanceIDFailed = -121, - FIRErrorCodeStorageFailed = -123, - - /** - * Error codes returned by Dynamic Links - */ - FIRErrorCodeDynamicLinksStrongMatchNotAvailable = -124, - FIRErrorCodeDynamicLinksManualRetrievalNotEnabled = -125, - FIRErrorCodeDynamicLinksPendingLinkOnlyAvailableAtFirstLaunch = -126, - FIRErrorCodeDynamicLinksPendingLinkRetrievalAlreadyRunning = -127, }; diff --git a/Pods/FirebaseCore/Firebase/Core/Private/FIRErrors.h b/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRErrors.h similarity index 63% rename from Pods/FirebaseCore/Firebase/Core/Private/FIRErrors.h rename to Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRErrors.h index cf69252aa9..19e47328ac 100644 --- a/Pods/FirebaseCore/Firebase/Core/Private/FIRErrors.h +++ b/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRErrors.h @@ -19,15 +19,6 @@ #include "FIRErrorCode.h" extern NSString *const kFirebaseErrorDomain; -extern NSString *const kFirebaseAdMobErrorDomain; -extern NSString *const kFirebaseAppInviteErrorDomain; -extern NSString *const kFirebaseAuthErrorDomain; -extern NSString *const kFirebaseCloudMessagingErrorDomain; extern NSString *const kFirebaseConfigErrorDomain; extern NSString *const kFirebaseCoreErrorDomain; -extern NSString *const kFirebaseCrashReportingErrorDomain; -extern NSString *const kFirebaseDatabaseErrorDomain; -extern NSString *const kFirebaseDurableDeepLinkErrorDomain; -extern NSString *const kFirebaseInstanceIDErrorDomain; extern NSString *const kFirebasePerfErrorDomain; -extern NSString *const kFirebaseStorageErrorDomain; diff --git a/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRHeartbeatInfo.h b/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRHeartbeatInfo.h new file mode 100644 index 0000000000..bfff73e5d9 --- /dev/null +++ b/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRHeartbeatInfo.h @@ -0,0 +1,39 @@ +// Copyright 2019 Google +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface FIRHeartbeatInfo : NSObject + +// Enum representing the different heartbeat codes. +typedef NS_ENUM(NSInteger, FIRHeartbeatInfoCode) { + FIRHeartbeatInfoCodeNone = 0, + FIRHeartbeatInfoCodeSDK = 1, + FIRHeartbeatInfoCodeGlobal = 2, + FIRHeartbeatInfoCodeCombined = 3, +}; + +/** + * Get heartbeat code requred for the sdk. + * @param heartbeatTag String representing the sdk heartbeat tag. + * @return Heartbeat code indicating whether or not an sdk/global heartbeat + * needs to be sent + */ ++ (FIRHeartbeatInfoCode)heartbeatCodeForTag:(NSString *)heartbeatTag; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/FirebaseCore/Firebase/Core/Private/FIRComponentRegistrant.h b/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRLibrary.h similarity index 64% rename from Pods/FirebaseCore/Firebase/Core/Private/FIRComponentRegistrant.h rename to Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRLibrary.h index ad2cad2146..af9d9685d5 100644 --- a/Pods/FirebaseCore/Firebase/Core/Private/FIRComponentRegistrant.h +++ b/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRLibrary.h @@ -14,25 +14,32 @@ * limitations under the License. */ -#ifndef FIRComponentRegistrant_h -#define FIRComponentRegistrant_h +#ifndef FIRLibrary_h +#define FIRLibrary_h #import -@class FIRComponent; +#import + +@class FIRApp; NS_ASSUME_NONNULL_BEGIN -/// Describes functionality for SDKs registering components in the `FIRComponentContainer`. -NS_SWIFT_NAME(ComponentRegistrant) -@protocol FIRComponentRegistrant +/// Provide an interface to register a library for userAgent logging and availability to others. +NS_SWIFT_NAME(Library) +@protocol FIRLibrary /// Returns one or more FIRComponents that will be registered in /// FIRApp and participate in dependency resolution and injection. + (NSArray *)componentsToRegister; +@optional +/// Implement this method if the library needs notifications for lifecycle events. This method is +/// called when the developer calls `FirebaseApp.configure()`. ++ (void)configureWithApp:(FIRApp *)app; + @end NS_ASSUME_NONNULL_END -#endif /* FIRComponentRegistrant_h */ +#endif /* FIRLibrary_h */ diff --git a/Pods/FirebaseCore/Firebase/Core/Private/FIRLogger.h b/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRLogger.h similarity index 93% rename from Pods/FirebaseCore/Firebase/Core/Private/FIRLogger.h rename to Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRLogger.h index a538199be1..548e389a4e 100644 --- a/Pods/FirebaseCore/Firebase/Core/Private/FIRLogger.h +++ b/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIRLogger.h @@ -16,7 +16,7 @@ #import -#import "FIRLoggerLevel.h" +#import NS_ASSUME_NONNULL_BEGIN @@ -29,19 +29,11 @@ extern FIRLoggerService kFIRLoggerABTesting; extern FIRLoggerService kFIRLoggerAdMob; extern FIRLoggerService kFIRLoggerAnalytics; extern FIRLoggerService kFIRLoggerAuth; -extern FIRLoggerService kFIRLoggerCore; extern FIRLoggerService kFIRLoggerCrash; -extern FIRLoggerService kFIRLoggerDatabase; -extern FIRLoggerService kFIRLoggerDynamicLinks; -extern FIRLoggerService kFIRLoggerFirestore; -extern FIRLoggerService kFIRLoggerInstanceID; -extern FIRLoggerService kFIRLoggerInvites; +extern FIRLoggerService kFIRLoggerCore; extern FIRLoggerService kFIRLoggerMLKit; -extern FIRLoggerService kFIRLoggerMessaging; extern FIRLoggerService kFIRLoggerPerf; extern FIRLoggerService kFIRLoggerRemoteConfig; -extern FIRLoggerService kFIRLoggerStorage; -extern FIRLoggerService kFIRLoggerSwizzler; /** * The key used to store the logger's error count. diff --git a/Pods/FirebaseCore/Firebase/Core/Private/FIROptionsInternal.h b/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIROptionsInternal.h similarity index 96% rename from Pods/FirebaseCore/Firebase/Core/Private/FIROptionsInternal.h rename to Pods/FirebaseCore/FirebaseCore/Sources/Private/FIROptionsInternal.h index 7bb40fc10d..0660a3cd8c 100644 --- a/Pods/FirebaseCore/Firebase/Core/Private/FIROptionsInternal.h +++ b/Pods/FirebaseCore/FirebaseCore/Sources/Private/FIROptionsInternal.h @@ -14,7 +14,7 @@ * limitations under the License. */ -#import "FIROptions.h" +#import /** * Keys for the strings in the plist file. @@ -65,7 +65,7 @@ extern NSString *const kServiceInfoFileType; * Indicates whether or not Analytics collection was explicitly enabled via a plist flag or at * runtime. */ -@property(nonatomic, readonly) BOOL isAnalyticsCollectionExpicitlySet; +@property(nonatomic, readonly) BOOL isAnalyticsCollectionExplicitlySet; /** * Whether or not Analytics Collection was enabled. Analytics Collection is enabled unless diff --git a/Pods/FirebaseCore/Firebase/Core/Public/FIRApp.h b/Pods/FirebaseCore/FirebaseCore/Sources/Public/FIRApp.h similarity index 100% rename from Pods/FirebaseCore/Firebase/Core/Public/FIRApp.h rename to Pods/FirebaseCore/FirebaseCore/Sources/Public/FIRApp.h diff --git a/Pods/FirebaseCore/Firebase/Core/Public/FIRConfiguration.h b/Pods/FirebaseCore/FirebaseCore/Sources/Public/FIRConfiguration.h similarity index 83% rename from Pods/FirebaseCore/Firebase/Core/Public/FIRConfiguration.h rename to Pods/FirebaseCore/FirebaseCore/Sources/Public/FIRConfiguration.h index 95bba5e7b3..8de3b076a6 100644 --- a/Pods/FirebaseCore/Firebase/Core/Public/FIRConfiguration.h +++ b/Pods/FirebaseCore/FirebaseCore/Sources/Public/FIRConfiguration.h @@ -16,14 +16,12 @@ #import -#import "FIRAnalyticsConfiguration.h" -#import "FIRLoggerLevel.h" +#import NS_ASSUME_NONNULL_BEGIN /** - * This interface provides global level properties that the developer can tweak, and the singleton - * of the Firebase Analytics configuration class. + * This interface provides global level properties that the developer can tweak. */ NS_SWIFT_NAME(FirebaseConfiguration) @interface FIRConfiguration : NSObject @@ -31,9 +29,6 @@ NS_SWIFT_NAME(FirebaseConfiguration) /** Returns the shared configuration object. */ @property(class, nonatomic, readonly) FIRConfiguration *sharedInstance NS_SWIFT_NAME(shared); -/** The configuration class for Firebase Analytics. */ -@property(nonatomic, readwrite) FIRAnalyticsConfiguration *analyticsConfiguration; - /** * Sets the logging level for internal Firebase logging. Firebase will only log messages * that are logged at or below loggerLevel. The messages are logged both to the Xcode diff --git a/Pods/FirebaseCore/Firebase/Core/Public/FIRLoggerLevel.h b/Pods/FirebaseCore/FirebaseCore/Sources/Public/FIRLoggerLevel.h similarity index 100% rename from Pods/FirebaseCore/Firebase/Core/Public/FIRLoggerLevel.h rename to Pods/FirebaseCore/FirebaseCore/Sources/Public/FIRLoggerLevel.h diff --git a/Pods/FirebaseCore/Firebase/Core/Public/FIROptions.h b/Pods/FirebaseCore/FirebaseCore/Sources/Public/FIROptions.h similarity index 93% rename from Pods/FirebaseCore/Firebase/Core/Public/FIROptions.h rename to Pods/FirebaseCore/FirebaseCore/Sources/Public/FIROptions.h index 87a01ddc71..67fbe5ba42 100644 --- a/Pods/FirebaseCore/Firebase/Core/Public/FIROptions.h +++ b/Pods/FirebaseCore/FirebaseCore/Sources/Public/FIROptions.h @@ -90,6 +90,13 @@ NS_SWIFT_NAME(FirebaseOptions) */ @property(nonatomic, copy, nullable) NSString *storageBucket; +/** + * The App Group identifier to share data between the application and the application extensions. + * The App Group must be configured in the application and on the Apple Developer Portal. Default + * value `nil`. + */ +@property(nonatomic, copy, nullable) NSString *appGroupID; + /** * Initializes a customized instance of FIROptions from the file at the given plist file path. This * will read the file synchronously from disk. diff --git a/Pods/FirebaseCore/Firebase/Core/Public/FirebaseCore.h b/Pods/FirebaseCore/FirebaseCore/Sources/Public/FirebaseCore.h similarity index 94% rename from Pods/FirebaseCore/Firebase/Core/Public/FirebaseCore.h rename to Pods/FirebaseCore/FirebaseCore/Sources/Public/FirebaseCore.h index fa26f694b7..95119aed92 100644 --- a/Pods/FirebaseCore/Firebase/Core/Public/FirebaseCore.h +++ b/Pods/FirebaseCore/FirebaseCore/Sources/Public/FirebaseCore.h @@ -14,7 +14,6 @@ * limitations under the License. */ -#import "FIRAnalyticsConfiguration.h" #import "FIRApp.h" #import "FIRConfiguration.h" #import "FIRLoggerLevel.h" diff --git a/Pods/FirebaseCore/README.md b/Pods/FirebaseCore/README.md index 00e6ade973..23d66e8586 100644 --- a/Pods/FirebaseCore/README.md +++ b/Pods/FirebaseCore/README.md @@ -1,9 +1,13 @@ -# Firebase iOS Open Source Development [![Build Status](https://travis-ci.org/firebase/firebase-ios-sdk.svg?branch=master)](https://travis-ci.org/firebase/firebase-ios-sdk) +# Firebase iOS Open Source Development + [![Actions Status][gh-core-badge]][gh-actions] + [![Actions Status][gh-dynamiclinks-badge]][gh-actions] + [![Actions Status][gh-datatransport-badge]][gh-actions] + [![Actions Status][gh-storage-badge]][gh-actions] + [![Actions Status][gh-zip-badge]][gh-actions] + [![Travis](https://travis-ci.org/firebase/firebase-ios-sdk.svg?branch=master)](https://travis-ci.org/firebase/firebase-ios-sdk) -This repository contains a subset of the Firebase iOS SDK source. It currently -includes FirebaseCore, FirebaseAuth, FirebaseDatabase, FirebaseFirestore, -FirebaseFunctions, FirebaseInAppMessagingDisplay, FirebaseMessaging and -FirebaseStorage. +This repository contains all Firebase iOS SDK source except FirebaseAnalytics, +FirebasePerformance, and FirebaseML. The repository also includes GoogleUtilities source. The [GoogleUtilities](GoogleUtilities/README.md) pod is @@ -68,26 +72,80 @@ Instructions for the experimental Carthage distribution are at Instructions for installing binary frameworks via [Rome](https://github.com/CocoaPods/Rome) are at [Rome](Rome.md). +### Using Firebase from a Framework or a library + +[Using Firebase from a Framework or a library](docs/firebase_in_libraries.md) + ## Development -Follow the subsequent instructions to develop, debug, unit test, run integration -tests, and try out reference samples: +To develop Firebase software in this repository, ensure that you have at least +the following software: + + * Xcode 10.1 (or later) + * CocoaPods 1.7.2 (or later) + * [CocoaPods generate](https://github.com/square/cocoapods-generate) + +For the pod that you want to develop: + +`pod gen Firebase{name here}.podspec --local-sources=./ --auto-open --platforms=ios` + +Note: If the CocoaPods cache is out of date, you may need to run +`pod repo update` before the `pod gen` command. + +Note: Set the `--platforms` option to `macos` or `tvos` to develop/test for +those platforms. Since 10.2, Xcode does not properly handle multi-platform +CocoaPods workspaces. + +Firestore has a self contained Xcode project. See +[Firestore/README.md](Firestore/README.md). + +### Development for Catalyst +* `pod gen {name here}.podspec --local-sources=./ --auto-open --platforms=ios` +* Check the Mac box in the App-iOS Build Settings +* Sign the App in the Settings Signing & Capabilities tab +* Click Pods in the Project Manager +* Add Signing to the iOS host app and unit test targets +* Select the Unit-unit scheme +* Run it to build and test + +### Adding a New Firebase Pod + +See [AddNewPod.md](AddNewPod.md). + +### Code Formatting + +To ensure that the code is formatted consistently, run the script +[./scripts/style.sh](https://github.com/firebase/firebase-ios-sdk/blob/master/scripts/style.sh) +before creating a PR. + +Travis will verify that any code changes are done in a style compliant way. Install +`clang-format` and `swiftformat`. +These commands will get the right versions: ``` -$ git clone git@github.com:firebase/firebase-ios-sdk.git -$ cd firebase-ios-sdk/Example -$ pod update -$ open Firebase.xcworkspace +brew upgrade https://raw.githubusercontent.com/Homebrew/homebrew-core/e3496d9/Formula/clang-format.rb +brew upgrade https://raw.githubusercontent.com/Homebrew/homebrew-core/7963c3d/Formula/swiftformat.rb ``` -Firestore and Functions have self contained Xcode projects. See -[Firestore/README.md](Firestore/README.md) and -[Functions/README.md](Functions/README.md). +Note: if you already have a newer version of these installed you may need to +`brew switch` to this version. + +To update this section, find the versions of clang-format and swiftformat.rb to +match the versions in the CI failure logs +[here](https://github.com/Homebrew/homebrew-core/tree/master/Formula). ### Running Unit Tests Select a scheme and press Command-u to build a component and run its unit tests. +#### Viewing Code Coverage + +First, make sure that [xcov](https://github.com/nakiostudio/xcov) is installed with `gem install xcov`. + +After running the `AllUnitTests_iOS` scheme in Xcode, execute +`xcov --workspace Firebase.xcworkspace --scheme AllUnitTests_iOS --output_directory xcov_output` +at Example/ in the terminal. This will aggregate the coverage, and you can run `open xcov_output/index.html` to see the results. + ### Running Sample Apps In order to run the sample apps and integration tests, you'll need valid `GoogleService-Info.plist` files for those samples. The Firebase Xcode project contains dummy plist @@ -148,23 +206,43 @@ We've seen an amazing amount of interest and contributions to improve the Fireba very grateful! We'd like to empower as many developers as we can to be able to use Firebase and participate in the Firebase community. -### macOS and tvOS -FirebaseAuth, FirebaseCore, FirebaseDatabase and FirebaseStorage now compile, run unit tests, and -work on macOS and tvOS, thanks to contributions from the community. There are a few tweaks needed, -like ensuring iOS-only, macOS-only, or tvOS-only code is correctly guarded with checks for -`TARGET_OS_IOS`, `TARGET_OS_OSX` and `TARGET_OS_TV`. +### tvOS, macOS, watchOS and Catalyst +Thanks to contributions from the community, many of Firebase SDKs now compile, run unit tests, and work on +tvOS, macOS, watchOS and Catalyst. For tvOS, checkout the [Sample](Example/tvOSSample). +For watchOS, currently only Messaging and Storage (and their dependencies) have limited support. Checkout the +[Independent Watch App Sample](Example/watchOSSample). -Keep in mind that macOS and tvOS are not officially supported by Firebase, and this repository is -actively developed primarily for iOS. While we can catch basic unit test issues with Travis, there -may be some changes where the SDK no longer works as expected on macOS or tvOS. If you encounter -this, please [file an issue](https://github.com/firebase/firebase-ios-sdk/issues). +Keep in mind that macOS, tvOS, watchOS and Catalyst are not officially supported by Firebase, and this +repository is actively developed primarily for iOS. While we can catch basic unit test issues with +Travis, there may be some changes where the SDK no longer works as expected on macOS, tvOS or watchOS. If you +encounter this, please [file an issue](https://github.com/firebase/firebase-ios-sdk/issues). -For installation instructions, see [above](README.md#accessing-firebase-source-snapshots). +During app setup in the console, you may get to a step that mentions something like "Checking if the app +has communicated with our servers". This relies on Analytics and will not work on macOS/tvOS/watchOS/Catalyst. +**It's safe to ignore the message and continue**, the rest of the SDKs will work as expected. -Note that the Firebase pod is not available for macOS and tvOS. Install a selection of the -`FirebaseAuth`, `FirebaseCore`, `FirebaseDatabase` and `FirebaseStorage` CocoaPods. +To install, add a subset of the following to the Podfile: + +``` +pod 'Firebase/ABTesting' # No watchOS support yet +pod 'Firebase/Auth' # No watchOS support yet +pod 'Firebase/Crashlytics' # No watchOS support yet +pod 'Firebase/Database' # No watchOS support yet +pod 'Firebase/Firestore' # No watchOS support yet +pod 'Firebase/Functions' # No watchOS support yet +pod 'Firebase/Messaging' +pod 'Firebase/RemoteConfig' # No watchOS support yet +pod 'Firebase/Storage' +``` + +#### Additional Catalyst Notes + +* FirebaseAuth and FirebaseMessaging require adding `Keychain Sharing Capability` +to Build Settings. +* FirebaseFirestore requires signing the +[gRPC Resource target](https://github.com/firebase/firebase-ios-sdk/issues/3500#issuecomment-518741681). ## Roadmap @@ -183,3 +261,10 @@ The contents of this repository is licensed under the Your use of Firebase is governed by the [Terms of Service for Firebase Services](https://firebase.google.com/terms/). + +[gh-actions]: https://github.com/firebase/firebase-ios-sdk/actions +[gh-core-badge]: https://github.com/firebase/firebase-ios-sdk/workflows/core/badge.svg +[gh-datatransport-badge]: https://github.com/firebase/firebase-ios-sdk/workflows/datatransport/badge.svg +[gh-dynamiclinks-badge]: https://github.com/firebase/firebase-ios-sdk/workflows/dynamiclinks/badge.svg +[gh-storage-badge]: https://github.com/firebase/firebase-ios-sdk/workflows/storage/badge.svg +[gh-zip-badge]: https://github.com/firebase/firebase-ios-sdk/workflows/zip/badge.svg diff --git a/Pods/FirebaseCoreDiagnostics/Firebase/CoreDiagnostics/FIRCDLibrary/FIRCoreDiagnostics.m b/Pods/FirebaseCoreDiagnostics/Firebase/CoreDiagnostics/FIRCDLibrary/FIRCoreDiagnostics.m new file mode 100644 index 0000000000..87d57c4e8a --- /dev/null +++ b/Pods/FirebaseCoreDiagnostics/Firebase/CoreDiagnostics/FIRCDLibrary/FIRCoreDiagnostics.m @@ -0,0 +1,647 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import +#include + +#import +#import +#import +#import + +#import +#import +#import + +#import +#import + +#import +#import +#import + +#import "FIRCDLibrary/Protogen/nanopb/firebasecore.nanopb.h" + +/** The logger service string to use when printing to the console. */ +static GULLoggerService kFIRCoreDiagnostics = @"[FirebaseCoreDiagnostics/FIRCoreDiagnostics]"; + +#ifdef FIREBASE_BUILD_ZIP_FILE +static BOOL kUsingZipFile = YES; +#else // FIREBASE_BUILD_ZIP_FILE +static BOOL kUsingZipFile = NO; +#endif // FIREBASE_BUILD_ZIP_FILE + +#ifdef FIREBASE_BUILD_CARTHAGE +#define kDeploymentType logs_proto_mobilesdk_ios_ICoreConfiguration_DeploymentType_CARTHAGE +#elif FIREBASE_BUILD_ZIP_FILE +#define kDeploymentType logs_proto_mobilesdk_ios_ICoreConfiguration_DeploymentType_ZIP_FILE +#else +#define kDeploymentType logs_proto_mobilesdk_ios_ICoreConfiguration_DeploymentType_COCOAPODS +#endif + +static NSString *const kFIRServiceMLVisionOnDeviceAutoML = @"MLVisionOnDeviceAutoML"; +static NSString *const kFIRServiceMLVisionOnDeviceFace = @"MLVisionOnDeviceFace"; +static NSString *const kFIRServiceMLVisionOnDeviceBarcode = @"MLVisionOnDeviceBarcode"; +static NSString *const kFIRServiceMLVisionOnDeviceText = @"MLVisionOnDeviceText"; +static NSString *const kFIRServiceMLVisionOnDeviceLabel = @"MLVisionOnDeviceLabel"; +static NSString *const kFIRServiceMLVisionOnDeviceObjectDetection = + @"MLVisionOnDeviceObjectDetection"; +static NSString *const kFIRServiceMLModelInterpreter = @"MLModelInterpreter"; + +static NSString *const kFIRServiceAdMob = @"AdMob"; +static NSString *const kFIRServiceAuth = @"Auth"; +static NSString *const kFIRServiceAuthUI = @"AuthUI"; +static NSString *const kFIRServiceCrash = @"Crash"; +static NSString *const kFIRServiceDatabase = @"Database"; +static NSString *const kFIRServiceDynamicLinks = @"DynamicLinks"; +static NSString *const kFIRServiceFirestore = @"Firestore"; +static NSString *const kFIRServiceFunctions = @"Functions"; +static NSString *const kFIRServiceIAM = @"InAppMessaging"; +static NSString *const kFIRServiceInstanceID = @"InstanceID"; +static NSString *const kFIRServiceInvites = @"Invites"; +static NSString *const kFIRServiceMessaging = @"Messaging"; +static NSString *const kFIRServiceMeasurement = @"Measurement"; +static NSString *const kFIRServicePerformance = @"Performance"; +static NSString *const kFIRServiceRemoteConfig = @"RemoteConfig"; +static NSString *const kFIRServiceStorage = @"Storage"; +static NSString *const kGGLServiceAnalytics = @"Analytics"; +static NSString *const kGGLServiceSignIn = @"SignIn"; +static NSString *const kFIRAppDiagnosticsConfigurationTypeKey = + @"FIRAppDiagnosticsConfigurationTypeKey"; +static NSString *const kFIRAppDiagnosticsFIRAppKey = @"FIRAppDiagnosticsFIRAppKey"; +static NSString *const kFIRAppDiagnosticsSDKNameKey = @"FIRAppDiagnosticsSDKNameKey"; +static NSString *const kFIRAppDiagnosticsSDKVersionKey = @"FIRAppDiagnosticsSDKVersionKey"; +static NSString *const kFIRCoreDiagnosticsHeartbeatTag = @"FIRCoreDiagnostics"; + +/** + * The file name to the recent heartbeat date. + */ +NSString *const kFIRCoreDiagnosticsHeartbeatDateFileName = @"FIREBASE_DIAGNOSTICS_HEARTBEAT_DATE"; + +/** + * @note This should implement the GDTCOREventDataObject protocol, but can't because of + * weak-linking. + */ +@interface FIRCoreDiagnosticsLog : NSObject + +/** The config that will be converted to proto bytes. */ +@property(nonatomic) logs_proto_mobilesdk_ios_ICoreConfiguration config; + +@end + +@implementation FIRCoreDiagnosticsLog + +- (instancetype)initWithConfig:(logs_proto_mobilesdk_ios_ICoreConfiguration)config { + self = [super init]; + if (self) { + _config = config; + } + return self; +} + +// Provided and required by the GDTCOREventDataObject protocol. +- (NSData *)transportBytes { + pb_ostream_t sizestream = PB_OSTREAM_SIZING; + + // Encode 1 time to determine the size. + if (!pb_encode(&sizestream, logs_proto_mobilesdk_ios_ICoreConfiguration_fields, &_config)) { + GDTCORLogError(GDTCORMCETransportBytesError, @"Error in nanopb encoding for size: %s", + PB_GET_ERROR(&sizestream)); + } + + // Encode a 2nd time to actually get the bytes from it. + size_t bufferSize = sizestream.bytes_written; + CFMutableDataRef dataRef = CFDataCreateMutable(CFAllocatorGetDefault(), bufferSize); + CFDataSetLength(dataRef, bufferSize); + pb_ostream_t ostream = pb_ostream_from_buffer((void *)CFDataGetBytePtr(dataRef), bufferSize); + if (!pb_encode(&ostream, logs_proto_mobilesdk_ios_ICoreConfiguration_fields, &_config)) { + GDTCORLogError(GDTCORMCETransportBytesError, @"Error in nanopb encoding for bytes: %s", + PB_GET_ERROR(&ostream)); + } + CFDataSetLength(dataRef, ostream.bytes_written); + + return CFBridgingRelease(dataRef); +} + +- (void)dealloc { + pb_release(logs_proto_mobilesdk_ios_ICoreConfiguration_fields, &_config); +} + +@end + +NS_ASSUME_NONNULL_BEGIN + +/** This class produces a protobuf containing diagnostics and usage data to be logged. */ +@interface FIRCoreDiagnostics : NSObject + +/** The queue on which all diagnostics collection will occur. */ +@property(nonatomic, readonly) dispatch_queue_t diagnosticsQueue; + +/** The transport object used to send data. */ +@property(nonatomic, readonly) GDTCORTransport *transport; + +/** The storage to store the date of the last sent heartbeat. */ +@property(nonatomic, readonly) GULHeartbeatDateStorage *heartbeatDateStorage; + +@end + +NS_ASSUME_NONNULL_END + +@implementation FIRCoreDiagnostics + ++ (instancetype)sharedInstance { + static FIRCoreDiagnostics *sharedInstance; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + sharedInstance = [[FIRCoreDiagnostics alloc] init]; + }); + return sharedInstance; +} + +- (instancetype)init { + GDTCORTransport *transport = [[GDTCORTransport alloc] initWithMappingID:@"137" + transformers:nil + target:kGDTCORTargetFLL]; + + GULHeartbeatDateStorage *dateStorage = + [[GULHeartbeatDateStorage alloc] initWithFileName:kFIRCoreDiagnosticsHeartbeatDateFileName]; + + return [self initWithTransport:transport heartbeatDateStorage:dateStorage]; +} + +/** Initializer for unit tests. + * + * @param transport A `GDTCORTransport` instance which that be used to send event. + * @param heartbeatDateStorage An instanse of date storage to track heartbeat sending. + * @return Returns the initialized `FIRCoreDiagnostics` instance. + */ +- (instancetype)initWithTransport:(GDTCORTransport *)transport + heartbeatDateStorage:(GULHeartbeatDateStorage *)heartbeatDateStorage { + self = [super init]; + if (self) { + _diagnosticsQueue = + dispatch_queue_create("com.google.FIRCoreDiagnostics", DISPATCH_QUEUE_SERIAL); + _transport = transport; + _heartbeatDateStorage = heartbeatDateStorage; + } + return self; +} + +#pragma mark - Metadata helpers + +/** Returns the model of iOS device. Sample platform strings are @"iPhone7,1" for iPhone 6 Plus, + * @"iPhone7,2" for iPhone 6, etc. Refer to the Hardware strings at + * https://en.wikipedia.org/wiki/List_of_iOS_devices + * + * @return The device model as an NSString. + */ ++ (NSString *)deviceModel { + static NSString *deviceModel = nil; + if (deviceModel == nil) { + struct utsname systemInfo; + uname(&systemInfo); + deviceModel = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding]; + } + return deviceModel; +} + +#pragma mark - nanopb helper functions + +/** Callocs a pb_bytes_array and copies the given NSString's bytes into the bytes array. + * + * @note Memory needs to be free manually, through pb_free or pb_release. + * @param string The string to encode as pb_bytes. + */ +pb_bytes_array_t *FIREncodeString(NSString *string) { + NSData *stringBytes = [string dataUsingEncoding:NSUTF8StringEncoding]; + return FIREncodeData(stringBytes); +} + +/** Callocs a pb_bytes_array and copies the given NSData bytes into the bytes array. + * + * @note Memory needs to be free manually, through pb_free or pb_release. + * @param data The data to copy into the new bytes array. + */ +pb_bytes_array_t *FIREncodeData(NSData *data) { + pb_bytes_array_t *pbBytesArray = calloc(1, PB_BYTES_ARRAY_T_ALLOCSIZE(data.length)); + if (pbBytesArray != NULL) { + [data getBytes:pbBytesArray->bytes length:data.length]; + pbBytesArray->size = (pb_size_t)data.length; + } + return pbBytesArray; +} + +/** Maps a service string to the representative nanopb enum. + * + * @param serviceString The SDK service string to convert. + * @return The representative nanopb enum. + */ +logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType FIRMapFromServiceStringToTypeEnum( + NSString *serviceString) { + static NSDictionary *serviceStringToTypeEnum; + if (serviceStringToTypeEnum == nil) { + serviceStringToTypeEnum = @{ + kFIRServiceAdMob : @(logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_ADMOB), + kFIRServiceMessaging : @(logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_MESSAGING), + kFIRServiceMeasurement : + @(logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_MEASUREMENT), + kFIRServiceRemoteConfig : + @(logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_REMOTE_CONFIG), + kFIRServiceDatabase : @(logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_DATABASE), + kFIRServiceDynamicLinks : + @(logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_DYNAMIC_LINKS), + kFIRServiceAuth : @(logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_AUTH), + kFIRServiceAuthUI : @(logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_AUTH_UI), + kFIRServiceFirestore : @(logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_FIRESTORE), + kFIRServiceFunctions : @(logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_FUNCTIONS), + kFIRServicePerformance : + @(logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_PERFORMANCE), + kFIRServiceStorage : @(logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_STORAGE), + kFIRServiceMLVisionOnDeviceAutoML : + @(logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_ML_VISION_ON_DEVICE_AUTOML), + kFIRServiceMLVisionOnDeviceFace : + @(logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_ML_VISION_ON_DEVICE_FACE), + kFIRServiceMLVisionOnDeviceBarcode : + @(logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_ML_VISION_ON_DEVICE_BARCODE), + kFIRServiceMLVisionOnDeviceText : + @(logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_ML_VISION_ON_DEVICE_TEXT), + kFIRServiceMLVisionOnDeviceLabel : + @(logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_ML_VISION_ON_DEVICE_LABEL), + kFIRServiceMLVisionOnDeviceObjectDetection : @( + logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_ML_VISION_ON_DEVICE_OBJECT_DETECTION), + kFIRServiceMLModelInterpreter : + @(logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_ML_MODEL_INTERPRETER), + kGGLServiceAnalytics : @(logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_ANALYTICS), + kGGLServiceSignIn : @(logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_SIGN_IN), + kFIRServiceIAM : @(logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_IN_APP_MESSAGING), + }; + } + if (serviceStringToTypeEnum[serviceString] != nil) { + return (int32_t)serviceStringToTypeEnum[serviceString].longLongValue; + } + return logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_UNKNOWN_SDK_SERVICE; +} + +#pragma mark - Proto population functions + +/** Populates the given proto with data related to an SDK logDiagnostics call from the + * diagnosticObjects dictionary. + * + * @param config The proto to populate + * @param diagnosticObjects The dictionary of diagnostics objects. + */ +void FIRPopulateProtoWithInfoFromUserInfoParams(logs_proto_mobilesdk_ios_ICoreConfiguration *config, + NSDictionary *diagnosticObjects) { + NSNumber *configurationType = diagnosticObjects[kFIRCDConfigurationTypeKey]; + if (configurationType != nil) { + switch (configurationType.integerValue) { + case logs_proto_mobilesdk_ios_ICoreConfiguration_ConfigurationType_CORE: + config->configuration_type = + logs_proto_mobilesdk_ios_ICoreConfiguration_ConfigurationType_CORE; + config->has_configuration_type = 1; + break; + case logs_proto_mobilesdk_ios_ICoreConfiguration_ConfigurationType_SDK: + config->configuration_type = + logs_proto_mobilesdk_ios_ICoreConfiguration_ConfigurationType_SDK; + config->has_configuration_type = 1; + break; + default: + break; + } + } + + NSString *sdkName = diagnosticObjects[kFIRCDSdkNameKey]; + if (sdkName) { + config->sdk_name = FIRMapFromServiceStringToTypeEnum(sdkName); + config->has_sdk_name = 1; + } + + NSString *version = diagnosticObjects[kFIRCDSdkVersionKey]; + if (version) { + config->sdk_version = FIREncodeString(version); + } +} + +/** Populates the given proto with data from the calling FIRApp using the given + * diagnosticObjects dictionary. + * + * @param config The proto to populate + * @param diagnosticObjects The dictionary of diagnostics objects. + */ +void FIRPopulateProtoWithCommonInfoFromApp(logs_proto_mobilesdk_ios_ICoreConfiguration *config, + NSDictionary *diagnosticObjects) { + config->pod_name = logs_proto_mobilesdk_ios_ICoreConfiguration_PodName_FIREBASE; + config->has_pod_name = 1; + + if (!diagnosticObjects[kFIRCDllAppsCountKey]) { + GDTCORLogError(GDTCORMCEGeneralError, @"%@", + @"App count is a required value in the data dict."); + } + config->app_count = (int32_t)[diagnosticObjects[kFIRCDllAppsCountKey] integerValue]; + config->has_app_count = 1; + + NSString *googleAppID = diagnosticObjects[kFIRCDGoogleAppIDKey]; + if (googleAppID.length) { + config->app_id = FIREncodeString(googleAppID); + } + + NSString *bundleID = diagnosticObjects[kFIRCDBundleIDKey]; + if (bundleID.length) { + config->bundle_id = FIREncodeString(bundleID); + } + + NSString *firebaseUserAgent = diagnosticObjects[kFIRCDFirebaseUserAgentKey]; + if (firebaseUserAgent.length) { + config->platform_info = FIREncodeString(firebaseUserAgent); + } + + NSNumber *usingOptionsFromDefaultPlist = diagnosticObjects[kFIRCDUsingOptionsFromDefaultPlistKey]; + if (usingOptionsFromDefaultPlist != nil) { + config->use_default_app = [usingOptionsFromDefaultPlist boolValue]; + config->has_use_default_app = 1; + } + + NSString *libraryVersionID = diagnosticObjects[kFIRCDLibraryVersionIDKey]; + if (libraryVersionID) { + config->icore_version = FIREncodeString(libraryVersionID); + } + + NSString *deviceModel = [FIRCoreDiagnostics deviceModel]; + if (deviceModel.length) { + config->device_model = FIREncodeString(deviceModel); + } + + NSString *osVersion = [GULAppEnvironmentUtil systemVersion]; + if (osVersion.length) { + config->os_version = FIREncodeString(osVersion); + } + + config->using_zip_file = kUsingZipFile; + config->has_using_zip_file = 1; + config->deployment_type = kDeploymentType; + config->has_deployment_type = 1; + config->deployed_in_app_store = [GULAppEnvironmentUtil isFromAppStore]; + config->has_deployed_in_app_store = 1; +} + +/** Populates the given proto with installed services data. + * + * @param config The proto to populate + */ +void FIRPopulateProtoWithInstalledServices(logs_proto_mobilesdk_ios_ICoreConfiguration *config) { + NSMutableArray *sdkServiceInstalledArray = [NSMutableArray array]; + + // AdMob + if (NSClassFromString(@"GADBannerView") != nil) { + [sdkServiceInstalledArray addObject:@(FIRMapFromServiceStringToTypeEnum(kFIRServiceAdMob))]; + } + // CloudMessaging + if (NSClassFromString(@"FIRMessaging") != nil) { + [sdkServiceInstalledArray addObject:@(FIRMapFromServiceStringToTypeEnum(kFIRServiceMessaging))]; + } + // RemoteConfig + if (NSClassFromString(@"FIRRemoteConfig") != nil) { + [sdkServiceInstalledArray + addObject:@(FIRMapFromServiceStringToTypeEnum(kFIRServiceRemoteConfig))]; + } + // Measurement/Analtyics + if (NSClassFromString(@"FIRAnalytics") != nil) { + [sdkServiceInstalledArray + addObject:@(FIRMapFromServiceStringToTypeEnum(kFIRServiceMeasurement))]; + } + // ML Vision On Device AutoML. + if (NSClassFromString(@"FIRVisionOnDeviceAutoMLImageLabelerOptions") != nil) { + [sdkServiceInstalledArray + addObject:@(FIRMapFromServiceStringToTypeEnum(kFIRServiceMLVisionOnDeviceAutoML))]; + } + // ML Vision On Device Face. + if (NSClassFromString(@"FIRVisionFaceDetector") != nil && + NSClassFromString(@"GMVFaceDetector") != nil) { + [sdkServiceInstalledArray + addObject:@(FIRMapFromServiceStringToTypeEnum(kFIRServiceMLVisionOnDeviceFace))]; + } + // ML Vision On Device Barcode. + if (NSClassFromString(@"FIRVisionBarcodeDetector") != nil && + NSClassFromString(@"GMVBarcodeDetector") != nil) { + [sdkServiceInstalledArray + addObject:@(FIRMapFromServiceStringToTypeEnum(kFIRServiceMLVisionOnDeviceBarcode))]; + } + // ML Vision On Device Text. + if (NSClassFromString(@"FIRVisionTextDetector") != nil && + NSClassFromString(@"GMVTextDetector") != nil) { + [sdkServiceInstalledArray + addObject:@(FIRMapFromServiceStringToTypeEnum(kFIRServiceMLVisionOnDeviceText))]; + } + // ML Vision On Device Image Label. + if (NSClassFromString(@"FIRVisionLabelDetector") != nil && + NSClassFromString(@"GMVLabelDetector") != nil) { + [sdkServiceInstalledArray + addObject:@(FIRMapFromServiceStringToTypeEnum(kFIRServiceMLVisionOnDeviceLabel))]; + } + // ML Vision On Device Object. + if (NSClassFromString(@"FIRVisionObjectDetector") != nil) { + [sdkServiceInstalledArray + addObject:@(FIRMapFromServiceStringToTypeEnum(kFIRServiceMLVisionOnDeviceObjectDetection))]; + } + // ML Model Interpreter + if (NSClassFromString(@"FIRCustomModelInterpreter") != nil) { + [sdkServiceInstalledArray + addObject:@(FIRMapFromServiceStringToTypeEnum(kFIRServiceMLModelInterpreter))]; + } + // Database + if (NSClassFromString(@"FIRDatabase") != nil) { + [sdkServiceInstalledArray addObject:@(FIRMapFromServiceStringToTypeEnum(kFIRServiceDatabase))]; + } + // DynamicDeepLink + if (NSClassFromString(@"FIRDynamicLinks") != nil) { + [sdkServiceInstalledArray + addObject:@(FIRMapFromServiceStringToTypeEnum(kFIRServiceDynamicLinks))]; + } + // Auth + if (NSClassFromString(@"FIRAuth") != nil) { + [sdkServiceInstalledArray addObject:@(FIRMapFromServiceStringToTypeEnum(kFIRServiceAuth))]; + } + // AuthUI + if (NSClassFromString(@"FUIAuth") != nil) { + [sdkServiceInstalledArray addObject:@(FIRMapFromServiceStringToTypeEnum(kFIRServiceAuthUI))]; + } + // Firestore + if (NSClassFromString(@"FIRFirestore") != nil) { + [sdkServiceInstalledArray addObject:@(FIRMapFromServiceStringToTypeEnum(kFIRServiceFirestore))]; + } + // Functions + if (NSClassFromString(@"FIRFunctions") != nil) { + [sdkServiceInstalledArray addObject:@(FIRMapFromServiceStringToTypeEnum(kFIRServiceFunctions))]; + } + // Performance + if (NSClassFromString(@"FIRPerformance") != nil) { + [sdkServiceInstalledArray + addObject:@(FIRMapFromServiceStringToTypeEnum(kFIRServicePerformance))]; + } + // Storage + if (NSClassFromString(@"FIRStorage") != nil) { + [sdkServiceInstalledArray addObject:@(FIRMapFromServiceStringToTypeEnum(kFIRServiceStorage))]; + } + // SignIn via Google pod + if (NSClassFromString(@"GIDSignIn") != nil && NSClassFromString(@"GGLContext") != nil) { + [sdkServiceInstalledArray addObject:@(FIRMapFromServiceStringToTypeEnum(kGGLServiceSignIn))]; + } + // Analytics via Google pod + if (NSClassFromString(@"GAI") != nil && NSClassFromString(@"GGLContext") != nil) { + [sdkServiceInstalledArray addObject:@(FIRMapFromServiceStringToTypeEnum(kGGLServiceAnalytics))]; + } + + // In-App Messaging + if (NSClassFromString(@"FIRInAppMessaging") != nil) { + [sdkServiceInstalledArray addObject:@(FIRMapFromServiceStringToTypeEnum(kFIRServiceIAM))]; + } + + logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType *servicesInstalled = + calloc(sdkServiceInstalledArray.count, + sizeof(logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType)); + if (servicesInstalled == NULL) { + return; + } + for (NSUInteger i = 0; i < sdkServiceInstalledArray.count; i++) { + NSNumber *typeEnum = sdkServiceInstalledArray[i]; + logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType serviceType = + (int32_t)typeEnum.integerValue; + servicesInstalled[i] = serviceType; + } + + config->sdk_service_installed = servicesInstalled; + config->sdk_service_installed_count = (int32_t)sdkServiceInstalledArray.count; +} + +/** Populates the proto with the number of linked frameworks. + * + * @param config The proto to populate. + */ +void FIRPopulateProtoWithNumberOfLinkedFrameworks( + logs_proto_mobilesdk_ios_ICoreConfiguration *config) { + int numFrameworks = -1; // Subtract the app binary itself. + unsigned int numImages; + const char **imageNames = objc_copyImageNames(&numImages); + for (unsigned int i = 0; i < numImages; i++) { + NSString *imageName = [NSString stringWithUTF8String:imageNames[i]]; + if ([imageName rangeOfString:@"System/Library"].length != 0 // Apple .frameworks + || [imageName rangeOfString:@"Developer/Library"].length != 0 // Xcode debug .frameworks + || [imageName rangeOfString:@"usr/lib"].length != 0) { // Public .dylibs + continue; + } + numFrameworks++; + } + free(imageNames); + config->dynamic_framework_count = numFrameworks; + config->has_dynamic_framework_count = 1; +} + +/** Populates the proto with Info.plist values. + * + * @param config The proto to populate. + */ +void FIRPopulateProtoWithInfoPlistValues(logs_proto_mobilesdk_ios_ICoreConfiguration *config) { + NSDictionary *info = [[NSBundle mainBundle] infoDictionary]; + + NSString *xcodeVersion = info[@"DTXcodeBuild"] ?: @""; + NSString *sdkVersion = info[@"DTSDKBuild"] ?: @""; + NSString *combinedVersions = [NSString stringWithFormat:@"%@-%@", xcodeVersion, sdkVersion]; + config->apple_framework_version = FIREncodeString(combinedVersions); + + NSString *minVersion = info[@"MinimumOSVersion"]; + if (minVersion) { + config->min_supported_ios_version = FIREncodeString(minVersion); + } + + // Apps can turn off swizzling in the Info.plist, check if they've explicitly set the value and + // report it. It's enabled by default. + NSNumber *appDelegateSwizzledNum = info[@"FirebaseAppDelegateProxyEnabled"]; + BOOL appDelegateSwizzled = YES; + if ([appDelegateSwizzledNum isKindOfClass:[NSNumber class]]) { + appDelegateSwizzled = [appDelegateSwizzledNum boolValue]; + } + config->swizzling_enabled = appDelegateSwizzled; + config->has_swizzling_enabled = 1; +} + +#pragma mark - FIRCoreDiagnosticsInterop + ++ (void)sendDiagnosticsData:(nonnull id)diagnosticsData { + FIRCoreDiagnostics *diagnostics = [FIRCoreDiagnostics sharedInstance]; + [diagnostics sendDiagnosticsData:diagnosticsData]; +} + +- (void)sendDiagnosticsData:(nonnull id)diagnosticsData { + dispatch_async(self.diagnosticsQueue, ^{ + NSDictionary *diagnosticObjects = diagnosticsData.diagnosticObjects; + NSNumber *isDataCollectionDefaultEnabled = + diagnosticObjects[kFIRCDIsDataCollectionDefaultEnabledKey]; + if (isDataCollectionDefaultEnabled && ![isDataCollectionDefaultEnabled boolValue]) { + return; + } + + // Create the proto. + logs_proto_mobilesdk_ios_ICoreConfiguration icore_config = + logs_proto_mobilesdk_ios_ICoreConfiguration_init_default; + + icore_config.using_gdt = 1; + icore_config.has_using_gdt = 1; + + // Populate the proto with information. + FIRPopulateProtoWithInfoFromUserInfoParams(&icore_config, diagnosticObjects); + FIRPopulateProtoWithCommonInfoFromApp(&icore_config, diagnosticObjects); + FIRPopulateProtoWithInstalledServices(&icore_config); + FIRPopulateProtoWithNumberOfLinkedFrameworks(&icore_config); + FIRPopulateProtoWithInfoPlistValues(&icore_config); + [self setHeartbeatFlagIfNeededToConfig:&icore_config]; + + // This log object is capable of converting the proto to bytes. + FIRCoreDiagnosticsLog *log = [[FIRCoreDiagnosticsLog alloc] initWithConfig:icore_config]; + + // Send the log as a telemetry event. + GDTCOREvent *event = [self.transport eventForTransport]; + event.dataObject = (id)log; + [self.transport sendTelemetryEvent:event]; + }); +} + +#pragma mark - Heartbeat + +- (void)setHeartbeatFlagIfNeededToConfig:(logs_proto_mobilesdk_ios_ICoreConfiguration *)config { + // Check if need to send a heartbeat. + NSDate *currentDate = [NSDate date]; + NSDate *lastCheckin = + [self.heartbeatDateStorage heartbeatDateForTag:kFIRCoreDiagnosticsHeartbeatTag]; + if (lastCheckin) { + // Ensure the previous checkin was on a different date in the past. + if ([self isDate:currentDate inSameDayOrBeforeThan:lastCheckin]) { + return; + } + } + + // Update heartbeat sent date. + [self.heartbeatDateStorage setHearbeatDate:currentDate forTag:kFIRCoreDiagnosticsHeartbeatTag]; + // Set the flag. + config->sdk_name = logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_ICORE; + config->has_sdk_name = 1; +} + +- (BOOL)isDate:(NSDate *)date1 inSameDayOrBeforeThan:(NSDate *)date2 { + return [[NSCalendar currentCalendar] isDate:date1 inSameDayAsDate:date2] || + [date1 compare:date2] == NSOrderedAscending; +} + +@end diff --git a/Pods/FirebaseCoreDiagnostics/Firebase/CoreDiagnostics/FIRCDLibrary/Protogen/nanopb/firebasecore.nanopb.c b/Pods/FirebaseCoreDiagnostics/Firebase/CoreDiagnostics/FIRCDLibrary/Protogen/nanopb/firebasecore.nanopb.c new file mode 100644 index 0000000000..4b2ac2f74b --- /dev/null +++ b/Pods/FirebaseCoreDiagnostics/Firebase/CoreDiagnostics/FIRCDLibrary/Protogen/nanopb/firebasecore.nanopb.c @@ -0,0 +1,60 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-0.3.9.3 */ + +#include "firebasecore.nanopb.h" + +/* @@protoc_insertion_point(includes) */ +#if PB_PROTO_HEADER_VERSION != 30 +#error Regenerate this file with the current version of nanopb generator. +#endif + + + +const pb_field_t logs_proto_mobilesdk_ios_ICoreConfiguration_fields[22] = { + PB_FIELD( 1, UENUM , OPTIONAL, STATIC , FIRST, logs_proto_mobilesdk_ios_ICoreConfiguration, configuration_type, configuration_type, 0), + PB_FIELD( 7, UENUM , REPEATED, POINTER , OTHER, logs_proto_mobilesdk_ios_ICoreConfiguration, sdk_service_installed, configuration_type, 0), + PB_FIELD( 9, BYTES , OPTIONAL, POINTER , OTHER, logs_proto_mobilesdk_ios_ICoreConfiguration, device_model, sdk_service_installed, 0), + PB_FIELD( 10, BYTES , OPTIONAL, POINTER , OTHER, logs_proto_mobilesdk_ios_ICoreConfiguration, app_id, device_model, 0), + PB_FIELD( 12, BYTES , OPTIONAL, POINTER , OTHER, logs_proto_mobilesdk_ios_ICoreConfiguration, bundle_id, app_id, 0), + PB_FIELD( 16, UENUM , OPTIONAL, STATIC , OTHER, logs_proto_mobilesdk_ios_ICoreConfiguration, pod_name, bundle_id, 0), + PB_FIELD( 18, BYTES , OPTIONAL, POINTER , OTHER, logs_proto_mobilesdk_ios_ICoreConfiguration, icore_version, pod_name, 0), + PB_FIELD( 19, BYTES , OPTIONAL, POINTER , OTHER, logs_proto_mobilesdk_ios_ICoreConfiguration, sdk_version, icore_version, 0), + PB_FIELD( 20, UENUM , OPTIONAL, STATIC , OTHER, logs_proto_mobilesdk_ios_ICoreConfiguration, sdk_name, sdk_version, 0), + PB_FIELD( 21, INT32 , OPTIONAL, STATIC , OTHER, logs_proto_mobilesdk_ios_ICoreConfiguration, app_count, sdk_name, 0), + PB_FIELD( 22, BYTES , OPTIONAL, POINTER , OTHER, logs_proto_mobilesdk_ios_ICoreConfiguration, os_version, app_count, 0), + PB_FIELD( 24, BYTES , OPTIONAL, POINTER , OTHER, logs_proto_mobilesdk_ios_ICoreConfiguration, min_supported_ios_version, os_version, 0), + PB_FIELD( 25, BOOL , OPTIONAL, STATIC , OTHER, logs_proto_mobilesdk_ios_ICoreConfiguration, use_default_app, min_supported_ios_version, 0), + PB_FIELD( 26, BOOL , OPTIONAL, STATIC , OTHER, logs_proto_mobilesdk_ios_ICoreConfiguration, deployed_in_app_store, use_default_app, 0), + PB_FIELD( 27, INT32 , OPTIONAL, STATIC , OTHER, logs_proto_mobilesdk_ios_ICoreConfiguration, dynamic_framework_count, deployed_in_app_store, 0), + PB_FIELD( 28, BYTES , OPTIONAL, POINTER , OTHER, logs_proto_mobilesdk_ios_ICoreConfiguration, apple_framework_version, dynamic_framework_count, 0), + PB_FIELD( 29, BOOL , OPTIONAL, STATIC , OTHER, logs_proto_mobilesdk_ios_ICoreConfiguration, using_zip_file, apple_framework_version, 0), + PB_FIELD( 30, UENUM , OPTIONAL, STATIC , OTHER, logs_proto_mobilesdk_ios_ICoreConfiguration, deployment_type, using_zip_file, 0), + PB_FIELD( 31, BYTES , OPTIONAL, POINTER , OTHER, logs_proto_mobilesdk_ios_ICoreConfiguration, platform_info, deployment_type, 0), + PB_FIELD( 33, BOOL , OPTIONAL, STATIC , OTHER, logs_proto_mobilesdk_ios_ICoreConfiguration, swizzling_enabled, platform_info, 0), + PB_FIELD( 36, BOOL , OPTIONAL, STATIC , OTHER, logs_proto_mobilesdk_ios_ICoreConfiguration, using_gdt, swizzling_enabled, 0), + PB_LAST_FIELD +}; + + + + + + + +/* @@protoc_insertion_point(eof) */ diff --git a/Pods/FirebaseCoreDiagnostics/Firebase/CoreDiagnostics/FIRCDLibrary/Protogen/nanopb/firebasecore.nanopb.h b/Pods/FirebaseCoreDiagnostics/Firebase/CoreDiagnostics/FIRCDLibrary/Protogen/nanopb/firebasecore.nanopb.h new file mode 100644 index 0000000000..3e4c1950dc --- /dev/null +++ b/Pods/FirebaseCoreDiagnostics/Firebase/CoreDiagnostics/FIRCDLibrary/Protogen/nanopb/firebasecore.nanopb.h @@ -0,0 +1,193 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* Automatically generated nanopb header */ +/* Generated by nanopb-0.3.9.3 */ + +#ifndef PB_LOGS_PROTO_MOBILESDK_IOS_FIREBASECORE_NANOPB_H_INCLUDED +#define PB_LOGS_PROTO_MOBILESDK_IOS_FIREBASECORE_NANOPB_H_INCLUDED +#include + +/* @@protoc_insertion_point(includes) */ +#if PB_PROTO_HEADER_VERSION != 30 +#error Regenerate this file with the current version of nanopb generator. +#endif + + +/* Enum definitions */ +typedef enum _logs_proto_mobilesdk_ios_ICoreConfiguration_ConfigurationType { + logs_proto_mobilesdk_ios_ICoreConfiguration_ConfigurationType_UNKNOWN_CONFIGURATION_TYPE = 0, + logs_proto_mobilesdk_ios_ICoreConfiguration_ConfigurationType_CORE = 1, + logs_proto_mobilesdk_ios_ICoreConfiguration_ConfigurationType_SDK = 2 +} logs_proto_mobilesdk_ios_ICoreConfiguration_ConfigurationType; +#define _logs_proto_mobilesdk_ios_ICoreConfiguration_ConfigurationType_MIN logs_proto_mobilesdk_ios_ICoreConfiguration_ConfigurationType_UNKNOWN_CONFIGURATION_TYPE +#define _logs_proto_mobilesdk_ios_ICoreConfiguration_ConfigurationType_MAX logs_proto_mobilesdk_ios_ICoreConfiguration_ConfigurationType_SDK +#define _logs_proto_mobilesdk_ios_ICoreConfiguration_ConfigurationType_ARRAYSIZE ((logs_proto_mobilesdk_ios_ICoreConfiguration_ConfigurationType)(logs_proto_mobilesdk_ios_ICoreConfiguration_ConfigurationType_SDK+1)) + +typedef enum _logs_proto_mobilesdk_ios_ICoreConfiguration_BuildType { + logs_proto_mobilesdk_ios_ICoreConfiguration_BuildType_UNKNOWN_BUILD_TYPE = 0, + logs_proto_mobilesdk_ios_ICoreConfiguration_BuildType_INTERNAL = 1, + logs_proto_mobilesdk_ios_ICoreConfiguration_BuildType_EAP = 2, + logs_proto_mobilesdk_ios_ICoreConfiguration_BuildType_PROD = 3 +} logs_proto_mobilesdk_ios_ICoreConfiguration_BuildType; +#define _logs_proto_mobilesdk_ios_ICoreConfiguration_BuildType_MIN logs_proto_mobilesdk_ios_ICoreConfiguration_BuildType_UNKNOWN_BUILD_TYPE +#define _logs_proto_mobilesdk_ios_ICoreConfiguration_BuildType_MAX logs_proto_mobilesdk_ios_ICoreConfiguration_BuildType_PROD +#define _logs_proto_mobilesdk_ios_ICoreConfiguration_BuildType_ARRAYSIZE ((logs_proto_mobilesdk_ios_ICoreConfiguration_BuildType)(logs_proto_mobilesdk_ios_ICoreConfiguration_BuildType_PROD+1)) + +typedef enum _logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType { + logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_UNKNOWN_SDK_SERVICE = 0, + logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_ICORE = 1, + logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_ADMOB = 2, + logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_APP_INVITE = 3, + logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_SIGN_IN = 5, + logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_GCM = 6, + logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_MAPS = 7, + logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_SCION = 8, + logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_ANALYTICS = 9, + logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_APP_INDEXING = 10, + logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_CONFIG = 11, + logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_DURABLE_DEEP_LINKS = 12, + logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_CRASH = 13, + logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_AUTH = 14, + logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_DATABASE = 15, + logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_STORAGE = 16, + logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_MESSAGING = 17, + logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_MEASUREMENT = 18, + logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_REMOTE_CONFIG = 19, + logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_DYNAMIC_LINKS = 20, + logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_INVITES = 21, + logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_AUTH_UI = 22, + logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_FIRESTORE = 23, + logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_PERFORMANCE = 24, + logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_ML_VISION_ON_DEVICE_FACE = 26, + logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_ML_VISION_ON_DEVICE_BARCODE = 27, + logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_ML_VISION_ON_DEVICE_TEXT = 28, + logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_ML_VISION_ON_DEVICE_LABEL = 29, + logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_ML_MODEL_INTERPRETER = 30, + logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_IN_APP_MESSAGING = 31, + logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_FUNCTIONS = 32, + logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_ML_NATURAL_LANGUAGE = 33, + logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_ML_VISION_ON_DEVICE_AUTOML = 34, + logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_ML_VISION_ON_DEVICE_OBJECT_DETECTION = 35 +} logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType; +#define _logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_MIN logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_UNKNOWN_SDK_SERVICE +#define _logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_MAX logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_ML_VISION_ON_DEVICE_OBJECT_DETECTION +#define _logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_ARRAYSIZE ((logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType)(logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_ML_VISION_ON_DEVICE_OBJECT_DETECTION+1)) + +typedef enum _logs_proto_mobilesdk_ios_ICoreConfiguration_PodName { + logs_proto_mobilesdk_ios_ICoreConfiguration_PodName_UNKNOWN_POD_NAME = 0, + logs_proto_mobilesdk_ios_ICoreConfiguration_PodName_GOOGLE = 1, + logs_proto_mobilesdk_ios_ICoreConfiguration_PodName_FIREBASE = 2 +} logs_proto_mobilesdk_ios_ICoreConfiguration_PodName; +#define _logs_proto_mobilesdk_ios_ICoreConfiguration_PodName_MIN logs_proto_mobilesdk_ios_ICoreConfiguration_PodName_UNKNOWN_POD_NAME +#define _logs_proto_mobilesdk_ios_ICoreConfiguration_PodName_MAX logs_proto_mobilesdk_ios_ICoreConfiguration_PodName_FIREBASE +#define _logs_proto_mobilesdk_ios_ICoreConfiguration_PodName_ARRAYSIZE ((logs_proto_mobilesdk_ios_ICoreConfiguration_PodName)(logs_proto_mobilesdk_ios_ICoreConfiguration_PodName_FIREBASE+1)) + +typedef enum _logs_proto_mobilesdk_ios_ICoreConfiguration_DeploymentType { + logs_proto_mobilesdk_ios_ICoreConfiguration_DeploymentType_UNKNOWN = 0, + logs_proto_mobilesdk_ios_ICoreConfiguration_DeploymentType_COCOAPODS = 1, + logs_proto_mobilesdk_ios_ICoreConfiguration_DeploymentType_ZIP_FILE = 2, + logs_proto_mobilesdk_ios_ICoreConfiguration_DeploymentType_CARTHAGE = 3, + logs_proto_mobilesdk_ios_ICoreConfiguration_DeploymentType_SPM = 4 +} logs_proto_mobilesdk_ios_ICoreConfiguration_DeploymentType; +#define _logs_proto_mobilesdk_ios_ICoreConfiguration_DeploymentType_MIN logs_proto_mobilesdk_ios_ICoreConfiguration_DeploymentType_UNKNOWN +#define _logs_proto_mobilesdk_ios_ICoreConfiguration_DeploymentType_MAX logs_proto_mobilesdk_ios_ICoreConfiguration_DeploymentType_SPM +#define _logs_proto_mobilesdk_ios_ICoreConfiguration_DeploymentType_ARRAYSIZE ((logs_proto_mobilesdk_ios_ICoreConfiguration_DeploymentType)(logs_proto_mobilesdk_ios_ICoreConfiguration_DeploymentType_SPM+1)) + +/* Struct definitions */ +typedef struct _logs_proto_mobilesdk_ios_ICoreConfiguration { + bool has_configuration_type; + logs_proto_mobilesdk_ios_ICoreConfiguration_ConfigurationType configuration_type; + pb_size_t sdk_service_installed_count; + logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType *sdk_service_installed; + pb_bytes_array_t *device_model; + pb_bytes_array_t *app_id; + pb_bytes_array_t *bundle_id; + bool has_pod_name; + logs_proto_mobilesdk_ios_ICoreConfiguration_PodName pod_name; + pb_bytes_array_t *icore_version; + pb_bytes_array_t *sdk_version; + bool has_sdk_name; + logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType sdk_name; + bool has_app_count; + int32_t app_count; + pb_bytes_array_t *os_version; + pb_bytes_array_t *min_supported_ios_version; + bool has_use_default_app; + bool use_default_app; + bool has_deployed_in_app_store; + bool deployed_in_app_store; + bool has_dynamic_framework_count; + int32_t dynamic_framework_count; + pb_bytes_array_t *apple_framework_version; + bool has_using_zip_file; + bool using_zip_file; + bool has_deployment_type; + logs_proto_mobilesdk_ios_ICoreConfiguration_DeploymentType deployment_type; + pb_bytes_array_t *platform_info; + bool has_swizzling_enabled; + bool swizzling_enabled; + bool has_using_gdt; + bool using_gdt; +/* @@protoc_insertion_point(struct:logs_proto_mobilesdk_ios_ICoreConfiguration) */ +} logs_proto_mobilesdk_ios_ICoreConfiguration; + +/* Default values for struct fields */ + +/* Initializer values for message structs */ +#define logs_proto_mobilesdk_ios_ICoreConfiguration_init_default {false, _logs_proto_mobilesdk_ios_ICoreConfiguration_ConfigurationType_MIN, 0, NULL, NULL, NULL, NULL, false, _logs_proto_mobilesdk_ios_ICoreConfiguration_PodName_MIN, NULL, NULL, false, _logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_MIN, false, 0, NULL, NULL, false, 0, false, 0, false, 0, NULL, false, 0, false, _logs_proto_mobilesdk_ios_ICoreConfiguration_DeploymentType_MIN, NULL, false, 0, false, 0} +#define logs_proto_mobilesdk_ios_ICoreConfiguration_init_zero {false, _logs_proto_mobilesdk_ios_ICoreConfiguration_ConfigurationType_MIN, 0, NULL, NULL, NULL, NULL, false, _logs_proto_mobilesdk_ios_ICoreConfiguration_PodName_MIN, NULL, NULL, false, _logs_proto_mobilesdk_ios_ICoreConfiguration_ServiceType_MIN, false, 0, NULL, NULL, false, 0, false, 0, false, 0, NULL, false, 0, false, _logs_proto_mobilesdk_ios_ICoreConfiguration_DeploymentType_MIN, NULL, false, 0, false, 0} + +/* Field tags (for use in manual encoding/decoding) */ +#define logs_proto_mobilesdk_ios_ICoreConfiguration_pod_name_tag 16 +#define logs_proto_mobilesdk_ios_ICoreConfiguration_configuration_type_tag 1 +#define logs_proto_mobilesdk_ios_ICoreConfiguration_icore_version_tag 18 +#define logs_proto_mobilesdk_ios_ICoreConfiguration_sdk_version_tag 19 +#define logs_proto_mobilesdk_ios_ICoreConfiguration_sdk_service_installed_tag 7 +#define logs_proto_mobilesdk_ios_ICoreConfiguration_sdk_name_tag 20 +#define logs_proto_mobilesdk_ios_ICoreConfiguration_device_model_tag 9 +#define logs_proto_mobilesdk_ios_ICoreConfiguration_os_version_tag 22 +#define logs_proto_mobilesdk_ios_ICoreConfiguration_app_id_tag 10 +#define logs_proto_mobilesdk_ios_ICoreConfiguration_bundle_id_tag 12 +#define logs_proto_mobilesdk_ios_ICoreConfiguration_min_supported_ios_version_tag 24 +#define logs_proto_mobilesdk_ios_ICoreConfiguration_use_default_app_tag 25 +#define logs_proto_mobilesdk_ios_ICoreConfiguration_app_count_tag 21 +#define logs_proto_mobilesdk_ios_ICoreConfiguration_deployed_in_app_store_tag 26 +#define logs_proto_mobilesdk_ios_ICoreConfiguration_dynamic_framework_count_tag 27 +#define logs_proto_mobilesdk_ios_ICoreConfiguration_apple_framework_version_tag 28 +#define logs_proto_mobilesdk_ios_ICoreConfiguration_using_zip_file_tag 29 +#define logs_proto_mobilesdk_ios_ICoreConfiguration_deployment_type_tag 30 +#define logs_proto_mobilesdk_ios_ICoreConfiguration_platform_info_tag 31 +#define logs_proto_mobilesdk_ios_ICoreConfiguration_swizzling_enabled_tag 33 +#define logs_proto_mobilesdk_ios_ICoreConfiguration_using_gdt_tag 36 + +/* Struct field encoding specification for nanopb */ +extern const pb_field_t logs_proto_mobilesdk_ios_ICoreConfiguration_fields[22]; + +/* Maximum encoded size of messages (where known) */ +/* logs_proto_mobilesdk_ios_ICoreConfiguration_size depends on runtime parameters */ + +/* Message IDs (where set with "msgid" option) */ +#ifdef PB_MSGID + +#define FIREBASECORE_MESSAGES \ + + +#endif + +/* @@protoc_insertion_point(eof) */ + +#endif diff --git a/Pods/FirebaseCoreDiagnostics/LICENSE b/Pods/FirebaseCoreDiagnostics/LICENSE new file mode 100644 index 0000000000..d645695673 --- /dev/null +++ b/Pods/FirebaseCoreDiagnostics/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/Pods/FirebaseCoreDiagnostics/README.md b/Pods/FirebaseCoreDiagnostics/README.md new file mode 100644 index 0000000000..23d66e8586 --- /dev/null +++ b/Pods/FirebaseCoreDiagnostics/README.md @@ -0,0 +1,270 @@ +# Firebase iOS Open Source Development + [![Actions Status][gh-core-badge]][gh-actions] + [![Actions Status][gh-dynamiclinks-badge]][gh-actions] + [![Actions Status][gh-datatransport-badge]][gh-actions] + [![Actions Status][gh-storage-badge]][gh-actions] + [![Actions Status][gh-zip-badge]][gh-actions] + [![Travis](https://travis-ci.org/firebase/firebase-ios-sdk.svg?branch=master)](https://travis-ci.org/firebase/firebase-ios-sdk) + +This repository contains all Firebase iOS SDK source except FirebaseAnalytics, +FirebasePerformance, and FirebaseML. + +The repository also includes GoogleUtilities source. The +[GoogleUtilities](GoogleUtilities/README.md) pod is +a set of utilities used by Firebase and other Google products. + +Firebase is an app development platform with tools to help you build, grow and +monetize your app. More information about Firebase can be found at +[https://firebase.google.com](https://firebase.google.com). + +## Installation + +See the three subsections for details about three different installation methods. +1. [Standard pod install](README.md#standard-pod-install) +1. [Installing from the GitHub repo](README.md#installing-from-github) +1. [Experimental Carthage](README.md#carthage-ios-only) + +### Standard pod install + +Go to +[https://firebase.google.com/docs/ios/setup](https://firebase.google.com/docs/ios/setup). + +### Installing from GitHub + +For releases starting with 5.0.0, the source for each release is also deployed +to CocoaPods master and available via standard +[CocoaPods Podfile syntax](https://guides.cocoapods.org/syntax/podfile.html#pod). + +These instructions can be used to access the Firebase repo at other branches, +tags, or commits. + +#### Background + +See +[the Podfile Syntax Reference](https://guides.cocoapods.org/syntax/podfile.html#pod) +for instructions and options about overriding pod source locations. + +#### Accessing Firebase Source Snapshots + +All of the official releases are tagged in this repo and available via CocoaPods. To access a local +source snapshot or unreleased branch, use Podfile directives like the following: + +To access FirebaseFirestore via a branch: +``` +pod 'FirebaseCore', :git => 'https://github.com/firebase/firebase-ios-sdk.git', :branch => 'master' +pod 'FirebaseFirestore', :git => 'https://github.com/firebase/firebase-ios-sdk.git', :branch => 'master' +``` + +To access FirebaseMessaging via a checked out version of the firebase-ios-sdk repo do: + +``` +pod 'FirebaseCore', :path => '/path/to/firebase-ios-sdk' +pod 'FirebaseMessaging', :path => '/path/to/firebase-ios-sdk' +``` + +### Carthage (iOS only) + +Instructions for the experimental Carthage distribution are at +[Carthage](Carthage.md). + +### Rome + +Instructions for installing binary frameworks via +[Rome](https://github.com/CocoaPods/Rome) are at [Rome](Rome.md). + +### Using Firebase from a Framework or a library + +[Using Firebase from a Framework or a library](docs/firebase_in_libraries.md) + +## Development + +To develop Firebase software in this repository, ensure that you have at least +the following software: + + * Xcode 10.1 (or later) + * CocoaPods 1.7.2 (or later) + * [CocoaPods generate](https://github.com/square/cocoapods-generate) + +For the pod that you want to develop: + +`pod gen Firebase{name here}.podspec --local-sources=./ --auto-open --platforms=ios` + +Note: If the CocoaPods cache is out of date, you may need to run +`pod repo update` before the `pod gen` command. + +Note: Set the `--platforms` option to `macos` or `tvos` to develop/test for +those platforms. Since 10.2, Xcode does not properly handle multi-platform +CocoaPods workspaces. + +Firestore has a self contained Xcode project. See +[Firestore/README.md](Firestore/README.md). + +### Development for Catalyst +* `pod gen {name here}.podspec --local-sources=./ --auto-open --platforms=ios` +* Check the Mac box in the App-iOS Build Settings +* Sign the App in the Settings Signing & Capabilities tab +* Click Pods in the Project Manager +* Add Signing to the iOS host app and unit test targets +* Select the Unit-unit scheme +* Run it to build and test + +### Adding a New Firebase Pod + +See [AddNewPod.md](AddNewPod.md). + +### Code Formatting + +To ensure that the code is formatted consistently, run the script +[./scripts/style.sh](https://github.com/firebase/firebase-ios-sdk/blob/master/scripts/style.sh) +before creating a PR. + +Travis will verify that any code changes are done in a style compliant way. Install +`clang-format` and `swiftformat`. +These commands will get the right versions: + +``` +brew upgrade https://raw.githubusercontent.com/Homebrew/homebrew-core/e3496d9/Formula/clang-format.rb +brew upgrade https://raw.githubusercontent.com/Homebrew/homebrew-core/7963c3d/Formula/swiftformat.rb +``` + +Note: if you already have a newer version of these installed you may need to +`brew switch` to this version. + +To update this section, find the versions of clang-format and swiftformat.rb to +match the versions in the CI failure logs +[here](https://github.com/Homebrew/homebrew-core/tree/master/Formula). + +### Running Unit Tests + +Select a scheme and press Command-u to build a component and run its unit tests. + +#### Viewing Code Coverage + +First, make sure that [xcov](https://github.com/nakiostudio/xcov) is installed with `gem install xcov`. + +After running the `AllUnitTests_iOS` scheme in Xcode, execute +`xcov --workspace Firebase.xcworkspace --scheme AllUnitTests_iOS --output_directory xcov_output` +at Example/ in the terminal. This will aggregate the coverage, and you can run `open xcov_output/index.html` to see the results. + +### Running Sample Apps +In order to run the sample apps and integration tests, you'll need valid +`GoogleService-Info.plist` files for those samples. The Firebase Xcode project contains dummy plist +files without real values, but can be replaced with real plist files. To get your own +`GoogleService-Info.plist` files: + +1. Go to the [Firebase Console](https://console.firebase.google.com/) +2. Create a new Firebase project, if you don't already have one +3. For each sample app you want to test, create a new Firebase app with the sample app's bundle +identifier (e.g. `com.google.Database-Example`) +4. Download the resulting `GoogleService-Info.plist` and replace the appropriate dummy plist file +(e.g. in [Example/Database/App/](Example/Database/App/)); + +Some sample apps like Firebase Messaging ([Example/Messaging/App](Example/Messaging/App)) require +special Apple capabilities, and you will have to change the sample app to use a unique bundle +identifier that you can control in your own Apple Developer account. + +## Specific Component Instructions +See the sections below for any special instructions for those components. + +### Firebase Auth + +If you're doing specific Firebase Auth development, see +[the Auth Sample README](Example/Auth/README.md) for instructions about +building and running the FirebaseAuth pod along with various samples and tests. + +### Firebase Database + +To run the Database Integration tests, make your database authentication rules +[public](https://firebase.google.com/docs/database/security/quickstart). + +### Firebase Storage + +To run the Storage Integration tests, follow the instructions in +[FIRStorageIntegrationTests.m](Example/Storage/Tests/Integration/FIRStorageIntegrationTests.m). + +#### Push Notifications + +Push notifications can only be delivered to specially provisioned App IDs in the developer portal. +In order to actually test receiving push notifications, you will need to: + +1. Change the bundle identifier of the sample app to something you own in your Apple Developer +account, and enable that App ID for push notifications. +2. You'll also need to +[upload your APNs Provider Authentication Key or certificate to the Firebase Console](https://firebase.google.com/docs/cloud-messaging/ios/certs) +at **Project Settings > Cloud Messaging > [Your Firebase App]**. +3. Ensure your iOS device is added to your Apple Developer portal as a test device. + +#### iOS Simulator + +The iOS Simulator cannot register for remote notifications, and will not receive push notifications. +In order to receive push notifications, you'll have to follow the steps above and run the app on a +physical device. + +## Community Supported Efforts + +We've seen an amazing amount of interest and contributions to improve the Firebase SDKs, and we are +very grateful! We'd like to empower as many developers as we can to be able to use Firebase and +participate in the Firebase community. + +### tvOS, macOS, watchOS and Catalyst +Thanks to contributions from the community, many of Firebase SDKs now compile, run unit tests, and work on +tvOS, macOS, watchOS and Catalyst. + +For tvOS, checkout the [Sample](Example/tvOSSample). +For watchOS, currently only Messaging and Storage (and their dependencies) have limited support. Checkout the +[Independent Watch App Sample](Example/watchOSSample). + +Keep in mind that macOS, tvOS, watchOS and Catalyst are not officially supported by Firebase, and this +repository is actively developed primarily for iOS. While we can catch basic unit test issues with +Travis, there may be some changes where the SDK no longer works as expected on macOS, tvOS or watchOS. If you +encounter this, please [file an issue](https://github.com/firebase/firebase-ios-sdk/issues). + +During app setup in the console, you may get to a step that mentions something like "Checking if the app +has communicated with our servers". This relies on Analytics and will not work on macOS/tvOS/watchOS/Catalyst. +**It's safe to ignore the message and continue**, the rest of the SDKs will work as expected. + +To install, add a subset of the following to the Podfile: + +``` +pod 'Firebase/ABTesting' # No watchOS support yet +pod 'Firebase/Auth' # No watchOS support yet +pod 'Firebase/Crashlytics' # No watchOS support yet +pod 'Firebase/Database' # No watchOS support yet +pod 'Firebase/Firestore' # No watchOS support yet +pod 'Firebase/Functions' # No watchOS support yet +pod 'Firebase/Messaging' +pod 'Firebase/RemoteConfig' # No watchOS support yet +pod 'Firebase/Storage' +``` + +#### Additional Catalyst Notes + +* FirebaseAuth and FirebaseMessaging require adding `Keychain Sharing Capability` +to Build Settings. +* FirebaseFirestore requires signing the +[gRPC Resource target](https://github.com/firebase/firebase-ios-sdk/issues/3500#issuecomment-518741681). + +## Roadmap + +See [Roadmap](ROADMAP.md) for more about the Firebase iOS SDK Open Source +plans and directions. + +## Contributing + +See [Contributing](CONTRIBUTING.md) for more information on contributing to the Firebase +iOS SDK. + +## License + +The contents of this repository is licensed under the +[Apache License, version 2.0](http://www.apache.org/licenses/LICENSE-2.0). + +Your use of Firebase is governed by the +[Terms of Service for Firebase Services](https://firebase.google.com/terms/). + +[gh-actions]: https://github.com/firebase/firebase-ios-sdk/actions +[gh-core-badge]: https://github.com/firebase/firebase-ios-sdk/workflows/core/badge.svg +[gh-datatransport-badge]: https://github.com/firebase/firebase-ios-sdk/workflows/datatransport/badge.svg +[gh-dynamiclinks-badge]: https://github.com/firebase/firebase-ios-sdk/workflows/dynamiclinks/badge.svg +[gh-storage-badge]: https://github.com/firebase/firebase-ios-sdk/workflows/storage/badge.svg +[gh-zip-badge]: https://github.com/firebase/firebase-ios-sdk/workflows/zip/badge.svg diff --git a/Pods/FirebaseCoreDiagnosticsInterop/Interop/CoreDiagnostics/Public/FIRCoreDiagnosticsData.h b/Pods/FirebaseCoreDiagnosticsInterop/Interop/CoreDiagnostics/Public/FIRCoreDiagnosticsData.h new file mode 100644 index 0000000000..69c40721a2 --- /dev/null +++ b/Pods/FirebaseCoreDiagnosticsInterop/Interop/CoreDiagnostics/Public/FIRCoreDiagnosticsData.h @@ -0,0 +1,61 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** If present, is a BOOL wrapped in an NSNumber. */ +#define kFIRCDIsDataCollectionDefaultEnabledKey @"FIRCDIsDataCollectionDefaultEnabledKey" + +/** If present, is an int32_t wrapped in an NSNumber. */ +#define kFIRCDConfigurationTypeKey @"FIRCDConfigurationTypeKey" + +/** If present, is an NSString. */ +#define kFIRCDSdkNameKey @"FIRCDSdkNameKey" + +/** If present, is an NSString. */ +#define kFIRCDSdkVersionKey @"FIRCDSdkVersionKey" + +/** If present, is an int32_t wrapped in an NSNumber. */ +#define kFIRCDllAppsCountKey @"FIRCDllAppsCountKey" + +/** If present, is an NSString. */ +#define kFIRCDGoogleAppIDKey @"FIRCDGoogleAppIDKey" + +/** If present, is an NSString. */ +#define kFIRCDBundleIDKey @"FIRCDBundleID" + +/** If present, is a BOOL wrapped in an NSNumber. */ +#define kFIRCDUsingOptionsFromDefaultPlistKey @"FIRCDUsingOptionsFromDefaultPlistKey" + +/** If present, is an NSString. */ +#define kFIRCDLibraryVersionIDKey @"FIRCDLibraryVersionIDKey" + +/** If present, is an NSString. */ +#define kFIRCDFirebaseUserAgentKey @"FIRCDFirebaseUserAgentKey" + +/** Defines the interface of a data object needed to log diagnostics data. */ +@protocol FIRCoreDiagnosticsData + +@required + +/** A dictionary containing data (non-exhaustive) to be logged in diagnostics. */ +@property(nonatomic) NSDictionary *diagnosticObjects; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/FirebaseCoreDiagnosticsInterop/Interop/CoreDiagnostics/Public/FIRCoreDiagnosticsInterop.h b/Pods/FirebaseCoreDiagnosticsInterop/Interop/CoreDiagnostics/Public/FIRCoreDiagnosticsInterop.h new file mode 100644 index 0000000000..2b0eb710cd --- /dev/null +++ b/Pods/FirebaseCoreDiagnosticsInterop/Interop/CoreDiagnostics/Public/FIRCoreDiagnosticsInterop.h @@ -0,0 +1,34 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +#import "FIRCoreDiagnosticsData.h" + +NS_ASSUME_NONNULL_BEGIN + +/** Allows the interoperation of FirebaseCore and FirebaseCoreDiagnostics. */ +@protocol FIRCoreDiagnosticsInterop + +/** Sends the given diagnostics data. + * + * @param diagnosticsData The diagnostics data object to send. + */ ++ (void)sendDiagnosticsData:(id)diagnosticsData; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/FirebaseCoreDiagnosticsInterop/LICENSE b/Pods/FirebaseCoreDiagnosticsInterop/LICENSE new file mode 100644 index 0000000000..d645695673 --- /dev/null +++ b/Pods/FirebaseCoreDiagnosticsInterop/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/Pods/FirebaseCoreDiagnosticsInterop/README.md b/Pods/FirebaseCoreDiagnosticsInterop/README.md new file mode 100644 index 0000000000..3ddc8fbd29 --- /dev/null +++ b/Pods/FirebaseCoreDiagnosticsInterop/README.md @@ -0,0 +1,251 @@ +# Firebase iOS Open Source Development [![Build Status](https://travis-ci.org/firebase/firebase-ios-sdk.svg?branch=master)](https://travis-ci.org/firebase/firebase-ios-sdk) + +This repository contains a subset of the Firebase iOS SDK source. It currently +includes FirebaseCore, FirebaseABTesting, FirebaseAuth, FirebaseDatabase, +FirebaseFirestore, FirebaseFunctions, FirebaseInstanceID, FirebaseInAppMessaging, +FirebaseInAppMessagingDisplay, FirebaseMessaging, FirebaseRemoteConfig, and +FirebaseStorage. + +The repository also includes GoogleUtilities source. The +[GoogleUtilities](GoogleUtilities/README.md) pod is +a set of utilities used by Firebase and other Google products. + +Firebase is an app development platform with tools to help you build, grow and +monetize your app. More information about Firebase can be found at +[https://firebase.google.com](https://firebase.google.com). + +## Installation + +See the three subsections for details about three different installation methods. +1. [Standard pod install](README.md#standard-pod-install) +1. [Installing from the GitHub repo](README.md#installing-from-github) +1. [Experimental Carthage](README.md#carthage-ios-only) + +### Standard pod install + +Go to +[https://firebase.google.com/docs/ios/setup](https://firebase.google.com/docs/ios/setup). + +### Installing from GitHub + +For releases starting with 5.0.0, the source for each release is also deployed +to CocoaPods master and available via standard +[CocoaPods Podfile syntax](https://guides.cocoapods.org/syntax/podfile.html#pod). + +These instructions can be used to access the Firebase repo at other branches, +tags, or commits. + +#### Background + +See +[the Podfile Syntax Reference](https://guides.cocoapods.org/syntax/podfile.html#pod) +for instructions and options about overriding pod source locations. + +#### Accessing Firebase Source Snapshots + +All of the official releases are tagged in this repo and available via CocoaPods. To access a local +source snapshot or unreleased branch, use Podfile directives like the following: + +To access FirebaseFirestore via a branch: +``` +pod 'FirebaseCore', :git => 'https://github.com/firebase/firebase-ios-sdk.git', :branch => 'master' +pod 'FirebaseFirestore', :git => 'https://github.com/firebase/firebase-ios-sdk.git', :branch => 'master' +``` + +To access FirebaseMessaging via a checked out version of the firebase-ios-sdk repo do: + +``` +pod 'FirebaseCore', :path => '/path/to/firebase-ios-sdk' +pod 'FirebaseMessaging', :path => '/path/to/firebase-ios-sdk' +``` + +### Carthage (iOS only) + +Instructions for the experimental Carthage distribution are at +[Carthage](Carthage.md). + +### Rome + +Instructions for installing binary frameworks via +[Rome](https://github.com/CocoaPods/Rome) are at [Rome](Rome.md). + +## Development + +To develop Firebase software in this repository, ensure that you have at least +the following software: + + * Xcode 10.1 (or later) + * CocoaPods 1.7.2 (or later) + * [CocoaPods generate](https://github.com/square/cocoapods-generate) + +For the pod that you want to develop: + +`pod gen Firebase{name here}.podspec --local-sources=./ --auto-open --platforms=ios` + +Note: If the CocoaPods cache is out of date, you may need to run +`pod repo update` before the `pod gen` command. + +Note: Set the `--platforms` option to `macos` or `tvos` to develop/test for +those platforms. Since 10.2, Xcode does not properly handle multi-platform +CocoaPods workspaces. + +Firestore has a self contained Xcode project. See +[Firestore/README.md](Firestore/README.md). + +### Development for Catalyst +* `pod gen {name here}.podspec --local-sources=./ --auto-open --platforms=ios` +* Check the Mac box in the App-iOS Build Settings +* Sign the App in the Settings Signing & Capabilities tab +* Click Pods in the Project Manager +* Add Signing to the iOS host app and unit test targets +* Select the Unit-unit scheme +* Run it to build and test + +### Adding a New Firebase Pod + +See [AddNewPod.md](AddNewPod.md). + +### Code Formatting + +To ensure that the code is formatted consistently, run the script +[./scripts/style.sh](https://github.com/firebase/firebase-ios-sdk/blob/master/scripts/style.sh) +before creating a PR. + +Travis will verify that any code changes are done in a style compliant way. Install +`clang-format` and `swiftformat`. +These commands will get the right versions: + +``` +brew upgrade https://raw.githubusercontent.com/Homebrew/homebrew-core/e3496d9/Formula/clang-format.rb +brew upgrade https://raw.githubusercontent.com/Homebrew/homebrew-core/7963c3d/Formula/swiftformat.rb +``` + +Note: if you already have a newer version of these installed you may need to +`brew switch` to this version. + +To update this section, find the versions of clang-format and swiftformat.rb to +match the versions in the CI failure logs +[here](https://github.com/Homebrew/homebrew-core/tree/master/Formula). + +### Running Unit Tests + +Select a scheme and press Command-u to build a component and run its unit tests. + +#### Viewing Code Coverage + +First, make sure that [xcov](https://github.com/nakiostudio/xcov) is installed with `gem install xcov`. + +After running the `AllUnitTests_iOS` scheme in Xcode, execute +`xcov --workspace Firebase.xcworkspace --scheme AllUnitTests_iOS --output_directory xcov_output` +at Example/ in the terminal. This will aggregate the coverage, and you can run `open xcov_output/index.html` to see the results. + +### Running Sample Apps +In order to run the sample apps and integration tests, you'll need valid +`GoogleService-Info.plist` files for those samples. The Firebase Xcode project contains dummy plist +files without real values, but can be replaced with real plist files. To get your own +`GoogleService-Info.plist` files: + +1. Go to the [Firebase Console](https://console.firebase.google.com/) +2. Create a new Firebase project, if you don't already have one +3. For each sample app you want to test, create a new Firebase app with the sample app's bundle +identifier (e.g. `com.google.Database-Example`) +4. Download the resulting `GoogleService-Info.plist` and replace the appropriate dummy plist file +(e.g. in [Example/Database/App/](Example/Database/App/)); + +Some sample apps like Firebase Messaging ([Example/Messaging/App](Example/Messaging/App)) require +special Apple capabilities, and you will have to change the sample app to use a unique bundle +identifier that you can control in your own Apple Developer account. + +## Specific Component Instructions +See the sections below for any special instructions for those components. + +### Firebase Auth + +If you're doing specific Firebase Auth development, see +[the Auth Sample README](Example/Auth/README.md) for instructions about +building and running the FirebaseAuth pod along with various samples and tests. + +### Firebase Database + +To run the Database Integration tests, make your database authentication rules +[public](https://firebase.google.com/docs/database/security/quickstart). + +### Firebase Storage + +To run the Storage Integration tests, follow the instructions in +[FIRStorageIntegrationTests.m](Example/Storage/Tests/Integration/FIRStorageIntegrationTests.m). + +#### Push Notifications + +Push notifications can only be delivered to specially provisioned App IDs in the developer portal. +In order to actually test receiving push notifications, you will need to: + +1. Change the bundle identifier of the sample app to something you own in your Apple Developer +account, and enable that App ID for push notifications. +2. You'll also need to +[upload your APNs Provider Authentication Key or certificate to the Firebase Console](https://firebase.google.com/docs/cloud-messaging/ios/certs) +at **Project Settings > Cloud Messaging > [Your Firebase App]**. +3. Ensure your iOS device is added to your Apple Developer portal as a test device. + +#### iOS Simulator + +The iOS Simulator cannot register for remote notifications, and will not receive push notifications. +In order to receive push notifications, you'll have to follow the steps above and run the app on a +physical device. + +## Community Supported Efforts + +We've seen an amazing amount of interest and contributions to improve the Firebase SDKs, and we are +very grateful! We'd like to empower as many developers as we can to be able to use Firebase and +participate in the Firebase community. + +### tvOS, macOS, and Catalyst +Thanks to contributions from the community, FirebaseABTesting, FirebaseAuth, FirebaseCore, +FirebaseDatabase, FirebaseMessaging, FirebaseFirestore, +FirebaseFunctions, FirebaseRemoteConfig, and FirebaseStorage now compile, run unit tests, and work on +tvOS, macOS, and Catalyst. + +For tvOS, checkout the [Sample](Example/tvOSSample). + +Keep in mind that macOS, Catalyst and tvOS are not officially supported by Firebase, and this +repository is actively developed primarily for iOS. While we can catch basic unit test issues with +Travis, there may be some changes where the SDK no longer works as expected on macOS or tvOS. If you +encounter this, please [file an issue](https://github.com/firebase/firebase-ios-sdk/issues). + +To install, add a subset of the following to the Podfile: + +``` +pod 'Firebase/ABTesting' +pod 'Firebase/Auth' +pod 'Firebase/Database' +pod 'Firebase/Firestore' +pod 'Firebase/Functions' +pod 'Firebase/Messaging' +pod 'Firebase/RemoteConfig' +pod 'Firebase/Storage' +``` + +#### Additional Catalyst Notes + +* FirebaseAuth and FirebaseMessaging require adding `Keychain Sharing Capability` +to Build Settings. +* FirebaseFirestore requires signing the +[gRPC Resource target](https://github.com/firebase/firebase-ios-sdk/issues/3500#issuecomment-518741681). + +## Roadmap + +See [Roadmap](ROADMAP.md) for more about the Firebase iOS SDK Open Source +plans and directions. + +## Contributing + +See [Contributing](CONTRIBUTING.md) for more information on contributing to the Firebase +iOS SDK. + +## License + +The contents of this repository is licensed under the +[Apache License, version 2.0](http://www.apache.org/licenses/LICENSE-2.0). + +Your use of Firebase is governed by the +[Terms of Service for Firebase Services](https://firebase.google.com/terms/). diff --git a/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Errors/FIRInstallationsErrorUtil.h b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Errors/FIRInstallationsErrorUtil.h new file mode 100644 index 0000000000..5bc21a11c9 --- /dev/null +++ b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Errors/FIRInstallationsErrorUtil.h @@ -0,0 +1,56 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +#import + +@class FIRInstallationsHTTPError; + +NS_ASSUME_NONNULL_BEGIN + +void FIRInstallationsItemSetErrorToPointer(NSError *error, NSError **pointer); + +@interface FIRInstallationsErrorUtil : NSObject + ++ (NSError *)keyedArchiverErrorWithException:(NSException *)exception; ++ (NSError *)keyedArchiverErrorWithError:(NSError *)error; + ++ (NSError *)keychainErrorWithFunction:(NSString *)keychainFunction status:(OSStatus)status; + ++ (NSError *)installationItemNotFoundForAppID:(NSString *)appID appName:(NSString *)appName; + ++ (NSError *)JSONSerializationError:(NSError *)error; + ++ (NSError *)networkErrorWithError:(NSError *)error; + ++ (NSError *)FIDRegistrationErrorWithResponseMissingField:(NSString *)missingFieldName; + ++ (NSError *)corruptedIIDTokenData; + ++ (FIRInstallationsHTTPError *)APIErrorWithHTTPResponse:(NSHTTPURLResponse *)HTTPResponse + data:(nullable NSData *)data; ++ (BOOL)isAPIError:(NSError *)error withHTTPCode:(NSInteger)HTTPCode; + +/** + * Returns the passed error if it is already in the public domain or a new error with the passed + * error at `NSUnderlyingErrorKey`. + */ ++ (NSError *)publicDomainErrorWithError:(NSError *)error; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Errors/FIRInstallationsErrorUtil.m b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Errors/FIRInstallationsErrorUtil.m new file mode 100644 index 0000000000..f85923acef --- /dev/null +++ b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Errors/FIRInstallationsErrorUtil.m @@ -0,0 +1,124 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRInstallationsErrorUtil.h" + +#import "FIRInstallationsHTTPError.h" + +NSString *const kFirebaseInstallationsErrorDomain = @"com.firebase.installations"; + +void FIRInstallationsItemSetErrorToPointer(NSError *error, NSError **pointer) { + if (pointer != NULL) { + *pointer = error; + } +} + +@implementation FIRInstallationsErrorUtil + ++ (NSError *)keyedArchiverErrorWithException:(NSException *)exception { + NSString *failureReason = [NSString + stringWithFormat:@"NSKeyedArchiver exception with name: %@, reason: %@, userInfo: %@", + exception.name, exception.reason, exception.userInfo]; + return [self installationsErrorWithCode:FIRInstallationsErrorCodeUnknown + failureReason:failureReason + underlyingError:nil]; +} + ++ (NSError *)keyedArchiverErrorWithError:(NSError *)error { + NSString *failureReason = [NSString stringWithFormat:@"NSKeyedArchiver error."]; + return [self installationsErrorWithCode:FIRInstallationsErrorCodeUnknown + failureReason:failureReason + underlyingError:error]; +} + ++ (NSError *)keychainErrorWithFunction:(NSString *)keychainFunction status:(OSStatus)status { + NSString *failureReason = [NSString stringWithFormat:@"%@ (%li)", keychainFunction, (long)status]; + return [self installationsErrorWithCode:FIRInstallationsErrorCodeKeychain + failureReason:failureReason + underlyingError:nil]; +} + ++ (NSError *)installationItemNotFoundForAppID:(NSString *)appID appName:(NSString *)appName { + NSString *failureReason = + [NSString stringWithFormat:@"Installation for appID %@ appName %@ not found", appID, appName]; + return [self installationsErrorWithCode:FIRInstallationsErrorCodeUnknown + failureReason:failureReason + underlyingError:nil]; +} + ++ (NSError *)corruptedIIDTokenData { + NSString *failureReason = + @"IID token data stored in Keychain is corrupted or in an incompatible format."; + return [self installationsErrorWithCode:FIRInstallationsErrorCodeUnknown + failureReason:failureReason + underlyingError:nil]; +} + ++ (FIRInstallationsHTTPError *)APIErrorWithHTTPResponse:(NSHTTPURLResponse *)HTTPResponse + data:(nullable NSData *)data { + return [[FIRInstallationsHTTPError alloc] initWithHTTPResponse:HTTPResponse data:data]; +} + ++ (BOOL)isAPIError:(NSError *)error withHTTPCode:(NSInteger)HTTPCode { + if (![error isKindOfClass:[FIRInstallationsHTTPError class]]) { + return NO; + } + + return [(FIRInstallationsHTTPError *)error HTTPResponse].statusCode == HTTPCode; +} + ++ (NSError *)JSONSerializationError:(NSError *)error { + NSString *failureReason = [NSString stringWithFormat:@"Failed to serialize JSON data."]; + return [self installationsErrorWithCode:FIRInstallationsErrorCodeUnknown + failureReason:failureReason + underlyingError:nil]; +} + ++ (NSError *)FIDRegistrationErrorWithResponseMissingField:(NSString *)missingFieldName { + NSString *failureReason = [NSString + stringWithFormat:@"A required response field with name %@ is missing", missingFieldName]; + return [self installationsErrorWithCode:FIRInstallationsErrorCodeUnknown + failureReason:failureReason + underlyingError:nil]; +} + ++ (NSError *)networkErrorWithError:(NSError *)error { + return [self installationsErrorWithCode:FIRInstallationsErrorCodeServerUnreachable + failureReason:@"Network connection error." + underlyingError:error]; +} + ++ (NSError *)publicDomainErrorWithError:(NSError *)error { + if ([error.domain isEqualToString:kFirebaseInstallationsErrorDomain]) { + return error; + } + + return [self installationsErrorWithCode:FIRInstallationsErrorCodeUnknown + failureReason:nil + underlyingError:error]; +} + ++ (NSError *)installationsErrorWithCode:(FIRInstallationsErrorCode)code + failureReason:(nullable NSString *)failureReason + underlyingError:(nullable NSError *)underlyingError { + NSMutableDictionary *userInfo = [NSMutableDictionary dictionary]; + userInfo[NSUnderlyingErrorKey] = underlyingError; + userInfo[NSLocalizedFailureReasonErrorKey] = failureReason; + + return [NSError errorWithDomain:kFirebaseInstallationsErrorDomain code:code userInfo:userInfo]; +} + +@end diff --git a/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Errors/FIRInstallationsHTTPError.h b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Errors/FIRInstallationsHTTPError.h new file mode 100644 index 0000000000..ad0eb8c134 --- /dev/null +++ b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Errors/FIRInstallationsHTTPError.h @@ -0,0 +1,54 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** Represents an error caused by an unexpected API response. */ +@interface FIRInstallationsHTTPError : NSError + +@property(nonatomic, readonly) NSHTTPURLResponse *HTTPResponse; +@property(nonatomic, readonly, nonnull) NSData *data; + +- (instancetype)init NS_UNAVAILABLE; + +- (instancetype)initWithHTTPResponse:(NSHTTPURLResponse *)HTTPResponse data:(nullable NSData *)data; + +@end + +NS_ASSUME_NONNULL_END + +typedef NS_ENUM(NSInteger, FIRInstallationsHTTPCodes) { + FIRInstallationsHTTPCodesTooManyRequests = 429, + FIRInstallationsHTTPCodesServerInternalError = 500, +}; + +/** Possible response HTTP codes for `CreateInstallation` API request. */ +typedef NS_ENUM(NSInteger, FIRInstallationsRegistrationHTTPCode) { + FIRInstallationsRegistrationHTTPCodeSuccess = 201, + FIRInstallationsRegistrationHTTPCodeInvalidArgument = 400, + FIRInstallationsRegistrationHTTPCodeInvalidAPIKey = 401, + FIRInstallationsRegistrationHTTPCodeAPIKeyToProjectIDMismatch = 403, + FIRInstallationsRegistrationHTTPCodeProjectNotFound = 404, + FIRInstallationsRegistrationHTTPCodeTooManyRequests = 429, + FIRInstallationsRegistrationHTTPCodeServerInternalError = 500 +}; + +typedef NS_ENUM(NSInteger, FIRInstallationsAuthTokenHTTPCode) { + FIRInstallationsAuthTokenHTTPCodeInvalidAuthentication = 401, + FIRInstallationsAuthTokenHTTPCodeFIDNotFound = 404, +}; diff --git a/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Errors/FIRInstallationsHTTPError.m b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Errors/FIRInstallationsHTTPError.m new file mode 100644 index 0000000000..5b3eae22be --- /dev/null +++ b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Errors/FIRInstallationsHTTPError.m @@ -0,0 +1,78 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRInstallationsHTTPError.h" +#import "FIRInstallationsErrorUtil.h" + +@implementation FIRInstallationsHTTPError + +- (instancetype)initWithHTTPResponse:(NSHTTPURLResponse *)HTTPResponse + data:(nullable NSData *)data { + NSDictionary *userInfo = [FIRInstallationsHTTPError userInfoWithHTTPResponse:HTTPResponse + data:data]; + self = [super + initWithDomain:kFirebaseInstallationsErrorDomain + code:[FIRInstallationsHTTPError errorCodeWithHTTPCode:HTTPResponse.statusCode] + userInfo:userInfo]; + if (self) { + _HTTPResponse = HTTPResponse; + _data = data; + } + return self; +} + ++ (FIRInstallationsErrorCode)errorCodeWithHTTPCode:(NSInteger)HTTPCode { + return FIRInstallationsErrorCodeUnknown; +} + ++ (NSDictionary *)userInfoWithHTTPResponse:(NSHTTPURLResponse *)HTTPResponse + data:(nullable NSData *)data { + NSString *responseString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; + NSString *failureReason = [NSString + stringWithFormat:@"The server responded with an error. HTTP response: %@\nResponse body: %@", + HTTPResponse, responseString]; + return @{NSLocalizedFailureReasonErrorKey : failureReason}; +} + +#pragma mark - NSCopying + +- (id)copyWithZone:(NSZone *)zone { + return [[FIRInstallationsHTTPError alloc] initWithHTTPResponse:self.HTTPResponse data:self.data]; +} + +#pragma mark - NSSecureCoding + +- (nullable instancetype)initWithCoder:(NSCoder *)coder { + NSHTTPURLResponse *HTTPResponse = [coder decodeObjectOfClass:[NSHTTPURLResponse class] + forKey:@"HTTPResponse"]; + if (!HTTPResponse) { + return nil; + } + NSData *data = [coder decodeObjectOfClass:[NSData class] forKey:@"data"]; + + return [self initWithHTTPResponse:HTTPResponse data:data]; +} + +- (void)encodeWithCoder:(NSCoder *)coder { + [coder encodeObject:self.HTTPResponse forKey:@"HTTPResponse"]; + [coder encodeObject:self.data forKey:@"data"]; +} + ++ (BOOL)supportsSecureCoding { + return YES; +} + +@end diff --git a/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/FIRInstallations.m b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/FIRInstallations.m new file mode 100644 index 0000000000..71e7dd4345 --- /dev/null +++ b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/FIRInstallations.m @@ -0,0 +1,248 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRInstallations.h" + +#if __has_include() +#import +#else +#import "FBLPromises.h" +#endif + +#import +#import +#import +#import +#import +#import + +#import "FIRInstallationsAuthTokenResultInternal.h" + +#import "FIRInstallationsErrorUtil.h" +#import "FIRInstallationsIDController.h" +#import "FIRInstallationsItem.h" +#import "FIRInstallationsLogger.h" +#import "FIRInstallationsStoredAuthToken.h" +#import "FIRInstallationsVersion.h" + +NS_ASSUME_NONNULL_BEGIN + +@protocol FIRInstallationsInstanceProvider +@end + +@interface FIRInstallations () +@property(nonatomic, readonly) FIROptions *appOptions; +@property(nonatomic, readonly) NSString *appName; + +@property(nonatomic, readonly) FIRInstallationsIDController *installationsIDController; + +@end + +@implementation FIRInstallations + +#pragma mark - Firebase component + ++ (void)load { + [FIRApp registerInternalLibrary:(Class)self + withName:@"fire-install" + withVersion:[NSString stringWithUTF8String:FIRInstallationsVersionStr]]; +} + ++ (nonnull NSArray *)componentsToRegister { + FIRComponentCreationBlock creationBlock = + ^id _Nullable(FIRComponentContainer *container, BOOL *isCacheable) { + *isCacheable = YES; + FIRInstallations *installations = [[FIRInstallations alloc] initWithApp:container.app]; + return installations; + }; + + FIRComponent *installationsProvider = + [FIRComponent componentWithProtocol:@protocol(FIRInstallationsInstanceProvider) + instantiationTiming:FIRInstantiationTimingAlwaysEager + dependencies:@[] + creationBlock:creationBlock]; + return @[ installationsProvider ]; +} + +- (instancetype)initWithApp:(FIRApp *)app { + return [self initWitAppOptions:app.options appName:app.name]; +} + +- (instancetype)initWitAppOptions:(FIROptions *)appOptions appName:(NSString *)appName { + FIRInstallationsIDController *IDController = + [[FIRInstallationsIDController alloc] initWithGoogleAppID:appOptions.googleAppID + appName:appName + APIKey:appOptions.APIKey + projectID:appOptions.projectID + GCMSenderID:appOptions.GCMSenderID + accessGroup:appOptions.appGroupID]; + return [self initWithAppOptions:appOptions + appName:appName + installationsIDController:IDController + prefetchAuthToken:YES]; +} + +/// The initializer is supposed to be used by tests to inject `installationsStore`. +- (instancetype)initWithAppOptions:(FIROptions *)appOptions + appName:(NSString *)appName + installationsIDController:(FIRInstallationsIDController *)installationsIDController + prefetchAuthToken:(BOOL)prefetchAuthToken { + self = [super init]; + if (self) { + [[self class] validateAppOptions:appOptions appName:appName]; + [[self class] assertCompatibleIIDVersion]; + + _appOptions = [appOptions copy]; + _appName = [appName copy]; + _installationsIDController = installationsIDController; + + // Pre-fetch auth token. + if (prefetchAuthToken) { + [self authTokenWithCompletion:^(FIRInstallationsAuthTokenResult *_Nullable tokenResult, + NSError *_Nullable error){ + }]; + } + } + return self; +} + ++ (void)validateAppOptions:(FIROptions *)appOptions appName:(NSString *)appName { + NSMutableArray *missingFields = [NSMutableArray array]; + if (appName.length < 1) { + [missingFields addObject:@"`FirebaseApp.name`"]; + } + if (appOptions.APIKey.length < 1) { + [missingFields addObject:@"`FirebaseOptions.APIKey`"]; + } + if (appOptions.googleAppID.length < 1) { + [missingFields addObject:@"`FirebaseOptions.googleAppID`"]; + } + + // TODO(#4692): Check for `appOptions.projectID.length < 1` only. + // We can use `GCMSenderID` instead of `projectID` temporary. + if (appOptions.projectID.length < 1 && appOptions.GCMSenderID.length < 1) { + [missingFields addObject:@"`FirebaseOptions.projectID`"]; + } + + if (missingFields.count > 0) { + [NSException + raise:kFirebaseInstallationsErrorDomain + format: + @"%@[%@] Could not configure Firebase Installations due to invalid FirebaseApp " + @"options. The following parameters are nil or empty: %@. If you use " + @"GoogleServices-Info.plist please download the most recent version from the Firebase " + @"Console. If you configure Firebase in code, please make sure you specify all " + @"required parameters.", + kFIRLoggerInstallations, kFIRInstallationsMessageCodeInvalidFirebaseAppOptions, + [missingFields componentsJoinedByString:@", "]]; + } +} + +#pragma mark - Public + ++ (FIRInstallations *)installations { + FIRApp *defaultApp = [FIRApp defaultApp]; + if (!defaultApp) { + [NSException raise:kFirebaseInstallationsErrorDomain + format:@"The default FirebaseApp instance must be configured before the default" + @"FirebaseApp instance can be initialized. One way to ensure that is to " + @"call `[FIRApp configure];` (`FirebaseApp.configure()` in Swift) in the App" + @" Delegate's `application:didFinishLaunchingWithOptions:` " + @"(`application(_:didFinishLaunchingWithOptions:)` in Swift)."]; + } + + return [self installationsWithApp:defaultApp]; +} + ++ (FIRInstallations *)installationsWithApp:(FIRApp *)app { + id installations = + FIR_COMPONENT(FIRInstallationsInstanceProvider, app.container); + return (FIRInstallations *)installations; +} + +- (void)installationIDWithCompletion:(FIRInstallationsIDHandler)completion { + [self.installationsIDController getInstallationItem] + .then(^id(FIRInstallationsItem *installation) { + completion(installation.firebaseInstallationID, nil); + return nil; + }) + .catch(^(NSError *error) { + completion(nil, [FIRInstallationsErrorUtil publicDomainErrorWithError:error]); + }); +} + +- (void)authTokenWithCompletion:(FIRInstallationsTokenHandler)completion { + [self authTokenForcingRefresh:NO completion:completion]; +} + +- (void)authTokenForcingRefresh:(BOOL)forceRefresh + completion:(FIRInstallationsTokenHandler)completion { + [self.installationsIDController getAuthTokenForcingRefresh:forceRefresh] + .then(^FIRInstallationsAuthTokenResult *(FIRInstallationsItem *installation) { + FIRInstallationsAuthTokenResult *result = [[FIRInstallationsAuthTokenResult alloc] + initWithToken:installation.authToken.token + expirationDate:installation.authToken.expirationDate]; + return result; + }) + .then(^id(FIRInstallationsAuthTokenResult *token) { + completion(token, nil); + return nil; + }) + .catch(^void(NSError *error) { + completion(nil, [FIRInstallationsErrorUtil publicDomainErrorWithError:error]); + }); +} + +- (void)deleteWithCompletion:(void (^)(NSError *__nullable error))completion { + [self.installationsIDController deleteInstallation] + .then(^id(id result) { + completion(nil); + return nil; + }) + .catch(^void(NSError *error) { + completion([FIRInstallationsErrorUtil publicDomainErrorWithError:error]); + }); +} + +#pragma mark - IID version compatibility + ++ (void)assertCompatibleIIDVersion { + // We use this flag to disable IID compatibility exception for unit tests. +#ifdef FIR_INSTALLATIONS_ALLOWS_INCOMPATIBLE_IID_VERSION + return; +#else + if (![self isIIDVersionCompatible]) { + [NSException raise:kFirebaseInstallationsErrorDomain + format:@"FirebaseInstallations will not work correctly with current version of " + @"Firebase Instance ID. Please update your Firebase Instance ID version."]; + } +#endif +} + ++ (BOOL)isIIDVersionCompatible { + Class IIDClass = NSClassFromString(@"FIRInstanceID"); + if (IIDClass == nil) { + // It is OK if there is no IID at all. + return YES; + } + // We expect a compatible version having the method `+[FIRInstanceID usesFIS]` defined. + BOOL isCompatibleVersion = [IIDClass respondsToSelector:NSSelectorFromString(@"usesFIS")]; + return isCompatibleVersion; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/FIRInstallationsAuthTokenResult.m b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/FIRInstallationsAuthTokenResult.m new file mode 100644 index 0000000000..92e5fab197 --- /dev/null +++ b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/FIRInstallationsAuthTokenResult.m @@ -0,0 +1,30 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRInstallationsAuthTokenResultInternal.h" + +@implementation FIRInstallationsAuthTokenResult + +- (instancetype)initWithToken:(NSString *)token expirationDate:(NSDate *)expirationDate { + self = [super init]; + if (self) { + _authToken = [token copy]; + _expirationDate = expirationDate; + } + return self; +} + +@end diff --git a/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/FIRInstallationsAuthTokenResultInternal.h b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/FIRInstallationsAuthTokenResultInternal.h new file mode 100644 index 0000000000..0c959dba55 --- /dev/null +++ b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/FIRInstallationsAuthTokenResultInternal.h @@ -0,0 +1,27 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface FIRInstallationsAuthTokenResult (Internal) + +- (instancetype)initWithToken:(NSString *)token expirationDate:(NSDate *)expirationTime; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/FIRInstallationsItem.h b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/FIRInstallationsItem.h new file mode 100644 index 0000000000..95fdf835fe --- /dev/null +++ b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/FIRInstallationsItem.h @@ -0,0 +1,86 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +#import "FIRInstallationsStatus.h" + +@class FIRInstallationsStoredItem; +@class FIRInstallationsStoredAuthToken; +@class FIRInstallationsStoredIIDCheckin; + +NS_ASSUME_NONNULL_BEGIN + +/** + * The class represents the required installation ID and auth token data including possible states. + * The data is stored to Keychain via `FIRInstallationsStoredItem` which has only the storage + * relevant data and does not contain any logic. `FIRInstallationsItem` must be used on the logic + * level (not `FIRInstallationsStoredItem`). + */ +@interface FIRInstallationsItem : NSObject + +/// A `FirebaseApp` identifier. +@property(nonatomic, readonly) NSString *appID; +/// A `FirebaseApp` name. +@property(nonatomic, readonly) NSString *firebaseAppName; +/// A stable identifier that uniquely identifies the app instance. +@property(nonatomic, copy, nullable) NSString *firebaseInstallationID; +/// The `refreshToken` is used to authorize the auth token requests. +@property(nonatomic, copy, nullable) NSString *refreshToken; + +@property(nonatomic, nullable) FIRInstallationsStoredAuthToken *authToken; +@property(nonatomic, assign) FIRInstallationsStatus registrationStatus; + +/// Instance ID default token imported from IID store as a part of IID migration. +@property(nonatomic, nullable) NSString *IIDDefaultToken; + +- (instancetype)initWithAppID:(NSString *)appID firebaseAppName:(NSString *)firebaseAppName; + +/** + * Populates `FIRInstallationsItem` properties with data from `FIRInstallationsStoredItem`. + * @param item An instance of `FIRInstallationsStoredItem` to get data from. + */ +- (void)updateWithStoredItem:(FIRInstallationsStoredItem *)item; + +/** + * Creates a stored item with data from the object. + * @return Returns a `FIRInstallationsStoredItem` instance with the data from the object. + */ +- (FIRInstallationsStoredItem *)storedItem; + +/** + * The installation identifier. + * @return Returns a string uniquely identifying the installation. + */ +- (NSString *)identifier; + +/** + * The installation identifier. + * @param appID A `FirebaseApp` identifier. + * @param appName A `FirebaseApp` name. + * @return Returns a string uniquely identifying the installation. + */ ++ (NSString *)identifierWithAppID:(NSString *)appID appName:(NSString *)appName; + +/** + * Generate a new Firebase Installation Identifier. + * @return Returns a 22 characters long globally unique string created based on UUID. + */ ++ (NSString *)generateFID; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/FIRInstallationsItem.m b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/FIRInstallationsItem.m new file mode 100644 index 0000000000..bc819bf8a0 --- /dev/null +++ b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/FIRInstallationsItem.m @@ -0,0 +1,104 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRInstallationsItem.h" + +#import "FIRInstallationsStoredAuthToken.h" +#import "FIRInstallationsStoredItem.h" + +@implementation FIRInstallationsItem + +- (instancetype)initWithAppID:(NSString *)appID firebaseAppName:(NSString *)firebaseAppName { + self = [super init]; + if (self) { + _appID = [appID copy]; + _firebaseAppName = [firebaseAppName copy]; + } + return self; +} + +- (nonnull id)copyWithZone:(nullable NSZone *)zone { + FIRInstallationsItem *clone = [[FIRInstallationsItem alloc] initWithAppID:self.appID + firebaseAppName:self.firebaseAppName]; + clone.firebaseInstallationID = [self.firebaseInstallationID copy]; + clone.refreshToken = [self.refreshToken copy]; + clone.authToken = [self.authToken copy]; + clone.registrationStatus = self.registrationStatus; + + return clone; +} + +- (void)updateWithStoredItem:(FIRInstallationsStoredItem *)item { + self.firebaseInstallationID = item.firebaseInstallationID; + self.refreshToken = item.refreshToken; + self.authToken = item.authToken; + self.registrationStatus = item.registrationStatus; + self.IIDDefaultToken = item.IIDDefaultToken; +} + +- (FIRInstallationsStoredItem *)storedItem { + FIRInstallationsStoredItem *storedItem = [[FIRInstallationsStoredItem alloc] init]; + storedItem.firebaseInstallationID = self.firebaseInstallationID; + storedItem.refreshToken = self.refreshToken; + storedItem.authToken = self.authToken; + storedItem.registrationStatus = self.registrationStatus; + storedItem.IIDDefaultToken = self.IIDDefaultToken; + return storedItem; +} + +- (nonnull NSString *)identifier { + return [[self class] identifierWithAppID:self.appID appName:self.firebaseAppName]; +} + ++ (NSString *)identifierWithAppID:(NSString *)appID appName:(NSString *)appName { + return [appID stringByAppendingString:appName]; +} + ++ (NSString *)generateFID { + NSUUID *UUID = [NSUUID UUID]; + uuid_t UUIDBytes; + [UUID getUUIDBytes:UUIDBytes]; + + NSUInteger UUIDLength = sizeof(uuid_t); + NSData *UUIDData = [NSData dataWithBytes:UUIDBytes length:UUIDLength]; + + uint8_t UUIDLast4Bits = UUIDBytes[UUIDLength - 1] & 0b00001111; + + // FID first 4 bits must be `0111`. The last 4 UUID bits will be cut later to form a proper FID. + // To keep 16 random bytes we copy these last 4 UUID to the FID 1st byte after `0111` prefix. + uint8_t FIDPrefix = 0b01110000 | UUIDLast4Bits; + NSMutableData *FIDData = [NSMutableData dataWithBytes:&FIDPrefix length:1]; + + [FIDData appendData:UUIDData]; + NSString *FIDString = [self base64URLEncodedStringWithData:FIDData]; + + // A valid FID has exactly 22 base64 characters, which is 132 bits, or 16.5 bytes. + // Our generated ID has 16 bytes UUID + 1 byte prefix which after encoding with base64 will become + // 23 characters plus 1 character for "=" padding. + + // Remove the 23rd character that was added because of the extra 4 bits at the + // end of our 17 byte data and the '=' padding. + return [FIDString substringWithRange:NSMakeRange(0, 22)]; +} + ++ (NSString *)base64URLEncodedStringWithData:(NSData *)data { + NSString *string = [data base64EncodedStringWithOptions:0]; + string = [string stringByReplacingOccurrencesOfString:@"/" withString:@"_"]; + string = [string stringByReplacingOccurrencesOfString:@"+" withString:@"-"]; + return string; +} + +@end diff --git a/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/FIRInstallationsLogger.h b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/FIRInstallationsLogger.h new file mode 100644 index 0000000000..baeadb2e3a --- /dev/null +++ b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/FIRInstallationsLogger.h @@ -0,0 +1,51 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +#import + +extern FIRLoggerService kFIRLoggerInstallations; + +// FIRInstallationsAPIService.m +extern NSString *const kFIRInstallationsMessageCodeSendAPIRequest; +extern NSString *const kFIRInstallationsMessageCodeAPIRequestNetworkError; +extern NSString *const kFIRInstallationsMessageCodeAPIRequestResponse; +extern NSString *const kFIRInstallationsMessageCodeUnexpectedAPIRequestResponse; +extern NSString *const kFIRInstallationsMessageCodeParsingAPIResponse; +extern NSString *const kFIRInstallationsMessageCodeAPIResponseParsingInstallationFailed; +extern NSString *const kFIRInstallationsMessageCodeAPIResponseParsingInstallationSucceed; +extern NSString *const kFIRInstallationsMessageCodeAPIResponseParsingAuthTokenFailed; +extern NSString *const kFIRInstallationsMessageCodeAPIResponseParsingAuthTokenSucceed; + +// FIRInstallationsIDController.m +extern NSString *const kFIRInstallationsMessageCodeNewGetInstallationOperationCreated; +extern NSString *const kFIRInstallationsMessageCodeNewGetAuthTokenOperationCreated; +extern NSString *const kFIRInstallationsMessageCodeNewDeleteInstallationOperationCreated; +extern NSString *const kFIRInstallationsMessageCodeInvalidFirebaseConfiguration; + +// FIRInstallationsStoredItem.m +extern NSString *const kFIRInstallationsMessageCodeInstallationCoderVersionMismatch; + +// FIRInstallationsStoredAuthToken.m +extern NSString *const kFIRInstallationsMessageCodeAuthTokenCoderVersionMismatch; + +// FIRInstallationsStoredIIDCheckin.m +extern NSString *const kFIRInstallationsMessageCodeIIDCheckinCoderVersionMismatch; +extern NSString *const kFIRInstallationsMessageCodeIIDCheckinFailedToDecode; + +// FIRInstallations.m +extern NSString *const kFIRInstallationsMessageCodeInvalidFirebaseAppOptions; diff --git a/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/FIRInstallationsLogger.m b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/FIRInstallationsLogger.m new file mode 100644 index 0000000000..c2bdf37f1e --- /dev/null +++ b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/FIRInstallationsLogger.m @@ -0,0 +1,49 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRInstallationsLogger.h" + +FIRLoggerService kFIRLoggerInstallations = @"[Firebase/Installations]"; + +// FIRInstallationsAPIService.m +NSString *const kFIRInstallationsMessageCodeSendAPIRequest = @"I-FIS001001"; +NSString *const kFIRInstallationsMessageCodeAPIRequestNetworkError = @"I-FIS001002"; +NSString *const kFIRInstallationsMessageCodeAPIRequestResponse = @"I-FIS001003"; +NSString *const kFIRInstallationsMessageCodeUnexpectedAPIRequestResponse = @"I-FIS001004"; +NSString *const kFIRInstallationsMessageCodeParsingAPIResponse = @"I-FIS001005"; +NSString *const kFIRInstallationsMessageCodeAPIResponseParsingInstallationFailed = @"I-FIS001006"; +NSString *const kFIRInstallationsMessageCodeAPIResponseParsingInstallationSucceed = @"I-FIS001007"; +NSString *const kFIRInstallationsMessageCodeAPIResponseParsingAuthTokenFailed = @"I-FIS001008"; +NSString *const kFIRInstallationsMessageCodeAPIResponseParsingAuthTokenSucceed = @"I-FIS001009"; + +// FIRInstallationsIDController.m +NSString *const kFIRInstallationsMessageCodeNewGetInstallationOperationCreated = @"I-FIS002000"; +NSString *const kFIRInstallationsMessageCodeNewGetAuthTokenOperationCreated = @"I-FIS002001"; +NSString *const kFIRInstallationsMessageCodeNewDeleteInstallationOperationCreated = @"I-FIS002002"; +NSString *const kFIRInstallationsMessageCodeInvalidFirebaseConfiguration = @"I-FIS002003"; + +// FIRInstallationsStoredItem.m +NSString *const kFIRInstallationsMessageCodeInstallationCoderVersionMismatch = @"I-FIS003000"; + +// FIRInstallationsStoredAuthToken.m +NSString *const kFIRInstallationsMessageCodeAuthTokenCoderVersionMismatch = @"I-FIS004000"; + +// FIRInstallationsStoredIIDCheckin.m +NSString *const kFIRInstallationsMessageCodeIIDCheckinCoderVersionMismatch = @"I-FIS007000"; +NSString *const kFIRInstallationsMessageCodeIIDCheckinFailedToDecode = @"I-FIS007001"; + +// FIRInstallations.m +NSString *const kFIRInstallationsMessageCodeInvalidFirebaseAppOptions = @"I-FIS008000"; diff --git a/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/FIRInstallationsVersion.m b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/FIRInstallationsVersion.m new file mode 100644 index 0000000000..a75e3f5bea --- /dev/null +++ b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/FIRInstallationsVersion.m @@ -0,0 +1,23 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRInstallationsVersion.h" + +// Convert the macro to a string +#define STR(x) STR_EXPAND(x) +#define STR_EXPAND(x) #x + +const char *const FIRInstallationsVersionStr = (const char *const)STR(FIRInstallations_LIB_VERSION); diff --git a/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/IIDMigration/FIRInstallationsIIDStore.h b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/IIDMigration/FIRInstallationsIIDStore.h new file mode 100644 index 0000000000..e2408caa7e --- /dev/null +++ b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/IIDMigration/FIRInstallationsIIDStore.h @@ -0,0 +1,48 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +@class FBLPromise; + +NS_ASSUME_NONNULL_BEGIN + +/** The class encapsulates a port of a piece FirebaseInstanceID logic required to migrate IID. */ +@interface FIRInstallationsIIDStore : NSObject + +/** + * Retrieves existing IID if present. + * @return Returns a promise that is resolved with IID string if IID has been found or rejected with + * an error otherwise. + */ +- (FBLPromise *)existingIID; + +/** + * Deletes existing IID if present. + * @return Returns a promise that is resolved with `[NSNull null]` if the IID was successfully. + * deleted or was not found. The promise is rejected otherwise. + */ +- (FBLPromise *)deleteExistingIID; + +#if TARGET_OS_OSX +/// If not `nil`, then only this keychain will be used to save and read data (see +/// `kSecMatchSearchList` and `kSecUseKeychain`. It is mostly intended to be used by unit tests. +@property(nonatomic, nullable) SecKeychainRef keychainRef; +#endif // TARGET_OSX + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/IIDMigration/FIRInstallationsIIDStore.m b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/IIDMigration/FIRInstallationsIIDStore.m new file mode 100644 index 0000000000..1f3a82afa8 --- /dev/null +++ b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/IIDMigration/FIRInstallationsIIDStore.m @@ -0,0 +1,236 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRInstallationsIIDStore.h" + +#if __has_include() +#import +#else +#import "FBLPromises.h" +#endif + +#import +#import "FIRInstallationsErrorUtil.h" + +static NSString *const kFIRInstallationsIIDKeyPairPublicTagPrefix = + @"com.google.iid.keypair.public-"; +static NSString *const kFIRInstallationsIIDKeyPairPrivateTagPrefix = + @"com.google.iid.keypair.private-"; +static NSString *const kFIRInstallationsIIDCreationTimePlistKey = @"|S|cre"; + +@implementation FIRInstallationsIIDStore + +- (FBLPromise *)existingIID { + return [FBLPromise onQueue:dispatch_get_global_queue(QOS_CLASS_UTILITY, 0) + do:^id _Nullable { + if (![self hasPlistIIDFlag]) { + return nil; + } + + NSData *IIDPublicKeyData = [self IIDPublicKeyData]; + return [self IIDWithPublicKeyData:IIDPublicKeyData]; + }] + .validate(^BOOL(NSString *_Nullable IID) { + return IID.length > 0; + }); +} + +- (FBLPromise *)deleteExistingIID { + return [FBLPromise onQueue:dispatch_get_global_queue(QOS_CLASS_UTILITY, 0) + do:^id _Nullable { + NSError *error; + if (![self deleteIIDFlagFromPlist:&error]) { + return error; + } + + if (![self deleteIID:&error]) { + return error; + } + + return [NSNull null]; + }]; +} + +#pragma mark - IID decoding + +- (NSString *)IIDWithPublicKeyData:(NSData *)publicKeyData { + NSData *publicKeySHA1 = [self sha1WithData:publicKeyData]; + + const uint8_t *bytes = publicKeySHA1.bytes; + NSMutableData *identityData = [NSMutableData dataWithData:publicKeySHA1]; + + uint8_t b0 = bytes[0]; + // Take the first byte and make the initial four 7 by initially making the initial 4 bits 0 + // and then adding 0x70 to it. + b0 = 0x70 + (0xF & b0); + // failsafe should give you back b0 itself + b0 = (b0 & 0xFF); + [identityData replaceBytesInRange:NSMakeRange(0, 1) withBytes:&b0]; + NSData *data = [identityData subdataWithRange:NSMakeRange(0, 8 * sizeof(Byte))]; + return [self base64URLEncodedStringWithData:data]; +} + +- (NSData *)sha1WithData:(NSData *)data { + unsigned char output[CC_SHA1_DIGEST_LENGTH]; + unsigned int length = (unsigned int)[data length]; + + CC_SHA1(data.bytes, length, output); + return [NSData dataWithBytes:output length:CC_SHA1_DIGEST_LENGTH]; +} + +- (NSString *)base64URLEncodedStringWithData:(NSData *)data { + NSString *string = [data base64EncodedStringWithOptions:0]; + string = [string stringByReplacingOccurrencesOfString:@"/" withString:@"_"]; + string = [string stringByReplacingOccurrencesOfString:@"+" withString:@"-"]; + string = [string stringByReplacingOccurrencesOfString:@"=" withString:@""]; + return string; +} + +#pragma mark - Keychain + +- (NSData *)IIDPublicKeyData { + NSString *tag = [self keychainKeyTagWithPrefix:kFIRInstallationsIIDKeyPairPublicTagPrefix]; + NSDictionary *query = [self keyPairQueryWithTag:tag returnData:YES]; + + CFTypeRef keyRef = NULL; + OSStatus status = SecItemCopyMatching((__bridge CFDictionaryRef)query, (CFTypeRef *)&keyRef); + + if (status != noErr) { + if (keyRef) { + CFRelease(keyRef); + } + return nil; + } + + return (__bridge NSData *)keyRef; +} + +- (BOOL)deleteIID:(NSError **)outError { + if (![self deleteKeychainKeyWithTagPrefix:kFIRInstallationsIIDKeyPairPublicTagPrefix + error:outError]) { + return NO; + } + + if (![self deleteKeychainKeyWithTagPrefix:kFIRInstallationsIIDKeyPairPrivateTagPrefix + error:outError]) { + return NO; + } + + return YES; +} + +- (BOOL)deleteKeychainKeyWithTagPrefix:(NSString *)tagPrefix error:(NSError **)outError { + NSString *keyTag = [self keychainKeyTagWithPrefix:kFIRInstallationsIIDKeyPairPublicTagPrefix]; + NSDictionary *keyQuery = [self keyPairQueryWithTag:keyTag returnData:NO]; + + OSStatus status = SecItemDelete((__bridge CFDictionaryRef)keyQuery); + + // When item is not found, it should NOT be considered as an error. The operation should + // continue. + if (status != noErr && status != errSecItemNotFound) { + FIRInstallationsItemSetErrorToPointer( + [FIRInstallationsErrorUtil keychainErrorWithFunction:@"SecItemDelete" status:status], + outError); + return NO; + } + + return YES; +} + +- (NSDictionary *)keyPairQueryWithTag:(NSString *)tag returnData:(BOOL)shouldReturnData { + NSMutableDictionary *query = [NSMutableDictionary dictionary]; + NSData *tagData = [tag dataUsingEncoding:NSUTF8StringEncoding]; + + query[(__bridge id)kSecClass] = (__bridge id)kSecClassKey; + query[(__bridge id)kSecAttrApplicationTag] = tagData; + query[(__bridge id)kSecAttrKeyType] = (__bridge id)kSecAttrKeyTypeRSA; + if (shouldReturnData) { + query[(__bridge id)kSecReturnData] = @(YES); + } + +#if TARGET_OS_OSX + if (self.keychainRef) { + query[(__bridge NSString *)kSecMatchSearchList] = @[ (__bridge id)(self.keychainRef) ]; + } +#endif // TARGET_OSX + + return query; +} + +- (NSString *)keychainKeyTagWithPrefix:(NSString *)prefix { + NSString *mainAppBundleID = [[NSBundle mainBundle] bundleIdentifier]; + if (mainAppBundleID.length == 0) { + return nil; + } + return [NSString stringWithFormat:@"%@%@", prefix, mainAppBundleID]; +} + +- (NSString *)mainbundleIdentifier { + NSString *bundleIdentifier = [[NSBundle mainBundle] bundleIdentifier]; + if (!bundleIdentifier.length) { + return nil; + } + return bundleIdentifier; +} + +#pragma mark - Plist + +- (BOOL)deleteIIDFlagFromPlist:(NSError **)outError { + NSString *path = [self plistPath]; + if (![[NSFileManager defaultManager] fileExistsAtPath:path]) { + return YES; + } + + NSMutableDictionary *plistContent = [[NSMutableDictionary alloc] initWithContentsOfFile:path]; + plistContent[kFIRInstallationsIIDCreationTimePlistKey] = nil; + + if (@available(macOS 10.13, iOS 11.0, tvOS 11.0, *)) { + return [plistContent writeToURL:[NSURL fileURLWithPath:path] error:outError]; + } + + return [plistContent writeToFile:path atomically:YES]; +} + +- (BOOL)hasPlistIIDFlag { + NSString *path = [self plistPath]; + if (![[NSFileManager defaultManager] fileExistsAtPath:path]) { + return NO; + } + + NSDictionary *plistContent = [[NSDictionary alloc] initWithContentsOfFile:path]; + return plistContent[kFIRInstallationsIIDCreationTimePlistKey] != nil; +} + +- (NSString *)plistPath { + NSString *plistNameWithExtension = @"com.google.iid-keypair.plist"; + NSString *_subDirectoryName = @"Google/FirebaseInstanceID"; + + NSArray *directoryPaths = + NSSearchPathForDirectoriesInDomains([self supportedDirectory], NSUserDomainMask, YES); + NSArray *components = @[ directoryPaths.lastObject, _subDirectoryName, plistNameWithExtension ]; + + return [NSString pathWithComponents:components]; +} + +- (NSSearchPathDirectory)supportedDirectory { +#if TARGET_OS_TV + return NSCachesDirectory; +#else + return NSApplicationSupportDirectory; +#endif +} + +@end diff --git a/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/IIDMigration/FIRInstallationsIIDTokenStore.h b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/IIDMigration/FIRInstallationsIIDTokenStore.h new file mode 100644 index 0000000000..ed98e3d70e --- /dev/null +++ b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/IIDMigration/FIRInstallationsIIDTokenStore.h @@ -0,0 +1,36 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +@class FBLPromise; + +NS_ASSUME_NONNULL_BEGIN + +/** + * The class reads a default IID token from IID store if available. + */ +@interface FIRInstallationsIIDTokenStore : NSObject + +- (instancetype)init NS_UNAVAILABLE; + +- (instancetype)initWithGCMSenderID:(NSString *)GCMSenderID; + +- (FBLPromise *)existingIIDDefaultToken; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/IIDMigration/FIRInstallationsIIDTokenStore.m b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/IIDMigration/FIRInstallationsIIDTokenStore.m new file mode 100644 index 0000000000..1c9dbabeb6 --- /dev/null +++ b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/IIDMigration/FIRInstallationsIIDTokenStore.m @@ -0,0 +1,157 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRInstallationsIIDTokenStore.h" + +#if __has_include() +#import +#else +#import "FBLPromises.h" +#endif + +#import "FIRInstallationsErrorUtil.h" +#import "FIRInstallationsKeychainUtils.h" + +static NSString *const kFIRInstallationsIIDTokenKeychainId = @"com.google.iid-tokens"; + +@interface FIRInstallationsIIDTokenInfo : NSObject +@property(nonatomic, nullable, copy) NSString *token; +@end + +@implementation FIRInstallationsIIDTokenInfo + ++ (BOOL)supportsSecureCoding { + return YES; +} + +- (void)encodeWithCoder:(nonnull NSCoder *)coder { +} + +- (nullable instancetype)initWithCoder:(nonnull NSCoder *)coder { + self = [super init]; + if (self) { + _token = [coder decodeObjectOfClass:[NSString class] forKey:@"token"]; + } + return self; +} + +@end + +@interface FIRInstallationsIIDTokenStore () +@property(nonatomic, readonly) NSString *GCMSenderID; +@end + +@implementation FIRInstallationsIIDTokenStore + +- (instancetype)initWithGCMSenderID:(NSString *)GCMSenderID { + self = [super init]; + if (self) { + _GCMSenderID = GCMSenderID; + } + return self; +} + +- (FBLPromise *)existingIIDDefaultToken { + return [[FBLPromise onQueue:dispatch_get_global_queue(QOS_CLASS_UTILITY, 0) + do:^id _Nullable { + return [self IIDDefaultTokenData]; + }] onQueue:dispatch_get_global_queue(QOS_CLASS_UTILITY, 0) + then:^id _Nullable(NSData *_Nullable keychainData) { + return [self IIDCheckinWithData:keychainData]; + }]; +} + +- (FBLPromise *)IIDCheckinWithData:(NSData *)data { + FBLPromise *resultPromise = [FBLPromise pendingPromise]; + + NSError *archiverError; + NSKeyedUnarchiver *unarchiver; + if (@available(iOS 11.0, tvOS 11.0, macOS 10.13, *)) { + unarchiver = [[NSKeyedUnarchiver alloc] initForReadingFromData:data error:&archiverError]; + } else { + @try { +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data]; +#pragma clang diagnostic pop + } @catch (NSException *exception) { + archiverError = [FIRInstallationsErrorUtil keyedArchiverErrorWithException:exception]; + } + } + + if (!unarchiver) { + NSError *error = archiverError ?: [FIRInstallationsErrorUtil corruptedIIDTokenData]; + [resultPromise reject:error]; + return resultPromise; + } + + [unarchiver setClass:[FIRInstallationsIIDTokenInfo class] forClassName:@"FIRInstanceIDTokenInfo"]; + FIRInstallationsIIDTokenInfo *IIDTokenInfo = + [unarchiver decodeObjectOfClass:[FIRInstallationsIIDTokenInfo class] + forKey:NSKeyedArchiveRootObjectKey]; + + if (IIDTokenInfo.token.length < 1) { + [resultPromise reject:[FIRInstallationsErrorUtil corruptedIIDTokenData]]; + return resultPromise; + } + + [resultPromise fulfill:IIDTokenInfo.token]; + + return resultPromise; +} + +- (FBLPromise *)IIDDefaultTokenData { + FBLPromise *resultPromise = [FBLPromise pendingPromise]; + + NSMutableDictionary *keychainQuery = [self IIDDefaultTokenDataKeychainQuery]; + NSError *error; + NSData *data = [FIRInstallationsKeychainUtils getItemWithQuery:keychainQuery error:&error]; + + if (data) { + [resultPromise fulfill:data]; + return resultPromise; + } else { + NSError *outError = error ?: [FIRInstallationsErrorUtil corruptedIIDTokenData]; + [resultPromise reject:outError]; + return resultPromise; + } +} + +- (NSMutableDictionary *)IIDDefaultTokenDataKeychainQuery { + NSDictionary *query = @{(__bridge id)kSecClass : (__bridge id)kSecClassGenericPassword}; + + NSMutableDictionary *finalQuery = [NSMutableDictionary dictionaryWithDictionary:query]; + finalQuery[(__bridge NSString *)kSecAttrGeneric] = kFIRInstallationsIIDTokenKeychainId; + + NSString *account = [self IIDAppIdentifier]; + if ([account length]) { + finalQuery[(__bridge NSString *)kSecAttrAccount] = account; + } + + finalQuery[(__bridge NSString *)kSecAttrService] = + [self serviceKeyForAuthorizedEntity:self.GCMSenderID scope:@"*"]; + return finalQuery; +} + +- (NSString *)IIDAppIdentifier { + return [[NSBundle mainBundle] bundleIdentifier] ?: @""; +} + +- (NSString *)serviceKeyForAuthorizedEntity:(NSString *)authorizedEntity scope:(NSString *)scope { + return [NSString stringWithFormat:@"%@:%@", authorizedEntity, scope]; +} + +@end diff --git a/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsAPI/FIRInstallationsAPIService.h b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsAPI/FIRInstallationsAPIService.h new file mode 100644 index 0000000000..b45475d1a1 --- /dev/null +++ b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsAPI/FIRInstallationsAPIService.h @@ -0,0 +1,62 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +@class FBLPromise; +@class FIRInstallationsItem; + +NS_ASSUME_NONNULL_BEGIN + +FOUNDATION_EXPORT NSString *const kFIRInstallationsUserAgentKey; + +FOUNDATION_EXPORT NSString *const kFIRInstallationsHeartbeatKey; + +/** + * The class is responsible for interacting with HTTP REST API for Installations. + */ +@interface FIRInstallationsAPIService : NSObject + +/** + * The default initializer. + * @param APIKey The Firebase project API key (see `FIROptions.APIKey`). + * @param projectID The Firebase project ID (see `FIROptions.projectID`). + */ +- (instancetype)initWithAPIKey:(NSString *)APIKey projectID:(NSString *)projectID; + +/** + * Sends a request to register a new FID to get auth and refresh tokens. + * @param installation The `FIRInstallationsItem` instance with the FID to register. + * @return A promise that is resolved with a new `FIRInstallationsItem` instance with valid tokens. + * It is rejected with an error in case of a failure. + */ +- (FBLPromise *)registerInstallation:(FIRInstallationsItem *)installation; + +- (FBLPromise *)refreshAuthTokenForInstallation: + (FIRInstallationsItem *)installation; + +/** + * Sends a request to delete the installation, related auth tokens and all related data from the + * server. + * @param installation The installation to delete. + * @return Returns a promise that is resolved with the passed installation on successful deletion or + * is rejected with an error otherwise. + */ +- (FBLPromise *)deleteInstallation:(FIRInstallationsItem *)installation; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsAPI/FIRInstallationsAPIService.m b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsAPI/FIRInstallationsAPIService.m new file mode 100644 index 0000000000..6e74622031 --- /dev/null +++ b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsAPI/FIRInstallationsAPIService.m @@ -0,0 +1,362 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRInstallationsAPIService.h" + +#import + +#if __has_include() +#import +#else +#import "FBLPromises.h" +#endif + +#import +#import +#import "FIRInstallationsErrorUtil.h" +#import "FIRInstallationsItem+RegisterInstallationAPI.h" +#import "FIRInstallationsLogger.h" + +NSString *const kFIRInstallationsAPIBaseURL = @"https://firebaseinstallations.googleapis.com"; +NSString *const kFIRInstallationsAPIKey = @"X-Goog-Api-Key"; +NSString *const kFIRInstallationsBundleId = @"X-Ios-Bundle-Identifier"; +NSString *const kFIRInstallationsIIDMigrationAuthHeader = @"x-goog-fis-ios-iid-migration-auth"; +NSString *const kFIRInstallationsHeartbeatKey = @"X-firebase-client-log-type"; +NSString *const kFIRInstallationsHeartbeatTag = @"fire-installations"; +NSString *const kFIRInstallationsUserAgentKey = @"X-firebase-client"; + +NS_ASSUME_NONNULL_BEGIN + +@interface FIRInstallationsURLSessionResponse : NSObject +@property(nonatomic) NSHTTPURLResponse *HTTPResponse; +@property(nonatomic) NSData *data; + +- (instancetype)initWithResponse:(NSHTTPURLResponse *)response data:(nullable NSData *)data; +@end + +@implementation FIRInstallationsURLSessionResponse + +- (instancetype)initWithResponse:(NSHTTPURLResponse *)response data:(nullable NSData *)data { + self = [super init]; + if (self) { + _HTTPResponse = response; + _data = data ?: [NSData data]; + } + return self; +} + +@end + +@interface FIRInstallationsAPIService () +@property(nonatomic, readonly) NSURLSession *URLSession; +@property(nonatomic, readonly) NSString *APIKey; +@property(nonatomic, readonly) NSString *projectID; +@end + +NS_ASSUME_NONNULL_END + +@implementation FIRInstallationsAPIService + +- (instancetype)initWithAPIKey:(NSString *)APIKey projectID:(NSString *)projectID { + NSURLSession *URLSession = [NSURLSession + sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]]; + return [self initWithURLSession:URLSession APIKey:APIKey projectID:projectID]; +} + +/// The initializer for tests. +- (instancetype)initWithURLSession:(NSURLSession *)URLSession + APIKey:(NSString *)APIKey + projectID:(NSString *)projectID { + self = [super init]; + if (self) { + _URLSession = URLSession; + _APIKey = [APIKey copy]; + _projectID = [projectID copy]; + } + return self; +} + +#pragma mark - Public + +- (FBLPromise *)registerInstallation:(FIRInstallationsItem *)installation { + return [self registerRequestWithInstallation:installation] + .then(^id _Nullable(NSURLRequest *_Nullable request) { + return [self sendURLRequest:request]; + }) + .then(^id _Nullable(FIRInstallationsURLSessionResponse *response) { + return [self registeredInstallationWithInstallation:installation serverResponse:response]; + }); +} + +- (FBLPromise *)refreshAuthTokenForInstallation: + (FIRInstallationsItem *)installation { + return [self authTokenRequestWithInstallation:installation] + .then(^id _Nullable(NSURLRequest *_Nullable request) { + return [self sendURLRequest:request]; + }) + .then(^FBLPromise *( + FIRInstallationsURLSessionResponse *response) { + return [self authTokenWithServerResponse:response]; + }) + .then(^FIRInstallationsItem *(FIRInstallationsStoredAuthToken *authToken) { + FIRInstallationsItem *updatedInstallation = [installation copy]; + updatedInstallation.authToken = authToken; + return updatedInstallation; + }); +} + +- (FBLPromise *)deleteInstallation:(FIRInstallationsItem *)installation { + return [self deleteInstallationRequestWithInstallation:installation] + .then(^id _Nullable(NSURLRequest *_Nullable request) { + return [self sendURLRequest:request]; + }) + .then(^id _Nullable(FIRInstallationsURLSessionResponse *_Nullable value) { + // Return the original installation on success. + return installation; + }); +} + +#pragma mark - Register Installation + +- (FBLPromise *)registerRequestWithInstallation: + (FIRInstallationsItem *)installation { + NSString *URLString = [NSString stringWithFormat:@"%@/v1/projects/%@/installations/", + kFIRInstallationsAPIBaseURL, self.projectID]; + NSURL *URL = [NSURL URLWithString:URLString]; + + NSDictionary *bodyDict = @{ + @"fid" : installation.firebaseInstallationID, + @"authVersion" : @"FIS_v2", + @"appId" : installation.appID, + @"sdkVersion" : [self SDKVersion] + }; + + NSDictionary *headers; + if (installation.IIDDefaultToken) { + headers = @{kFIRInstallationsIIDMigrationAuthHeader : installation.IIDDefaultToken}; + } + + return [self requestWithURL:URL + HTTPMethod:@"POST" + bodyDict:bodyDict + refreshToken:nil + additionalHeaders:headers]; +} + +- (FBLPromise *) + registeredInstallationWithInstallation:(FIRInstallationsItem *)installation + serverResponse:(FIRInstallationsURLSessionResponse *)response { + return [FBLPromise do:^id { + FIRLogDebug(kFIRLoggerInstallations, kFIRInstallationsMessageCodeParsingAPIResponse, + @"Parsing server response for %@.", response.HTTPResponse.URL); + NSError *error; + FIRInstallationsItem *registeredInstallation = + [installation registeredInstallationWithJSONData:response.data + date:[NSDate date] + error:&error]; + if (registeredInstallation == nil) { + FIRLogDebug(kFIRLoggerInstallations, + kFIRInstallationsMessageCodeAPIResponseParsingInstallationFailed, + @"Failed to parse FIRInstallationsItem: %@.", error); + return error; + } + + FIRLogDebug(kFIRLoggerInstallations, + kFIRInstallationsMessageCodeAPIResponseParsingInstallationSucceed, + @"FIRInstallationsItem parsed successfully."); + return registeredInstallation; + }]; +} + +#pragma mark - Auth token + +- (FBLPromise *)authTokenRequestWithInstallation: + (FIRInstallationsItem *)installation { + NSString *URLString = + [NSString stringWithFormat:@"%@/v1/projects/%@/installations/%@/authTokens:generate", + kFIRInstallationsAPIBaseURL, self.projectID, + installation.firebaseInstallationID]; + NSURL *URL = [NSURL URLWithString:URLString]; + + NSDictionary *bodyDict = @{@"installation" : @{@"sdkVersion" : [self SDKVersion]}}; + return [self requestWithURL:URL + HTTPMethod:@"POST" + bodyDict:bodyDict + refreshToken:installation.refreshToken]; +} + +- (FBLPromise *)authTokenWithServerResponse: + (FIRInstallationsURLSessionResponse *)response { + return [FBLPromise do:^id { + FIRLogDebug(kFIRLoggerInstallations, kFIRInstallationsMessageCodeParsingAPIResponse, + @"Parsing server response for %@.", response.HTTPResponse.URL); + NSError *error; + FIRInstallationsStoredAuthToken *token = + [FIRInstallationsItem authTokenWithGenerateTokenAPIJSONData:response.data + date:[NSDate date] + error:&error]; + if (token == nil) { + FIRLogDebug(kFIRLoggerInstallations, + kFIRInstallationsMessageCodeAPIResponseParsingAuthTokenFailed, + @"Failed to parse FIRInstallationsStoredAuthToken: %@.", error); + return error; + } + + FIRLogDebug(kFIRLoggerInstallations, + kFIRInstallationsMessageCodeAPIResponseParsingAuthTokenSucceed, + @"FIRInstallationsStoredAuthToken parsed successfully."); + return token; + }]; +} + +#pragma mark - Delete Installation + +- (FBLPromise *)deleteInstallationRequestWithInstallation: + (FIRInstallationsItem *)installation { + NSString *URLString = [NSString stringWithFormat:@"%@/v1/projects/%@/installations/%@/", + kFIRInstallationsAPIBaseURL, self.projectID, + installation.firebaseInstallationID]; + NSURL *URL = [NSURL URLWithString:URLString]; + + return [self requestWithURL:URL + HTTPMethod:@"DELETE" + bodyDict:@{} + refreshToken:installation.refreshToken]; +} + +#pragma mark - URL Request +- (FBLPromise *)requestWithURL:(NSURL *)requestURL + HTTPMethod:(NSString *)HTTPMethod + bodyDict:(NSDictionary *)bodyDict + refreshToken:(nullable NSString *)refreshToken { + return [self requestWithURL:requestURL + HTTPMethod:HTTPMethod + bodyDict:bodyDict + refreshToken:refreshToken + additionalHeaders:nil]; +} + +- (FBLPromise *)requestWithURL:(NSURL *)requestURL + HTTPMethod:(NSString *)HTTPMethod + bodyDict:(NSDictionary *)bodyDict + refreshToken:(nullable NSString *)refreshToken + additionalHeaders:(nullable NSDictionary *) + additionalHeaders { + return [FBLPromise + onQueue:dispatch_get_global_queue(QOS_CLASS_UTILITY, 0) + do:^id _Nullable { + __block NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:requestURL]; + request.HTTPMethod = HTTPMethod; + NSString *bundleIdentifier = [[NSBundle mainBundle] bundleIdentifier]; + [request addValue:self.APIKey forHTTPHeaderField:kFIRInstallationsAPIKey]; + [request addValue:bundleIdentifier forHTTPHeaderField:kFIRInstallationsBundleId]; + [self setJSONHTTPBody:bodyDict forRequest:request]; + if (refreshToken) { + NSString *authHeader = [NSString stringWithFormat:@"FIS_v2 %@", refreshToken]; + [request setValue:authHeader forHTTPHeaderField:@"Authorization"]; + } + // User agent Header. + [request setValue:[FIRApp firebaseUserAgent] + forHTTPHeaderField:kFIRInstallationsUserAgentKey]; + // Heartbeat Header. + [request setValue:@([FIRHeartbeatInfo + heartbeatCodeForTag:kFIRInstallationsHeartbeatTag]) + .stringValue + forHTTPHeaderField:kFIRInstallationsHeartbeatKey]; + [additionalHeaders + enumerateKeysAndObjectsUsingBlock:^(NSString *_Nonnull key, NSString *_Nonnull obj, + BOOL *_Nonnull stop) { + [request setValue:obj forHTTPHeaderField:key]; + }]; + + return [request copy]; + }]; +} + +- (FBLPromise *)URLRequestPromise:(NSURLRequest *)request { + return [[FBLPromise async:^(FBLPromiseFulfillBlock fulfill, FBLPromiseRejectBlock reject) { + FIRLogDebug(kFIRLoggerInstallations, kFIRInstallationsMessageCodeSendAPIRequest, + @"Sending request: %@, body:%@, headers: %@.", request, + [[NSString alloc] initWithData:request.HTTPBody encoding:NSUTF8StringEncoding], + request.allHTTPHeaderFields); + [[self.URLSession + dataTaskWithRequest:request + completionHandler:^(NSData *_Nullable data, NSURLResponse *_Nullable response, + NSError *_Nullable error) { + if (error) { + FIRLogDebug(kFIRLoggerInstallations, + kFIRInstallationsMessageCodeAPIRequestNetworkError, + @"Request failed: %@, error: %@.", request, error); + reject(error); + } else { + FIRLogDebug(kFIRLoggerInstallations, kFIRInstallationsMessageCodeAPIRequestResponse, + @"Request response received: %@, error: %@, body: %@.", request, error, + [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]); + fulfill([[FIRInstallationsURLSessionResponse alloc] + initWithResponse:(NSHTTPURLResponse *)response + data:data]); + } + }] resume]; + }] then:^id _Nullable(FIRInstallationsURLSessionResponse *response) { + return [self validateHTTPResponseStatusCode:response]; + }]; +} + +- (FBLPromise *)validateHTTPResponseStatusCode: + (FIRInstallationsURLSessionResponse *)response { + NSInteger statusCode = response.HTTPResponse.statusCode; + return [FBLPromise do:^id _Nullable { + if (statusCode < 200 || statusCode >= 300) { + FIRLogDebug(kFIRLoggerInstallations, kFIRInstallationsMessageCodeUnexpectedAPIRequestResponse, + @"Unexpected API response: %@, body: %@.", response.HTTPResponse, + [[NSString alloc] initWithData:response.data encoding:NSUTF8StringEncoding]); + return [FIRInstallationsErrorUtil APIErrorWithHTTPResponse:response.HTTPResponse + data:response.data]; + } + return response; + }]; +} + +- (FBLPromise *)sendURLRequest:(NSURLRequest *)request { + return [FBLPromise attempts:1 + delay:1 + condition:^BOOL(NSInteger remainingAttempts, NSError *_Nonnull error) { + return [FIRInstallationsErrorUtil isAPIError:error withHTTPCode:500]; + } + retry:^id _Nullable { + return [self URLRequestPromise:request]; + }]; +} + +- (NSString *)SDKVersion { + return [NSString stringWithFormat:@"i:%s", FIRInstallationsVersionStr]; +} + +#pragma mark - JSON + +- (void)setJSONHTTPBody:(NSDictionary *)body + forRequest:(NSMutableURLRequest *)request { + [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; + + NSError *error; + NSData *JSONData = [NSJSONSerialization dataWithJSONObject:body options:0 error:&error]; + if (JSONData == nil) { + // TODO: Log or return an error. + } + request.HTTPBody = JSONData; +} + +@end diff --git a/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsAPI/FIRInstallationsItem+RegisterInstallationAPI.h b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsAPI/FIRInstallationsItem+RegisterInstallationAPI.h new file mode 100644 index 0000000000..cc6b543201 --- /dev/null +++ b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsAPI/FIRInstallationsItem+RegisterInstallationAPI.h @@ -0,0 +1,53 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRInstallationsItem.h" + +@class FIRInstallationsStoredAuthToken; + +NS_ASSUME_NONNULL_BEGIN + +@interface FIRInstallationsItem (RegisterInstallationAPI) + +/** + * Parses and validates the Register Installation API response and returns a corresponding + * `FIRInstallationsItem` instance on success. + * @param JSONData The data with JSON encoded API response. + * @param date The Auth Token expiration date will be calculated as `date` + + * `response.authToken.expiresIn`. For most of the cases `[NSDate date]` should be passed there. A + * different value may be passed e.g. for unit tests. + * @param outError A pointer to assign a specific `NSError` instance in case of failure. No error is + * assigned in case of success. + * @return Returns a new `FIRInstallationsItem` instance in the success case or `nil` otherwise. + */ +- (nullable FIRInstallationsItem *)registeredInstallationWithJSONData:(NSData *)JSONData + date:(NSDate *)date + error: + (NSError *_Nullable *)outError; + ++ (nullable FIRInstallationsStoredAuthToken *)authTokenWithGenerateTokenAPIJSONData:(NSData *)data + date:(NSDate *)date + error:(NSError **) + outError; + ++ (nullable FIRInstallationsStoredAuthToken *)authTokenWithJSONDict: + (NSDictionary *)dict + date:(NSDate *)date + error:(NSError **)outError; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsAPI/FIRInstallationsItem+RegisterInstallationAPI.m b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsAPI/FIRInstallationsItem+RegisterInstallationAPI.m new file mode 100644 index 0000000000..569e35b991 --- /dev/null +++ b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsAPI/FIRInstallationsItem+RegisterInstallationAPI.m @@ -0,0 +1,142 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRInstallationsItem+RegisterInstallationAPI.h" + +#import "FIRInstallationsErrorUtil.h" +#import "FIRInstallationsStoredAuthToken.h" + +@implementation FIRInstallationsItem (RegisterInstallationAPI) + +- (nullable FIRInstallationsItem *) + registeredInstallationWithJSONData:(NSData *)data + date:(NSDate *)date + error:(NSError *__autoreleasing _Nullable *_Nullable)outError { + NSDictionary *responseJSON = [FIRInstallationsItem dictionaryFromJSONData:data error:outError]; + if (!responseJSON) { + return nil; + } + + NSString *refreshToken = [FIRInstallationsItem validStringOrNilForKey:@"refreshToken" + fromDict:responseJSON]; + if (refreshToken == nil) { + FIRInstallationsItemSetErrorToPointer( + [FIRInstallationsErrorUtil FIDRegistrationErrorWithResponseMissingField:@"refreshToken"], + outError); + return nil; + } + + NSDictionary *authTokenDict = responseJSON[@"authToken"]; + if (![authTokenDict isKindOfClass:[NSDictionary class]]) { + FIRInstallationsItemSetErrorToPointer( + [FIRInstallationsErrorUtil FIDRegistrationErrorWithResponseMissingField:@"authToken"], + outError); + return nil; + } + + FIRInstallationsStoredAuthToken *authToken = + [FIRInstallationsItem authTokenWithJSONDict:authTokenDict date:date error:outError]; + if (authToken == nil) { + return nil; + } + + FIRInstallationsItem *installation = + [[FIRInstallationsItem alloc] initWithAppID:self.appID firebaseAppName:self.firebaseAppName]; + NSString *installationID = [FIRInstallationsItem validStringOrNilForKey:@"fid" + fromDict:responseJSON]; + installation.firebaseInstallationID = installationID ?: self.firebaseInstallationID; + installation.refreshToken = refreshToken; + installation.authToken = authToken; + installation.registrationStatus = FIRInstallationStatusRegistered; + + return installation; +} + +#pragma mark - Auth token + ++ (nullable FIRInstallationsStoredAuthToken *)authTokenWithGenerateTokenAPIJSONData:(NSData *)data + date:(NSDate *)date + error:(NSError **) + outError { + NSDictionary *dict = [self dictionaryFromJSONData:data error:outError]; + if (!dict) { + return nil; + } + + return [self authTokenWithJSONDict:dict date:date error:outError]; +} + ++ (nullable FIRInstallationsStoredAuthToken *)authTokenWithJSONDict: + (NSDictionary *)dict + date:(NSDate *)date + error:(NSError **)outError { + NSString *token = [self validStringOrNilForKey:@"token" fromDict:dict]; + if (token == nil) { + FIRInstallationsItemSetErrorToPointer( + [FIRInstallationsErrorUtil FIDRegistrationErrorWithResponseMissingField:@"authToken.token"], + outError); + return nil; + } + + NSString *expiresInString = [self validStringOrNilForKey:@"expiresIn" fromDict:dict]; + if (expiresInString == nil) { + FIRInstallationsItemSetErrorToPointer( + [FIRInstallationsErrorUtil + FIDRegistrationErrorWithResponseMissingField:@"authToken.expiresIn"], + outError); + return nil; + } + + // The response should contain the string in format like "604800s". + // The server should never response with anything else except seconds. + // Just drop the last character and parse a number from string. + NSString *expiresInSeconds = [expiresInString substringToIndex:expiresInString.length - 1]; + NSTimeInterval expiresIn = [expiresInSeconds doubleValue]; + NSDate *expirationDate = [date dateByAddingTimeInterval:expiresIn]; + + FIRInstallationsStoredAuthToken *authToken = [[FIRInstallationsStoredAuthToken alloc] init]; + authToken.status = FIRInstallationsAuthTokenStatusTokenReceived; + authToken.token = token; + authToken.expirationDate = expirationDate; + + return authToken; +} + +#pragma mark - JSON + ++ (nullable NSDictionary *)dictionaryFromJSONData:(NSData *)data + error:(NSError **)outError { + NSError *error; + NSDictionary *responseJSON = [NSJSONSerialization JSONObjectWithData:data options:0 error:&error]; + + if (![responseJSON isKindOfClass:[NSDictionary class]]) { + FIRInstallationsItemSetErrorToPointer([FIRInstallationsErrorUtil JSONSerializationError:error], + outError); + return nil; + } + + return responseJSON; +} + ++ (NSString *)validStringOrNilForKey:(NSString *)key fromDict:(NSDictionary *)dict { + NSString *string = dict[key]; + if ([string isKindOfClass:[NSString class]] && string.length > 0) { + return string; + } + return nil; +} + +@end diff --git a/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsIDController/FIRInstallationsIDController.h b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsIDController/FIRInstallationsIDController.h new file mode 100644 index 0000000000..ab2092d2b6 --- /dev/null +++ b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsIDController/FIRInstallationsIDController.h @@ -0,0 +1,44 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class FBLPromise; +@class FIRInstallationsItem; + +/** + * The class is responsible for managing FID for a given `FIRApp`. + */ +@interface FIRInstallationsIDController : NSObject + +- (instancetype)initWithGoogleAppID:(NSString *)appID + appName:(NSString *)appName + APIKey:(NSString *)APIKey + projectID:(NSString *)projectID + GCMSenderID:(NSString *)GCMSenderID + accessGroup:(nullable NSString *)accessGroup; + +- (FBLPromise *)getInstallationItem; + +- (FBLPromise *)getAuthTokenForcingRefresh:(BOOL)forceRefresh; + +- (FBLPromise *)deleteInstallation; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsIDController/FIRInstallationsIDController.m b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsIDController/FIRInstallationsIDController.m new file mode 100644 index 0000000000..1982a57891 --- /dev/null +++ b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsIDController/FIRInstallationsIDController.m @@ -0,0 +1,458 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRInstallationsIDController.h" + +#if __has_include() +#import +#else +#import "FBLPromises.h" +#endif + +#import + +#import "FIRInstallationsAPIService.h" +#import "FIRInstallationsErrorUtil.h" +#import "FIRInstallationsIIDStore.h" +#import "FIRInstallationsIIDTokenStore.h" +#import "FIRInstallationsItem.h" +#import "FIRInstallationsLogger.h" +#import "FIRInstallationsSingleOperationPromiseCache.h" +#import "FIRInstallationsStore.h" +#import "FIRSecureStorage.h" + +#import "FIRInstallationsHTTPError.h" +#import "FIRInstallationsStoredAuthToken.h" + +const NSNotificationName FIRInstallationIDDidChangeNotification = + @"FIRInstallationIDDidChangeNotification"; +NSString *const kFIRInstallationIDDidChangeNotificationAppNameKey = + @"FIRInstallationIDDidChangeNotification"; + +NSTimeInterval const kFIRInstallationsTokenExpirationThreshold = 60 * 60; // 1 hour. + +@interface FIRInstallationsIDController () +@property(nonatomic, readonly) NSString *appID; +@property(nonatomic, readonly) NSString *appName; + +@property(nonatomic, readonly) FIRInstallationsStore *installationsStore; +@property(nonatomic, readonly) FIRInstallationsIIDStore *IIDStore; +@property(nonatomic, readonly) FIRInstallationsIIDTokenStore *IIDTokenStore; + +@property(nonatomic, readonly) FIRInstallationsAPIService *APIService; + +@property(nonatomic, readonly) FIRInstallationsSingleOperationPromiseCache + *getInstallationPromiseCache; +@property(nonatomic, readonly) + FIRInstallationsSingleOperationPromiseCache *authTokenPromiseCache; +@property(nonatomic, readonly) FIRInstallationsSingleOperationPromiseCache + *authTokenForcingRefreshPromiseCache; +@property(nonatomic, readonly) + FIRInstallationsSingleOperationPromiseCache *deleteInstallationPromiseCache; +@end + +@implementation FIRInstallationsIDController + +- (instancetype)initWithGoogleAppID:(NSString *)appID + appName:(NSString *)appName + APIKey:(NSString *)APIKey + projectID:(NSString *)projectID + GCMSenderID:(NSString *)GCMSenderID + accessGroup:(NSString *)accessGroup { + FIRSecureStorage *secureStorage = [[FIRSecureStorage alloc] init]; + FIRInstallationsStore *installationsStore = + [[FIRInstallationsStore alloc] initWithSecureStorage:secureStorage accessGroup:accessGroup]; + + // Use `GCMSenderID` as project identifier when `projectID` is not available. + NSString *APIServiceProjectID = (projectID.length > 0) ? projectID : GCMSenderID; + FIRInstallationsAPIService *apiService = + [[FIRInstallationsAPIService alloc] initWithAPIKey:APIKey projectID:APIServiceProjectID]; + + FIRInstallationsIIDStore *IIDStore = [[FIRInstallationsIIDStore alloc] init]; + FIRInstallationsIIDTokenStore *IIDCheckingStore = + [[FIRInstallationsIIDTokenStore alloc] initWithGCMSenderID:GCMSenderID]; + + return [self initWithGoogleAppID:appID + appName:appName + installationsStore:installationsStore + APIService:apiService + IIDStore:IIDStore + IIDTokenStore:IIDCheckingStore]; +} + +/// The initializer is supposed to be used by tests to inject `installationsStore`. +- (instancetype)initWithGoogleAppID:(NSString *)appID + appName:(NSString *)appName + installationsStore:(FIRInstallationsStore *)installationsStore + APIService:(FIRInstallationsAPIService *)APIService + IIDStore:(FIRInstallationsIIDStore *)IIDStore + IIDTokenStore:(FIRInstallationsIIDTokenStore *)IIDTokenStore { + self = [super init]; + if (self) { + _appID = appID; + _appName = appName; + _installationsStore = installationsStore; + _APIService = APIService; + _IIDStore = IIDStore; + _IIDTokenStore = IIDTokenStore; + + __weak FIRInstallationsIDController *weakSelf = self; + + _getInstallationPromiseCache = [[FIRInstallationsSingleOperationPromiseCache alloc] + initWithNewOperationHandler:^FBLPromise *_Nonnull { + FIRInstallationsIDController *strongSelf = weakSelf; + return [strongSelf createGetInstallationItemPromise]; + }]; + + _authTokenPromiseCache = [[FIRInstallationsSingleOperationPromiseCache alloc] + initWithNewOperationHandler:^FBLPromise *_Nonnull { + FIRInstallationsIDController *strongSelf = weakSelf; + return [strongSelf installationWithValidAuthTokenForcingRefresh:NO]; + }]; + + _authTokenForcingRefreshPromiseCache = [[FIRInstallationsSingleOperationPromiseCache alloc] + initWithNewOperationHandler:^FBLPromise *_Nonnull { + FIRInstallationsIDController *strongSelf = weakSelf; + return [strongSelf installationWithValidAuthTokenForcingRefresh:YES]; + }]; + + _deleteInstallationPromiseCache = [[FIRInstallationsSingleOperationPromiseCache alloc] + initWithNewOperationHandler:^FBLPromise *_Nonnull { + FIRInstallationsIDController *strongSelf = weakSelf; + return [strongSelf createDeleteInstallationPromise]; + }]; + } + return self; +} + +#pragma mark - Get Installation. + +- (FBLPromise *)getInstallationItem { + return [self.getInstallationPromiseCache getExistingPendingOrCreateNewPromise]; +} + +- (FBLPromise *)createGetInstallationItemPromise { + FIRLogDebug(kFIRLoggerInstallations, + kFIRInstallationsMessageCodeNewGetInstallationOperationCreated, @"%s, appName: %@", + __PRETTY_FUNCTION__, self.appName); + + FBLPromise *installationItemPromise = + [self getStoredInstallation].recover(^id(NSError *error) { + return [self createAndSaveFID]; + }); + + // Initiate registration process on success if needed, but return the installation without waiting + // for it. + installationItemPromise.then(^id(FIRInstallationsItem *installation) { + [self getAuthTokenForcingRefresh:NO]; + return nil; + }); + + return installationItemPromise; +} + +- (FBLPromise *)getStoredInstallation { + return [self.installationsStore installationForAppID:self.appID appName:self.appName].validate( + ^BOOL(FIRInstallationsItem *installation) { + BOOL isValid = NO; + switch (installation.registrationStatus) { + case FIRInstallationStatusUnregistered: + case FIRInstallationStatusRegistered: + isValid = YES; + break; + + case FIRInstallationStatusUnknown: + isValid = NO; + break; + } + + return isValid; + }); +} + +- (FBLPromise *)createAndSaveFID { + return [self migrateOrGenerateInstallation] + .then(^FBLPromise *(FIRInstallationsItem *installation) { + return [self saveInstallation:installation]; + }) + .then(^FIRInstallationsItem *(FIRInstallationsItem *installation) { + [self postFIDDidChangeNotification]; + return installation; + }); +} + +- (FBLPromise *)saveInstallation:(FIRInstallationsItem *)installation { + return [self.installationsStore saveInstallation:installation].then( + ^FIRInstallationsItem *(NSNull *result) { + return installation; + }); +} + +/** + * Tries to migrate IID data stored by FirebaseInstanceID SDK or generates a new Installation ID if + * not found. + */ +- (FBLPromise *)migrateOrGenerateInstallation { + if (![self isDefaultApp]) { + // Existing IID should be used only for default FirebaseApp. + FIRInstallationsItem *installation = + [self createInstallationWithFID:[FIRInstallationsItem generateFID] IIDDefaultToken:nil]; + return [FBLPromise resolvedWith:installation]; + } + + return [[[FBLPromise + all:@[ [self.IIDStore existingIID], [self.IIDTokenStore existingIIDDefaultToken] ]] + then:^id _Nullable(NSArray *_Nullable results) { + NSString *existingIID = results[0]; + NSString *IIDDefaultToken = results[1]; + + return [self createInstallationWithFID:existingIID IIDDefaultToken:IIDDefaultToken]; + }] recover:^id _Nullable(NSError *_Nonnull error) { + return [self createInstallationWithFID:[FIRInstallationsItem generateFID] IIDDefaultToken:nil]; + }]; +} + +- (FIRInstallationsItem *)createInstallationWithFID:(NSString *)FID + IIDDefaultToken:(nullable NSString *)IIDDefaultToken { + FIRInstallationsItem *installation = [[FIRInstallationsItem alloc] initWithAppID:self.appID + firebaseAppName:self.appName]; + installation.firebaseInstallationID = FID; + installation.IIDDefaultToken = IIDDefaultToken; + installation.registrationStatus = FIRInstallationStatusUnregistered; + return installation; +} + +#pragma mark - FID registration + +- (FBLPromise *)registerInstallationIfNeeded: + (FIRInstallationsItem *)installation { + switch (installation.registrationStatus) { + case FIRInstallationStatusRegistered: + // Already registered. Do nothing. + return [FBLPromise resolvedWith:installation]; + + case FIRInstallationStatusUnknown: + case FIRInstallationStatusUnregistered: + // Registration required. Proceed. + break; + } + + return [self.APIService registerInstallation:installation] + .catch(^(NSError *_Nonnull error) { + if ([self doesRegistrationErrorRequireConfigChange:error]) { + FIRLogError(kFIRLoggerInstallations, + kFIRInstallationsMessageCodeInvalidFirebaseConfiguration, + @"Firebase Installation registration failed for app with name: %@, error: " + @"%@\nPlease make sure you use valid GoogleService-Info.plist", + self.appName, error); + } + }) + .then(^id(FIRInstallationsItem *registeredInstallation) { + return [self saveInstallation:registeredInstallation]; + }) + .then(^FIRInstallationsItem *(FIRInstallationsItem *registeredInstallation) { + // Server may respond with a different FID if the sent one cannot be accepted. + if (![registeredInstallation.firebaseInstallationID + isEqualToString:installation.firebaseInstallationID]) { + [self postFIDDidChangeNotification]; + } + return registeredInstallation; + }); +} + +- (BOOL)doesRegistrationErrorRequireConfigChange:(NSError *)error { + FIRInstallationsHTTPError *HTTPError = (FIRInstallationsHTTPError *)error; + if (![HTTPError isKindOfClass:[FIRInstallationsHTTPError class]]) { + return NO; + } + + switch (HTTPError.HTTPResponse.statusCode) { + // These are the errors that require Firebase configuration change. + case FIRInstallationsRegistrationHTTPCodeInvalidArgument: + case FIRInstallationsRegistrationHTTPCodeInvalidAPIKey: + case FIRInstallationsRegistrationHTTPCodeAPIKeyToProjectIDMismatch: + case FIRInstallationsRegistrationHTTPCodeProjectNotFound: + return YES; + + default: + return NO; + } +} + +#pragma mark - Auth Token + +- (FBLPromise *)getAuthTokenForcingRefresh:(BOOL)forceRefresh { + if (forceRefresh || [self.authTokenForcingRefreshPromiseCache getExistingPendingPromise] != nil) { + return [self.authTokenForcingRefreshPromiseCache getExistingPendingOrCreateNewPromise]; + } else { + return [self.authTokenPromiseCache getExistingPendingOrCreateNewPromise]; + } +} + +- (FBLPromise *)installationWithValidAuthTokenForcingRefresh: + (BOOL)forceRefresh { + FIRLogDebug(kFIRLoggerInstallations, kFIRInstallationsMessageCodeNewGetAuthTokenOperationCreated, + @"-[FIRInstallationsIDController installationWithValidAuthTokenForcingRefresh:%@], " + @"appName: %@", + @(forceRefresh), self.appName); + + return [self getInstallationItem] + .then(^FBLPromise *(FIRInstallationsItem *installation) { + return [self registerInstallationIfNeeded:installation]; + }) + .then(^id(FIRInstallationsItem *registeredInstallation) { + BOOL isTokenExpiredOrExpiresSoon = + [registeredInstallation.authToken.expirationDate timeIntervalSinceDate:[NSDate date]] < + kFIRInstallationsTokenExpirationThreshold; + if (forceRefresh || isTokenExpiredOrExpiresSoon) { + return [self refreshAuthTokenForInstallation:registeredInstallation]; + } else { + return registeredInstallation; + } + }) + .recover(^id(NSError *error) { + return [self regenerateFIDOnRefreshTokenErrorIfNeeded:error]; + }); +} + +- (FBLPromise *)refreshAuthTokenForInstallation: + (FIRInstallationsItem *)installation { + return [[self.APIService refreshAuthTokenForInstallation:installation] + then:^id _Nullable(FIRInstallationsItem *_Nullable refreshedInstallation) { + return [self saveInstallation:refreshedInstallation]; + }]; +} + +- (id)regenerateFIDOnRefreshTokenErrorIfNeeded:(NSError *)error { + if (![error isKindOfClass:[FIRInstallationsHTTPError class]]) { + // No recovery possible. Return the same error. + return error; + } + + FIRInstallationsHTTPError *HTTPError = (FIRInstallationsHTTPError *)error; + switch (HTTPError.HTTPResponse.statusCode) { + case FIRInstallationsAuthTokenHTTPCodeInvalidAuthentication: + case FIRInstallationsAuthTokenHTTPCodeFIDNotFound: + // The stored installation was damaged or blocked by the server. + // Delete the stored installation then generate and register a new one. + return [self getInstallationItem] + .then(^FBLPromise *(FIRInstallationsItem *installation) { + return [self deleteInstallationLocally:installation]; + }) + .then(^FBLPromise *(id result) { + return [self installationWithValidAuthTokenForcingRefresh:NO]; + }); + + default: + // No recovery possible. Return the same error. + return error; + } +} + +#pragma mark - Delete FID + +- (FBLPromise *)deleteInstallation { + return [self.deleteInstallationPromiseCache getExistingPendingOrCreateNewPromise]; +} + +- (FBLPromise *)createDeleteInstallationPromise { + FIRLogDebug(kFIRLoggerInstallations, + kFIRInstallationsMessageCodeNewDeleteInstallationOperationCreated, @"%s, appName: %@", + __PRETTY_FUNCTION__, self.appName); + + // Check for ongoing requests first, if there is no a request, then check local storage for + // existing installation. + FBLPromise *currentInstallationPromise = + [self mostRecentInstallationOperation] ?: [self getStoredInstallation]; + + return currentInstallationPromise + .then(^id(FIRInstallationsItem *installation) { + return [self sendDeleteInstallationRequestIfNeeded:installation]; + }) + .then(^id(FIRInstallationsItem *installation) { + // Remove the installation from the local storage. + return [self deleteInstallationLocally:installation]; + }); +} + +- (FBLPromise *)deleteInstallationLocally:(FIRInstallationsItem *)installation { + return [self.installationsStore removeInstallationForAppID:installation.appID + appName:installation.firebaseAppName] + .then(^FBLPromise *(NSNull *result) { + return [self deleteExistingIIDIfNeeded]; + }) + .then(^NSNull *(NSNull *result) { + [self postFIDDidChangeNotification]; + return result; + }); +} + +- (FBLPromise *)sendDeleteInstallationRequestIfNeeded: + (FIRInstallationsItem *)installation { + switch (installation.registrationStatus) { + case FIRInstallationStatusUnknown: + case FIRInstallationStatusUnregistered: + // The installation is not registered, so it is safe to be deleted as is, so return early. + return [FBLPromise resolvedWith:installation]; + break; + + case FIRInstallationStatusRegistered: + // Proceed to de-register the installation on the server. + break; + } + + return [self.APIService deleteInstallation:installation].recover(^id(NSError *APIError) { + if ([FIRInstallationsErrorUtil isAPIError:APIError withHTTPCode:404]) { + // The installation was not found on the server. + // Return success. + return installation; + } else { + // Re-throw the error otherwise. + return APIError; + } + }); +} + +- (FBLPromise *)deleteExistingIIDIfNeeded { + if ([self isDefaultApp]) { + return [self.IIDStore deleteExistingIID]; + } else { + return [FBLPromise resolvedWith:[NSNull null]]; + } +} + +- (nullable FBLPromise *)mostRecentInstallationOperation { + return [self.authTokenForcingRefreshPromiseCache getExistingPendingPromise] + ?: [self.authTokenPromiseCache getExistingPendingPromise] + ?: [self.getInstallationPromiseCache getExistingPendingPromise]; +} + +#pragma mark - Notifications + +- (void)postFIDDidChangeNotification { + [[NSNotificationCenter defaultCenter] + postNotificationName:FIRInstallationIDDidChangeNotification + object:nil + userInfo:@{kFIRInstallationIDDidChangeNotificationAppNameKey : self.appName}]; +} + +#pragma mark - Default App + +- (BOOL)isDefaultApp { + return [self.appName isEqualToString:kFIRDefaultAppName]; +} + +@end diff --git a/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsIDController/FIRInstallationsSingleOperationPromiseCache.h b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsIDController/FIRInstallationsSingleOperationPromiseCache.h new file mode 100644 index 0000000000..aeb54e5043 --- /dev/null +++ b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsIDController/FIRInstallationsSingleOperationPromiseCache.h @@ -0,0 +1,58 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +@class FBLPromise; + +NS_ASSUME_NONNULL_BEGIN + +/** + * The class makes sure the a single operation (represented by a promise) is performed at a time. If + * there is an ongoing operation, then its existing corresponding promise will be returned instead + * of starting a new operation. + */ +@interface FIRInstallationsSingleOperationPromiseCache<__covariant ResultType> : NSObject + +- (instancetype)init NS_UNAVAILABLE; + +/** + * The designated initializer. + * @param newOperationHandler The block that must return a new promise representing the + * single-at-a-time operation. The promise should be fulfilled when the operation is completed. The + * factory block will be used to create a new promise when needed. + */ +- (instancetype)initWithNewOperationHandler: + (FBLPromise *_Nonnull (^)(void))newOperationHandler NS_DESIGNATED_INITIALIZER; + +/** + * Creates a new promise or returns an existing pending one. + * @return Returns and existing pending promise if exists. If the pending promise does not exist + * then a new one will be created using the `factory` block passed in the initializer. Once the + * pending promise gets resolved, it is removed, so calling the method again will lead to creating + * and caching another promise. + */ +- (FBLPromise *)getExistingPendingOrCreateNewPromise; + +/** + * Returns an existing pending promise or `nil`. + * @return Returns an existing pending promise if there is one or `nil` otherwise. + */ +- (nullable FBLPromise *)getExistingPendingPromise; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsIDController/FIRInstallationsSingleOperationPromiseCache.m b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsIDController/FIRInstallationsSingleOperationPromiseCache.m new file mode 100644 index 0000000000..dfccfe36dc --- /dev/null +++ b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsIDController/FIRInstallationsSingleOperationPromiseCache.m @@ -0,0 +1,75 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRInstallationsSingleOperationPromiseCache.h" + +#if __has_include() +#import +#else +#import "FBLPromises.h" +#endif + +@interface FIRInstallationsSingleOperationPromiseCache () +@property(nonatomic, readonly) FBLPromise *_Nonnull (^newOperationHandler)(void); +@property(nonatomic, nullable) FBLPromise *pendingPromise; +@end + +@implementation FIRInstallationsSingleOperationPromiseCache + +- (instancetype)initWithNewOperationHandler: + (FBLPromise *_Nonnull (^)(void))newOperationHandler { + if (newOperationHandler == nil) { + [NSException raise:NSInvalidArgumentException + format:@"`newOperationHandler` must not be `nil`."]; + } + + self = [super init]; + if (self) { + _newOperationHandler = [newOperationHandler copy]; + } + return self; +} + +- (FBLPromise *)getExistingPendingOrCreateNewPromise { + @synchronized(self) { + if (!self.pendingPromise) { + self.pendingPromise = self.newOperationHandler(); + + self.pendingPromise + .then(^id(id result) { + @synchronized(self) { + self.pendingPromise = nil; + return nil; + } + }) + .catch(^void(NSError *error) { + @synchronized(self) { + self.pendingPromise = nil; + } + }); + } + + return self.pendingPromise; + } +} + +- (nullable FBLPromise *)getExistingPendingPromise { + @synchronized(self) { + return self.pendingPromise; + } +} + +@end diff --git a/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsIDController/FIRInstallationsStatus.h b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsIDController/FIRInstallationsStatus.h new file mode 100644 index 0000000000..3edc692011 --- /dev/null +++ b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsIDController/FIRInstallationsStatus.h @@ -0,0 +1,35 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +/** + * The enum represent possible states of the installation ID. + * + * WARNING: The enum is stored to Keychain as a part of `FIRInstallationsStoredItem`. Modification + * of it can lead to incompatibility with previous version. Any modification must be evaluated and, + * if it is really needed, the `storageVersion` must be bumped and proper migration code added. + */ +typedef NS_ENUM(NSInteger, FIRInstallationsStatus) { + /** Represents either an initial status when a FIRInstallationsItem instance was created but not + * stored to Keychain or an undefined status (e.g. when the status failed to deserialize). + */ + FIRInstallationStatusUnknown, + /// The Firebase Installation has not yet been registered with FIS. + FIRInstallationStatusUnregistered, + /// The Firebase Installation has successfully been registered with FIS. + FIRInstallationStatusRegistered, +}; diff --git a/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsStore/FIRInstallationsStore.h b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsStore/FIRInstallationsStore.h new file mode 100644 index 0000000000..5334cc98bb --- /dev/null +++ b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsStore/FIRInstallationsStore.h @@ -0,0 +1,71 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +@class FBLPromise; +@class FIRInstallationsItem; +@class FIRSecureStorage; + +NS_ASSUME_NONNULL_BEGIN + +/// The user defaults suite name used to store data. +extern NSString *const kFIRInstallationsStoreUserDefaultsID; + +/// The class is responsible for storing and accessing the installations data. +@interface FIRInstallationsStore : NSObject + +/** + * The default initializer. + * @param storage The secure storage to save installations data. + * @param accessGroup The Keychain Access Group to store and request the installations data. + */ +- (instancetype)initWithSecureStorage:(FIRSecureStorage *)storage + accessGroup:(nullable NSString *)accessGroup; + +/** + * Retrieves existing installation ID if there is. + * @param appID The Firebase(Google) Application ID. + * @param appName The Firebase Application Name. + * + * @return Returns a `FBLPromise` instance. The promise is resolved with a FIRInstallationsItem + * instance if there is a valid installation stored for `appID` and `appName`. The promise is + * rejected with a specific error when the installation has not been found or with another possible + * error. + */ +- (FBLPromise *)installationForAppID:(NSString *)appID + appName:(NSString *)appName; + +/** + * Saves the given installation. + * + * @param installationItem The installation data. + * @return Returns a promise that is resolved with `[NSNull null]` on success. + */ +- (FBLPromise *)saveInstallation:(FIRInstallationsItem *)installationItem; + +/** + * Removes installation data for the given app parameters. + * @param appID The Firebase(Google) Application ID. + * @param appName The Firebase Application Name. + * + * @return Returns a promise that is resolved with `[NSNull null]` on success. + */ +- (FBLPromise *)removeInstallationForAppID:(NSString *)appID appName:(NSString *)appName; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsStore/FIRInstallationsStore.m b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsStore/FIRInstallationsStore.m new file mode 100644 index 0000000000..9fcfd74889 --- /dev/null +++ b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsStore/FIRInstallationsStore.m @@ -0,0 +1,125 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRInstallationsStore.h" + +#import + +#if __has_include() +#import +#else +#import "FBLPromises.h" +#endif + +#import "FIRInstallationsErrorUtil.h" +#import "FIRInstallationsItem.h" +#import "FIRInstallationsStoredItem.h" +#import "FIRSecureStorage.h" + +NSString *const kFIRInstallationsStoreUserDefaultsID = @"com.firebase.FIRInstallations"; + +@interface FIRInstallationsStore () +@property(nonatomic, readonly) FIRSecureStorage *secureStorage; +@property(nonatomic, readonly, nullable) NSString *accessGroup; +@property(nonatomic, readonly) dispatch_queue_t queue; +@property(nonatomic, readonly) GULUserDefaults *userDefaults; +@end + +@implementation FIRInstallationsStore + +- (instancetype)initWithSecureStorage:(FIRSecureStorage *)storage + accessGroup:(NSString *)accessGroup { + self = [super init]; + if (self) { + _secureStorage = storage; + _accessGroup = [accessGroup copy]; + _queue = dispatch_queue_create("com.firebase.FIRInstallationsStore", DISPATCH_QUEUE_SERIAL); + + NSString *userDefaultsSuiteName = _accessGroup ?: kFIRInstallationsStoreUserDefaultsID; + _userDefaults = [[GULUserDefaults alloc] initWithSuiteName:userDefaultsSuiteName]; + } + return self; +} + +- (FBLPromise *)installationForAppID:(NSString *)appID + appName:(NSString *)appName { + NSString *itemID = [FIRInstallationsItem identifierWithAppID:appID appName:appName]; + return [self installationExistsForAppID:appID appName:appName] + .then(^id(id result) { + return [self.secureStorage getObjectForKey:itemID + objectClass:[FIRInstallationsStoredItem class] + accessGroup:self.accessGroup]; + }) + .then(^id(FIRInstallationsStoredItem *_Nullable storedItem) { + if (storedItem == nil) { + return [FIRInstallationsErrorUtil installationItemNotFoundForAppID:appID appName:appName]; + } + + FIRInstallationsItem *item = [[FIRInstallationsItem alloc] initWithAppID:appID + firebaseAppName:appName]; + [item updateWithStoredItem:storedItem]; + return item; + }); +} + +- (FBLPromise *)saveInstallation:(FIRInstallationsItem *)installationItem { + FIRInstallationsStoredItem *storedItem = [installationItem storedItem]; + NSString *identifier = [installationItem identifier]; + + return + [self.secureStorage setObject:storedItem forKey:identifier accessGroup:self.accessGroup].then( + ^id(id result) { + return [self setInstallationExists:YES forItemWithIdentifier:identifier]; + }); +} + +- (FBLPromise *)removeInstallationForAppID:(NSString *)appID appName:(NSString *)appName { + NSString *identifier = [FIRInstallationsItem identifierWithAppID:appID appName:appName]; + return [self.secureStorage removeObjectForKey:identifier accessGroup:self.accessGroup].then( + ^id(id result) { + return [self setInstallationExists:NO forItemWithIdentifier:identifier]; + }); +} + +#pragma mark - User defaults + +- (FBLPromise *)installationExistsForAppID:(NSString *)appID appName:(NSString *)appName { + NSString *identifier = [FIRInstallationsItem identifierWithAppID:appID appName:appName]; + return [FBLPromise onQueue:self.queue + do:^id _Nullable { + return [[self userDefaults] objectForKey:identifier] != nil + ? [NSNull null] + : [FIRInstallationsErrorUtil + installationItemNotFoundForAppID:appID + appName:appName]; + }]; +} + +- (FBLPromise *)setInstallationExists:(BOOL)exists + forItemWithIdentifier:(NSString *)identifier { + return [FBLPromise onQueue:self.queue + do:^id _Nullable { + if (exists) { + [[self userDefaults] setBool:YES forKey:identifier]; + } else { + [[self userDefaults] removeObjectForKey:identifier]; + } + + return [NSNull null]; + }]; +} + +@end diff --git a/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsStore/FIRInstallationsStoredAuthToken.h b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsStore/FIRInstallationsStoredAuthToken.h new file mode 100644 index 0000000000..f6e4282882 --- /dev/null +++ b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsStore/FIRInstallationsStoredAuthToken.h @@ -0,0 +1,58 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + * The enum represent possible states of the installation auth token. + * + * WARNING: The enum is stored to Keychain as a part of `FIRInstallationsStoredAuthToken`. + * Modification of it can lead to incompatibility with previous version. Any modification must be + * evaluated and, if it is really needed, the `storageVersion` must be bumped and proper migration + * code added. + */ +typedef NS_ENUM(NSInteger, FIRInstallationsAuthTokenStatus) { + /// An initial status or an undefined value. + FIRInstallationsAuthTokenStatusUnknown, + /// The auth token has been received from the server. + FIRInstallationsAuthTokenStatusTokenReceived +}; + +/** + * This class serializes and deserializes the installation data into/from `NSData` to be stored in + * Keychain. This class is primarily used by `FIRInstallationsStore`. It is also used on the logic + * level as a data object (see `FIRInstallationsItem.authToken`). + * + * WARNING: Modification of the class properties can lead to incompatibility with the stored data + * encoded by the previous class versions. Any modification must be evaluated and, if it is really + * needed, the `storageVersion` must be bumped and proper migration code added. + */ +@interface FIRInstallationsStoredAuthToken : NSObject +@property FIRInstallationsAuthTokenStatus status; + +/// The token that can be used to authorize requests to Firebase backend. +@property(nullable, copy) NSString *token; +/// The date when the auth token expires. +@property(nullable, copy) NSDate *expirationDate; + +/// The version of local storage. +@property(nonatomic, readonly) NSInteger storageVersion; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsStore/FIRInstallationsStoredAuthToken.m b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsStore/FIRInstallationsStoredAuthToken.m new file mode 100644 index 0000000000..b21f6dd235 --- /dev/null +++ b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsStore/FIRInstallationsStoredAuthToken.m @@ -0,0 +1,77 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRInstallationsStoredAuthToken.h" + +#import "FIRInstallationsLogger.h" + +NSString *const kFIRInstallationsStoredAuthTokenStatusKey = @"status"; +NSString *const kFIRInstallationsStoredAuthTokenTokenKey = @"token"; +NSString *const kFIRInstallationsStoredAuthTokenExpirationDateKey = @"expirationDate"; +NSString *const kFIRInstallationsStoredAuthTokenStorageVersionKey = @"storageVersion"; + +NSInteger const kFIRInstallationsStoredAuthTokenStorageVersion = 1; + +@implementation FIRInstallationsStoredAuthToken + +- (NSInteger)storageVersion { + return kFIRInstallationsStoredAuthTokenStorageVersion; +} + +- (nonnull id)copyWithZone:(nullable NSZone *)zone { + FIRInstallationsStoredAuthToken *clone = [[FIRInstallationsStoredAuthToken alloc] init]; + clone.status = self.status; + clone.token = [self.token copy]; + clone.expirationDate = self.expirationDate; + return clone; +} + +- (void)encodeWithCoder:(nonnull NSCoder *)aCoder { + [aCoder encodeInteger:self.status forKey:kFIRInstallationsStoredAuthTokenStatusKey]; + [aCoder encodeObject:self.token forKey:kFIRInstallationsStoredAuthTokenTokenKey]; + [aCoder encodeObject:self.expirationDate + forKey:kFIRInstallationsStoredAuthTokenExpirationDateKey]; + [aCoder encodeInteger:self.storageVersion + forKey:kFIRInstallationsStoredAuthTokenStorageVersionKey]; +} + +- (nullable instancetype)initWithCoder:(nonnull NSCoder *)aDecoder { + NSInteger storageVersion = + [aDecoder decodeIntegerForKey:kFIRInstallationsStoredAuthTokenStorageVersionKey]; + if (storageVersion > kFIRInstallationsStoredAuthTokenStorageVersion) { + FIRLogWarning(kFIRLoggerInstallations, + kFIRInstallationsMessageCodeAuthTokenCoderVersionMismatch, + @"FIRInstallationsStoredAuthToken was encoded by a newer coder version %ld. " + @"Current coder version is %ld. Some auth token data may be lost.", + (long)storageVersion, (long)kFIRInstallationsStoredAuthTokenStorageVersion); + } + + FIRInstallationsStoredAuthToken *object = [[FIRInstallationsStoredAuthToken alloc] init]; + object.status = [aDecoder decodeIntegerForKey:kFIRInstallationsStoredAuthTokenStatusKey]; + object.token = [aDecoder decodeObjectOfClass:[NSString class] + forKey:kFIRInstallationsStoredAuthTokenTokenKey]; + object.expirationDate = + [aDecoder decodeObjectOfClass:[NSDate class] + forKey:kFIRInstallationsStoredAuthTokenExpirationDateKey]; + + return object; +} + ++ (BOOL)supportsSecureCoding { + return YES; +} + +@end diff --git a/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsStore/FIRInstallationsStoredItem.h b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsStore/FIRInstallationsStoredItem.h new file mode 100644 index 0000000000..4926588c29 --- /dev/null +++ b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsStore/FIRInstallationsStoredItem.h @@ -0,0 +1,51 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +#import "FIRInstallationsStatus.h" + +@class FIRInstallationsStoredAuthToken; +@class FIRInstallationsStoredIIDCheckin; + +NS_ASSUME_NONNULL_BEGIN + +/** + * The class is supposed to be used by `FIRInstallationsStore` only. It is required to + * serialize/deserialize the installation data into/from `NSData` to be stored in Keychain. + * + * WARNING: Modification of the class properties can lead to incompatibility with the stored data + * encoded by the previous class versions. Any modification must be evaluated and, if it is really + * needed, the `storageVersion` must be bumped and proper migration code added. + */ +@interface FIRInstallationsStoredItem : NSObject + +/// A stable identifier that uniquely identifies the app instance. +@property(nonatomic, copy, nullable) NSString *firebaseInstallationID; +/// The `refreshToken` is used to authorize the auth token requests. +@property(nonatomic, copy, nullable) NSString *refreshToken; + +@property(nonatomic, nullable) FIRInstallationsStoredAuthToken *authToken; +@property(nonatomic) FIRInstallationsStatus registrationStatus; + +/// Instance ID default auth token imported from IID store as a part of IID migration. +@property(nonatomic, nullable) NSString *IIDDefaultToken; + +/// The version of local storage. +@property(nonatomic, readonly) NSInteger storageVersion; +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsStore/FIRInstallationsStoredItem.m b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsStore/FIRInstallationsStoredItem.m new file mode 100644 index 0000000000..0c7655c396 --- /dev/null +++ b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/InstallationsStore/FIRInstallationsStoredItem.m @@ -0,0 +1,80 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRInstallationsStoredItem.h" + +#import "FIRInstallationsLogger.h" +#import "FIRInstallationsStoredAuthToken.h" + +NSString *const kFIRInstallationsStoredItemFirebaseInstallationIDKey = @"firebaseInstallationID"; +NSString *const kFIRInstallationsStoredItemRefreshTokenKey = @"refreshToken"; +NSString *const kFIRInstallationsStoredItemAuthTokenKey = @"authToken"; +NSString *const kFIRInstallationsStoredItemRegistrationStatusKey = @"registrationStatus"; +NSString *const kFIRInstallationsStoredItemIIDDefaultTokenKey = @"IIDDefaultToken"; +NSString *const kFIRInstallationsStoredItemStorageVersionKey = @"storageVersion"; + +NSInteger const kFIRInstallationsStoredItemStorageVersion = 1; + +@implementation FIRInstallationsStoredItem + +- (NSInteger)storageVersion { + return kFIRInstallationsStoredItemStorageVersion; +} + +- (void)encodeWithCoder:(nonnull NSCoder *)aCoder { + [aCoder encodeObject:self.firebaseInstallationID + forKey:kFIRInstallationsStoredItemFirebaseInstallationIDKey]; + [aCoder encodeObject:self.refreshToken forKey:kFIRInstallationsStoredItemRefreshTokenKey]; + [aCoder encodeObject:self.authToken forKey:kFIRInstallationsStoredItemAuthTokenKey]; + [aCoder encodeInteger:self.registrationStatus + forKey:kFIRInstallationsStoredItemRegistrationStatusKey]; + [aCoder encodeObject:self.IIDDefaultToken forKey:kFIRInstallationsStoredItemIIDDefaultTokenKey]; + [aCoder encodeInteger:self.storageVersion forKey:kFIRInstallationsStoredItemStorageVersionKey]; +} + +- (nullable instancetype)initWithCoder:(nonnull NSCoder *)aDecoder { + NSInteger storageVersion = + [aDecoder decodeIntegerForKey:kFIRInstallationsStoredItemStorageVersionKey]; + if (storageVersion > self.storageVersion) { + FIRLogWarning(kFIRLoggerInstallations, + kFIRInstallationsMessageCodeInstallationCoderVersionMismatch, + @"FIRInstallationsStoredItem was encoded by a newer coder version %ld. Current " + @"coder version is %ld. Some installation data may be lost.", + (long)storageVersion, (long)kFIRInstallationsStoredItemStorageVersion); + } + + FIRInstallationsStoredItem *item = [[FIRInstallationsStoredItem alloc] init]; + item.firebaseInstallationID = + [aDecoder decodeObjectOfClass:[NSString class] + forKey:kFIRInstallationsStoredItemFirebaseInstallationIDKey]; + item.refreshToken = [aDecoder decodeObjectOfClass:[NSString class] + forKey:kFIRInstallationsStoredItemRefreshTokenKey]; + item.authToken = [aDecoder decodeObjectOfClass:[FIRInstallationsStoredAuthToken class] + forKey:kFIRInstallationsStoredItemAuthTokenKey]; + item.registrationStatus = + [aDecoder decodeIntegerForKey:kFIRInstallationsStoredItemRegistrationStatusKey]; + item.IIDDefaultToken = + [aDecoder decodeObjectOfClass:[NSString class] + forKey:kFIRInstallationsStoredItemIIDDefaultTokenKey]; + + return item; +} + ++ (BOOL)supportsSecureCoding { + return YES; +} + +@end diff --git a/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Public/FIRInstallations.h b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Public/FIRInstallations.h new file mode 100644 index 0000000000..4839b4e03c --- /dev/null +++ b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Public/FIRInstallations.h @@ -0,0 +1,120 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +@class FIRApp; +@class FIRInstallationsAuthTokenResult; + +NS_ASSUME_NONNULL_BEGIN + +/** A notification with this name is sent each time an installation is created or deleted. */ +FOUNDATION_EXPORT const NSNotificationName FIRInstallationIDDidChangeNotification; +/** `userInfo` key for the `FirebaseApp.name` in `FIRInstallationIDDidChangeNotification`. */ +FOUNDATION_EXPORT NSString *const kFIRInstallationIDDidChangeNotificationAppNameKey; + +/** + * An installation ID handler block. + * @param identifier The installation ID string if exists or `nil` otherwise. + * @param error The error when `identifier == nil` or `nil` otherwise. + */ +typedef void (^FIRInstallationsIDHandler)(NSString *__nullable identifier, + NSError *__nullable error) + NS_SWIFT_NAME(InstallationsIDHandler); + +/** + * An authorization token handler block. + * @param tokenResult An instance of `InstallationsAuthTokenResult` in case of success or `nil` + * otherwise. + * @param error The error when `tokenResult == nil` or `nil` otherwise. + */ +typedef void (^FIRInstallationsTokenHandler)( + FIRInstallationsAuthTokenResult *__nullable tokenResult, NSError *__nullable error) + NS_SWIFT_NAME(InstallationsTokenHandler); + +/** + * The class provides API for Firebase Installations. + * Each configured `FirebaseApp` has a corresponding single instance of `Installations`. + * An instance of the class provides access to the installation info for the `FirebaseApp` as well + * as the ability to delete it. A Firebase Installation is unique by `FirebaseApp.name` and + * `FirebaseApp.options.googleAppID` . + */ +NS_SWIFT_NAME(Installations) +@interface FIRInstallations : NSObject + +- (instancetype)init NS_UNAVAILABLE; + +/** + * Returns a default instance of `Installations`. + * @returns An instance of `Installations` for `FirebaseApp.defaultApp(). + * @throw Throws an exception if the default app is not configured yet or required `FirebaseApp` + * options are missing. + */ ++ (FIRInstallations *)installations NS_SWIFT_NAME(installations()); + +/** + * Returns an instance of `Installations` for an application. + * @param application A configured `FirebaseApp` instance. + * @returns An instance of `Installations` corresponding to the passed application. + * @throw Throws an exception if required `FirebaseApp` options are missing. + */ ++ (FIRInstallations *)installationsWithApp:(FIRApp *)application NS_SWIFT_NAME(installations(app:)); + +/** + * The method creates or retrieves an installation ID. The installation ID is a stable identifier + * that uniquely identifies the app instance. NOTE: If the application already has an existing + * FirebaseInstanceID then the InstanceID identifier will be used. + * @param completion A completion handler which is invoked when the operation completes. See + * `InstallationsIDHandler` for additional details. + */ +- (void)installationIDWithCompletion:(FIRInstallationsIDHandler)completion; + +/** + * Retrieves (locally if it exists or from the server) a valid authorization token. An existing + * token may be invalidated or expired, so it is recommended to fetch the auth token before each + * server request. The method does the same as `Installations.authTokenForcingRefresh(:, + * completion:)` with forcing refresh `NO`. + * @param completion A completion handler which is invoked when the operation completes. See + * `InstallationsTokenHandler` for additional details. + */ +- (void)authTokenWithCompletion:(FIRInstallationsTokenHandler)completion; + +/** + * Retrieves (locally or from the server depending on `forceRefresh` value) a valid authorization + * token. An existing token may be invalidated or expire, so it is recommended to fetch the auth + * token before each server request. This method should be used with `forceRefresh == YES` when e.g. + * a request with the previously fetched auth token failed with "Not Authorized" error. + * @param forceRefresh If `YES` then the locally cached auth token will be ignored and a new one + * will be requested from the server. If `NO`, then the locally cached auth token will be returned + * if exists and has not expired yet. + * @param completion A completion handler which is invoked when the operation completes. See + * `InstallationsTokenHandler` for additional details. + */ +- (void)authTokenForcingRefresh:(BOOL)forceRefresh + completion:(FIRInstallationsTokenHandler)completion; + +/** + * Deletes all the installation data including the unique identifier, auth tokens and + * all related data on the server side. A network connection is required for the method to + * succeed. If fails, the existing installation data remains untouched. + * @param completion A completion handler which is invoked when the operation completes. `error == + * nil` indicates success. + */ +- (void)deleteWithCompletion:(void (^)(NSError *__nullable error))completion; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Public/FIRInstallationsAuthTokenResult.h b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Public/FIRInstallationsAuthTokenResult.h new file mode 100644 index 0000000000..7753132d9b --- /dev/null +++ b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Public/FIRInstallationsAuthTokenResult.h @@ -0,0 +1,33 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** The class represents a result of the auth token request. */ +NS_SWIFT_NAME(InstallationsAuthTokenResult) +@interface FIRInstallationsAuthTokenResult : NSObject + +/** The authorization token string. */ +@property(nonatomic, readonly) NSString *authToken; + +/** The auth token expiration date. */ +@property(nonatomic, readonly) NSDate *expirationDate; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Public/FIRInstallationsErrors.h b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Public/FIRInstallationsErrors.h new file mode 100644 index 0000000000..d0c3b9961f --- /dev/null +++ b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Public/FIRInstallationsErrors.h @@ -0,0 +1,34 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +extern NSString *const kFirebaseInstallationsErrorDomain; + +typedef NS_ENUM(NSUInteger, FIRInstallationsErrorCode) { + /** Unknown error. See `userInfo` for details. */ + FIRInstallationsErrorCodeUnknown = 0, + + /** Keychain error. See `userInfo` for details. */ + FIRInstallationsErrorCodeKeychain = 1, + + /** Server unreachable. A network error or server is unavailable. See `userInfo` for details. */ + FIRInstallationsErrorCodeServerUnreachable = 2, + + /** FirebaseApp configuration issues e.g. invalid GMP-App-ID, etc. See `userInfo` for details. */ + FIRInstallationsErrorCodeInvalidConfiguration = 3, + +} NS_SWIFT_NAME(InstallationsErrorCode); diff --git a/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Public/FIRInstallationsVersion.h b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Public/FIRInstallationsVersion.h new file mode 100644 index 0000000000..8cdf6778b3 --- /dev/null +++ b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Public/FIRInstallationsVersion.h @@ -0,0 +1,19 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +FOUNDATION_EXPORT const char *const FIRInstallationsVersionStr; diff --git a/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Public/FirebaseInstallations.h b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Public/FirebaseInstallations.h new file mode 100644 index 0000000000..accc9ac6b2 --- /dev/null +++ b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/Public/FirebaseInstallations.h @@ -0,0 +1,20 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRInstallations.h" +#import "FIRInstallationsAuthTokenResult.h" +#import "FIRInstallationsErrors.h" +#import "FIRInstallationsVersion.h" diff --git a/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/SecureStorage/FIRInstallationsKeychainUtils.h b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/SecureStorage/FIRInstallationsKeychainUtils.h new file mode 100644 index 0000000000..4d73ec00f5 --- /dev/null +++ b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/SecureStorage/FIRInstallationsKeychainUtils.h @@ -0,0 +1,35 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +NS_ASSUME_NONNULL_BEGIN + +/// Helper functions to access Keychain. +@interface FIRInstallationsKeychainUtils : NSObject + ++ (nullable NSData *)getItemWithQuery:(NSDictionary *)query + error:(NSError *_Nullable *_Nullable)outError; + ++ (BOOL)setItem:(NSData *)item + withQuery:(NSDictionary *)query + error:(NSError *_Nullable *_Nullable)outError; + ++ (BOOL)removeItemWithQuery:(NSDictionary *)query error:(NSError *_Nullable *_Nullable)outError; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/SecureStorage/FIRInstallationsKeychainUtils.m b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/SecureStorage/FIRInstallationsKeychainUtils.m new file mode 100644 index 0000000000..51da86a8a8 --- /dev/null +++ b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/SecureStorage/FIRInstallationsKeychainUtils.m @@ -0,0 +1,107 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRInstallationsKeychainUtils.h" + +#import "FIRInstallationsErrorUtil.h" + +@implementation FIRInstallationsKeychainUtils + ++ (nullable NSData *)getItemWithQuery:(NSDictionary *)query + error:(NSError *_Nullable *_Nullable)outError { + NSMutableDictionary *mutableQuery = [query mutableCopy]; + + mutableQuery[(__bridge id)kSecReturnData] = @YES; + mutableQuery[(__bridge id)kSecMatchLimit] = (__bridge id)kSecMatchLimitOne; + + CFDataRef result = NULL; + OSStatus status = + SecItemCopyMatching((__bridge CFDictionaryRef)mutableQuery, (CFTypeRef *)&result); + + if (status == errSecSuccess && result != NULL) { + if (outError) { + *outError = nil; + } + + return (__bridge_transfer NSData *)result; + } + + if (status == errSecItemNotFound) { + if (outError) { + *outError = nil; + } + } else { + if (outError) { + *outError = [FIRInstallationsErrorUtil keychainErrorWithFunction:@"SecItemCopyMatching" + status:status]; + } + } + return nil; +} + ++ (BOOL)setItem:(NSData *)item + withQuery:(NSDictionary *)query + error:(NSError *_Nullable *_Nullable)outError { + NSData *existingItem = [self getItemWithQuery:query error:outError]; + if (outError && *outError) { + return NO; + } + + NSMutableDictionary *mutableQuery = [query mutableCopy]; + mutableQuery[(__bridge id)kSecAttrAccessible] = + (__bridge id)kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly; + + OSStatus status; + if (!existingItem) { + mutableQuery[(__bridge id)kSecValueData] = item; + status = SecItemAdd((__bridge CFDictionaryRef)mutableQuery, NULL); + } else { + NSDictionary *attributes = @{(__bridge id)kSecValueData : item}; + status = SecItemUpdate((__bridge CFDictionaryRef)query, (__bridge CFDictionaryRef)attributes); + } + + if (status == noErr) { + if (outError) { + *outError = nil; + } + return YES; + } + + NSString *function = existingItem ? @"SecItemUpdate" : @"SecItemAdd"; + if (outError) { + *outError = [FIRInstallationsErrorUtil keychainErrorWithFunction:function status:status]; + } + return NO; +} + ++ (BOOL)removeItemWithQuery:(NSDictionary *)query error:(NSError *_Nullable *_Nullable)outError { + OSStatus status = SecItemDelete((__bridge CFDictionaryRef)query); + + if (status == noErr || status == errSecItemNotFound) { + if (outError) { + *outError = nil; + } + return YES; + } + + if (outError) { + *outError = [FIRInstallationsErrorUtil keychainErrorWithFunction:@"SecItemDelete" + status:status]; + } + return NO; +} + +@end diff --git a/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/SecureStorage/FIRSecureStorage.h b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/SecureStorage/FIRSecureStorage.h new file mode 100644 index 0000000000..5548e3e12c --- /dev/null +++ b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/SecureStorage/FIRSecureStorage.h @@ -0,0 +1,71 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +@class FBLPromise; + +NS_ASSUME_NONNULL_BEGIN + +/// The class provides a convenient abstraction on top of the iOS Keychain API to save data. +@interface FIRSecureStorage : NSObject + +/** + * Get an object by key. + * @param key The key. + * @param objectClass The expected object class required by `NSSecureCoding`. + * @param accessGroup The Keychain Access Group. + * + * @return Returns a promise. It is resolved with an object stored by key if exists. It is resolved + * with `nil` when the object not found. It fails on a Keychain error. + */ +- (FBLPromise> *)getObjectForKey:(NSString *)key + objectClass:(Class)objectClass + accessGroup:(nullable NSString *)accessGroup; + +/** + * Saves the given object by the given key. + * @param object The object to store. + * @param key The key to store the object. If there is an existing object by the key, it will be + * overridden. + * @param accessGroup The Keychain Access Group. + * + * @return Returns which is resolved with `[NSNull null]` on success. + */ +- (FBLPromise *)setObject:(id)object + forKey:(NSString *)key + accessGroup:(nullable NSString *)accessGroup; + +/** + * Removes the object by the given key. + * @param key The key to store the object. If there is an existing object by the key, it will be + * overridden. + * @param accessGroup The Keychain Access Group. + * + * @return Returns which is resolved with `[NSNull null]` on success. + */ +- (FBLPromise *)removeObjectForKey:(NSString *)key + accessGroup:(nullable NSString *)accessGroup; + +#if TARGET_OS_OSX +/// If not `nil`, then only this keychain will be used to save and read data (see +/// `kSecMatchSearchList` and `kSecUseKeychain`. It is mostly intended to be used by unit tests. +@property(nonatomic, nullable) SecKeychainRef keychainRef; +#endif // TARGET_OSX + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/SecureStorage/FIRSecureStorage.m b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/SecureStorage/FIRSecureStorage.m new file mode 100644 index 0000000000..543e848156 --- /dev/null +++ b/Pods/FirebaseInstallations/FirebaseInstallations/Source/Library/SecureStorage/FIRSecureStorage.m @@ -0,0 +1,255 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRSecureStorage.h" +#import + +#if __has_include() +#import +#else +#import "FBLPromises.h" +#endif + +#import "FIRInstallationsErrorUtil.h" +#import "FIRInstallationsKeychainUtils.h" + +@interface FIRSecureStorage () +@property(nonatomic, readonly) dispatch_queue_t keychainQueue; +@property(nonatomic, readonly) dispatch_queue_t inMemoryCacheQueue; +@property(nonatomic, readonly) NSString *service; +@property(nonatomic, readonly) NSCache> *inMemoryCache; +@end + +@implementation FIRSecureStorage + +- (instancetype)init { + NSCache *cache = [[NSCache alloc] init]; + // Cache up to 5 installations. + cache.countLimit = 5; + return [self initWithService:@"com.firebase.FIRInstallations.installations" cache:cache]; +} + +- (instancetype)initWithService:(NSString *)service cache:(NSCache *)cache { + self = [super init]; + if (self) { + _keychainQueue = dispatch_queue_create( + "com.firebase.FIRInstallations.FIRSecureStorage.Keychain", DISPATCH_QUEUE_SERIAL); + _inMemoryCacheQueue = dispatch_queue_create( + "com.firebase.FIRInstallations.FIRSecureStorage.InMemoryCache", DISPATCH_QUEUE_SERIAL); + _service = [service copy]; + _inMemoryCache = cache; + } + return self; +} + +#pragma mark - Public + +- (FBLPromise> *)getObjectForKey:(NSString *)key + objectClass:(Class)objectClass + accessGroup:(nullable NSString *)accessGroup { + return [FBLPromise onQueue:self.inMemoryCacheQueue + do:^id _Nullable { + // Return cached object or fail otherwise. + id object = [self.inMemoryCache objectForKey:key]; + return object + ?: [[NSError alloc] + initWithDomain:FBLPromiseErrorDomain + code:FBLPromiseErrorCodeValidationFailure + userInfo:nil]; + }] + .recover(^id _Nullable(NSError *error) { + // Look for the object in the keychain. + return [self getObjectFromKeychainForKey:key + objectClass:objectClass + accessGroup:accessGroup]; + }); +} + +- (FBLPromise *)setObject:(id)object + forKey:(NSString *)key + accessGroup:(nullable NSString *)accessGroup { + return [FBLPromise onQueue:self.inMemoryCacheQueue + do:^id _Nullable { + // Save to the in-memory cache first. + [self.inMemoryCache setObject:object forKey:[key copy]]; + return [NSNull null]; + }] + .thenOn(self.keychainQueue, ^id(id result) { + // Then store the object to the keychain. + NSDictionary *query = [self keychainQueryWithKey:key accessGroup:accessGroup]; + NSError *error; + NSData *encodedObject = [self archiveDataForObject:object error:&error]; + if (!encodedObject) { + return error; + } + + if (![FIRInstallationsKeychainUtils setItem:encodedObject withQuery:query error:&error]) { + return error; + } + + return [NSNull null]; + }); +} + +- (FBLPromise *)removeObjectForKey:(NSString *)key + accessGroup:(nullable NSString *)accessGroup { + return [FBLPromise onQueue:self.inMemoryCacheQueue + do:^id _Nullable { + [self.inMemoryCache removeObjectForKey:key]; + return nil; + }] + .thenOn(self.keychainQueue, ^id(id result) { + NSDictionary *query = [self keychainQueryWithKey:key accessGroup:accessGroup]; + + NSError *error; + if (![FIRInstallationsKeychainUtils removeItemWithQuery:query error:&error]) { + return error; + } + + return [NSNull null]; + }); +} + +#pragma mark - Private + +- (FBLPromise> *)getObjectFromKeychainForKey:(NSString *)key + objectClass:(Class)objectClass + accessGroup:(nullable NSString *)accessGroup { + // Look for the object in the keychain. + return [FBLPromise onQueue:self.keychainQueue + do:^id { + NSDictionary *query = [self keychainQueryWithKey:key + accessGroup:accessGroup]; + NSError *error; + NSData *encodedObject = + [FIRInstallationsKeychainUtils getItemWithQuery:query error:&error]; + + if (error) { + return error; + } + if (!encodedObject) { + return nil; + } + id object = [self unarchivedObjectOfClass:objectClass + fromData:encodedObject + error:&error]; + if (error) { + return error; + } + + return object; + }] + .thenOn(self.inMemoryCacheQueue, + ^id _Nullable(id _Nullable object) { + // Save object to the in-memory cache if exists and return the object. + if (object) { + [self.inMemoryCache setObject:object forKey:[key copy]]; + } + return object; + }); +} + +- (void)resetInMemoryCache { + [self.inMemoryCache removeAllObjects]; +} + +#pragma mark - Keychain + +- (NSMutableDictionary *)keychainQueryWithKey:(NSString *)key + accessGroup:(nullable NSString *)accessGroup { + NSMutableDictionary *query = [NSMutableDictionary dictionary]; + + query[(__bridge NSString *)kSecClass] = (__bridge NSString *)kSecClassGenericPassword; + query[(__bridge NSString *)kSecAttrService] = self.service; + query[(__bridge NSString *)kSecAttrAccount] = key; + + if (accessGroup) { + query[(__bridge NSString *)kSecAttrAccessGroup] = accessGroup; + } + +#if TARGET_OS_OSX + if (self.keychainRef) { + query[(__bridge NSString *)kSecUseKeychain] = (__bridge id)(self.keychainRef); + query[(__bridge NSString *)kSecMatchSearchList] = @[ (__bridge id)(self.keychainRef) ]; + } +#endif // TARGET_OSX + + return query; +} + +- (nullable NSData *)archiveDataForObject:(id)object error:(NSError **)outError { + NSData *archiveData; + if (@available(macOS 10.13, iOS 11.0, tvOS 11.0, *)) { + NSError *error; + archiveData = [NSKeyedArchiver archivedDataWithRootObject:object + requiringSecureCoding:YES + error:&error]; + if (error && outError) { + *outError = [FIRInstallationsErrorUtil keyedArchiverErrorWithError:error]; + } + } else { + @try { + NSMutableData *data = [NSMutableData data]; +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data]; +#pragma clang diagnostic pop + archiver.requiresSecureCoding = YES; + + [archiver encodeObject:object forKey:NSKeyedArchiveRootObjectKey]; + [archiver finishEncoding]; + + archiveData = [data copy]; + } @catch (NSException *exception) { + if (outError) { + *outError = [FIRInstallationsErrorUtil keyedArchiverErrorWithException:exception]; + } + } + } + + return archiveData; +} + +- (nullable id)unarchivedObjectOfClass:(Class)class + fromData:(NSData *)data + error:(NSError **)outError { + id object; + if (@available(macOS 10.13, iOS 11.0, tvOS 11.0, *)) { + NSError *error; + object = [NSKeyedUnarchiver unarchivedObjectOfClass:class fromData:data error:&error]; + if (error && outError) { + *outError = [FIRInstallationsErrorUtil keyedArchiverErrorWithError:error]; + } + } else { + @try { +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data]; +#pragma clang diagnostic pop + unarchiver.requiresSecureCoding = YES; + + object = [unarchiver decodeObjectOfClass:class forKey:NSKeyedArchiveRootObjectKey]; + } @catch (NSException *exception) { + if (outError) { + *outError = [FIRInstallationsErrorUtil keyedArchiverErrorWithException:exception]; + } + } + } + + return object; +} + +@end diff --git a/Pods/FirebaseInstallations/LICENSE b/Pods/FirebaseInstallations/LICENSE new file mode 100644 index 0000000000..d645695673 --- /dev/null +++ b/Pods/FirebaseInstallations/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/Pods/FirebaseInstallations/README.md b/Pods/FirebaseInstallations/README.md new file mode 100644 index 0000000000..d6798fe45c --- /dev/null +++ b/Pods/FirebaseInstallations/README.md @@ -0,0 +1,266 @@ +# Firebase iOS Open Source Development + [![Actions Status][gh-core-badge]][gh-actions] + [![Actions Status][gh-dynamiclinks-badge]][gh-actions] + [![Actions Status][gh-datatransport-badge]][gh-actions] + [![Actions Status][gh-storage-badge]][gh-actions] + [![Actions Status][gh-zip-badge]][gh-actions] + [![Travis](https://travis-ci.org/firebase/firebase-ios-sdk.svg?branch=master)](https://travis-ci.org/firebase/firebase-ios-sdk) + +This repository contains all Firebase iOS SDK source except FirebaseAnalytics, +FirebasePerformance, and FirebaseML. + +The repository also includes GoogleUtilities source. The +[GoogleUtilities](GoogleUtilities/README.md) pod is +a set of utilities used by Firebase and other Google products. + +Firebase is an app development platform with tools to help you build, grow and +monetize your app. More information about Firebase can be found at +[https://firebase.google.com](https://firebase.google.com). + +## Installation + +See the three subsections for details about three different installation methods. +1. [Standard pod install](README.md#standard-pod-install) +1. [Installing from the GitHub repo](README.md#installing-from-github) +1. [Experimental Carthage](README.md#carthage-ios-only) + +### Standard pod install + +Go to +[https://firebase.google.com/docs/ios/setup](https://firebase.google.com/docs/ios/setup). + +### Installing from GitHub + +For releases starting with 5.0.0, the source for each release is also deployed +to CocoaPods master and available via standard +[CocoaPods Podfile syntax](https://guides.cocoapods.org/syntax/podfile.html#pod). + +These instructions can be used to access the Firebase repo at other branches, +tags, or commits. + +#### Background + +See +[the Podfile Syntax Reference](https://guides.cocoapods.org/syntax/podfile.html#pod) +for instructions and options about overriding pod source locations. + +#### Accessing Firebase Source Snapshots + +All of the official releases are tagged in this repo and available via CocoaPods. To access a local +source snapshot or unreleased branch, use Podfile directives like the following: + +To access FirebaseFirestore via a branch: +``` +pod 'FirebaseCore', :git => 'https://github.com/firebase/firebase-ios-sdk.git', :branch => 'master' +pod 'FirebaseFirestore', :git => 'https://github.com/firebase/firebase-ios-sdk.git', :branch => 'master' +``` + +To access FirebaseMessaging via a checked out version of the firebase-ios-sdk repo do: + +``` +pod 'FirebaseCore', :path => '/path/to/firebase-ios-sdk' +pod 'FirebaseMessaging', :path => '/path/to/firebase-ios-sdk' +``` + +### Carthage (iOS only) + +Instructions for the experimental Carthage distribution are at +[Carthage](Carthage.md). + +### Rome + +Instructions for installing binary frameworks via +[Rome](https://github.com/CocoaPods/Rome) are at [Rome](Rome.md). + +## Development + +To develop Firebase software in this repository, ensure that you have at least +the following software: + + * Xcode 10.1 (or later) + * CocoaPods 1.7.2 (or later) + * [CocoaPods generate](https://github.com/square/cocoapods-generate) + +For the pod that you want to develop: + +`pod gen Firebase{name here}.podspec --local-sources=./ --auto-open --platforms=ios` + +Note: If the CocoaPods cache is out of date, you may need to run +`pod repo update` before the `pod gen` command. + +Note: Set the `--platforms` option to `macos` or `tvos` to develop/test for +those platforms. Since 10.2, Xcode does not properly handle multi-platform +CocoaPods workspaces. + +Firestore has a self contained Xcode project. See +[Firestore/README.md](Firestore/README.md). + +### Development for Catalyst +* `pod gen {name here}.podspec --local-sources=./ --auto-open --platforms=ios` +* Check the Mac box in the App-iOS Build Settings +* Sign the App in the Settings Signing & Capabilities tab +* Click Pods in the Project Manager +* Add Signing to the iOS host app and unit test targets +* Select the Unit-unit scheme +* Run it to build and test + +### Adding a New Firebase Pod + +See [AddNewPod.md](AddNewPod.md). + +### Code Formatting + +To ensure that the code is formatted consistently, run the script +[./scripts/style.sh](https://github.com/firebase/firebase-ios-sdk/blob/master/scripts/style.sh) +before creating a PR. + +Travis will verify that any code changes are done in a style compliant way. Install +`clang-format` and `swiftformat`. +These commands will get the right versions: + +``` +brew upgrade https://raw.githubusercontent.com/Homebrew/homebrew-core/e3496d9/Formula/clang-format.rb +brew upgrade https://raw.githubusercontent.com/Homebrew/homebrew-core/7963c3d/Formula/swiftformat.rb +``` + +Note: if you already have a newer version of these installed you may need to +`brew switch` to this version. + +To update this section, find the versions of clang-format and swiftformat.rb to +match the versions in the CI failure logs +[here](https://github.com/Homebrew/homebrew-core/tree/master/Formula). + +### Running Unit Tests + +Select a scheme and press Command-u to build a component and run its unit tests. + +#### Viewing Code Coverage + +First, make sure that [xcov](https://github.com/nakiostudio/xcov) is installed with `gem install xcov`. + +After running the `AllUnitTests_iOS` scheme in Xcode, execute +`xcov --workspace Firebase.xcworkspace --scheme AllUnitTests_iOS --output_directory xcov_output` +at Example/ in the terminal. This will aggregate the coverage, and you can run `open xcov_output/index.html` to see the results. + +### Running Sample Apps +In order to run the sample apps and integration tests, you'll need valid +`GoogleService-Info.plist` files for those samples. The Firebase Xcode project contains dummy plist +files without real values, but can be replaced with real plist files. To get your own +`GoogleService-Info.plist` files: + +1. Go to the [Firebase Console](https://console.firebase.google.com/) +2. Create a new Firebase project, if you don't already have one +3. For each sample app you want to test, create a new Firebase app with the sample app's bundle +identifier (e.g. `com.google.Database-Example`) +4. Download the resulting `GoogleService-Info.plist` and replace the appropriate dummy plist file +(e.g. in [Example/Database/App/](Example/Database/App/)); + +Some sample apps like Firebase Messaging ([Example/Messaging/App](Example/Messaging/App)) require +special Apple capabilities, and you will have to change the sample app to use a unique bundle +identifier that you can control in your own Apple Developer account. + +## Specific Component Instructions +See the sections below for any special instructions for those components. + +### Firebase Auth + +If you're doing specific Firebase Auth development, see +[the Auth Sample README](Example/Auth/README.md) for instructions about +building and running the FirebaseAuth pod along with various samples and tests. + +### Firebase Database + +To run the Database Integration tests, make your database authentication rules +[public](https://firebase.google.com/docs/database/security/quickstart). + +### Firebase Storage + +To run the Storage Integration tests, follow the instructions in +[FIRStorageIntegrationTests.m](Example/Storage/Tests/Integration/FIRStorageIntegrationTests.m). + +#### Push Notifications + +Push notifications can only be delivered to specially provisioned App IDs in the developer portal. +In order to actually test receiving push notifications, you will need to: + +1. Change the bundle identifier of the sample app to something you own in your Apple Developer +account, and enable that App ID for push notifications. +2. You'll also need to +[upload your APNs Provider Authentication Key or certificate to the Firebase Console](https://firebase.google.com/docs/cloud-messaging/ios/certs) +at **Project Settings > Cloud Messaging > [Your Firebase App]**. +3. Ensure your iOS device is added to your Apple Developer portal as a test device. + +#### iOS Simulator + +The iOS Simulator cannot register for remote notifications, and will not receive push notifications. +In order to receive push notifications, you'll have to follow the steps above and run the app on a +physical device. + +## Community Supported Efforts + +We've seen an amazing amount of interest and contributions to improve the Firebase SDKs, and we are +very grateful! We'd like to empower as many developers as we can to be able to use Firebase and +participate in the Firebase community. + +### tvOS, macOS, watchOS and Catalyst +Thanks to contributions from the community, many of Firebase SDKs now compile, run unit tests, and work on +tvOS, macOS, watchOS and Catalyst. + +For tvOS, checkout the [Sample](Example/tvOSSample). +For watchOS, currently only Messaging and Storage (and their dependencies) have limited support. Checkout the +[Independent Watch App Sample](Example/watchOSSample). + +Keep in mind that macOS, tvOS, watchOS and Catalyst are not officially supported by Firebase, and this +repository is actively developed primarily for iOS. While we can catch basic unit test issues with +Travis, there may be some changes where the SDK no longer works as expected on macOS, tvOS or watchOS. If you +encounter this, please [file an issue](https://github.com/firebase/firebase-ios-sdk/issues). + +During app setup in the console, you may get to a step that mentions something like "Checking if the app +has communicated with our servers". This relies on Analytics and will not work on macOS/tvOS/watchOS/Catalyst. +**It's safe to ignore the message and continue**, the rest of the SDKs will work as expected. + +To install, add a subset of the following to the Podfile: + +``` +pod 'Firebase/ABTesting' # No watchOS support yet +pod 'Firebase/Auth' # No watchOS support yet +pod 'Firebase/Crashlytics' # No watchOS support yet +pod 'Firebase/Database' # No watchOS support yet +pod 'Firebase/Firestore' # No watchOS support yet +pod 'Firebase/Functions' # No watchOS support yet +pod 'Firebase/Messaging' +pod 'Firebase/RemoteConfig' # No watchOS support yet +pod 'Firebase/Storage' +``` + +#### Additional Catalyst Notes + +* FirebaseAuth and FirebaseMessaging require adding `Keychain Sharing Capability` +to Build Settings. +* FirebaseFirestore requires signing the +[gRPC Resource target](https://github.com/firebase/firebase-ios-sdk/issues/3500#issuecomment-518741681). + +## Roadmap + +See [Roadmap](ROADMAP.md) for more about the Firebase iOS SDK Open Source +plans and directions. + +## Contributing + +See [Contributing](CONTRIBUTING.md) for more information on contributing to the Firebase +iOS SDK. + +## License + +The contents of this repository is licensed under the +[Apache License, version 2.0](http://www.apache.org/licenses/LICENSE-2.0). + +Your use of Firebase is governed by the +[Terms of Service for Firebase Services](https://firebase.google.com/terms/). + +[gh-actions]: https://github.com/firebase/firebase-ios-sdk/actions +[gh-core-badge]: https://github.com/firebase/firebase-ios-sdk/workflows/core/badge.svg +[gh-datatransport-badge]: https://github.com/firebase/firebase-ios-sdk/workflows/datatransport/badge.svg +[gh-dynamiclinks-badge]: https://github.com/firebase/firebase-ios-sdk/workflows/dynamiclinks/badge.svg +[gh-storage-badge]: https://github.com/firebase/firebase-ios-sdk/workflows/storage/badge.svg +[gh-zip-badge]: https://github.com/firebase/firebase-ios-sdk/workflows/zip/badge.svg diff --git a/Pods/FirebaseInstanceID/CHANGELOG.md b/Pods/FirebaseInstanceID/CHANGELOG.md deleted file mode 100755 index b81d158e79..0000000000 --- a/Pods/FirebaseInstanceID/CHANGELOG.md +++ /dev/null @@ -1,132 +0,0 @@ -# 2018-10-25 -- v3.3.0 -- Fixed a crash caused by keychain operation when accessing default access group. (#1399, #1393) -- Remove internal APIs that are no longer used. - -# 2018-09-25 -- v3.2.2 -- Fixed a crash caused by NSUserDefaults being called on background thread. - -# 2018-08-14 -- v3.2.1 -- Fixed an issue that checkin is not cached properly when app first started. (#1561) - -# 2018-07-31 -- v3.2.0 -- Added support for global Firebase data collection flag. (#1219) -- Improved message tracking sent by server API. -- Fixed an issue that InstanceID doesn't compile in app extensions, allowing its -dependents like remote config to be working inside the app extensions. - -# 2018-06-19 -- v3.1.1 -- Ensure the checkin and tokens are refreshed if firebase project changed. -- Fixed an issue that checkin should be turned off when FCM's autoInitEnabled flag is off. - -# 2018-06-12 -- v3.1.0 -- Added a new API to fetch InstanceID and Token with a completion handler. The completion handler returns a FIRInstanceIDResult with a instanceID and a token properties. -- Deprecated the token method. -- Added support to log a new customized label provided by developer. - -# 2018-05-08 -- v3.0.0 -- Removed deprecated method `setAPNSToken:type` defined in FIRInstanceID, please use `setAPNSToken:type` defined in FIRMessaging instead. -- Removed deprecated enum `FIRInstanceIDAPNSTokenType` defined in FIRInstanceID, please use `FIRMessagingAPNSTokenType` defined in FIRMessaging instead. -- Fixed an issue that FCM scheduled messages were not tracked successfully. - -# 2018-03-06 -- v2.0.10 -- Improved documentation on InstanceID usage for GDPR. -- Improved the keypair handling during GCM to FCM migration. If you are migrating from GCM to FCM, we encourage you to update to this version and above. - -# 2018-02-06 -- v2.0.9 -- Improved support for language targeting for FCM service. Server updates happen more efficiently when language changes. -- Improved support for FCM token auto generation enable/disable functions. - -# 2017-12-11 -- v2.0.8 -- Fixed a crash caused by a reflection call during logging. -- Updating server with the latest parameters and deprecating old ones. - -# 2017-11-27 -- v2.0.7 -- Improve identity reset process, ensuring all information is reset during Identity deletion. - -# 2017-11-06 -- v2.0.6 -- Make token refresh weekly. -- Fixed a crash when performing token operation. - -# 2017-10-11 -- v2.0.5 -- Improved support for working in shared Keychain environments. - -# 2017-09-26 -- v2.0.4 -- Fixed an issue where the FCM token was not associating correctly with an APNs - device token, depending on when the APNs device token was made available. -- Fixed an issue where FCM tokens for different Sender IDs were not associating - correctly with an APNs device token. -- Fixed an issue that was preventing the FCM direct channel from being - established on the first start after 24 hours of being opened. - -# 2017-09-13 -- v2.0.3 -- Fixed a race condition where a token was not being generated on first start, - if Firebase Messaging was included and the app did not register for remote - notifications. - -# 2017-08-25 -- v2.0.2 -- Fixed a startup performance regression, removing a call which was blocking the - main thread. - -# 2017-08-07 -- v2.0.1 -- Fixed issues with token and app identifier being inaccessible when the device - is locked. -- Fixed a crash if bundle identifier is nil, which is possible in some testing - environments. -- Fixed a small memory leak fetching a new token. -- Moved to a new and simplified token storage system. -- Moved to a new queuing system for token fetches and deletes. -- Simplified logic and code around configuration and logging. -- Added clarification about the 'apns_sandbox' parameter, in header comments. - -# 2017-05-08 -- v2.0.0 -- Introduced an improved interface for Swift 3 developers -- Deprecated some methods and properties after moving their logic to the - Firebase Cloud Messaging SDK -- Fixed an intermittent stability issue when a debug build of an app was - replaced with a release build of the same version -- Removed swizzling logic that was sometimes resulting in developers receiving - a validation notice about enabling push notification capabilities, even though - they weren't using push notifications -- Fixed a notification that would sometimes fire twice in quick succession - during the first run of an app - -# 2017-03-31 -- v1.0.10 - -- Improvements to token-fetching logic -- Fixed some warnings in Instance ID -- Improved error messages if Instance ID couldn't be initialized properly -- Improvements to console logging - -# 2017-01-31 -- v1.0.9 - -- Removed an error being mistakenly logged to the console. - -# 2016-07-06 -- v1.0.8 - -- Don't store InstanceID plists in Documents folder. - -# 2016-06-19 -- v1.0.7 - -- Fix remote-notifications warning on app submission. - -# 2016-05-16 -- v1.0.6 - -- Fix CocoaPod linter issues for InstanceID pod. - -# 2016-05-13 -- v1.0.5 - -- Fix Authorization errors for InstanceID tokens. - -# 2016-05-11 -- v1.0.4 - -- Reduce wait for InstanceID token during parallel requests. - -# 2016-04-18 -- v1.0.3 - -- Change flag to disable swizzling to *FirebaseAppDelegateProxyEnabled*. -- Fix incessant Keychain errors while accessing InstanceID. -- Fix max retries for fetching IID token. - -# 2016-04-18 -- v1.0.2 - -- Register for remote notifications on iOS8+ in the SDK itself. diff --git a/Pods/FirebaseInstanceID/Frameworks/FirebaseInstanceID.framework/FirebaseInstanceID b/Pods/FirebaseInstanceID/Frameworks/FirebaseInstanceID.framework/FirebaseInstanceID deleted file mode 100755 index 46aff495d0..0000000000 Binary files a/Pods/FirebaseInstanceID/Frameworks/FirebaseInstanceID.framework/FirebaseInstanceID and /dev/null differ diff --git a/Pods/FirebaseInstanceID/Frameworks/FirebaseInstanceID.framework/Headers/FIRInstanceID.h b/Pods/FirebaseInstanceID/Frameworks/FirebaseInstanceID.framework/Headers/FIRInstanceID.h deleted file mode 100755 index 97777e1c32..0000000000 --- a/Pods/FirebaseInstanceID/Frameworks/FirebaseInstanceID.framework/Headers/FIRInstanceID.h +++ /dev/null @@ -1,304 +0,0 @@ -#import - -NS_ASSUME_NONNULL_BEGIN - -@class FIRInstanceIDResult; -/** - * @memberof FIRInstanceID - * - * The scope to be used when fetching/deleting a token for Firebase Messaging. - */ -FOUNDATION_EXPORT NSString *const kFIRInstanceIDScopeFirebaseMessaging - NS_SWIFT_NAME(InstanceIDScopeFirebaseMessaging); - -#if defined(__IPHONE_10_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0 -/** - * Called when the system determines that tokens need to be refreshed. - * This method is also called if Instance ID has been reset in which - * case, tokens and FCM topic subscriptions also need to be refreshed. - * - * Instance ID service will throttle the refresh event across all devices - * to control the rate of token updates on application servers. - */ -FOUNDATION_EXPORT const NSNotificationName kFIRInstanceIDTokenRefreshNotification - NS_SWIFT_NAME(InstanceIDTokenRefresh); -#else -/** - * Called when the system determines that tokens need to be refreshed. - * This method is also called if Instance ID has been reset in which - * case, tokens and FCM topic subscriptions also need to be refreshed. - * - * Instance ID service will throttle the refresh event across all devices - * to control the rate of token updates on application servers. - */ -FOUNDATION_EXPORT NSString *const kFIRInstanceIDTokenRefreshNotification - NS_SWIFT_NAME(InstanceIDTokenRefreshNotification); -#endif // defined(__IPHONE_10_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0 - -/** - * @related FIRInstanceID - * - * The completion handler invoked when the InstanceID token returns. If - * the call fails we return the appropriate `error code` as described below. - * - * @param token The valid token as returned by InstanceID backend. - * - * @param error The error describing why generating a new token - * failed. See the error codes below for a more detailed - * description. - */ -typedef void (^FIRInstanceIDTokenHandler)(NSString *__nullable token, NSError *__nullable error) - NS_SWIFT_NAME(InstanceIDTokenHandler); - -/** - * @related FIRInstanceID - * - * The completion handler invoked when the InstanceID `deleteToken` returns. If - * the call fails we return the appropriate `error code` as described below - * - * @param error The error describing why deleting the token failed. - * See the error codes below for a more detailed description. - */ -typedef void (^FIRInstanceIDDeleteTokenHandler)(NSError *error) - NS_SWIFT_NAME(InstanceIDDeleteTokenHandler); - -/** - * @related FIRInstanceID - * - * The completion handler invoked when the app identity is created. If the - * identity wasn't created for some reason we return the appropriate error code. - * - * @param identity A valid identity for the app instance, nil if there was an error - * while creating an identity. - * @param error The error if fetching the identity fails else nil. - */ -typedef void (^FIRInstanceIDHandler)(NSString *__nullable identity, NSError *__nullable error) - NS_SWIFT_NAME(InstanceIDHandler); - -/** - * @related FIRInstanceID - * - * The completion handler invoked when the app identity and all the tokens associated - * with it are deleted. Returns a valid error object in case of failure else nil. - * - * @param error The error if deleting the identity and all the tokens associated with - * it fails else nil. - */ -typedef void (^FIRInstanceIDDeleteHandler)(NSError *__nullable error) - NS_SWIFT_NAME(InstanceIDDeleteHandler); - -/** - * @related FIRInstanceID - * - * The completion handler invoked when the app identity and token are fetched. If the - * identity wasn't created for some reason we return the appropriate error code. - * - * @param result The result containing an identity for the app instance and a valid token, - * nil if there was an error while creating the result. - * @param error The error if fetching the identity or token fails else nil. - */ -typedef void (^FIRInstanceIDResultHandler)(FIRInstanceIDResult *__nullable result, - NSError *__nullable error) - NS_SWIFT_NAME(InstanceIDResultHandler); - -/** - * Public errors produced by InstanceID. - */ -typedef NS_ENUM(NSUInteger, FIRInstanceIDError) { - // Http related errors. - - /// Unknown error. - FIRInstanceIDErrorUnknown = 0, - - /// Auth Error -- GCM couldn't validate request from this client. - FIRInstanceIDErrorAuthentication = 1, - - /// NoAccess -- InstanceID service cannot be accessed. - FIRInstanceIDErrorNoAccess = 2, - - /// Timeout -- Request to InstanceID backend timed out. - FIRInstanceIDErrorTimeout = 3, - - /// Network -- No network available to reach the servers. - FIRInstanceIDErrorNetwork = 4, - - /// OperationInProgress -- Another similar operation in progress, - /// bailing this one. - FIRInstanceIDErrorOperationInProgress = 5, - - /// InvalidRequest -- Some parameters of the request were invalid. - FIRInstanceIDErrorInvalidRequest = 7, -} NS_SWIFT_NAME(InstanceIDError); - -/** - * A class contains the results of InstanceID and token query. - */ -NS_SWIFT_NAME(InstanceIDResult) -@interface FIRInstanceIDResult : NSObject - -/** - * An instanceID uniquely identifies the app instance. - */ -@property(nonatomic, readonly, copy) NSString *instanceID; - -/* - * Returns a Firebase Messaging scoped token for the firebase app. - */ -@property(nonatomic, readonly, copy) NSString *token; - -@end - -/** - * Instance ID provides a unique identifier for each app instance and a mechanism - * to authenticate and authorize actions (for example, sending an FCM message). - * - * Once an InstanceID is generated, the library periodically sends information about the - * application and the device where it's running to the Firebase backend. To stop this. see - * `[FIRInstanceID deleteIDWithHandler:]`. - * - * Instance ID is long lived but, may be reset if the device is not used for - * a long time or the Instance ID service detects a problem. - * If Instance ID is reset, the app will be notified via - * `kFIRInstanceIDTokenRefreshNotification`. - * - * If the Instance ID has become invalid, the app can request a new one and - * send it to the app server. - * To prove ownership of Instance ID and to allow servers to access data or - * services associated with the app, call - * `[FIRInstanceID tokenWithAuthorizedEntity:scope:options:handler]`. - */ -NS_SWIFT_NAME(InstanceID) -@interface FIRInstanceID : NSObject - -/** - * FIRInstanceID. - * - * @return A shared instance of FIRInstanceID. - */ -+ (instancetype)instanceID NS_SWIFT_NAME(instanceID()); - -/** - * Unavailable. Use +instanceID instead. - */ -- (instancetype)init __attribute__((unavailable("Use +instanceID instead."))); - -#pragma mark - Tokens - -/** - * Returns a result of app instance identifier InstanceID and a Firebase Messaging scoped token. - * param handler The callback handler invoked when an app instanceID and a default token - * are generated and returned. If instanceID and token fetching fail for some - * reason the callback is invoked with nil `result` and the appropriate error. - */ -- (void)instanceIDWithHandler:(FIRInstanceIDResultHandler)handler; - -/** - * Returns a Firebase Messaging scoped token for the firebase app. - * - * @return Returns the stored token if the device has registered with Firebase Messaging, otherwise - * returns nil. - */ -- (nullable NSString *)token __deprecated_msg("Use instanceIDWithHandler: instead."); - -/** - * Returns a token that authorizes an Entity (example: cloud service) to perform - * an action on behalf of the application identified by Instance ID. - * - * This is similar to an OAuth2 token except, it applies to the - * application instance instead of a user. - * - * This is an asynchronous call. If the token fetching fails for some reason - * we invoke the completion callback with nil `token` and the appropriate - * error. - * - * This generates an Instance ID if it does not exist yet, which starts periodically sending - * information to the Firebase backend (see `[FIRInstanceID getIDWithHandler:]`). - * - * Note, you can only have one `token` or `deleteToken` call for a given - * authorizedEntity and scope at any point of time. Making another such call with the - * same authorizedEntity and scope before the last one finishes will result in an - * error with code `OperationInProgress`. - * - * @see FIRInstanceID deleteTokenWithAuthorizedEntity:scope:handler: - * - * @param authorizedEntity Entity authorized by the token. - * @param scope Action authorized for authorizedEntity. - * @param options The extra options to be sent with your token request. The - * value for the `apns_token` should be the NSData object - * passed to the UIApplicationDelegate's - * `didRegisterForRemoteNotificationsWithDeviceToken` method. - * The value for `apns_sandbox` should be a boolean (or an - * NSNumber representing a BOOL in Objective C) set to true if - * your app is a debug build, which means that the APNs - * device token is for the sandbox environment. It should be - * set to false otherwise. If the `apns_sandbox` key is not - * provided, an automatically-detected value shall be used. - * @param handler The callback handler which is invoked when the token is - * successfully fetched. In case of success a valid `token` and - * `nil` error are returned. In case of any error the `token` - * is nil and a valid `error` is returned. The valid error - * codes have been documented above. - */ -- (void)tokenWithAuthorizedEntity:(NSString *)authorizedEntity - scope:(NSString *)scope - options:(nullable NSDictionary *)options - handler:(FIRInstanceIDTokenHandler)handler; - -/** - * Revokes access to a scope (action) for an entity previously - * authorized by `[FIRInstanceID tokenWithAuthorizedEntity:scope:options:handler]`. - * - * This is an asynchronous call. Call this on the main thread since InstanceID lib - * is not thread safe. In case token deletion fails for some reason we invoke the - * `handler` callback passed in with the appropriate error code. - * - * Note, you can only have one `token` or `deleteToken` call for a given - * authorizedEntity and scope at a point of time. Making another such call with the - * same authorizedEntity and scope before the last one finishes will result in an error - * with code `OperationInProgress`. - * - * @param authorizedEntity Entity that must no longer have access. - * @param scope Action that entity is no longer authorized to perform. - * @param handler The handler that is invoked once the unsubscribe call ends. - * In case of error an appropriate error object is returned - * else error is nil. - */ -- (void)deleteTokenWithAuthorizedEntity:(NSString *)authorizedEntity - scope:(NSString *)scope - handler:(FIRInstanceIDDeleteTokenHandler)handler; - -#pragma mark - Identity - -/** - * Asynchronously fetch a stable identifier that uniquely identifies the app - * instance. If the identifier has been revoked or has expired, this method will - * return a new identifier. - * - * Once an InstanceID is generated, the library periodically sends information about the - * application and the device where it's running to the Firebase backend. To stop this. see - * `[FIRInstanceID deleteIDWithHandler:]`. - * - * @param handler The handler to invoke once the identifier has been fetched. - * In case of error an appropriate error object is returned else - * a valid identifier is returned and a valid identifier for the - * application instance. - */ -- (void)getIDWithHandler:(FIRInstanceIDHandler)handler NS_SWIFT_NAME(getID(handler:)); - -/** - * Resets Instance ID and revokes all tokens. - * - * This method also triggers a request to fetch a new Instance ID and Firebase Messaging scope - * token. Please listen to kFIRInstanceIDTokenRefreshNotification when the new ID and token are - * ready. - * - * This stops the periodic sending of data to the Firebase backend that began when the Instance ID - * was generated. No more data is sent until another library calls Instance ID internally again - * (like FCM, RemoteConfig or Analytics) or user explicitly calls Instance ID APIs to get an - * Instance ID and token again. - */ -- (void)deleteIDWithHandler:(FIRInstanceIDDeleteHandler)handler NS_SWIFT_NAME(deleteID(handler:)); - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/FirebaseInstanceID/Frameworks/FirebaseInstanceID.framework/Headers/FirebaseInstanceID.h b/Pods/FirebaseInstanceID/Frameworks/FirebaseInstanceID.framework/Headers/FirebaseInstanceID.h deleted file mode 100755 index 053ec2b1cf..0000000000 --- a/Pods/FirebaseInstanceID/Frameworks/FirebaseInstanceID.framework/Headers/FirebaseInstanceID.h +++ /dev/null @@ -1 +0,0 @@ -#import "FIRInstanceID.h" diff --git a/Pods/FirebaseInstanceID/Frameworks/FirebaseInstanceID.framework/Modules/module.modulemap b/Pods/FirebaseInstanceID/Frameworks/FirebaseInstanceID.framework/Modules/module.modulemap deleted file mode 100755 index 2058956c1f..0000000000 --- a/Pods/FirebaseInstanceID/Frameworks/FirebaseInstanceID.framework/Modules/module.modulemap +++ /dev/null @@ -1,6 +0,0 @@ -framework module FirebaseInstanceID { - umbrella header "FirebaseInstanceID.h" - export * - module * { export *} - link framework "Security" - link framework "SystemConfiguration"} diff --git a/Pods/FirebaseInstanceID/README.md b/Pods/FirebaseInstanceID/README.md deleted file mode 100755 index 25fe2196fb..0000000000 --- a/Pods/FirebaseInstanceID/README.md +++ /dev/null @@ -1,10 +0,0 @@ -# InstanceID SDK for iOS - -Instance ID provides a unique ID per instance of your apps and also provides a -mechanism to authenticate and authorize actions, like sending messages via -Firebase Cloud Messaging (FCM). - - -Please visit [our developer -site](https://developers.google.com/instance-id/) for integration instructions, -documentation, support information, and terms of service. diff --git a/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.framework/GoogleAppMeasurement b/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.framework/GoogleAppMeasurement index fddcac6685..473d308c76 100755 Binary files a/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.framework/GoogleAppMeasurement and b/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.framework/GoogleAppMeasurement differ diff --git a/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.framework/Modules/module.modulemap b/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.framework/Modules/module.modulemap index ea1e687ddc..de80e9eaeb 100755 --- a/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.framework/Modules/module.modulemap +++ b/Pods/GoogleAppMeasurement/Frameworks/GoogleAppMeasurement.framework/Modules/module.modulemap @@ -1,9 +1,11 @@ framework module GoogleAppMeasurement { export * - module * { export *} + module * { export * } link "sqlite3" link "z" + link framework "CoreData" link framework "Security" link framework "StoreKit" link framework "SystemConfiguration" - link framework "UIKit"} + link framework "UIKit" +} diff --git a/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORAssert.m b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORAssert.m new file mode 100644 index 0000000000..3e5f57b578 --- /dev/null +++ b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORAssert.m @@ -0,0 +1,36 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "GDTCORLibrary/Public/GDTCORAssert.h" + +GDTCORAssertionBlock GDTCORAssertionBlockToRunInstead(void) { + // This class is only compiled in by unit tests, and this should fail quickly in optimized builds. + Class GDTCORAssertClass = NSClassFromString(@"GDTCORAssertHelper"); + if (__builtin_expect(!!GDTCORAssertClass, 0)) { + SEL assertionBlockSEL = NSSelectorFromString(@"assertionBlock"); + if (assertionBlockSEL) { + IMP assertionBlockIMP = [GDTCORAssertClass methodForSelector:assertionBlockSEL]; + if (assertionBlockIMP) { + GDTCORAssertionBlock assertionBlock = ((GDTCORAssertionBlock(*)(id, SEL))assertionBlockIMP)( + GDTCORAssertClass, assertionBlockSEL); + if (assertionBlock) { + return assertionBlock; + } + } + } + } + return NULL; +} diff --git a/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORClock.m b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORClock.m new file mode 100644 index 0000000000..f0ea8ab606 --- /dev/null +++ b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORClock.m @@ -0,0 +1,164 @@ +/* + * Copyright 2018 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "GDTCORLibrary/Public/GDTCORClock.h" + +#import + +// Using a monotonic clock is necessary because CFAbsoluteTimeGetCurrent(), NSDate, and related all +// are subject to drift. That it to say, multiple consecutive calls do not always result in a +// time that is in the future. Clocks may be adjusted by the user, NTP, or any number of external +// factors. This class attempts to determine the wall-clock time at the time of the event by +// capturing the kernel start and time since boot to determine a wallclock time in UTC. +// +// Timezone offsets at the time of a snapshot are also captured in order to provide local-time +// details. Other classes in this library depend on comparing times at some time in the future to +// a time captured in the past, and this class needs to provide a mechanism to do that. +// +// TL;DR: This class attempts to accomplish two things: 1. Provide accurate event times. 2. Provide +// a monotonic clock mechanism to accurately check if some clock snapshot was before or after +// by using a shared reference point (kernel boot time). +// +// Note: Much of the mach time stuff doesn't work properly in the simulator. So this class can be +// difficult to unit test. + +/** Returns the kernel boottime property from sysctl. + * + * Inspired by https://stackoverflow.com/a/40497811 + * + * @return The KERN_BOOTTIME property from sysctl, in nanoseconds. + */ +static int64_t KernelBootTimeInNanoseconds() { + // Caching the result is not possible because clock drift would not be accounted for. + struct timeval boottime; + int mib[2] = {CTL_KERN, KERN_BOOTTIME}; + size_t size = sizeof(boottime); + int rc = sysctl(mib, 2, &boottime, &size, NULL, 0); + if (rc != 0) { + return 0; + } + return (int64_t)boottime.tv_sec * NSEC_PER_MSEC + (int64_t)boottime.tv_usec; +} + +/** Returns value of gettimeofday, in nanoseconds. + * + * Inspired by https://stackoverflow.com/a/40497811 + * + * @return The value of gettimeofday, in nanoseconds. + */ +static int64_t UptimeInNanoseconds() { + int64_t before_now; + int64_t after_now; + struct timeval now; + + before_now = KernelBootTimeInNanoseconds(); + // Addresses a race condition in which the system time has updated, but the boottime has not. + do { + gettimeofday(&now, NULL); + after_now = KernelBootTimeInNanoseconds(); + } while (after_now != before_now); + return (int64_t)now.tv_sec * NSEC_PER_MSEC + (int64_t)now.tv_usec - before_now; +} + +// TODO: Consider adding a 'trustedTime' property that can be populated by the response from a BE. +@implementation GDTCORClock + +- (instancetype)init { + self = [super init]; + if (self) { + _kernelBootTime = KernelBootTimeInNanoseconds(); + _uptime = UptimeInNanoseconds(); + _timeMillis = + (int64_t)((CFAbsoluteTimeGetCurrent() + kCFAbsoluteTimeIntervalSince1970) * NSEC_PER_USEC); + CFTimeZoneRef timeZoneRef = CFTimeZoneCopySystem(); + _timezoneOffsetSeconds = CFTimeZoneGetSecondsFromGMT(timeZoneRef, 0); + CFRelease(timeZoneRef); + } + return self; +} + ++ (GDTCORClock *)snapshot { + return [[GDTCORClock alloc] init]; +} + ++ (instancetype)clockSnapshotInTheFuture:(uint64_t)millisInTheFuture { + GDTCORClock *snapshot = [self snapshot]; + snapshot->_timeMillis += millisInTheFuture; + return snapshot; +} + +- (BOOL)isAfter:(GDTCORClock *)otherClock { + // These clocks are trivially comparable when they share a kernel boot time. + if (_kernelBootTime == otherClock->_kernelBootTime) { + int64_t timeDiff = (_timeMillis + _timezoneOffsetSeconds) - + (otherClock->_timeMillis + otherClock->_timezoneOffsetSeconds); + return timeDiff > 0; + } else { + int64_t kernelBootTimeDiff = otherClock->_kernelBootTime - _kernelBootTime; + // This isn't a great solution, but essentially, if the other clock's boot time is 'later', NO + // is returned. This can be altered by changing the system time and rebooting. + return kernelBootTimeDiff < 0 ? YES : NO; + } +} + +- (NSUInteger)hash { + return [@(_kernelBootTime) hash] ^ [@(_uptime) hash] ^ [@(_timeMillis) hash] ^ + [@(_timezoneOffsetSeconds) hash]; +} + +- (BOOL)isEqual:(id)object { + return [self hash] == [object hash]; +} + +#pragma mark - NSSecureCoding + +/** NSKeyedCoder key for timeMillis property. */ +static NSString *const kGDTCORClockTimeMillisKey = @"GDTCORClockTimeMillis"; + +/** NSKeyedCoder key for timezoneOffsetMillis property. */ +static NSString *const kGDTCORClockTimezoneOffsetSeconds = @"GDTCORClockTimezoneOffsetSeconds"; + +/** NSKeyedCoder key for _kernelBootTime ivar. */ +static NSString *const kGDTCORClockKernelBootTime = @"GDTCORClockKernelBootTime"; + +/** NSKeyedCoder key for _uptime ivar. */ +static NSString *const kGDTCORClockUptime = @"GDTCORClockUptime"; + ++ (BOOL)supportsSecureCoding { + return YES; +} + +- (instancetype)initWithCoder:(NSCoder *)aDecoder { + self = [super init]; + if (self) { + // TODO: If the kernelBootTime is more recent, we need to change the kernel boot time and + // uptimeMillis ivars + _timeMillis = [aDecoder decodeInt64ForKey:kGDTCORClockTimeMillisKey]; + _timezoneOffsetSeconds = [aDecoder decodeInt64ForKey:kGDTCORClockTimezoneOffsetSeconds]; + _kernelBootTime = [aDecoder decodeInt64ForKey:kGDTCORClockKernelBootTime]; + _uptime = [aDecoder decodeInt64ForKey:kGDTCORClockUptime]; + } + return self; +} + +- (void)encodeWithCoder:(NSCoder *)aCoder { + [aCoder encodeInt64:_timeMillis forKey:kGDTCORClockTimeMillisKey]; + [aCoder encodeInt64:_timezoneOffsetSeconds forKey:kGDTCORClockTimezoneOffsetSeconds]; + [aCoder encodeInt64:_kernelBootTime forKey:kGDTCORClockKernelBootTime]; + [aCoder encodeInt64:_uptime forKey:kGDTCORClockUptime]; +} + +@end diff --git a/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORConsoleLogger.m b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORConsoleLogger.m new file mode 100644 index 0000000000..55b83790fd --- /dev/null +++ b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORConsoleLogger.m @@ -0,0 +1,51 @@ +/* + * Copyright 2018 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "GDTCORLibrary/Public/GDTCORConsoleLogger.h" + +/** The console logger prefix. */ +static NSString *kGDTCORConsoleLogger = @"[GoogleDataTransport]"; + +NSString *GDTCORMessageCodeEnumToString(GDTCORMessageCode code) { + return [[NSString alloc] initWithFormat:@"I-GDTCOR%06ld", (long)code]; +} + +void GDTCORLog(GDTCORMessageCode code, NSString *format, ...) { +// Don't log anything in not debug builds. +#if !NDEBUG + NSString *logFormat = [NSString stringWithFormat:@"%@[%@] %@", kGDTCORConsoleLogger, + GDTCORMessageCodeEnumToString(code), format]; + va_list args; + va_start(args, format); + NSLogv(logFormat, args); + va_end(args); +#endif // !NDEBUG +} + +void GDTCORLogAssert( + BOOL wasFatal, NSString *_Nonnull file, NSInteger line, NSString *_Nullable format, ...) { + GDTCORMessageCode code = wasFatal ? GDTCORMCEFatalAssertion : GDTCORMCEGeneralError; +// Don't log anything in not debug builds. +#if !NDEBUG + NSString *logFormat = + [NSString stringWithFormat:@"%@[%@] (%@:%ld) : %@", kGDTCORConsoleLogger, + GDTCORMessageCodeEnumToString(code), file, (long)line, format]; + va_list args; + va_start(args, format); + NSLogv(logFormat, args); + va_end(args); +#endif // !NDEBUG +} diff --git a/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORDataFuture.m b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORDataFuture.m new file mode 100644 index 0000000000..04903d4722 --- /dev/null +++ b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORDataFuture.m @@ -0,0 +1,59 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "GDTCORLibrary/Private/GDTCORDataFuture.h" + +@implementation GDTCORDataFuture + +- (instancetype)initWithFileURL:(NSURL *)fileURL { + self = [super init]; + if (self) { + _fileURL = fileURL; + } + return self; +} + +- (BOOL)isEqual:(id)object { + return [self hash] == [object hash]; +} + +- (NSUInteger)hash { + // In reality, only one of these should be populated. + return [_fileURL hash]; +} + +#pragma mark - NSSecureCoding + +/** Coding key for _fileURL ivar. */ +static NSString *kGDTCORDataFutureFileURLKey = @"GDTCORDataFutureFileURLKey"; + ++ (BOOL)supportsSecureCoding { + return YES; +} + +- (void)encodeWithCoder:(nonnull NSCoder *)aCoder { + [aCoder encodeObject:_fileURL forKey:kGDTCORDataFutureFileURLKey]; +} + +- (nullable instancetype)initWithCoder:(nonnull NSCoder *)aDecoder { + self = [self init]; + if (self) { + _fileURL = [aDecoder decodeObjectOfClass:[NSURL class] forKey:kGDTCORDataFutureFileURLKey]; + } + return self; +} + +@end diff --git a/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCOREvent.m b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCOREvent.m new file mode 100644 index 0000000000..324a5f26e5 --- /dev/null +++ b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCOREvent.m @@ -0,0 +1,215 @@ +/* + * Copyright 2018 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "GDTCORLibrary/Public/GDTCOREvent.h" + +#import +#import +#import +#import + +#import "GDTCORLibrary/Private/GDTCORDataFuture.h" +#import "GDTCORLibrary/Private/GDTCOREvent_Private.h" + +@implementation GDTCOREvent + +- (nullable instancetype)initWithMappingID:(NSString *)mappingID target:(NSInteger)target { + GDTCORAssert(mappingID.length > 0, @"Please give a valid mapping ID"); + GDTCORAssert(target > 0, @"A target cannot be negative or 0"); + if (mappingID == nil || mappingID.length == 0 || target <= 0) { + return nil; + } + self = [super init]; + if (self) { + _mappingID = mappingID; + _target = target; + _qosTier = GDTCOREventQosDefault; + } + GDTCORLogDebug("Event %@ created. mappingID: %@ target:%ld", self, mappingID, (long)target); + return self; +} + +- (instancetype)copy { + GDTCOREvent *copy = [[GDTCOREvent alloc] initWithMappingID:_mappingID target:_target]; + copy.dataObject = _dataObject; + copy.qosTier = _qosTier; + copy.clockSnapshot = _clockSnapshot; + copy.customPrioritizationParams = _customPrioritizationParams; + copy->_GDTFilePath = _GDTFilePath; + GDTCORLogDebug("Copying event %@ to event %@", self, copy); + return copy; +} + +- (NSUInteger)hash { + // This loses some precision, but it's probably fine. + NSUInteger mappingIDHash = [_mappingID hash]; + NSUInteger timeHash = [_clockSnapshot hash]; + NSInteger dataObjectHash = [_dataObject hash]; + NSUInteger fileURL = [_GDTFilePath hash]; + + return mappingIDHash ^ _target ^ _qosTier ^ timeHash ^ dataObjectHash ^ fileURL; +} + +- (BOOL)isEqual:(id)object { + return [self hash] == [object hash]; +} + +#pragma mark - Property overrides + +- (void)setDataObject:(id)dataObject { + // If you're looking here because of a performance issue in -transportBytes slowing the assignment + // of -dataObject, one way to address this is to add a queue to this class, + // dispatch_(barrier_ if concurrent)async here, and implement the getter with a dispatch_sync. + if (dataObject != _dataObject) { + _dataObject = dataObject; + } +} + +- (NSURL *)fileURL { + if (!_GDTFilePath) { + _GDTFilePath = [NSString stringWithFormat:@"event-%lu", (unsigned long)self.hash]; + } + return [GDTCORRootDirectory() URLByAppendingPathComponent:_GDTFilePath]; +} + +#pragma mark - Private methods + +- (BOOL)writeToGDTPath:(NSString *)filePath error:(NSError **)error { + NSData *dataTransportBytes = [_dataObject transportBytes]; + if (dataTransportBytes == nil) { + _GDTFilePath = nil; + _dataObject = nil; + return NO; + } + NSURL *fileURL = [GDTCORRootDirectory() URLByAppendingPathComponent:filePath]; + BOOL writingSuccess = [dataTransportBytes writeToURL:fileURL + options:NSDataWritingAtomic + error:error]; + if (!writingSuccess) { + GDTCORLogError(GDTCORMCEFileWriteError, @"An event file could not be written: %@", fileURL); + return NO; + } + _GDTFilePath = filePath; + _dataObject = nil; + return YES; +} + +#pragma mark - NSSecureCoding and NSCoding Protocols + +/** NSCoding key for mappingID property. */ +static NSString *mappingIDKey = @"_mappingID"; + +/** NSCoding key for target property. */ +static NSString *targetKey = @"_target"; + +/** NSCoding key for qosTier property. */ +static NSString *qosTierKey = @"_qosTier"; + +/** NSCoding key for clockSnapshot property. */ +static NSString *clockSnapshotKey = @"_clockSnapshot"; + +/** NSCoding key for fileURL property. */ +static NSString *fileURLKey = @"_fileURL"; + +/** NSCoding key for GDTFilePath property. */ +static NSString *kGDTFilePathKey = @"_GDTFilePath"; + +/** NSCoding key for customPrioritizationParams property. */ +static NSString *customPrioritizationParams = @"_customPrioritizationParams"; + +/** NSCoding key for backwards compatibility of GDTCORStoredEvent mappingID property.*/ +static NSString *kStoredEventMappingIDKey = @"GDTCORStoredEventMappingIDKey"; + +/** NSCoding key for backwards compatibility of GDTCORStoredEvent target property.*/ +static NSString *kStoredEventTargetKey = @"GDTCORStoredEventTargetKey"; + +/** NSCoding key for backwards compatibility of GDTCORStoredEvent qosTier property.*/ +static NSString *kStoredEventQosTierKey = @"GDTCORStoredEventQosTierKey"; + +/** NSCoding key for backwards compatibility of GDTCORStoredEvent clockSnapshot property.*/ +static NSString *kStoredEventClockSnapshotKey = @"GDTCORStoredEventClockSnapshotKey"; + +/** NSCoding key for backwards compatibility of GDTCORStoredEvent dataFuture property.*/ +static NSString *kStoredEventDataFutureKey = @"GDTCORStoredEventDataFutureKey"; + +/** NSCoding key for backwards compatibility of GDTCORStoredEvent customPrioritizationParams + * property.*/ +static NSString *kStoredEventCustomPrioritizationParamsKey = + @"GDTCORStoredEventcustomPrioritizationParamsKey"; + ++ (BOOL)supportsSecureCoding { + return YES; +} + +- (id)initWithCoder:(NSCoder *)aDecoder { + GDTCORDataFuture *dataFuture = [aDecoder decodeObjectOfClass:[GDTCORDataFuture class] + forKey:kStoredEventDataFutureKey]; + if (dataFuture) { + return [self initWithCoderForStoredEventBackwardCompatibility:aDecoder + fileURL:dataFuture.fileURL]; + } + NSString *mappingID = [aDecoder decodeObjectOfClass:[NSString class] forKey:mappingIDKey]; + NSInteger target = [aDecoder decodeIntegerForKey:targetKey]; + self = [self initWithMappingID:mappingID target:target]; + if (self) { + _qosTier = [aDecoder decodeIntegerForKey:qosTierKey]; + _clockSnapshot = [aDecoder decodeObjectOfClass:[GDTCORClock class] forKey:clockSnapshotKey]; + NSURL *fileURL = [aDecoder decodeObjectOfClass:[NSURL class] forKey:fileURLKey]; + if (fileURL) { + _GDTFilePath = [fileURL lastPathComponent]; + } else { + _GDTFilePath = [aDecoder decodeObjectOfClass:[NSString class] forKey:kGDTFilePathKey]; + } + _customPrioritizationParams = [aDecoder decodeObjectOfClass:[NSDictionary class] + forKey:customPrioritizationParams]; + } + return self; +} + +- (id)initWithCoderForStoredEventBackwardCompatibility:(NSCoder *)aDecoder + fileURL:(NSURL *)fileURL { + NSString *mappingID = [aDecoder decodeObjectOfClass:[NSString class] + forKey:kStoredEventMappingIDKey]; + NSInteger target = [[aDecoder decodeObjectOfClass:[NSNumber class] + forKey:kStoredEventTargetKey] integerValue]; + self = [self initWithMappingID:mappingID target:target]; + if (self) { + _qosTier = [[aDecoder decodeObjectOfClass:[NSNumber class] + forKey:kStoredEventQosTierKey] integerValue]; + _clockSnapshot = [aDecoder decodeObjectOfClass:[GDTCORClock class] + forKey:kStoredEventClockSnapshotKey]; + if (fileURL) { + _GDTFilePath = [fileURL lastPathComponent]; + } else { + _GDTFilePath = [aDecoder decodeObjectOfClass:[NSString class] forKey:kGDTFilePathKey]; + } + _customPrioritizationParams = + [aDecoder decodeObjectOfClass:[NSDictionary class] + forKey:kStoredEventCustomPrioritizationParamsKey]; + } + return self; +} + +- (void)encodeWithCoder:(NSCoder *)aCoder { + [aCoder encodeObject:_mappingID forKey:mappingIDKey]; + [aCoder encodeInteger:_target forKey:targetKey]; + [aCoder encodeInteger:_qosTier forKey:qosTierKey]; + [aCoder encodeObject:_clockSnapshot forKey:clockSnapshotKey]; + [aCoder encodeObject:_GDTFilePath forKey:kGDTFilePathKey]; + [aCoder encodeObject:_customPrioritizationParams forKey:customPrioritizationParams]; +} + +@end diff --git a/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORLifecycle.m b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORLifecycle.m new file mode 100644 index 0000000000..cd554ad6cc --- /dev/null +++ b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORLifecycle.m @@ -0,0 +1,132 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "GDTCORLibrary/Public/GDTCORLifecycle.h" + +#import +#import + +#import "GDTCORLibrary/Private/GDTCORRegistrar_Private.h" +#import "GDTCORLibrary/Private/GDTCORStorage_Private.h" +#import "GDTCORLibrary/Private/GDTCORTransformer_Private.h" +#import "GDTCORLibrary/Private/GDTCORUploadCoordinator.h" + +@implementation GDTCORLifecycle + ++ (void)load { + [self sharedInstance]; +} + +/** Creates/returns the singleton instance of this class. + * + * @return The singleton instance of this class. + */ ++ (instancetype)sharedInstance { + static GDTCORLifecycle *sharedInstance; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + sharedInstance = [[GDTCORLifecycle alloc] init]; + }); + return sharedInstance; +} + +- (instancetype)init { + self = [super init]; + if (self) { + NSNotificationCenter *notificationCenter = [NSNotificationCenter defaultCenter]; + [notificationCenter addObserver:self + selector:@selector(applicationDidEnterBackground:) + name:kGDTCORApplicationDidEnterBackgroundNotification + object:nil]; + [notificationCenter addObserver:self + selector:@selector(applicationWillEnterForeground:) + name:kGDTCORApplicationWillEnterForegroundNotification + object:nil]; + + NSString *name = kGDTCORApplicationWillTerminateNotification; + [notificationCenter addObserver:self + selector:@selector(applicationWillTerminate:) + name:name + object:nil]; + } + return self; +} + +- (void)dealloc { + [[NSNotificationCenter defaultCenter] removeObserver:self]; +} + +- (void)applicationDidEnterBackground:(NSNotification *)notification { + GDTCORApplication *application = [GDTCORApplication sharedApplication]; + if ([[GDTCORTransformer sharedInstance] respondsToSelector:@selector(appWillBackground:)]) { + GDTCORLogDebug("%@", @"Signaling GDTCORTransformer that the app is backgrounding."); + [[GDTCORTransformer sharedInstance] appWillBackground:application]; + } + if ([[GDTCORStorage sharedInstance] respondsToSelector:@selector(appWillBackground:)]) { + GDTCORLogDebug("%@", @"Signaling GDTCORStorage that the app is backgrounding."); + [[GDTCORStorage sharedInstance] appWillBackground:application]; + } + if ([[GDTCORUploadCoordinator sharedInstance] respondsToSelector:@selector(appWillBackground:)]) { + GDTCORLogDebug("%@", @"Signaling GDTCORUploadCoordinator that the app is backgrounding."); + [[GDTCORUploadCoordinator sharedInstance] appWillBackground:application]; + } + if ([[GDTCORRegistrar sharedInstance] respondsToSelector:@selector(appWillBackground:)]) { + GDTCORLogDebug("%@", @"Signaling GDTCORRegistrar that the app is backgrounding."); + [[GDTCORRegistrar sharedInstance] appWillBackground:application]; + } +} + +- (void)applicationWillEnterForeground:(NSNotification *)notification { + GDTCORApplication *application = [GDTCORApplication sharedApplication]; + if ([[GDTCORTransformer sharedInstance] respondsToSelector:@selector(appWillForeground:)]) { + GDTCORLogDebug("%@", @"Signaling GDTCORTransformer that the app is foregrounding."); + [[GDTCORTransformer sharedInstance] appWillForeground:application]; + } + if ([[GDTCORStorage sharedInstance] respondsToSelector:@selector(appWillForeground:)]) { + GDTCORLogDebug("%@", @"Signaling GDTCORStorage that the app is foregrounding."); + [[GDTCORStorage sharedInstance] appWillForeground:application]; + } + if ([[GDTCORUploadCoordinator sharedInstance] respondsToSelector:@selector(appWillForeground:)]) { + GDTCORLogDebug("%@", @"Signaling GDTCORUploadCoordinator that the app is foregrounding."); + [[GDTCORUploadCoordinator sharedInstance] appWillForeground:application]; + } + if ([[GDTCORRegistrar sharedInstance] respondsToSelector:@selector(appWillForeground:)]) { + GDTCORLogDebug("%@", @"Signaling GDTCORRegistrar that the app is foregrounding."); + [[GDTCORRegistrar sharedInstance] appWillForeground:application]; + } +} + +- (void)applicationWillTerminate:(NSNotification *)notification { + GDTCORApplication *application = [GDTCORApplication sharedApplication]; + if ([[GDTCORTransformer sharedInstance] respondsToSelector:@selector(appWillTerminate:)]) { + GDTCORLogDebug("%@", @"Signaling GDTCORTransformer that the app is terminating."); + [[GDTCORTransformer sharedInstance] appWillTerminate:application]; + } + if ([[GDTCORStorage sharedInstance] respondsToSelector:@selector(appWillTerminate:)]) { + GDTCORLogDebug("%@", @"Signaling GDTCORStorage that the app is terminating."); + [[GDTCORStorage sharedInstance] appWillTerminate:application]; + } + if ([[GDTCORUploadCoordinator sharedInstance] respondsToSelector:@selector(appWillTerminate:)]) { + GDTCORLogDebug("%@", @"Signaling GDTCORUploadCoordinator that the app is terminating."); + [[GDTCORUploadCoordinator sharedInstance] appWillTerminate:application]; + } + if ([[GDTCORRegistrar sharedInstance] respondsToSelector:@selector(appWillTerminate:)]) { + GDTCORLogDebug("%@", @"Signaling GDTCORRegistrar that the app is terminating."); + [[GDTCORRegistrar sharedInstance] appWillTerminate:application]; + } +} + +@end diff --git a/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORPlatform.m b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORPlatform.m new file mode 100644 index 0000000000..de0f88c7c1 --- /dev/null +++ b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORPlatform.m @@ -0,0 +1,407 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +#import +#import +#import + +#import "GDTCORLibrary/Private/GDTCORRegistrar_Private.h" + +#ifdef GDTCOR_VERSION +#define STR(x) STR_EXPAND(x) +#define STR_EXPAND(x) #x +NSString *const kGDTCORVersion = @STR(GDTCOR_VERSION); +#else +NSString *const kGDTCORVersion = @"Unknown"; +#endif // GDTCOR_VERSION + +const GDTCORBackgroundIdentifier GDTCORBackgroundIdentifierInvalid = 0; + +NSString *const kGDTCORApplicationDidEnterBackgroundNotification = + @"GDTCORApplicationDidEnterBackgroundNotification"; + +NSString *const kGDTCORApplicationWillEnterForegroundNotification = + @"GDTCORApplicationWillEnterForegroundNotification"; + +NSString *const kGDTCORApplicationWillTerminateNotification = + @"GDTCORApplicationWillTerminateNotification"; + +NSURL *GDTCORRootDirectory(void) { + static NSURL *GDTPath; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + NSString *cachePath = + NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)[0]; + GDTPath = + [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/google-sdks-events", cachePath]]; + GDTCORLogDebug("GDT's state will be saved to: %@", GDTPath); + if (![[NSFileManager defaultManager] fileExistsAtPath:GDTPath.path]) { + NSError *error; + [[NSFileManager defaultManager] createDirectoryAtPath:GDTPath.path + withIntermediateDirectories:YES + attributes:nil + error:&error]; + GDTCORAssert(error == nil, @"There was an error creating GDT's path"); + } + }); + return GDTPath; +} + +#if !TARGET_OS_WATCH +BOOL GDTCORReachabilityFlagsContainWWAN(SCNetworkReachabilityFlags flags) { +#if TARGET_OS_IOS + return (flags & kSCNetworkReachabilityFlagsIsWWAN) == kSCNetworkReachabilityFlagsIsWWAN; +#else + return NO; +#endif // TARGET_OS_IOS +} +#endif // !TARGET_OS_WATCH + +GDTCORNetworkType GDTCORNetworkTypeMessage() { +#if !TARGET_OS_WATCH + SCNetworkReachabilityFlags reachabilityFlags = [GDTCORReachability currentFlags]; + if ((reachabilityFlags & kSCNetworkReachabilityFlagsReachable) == + kSCNetworkReachabilityFlagsReachable) { + if (GDTCORReachabilityFlagsContainWWAN(reachabilityFlags)) { + return GDTCORNetworkTypeMobile; + } else { + return GDTCORNetworkTypeWIFI; + } + } +#endif + return GDTCORNetworkTypeUNKNOWN; +} + +GDTCORNetworkMobileSubtype GDTCORNetworkMobileSubTypeMessage() { +#if TARGET_OS_IOS + static NSDictionary *CTRadioAccessTechnologyToNetworkSubTypeMessage; + static CTTelephonyNetworkInfo *networkInfo; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + CTRadioAccessTechnologyToNetworkSubTypeMessage = @{ + CTRadioAccessTechnologyGPRS : @(GDTCORNetworkMobileSubtypeGPRS), + CTRadioAccessTechnologyEdge : @(GDTCORNetworkMobileSubtypeEdge), + CTRadioAccessTechnologyWCDMA : @(GDTCORNetworkMobileSubtypeWCDMA), + CTRadioAccessTechnologyHSDPA : @(GDTCORNetworkMobileSubtypeHSDPA), + CTRadioAccessTechnologyHSUPA : @(GDTCORNetworkMobileSubtypeHSUPA), + CTRadioAccessTechnologyCDMA1x : @(GDTCORNetworkMobileSubtypeCDMA1x), + CTRadioAccessTechnologyCDMAEVDORev0 : @(GDTCORNetworkMobileSubtypeCDMAEVDORev0), + CTRadioAccessTechnologyCDMAEVDORevA : @(GDTCORNetworkMobileSubtypeCDMAEVDORevA), + CTRadioAccessTechnologyCDMAEVDORevB : @(GDTCORNetworkMobileSubtypeCDMAEVDORevB), + CTRadioAccessTechnologyeHRPD : @(GDTCORNetworkMobileSubtypeHRPD), + CTRadioAccessTechnologyLTE : @(GDTCORNetworkMobileSubtypeLTE), + }; + networkInfo = [[CTTelephonyNetworkInfo alloc] init]; + }); + NSString *networkCurrentRadioAccessTechnology; +#if TARGET_OS_MACCATALYST + NSDictionary *networkCurrentRadioAccessTechnologyDict = + networkInfo.serviceCurrentRadioAccessTechnology; + if (networkCurrentRadioAccessTechnologyDict.count) { + networkCurrentRadioAccessTechnology = networkCurrentRadioAccessTechnologyDict.allValues[0]; + } +#else // TARGET_OS_MACCATALYST +#if defined(__IPHONE_12_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= 120000 + if (@available(iOS 12.0, *)) { + NSDictionary *networkCurrentRadioAccessTechnologyDict = + networkInfo.serviceCurrentRadioAccessTechnology; + if (networkCurrentRadioAccessTechnologyDict.count) { + // In iOS 12, multiple radio technologies can be captured. We prefer not particular radio + // tech to another, so we'll just return the first value in the dictionary. + networkCurrentRadioAccessTechnology = networkCurrentRadioAccessTechnologyDict.allValues[0]; + } + } else { +#else // defined(__IPHONE_12_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= 120000 + networkCurrentRadioAccessTechnology = networkInfo.currentRadioAccessTechnology; +#endif // // defined(__IPHONE_12_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= 120000 + } +#endif // TARGET_OS_MACCATALYST + if (networkCurrentRadioAccessTechnology) { + NSNumber *networkMobileSubtype = + CTRadioAccessTechnologyToNetworkSubTypeMessage[networkCurrentRadioAccessTechnology]; + return networkMobileSubtype.intValue; + } else { + return GDTCORNetworkMobileSubtypeUNKNOWN; + } +#else + return GDTCORNetworkMobileSubtypeUNKNOWN; +#endif +} + +NSData *_Nullable GDTCOREncodeArchive(id obj, + NSString *archivePath, + NSError *_Nullable *error) { + NSData *resultData; +#if (defined(__IPHONE_11_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= 110000) || \ + (defined(__MAC_10_13) && MAC_OS_X_VERSION_MAX_ALLOWED >= 101300) || \ + (defined(__TVOS_11_0) && __TV_OS_VERSION_MAX_ALLOWED >= 110000) || \ + (defined(__WATCHOS_4_0) && __WATCH_OS_VERSION_MAX_ALLOWED >= 040000) || \ + (defined(TARGET_OS_MACCATALYST) && TARGET_OS_MACCATALYST) + if (@available(macOS 10.13, iOS 11.0, tvOS 11.0, watchOS 4, *)) { + resultData = [NSKeyedArchiver archivedDataWithRootObject:obj + requiringSecureCoding:YES + error:error]; + if (*error) { + GDTCORLogDebug(@"Encoding an object failed: %@", *error); + return nil; + } + if (archivePath) { + BOOL result = [resultData writeToFile:archivePath options:NSDataWritingAtomic error:error]; + if (result == NO || *error) { + GDTCORLogDebug(@"Attempt to write archive failed: URL:%@ error:%@", archivePath, *error); + } else { + GDTCORLogDebug(@"Writing archive succeeded: %@", archivePath); + } + } + } else { +#endif + BOOL result = NO; + @try { +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + resultData = [NSKeyedArchiver archivedDataWithRootObject:obj]; +#pragma clang diagnostic pop + if (archivePath) { + result = [resultData writeToFile:archivePath options:NSDataWritingAtomic error:error]; + if (result == NO || *error) { + GDTCORLogDebug(@"Attempt to write archive failed: URL:%@ error:%@", archivePath, *error); + } else { + GDTCORLogDebug(@"Writing archive succeeded: %@", archivePath); + } + } + } @catch (NSException *exception) { + NSString *errorString = + [NSString stringWithFormat:@"An exception was thrown during encoding: %@", exception]; + *error = [NSError errorWithDomain:NSCocoaErrorDomain + code:-1 + userInfo:@{NSLocalizedFailureReasonErrorKey : errorString}]; + } + GDTCORLogDebug(@"Attempt to write archive. successful:%@ URL:%@ error:%@", + result ? @"YES" : @"NO", archivePath, *error); + } + return resultData; +} + +id _Nullable GDTCORDecodeArchive(Class archiveClass, + NSString *_Nullable archivePath, + NSData *_Nullable archiveData, + NSError *_Nullable *error) { + id unarchivedObject = nil; +#if (defined(__IPHONE_11_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= 110000) || \ + (defined(__MAC_10_13) && MAC_OS_X_VERSION_MAX_ALLOWED >= 101300) || \ + (defined(__TVOS_11_0) && __TV_OS_VERSION_MAX_ALLOWED >= 110000) || \ + (defined(__WATCHOS_4_0) && __WATCH_OS_VERSION_MAX_ALLOWED >= 040000) || \ + (defined(TARGET_OS_MACCATALYST) && TARGET_OS_MACCATALYST) + if (@available(macOS 10.13, iOS 11.0, tvOS 11.0, watchOS 4, *)) { + NSData *data = archiveData ? archiveData : [NSData dataWithContentsOfFile:archivePath]; + if (data) { + unarchivedObject = [NSKeyedUnarchiver unarchivedObjectOfClass:archiveClass + fromData:data + error:error]; + } + } else { +#endif + @try { + NSData *archivedData = + archiveData ? archiveData : [NSData dataWithContentsOfFile:archivePath]; +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + unarchivedObject = [NSKeyedUnarchiver unarchiveObjectWithData:archivedData]; +#pragma clang diagnostic pop + } @catch (NSException *exception) { + NSString *errorString = + [NSString stringWithFormat:@"An exception was thrown during encoding: %@", exception]; + *error = [NSError errorWithDomain:NSCocoaErrorDomain + code:-1 + userInfo:@{NSLocalizedFailureReasonErrorKey : errorString}]; + } + } + return unarchivedObject; +} + +@interface GDTCORApplication () +/** + Private flag to match the existing `readonly` public flag. This will be accurate for all platforms, + since we handle each platform's lifecycle notifications separately. + */ +@property(atomic, readwrite) BOOL isRunningInBackground; + +@end + +@implementation GDTCORApplication + ++ (void)load { + GDTCORLogDebug( + "%@", @"GDT is initializing. Please note that if you quit the app via the " + "debugger and not through a lifecycle event, event data will remain on disk but " + "storage won't have a reference to them since the singleton wasn't saved to disk."); +#if TARGET_OS_IOS || TARGET_OS_TV + // If this asserts, please file a bug at https://github.com/firebase/firebase-ios-sdk/issues. + GDTCORFatalAssert( + GDTCORBackgroundIdentifierInvalid == UIBackgroundTaskInvalid, + @"GDTCORBackgroundIdentifierInvalid and UIBackgroundTaskInvalid should be the same."); +#endif + [self sharedApplication]; +} + ++ (nullable GDTCORApplication *)sharedApplication { + static GDTCORApplication *application; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + application = [[GDTCORApplication alloc] init]; + }); + return application; +} + +- (instancetype)init { + self = [super init]; + if (self) { + // This class will be instantiated in the foreground. + _isRunningInBackground = NO; + +#if TARGET_OS_IOS || TARGET_OS_TV + NSNotificationCenter *notificationCenter = [NSNotificationCenter defaultCenter]; + [notificationCenter addObserver:self + selector:@selector(iOSApplicationDidEnterBackground:) + name:UIApplicationDidEnterBackgroundNotification + object:nil]; + [notificationCenter addObserver:self + selector:@selector(iOSApplicationWillEnterForeground:) + name:UIApplicationWillEnterForegroundNotification + object:nil]; + + NSString *name = UIApplicationWillTerminateNotification; + [notificationCenter addObserver:self + selector:@selector(iOSApplicationWillTerminate:) + name:name + object:nil]; + +#if defined(__IPHONE_13_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= 130000 + if (@available(iOS 13, tvOS 13.0, *)) { + [notificationCenter addObserver:self + selector:@selector(iOSApplicationWillEnterForeground:) + name:UISceneWillEnterForegroundNotification + object:nil]; + [notificationCenter addObserver:self + selector:@selector(iOSApplicationDidEnterBackground:) + name:UISceneWillDeactivateNotification + object:nil]; + } +#endif // defined(__IPHONE_13_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= 130000 + +#elif TARGET_OS_OSX + NSNotificationCenter *notificationCenter = [NSNotificationCenter defaultCenter]; + [notificationCenter addObserver:self + selector:@selector(macOSApplicationWillTerminate:) + name:NSApplicationWillTerminateNotification + object:nil]; +#endif // TARGET_OS_IOS || TARGET_OS_TV + } + return self; +} + +- (GDTCORBackgroundIdentifier)beginBackgroundTaskWithName:(NSString *)name + expirationHandler:(void (^)(void))handler { + GDTCORBackgroundIdentifier bgID = + [[self sharedApplicationForBackgroundTask] beginBackgroundTaskWithName:name + expirationHandler:handler]; +#if !NDEBUG + if (bgID != GDTCORBackgroundIdentifierInvalid) { + GDTCORLogDebug("Creating background task with name:%@ bgID:%ld", name, (long)bgID); + } +#endif // !NDEBUG + return bgID; +} + +- (void)endBackgroundTask:(GDTCORBackgroundIdentifier)bgID { + if (bgID != GDTCORBackgroundIdentifierInvalid) { + GDTCORLogDebug("Ending background task with ID:%ld was successful", (long)bgID); + [[self sharedApplicationForBackgroundTask] endBackgroundTask:bgID]; + return; + } +} + +#pragma mark - App environment helpers + +- (BOOL)isAppExtension { +#if TARGET_OS_IOS || TARGET_OS_TV || TARGET_OS_WATCH + BOOL appExtension = [[[NSBundle mainBundle] bundlePath] hasSuffix:@".appex"]; + return appExtension; +#elif TARGET_OS_OSX + return NO; +#endif +} + +/** Returns a UIApplication instance if on the appropriate platform. + * + * @return The shared UIApplication if on the appropriate platform. + */ +#if TARGET_OS_IOS || TARGET_OS_TV +- (nullable UIApplication *)sharedApplicationForBackgroundTask { +#else +- (nullable id)sharedApplicationForBackgroundTask { +#endif + if ([self isAppExtension]) { + return nil; + } + id sharedApplication = nil; + Class uiApplicationClass = NSClassFromString(@"UIApplication"); + if (uiApplicationClass && + [uiApplicationClass respondsToSelector:(NSSelectorFromString(@"sharedApplication"))]) { + sharedApplication = [uiApplicationClass sharedApplication]; + } + return sharedApplication; +} + +#pragma mark - UIApplicationDelegate + +#if TARGET_OS_IOS || TARGET_OS_TV +- (void)iOSApplicationDidEnterBackground:(NSNotification *)notif { + _isRunningInBackground = YES; + + NSNotificationCenter *notifCenter = [NSNotificationCenter defaultCenter]; + GDTCORLogDebug("%@", @"GDTCORPlatform is sending a notif that the app is backgrounding."); + [notifCenter postNotificationName:kGDTCORApplicationDidEnterBackgroundNotification object:nil]; +} + +- (void)iOSApplicationWillEnterForeground:(NSNotification *)notif { + _isRunningInBackground = NO; + + NSNotificationCenter *notifCenter = [NSNotificationCenter defaultCenter]; + GDTCORLogDebug("%@", @"GDTCORPlatform is sending a notif that the app is foregrounding."); + [notifCenter postNotificationName:kGDTCORApplicationWillEnterForegroundNotification object:nil]; +} + +- (void)iOSApplicationWillTerminate:(NSNotification *)notif { + NSNotificationCenter *notifCenter = [NSNotificationCenter defaultCenter]; + GDTCORLogDebug("%@", @"GDTCORPlatform is sending a notif that the app is terminating."); + [notifCenter postNotificationName:kGDTCORApplicationWillTerminateNotification object:nil]; +} +#endif // TARGET_OS_IOS || TARGET_OS_TV + +#pragma mark - NSApplicationDelegate + +#if TARGET_OS_OSX +- (void)macOSApplicationWillTerminate:(NSNotification *)notif { + NSNotificationCenter *notifCenter = [NSNotificationCenter defaultCenter]; + GDTCORLogDebug("%@", @"GDTCORPlatform is sending a notif that the app is terminating."); + [notifCenter postNotificationName:kGDTCORApplicationWillTerminateNotification object:nil]; +} +#endif // TARGET_OS_OSX + +@end diff --git a/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORReachability.m b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORReachability.m new file mode 100644 index 0000000000..5f5dd10d64 --- /dev/null +++ b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORReachability.m @@ -0,0 +1,119 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "GDTCORLibrary/Public/GDTCORReachability.h" +#import "GDTCORLibrary/Private/GDTCORReachability_Private.h" +#if !TARGET_OS_WATCH + +#import + +#import + +/** Sets the _callbackFlag ivar whenever the network changes. + * + * @param reachability The reachability object calling back. + * @param flags The new flag values. + * @param info Any data that might be passed in by the callback. + */ +static void GDTCORReachabilityCallback(SCNetworkReachabilityRef reachability, + SCNetworkReachabilityFlags flags, + void *info); + +@implementation GDTCORReachability { + /** The reachability object. */ + SCNetworkReachabilityRef _reachabilityRef; + + /** The queue on which callbacks and all work will occur. */ + dispatch_queue_t _reachabilityQueue; + + /** Flags specified by reachability callbacks. */ + SCNetworkConnectionFlags _callbackFlags; +} + ++ (void)load { + [self sharedInstance]; +} + ++ (instancetype)sharedInstance { + static GDTCORReachability *sharedInstance; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + sharedInstance = [[GDTCORReachability alloc] init]; + }); + return sharedInstance; +} + ++ (SCNetworkReachabilityFlags)currentFlags { + __block SCNetworkReachabilityFlags currentFlags; + dispatch_sync([GDTCORReachability sharedInstance] -> _reachabilityQueue, ^{ + GDTCORReachability *reachability = [GDTCORReachability sharedInstance]; + currentFlags = + reachability->_callbackFlags ? reachability->_callbackFlags : reachability->_flags; + GDTCORLogDebug("Initial reachability flags determined: %d", currentFlags); + }); + return currentFlags; +} + +- (instancetype)init { + self = [super init]; + if (self) { + struct sockaddr_in zeroAddress; + bzero(&zeroAddress, sizeof(zeroAddress)); + zeroAddress.sin_len = sizeof(zeroAddress); + zeroAddress.sin_family = AF_INET; + + _reachabilityQueue = + dispatch_queue_create("com.google.GDTCORReachability", DISPATCH_QUEUE_SERIAL); + _reachabilityRef = SCNetworkReachabilityCreateWithAddress( + kCFAllocatorDefault, (const struct sockaddr *)&zeroAddress); + Boolean success = SCNetworkReachabilitySetDispatchQueue(_reachabilityRef, _reachabilityQueue); + if (!success) { + GDTCORLogWarning(GDTCORMCWReachabilityFailed, @"%@", @"The reachability queue wasn't set."); + } + success = SCNetworkReachabilitySetCallback(_reachabilityRef, GDTCORReachabilityCallback, NULL); + if (!success) { + GDTCORLogWarning(GDTCORMCWReachabilityFailed, @"%@", + @"The reachability callback wasn't set."); + } + + // Get the initial set of flags. + dispatch_async(_reachabilityQueue, ^{ + Boolean valid = SCNetworkReachabilityGetFlags(self->_reachabilityRef, &self->_flags); + if (!valid) { + GDTCORLogDebug("%@", @"Determining reachability failed."); + self->_flags = 0; + } + }); + } + return self; +} + +- (void)setCallbackFlags:(SCNetworkReachabilityFlags)flags { + if (_callbackFlags != flags) { + self->_callbackFlags = flags; + } +} + +@end + +static void GDTCORReachabilityCallback(SCNetworkReachabilityRef reachability, + SCNetworkReachabilityFlags flags, + void *info) { + GDTCORLogDebug("Reachability changed, new flags: %d", flags); + [[GDTCORReachability sharedInstance] setCallbackFlags:flags]; +} + +#endif diff --git a/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORRegistrar.m b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORRegistrar.m new file mode 100644 index 0000000000..1440376f17 --- /dev/null +++ b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORRegistrar.m @@ -0,0 +1,142 @@ +/* + * Copyright 2018 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "GDTCORLibrary/Public/GDTCORRegistrar.h" +#import "GDTCORLibrary/Private/GDTCORRegistrar_Private.h" + +#import + +@implementation GDTCORRegistrar { + /** Backing ivar for targetToUploader property. */ + NSMutableDictionary> *_targetToUploader; + + /** Backing ivar for targetToPrioritizer property. */ + NSMutableDictionary> *_targetToPrioritizer; +} + ++ (instancetype)sharedInstance { + static GDTCORRegistrar *sharedInstance; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + sharedInstance = [[GDTCORRegistrar alloc] init]; + }); + return sharedInstance; +} + +- (instancetype)init { + self = [super init]; + if (self) { + _registrarQueue = dispatch_queue_create("com.google.GDTCORRegistrar", DISPATCH_QUEUE_SERIAL); + _targetToPrioritizer = [[NSMutableDictionary alloc] init]; + _targetToUploader = [[NSMutableDictionary alloc] init]; + } + return self; +} + +- (void)registerUploader:(id)backend target:(GDTCORTarget)target { + __weak GDTCORRegistrar *weakSelf = self; + dispatch_async(_registrarQueue, ^{ + GDTCORRegistrar *strongSelf = weakSelf; + if (strongSelf) { + GDTCORLogDebug("Registered an uploader: %@ for target:%ld", backend, (long)target); + strongSelf->_targetToUploader[@(target)] = backend; + } + }); +} + +- (void)registerPrioritizer:(id)prioritizer target:(GDTCORTarget)target { + __weak GDTCORRegistrar *weakSelf = self; + dispatch_async(_registrarQueue, ^{ + GDTCORRegistrar *strongSelf = weakSelf; + if (strongSelf) { + GDTCORLogDebug("Registered a prioritizer: %@ for target:%ld", prioritizer, (long)target); + strongSelf->_targetToPrioritizer[@(target)] = prioritizer; + } + }); +} + +- (NSMutableDictionary> *)targetToUploader { + __block NSMutableDictionary> *targetToUploader; + __weak GDTCORRegistrar *weakSelf = self; + dispatch_sync(_registrarQueue, ^{ + GDTCORRegistrar *strongSelf = weakSelf; + if (strongSelf) { + targetToUploader = strongSelf->_targetToUploader; + } + }); + return targetToUploader; +} + +- (NSMutableDictionary> *)targetToPrioritizer { + __block NSMutableDictionary> *targetToPrioritizer; + __weak GDTCORRegistrar *weakSelf = self; + dispatch_sync(_registrarQueue, ^{ + GDTCORRegistrar *strongSelf = weakSelf; + if (strongSelf) { + targetToPrioritizer = strongSelf->_targetToPrioritizer; + } + }); + return targetToPrioritizer; +} + +#pragma mark - GDTCORLifecycleProtocol + +- (void)appWillBackground:(nonnull GDTCORApplication *)app { + dispatch_async(_registrarQueue, ^{ + for (id uploader in [self->_targetToUploader allValues]) { + if ([uploader respondsToSelector:@selector(appWillBackground:)]) { + [uploader appWillBackground:app]; + } + } + for (id prioritizer in [self->_targetToPrioritizer allValues]) { + if ([prioritizer respondsToSelector:@selector(appWillBackground:)]) { + [prioritizer appWillBackground:app]; + } + } + }); +} + +- (void)appWillForeground:(nonnull GDTCORApplication *)app { + dispatch_async(_registrarQueue, ^{ + for (id uploader in [self->_targetToUploader allValues]) { + if ([uploader respondsToSelector:@selector(appWillForeground:)]) { + [uploader appWillForeground:app]; + } + } + for (id prioritizer in [self->_targetToPrioritizer allValues]) { + if ([prioritizer respondsToSelector:@selector(appWillForeground:)]) { + [prioritizer appWillForeground:app]; + } + } + }); +} + +- (void)appWillTerminate:(nonnull GDTCORApplication *)app { + dispatch_sync(_registrarQueue, ^{ + for (id uploader in [self->_targetToUploader allValues]) { + if ([uploader respondsToSelector:@selector(appWillTerminate:)]) { + [uploader appWillTerminate:app]; + } + } + for (id prioritizer in [self->_targetToPrioritizer allValues]) { + if ([prioritizer respondsToSelector:@selector(appWillTerminate:)]) { + [prioritizer appWillTerminate:app]; + } + } + }); +} + +@end diff --git a/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORStorage.m b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORStorage.m new file mode 100644 index 0000000000..d7d60c65e3 --- /dev/null +++ b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORStorage.m @@ -0,0 +1,314 @@ +/* + * Copyright 2018 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "GDTCORLibrary/Private/GDTCORStorage.h" +#import "GDTCORLibrary/Private/GDTCORStorage_Private.h" + +#import +#import +#import +#import +#import + +#import "GDTCORLibrary/Private/GDTCOREvent_Private.h" +#import "GDTCORLibrary/Private/GDTCORRegistrar_Private.h" +#import "GDTCORLibrary/Private/GDTCORUploadCoordinator.h" + +@implementation GDTCORStorage + ++ (NSString *)archivePath { + static NSString *archivePath; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + archivePath = [GDTCORRootDirectory() URLByAppendingPathComponent:@"GDTCORStorageArchive"].path; + }); + return archivePath; +} + ++ (instancetype)sharedInstance { + static GDTCORStorage *sharedStorage; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + sharedStorage = [[GDTCORStorage alloc] init]; + }); + return sharedStorage; +} + +- (instancetype)init { + self = [super init]; + if (self) { + _storageQueue = dispatch_queue_create("com.google.GDTCORStorage", DISPATCH_QUEUE_SERIAL); + _targetToEventSet = [[NSMutableDictionary alloc] init]; + _storedEvents = [[NSMutableOrderedSet alloc] init]; + _uploadCoordinator = [GDTCORUploadCoordinator sharedInstance]; + } + return self; +} + +- (void)storeEvent:(GDTCOREvent *)event + onComplete:(void (^_Nullable)(BOOL wasWritten, NSError *error))completion { + GDTCORLogDebug("Saving event: %@", event); + if (event == nil) { + GDTCORLogDebug("%@", @"The event was nil, so it was not saved."); + return; + } + BOOL hadOriginalCompletion = completion != nil; + if (!completion) { + completion = ^(BOOL wasWritten, NSError *error) { + GDTCORLogDebug(@"event %@ stored. success:%@ error:%@", event, wasWritten ? @"YES" : @"NO", + error); + }; + } + + [self createEventDirectoryIfNotExists]; + + __block GDTCORBackgroundIdentifier bgID = GDTCORBackgroundIdentifierInvalid; + bgID = [[GDTCORApplication sharedApplication] + beginBackgroundTaskWithName:@"GDTStorage" + expirationHandler:^{ + // End the background task if it's still valid. + [[GDTCORApplication sharedApplication] endBackgroundTask:bgID]; + bgID = GDTCORBackgroundIdentifierInvalid; + }]; + + dispatch_async(_storageQueue, ^{ + // Check that a backend implementation is available for this target. + NSInteger target = event.target; + + // Check that a prioritizer is available for this target. + id prioritizer = + [GDTCORRegistrar sharedInstance].targetToPrioritizer[@(target)]; + GDTCORAssert(prioritizer, @"There's no prioritizer registered for the given target. Are you " + @"sure you've added the support library for the backend you need?"); + + // Write the transport bytes to disk, get a filename. + GDTCORAssert([event.dataObject transportBytes], + @"The event should have been serialized to bytes"); + NSError *error = nil; + NSURL *eventFile = [self saveEventBytesToDisk:event eventHash:event.hash error:&error]; + GDTCORLogDebug("Event saved to disk: %@", eventFile); + completion(eventFile != nil, error); + + // Add event to tracking collections. + [self addEventToTrackingCollections:event]; + + // Have the prioritizer prioritize the event and save state if there was an onComplete block. + [prioritizer prioritizeEvent:event]; + if (hadOriginalCompletion && [prioritizer respondsToSelector:@selector(saveState)]) { + [prioritizer saveState]; + GDTCORLogDebug(@"Prioritizer %@ has saved state due to an event's onComplete block.", + prioritizer); + } + + // Check the QoS, if it's high priority, notify the target that it has a high priority event. + if (event.qosTier == GDTCOREventQoSFast) { + [self.uploadCoordinator forceUploadForTarget:target]; + } + + // Write state to disk if there was an onComplete block or if we're in the background. + if (hadOriginalCompletion || [[GDTCORApplication sharedApplication] isRunningInBackground]) { + if (hadOriginalCompletion) { + GDTCORLogDebug("%@", @"Saving storage state because a completion block was passed."); + } else { + GDTCORLogDebug("%@", @"Saving storage state because the app is running in the background"); + } + NSError *error; + GDTCOREncodeArchive(self, [GDTCORStorage archivePath], &error); + if (error) { + GDTCORLogDebug(@"Serializing GDTCORStorage to an archive failed: %@", error); + } + } + + // Cancel or end the associated background task if it's still valid. + [[GDTCORApplication sharedApplication] endBackgroundTask:bgID]; + bgID = GDTCORBackgroundIdentifierInvalid; + GDTCORLogDebug("Event %@ is stored. There are %ld events stored on disk", event, + (unsigned long)self->_storedEvents.count); + }); +} + +- (void)removeEvents:(NSSet *)events { + NSSet *eventsToRemove = [events copy]; + dispatch_async(_storageQueue, ^{ + for (GDTCOREvent *event in eventsToRemove) { + // Remove from disk, first and foremost. + NSError *error; + if (event.fileURL) { + NSURL *fileURL = event.fileURL; + [[NSFileManager defaultManager] removeItemAtURL:fileURL error:&error]; + GDTCORAssert(error == nil, @"There was an error removing an event file: %@", error); + GDTCORLogDebug("Removed event from disk: %@", fileURL); + } + + // Remove from the tracking collections. + [self.storedEvents removeObject:event]; + [self.targetToEventSet[@(event.target)] removeObject:event]; + } + }); +} + +#pragma mark - Private helper methods + +/** Creates the storage directory if it does not exist. */ +- (void)createEventDirectoryIfNotExists { + NSError *error; + BOOL result = [[NSFileManager defaultManager] createDirectoryAtURL:GDTCORRootDirectory() + withIntermediateDirectories:YES + attributes:0 + error:&error]; + if (!result || error) { + GDTCORLogError(GDTCORMCEDirectoryCreationError, @"Error creating the directory: %@", error); + } +} + +/** Saves the event's dataObject to a file using NSData mechanisms. + * + * @note This method should only be called from a method within a block on _storageQueue to maintain + * thread safety. + * + * @param event The event. + * @param eventHash The hash value of the event. + * @return The filename + */ +- (NSURL *)saveEventBytesToDisk:(GDTCOREvent *)event + eventHash:(NSUInteger)eventHash + error:(NSError **)error { + NSString *eventFileName = [NSString stringWithFormat:@"event-%lu", (unsigned long)eventHash]; + NSError *writingError; + [event writeToGDTPath:eventFileName error:&writingError]; + if (writingError) { + GDTCORLogDebug(@"There was an error saving an event to disk: %@", writingError); + } + return event.fileURL; +} + +/** Adds the event to internal tracking collections. + * + * @note This method should only be called from a method within a block on _storageQueue to maintain + * thread safety. + * + * @param event The event to track. + */ +- (void)addEventToTrackingCollections:(GDTCOREvent *)event { + [_storedEvents addObject:event]; + NSNumber *target = @(event.target); + NSMutableSet *events = self.targetToEventSet[target]; + events = events ? events : [[NSMutableSet alloc] init]; + [events addObject:event]; + _targetToEventSet[target] = events; +} + +#pragma mark - GDTCORLifecycleProtocol + +- (void)appWillForeground:(GDTCORApplication *)app { + NSError *error; + GDTCORDecodeArchive([GDTCORStorage class], [GDTCORStorage archivePath], nil, &error); + if (error) { + GDTCORLogDebug(@"Deserializing GDTCORStorage from an archive failed: %@", error); + } +} + +- (void)appWillBackground:(GDTCORApplication *)app { + dispatch_async(_storageQueue, ^{ + // Immediately request a background task to run until the end of the current queue of work, and + // cancel it once the work is done. + __block GDTCORBackgroundIdentifier bgID = + [app beginBackgroundTaskWithName:@"GDTStorage" + expirationHandler:^{ + [app endBackgroundTask:bgID]; + bgID = GDTCORBackgroundIdentifierInvalid; + }]; + NSError *error; + GDTCOREncodeArchive(self, [GDTCORStorage archivePath], &error); + if (error) { + GDTCORLogDebug(@"Serializing GDTCORStorage to an archive failed: %@", error); + } else { + GDTCORLogDebug(@"Serialized GDTCORStorage to %@", [GDTCORStorage archivePath]); + } + + // End the background task if it's still valid. + [app endBackgroundTask:bgID]; + bgID = GDTCORBackgroundIdentifierInvalid; + }); +} + +- (void)appWillTerminate:(GDTCORApplication *)application { + dispatch_sync(_storageQueue, ^{ + NSError *error; + GDTCOREncodeArchive(self, [GDTCORStorage archivePath], &error); + if (error) { + GDTCORLogDebug(@"Serializing GDTCORStorage to an archive failed: %@", error); + } else { + GDTCORLogDebug(@"Serialized GDTCORStorage to %@", [GDTCORStorage archivePath]); + } + }); +} + +#pragma mark - NSSecureCoding + +/** The NSKeyedCoder key for the storedEvents property. */ +static NSString *const kGDTCORStorageStoredEventsKey = @"GDTCORStorageStoredEventsKey"; + +/** The NSKeyedCoder key for the targetToEventSet property. */ +static NSString *const kGDTCORStorageTargetToEventSetKey = @"GDTCORStorageTargetToEventSetKey"; + +/** The NSKeyedCoder key for the uploadCoordinator property. */ +static NSString *const kGDTCORStorageUploadCoordinatorKey = @"GDTCORStorageUploadCoordinatorKey"; + ++ (BOOL)supportsSecureCoding { + return YES; +} + +- (instancetype)initWithCoder:(NSCoder *)aDecoder { + // Sets a global translation mapping to decode GDTCORStoredEvent objects encoded as instances of + // GDTCOREvent instead. + [NSKeyedUnarchiver setClass:[GDTCOREvent class] forClassName:@"GDTCORStoredEvent"]; + + // Create the singleton and populate its ivars. + GDTCORStorage *sharedInstance = [self.class sharedInstance]; + dispatch_sync(sharedInstance.storageQueue, ^{ + NSSet *classes = [NSSet setWithObjects:[NSMutableOrderedSet class], [GDTCOREvent class], nil]; + sharedInstance->_storedEvents = [aDecoder decodeObjectOfClasses:classes + forKey:kGDTCORStorageStoredEventsKey]; + classes = [NSSet + setWithObjects:[NSMutableDictionary class], [NSMutableSet class], [GDTCOREvent class], nil]; + sharedInstance->_targetToEventSet = + [aDecoder decodeObjectOfClasses:classes forKey:kGDTCORStorageTargetToEventSetKey]; + sharedInstance->_uploadCoordinator = + [aDecoder decodeObjectOfClass:[GDTCORUploadCoordinator class] + forKey:kGDTCORStorageUploadCoordinatorKey]; + }); + return sharedInstance; +} + +- (void)encodeWithCoder:(NSCoder *)aCoder { + GDTCORStorage *sharedInstance = [self.class sharedInstance]; + NSMutableOrderedSet *storedEvents = sharedInstance->_storedEvents; + if (storedEvents) { + [aCoder encodeObject:storedEvents forKey:kGDTCORStorageStoredEventsKey]; + } + NSMutableDictionary *> *targetToEventSet = + sharedInstance->_targetToEventSet; + if (targetToEventSet) { + [aCoder encodeObject:targetToEventSet forKey:kGDTCORStorageTargetToEventSetKey]; + } + GDTCORUploadCoordinator *uploadCoordinator = sharedInstance->_uploadCoordinator; + if (uploadCoordinator) { + [aCoder encodeObject:uploadCoordinator forKey:kGDTCORStorageUploadCoordinatorKey]; + } +} + +@end diff --git a/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORTransformer.m b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORTransformer.m new file mode 100644 index 0000000000..ad0b62f2a1 --- /dev/null +++ b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORTransformer.m @@ -0,0 +1,100 @@ +/* + * Copyright 2018 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "GDTCORLibrary/Private/GDTCORTransformer.h" +#import "GDTCORLibrary/Private/GDTCORTransformer_Private.h" + +#import +#import +#import +#import +#import + +#import "GDTCORLibrary/Private/GDTCORStorage.h" + +@implementation GDTCORTransformer + ++ (instancetype)sharedInstance { + static GDTCORTransformer *eventTransformer; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + eventTransformer = [[self alloc] init]; + }); + return eventTransformer; +} + +- (instancetype)init { + self = [super init]; + if (self) { + _eventWritingQueue = + dispatch_queue_create("com.google.GDTCORTransformer", DISPATCH_QUEUE_SERIAL); + _storageInstance = [GDTCORStorage sharedInstance]; + } + return self; +} + +- (void)transformEvent:(GDTCOREvent *)event + withTransformers:(NSArray> *)transformers + onComplete:(void (^_Nullable)(BOOL wasWritten, NSError *error))completion { + GDTCORAssert(event, @"You can't write a nil event"); + BOOL hadOriginalCompletion = completion != nil; + if (!completion) { + completion = ^(BOOL wasWritten, NSError *_Nullable error) { + }; + } + + __block GDTCORBackgroundIdentifier bgID = GDTCORBackgroundIdentifierInvalid; + bgID = [[GDTCORApplication sharedApplication] + beginBackgroundTaskWithName:@"GDTTransformer" + expirationHandler:^{ + [[GDTCORApplication sharedApplication] endBackgroundTask:bgID]; + bgID = GDTCORBackgroundIdentifierInvalid; + }]; + dispatch_async(_eventWritingQueue, ^{ + GDTCOREvent *transformedEvent = event; + for (id transformer in transformers) { + if ([transformer respondsToSelector:@selector(transform:)]) { + GDTCORLogDebug("Applying a transformer to event %@", event); + transformedEvent = [transformer transform:transformedEvent]; + if (!transformedEvent) { + completion(NO, nil); + return; + } + } else { + GDTCORLogError(GDTCORMCETransformerDoesntImplementTransform, + @"Transformer doesn't implement transform: %@", transformer); + completion(NO, nil); + return; + } + } + [self.storageInstance storeEvent:transformedEvent + onComplete:hadOriginalCompletion ? completion : nil]; + + // The work is done, cancel the background task if it's valid. + [[GDTCORApplication sharedApplication] endBackgroundTask:bgID]; + bgID = GDTCORBackgroundIdentifierInvalid; + }); +} + +#pragma mark - GDTCORLifecycleProtocol + +- (void)appWillTerminate:(GDTCORApplication *)application { + // Flush the queue immediately. + dispatch_sync(_eventWritingQueue, ^{ + }); +} + +@end diff --git a/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORTransport.m b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORTransport.m new file mode 100644 index 0000000000..35cd80c156 --- /dev/null +++ b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORTransport.m @@ -0,0 +1,91 @@ +/* + * Copyright 2018 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "GDTCORLibrary/Public/GDTCORTransport.h" +#import "GDTCORLibrary/Private/GDTCORTransport_Private.h" + +#import +#import +#import + +#import "GDTCORLibrary/Private/GDTCORTransformer.h" + +@implementation GDTCORTransport + +- (nullable instancetype)initWithMappingID:(NSString *)mappingID + transformers: + (nullable NSArray> *)transformers + target:(NSInteger)target { + GDTCORAssert(mappingID.length > 0, @"A mapping ID cannot be nil or empty"); + GDTCORAssert(target > 0, @"A target cannot be negative or 0"); + if (mappingID == nil || mappingID.length == 0 || target <= 0) { + return nil; + } + self = [super init]; + if (self) { + _mappingID = mappingID; + _transformers = transformers; + _target = target; + _transformerInstance = [GDTCORTransformer sharedInstance]; + } + GDTCORLogDebug("Transport object created. mappingID:%@ transformers:%@ target:%ld", mappingID, + transformers, (long)target); + return self; +} + +- (void)sendTelemetryEvent:(GDTCOREvent *)event + onComplete:(void (^)(BOOL wasWritten, NSError *_Nullable error))completion { + event.qosTier = GDTCOREventQoSTelemetry; + [self sendEvent:event onComplete:completion]; +} + +- (void)sendDataEvent:(GDTCOREvent *)event + onComplete:(void (^)(BOOL wasWritten, NSError *_Nullable error))completion { + GDTCORAssert(event.qosTier != GDTCOREventQoSTelemetry, @"Use -sendTelemetryEvent, please."); + [self sendEvent:event onComplete:completion]; +} + +- (void)sendTelemetryEvent:(GDTCOREvent *)event { + [self sendTelemetryEvent:event onComplete:nil]; +} + +- (void)sendDataEvent:(GDTCOREvent *)event { + [self sendDataEvent:event onComplete:nil]; +} + +- (GDTCOREvent *)eventForTransport { + return [[GDTCOREvent alloc] initWithMappingID:_mappingID target:_target]; +} + +#pragma mark - Private helper methods + +/** Sends the given event through the transport pipeline. + * + * @param event The event to send. + * @param completion A block that will be called when the event has been written or dropped. + */ +- (void)sendEvent:(GDTCOREvent *)event + onComplete:(void (^_Nullable)(BOOL wasWritten, NSError *error))completion { + // TODO: Determine if sending an event before registration is allowed. + GDTCORAssert(event, @"You can't send a nil event"); + GDTCOREvent *copiedEvent = [event copy]; + copiedEvent.clockSnapshot = [GDTCORClock snapshot]; + [self.transformerInstance transformEvent:copiedEvent + withTransformers:_transformers + onComplete:completion]; +} + +@end diff --git a/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORUploadCoordinator.m b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORUploadCoordinator.m new file mode 100644 index 0000000000..ce72569ae8 --- /dev/null +++ b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORUploadCoordinator.m @@ -0,0 +1,276 @@ +/* + * Copyright 2018 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "GDTCORLibrary/Private/GDTCORUploadCoordinator.h" + +#import +#import +#import +#import + +#import "GDTCORLibrary/Private/GDTCORRegistrar_Private.h" +#import "GDTCORLibrary/Private/GDTCORStorage.h" + +@implementation GDTCORUploadCoordinator + ++ (instancetype)sharedInstance { + static GDTCORUploadCoordinator *sharedUploader; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + sharedUploader = [[GDTCORUploadCoordinator alloc] init]; + [sharedUploader startTimer]; + }); + return sharedUploader; +} + +- (instancetype)init { + self = [super init]; + if (self) { + _coordinationQueue = + dispatch_queue_create("com.google.GDTCORUploadCoordinator", DISPATCH_QUEUE_SERIAL); + _registrar = [GDTCORRegistrar sharedInstance]; + _timerInterval = 30 * NSEC_PER_SEC; + _timerLeeway = 5 * NSEC_PER_SEC; + _targetToInFlightPackages = [[NSMutableDictionary alloc] init]; + } + return self; +} + +- (void)forceUploadForTarget:(GDTCORTarget)target { + dispatch_async(_coordinationQueue, ^{ + GDTCORLogDebug("Forcing an upload of target %ld", (long)target); + GDTCORUploadConditions conditions = [self uploadConditions]; + conditions |= GDTCORUploadConditionHighPriority; + [self uploadTargets:@[ @(target) ] conditions:conditions]; + }); +} + +#pragma mark - Property overrides + +// GDTCORStorage and GDTCORUploadCoordinator +sharedInstance methods call each other, so this breaks +// the loop. +- (GDTCORStorage *)storage { + if (!_storage) { + _storage = [GDTCORStorage sharedInstance]; + } + return _storage; +} + +#pragma mark - Private helper methods + +/** Starts a timer that checks whether or not events can be uploaded at regular intervals. It will + * check the next-upload clocks of all targets to determine if an upload attempt can be made. + */ +- (void)startTimer { + dispatch_sync(_coordinationQueue, ^{ + self->_timer = + dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, self->_coordinationQueue); + dispatch_source_set_timer(self->_timer, DISPATCH_TIME_NOW, self->_timerInterval, + self->_timerLeeway); + dispatch_source_set_event_handler(self->_timer, ^{ + if (![[GDTCORApplication sharedApplication] isRunningInBackground]) { + GDTCORUploadConditions conditions = [self uploadConditions]; + GDTCORLogDebug("%@", @"Upload timer fired"); + [self uploadTargets:[self.registrar.targetToUploader allKeys] conditions:conditions]; + } + }); + GDTCORLogDebug("%@", @"Upload timer started"); + dispatch_resume(self->_timer); + }); +} + +/** Stops the currently running timer. */ +- (void)stopTimer { + if (_timer) { + dispatch_source_cancel(_timer); + } +} + +/** Triggers the uploader implementations for the given targets to upload. + * + * @param targets An array of targets to trigger. + * @param conditions The set of upload conditions. + */ +- (void)uploadTargets:(NSArray *)targets conditions:(GDTCORUploadConditions)conditions { + dispatch_async(_coordinationQueue, ^{ + if ((conditions & GDTCORUploadConditionNoNetwork) == GDTCORUploadConditionNoNetwork) { + return; + } + for (NSNumber *target in targets) { + // Don't trigger uploads for targets that have an in-flight package already. + if (self->_targetToInFlightPackages[target]) { + GDTCORLogDebug("Target %@ will not upload, there's an upload in flight", target); + continue; + } + // Ask the uploader if they can upload and do so, if it can. + id uploader = self.registrar.targetToUploader[target]; + if ([uploader readyToUploadTarget:target.intValue conditions:conditions]) { + id prioritizer = self.registrar.targetToPrioritizer[target]; + GDTCORUploadPackage *package = [prioritizer uploadPackageWithTarget:target.intValue + conditions:conditions]; + if (package.events.count) { + self->_targetToInFlightPackages[target] = package; + GDTCORLogDebug("Package of %ld events is being handed over to an uploader", + (long)package.events.count); + [uploader uploadPackage:package]; + } else { + [package completeDelivery]; + } + } + GDTCORLogDebug("Target %@ is not ready to upload", target); + } + }); +} + +/** Returns the current upload conditions after making determinations about the network connection. + * + * @return The current upload conditions. + */ +- (GDTCORUploadConditions)uploadConditions { +#if TARGET_OS_WATCH + return GDTCORUploadConditionNoNetwork; +#else + SCNetworkReachabilityFlags currentFlags = [GDTCORReachability currentFlags]; + BOOL reachable = + (currentFlags & kSCNetworkReachabilityFlagsReachable) == kSCNetworkReachabilityFlagsReachable; + BOOL connectionRequired = (currentFlags & kSCNetworkReachabilityFlagsConnectionRequired) == + kSCNetworkReachabilityFlagsConnectionRequired; + BOOL networkConnected = reachable && !connectionRequired; + + if (!networkConnected) { + return GDTCORUploadConditionNoNetwork; + } + + BOOL isWWAN = GDTCORReachabilityFlagsContainWWAN(currentFlags); + if (isWWAN) { + return GDTCORUploadConditionMobileData; + } else { + return GDTCORUploadConditionWifiData; + } +#endif +} + +#pragma mark - NSSecureCoding support + +/** The NSKeyedCoder key for the targetToInFlightPackages property. */ +static NSString *const ktargetToInFlightPackagesKey = + @"GDTCORUploadCoordinatortargetToInFlightPackages"; + ++ (BOOL)supportsSecureCoding { + return YES; +} + +- (instancetype)initWithCoder:(NSCoder *)aDecoder { + GDTCORUploadCoordinator *sharedCoordinator = [GDTCORUploadCoordinator sharedInstance]; + dispatch_sync(sharedCoordinator->_coordinationQueue, ^{ + @try { + NSSet *classes = + [NSSet setWithObjects:[NSMutableDictionary class], [GDTCORUploadPackage class], nil]; + sharedCoordinator->_targetToInFlightPackages = + [aDecoder decodeObjectOfClasses:classes forKey:ktargetToInFlightPackagesKey]; + + } @catch (NSException *exception) { + sharedCoordinator->_targetToInFlightPackages = [NSMutableDictionary dictionary]; + } + }); + return sharedCoordinator; +} + +- (void)encodeWithCoder:(NSCoder *)aCoder { + dispatch_sync(_coordinationQueue, ^{ + // All packages that have been given to uploaders need to be tracked so that their expiration + // timers can be called. + if (self->_targetToInFlightPackages.count > 0) { + [aCoder encodeObject:self->_targetToInFlightPackages forKey:ktargetToInFlightPackagesKey]; + } + }); +} + +#pragma mark - GDTCORLifecycleProtocol + +- (void)appWillForeground:(GDTCORApplication *)app { + // Not entirely thread-safe, but it should be fine. + [self startTimer]; +} + +- (void)appWillBackground:(GDTCORApplication *)app { + // Should be thread-safe. If it ends up not being, put this in a dispatch_sync. + [self stopTimer]; +} + +- (void)appWillTerminate:(GDTCORApplication *)application { + dispatch_sync(_coordinationQueue, ^{ + [self stopTimer]; + }); +} + +#pragma mark - GDTCORUploadPackageProtocol + +- (void)packageDelivered:(GDTCORUploadPackage *)package successful:(BOOL)successful { + if (!_coordinationQueue) { + return; + } + dispatch_async(_coordinationQueue, ^{ + NSNumber *targetNumber = @(package.target); + NSMutableDictionary *targetToInFlightPackages = + self->_targetToInFlightPackages; + GDTCORRegistrar *registrar = self->_registrar; + if (targetToInFlightPackages) { + [targetToInFlightPackages removeObjectForKey:targetNumber]; + } + NSSet *packageEvents = [package.events copy]; + if (registrar) { + id prioritizer = registrar.targetToPrioritizer[targetNumber]; + if (!prioritizer) { + GDTCORLogError(GDTCORMCEPrioritizerError, + @"A prioritizer should be registered for this target: %@", targetNumber); + } + if ([prioritizer respondsToSelector:@selector(packageDelivered:successful:)]) { + [prioritizer packageDelivered:[package copy] successful:successful]; + } + } + if (successful && packageEvents.count) { + [self.storage removeEvents:packageEvents]; + } + }); +} + +- (void)packageExpired:(GDTCORUploadPackage *)package { + if (!_coordinationQueue) { + return; + } + dispatch_async(_coordinationQueue, ^{ + NSNumber *targetNumber = @(package.target); + NSMutableDictionary *targetToInFlightPackages = + self->_targetToInFlightPackages; + GDTCORRegistrar *registrar = self->_registrar; + if (targetToInFlightPackages) { + [targetToInFlightPackages removeObjectForKey:targetNumber]; + } + if (registrar) { + id prioritizer = registrar.targetToPrioritizer[targetNumber]; + id uploader = registrar.targetToUploader[targetNumber]; + if ([prioritizer respondsToSelector:@selector(packageExpired:)]) { + [prioritizer packageExpired:package]; + } + if ([uploader respondsToSelector:@selector(packageExpired:)]) { + [uploader packageExpired:package]; + } + } + }); +} + +@end diff --git a/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORUploadPackage.m b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORUploadPackage.m new file mode 100644 index 0000000000..e17d034430 --- /dev/null +++ b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/GDTCORUploadPackage.m @@ -0,0 +1,162 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "GDTCORLibrary/Public/GDTCORUploadPackage.h" + +#import +#import + +#import "GDTCORLibrary/Private/GDTCORStorage_Private.h" +#import "GDTCORLibrary/Private/GDTCORUploadCoordinator.h" +#import "GDTCORLibrary/Private/GDTCORUploadPackage_Private.h" + +@implementation GDTCORUploadPackage { + /** If YES, the package's -completeDelivery method has been called. */ + BOOL _isDelivered; + + /** If YES, is being handled by the handler. */ + BOOL _isHandled; + + /** A timer that will regularly check to see whether this package has expired or not. */ + NSTimer *_expirationTimer; +} + +- (instancetype)initWithTarget:(GDTCORTarget)target { + self = [super init]; + if (self) { + _target = target; + _storage = [GDTCORStorage sharedInstance]; + _deliverByTime = [GDTCORClock clockSnapshotInTheFuture:180000]; + _handler = [GDTCORUploadCoordinator sharedInstance]; + _expirationTimer = [NSTimer scheduledTimerWithTimeInterval:5.0 + target:self + selector:@selector(checkIfPackageIsExpired:) + userInfo:nil + repeats:YES]; + } + GDTCORLogDebug("Upload package created %@", self); + return self; +} + +- (instancetype)copy { + GDTCORUploadPackage *newPackage = [[GDTCORUploadPackage alloc] initWithTarget:_target]; + newPackage->_events = [_events copy]; + GDTCORLogDebug("Copying UploadPackage %@ to %@", self, newPackage); + return newPackage; +} + +- (NSUInteger)hash { + return [_events hash]; +} + +- (BOOL)isEqual:(id)object { + return [self hash] == [object hash]; +} + +- (void)dealloc { + [_expirationTimer invalidate]; +} + +- (void)setStorage:(GDTCORStorage *)storage { + if (storage != _storage) { + _storage = storage; + } +} + +- (void)completeDelivery { + if (_isDelivered) { + GDTCORLogError(GDTCORMCEDeliverTwice, @"%@", + @"It's an API violation to call -completeDelivery twice."); + } + _isDelivered = YES; + if (!_isHandled && _handler && + [_handler respondsToSelector:@selector(packageDelivered:successful:)]) { + [_expirationTimer invalidate]; + _isHandled = YES; + [_handler packageDelivered:[self copy] successful:YES]; + } + GDTCORLogDebug("Upload package delivered: %@", self); +} + +- (void)retryDeliveryInTheFuture { + if (!_isHandled && _handler && + [_handler respondsToSelector:@selector(packageDelivered:successful:)]) { + [_expirationTimer invalidate]; + _isHandled = YES; + [_handler packageDelivered:[self copy] successful:NO]; + } + GDTCORLogDebug("Upload package will retry in the future: %@", self); +} + +- (void)checkIfPackageIsExpired:(NSTimer *)timer { + if ([[GDTCORClock snapshot] isAfter:_deliverByTime]) { + if (_handler && [_handler respondsToSelector:@selector(packageExpired:)]) { + _isHandled = YES; + [_expirationTimer invalidate]; + GDTCORLogDebug("Upload package expired: %@", self); + [_handler packageExpired:self]; + } + } +} + +#pragma mark - NSSecureCoding + +/** The keyed archiver key for the events property. */ +static NSString *const kEventsKey = @"GDTCORUploadPackageEventsKey"; + +/** The keyed archiver key for the _isHandled property. */ +static NSString *const kDeliverByTimeKey = @"GDTCORUploadPackageDeliveryByTimeKey"; + +/** The keyed archiver key for the _isHandled ivar. */ +static NSString *const kIsHandledKey = @"GDTCORUploadPackageIsHandledKey"; + +/** The keyed archiver key for the handler property. */ +static NSString *const kHandlerKey = @"GDTCORUploadPackageHandlerKey"; + +/** The keyed archiver key for the target property. */ +static NSString *const kTargetKey = @"GDTCORUploadPackageTargetKey"; + ++ (BOOL)supportsSecureCoding { + return YES; +} + +- (void)encodeWithCoder:(nonnull NSCoder *)aCoder { + [aCoder encodeObject:_events forKey:kEventsKey]; + [aCoder encodeObject:_deliverByTime forKey:kDeliverByTimeKey]; + [aCoder encodeBool:_isHandled forKey:kIsHandledKey]; + [aCoder encodeObject:_handler forKey:kHandlerKey]; + [aCoder encodeInteger:_target forKey:kTargetKey]; +} + +- (nullable instancetype)initWithCoder:(nonnull NSCoder *)aDecoder { + // Sets a global translation mapping to decode GDTCORStoredEvent objects encoded as instances of + // GDTCOREvent instead. + [NSKeyedUnarchiver setClass:[GDTCOREvent class] forClassName:@"GDTCORStoredEvent"]; + + GDTCORTarget target = [aDecoder decodeIntegerForKey:kTargetKey]; + self = [self initWithTarget:target]; + if (self) { + NSSet *classes = [NSSet setWithObjects:[NSSet class], [GDTCOREvent class], nil]; + _events = [aDecoder decodeObjectOfClasses:classes forKey:kEventsKey]; + _deliverByTime = [aDecoder decodeObjectOfClass:[GDTCORClock class] forKey:kDeliverByTimeKey]; + _isHandled = [aDecoder decodeBoolForKey:kIsHandledKey]; + // _handler isn't technically NSSecureCoding, because we don't know the class of this object. + // but it gets decoded anyway. + } + return self; +} + +@end diff --git a/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORDataFuture.h b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORDataFuture.h new file mode 100644 index 0000000000..685cf2bac8 --- /dev/null +++ b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORDataFuture.h @@ -0,0 +1,36 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** This class represents a future data object, determined at instantiation time. */ +@interface GDTCORDataFuture : NSObject + +/** If not nil, this data future was instantiated with this file URL. */ +@property(nullable, readonly, nonatomic) NSURL *fileURL; + +/** Initializes an instance with the given the fileURL. + * + * @param fileURL The fileURL containing the data to return in -data. + * @return An instance of this class. + */ +- (instancetype)initWithFileURL:(NSURL *)fileURL; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCOREvent_Private.h b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCOREvent_Private.h new file mode 100644 index 0000000000..d19be218ef --- /dev/null +++ b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCOREvent_Private.h @@ -0,0 +1,39 @@ +/* + * Copyright 2018 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface GDTCOREvent () + +/** The GDT relative file path of the event. */ +@property(nullable, nonatomic, readonly) NSString *GDTFilePath; + +/** Writes [dataObject transportBytes] to the given URL, populates fileURL with the filename, then + * nils the dataObject property. This method should not be called twice on the same event. + * + * @param filePath The GDTCORRootDirectory-relative path that dataObject will be written to. + * @param error If populated, the error encountered during writing to disk. + * @return YES if writing dataObject to disk was successful, NO otherwise. + */ +- (BOOL)writeToGDTPath:(NSString *)filePath error:(NSError **)error; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORReachability_Private.h b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORReachability_Private.h new file mode 100644 index 0000000000..d577dbbf91 --- /dev/null +++ b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORReachability_Private.h @@ -0,0 +1,32 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "GDTCORLibrary/Public/GDTCORReachability.h" + +@interface GDTCORReachability () + +#if !TARGET_OS_WATCH +/** Allows manually setting the flags for testing purposes. */ +@property(nonatomic, readwrite) SCNetworkReachabilityFlags flags; +#endif + +/** Creates/returns the singleton instance of this class. + * + * @return The singleton instance of this class. + */ ++ (instancetype)sharedInstance; + +@end diff --git a/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORRegistrar_Private.h b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORRegistrar_Private.h new file mode 100644 index 0000000000..074fc1148c --- /dev/null +++ b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORRegistrar_Private.h @@ -0,0 +1,35 @@ +/* + * Copyright 2018 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +@interface GDTCORRegistrar () + +NS_ASSUME_NONNULL_BEGIN + +/** The concurrent queue on which all registration occurs. */ +@property(nonatomic, readonly) dispatch_queue_t registrarQueue; + +/** A map of targets to backend implementations. */ +@property(atomic, readonly) NSMutableDictionary> *targetToUploader; + +/** A map of targets to prioritizer implementations. */ +@property(atomic, readonly) + NSMutableDictionary> *targetToPrioritizer; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORStorage.h b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORStorage.h new file mode 100644 index 0000000000..2d281dcfc4 --- /dev/null +++ b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORStorage.h @@ -0,0 +1,51 @@ +/* + * Copyright 2018 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +#import + +@class GDTCOREvent; + +NS_ASSUME_NONNULL_BEGIN + +/** Manages the storage of events. This class is thread-safe. */ +@interface GDTCORStorage : NSObject + +/** Creates and/or returns the storage singleton. + * + * @return The storage singleton. + */ ++ (instancetype)sharedInstance; + +/** Stores event.dataObject into a shared on-device folder and tracks the event via + * a GDTCOREvent instance. + * + * @param event The event to store. + * @param completion A block to run when an event was written to disk or dropped. + */ +- (void)storeEvent:(GDTCOREvent *)event + onComplete:(void (^_Nullable)(BOOL wasWritten, NSError *error))completion; + +/** Removes a set of events from storage specified by their hash. + * + * @param events The set of stored events to remove. + */ +- (void)removeEvents:(NSSet *)events; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORStorage_Private.h b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORStorage_Private.h new file mode 100644 index 0000000000..2f41cc84c5 --- /dev/null +++ b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORStorage_Private.h @@ -0,0 +1,47 @@ +/* + * Copyright 2018 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "GDTCORLibrary/Private/GDTCORStorage.h" + +@class GDTCORUploadCoordinator; + +NS_ASSUME_NONNULL_BEGIN + +@interface GDTCORStorage () + +/** The queue on which all storage work will occur. */ +@property(nonatomic) dispatch_queue_t storageQueue; + +/** A map of targets to a set of stored events. */ +@property(nonatomic) + NSMutableDictionary *> *targetToEventSet; + +/** All the events that have been stored. */ +@property(readonly, nonatomic) NSMutableOrderedSet *storedEvents; + +/** The upload coordinator instance used by this storage instance. */ +@property(nonatomic) GDTCORUploadCoordinator *uploadCoordinator; + +/** Returns the path to the keyed archive of the singleton. This is where the singleton is saved + * to disk during certain app lifecycle events. + * + * @return File path to serialized singleton. + */ ++ (NSString *)archivePath; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORTransformer.h b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORTransformer.h new file mode 100644 index 0000000000..e2dbff1265 --- /dev/null +++ b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORTransformer.h @@ -0,0 +1,56 @@ +/* + * Copyright 2018 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +#import + +@class GDTCOREvent; + +@protocol GDTCOREventTransformer; + +NS_ASSUME_NONNULL_BEGIN + +/** Manages the transforming of events. It's desirable for this to be its own class + * because running all events through a single instance ensures that transformers are thread-safe. + * Having a per-transport queue to run on isn't sufficient because transformer objects could + * maintain state (or at least, there's nothing to stop them from doing that) and the same instances + * may be used across multiple instances. + */ +@interface GDTCORTransformer : NSObject + +/** Instantiates or returns the event transformer singleton. + * + * @return The singleton instance of the event transformer. + */ ++ (instancetype)sharedInstance; + +/** Writes the result of applying the given transformers' -transform method on the given event. + * + * @note If the app is suspended, a background task will be created to complete work in-progress, + * but this method will not send any further events until the app is resumed. + * + * @param event The event to apply transformers on. + * @param transformers The list of transformers to apply. + * @param completion A block to run when an event was written to disk or dropped. + */ +- (void)transformEvent:(GDTCOREvent *)event + withTransformers:(nullable NSArray> *)transformers + onComplete:(void (^_Nullable)(BOOL wasWritten, NSError *_Nullable error))completion; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORTransformer_Private.h b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORTransformer_Private.h new file mode 100644 index 0000000000..fcdae34dd3 --- /dev/null +++ b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORTransformer_Private.h @@ -0,0 +1,33 @@ +/* + * Copyright 2018 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "GDTCORLibrary/Private/GDTCORTransformer.h" + +@class GDTCORStorage; + +NS_ASSUME_NONNULL_BEGIN + +@interface GDTCORTransformer () + +/** The queue on which all work will occur. */ +@property(nonatomic) dispatch_queue_t eventWritingQueue; + +/** The storage instance used to store events. Should only be used to inject a testing fake. */ +@property(nonatomic) GDTCORStorage *storageInstance; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORTransport_Private.h b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORTransport_Private.h new file mode 100644 index 0000000000..71f73a6f43 --- /dev/null +++ b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORTransport_Private.h @@ -0,0 +1,39 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +@class GDTCORTransformer; + +NS_ASSUME_NONNULL_BEGIN + +@interface GDTCORTransport () + +/** The mapping identifier that the target backend will use to map the transport bytes to proto. */ +@property(nonatomic) NSString *mappingID; + +/** The transformers that will operate on events sent by this transport. */ +@property(nonatomic) NSArray> *transformers; + +/** The target backend of this transport. */ +@property(nonatomic) NSInteger target; + +/** The transformer instance to used to transform events. Allows injecting a fake during testing. */ +@property(nonatomic) GDTCORTransformer *transformerInstance; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORUploadCoordinator.h b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORUploadCoordinator.h new file mode 100644 index 0000000000..b1d708cc42 --- /dev/null +++ b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORUploadCoordinator.h @@ -0,0 +1,77 @@ +/* + * Copyright 2018 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +#import +#import + +#import "GDTCORLibrary/Private/GDTCORUploadPackage_Private.h" + +@class GDTCORClock; +@class GDTCORStorage; + +NS_ASSUME_NONNULL_BEGIN + +/** This class connects storage and uploader implementations, providing events to an uploader + * and informing the storage what events were successfully uploaded or not. + */ +@interface GDTCORUploadCoordinator + : NSObject + +/** The queue on which all upload coordination will occur. Also used by a dispatch timer. */ +/** Creates and/or returrns the singleton. + * + * @return The singleton instance of this class. + */ ++ (instancetype)sharedInstance; +@property(nonatomic, readonly) dispatch_queue_t coordinationQueue; + +/** A timer that will causes regular checks for events to upload. */ +@property(nonatomic, readonly) dispatch_source_t timer; + +/** The interval the timer will fire. */ +@property(nonatomic, readonly) uint64_t timerInterval; + +/** Some leeway given to libdispatch for the timer interval event. */ +@property(nonatomic, readonly) uint64_t timerLeeway; + +/** The map of targets to in-flight packages. */ +@property(nonatomic, readonly) + NSMutableDictionary *targetToInFlightPackages; + +/** The storage object the coordinator will use. Generally used for testing. */ +@property(nonatomic) GDTCORStorage *storage; + +/** The registrar object the coordinator will use. Generally used for testing. */ +@property(nonatomic) GDTCORRegistrar *registrar; + +/** Forces the backend specified by the target to upload the provided set of events. This should + * only ever happen when the QoS tier of an event requires it. + * + * @param target The target that should force an upload. + */ +- (void)forceUploadForTarget:(GDTCORTarget)target; + +/** Starts the upload timer. */ +- (void)startTimer; + +/** Stops the upload timer from running. */ +- (void)stopTimer; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORUploadPackage_Private.h b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORUploadPackage_Private.h new file mode 100644 index 0000000000..1eb58d4c7a --- /dev/null +++ b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Private/GDTCORUploadPackage_Private.h @@ -0,0 +1,29 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +@class GDTCORStorage; + +@interface GDTCORUploadPackage () + +/** The storage object this upload package will use to resolve event hashes to files. */ +@property(nonatomic) GDTCORStorage *storage; + +/** A handler that will receive callbacks for certain events. */ +@property(nonatomic) id handler; + +@end diff --git a/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GDTCORAssert.h b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GDTCORAssert.h new file mode 100644 index 0000000000..cc57364525 --- /dev/null +++ b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GDTCORAssert.h @@ -0,0 +1,91 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +#import + +/** A block type that could be run instead of normal assertion logging. No return type, no params. + */ +typedef void (^GDTCORAssertionBlock)(void); + +/** Returns the result of executing a soft-linked method present in unit tests that allows a block + * to be run instead of normal assertion logging. This helps ameliorate issues with catching + * exceptions that occur on a dispatch_queue. + * + * @return A block that can be run instead of normal assert printing. + */ +FOUNDATION_EXPORT GDTCORAssertionBlock _Nullable GDTCORAssertionBlockToRunInstead(void); + +#if defined(NS_BLOCK_ASSERTIONS) + +#define GDTCORAssert(condition, ...) \ + do { \ + } while (0); + +#define GDTCORFatalAssert(condition, ...) \ + do { \ + } while (0); + +#else // defined(NS_BLOCK_ASSERTIONS) + +/** Asserts using a console log, unless a block was specified to be run instead. + * + * @param condition The condition you'd expect to be YES. + */ +#define GDTCORAssert(condition, format, ...) \ + do { \ + __PRAGMA_PUSH_NO_EXTRA_ARG_WARNINGS \ + if (__builtin_expect(!(condition), 0)) { \ + GDTCORAssertionBlock assertionBlock = GDTCORAssertionBlockToRunInstead(); \ + if (assertionBlock) { \ + assertionBlock(); \ + } else { \ + NSString *__assert_file__ = [NSString stringWithUTF8String:__FILE__]; \ + __assert_file__ = __assert_file__ ? __assert_file__ : @""; \ + GDTCORLogAssert(NO, __assert_file__, __LINE__, format, ##__VA_ARGS__); \ + __PRAGMA_POP_NO_EXTRA_ARG_WARNINGS \ + } \ + } \ + } while (0); + +/** Asserts by logging to the console and throwing an exception if NS_BLOCK_ASSERTIONS is not + * defined. + * + * @param condition The condition you'd expect to be YES. + */ +#define GDTCORFatalAssert(condition, format, ...) \ + do { \ + __PRAGMA_PUSH_NO_EXTRA_ARG_WARNINGS \ + if (__builtin_expect(!(condition), 0)) { \ + GDTCORAssertionBlock assertionBlock = GDTCORAssertionBlockToRunInstead(); \ + if (assertionBlock) { \ + assertionBlock(); \ + } else { \ + NSString *__assert_file__ = [NSString stringWithUTF8String:__FILE__]; \ + __assert_file__ = __assert_file__ ? __assert_file__ : @""; \ + GDTCORLogAssert(YES, __assert_file__, __LINE__, format, ##__VA_ARGS__); \ + [[NSAssertionHandler currentHandler] handleFailureInMethod:_cmd \ + object:self \ + file:__assert_file__ \ + lineNumber:__LINE__ \ + description:format, ##__VA_ARGS__]; \ + __PRAGMA_POP_NO_EXTRA_ARG_WARNINGS \ + } \ + } \ + } while (0); + +#endif // defined(NS_BLOCK_ASSERTIONS) diff --git a/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GDTCORClock.h b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GDTCORClock.h new file mode 100644 index 0000000000..01de21ae09 --- /dev/null +++ b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GDTCORClock.h @@ -0,0 +1,57 @@ +/* + * Copyright 2018 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** This class manages the device clock and produces snapshots of the current time. */ +@interface GDTCORClock : NSObject + +/** The wallclock time, UTC, in milliseconds. */ +@property(nonatomic, readonly) int64_t timeMillis; + +/** The offset from UTC in seconds. */ +@property(nonatomic, readonly) int64_t timezoneOffsetSeconds; + +/** The kernel boot time when this clock was created. */ +@property(nonatomic, readonly) int64_t kernelBootTime; + +/** The device uptime when this clock was created. */ +@property(nonatomic, readonly) int64_t uptime; + +/** Creates a GDTCORClock object using the current time and offsets. + * + * @return A new GDTCORClock object representing the current time state. + */ ++ (instancetype)snapshot; + +/** Creates a GDTCORClock object representing a time in the future, relative to now. + * + * @param millisInTheFuture The millis in the future from now this clock should represent. + * @return An instance representing a future time. + */ ++ (instancetype)clockSnapshotInTheFuture:(uint64_t)millisInTheFuture; + +/** Compares one clock with another, returns YES if the caller is after the parameter. + * + * @return YES if the calling clock's time is after the given clock's time. + */ +- (BOOL)isAfter:(GDTCORClock *)otherClock; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GDTCORConsoleLogger.h b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GDTCORConsoleLogger.h new file mode 100644 index 0000000000..0a021339bc --- /dev/null +++ b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GDTCORConsoleLogger.h @@ -0,0 +1,114 @@ +/* + * Copyright 2018 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +// Set this to 1 to have the library print out as much as possible about what GDT is doing. +#define GDT_VERBOSE_LOGGING 0 + +/** A list of message codes to print in the logger that help to correspond printed messages with + * code locations. + * + * Prefixes: + * - MCW => MessageCodeWarning + * - MCE => MessageCodeError + */ +typedef NS_ENUM(NSInteger, GDTCORMessageCode) { + + /** For warning messages concerning transportBytes: not being implemented by a data object. */ + GDTCORMCWDataObjectMissingBytesImpl = 1, + + /** For warning messages concerning a failed event upload. */ + GDTCORMCWUploadFailed = 2, + + /** For warning messages concerning a forced event upload. */ + GDTCORMCWForcedUpload = 3, + + /** For warning messages concerning a failed reachability call. */ + GDTCORMCWReachabilityFailed = 4, + + /** For error messages concerning transform: not being implemented by an event transformer. */ + GDTCORMCETransformerDoesntImplementTransform = 1000, + + /** For error messages concerning the creation of a directory failing. */ + GDTCORMCEDirectoryCreationError = 1001, + + /** For error messages concerning the writing of a event file. */ + GDTCORMCEFileWriteError = 1002, + + /** For error messages concerning the lack of a prioritizer for a given backend. */ + GDTCORMCEPrioritizerError = 1003, + + /** For error messages concerning a package delivery API violation. */ + GDTCORMCEDeliverTwice = 1004, + + /** For error messages concerning an error in an implementation of -transportBytes. */ + GDTCORMCETransportBytesError = 1005, + + /** For general purpose error messages in a dependency. */ + GDTCORMCEGeneralError = 1006, + + /** For fatal errors. Please go to https://github.com/firebase/firebase-ios-sdk/issues and open + * an issue if you encounter an error with this code. + */ + GDTCORMCEFatalAssertion = 1007, + + /** For error messages concerning the reading of a event file. */ + GDTCORMCEFileReadError = 1008 +}; + +/** Prints the given code and format string to the console. + * + * @param code The message code describing the nature of the log. + * @param format The format string. + */ +FOUNDATION_EXPORT +void GDTCORLog(GDTCORMessageCode code, NSString *_Nonnull format, ...) NS_FORMAT_FUNCTION(2, 3); + +/** Prints an assert log to the console. + * + * @param wasFatal Send YES if the assertion should be fatal, NO otherwise. + * @param file The file in which the failure occurred. + * @param line The line number of the failure. + * @param format The format string. + */ +FOUNDATION_EXPORT void GDTCORLogAssert(BOOL wasFatal, + NSString *_Nonnull file, + NSInteger line, + NSString *_Nullable format, + ...) NS_FORMAT_FUNCTION(4, 5); + +/** Returns the string that represents some message code. + * + * @param code The code to convert to a string. + * @return The string representing the message code. + */ +FOUNDATION_EXPORT NSString *_Nonnull GDTCORMessageCodeEnumToString(GDTCORMessageCode code); + +// A define to wrap GULLogWarning with slightly more convenient usage. +#define GDTCORLogWarning(MESSAGE_CODE, MESSAGE_FORMAT, ...) \ + GDTCORLog(MESSAGE_CODE, MESSAGE_FORMAT, __VA_ARGS__); + +// A define to wrap GULLogError with slightly more convenient usage and a failing assert. +#define GDTCORLogError(MESSAGE_CODE, MESSAGE_FORMAT, ...) \ + GDTCORLog(MESSAGE_CODE, MESSAGE_FORMAT, __VA_ARGS__); + +// A define to wrap NSLog for verbose console logs only useful for local debugging. +#if GDT_VERBOSE_LOGGING == 1 +#define GDTCORLogDebug(FORMAT, ...) NSLog(@"GDT: " FORMAT, __VA_ARGS__); +#else +#define GDTCORLogDebug(...) +#endif // GDT_VERBOSE_LOGGING == 1 diff --git a/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GDTCOREvent.h b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GDTCOREvent.h new file mode 100644 index 0000000000..54cd80948d --- /dev/null +++ b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GDTCOREvent.h @@ -0,0 +1,88 @@ +/* + * Copyright 2018 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +#import + +@class GDTCORClock; + +NS_ASSUME_NONNULL_BEGIN + +/** The different possible quality of service specifiers. High values indicate high priority. */ +typedef NS_ENUM(NSInteger, GDTCOREventQoS) { + /** The QoS tier wasn't set, and won't ever be sent. */ + GDTCOREventQoSUnknown = 0, + + /** This event is internal telemetry data that should not be sent on its own if possible. */ + GDTCOREventQoSTelemetry = 1, + + /** This event should be sent, but in a batch only roughly once per day. */ + GDTCOREventQoSDaily = 2, + + /** This event should be sent when requested by the uploader. */ + GDTCOREventQosDefault = 3, + + /** This event should be sent immediately along with any other data that can be batched. */ + GDTCOREventQoSFast = 4, + + /** This event should only be uploaded on wifi. */ + GDTCOREventQoSWifiOnly = 5, +}; + +@interface GDTCOREvent : NSObject + +/** The mapping identifier, to allow backends to map the transport bytes to a proto. */ +@property(readonly, nonatomic) NSString *mappingID; + +/** The identifier for the backend this event will eventually be sent to. */ +@property(readonly, nonatomic) NSInteger target; + +/** The data object encapsulated in the transport of your choice, as long as it implements + * the GDTCOREventDataObject protocol. */ +@property(nullable, nonatomic) id dataObject; + +/** The quality of service tier this event belongs to. */ +@property(nonatomic) GDTCOREventQoS qosTier; + +/** The clock snapshot at the time of the event. */ +@property(nonatomic) GDTCORClock *clockSnapshot; + +/** The resulting file URL when [dataObject -transportBytes] has been saved to disk.*/ +@property(nullable, readonly, nonatomic) NSURL *fileURL; + +/** A dictionary provided to aid prioritizers by allowing the passing of arbitrary data. It will be + * retained by a copy in -copy, but not used for -hash. + * + * @note Ensure that classes contained therein implement NSSecureCoding to prevent loss of data. + */ +@property(nullable, nonatomic) NSDictionary *customPrioritizationParams; + +// Please use the designated initializer. +- (instancetype)init NS_UNAVAILABLE; + +/** Initializes an instance using the given mappingID. + * + * @param mappingID The mapping identifier. + * @param target The event's target identifier. + * @return An instance of this class. + */ +- (nullable instancetype)initWithMappingID:(NSString *)mappingID + target:(NSInteger)target NS_DESIGNATED_INITIALIZER; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/FirebaseCore/Firebase/Core/Private/FIRCoreConfigurable.h b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GDTCOREventDataObject.h similarity index 62% rename from Pods/FirebaseCore/Firebase/Core/Private/FIRCoreConfigurable.h rename to Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GDTCOREventDataObject.h index 6c2b077517..34ef62424d 100644 --- a/Pods/FirebaseCore/Firebase/Core/Private/FIRCoreConfigurable.h +++ b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GDTCOREventDataObject.h @@ -14,25 +14,23 @@ * limitations under the License. */ -#ifndef FIRCoreConfigurable_h -#define FIRCoreConfigurable_h - #import -@class FIRApp; - NS_ASSUME_NONNULL_BEGIN -/// Provides an interface to set up an SDK once a `FIRApp` is configured. -NS_SWIFT_NAME(CoreConfigurable) -@protocol FIRCoreConfigurable +/** This protocol defines the common interface that event protos should implement regardless of the + * underlying transport technology (protobuf, nanopb, etc). + */ +@protocol GDTCOREventDataObject -/// Configure the SDK if needed ahead of time. This method is called when the developer calls -/// `FirebaseApp.configure()`. -+ (void)configureWithApp:(FIRApp *)app; +@required + +/** Returns the serialized proto bytes of the implementing event proto. + * + * @return the serialized proto bytes of the implementing event proto. + */ +- (NSData *)transportBytes; @end NS_ASSUME_NONNULL_END - -#endif /* FIRCoreConfigurable_h */ diff --git a/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GDTCOREventTransformer.h b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GDTCOREventTransformer.h new file mode 100644 index 0000000000..29f95924fa --- /dev/null +++ b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GDTCOREventTransformer.h @@ -0,0 +1,38 @@ +/* + * Copyright 2018 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +@class GDTCOREvent; + +NS_ASSUME_NONNULL_BEGIN + +/** Defines the API that event transformers must adopt. */ +@protocol GDTCOREventTransformer + +@required + +/** Transforms an event by applying some logic to it. Events returned can be nil, for example, in + * instances where the event should be sampled. + * + * @param event The event to transform. + * @return A transformed event, or nil if the transformation dropped the event. + */ +- (nullable GDTCOREvent *)transform:(GDTCOREvent *)event; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GDTCORLifecycle.h b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GDTCORLifecycle.h new file mode 100644 index 0000000000..4d61a21312 --- /dev/null +++ b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GDTCORLifecycle.h @@ -0,0 +1,63 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +#import + +@class GDTCOREvent; + +NS_ASSUME_NONNULL_BEGIN + +/** A protocol defining the lifecycle events objects in the library must respond to immediately. */ +@protocol GDTCORLifecycleProtocol + +@optional + +/** Indicates an imminent app termination in the rare occurrence when -applicationWillTerminate: has + * been called. + * + * @param app The GDTCORApplication instance. + */ +- (void)appWillTerminate:(GDTCORApplication *)app; + +/** Indicates that the app is moving to background and eventual suspension or the current UIScene is + * deactivating. + * + * @param app The GDTCORApplication instance. + */ +- (void)appWillBackground:(GDTCORApplication *)app; + +/** Indicates that the app is resuming operation or a UIScene is activating. + * + * @param app The GDTCORApplication instance. + */ +- (void)appWillForeground:(GDTCORApplication *)app; + +@end + +/** This class manages the library's response to app lifecycle events. + * + * When backgrounding, the library doesn't stop processing events, it's just that several background + * tasks will end up being created for every event that's sent, and the stateful objects of the + * library (GDTCORStorage and GDTCORUploadCoordinator singletons) will deserialize themselves from + * and to disk before and after every operation, respectively. + */ +@interface GDTCORLifecycle : NSObject + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GDTCORPlatform.h b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GDTCORPlatform.h new file mode 100644 index 0000000000..f44f39f765 --- /dev/null +++ b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GDTCORPlatform.h @@ -0,0 +1,168 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +#if !TARGET_OS_WATCH +#import +#endif +#if TARGET_OS_IOS || TARGET_OS_TV +#import +#elif TARGET_OS_OSX +#import +#endif // TARGET_OS_IOS || TARGET_OS_TV + +#if TARGET_OS_IOS +#import +#endif + +NS_ASSUME_NONNULL_BEGIN + +/** The GoogleDataTransport library version. */ +FOUNDATION_EXPORT NSString *const kGDTCORVersion; + +/** A notification sent out if the app is backgrounding. */ +FOUNDATION_EXPORT NSString *const kGDTCORApplicationDidEnterBackgroundNotification; + +/** A notification sent out if the app is foregrounding. */ +FOUNDATION_EXPORT NSString *const kGDTCORApplicationWillEnterForegroundNotification; + +/** A notification sent out if the app is terminating. */ +FOUNDATION_EXPORT NSString *const kGDTCORApplicationWillTerminateNotification; + +/** The different possible network connection type. */ +typedef NS_ENUM(NSInteger, GDTCORNetworkType) { + GDTCORNetworkTypeUNKNOWN = 0, + GDTCORNetworkTypeWIFI = 1, + GDTCORNetworkTypeMobile = 2, +}; + +/** The different possible network connection mobile subtype. */ +typedef NS_ENUM(NSInteger, GDTCORNetworkMobileSubtype) { + GDTCORNetworkMobileSubtypeUNKNOWN = 0, + GDTCORNetworkMobileSubtypeGPRS = 1, + GDTCORNetworkMobileSubtypeEdge = 2, + GDTCORNetworkMobileSubtypeWCDMA = 3, + GDTCORNetworkMobileSubtypeHSDPA = 4, + GDTCORNetworkMobileSubtypeHSUPA = 5, + GDTCORNetworkMobileSubtypeCDMA1x = 6, + GDTCORNetworkMobileSubtypeCDMAEVDORev0 = 7, + GDTCORNetworkMobileSubtypeCDMAEVDORevA = 8, + GDTCORNetworkMobileSubtypeCDMAEVDORevB = 9, + GDTCORNetworkMobileSubtypeHRPD = 10, + GDTCORNetworkMobileSubtypeLTE = 11, +}; + +/** Returns a URL to the root directory under which all GDT-associated data must be saved. + * + * @return A URL to the root directory under which all GDT-associated data must be saved. + */ +NSURL *GDTCORRootDirectory(void); + +#if !TARGET_OS_WATCH +/** Compares flags with the WWAN reachability flag, if available, and returns YES if present. + * + * @param flags The set of reachability flags. + * @return YES if the WWAN flag is set, NO otherwise. + */ +BOOL GDTCORReachabilityFlagsContainWWAN(SCNetworkReachabilityFlags flags); +#endif + +/** Generates an enum message GDTCORNetworkType representing network connection type. + * + * @return A GDTCORNetworkType representing network connection type. + */ +GDTCORNetworkType GDTCORNetworkTypeMessage(void); + +/** Generates an enum message GDTCORNetworkMobileSubtype representing network connection mobile + * subtype. + * + * @return A GDTCORNetworkMobileSubtype representing network connection mobile subtype. + */ +GDTCORNetworkMobileSubtype GDTCORNetworkMobileSubTypeMessage(void); + +/** Writes the given object to the given fileURL and populates the given error if it fails. + * + * @param obj The object to encode. + * @param filePath The path to write the object to. Can be nil if you just need the data. + * @param error The error to populate if something goes wrong. + * @return The data of the archive. If error is nil, it's been written to disk. + */ +NSData *_Nullable GDTCOREncodeArchive(id obj, + NSString *_Nullable filePath, + NSError *_Nullable *error); + +/** Decodes an object of the given class from the given archive path or data and populates the given + * error if it fails. + * + * @param archiveClass The class of the archive's root object. + * @param archivePath The path to the archived data. Don't use with the archiveData param. + * @param archiveData The data to decode. Don't use with the archivePath param. + * @param error The error to populate if something goes wrong. + */ +id _Nullable GDTCORDecodeArchive(Class archiveClass, + NSString *_Nullable archivePath, + NSData *_Nullable archiveData, + NSError *_Nullable *error); + +/** A typedef identify background identifiers. */ +typedef volatile NSUInteger GDTCORBackgroundIdentifier; + +/** A background task's invalid sentinel value. */ +FOUNDATION_EXPORT const GDTCORBackgroundIdentifier GDTCORBackgroundIdentifierInvalid; + +#if TARGET_OS_IOS || TARGET_OS_TV +/** A protocol that wraps UIApplicationDelegate or NSObject protocol, depending on the platform. */ +@protocol GDTCORApplicationDelegate +#elif TARGET_OS_OSX +@protocol GDTCORApplicationDelegate +#else +@protocol GDTCORApplicationDelegate +#endif // TARGET_OS_IOS || TARGET_OS_TV + +@end + +/** A cross-platform application class. */ +@interface GDTCORApplication : NSObject + +/** Flag to determine if the application is running in the background. */ +@property(atomic, readonly) BOOL isRunningInBackground; + +/** Creates and/or returns the shared application instance. + * + * @return The shared application instance. + */ ++ (nullable GDTCORApplication *)sharedApplication; + +/** Creates a background task with the returned identifier if on a suitable platform. + * + * @name name The name of the task, useful for debugging which background tasks are running. + * @param handler The handler block that is called if the background task expires. + * @return An identifier for the background task, or GDTCORBackgroundIdentifierInvalid if one + * couldn't be created. + */ +- (GDTCORBackgroundIdentifier)beginBackgroundTaskWithName:(NSString *)name + expirationHandler:(void (^__nullable)(void))handler; + +/** Ends the background task if the identifier is valid. + * + * @param bgID The background task to end. + */ +- (void)endBackgroundTask:(GDTCORBackgroundIdentifier)bgID; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GDTCORPrioritizer.h b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GDTCORPrioritizer.h new file mode 100644 index 0000000000..d1f675494d --- /dev/null +++ b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GDTCORPrioritizer.h @@ -0,0 +1,79 @@ +/* + * Copyright 2018 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +#import +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** Options that define a set of upload conditions. This is used to help minimize end user data + * consumption impact. + */ +typedef NS_OPTIONS(NSInteger, GDTCORUploadConditions) { + + /** An upload shouldn't be attempted, because there's no network. */ + GDTCORUploadConditionNoNetwork = 1 << 0, + + /** An upload would likely use mobile data. */ + GDTCORUploadConditionMobileData = 1 << 1, + + /** An upload would likely use wifi data. */ + GDTCORUploadConditionWifiData = 1 << 2, + + /** An upload uses some sort of network connection, but it's unclear which. */ + GDTCORUploadConditionUnclearConnection = 1 << 3, + + /** A high priority event has occurred. */ + GDTCORUploadConditionHighPriority = 1 << 4, +}; + +/** This protocol defines the common interface of event prioritization. Prioritizers are + * stateful objects that prioritize events upon insertion into storage and remain prepared to return + * a set of filenames to the storage system. + */ +@protocol GDTCORPrioritizer + +@required + +/** Accepts an event and uses the event metadata to make choices on how to prioritize the event. + * This method exists as a way to help prioritize which events should be sent, which is dependent on + * the request proto structure of your backend. + * + * @param event The event to prioritize. + */ +- (void)prioritizeEvent:(GDTCOREvent *)event; + +/** Returns a set of events to upload given a set of conditions. + * + * @param target The target to create an upload package for. + * @param conditions A bit mask specifying the current upload conditions. + * @return An object to be used by the uploader to determine file URLs to upload with respect to the + * current conditions. + */ +- (GDTCORUploadPackage *)uploadPackageWithTarget:(GDTCORTarget)target + conditions:(GDTCORUploadConditions)conditions; + +@optional + +/** Saves the state of the prioritizer. */ +- (void)saveState; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GDTCORReachability.h b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GDTCORReachability.h new file mode 100644 index 0000000000..7879b5983d --- /dev/null +++ b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GDTCORReachability.h @@ -0,0 +1,34 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +#if !TARGET_OS_WATCH +#import +#endif + +NS_ASSUME_NONNULL_BEGIN + +/** This class helps determine upload conditions by determining connectivity. */ +@interface GDTCORReachability : NSObject +#if !TARGET_OS_WATCH +/** The current set flags indicating network conditions */ ++ (SCNetworkReachabilityFlags)currentFlags; +#endif + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GDTCORRegistrar.h b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GDTCORRegistrar.h new file mode 100644 index 0000000000..0a8fbb0a91 --- /dev/null +++ b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GDTCORRegistrar.h @@ -0,0 +1,50 @@ +/* + * Copyright 2018 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +#import +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** Manages the registration of targets with the transport SDK. */ +@interface GDTCORRegistrar : NSObject + +/** Creates and/or returns the singleton instance. + * + * @return The singleton instance of this class. + */ ++ (instancetype)sharedInstance; + +/** Registers a backend implementation with the GoogleDataTransport infrastructure. + * + * @param backend The backend object to register. + * @param target The target this backend object will be responsible for. + */ +- (void)registerUploader:(id)backend target:(GDTCORTarget)target; + +/** Registers a event prioritizer implementation with the GoogleDataTransport infrastructure. + * + * @param prioritizer The prioritizer object to register. + * @param target The target this prioritizer object will be responsible for. + */ +- (void)registerPrioritizer:(id)prioritizer target:(GDTCORTarget)target; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GDTCORTargets.h b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GDTCORTargets.h new file mode 100644 index 0000000000..5db8852e72 --- /dev/null +++ b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GDTCORTargets.h @@ -0,0 +1,37 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +/** The list of targets supported by the shared transport infrastructure. If adding a new target, + * please use the previous value +1. + */ +typedef NS_ENUM(NSInteger, GDTCORTarget) { + + /** A target only used in testing. */ + kGDTCORTargetTest = 999, + + /** The CCT target. */ + kGDTCORTargetCCT = 1000, + + /** The FLL target. */ + kGDTCORTargetFLL = 1001, + + /** The CSH target. The CSH target is a special-purpose backend. Please do not use it without + * permission. + */ + kGDTCORTargetCSH = 1002 +}; diff --git a/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GDTCORTransport.h b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GDTCORTransport.h new file mode 100644 index 0000000000..445ff72858 --- /dev/null +++ b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GDTCORTransport.h @@ -0,0 +1,91 @@ +/* + * Copyright 2018 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +#import + +@class GDTCOREvent; + +NS_ASSUME_NONNULL_BEGIN + +@interface GDTCORTransport : NSObject + +// Please use the designated initializer. +- (instancetype)init NS_UNAVAILABLE; + +/** Initializes a new transport that will send events to the given target backend. + * + * @param mappingID The mapping identifier used by the backend to map the data object transport + * bytes to a proto. + * @param transformers A list of transformers to be applied to events that are sent. + * @param target The target backend of this transport. + * @return A transport that will send events. + */ +- (nullable instancetype)initWithMappingID:(NSString *)mappingID + transformers: + (nullable NSArray> *)transformers + target:(NSInteger)target NS_DESIGNATED_INITIALIZER; + +/** Copies and sends an internal telemetry event. Events sent using this API are lower in priority, + * and sometimes won't be sent on their own. + * + * @note This will convert the event's data object to data and release the original event. + * + * @param event The event to send. + * @param completion A block that will be called when the event has been written or dropped. + */ +- (void)sendTelemetryEvent:(GDTCOREvent *)event + onComplete:(void (^_Nullable)(BOOL wasWritten, NSError *_Nullable error))completion; + +/** Copies and sends an internal telemetry event. Events sent using this API are lower in priority, + * and sometimes won't be sent on their own. + * + * @note This will convert the event's data object to data and release the original event. + * + * @param event The event to send. + */ +- (void)sendTelemetryEvent:(GDTCOREvent *)event; + +/** Copies and sends an SDK service data event. Events send using this API are higher in priority, + * and will cause a network request at some point in the relative near future. + * + * @note This will convert the event's data object to data and release the original event. + * + * @param event The event to send. + * @param completion A block that will be called when the event has been written or dropped. + */ +- (void)sendDataEvent:(GDTCOREvent *)event + onComplete:(void (^_Nullable)(BOOL wasWritten, NSError *_Nullable error))completion; + +/** Copies and sends an SDK service data event. Events send using this API are higher in priority, + * and will cause a network request at some point in the relative near future. + * + * @note This will convert the event's data object to data and release the original event. + * + * @param event The event to send. + */ +- (void)sendDataEvent:(GDTCOREvent *)event; + +/** Creates an event for use by this transport. + * + * @return An event that is suited for use by this transport. + */ +- (GDTCOREvent *)eventForTransport; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GDTCORUploadPackage.h b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GDTCORUploadPackage.h new file mode 100644 index 0000000000..906e8f7172 --- /dev/null +++ b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GDTCORUploadPackage.h @@ -0,0 +1,79 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import +#import + +@class GDTCORClock; +@class GDTCOREvent; +@class GDTCORUploadPackage; + +/** A protocol that allows a handler to respond to package lifecycle events. */ +@protocol GDTCORUploadPackageProtocol + +@optional + +/** Indicates that the package has expired. + * + * @note Package expiration will only be checked every 5 seconds. + * + * @param package The package that has expired. + */ +- (void)packageExpired:(GDTCORUploadPackage *)package; + +/** Indicates that the package was successfully delivered. + * + * @param package The package that was delivered. + */ +- (void)packageDelivered:(GDTCORUploadPackage *)package successful:(BOOL)successful; + +@end + +/** This class is a container that's handed off to uploaders. */ +@interface GDTCORUploadPackage : NSObject + +/** The set of stored events in this upload package. */ +@property(nonatomic) NSSet *events; + +/** The expiration time. If [[GDTCORClock snapshot] isAfter:deliverByTime] this package has expired. + * + * @note By default, the expiration time will be 3 minutes from creation. + */ +@property(nonatomic) GDTCORClock *deliverByTime; + +/** The target of this package. */ +@property(nonatomic, readonly) GDTCORTarget target; + +/** Initializes a package instance. + * + * @param target The target/destination of this package. + * @return An instance of this class. + */ +- (instancetype)initWithTarget:(GDTCORTarget)target NS_DESIGNATED_INITIALIZER; + +// Please use the designated initializer. +- (instancetype)init NS_UNAVAILABLE; + +/** Completes delivery of the package. + * + * @note This *needs* to be called by an uploader for the package to not expire. + */ +- (void)completeDelivery; + +/** Sends the package back, indicating that delivery should be attempted again in the future. */ +- (void)retryDeliveryInTheFuture; + +@end diff --git a/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GDTCORUploader.h b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GDTCORUploader.h new file mode 100644 index 0000000000..cadee4789c --- /dev/null +++ b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GDTCORUploader.h @@ -0,0 +1,48 @@ +/* + * Copyright 2018 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +#import +#import +#import +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** This protocol defines the common interface for uploader implementations. */ +@protocol GDTCORUploader + +@required + +/** Returns YES if the uploader can make an upload attempt, NO otherwise. + * + * @param target The target being checked. + * @param conditions The conditions that the upload attempt is likely to occur under. + * @return YES if the uploader can make an upload attempt, NO otherwise. + */ +- (BOOL)readyToUploadTarget:(GDTCORTarget)target conditions:(GDTCORUploadConditions)conditions; + +/** Uploads events to the backend using this specific backend's chosen format. + * + * @param package The event package to upload. Make sure to call -completeDelivery. + */ +- (void)uploadPackage:(GDTCORUploadPackage *)package; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GoogleDataTransport.h b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GoogleDataTransport.h new file mode 100644 index 0000000000..a02451addc --- /dev/null +++ b/Pods/GoogleDataTransport/GoogleDataTransport/GDTCORLibrary/Public/GoogleDataTransport.h @@ -0,0 +1,28 @@ +/* + * Copyright 2018 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "GDTCORClock.h" +#import "GDTCORConsoleLogger.h" +#import "GDTCOREvent.h" +#import "GDTCOREventDataObject.h" +#import "GDTCOREventTransformer.h" +#import "GDTCORLifecycle.h" +#import "GDTCORPrioritizer.h" +#import "GDTCORRegistrar.h" +#import "GDTCORTargets.h" +#import "GDTCORTransport.h" +#import "GDTCORUploadPackage.h" +#import "GDTCORUploader.h" diff --git a/Pods/GoogleDataTransport/LICENSE b/Pods/GoogleDataTransport/LICENSE new file mode 100644 index 0000000000..d645695673 --- /dev/null +++ b/Pods/GoogleDataTransport/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/Pods/GoogleDataTransport/README.md b/Pods/GoogleDataTransport/README.md new file mode 100644 index 0000000000..23d66e8586 --- /dev/null +++ b/Pods/GoogleDataTransport/README.md @@ -0,0 +1,270 @@ +# Firebase iOS Open Source Development + [![Actions Status][gh-core-badge]][gh-actions] + [![Actions Status][gh-dynamiclinks-badge]][gh-actions] + [![Actions Status][gh-datatransport-badge]][gh-actions] + [![Actions Status][gh-storage-badge]][gh-actions] + [![Actions Status][gh-zip-badge]][gh-actions] + [![Travis](https://travis-ci.org/firebase/firebase-ios-sdk.svg?branch=master)](https://travis-ci.org/firebase/firebase-ios-sdk) + +This repository contains all Firebase iOS SDK source except FirebaseAnalytics, +FirebasePerformance, and FirebaseML. + +The repository also includes GoogleUtilities source. The +[GoogleUtilities](GoogleUtilities/README.md) pod is +a set of utilities used by Firebase and other Google products. + +Firebase is an app development platform with tools to help you build, grow and +monetize your app. More information about Firebase can be found at +[https://firebase.google.com](https://firebase.google.com). + +## Installation + +See the three subsections for details about three different installation methods. +1. [Standard pod install](README.md#standard-pod-install) +1. [Installing from the GitHub repo](README.md#installing-from-github) +1. [Experimental Carthage](README.md#carthage-ios-only) + +### Standard pod install + +Go to +[https://firebase.google.com/docs/ios/setup](https://firebase.google.com/docs/ios/setup). + +### Installing from GitHub + +For releases starting with 5.0.0, the source for each release is also deployed +to CocoaPods master and available via standard +[CocoaPods Podfile syntax](https://guides.cocoapods.org/syntax/podfile.html#pod). + +These instructions can be used to access the Firebase repo at other branches, +tags, or commits. + +#### Background + +See +[the Podfile Syntax Reference](https://guides.cocoapods.org/syntax/podfile.html#pod) +for instructions and options about overriding pod source locations. + +#### Accessing Firebase Source Snapshots + +All of the official releases are tagged in this repo and available via CocoaPods. To access a local +source snapshot or unreleased branch, use Podfile directives like the following: + +To access FirebaseFirestore via a branch: +``` +pod 'FirebaseCore', :git => 'https://github.com/firebase/firebase-ios-sdk.git', :branch => 'master' +pod 'FirebaseFirestore', :git => 'https://github.com/firebase/firebase-ios-sdk.git', :branch => 'master' +``` + +To access FirebaseMessaging via a checked out version of the firebase-ios-sdk repo do: + +``` +pod 'FirebaseCore', :path => '/path/to/firebase-ios-sdk' +pod 'FirebaseMessaging', :path => '/path/to/firebase-ios-sdk' +``` + +### Carthage (iOS only) + +Instructions for the experimental Carthage distribution are at +[Carthage](Carthage.md). + +### Rome + +Instructions for installing binary frameworks via +[Rome](https://github.com/CocoaPods/Rome) are at [Rome](Rome.md). + +### Using Firebase from a Framework or a library + +[Using Firebase from a Framework or a library](docs/firebase_in_libraries.md) + +## Development + +To develop Firebase software in this repository, ensure that you have at least +the following software: + + * Xcode 10.1 (or later) + * CocoaPods 1.7.2 (or later) + * [CocoaPods generate](https://github.com/square/cocoapods-generate) + +For the pod that you want to develop: + +`pod gen Firebase{name here}.podspec --local-sources=./ --auto-open --platforms=ios` + +Note: If the CocoaPods cache is out of date, you may need to run +`pod repo update` before the `pod gen` command. + +Note: Set the `--platforms` option to `macos` or `tvos` to develop/test for +those platforms. Since 10.2, Xcode does not properly handle multi-platform +CocoaPods workspaces. + +Firestore has a self contained Xcode project. See +[Firestore/README.md](Firestore/README.md). + +### Development for Catalyst +* `pod gen {name here}.podspec --local-sources=./ --auto-open --platforms=ios` +* Check the Mac box in the App-iOS Build Settings +* Sign the App in the Settings Signing & Capabilities tab +* Click Pods in the Project Manager +* Add Signing to the iOS host app and unit test targets +* Select the Unit-unit scheme +* Run it to build and test + +### Adding a New Firebase Pod + +See [AddNewPod.md](AddNewPod.md). + +### Code Formatting + +To ensure that the code is formatted consistently, run the script +[./scripts/style.sh](https://github.com/firebase/firebase-ios-sdk/blob/master/scripts/style.sh) +before creating a PR. + +Travis will verify that any code changes are done in a style compliant way. Install +`clang-format` and `swiftformat`. +These commands will get the right versions: + +``` +brew upgrade https://raw.githubusercontent.com/Homebrew/homebrew-core/e3496d9/Formula/clang-format.rb +brew upgrade https://raw.githubusercontent.com/Homebrew/homebrew-core/7963c3d/Formula/swiftformat.rb +``` + +Note: if you already have a newer version of these installed you may need to +`brew switch` to this version. + +To update this section, find the versions of clang-format and swiftformat.rb to +match the versions in the CI failure logs +[here](https://github.com/Homebrew/homebrew-core/tree/master/Formula). + +### Running Unit Tests + +Select a scheme and press Command-u to build a component and run its unit tests. + +#### Viewing Code Coverage + +First, make sure that [xcov](https://github.com/nakiostudio/xcov) is installed with `gem install xcov`. + +After running the `AllUnitTests_iOS` scheme in Xcode, execute +`xcov --workspace Firebase.xcworkspace --scheme AllUnitTests_iOS --output_directory xcov_output` +at Example/ in the terminal. This will aggregate the coverage, and you can run `open xcov_output/index.html` to see the results. + +### Running Sample Apps +In order to run the sample apps and integration tests, you'll need valid +`GoogleService-Info.plist` files for those samples. The Firebase Xcode project contains dummy plist +files without real values, but can be replaced with real plist files. To get your own +`GoogleService-Info.plist` files: + +1. Go to the [Firebase Console](https://console.firebase.google.com/) +2. Create a new Firebase project, if you don't already have one +3. For each sample app you want to test, create a new Firebase app with the sample app's bundle +identifier (e.g. `com.google.Database-Example`) +4. Download the resulting `GoogleService-Info.plist` and replace the appropriate dummy plist file +(e.g. in [Example/Database/App/](Example/Database/App/)); + +Some sample apps like Firebase Messaging ([Example/Messaging/App](Example/Messaging/App)) require +special Apple capabilities, and you will have to change the sample app to use a unique bundle +identifier that you can control in your own Apple Developer account. + +## Specific Component Instructions +See the sections below for any special instructions for those components. + +### Firebase Auth + +If you're doing specific Firebase Auth development, see +[the Auth Sample README](Example/Auth/README.md) for instructions about +building and running the FirebaseAuth pod along with various samples and tests. + +### Firebase Database + +To run the Database Integration tests, make your database authentication rules +[public](https://firebase.google.com/docs/database/security/quickstart). + +### Firebase Storage + +To run the Storage Integration tests, follow the instructions in +[FIRStorageIntegrationTests.m](Example/Storage/Tests/Integration/FIRStorageIntegrationTests.m). + +#### Push Notifications + +Push notifications can only be delivered to specially provisioned App IDs in the developer portal. +In order to actually test receiving push notifications, you will need to: + +1. Change the bundle identifier of the sample app to something you own in your Apple Developer +account, and enable that App ID for push notifications. +2. You'll also need to +[upload your APNs Provider Authentication Key or certificate to the Firebase Console](https://firebase.google.com/docs/cloud-messaging/ios/certs) +at **Project Settings > Cloud Messaging > [Your Firebase App]**. +3. Ensure your iOS device is added to your Apple Developer portal as a test device. + +#### iOS Simulator + +The iOS Simulator cannot register for remote notifications, and will not receive push notifications. +In order to receive push notifications, you'll have to follow the steps above and run the app on a +physical device. + +## Community Supported Efforts + +We've seen an amazing amount of interest and contributions to improve the Firebase SDKs, and we are +very grateful! We'd like to empower as many developers as we can to be able to use Firebase and +participate in the Firebase community. + +### tvOS, macOS, watchOS and Catalyst +Thanks to contributions from the community, many of Firebase SDKs now compile, run unit tests, and work on +tvOS, macOS, watchOS and Catalyst. + +For tvOS, checkout the [Sample](Example/tvOSSample). +For watchOS, currently only Messaging and Storage (and their dependencies) have limited support. Checkout the +[Independent Watch App Sample](Example/watchOSSample). + +Keep in mind that macOS, tvOS, watchOS and Catalyst are not officially supported by Firebase, and this +repository is actively developed primarily for iOS. While we can catch basic unit test issues with +Travis, there may be some changes where the SDK no longer works as expected on macOS, tvOS or watchOS. If you +encounter this, please [file an issue](https://github.com/firebase/firebase-ios-sdk/issues). + +During app setup in the console, you may get to a step that mentions something like "Checking if the app +has communicated with our servers". This relies on Analytics and will not work on macOS/tvOS/watchOS/Catalyst. +**It's safe to ignore the message and continue**, the rest of the SDKs will work as expected. + +To install, add a subset of the following to the Podfile: + +``` +pod 'Firebase/ABTesting' # No watchOS support yet +pod 'Firebase/Auth' # No watchOS support yet +pod 'Firebase/Crashlytics' # No watchOS support yet +pod 'Firebase/Database' # No watchOS support yet +pod 'Firebase/Firestore' # No watchOS support yet +pod 'Firebase/Functions' # No watchOS support yet +pod 'Firebase/Messaging' +pod 'Firebase/RemoteConfig' # No watchOS support yet +pod 'Firebase/Storage' +``` + +#### Additional Catalyst Notes + +* FirebaseAuth and FirebaseMessaging require adding `Keychain Sharing Capability` +to Build Settings. +* FirebaseFirestore requires signing the +[gRPC Resource target](https://github.com/firebase/firebase-ios-sdk/issues/3500#issuecomment-518741681). + +## Roadmap + +See [Roadmap](ROADMAP.md) for more about the Firebase iOS SDK Open Source +plans and directions. + +## Contributing + +See [Contributing](CONTRIBUTING.md) for more information on contributing to the Firebase +iOS SDK. + +## License + +The contents of this repository is licensed under the +[Apache License, version 2.0](http://www.apache.org/licenses/LICENSE-2.0). + +Your use of Firebase is governed by the +[Terms of Service for Firebase Services](https://firebase.google.com/terms/). + +[gh-actions]: https://github.com/firebase/firebase-ios-sdk/actions +[gh-core-badge]: https://github.com/firebase/firebase-ios-sdk/workflows/core/badge.svg +[gh-datatransport-badge]: https://github.com/firebase/firebase-ios-sdk/workflows/datatransport/badge.svg +[gh-dynamiclinks-badge]: https://github.com/firebase/firebase-ios-sdk/workflows/dynamiclinks/badge.svg +[gh-storage-badge]: https://github.com/firebase/firebase-ios-sdk/workflows/storage/badge.svg +[gh-zip-badge]: https://github.com/firebase/firebase-ios-sdk/workflows/zip/badge.svg diff --git a/Pods/GoogleDataTransportCCTSupport/GoogleDataTransportCCTSupport/GDTCCTLibrary/GDTCCTCompressionHelper.m b/Pods/GoogleDataTransportCCTSupport/GoogleDataTransportCCTSupport/GDTCCTLibrary/GDTCCTCompressionHelper.m new file mode 100644 index 0000000000..9e3745f4a3 --- /dev/null +++ b/Pods/GoogleDataTransportCCTSupport/GoogleDataTransportCCTSupport/GDTCCTLibrary/GDTCCTCompressionHelper.m @@ -0,0 +1,95 @@ +/* + * Copyright 2020 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "GDTCCTLibrary/Private/GDTCCTCompressionHelper.h" + +#import + +@implementation GDTCCTCompressionHelper + ++ (nullable NSData *)gzippedData:(NSData *)data { +#if defined(__LP64__) && __LP64__ + // Don't support > 32bit length for 64 bit, see note in header. + if (data.length > UINT_MAX) { + return nil; + } +#endif + + const uint kChunkSize = 1024; + + const void *bytes = [data bytes]; + NSUInteger length = [data length]; + + int level = Z_DEFAULT_COMPRESSION; + if (!bytes || !length) { + return nil; + } + + z_stream strm; + bzero(&strm, sizeof(z_stream)); + + int memLevel = 8; // Default. + int windowBits = 15 + 16; // Enable gzip header instead of zlib header. + + int retCode; + if (deflateInit2(&strm, level, Z_DEFLATED, windowBits, memLevel, Z_DEFAULT_STRATEGY) != Z_OK) { + return nil; + } + + // Hint the size at 1/4 the input size. + NSMutableData *result = [NSMutableData dataWithCapacity:(length / 4)]; + unsigned char output[kChunkSize]; + + // Setup the input. + strm.avail_in = (unsigned int)length; + strm.next_in = (unsigned char *)bytes; + + // Collect the data. + do { + // update what we're passing in + strm.avail_out = kChunkSize; + strm.next_out = output; + retCode = deflate(&strm, Z_FINISH); + if ((retCode != Z_OK) && (retCode != Z_STREAM_END)) { + deflateEnd(&strm); + return nil; + } + // Collect what we got. + unsigned gotBack = kChunkSize - strm.avail_out; + if (gotBack > 0) { + [result appendBytes:output length:gotBack]; + } + + } while (retCode == Z_OK); + + // If the loop exits, it used all input and the stream ended. + NSAssert(strm.avail_in == 0, + @"Should have finished deflating without using all input, %u bytes left", strm.avail_in); + NSAssert(retCode == Z_STREAM_END, + @"thought we finished deflate w/o getting a result of stream end, code %d", retCode); + + // Clean up. + deflateEnd(&strm); + + return result; +} + ++ (BOOL)isGzipped:(NSData *)data { + const UInt8 *bytes = (const UInt8 *)data.bytes; + return (data.length >= 2 && bytes[0] == 0x1f && bytes[1] == 0x8b); +} + +@end diff --git a/Pods/GoogleDataTransportCCTSupport/GoogleDataTransportCCTSupport/GDTCCTLibrary/GDTCCTNanopbHelpers.m b/Pods/GoogleDataTransportCCTSupport/GoogleDataTransportCCTSupport/GDTCCTLibrary/GDTCCTNanopbHelpers.m new file mode 100644 index 0000000000..6c5758a3fb --- /dev/null +++ b/Pods/GoogleDataTransportCCTSupport/GoogleDataTransportCCTSupport/GDTCCTLibrary/GDTCCTNanopbHelpers.m @@ -0,0 +1,271 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "GDTCCTLibrary/Private/GDTCCTNanopbHelpers.h" + +#if TARGET_OS_IOS || TARGET_OS_TV +#import +#elif TARGET_OS_OSX +#import +#endif // TARGET_OS_IOS || TARGET_OS_TV + +#import +#import +#import +#import + +#import +#import +#import + +NSString *const GDTCCTNeedsNetworkConnectionInfo = @"needs_network_connection_info"; + +NSString *const GDTCCTNetworkConnectionInfo = @"network_connection_info"; + +#pragma mark - General purpose encoders + +pb_bytes_array_t *GDTCCTEncodeString(NSString *string) { + NSData *stringBytes = [string dataUsingEncoding:NSUTF8StringEncoding]; + return GDTCCTEncodeData(stringBytes); +} + +pb_bytes_array_t *GDTCCTEncodeData(NSData *data) { + pb_bytes_array_t *pbBytesArray = calloc(1, PB_BYTES_ARRAY_T_ALLOCSIZE(data.length)); + if (pbBytesArray != NULL) { + [data getBytes:pbBytesArray->bytes length:data.length]; + pbBytesArray->size = (pb_size_t)data.length; + } + return pbBytesArray; +} + +#pragma mark - CCT object constructors + +NSData *_Nullable GDTCCTEncodeBatchedLogRequest(gdt_cct_BatchedLogRequest *batchedLogRequest) { + pb_ostream_t sizestream = PB_OSTREAM_SIZING; + // Encode 1 time to determine the size. + if (!pb_encode(&sizestream, gdt_cct_BatchedLogRequest_fields, batchedLogRequest)) { + GDTCORLogError(GDTCORMCEGeneralError, @"Error in nanopb encoding for size: %s", + PB_GET_ERROR(&sizestream)); + } + + // Encode a 2nd time to actually get the bytes from it. + size_t bufferSize = sizestream.bytes_written; + CFMutableDataRef dataRef = CFDataCreateMutable(CFAllocatorGetDefault(), bufferSize); + CFDataSetLength(dataRef, bufferSize); + pb_ostream_t ostream = pb_ostream_from_buffer((void *)CFDataGetBytePtr(dataRef), bufferSize); + if (!pb_encode(&ostream, gdt_cct_BatchedLogRequest_fields, batchedLogRequest)) { + GDTCORLogError(GDTCORMCEGeneralError, @"Error in nanopb encoding for bytes: %s", + PB_GET_ERROR(&ostream)); + } + + return CFBridgingRelease(dataRef); +} + +gdt_cct_BatchedLogRequest GDTCCTConstructBatchedLogRequest( + NSDictionary *> *logMappingIDToLogSet) { + gdt_cct_BatchedLogRequest batchedLogRequest = gdt_cct_BatchedLogRequest_init_default; + NSUInteger numberOfLogRequests = logMappingIDToLogSet.count; + gdt_cct_LogRequest *logRequests = calloc(numberOfLogRequests, sizeof(gdt_cct_LogRequest)); + if (logRequests == NULL) { + return batchedLogRequest; + } + + __block int i = 0; + [logMappingIDToLogSet enumerateKeysAndObjectsUsingBlock:^(NSString *_Nonnull logMappingID, + NSSet *_Nonnull logSet, + BOOL *_Nonnull stop) { + int32_t logSource = [logMappingID intValue]; + gdt_cct_LogRequest logRequest = GDTCCTConstructLogRequest(logSource, logSet); + logRequests[i] = logRequest; + i++; + }]; + + batchedLogRequest.log_request = logRequests; + batchedLogRequest.log_request_count = (pb_size_t)numberOfLogRequests; + return batchedLogRequest; +} + +gdt_cct_LogRequest GDTCCTConstructLogRequest(int32_t logSource, + NSSet *_Nonnull logSet) { + if (logSet.count == 0) { + GDTCORLogError(GDTCORMCEGeneralError, @"%@", + @"An empty event set can't be serialized to proto."); + gdt_cct_LogRequest logRequest = gdt_cct_LogRequest_init_default; + return logRequest; + } + gdt_cct_LogRequest logRequest = gdt_cct_LogRequest_init_default; + logRequest.log_source = logSource; + logRequest.has_log_source = 1; + logRequest.client_info = GDTCCTConstructClientInfo(); + logRequest.has_client_info = 1; + logRequest.log_event = calloc(logSet.count, sizeof(gdt_cct_LogEvent)); + if (logRequest.log_event == NULL) { + return logRequest; + } + int i = 0; + for (GDTCOREvent *log in logSet) { + gdt_cct_LogEvent logEvent = GDTCCTConstructLogEvent(log); + logRequest.log_event[i] = logEvent; + i++; + } + logRequest.log_event_count = (pb_size_t)logSet.count; + + GDTCORClock *currentTime = [GDTCORClock snapshot]; + logRequest.request_time_ms = currentTime.timeMillis; + logRequest.has_request_time_ms = 1; + logRequest.request_uptime_ms = currentTime.uptime; + logRequest.has_request_uptime_ms = 1; + + return logRequest; +} + +gdt_cct_LogEvent GDTCCTConstructLogEvent(GDTCOREvent *event) { + gdt_cct_LogEvent logEvent = gdt_cct_LogEvent_init_default; + logEvent.event_time_ms = event.clockSnapshot.timeMillis; + logEvent.has_event_time_ms = 1; + logEvent.event_uptime_ms = event.clockSnapshot.uptime; + logEvent.has_event_uptime_ms = 1; + logEvent.timezone_offset_seconds = event.clockSnapshot.timezoneOffsetSeconds; + logEvent.has_timezone_offset_seconds = 1; + if (event.customPrioritizationParams[GDTCCTNetworkConnectionInfo]) { + NSData *networkConnectionInfoData = + event.customPrioritizationParams[GDTCCTNetworkConnectionInfo]; + [networkConnectionInfoData getBytes:&logEvent.network_connection_info + length:networkConnectionInfoData.length]; + logEvent.has_network_connection_info = 1; + } + NSError *error; + NSData *extensionBytes; + if (event.fileURL) { + extensionBytes = [NSData dataWithContentsOfURL:event.fileURL options:0 error:&error]; + } else { + GDTCORLogError(GDTCORMCEFileReadError, @"%@", @"An event's fileURL property was nil."); + return logEvent; + } + if (error) { + GDTCORLogError(GDTCORMCEGeneralError, + @"There was an error reading extension bytes from disk: %@", error); + return logEvent; + } + logEvent.source_extension = GDTCCTEncodeData(extensionBytes); // read bytes from the file. + return logEvent; +} + +gdt_cct_ClientInfo GDTCCTConstructClientInfo() { + gdt_cct_ClientInfo clientInfo = gdt_cct_ClientInfo_init_default; + clientInfo.client_type = gdt_cct_ClientInfo_ClientType_IOS_FIREBASE; + clientInfo.has_client_type = 1; +#if TARGET_OS_IOS || TARGET_OS_TV + clientInfo.ios_client_info = GDTCCTConstructiOSClientInfo(); + clientInfo.has_ios_client_info = 1; +#elif TARGET_OS_OSX + // TODO(mikehaney24): Expand the proto to include macOS client info. +#endif + return clientInfo; +} + +gdt_cct_IosClientInfo GDTCCTConstructiOSClientInfo() { + gdt_cct_IosClientInfo iOSClientInfo = gdt_cct_IosClientInfo_init_default; +#if TARGET_OS_IOS || TARGET_OS_TV + UIDevice *device = [UIDevice currentDevice]; + NSBundle *bundle = [NSBundle mainBundle]; + NSLocale *locale = [NSLocale currentLocale]; + iOSClientInfo.os_full_version = GDTCCTEncodeString(device.systemVersion); + NSArray *versionComponents = [device.systemVersion componentsSeparatedByString:@"."]; + iOSClientInfo.os_major_version = GDTCCTEncodeString(versionComponents[0]); + NSString *version = [bundle objectForInfoDictionaryKey:(NSString *)kCFBundleVersionKey]; + if (version) { + iOSClientInfo.application_build = GDTCCTEncodeString(version); + } + NSString *countryCode = [locale objectForKey:NSLocaleCountryCode]; + if (countryCode) { + iOSClientInfo.country = GDTCCTEncodeString([locale objectForKey:NSLocaleCountryCode]); + } + iOSClientInfo.model = GDTCCTEncodeString(device.model); + NSString *languageCode = bundle.preferredLocalizations.firstObject; + iOSClientInfo.language_code = + languageCode ? GDTCCTEncodeString(languageCode) : GDTCCTEncodeString(@"en"); + iOSClientInfo.application_bundle_id = GDTCCTEncodeString(bundle.bundleIdentifier); +#endif + return iOSClientInfo; +} + +NSData *GDTCCTConstructNetworkConnectionInfoData() { + gdt_cct_NetworkConnectionInfo networkConnectionInfo = gdt_cct_NetworkConnectionInfo_init_default; + NSInteger currentNetworkType = GDTCORNetworkTypeMessage(); + if (currentNetworkType) { + networkConnectionInfo.has_network_type = 1; + if (currentNetworkType == GDTCORNetworkTypeMobile) { + networkConnectionInfo.network_type = gdt_cct_NetworkConnectionInfo_NetworkType_MOBILE; + networkConnectionInfo.mobile_subtype = GDTCCTNetworkConnectionInfoNetworkMobileSubtype(); + if (networkConnectionInfo.mobile_subtype != + gdt_cct_NetworkConnectionInfo_MobileSubtype_UNKNOWN_MOBILE_SUBTYPE) { + networkConnectionInfo.has_mobile_subtype = 1; + } + } else { + networkConnectionInfo.network_type = gdt_cct_NetworkConnectionInfo_NetworkType_WIFI; + } + } + NSData *networkConnectionInfoData = [NSData dataWithBytes:&networkConnectionInfo + length:sizeof(networkConnectionInfo)]; + return networkConnectionInfoData; +} + +gdt_cct_NetworkConnectionInfo_MobileSubtype GDTCCTNetworkConnectionInfoNetworkMobileSubtype() { + NSNumber *networkMobileSubtypeMessage = @(GDTCORNetworkMobileSubTypeMessage()); + if (!networkMobileSubtypeMessage.intValue) { + return gdt_cct_NetworkConnectionInfo_MobileSubtype_UNKNOWN_MOBILE_SUBTYPE; + } + static NSDictionary *MessageToNetworkSubTypeMessage; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + MessageToNetworkSubTypeMessage = @{ + @(GDTCORNetworkMobileSubtypeGPRS) : @(gdt_cct_NetworkConnectionInfo_MobileSubtype_GPRS), + @(GDTCORNetworkMobileSubtypeEdge) : @(gdt_cct_NetworkConnectionInfo_MobileSubtype_EDGE), + @(GDTCORNetworkMobileSubtypeWCDMA) : + @(gdt_cct_NetworkConnectionInfo_MobileSubtype_UNKNOWN_MOBILE_SUBTYPE), + @(GDTCORNetworkMobileSubtypeHSDPA) : @(gdt_cct_NetworkConnectionInfo_MobileSubtype_HSDPA), + @(GDTCORNetworkMobileSubtypeHSUPA) : @(gdt_cct_NetworkConnectionInfo_MobileSubtype_HSUPA), + @(GDTCORNetworkMobileSubtypeCDMA1x) : @(gdt_cct_NetworkConnectionInfo_MobileSubtype_CDMA), + @(GDTCORNetworkMobileSubtypeCDMAEVDORev0) : + @(gdt_cct_NetworkConnectionInfo_MobileSubtype_EVDO_0), + @(GDTCORNetworkMobileSubtypeCDMAEVDORevA) : + @(gdt_cct_NetworkConnectionInfo_MobileSubtype_EVDO_A), + @(GDTCORNetworkMobileSubtypeCDMAEVDORevB) : + @(gdt_cct_NetworkConnectionInfo_MobileSubtype_EVDO_B), + @(GDTCORNetworkMobileSubtypeHRPD) : @(gdt_cct_NetworkConnectionInfo_MobileSubtype_EHRPD), + @(GDTCORNetworkMobileSubtypeLTE) : @(gdt_cct_NetworkConnectionInfo_MobileSubtype_LTE), + }; + }); + NSNumber *networkMobileSubtype = MessageToNetworkSubTypeMessage[networkMobileSubtypeMessage]; + return networkMobileSubtype.intValue; +} + +#pragma mark - CCT Object decoders + +gdt_cct_LogResponse GDTCCTDecodeLogResponse(NSData *data, NSError **error) { + gdt_cct_LogResponse response = gdt_cct_LogResponse_init_default; + pb_istream_t istream = pb_istream_from_buffer([data bytes], [data length]); + if (!pb_decode(&istream, gdt_cct_LogResponse_fields, &response)) { + NSString *nanopb_error = [NSString stringWithFormat:@"%s", PB_GET_ERROR(&istream)]; + NSDictionary *userInfo = @{@"nanopb error:" : nanopb_error}; + if (error != NULL) { + *error = [NSError errorWithDomain:NSURLErrorDomain code:-1 userInfo:userInfo]; + } + response = (gdt_cct_LogResponse)gdt_cct_LogResponse_init_default; + } + return response; +} diff --git a/Pods/GoogleDataTransportCCTSupport/GoogleDataTransportCCTSupport/GDTCCTLibrary/GDTCCTPrioritizer.m b/Pods/GoogleDataTransportCCTSupport/GoogleDataTransportCCTSupport/GDTCCTLibrary/GDTCCTPrioritizer.m new file mode 100644 index 0000000000..77b74b6918 --- /dev/null +++ b/Pods/GoogleDataTransportCCTSupport/GoogleDataTransportCCTSupport/GDTCCTLibrary/GDTCCTPrioritizer.m @@ -0,0 +1,390 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "GDTCCTLibrary/Private/GDTCCTPrioritizer.h" + +#import +#import +#import +#import +#import + +#import "GDTCCTLibrary/Private/GDTCCTNanopbHelpers.h" + +const static int64_t kMillisPerDay = 8.64e+7; + +/** Creates and/or returns a singleton NSString that is the NSCoding file location. + * + * @return The NSCoding file path. + */ +static NSString *ArchivePath() { + static NSString *archivePath; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + archivePath = [GDTCORRootDirectory() URLByAppendingPathComponent:@"GDTCCTPrioritizer"].path; + }); + return archivePath; +} + +@implementation GDTCCTPrioritizer + ++ (void)load { + GDTCCTPrioritizer *prioritizer = [GDTCCTPrioritizer sharedInstance]; + [[GDTCORRegistrar sharedInstance] registerPrioritizer:prioritizer target:kGDTCORTargetCCT]; + [[GDTCORRegistrar sharedInstance] registerPrioritizer:prioritizer target:kGDTCORTargetFLL]; + [[GDTCORRegistrar sharedInstance] registerPrioritizer:prioritizer target:kGDTCORTargetCSH]; +} + ++ (BOOL)supportsSecureCoding { + return YES; +} + ++ (instancetype)sharedInstance { + static GDTCCTPrioritizer *sharedInstance; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + sharedInstance = [[GDTCCTPrioritizer alloc] init]; + }); + return sharedInstance; +} + +- (instancetype)init { + self = [super init]; + if (self) { + _queue = dispatch_queue_create("com.google.GDTCCTPrioritizer", DISPATCH_QUEUE_SERIAL); + _CCTEvents = [[NSMutableSet alloc] init]; + _FLLEvents = [[NSMutableSet alloc] init]; + _CSHEvents = [[NSMutableSet alloc] init]; + } + return self; +} + +#pragma mark - GDTCORPrioritizer Protocol + +- (void)prioritizeEvent:(GDTCOREvent *)event { + if (event.customPrioritizationParams[GDTCCTNeedsNetworkConnectionInfo]) { + NSData *networkInfoData = GDTCCTConstructNetworkConnectionInfoData(); + if (networkInfoData) { + event.customPrioritizationParams = @{GDTCCTNetworkConnectionInfo : networkInfoData}; + } + } + dispatch_async(_queue, ^{ + switch (event.target) { + case kGDTCORTargetCCT: + [self.CCTEvents addObject:event]; + break; + + case kGDTCORTargetFLL: + [self.FLLEvents addObject:event]; + break; + + case kGDTCORTargetCSH: + [self.CSHEvents addObject:event]; + break; + + default: + GDTCORLogDebug("GDTCCTPrioritizer doesn't support target %ld", (long)event.target); + break; + } + }); +} + +- (GDTCORUploadPackage *)uploadPackageWithTarget:(GDTCORTarget)target + conditions:(GDTCORUploadConditions)conditions { + GDTCORUploadPackage *package = [[GDTCORUploadPackage alloc] initWithTarget:target]; + dispatch_sync(_queue, ^{ + NSSet *eventsThatWillBeSent = [self eventsForTarget:target + conditions:conditions]; + package.events = eventsThatWillBeSent; + }); + GDTCORLogDebug("CCT: %lu events are in the upload package", (unsigned long)package.events.count); + return package; +} + +#pragma mark - Private helper methods + +/** The different possible quality of service specifiers. High values indicate high priority. */ +typedef NS_ENUM(NSInteger, GDTCCTQoSTier) { + /** The QoS tier wasn't set, and won't ever be sent. */ + GDTCCTQoSDefault = 0, + + /** This event is internal telemetry data that should not be sent on its own if possible. */ + GDTCCTQoSTelemetry = 1, + + /** This event should be sent, but in a batch only roughly once per day. */ + GDTCCTQoSDaily = 2, + + /** This event should only be uploaded on wifi. */ + GDTCCTQoSWifiOnly = 5, +}; + +- (void)saveState { + dispatch_sync(_queue, ^{ + NSError *error; + GDTCOREncodeArchive(self, ArchivePath(), &error); + if (error) { + GDTCORLogDebug(@"Serializing GDTCCTPrioritizer to an archive failed: %@", error); + } + }); + GDTCORLogDebug(@"GDTCCTPrioritizer saved state to %@ as requested by GDT.", ArchivePath()); +} + +/** Converts a GDTCOREventQoS to a GDTCCTQoS tier. + * + * @param qosTier The GDTCOREventQoS value. + * @return A static NSNumber that represents the CCT QoS tier. + */ +FOUNDATION_STATIC_INLINE +NSNumber *GDTCCTQosTierFromGDTCOREventQosTier(GDTCOREventQoS qosTier) { + switch (qosTier) { + case GDTCOREventQoSWifiOnly: + return @(GDTCCTQoSWifiOnly); + break; + + case GDTCOREventQoSTelemetry: + // falls through. + case GDTCOREventQoSDaily: + return @(GDTCCTQoSDaily); + break; + + default: + return @(GDTCCTQoSDefault); + break; + } +} + +/** Constructs a set of events for upload to CCT, FLL, or CSH backends. These backends are + * request-proto and batching compatible, so they construct event batches the same way. + * + * @param conditions The set of conditions the upload package should be made under. + * @param target The target backend. + * @return A set of events for the target. + */ +- (NSSet *)eventsForTarget:(GDTCORTarget)target + conditions:(GDTCORUploadConditions)conditions { + GDTCORClock __strong **timeOfLastDailyUpload = NULL; + NSSet *eventsToFilter; + switch (target) { + case kGDTCORTargetCCT: + eventsToFilter = self.CCTEvents; + timeOfLastDailyUpload = &self->_CCTTimeOfLastDailyUpload; + break; + + case kGDTCORTargetFLL: + eventsToFilter = self.FLLEvents; + timeOfLastDailyUpload = &self->_FLLOfLastDailyUpload; + break; + + case kGDTCORTargetCSH: + // This backend doesn't batch and uploads all events as soon as possible without respect to + // any upload condition. + return self.CSHEvents; + break; + + default: + // Return an empty set. + return [[NSSet alloc] init]; + break; + } + + NSMutableSet *eventsThatWillBeSent = [[NSMutableSet alloc] init]; + // A high priority event effectively flushes all events to be sent. + if ((conditions & GDTCORUploadConditionHighPriority) == GDTCORUploadConditionHighPriority) { + GDTCORLogDebug("%@", @"CCT: A high priority event is flushing all events."); + return eventsToFilter; + } + + // If on wifi, upload logs that are ok to send on wifi. + if ((conditions & GDTCORUploadConditionWifiData) == GDTCORUploadConditionWifiData) { + [eventsThatWillBeSent unionSet:[self logEventsOkToSendOnWifi:eventsToFilter]]; + GDTCORLogDebug("%@", @"CCT: events ok to send on wifi are being added to the upload package"); + } else { + [eventsThatWillBeSent unionSet:[self logEventsOkToSendOnMobileData:eventsToFilter]]; + GDTCORLogDebug("%@", @"CCT: events ok to send on mobile are being added to the upload package"); + } + + // If it's been > 24h since the last daily upload, upload logs with the daily QoS. + if (*timeOfLastDailyUpload) { + int64_t millisSinceLastUpload = + [GDTCORClock snapshot].timeMillis - (*timeOfLastDailyUpload).timeMillis; + if (millisSinceLastUpload > kMillisPerDay) { + [eventsThatWillBeSent unionSet:[self logEventsOkToSendDaily:eventsToFilter]]; + GDTCORLogDebug("%@", @"CCT: events ok to send daily are being added to the upload package"); + } + } else { + *timeOfLastDailyUpload = [GDTCORClock snapshot]; + [eventsThatWillBeSent unionSet:[self logEventsOkToSendDaily:eventsToFilter]]; + GDTCORLogDebug("%@", @"CCT: events ok to send daily are being added to the upload package"); + } + return eventsThatWillBeSent; +} + +/** Returns a set of logs that are ok to upload whilst on mobile data. + * + * @note This should be called from a thread safe method. + * @return A set of logs that are ok to upload whilst on mobile data. + */ +- (NSSet *)logEventsOkToSendOnMobileData:(NSSet *)events { + return [events objectsPassingTest:^BOOL(GDTCOREvent *_Nonnull event, BOOL *_Nonnull stop) { + return [GDTCCTQosTierFromGDTCOREventQosTier(event.qosTier) isEqual:@(GDTCCTQoSDefault)]; + }]; +} + +/** Returns a set of logs that are ok to upload whilst on wifi. + * + * @note This should be called from a thread safe method. + * @return A set of logs that are ok to upload whilst on wifi. + */ +- (NSSet *)logEventsOkToSendOnWifi:(NSSet *)events { + return [events objectsPassingTest:^BOOL(GDTCOREvent *_Nonnull event, BOOL *_Nonnull stop) { + NSNumber *qosTier = GDTCCTQosTierFromGDTCOREventQosTier(event.qosTier); + return [qosTier isEqual:@(GDTCCTQoSDefault)] || [qosTier isEqual:@(GDTCCTQoSWifiOnly)] || + [qosTier isEqual:@(GDTCCTQoSDaily)]; + }]; +} + +/** Returns a set of logs that only should have a single upload attempt per day. + * + * @note This should be called from a thread safe method. + * @return A set of logs that are ok to upload only once per day. + */ +- (NSSet *)logEventsOkToSendDaily:(NSSet *)events { + return [events objectsPassingTest:^BOOL(GDTCOREvent *_Nonnull event, BOOL *_Nonnull stop) { + return [GDTCCTQosTierFromGDTCOREventQosTier(event.qosTier) isEqual:@(GDTCCTQoSDaily)]; + }]; +} + +#pragma mark - NSSecureCoding + +/** NSSecureCoding key for the CCTEvents property. */ +static NSString *const GDTCCTUploaderCCTEventsKey = @"GDTCCTUploaderCCTEventsKey"; + +/** NSSecureCoding key for the CCTEvents property. */ +static NSString *const GDTCCTUploaderFLLEventsKey = @"GDTCCTUploaderFLLEventsKey"; + +/** NSSecureCoding key for the CCTEvents property. */ +static NSString *const GDTCCTUploaderCSHEventsKey = @"GDTCCTUploaderCSHEventsKey"; + +- (instancetype)initWithCoder:(NSCoder *)coder { + GDTCCTPrioritizer *sharedInstance = [GDTCCTPrioritizer sharedInstance]; + if (sharedInstance) { + NSSet *classes = [NSSet setWithObjects:[NSMutableSet class], [GDTCOREvent class], nil]; + NSMutableSet *decodedCCTEvents = [coder decodeObjectOfClasses:classes + forKey:GDTCCTUploaderCCTEventsKey]; + if (decodedCCTEvents) { + sharedInstance->_CCTEvents = decodedCCTEvents; + } + NSMutableSet *decodedFLLEvents = [coder decodeObjectOfClasses:classes + forKey:GDTCCTUploaderFLLEventsKey]; + if (decodedFLLEvents) { + sharedInstance->_FLLEvents = decodedFLLEvents; + } + NSMutableSet *decodedCSHEvents = [coder decodeObjectOfClasses:classes + forKey:GDTCCTUploaderCSHEventsKey]; + if (decodedCSHEvents) { + sharedInstance->_CSHEvents = decodedCSHEvents; + } + } + return sharedInstance; +} + +- (void)encodeWithCoder:(NSCoder *)coder { + GDTCCTPrioritizer *sharedInstance = [GDTCCTPrioritizer sharedInstance]; + if (!sharedInstance) { + return; + } + NSMutableSet *CCTEvents = sharedInstance->_CCTEvents; + if (CCTEvents) { + [coder encodeObject:CCTEvents forKey:GDTCCTUploaderCCTEventsKey]; + } + NSMutableSet *FLLEvents = sharedInstance->_FLLEvents; + if (FLLEvents) { + [coder encodeObject:FLLEvents forKey:GDTCCTUploaderFLLEventsKey]; + } + NSMutableSet *CSHEvents = sharedInstance->_CSHEvents; + if (CSHEvents) { + [coder encodeObject:CSHEvents forKey:GDTCCTUploaderCSHEventsKey]; + } +} + +#pragma mark - GDTCORLifecycleProtocol + +- (void)appWillForeground:(GDTCORApplication *)app { + dispatch_async(_queue, ^{ + NSError *error; + GDTCORDecodeArchive([GDTCCTPrioritizer class], ArchivePath(), nil, &error); + if (error) { + GDTCORLogDebug(@"Deserializing GDTCCTPrioritizer from an archive failed: %@", error); + } + }); +} + +- (void)appWillBackground:(GDTCORApplication *)app { + dispatch_async(_queue, ^{ + // Immediately request a background task to run until the end of the current queue of work, and + // cancel it once the work is done. + __block GDTCORBackgroundIdentifier bgID = + [app beginBackgroundTaskWithName:@"GDTStorage" + expirationHandler:^{ + [app endBackgroundTask:bgID]; + bgID = GDTCORBackgroundIdentifierInvalid; + }]; + NSError *error; + GDTCOREncodeArchive(self, ArchivePath(), &error); + if (error) { + GDTCORLogDebug(@"Serializing GDTCCTPrioritizer to an archive failed: %@", error); + } + + // End the background task if it's still valid. + [app endBackgroundTask:bgID]; + bgID = GDTCORBackgroundIdentifierInvalid; + }); +} + +- (void)appWillTerminate:(GDTCORApplication *)application { + dispatch_sync(_queue, ^{ + NSError *error; + GDTCOREncodeArchive(self, ArchivePath(), &error); + if (error) { + GDTCORLogDebug(@"Serializing GDTCCTPrioritizer to an archive failed: %@", error); + } + }); +} + +#pragma mark - GDTCORUploadPackageProtocol + +- (void)packageDelivered:(GDTCORUploadPackage *)package successful:(BOOL)successful { + // If sending the package wasn't successful, we should keep track of these events. + if (!successful) { + return; + } + + dispatch_async(_queue, ^{ + NSSet *events = [package.events copy]; + for (GDTCOREvent *event in events) { + // We don't know what collection the event was contained in, so attempt removal from all. + [self.CCTEvents removeObject:event]; + [self.FLLEvents removeObject:event]; + [self.CSHEvents removeObject:event]; + } + }); +} + +- (void)packageExpired:(GDTCORUploadPackage *)package { + [self packageDelivered:package successful:YES]; +} + +@end diff --git a/Pods/GoogleDataTransportCCTSupport/GoogleDataTransportCCTSupport/GDTCCTLibrary/GDTCCTUploader.m b/Pods/GoogleDataTransportCCTSupport/GoogleDataTransportCCTSupport/GDTCCTLibrary/GDTCCTUploader.m new file mode 100644 index 0000000000..9716e1376f --- /dev/null +++ b/Pods/GoogleDataTransportCCTSupport/GoogleDataTransportCCTSupport/GDTCCTLibrary/GDTCCTUploader.m @@ -0,0 +1,444 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "GDTCCTLibrary/Private/GDTCCTUploader.h" + +#import +#import +#import + +#import +#import +#import + +#import "GDTCCTLibrary/Private/GDTCCTCompressionHelper.h" +#import "GDTCCTLibrary/Private/GDTCCTNanopbHelpers.h" +#import "GDTCCTLibrary/Private/GDTCCTPrioritizer.h" + +#import "GDTCCTLibrary/Protogen/nanopb/cct.nanopb.h" + +#ifdef GDTCCTSUPPORT_VERSION +#define STR(x) STR_EXPAND(x) +#define STR_EXPAND(x) #x +static NSString *const kGDTCCTSupportSDKVersion = @STR(GDTCCTSUPPORT_VERSION); +#else +static NSString *const kGDTCCTSupportSDKVersion = @"UNKNOWN"; +#endif // GDTCCTSUPPORT_VERSION + +#if !NDEBUG +NSNotificationName const GDTCCTUploadCompleteNotification = @"com.GDTCCTUploader.UploadComplete"; +#endif // #if !NDEBUG + +@interface GDTCCTUploader () + +// Redeclared as readwrite. +@property(nullable, nonatomic, readwrite) NSURLSessionUploadTask *currentTask; + +@end + +@implementation GDTCCTUploader + ++ (void)load { + GDTCCTUploader *uploader = [GDTCCTUploader sharedInstance]; + [[GDTCORRegistrar sharedInstance] registerUploader:uploader target:kGDTCORTargetCCT]; + [[GDTCORRegistrar sharedInstance] registerUploader:uploader target:kGDTCORTargetFLL]; + [[GDTCORRegistrar sharedInstance] registerUploader:uploader target:kGDTCORTargetCSH]; +} + ++ (instancetype)sharedInstance { + static GDTCCTUploader *sharedInstance; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + sharedInstance = [[GDTCCTUploader alloc] init]; + }); + return sharedInstance; +} + +- (instancetype)init { + self = [super init]; + if (self) { + _uploaderQueue = dispatch_queue_create("com.google.GDTCCTUploader", DISPATCH_QUEUE_SERIAL); + NSURLSessionConfiguration *config = [NSURLSessionConfiguration defaultSessionConfiguration]; + _uploaderSession = [NSURLSession sessionWithConfiguration:config + delegate:self + delegateQueue:nil]; + } + return self; +} + +/** + * + */ +- (nullable NSURL *)serverURLForTarget:(GDTCORTarget)target { + // These strings should be interleaved to construct the real URL. This is just to (hopefully) + // fool github URL scanning bots. + static NSURL *CCTServerURL; + static dispatch_once_t CCTOnceToken; + dispatch_once(&CCTOnceToken, ^{ + const char *p1 = "hts/frbslgiggolai.o/0clgbth"; + const char *p2 = "tp:/ieaeogn.ogepscmvc/o/ac"; + const char URL[54] = {p1[0], p2[0], p1[1], p2[1], p1[2], p2[2], p1[3], p2[3], p1[4], + p2[4], p1[5], p2[5], p1[6], p2[6], p1[7], p2[7], p1[8], p2[8], + p1[9], p2[9], p1[10], p2[10], p1[11], p2[11], p1[12], p2[12], p1[13], + p2[13], p1[14], p2[14], p1[15], p2[15], p1[16], p2[16], p1[17], p2[17], + p1[18], p2[18], p1[19], p2[19], p1[20], p2[20], p1[21], p2[21], p1[22], + p2[22], p1[23], p2[23], p1[24], p2[24], p1[25], p2[25], p1[26], '\0'}; + CCTServerURL = [NSURL URLWithString:[NSString stringWithUTF8String:URL]]; + }); + + static NSURL *FLLServerURL; + static dispatch_once_t FLLOnceToken; + dispatch_once(&FLLOnceToken, ^{ + const char *p1 = "hts/frbslgigp.ogepscmv/ieo/eaybtho"; + const char *p2 = "tp:/ieaeogn-agolai.o/1frlglgc/aclg"; + const char URL[69] = {p1[0], p2[0], p1[1], p2[1], p1[2], p2[2], p1[3], p2[3], p1[4], + p2[4], p1[5], p2[5], p1[6], p2[6], p1[7], p2[7], p1[8], p2[8], + p1[9], p2[9], p1[10], p2[10], p1[11], p2[11], p1[12], p2[12], p1[13], + p2[13], p1[14], p2[14], p1[15], p2[15], p1[16], p2[16], p1[17], p2[17], + p1[18], p2[18], p1[19], p2[19], p1[20], p2[20], p1[21], p2[21], p1[22], + p2[22], p1[23], p2[23], p1[24], p2[24], p1[25], p2[25], p1[26], p2[26], + p1[27], p2[27], p1[28], p2[28], p1[29], p2[29], p1[30], p2[30], p1[31], + p2[31], p1[32], p2[32], p1[33], p2[33], '\0'}; + FLLServerURL = [NSURL URLWithString:[NSString stringWithUTF8String:URL]]; + }); + + static NSURL *CSHServerURL; + static dispatch_once_t CSHOnceToken; + dispatch_once(&CSHOnceToken, ^{ + // These strings should be interleaved to construct the real URL. This is just to (hopefully) + // fool github URL scanning bots. + const char *p1 = "hts/cahyiseot-agolai.o/1frlglgc/aclg"; + const char *p2 = "tp:/rsltcrprsp.ogepscmv/ieo/eaybtho"; + const char URL[72] = {p1[0], p2[0], p1[1], p2[1], p1[2], p2[2], p1[3], p2[3], p1[4], + p2[4], p1[5], p2[5], p1[6], p2[6], p1[7], p2[7], p1[8], p2[8], + p1[9], p2[9], p1[10], p2[10], p1[11], p2[11], p1[12], p2[12], p1[13], + p2[13], p1[14], p2[14], p1[15], p2[15], p1[16], p2[16], p1[17], p2[17], + p1[18], p2[18], p1[19], p2[19], p1[20], p2[20], p1[21], p2[21], p1[22], + p2[22], p1[23], p2[23], p1[24], p2[24], p1[25], p2[25], p1[26], p2[26], + p1[27], p2[27], p1[28], p2[28], p1[29], p2[29], p1[30], p2[30], p1[31], + p2[31], p1[32], p2[32], p1[33], p2[33], p1[34], p2[34], p1[35], '\0'}; + CSHServerURL = [NSURL URLWithString:[NSString stringWithUTF8String:URL]]; + }); + +#if !NDEBUG + if (_testServerURL) { + return _testServerURL; + } +#endif // !NDEBUG + + switch (target) { + case kGDTCORTargetCCT: + return CCTServerURL; + + case kGDTCORTargetFLL: + return FLLServerURL; + + case kGDTCORTargetCSH: + return CSHServerURL; + + default: + GDTCORLogDebug("GDTCCTUploader doesn't support target %ld", (long)target); + return nil; + break; + } +} + +- (NSString *)FLLAndCSHAPIKey { + static NSString *defaultServerKey; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + // These strings should be interleaved to construct the real key. + const char *p1 = "AzSBG0honD6A-PxV5nBc"; + const char *p2 = "Iay44Iwtu2vV0AOrz1C"; + const char defaultKey[40] = {p1[0], p2[0], p1[1], p2[1], p1[2], p2[2], p1[3], p2[3], + p1[4], p2[4], p1[5], p2[5], p1[6], p2[6], p1[7], p2[7], + p1[8], p2[8], p1[9], p2[9], p1[10], p2[10], p1[11], p2[11], + p1[12], p2[12], p1[13], p2[13], p1[14], p2[14], p1[15], p2[15], + p1[16], p2[16], p1[17], p2[17], p1[18], p2[18], p1[19], '\0'}; + defaultServerKey = [NSString stringWithUTF8String:defaultKey]; + }); + return defaultServerKey; +} + +- (void)uploadPackage:(GDTCORUploadPackage *)package { + __block GDTCORBackgroundIdentifier bgID = GDTCORBackgroundIdentifierInvalid; + bgID = [[GDTCORApplication sharedApplication] + beginBackgroundTaskWithName:@"GDTCCTUploader-upload" + expirationHandler:^{ + if (bgID != GDTCORBackgroundIdentifierInvalid) { + // Cancel the upload and complete delivery. + [self.currentTask cancel]; + [self.currentUploadPackage completeDelivery]; + + // End the background task. + [[GDTCORApplication sharedApplication] endBackgroundTask:bgID]; + } + }]; + + dispatch_async(_uploaderQueue, ^{ + if (self->_currentTask || self->_currentUploadPackage) { + GDTCORLogWarning(GDTCORMCWUploadFailed, @"%@", + @"An upload shouldn't be initiated with another in progress."); + return; + } + GDTCORTarget target = package.target; + id completionHandler = ^(NSData *_Nullable data, NSURLResponse *_Nullable response, + NSError *_Nullable error) { + GDTCORLogDebug("%@", @"CCT: request completed"); + if (error) { + GDTCORLogWarning(GDTCORMCWUploadFailed, @"There was an error uploading events: %@", error); + } + NSError *decodingError; + GDTCORClock *futureUploadTime; + if (data) { + gdt_cct_LogResponse logResponse = GDTCCTDecodeLogResponse(data, &decodingError); + if (!decodingError && logResponse.has_next_request_wait_millis) { + GDTCORLogDebug( + "CCT: The backend responded asking to not upload for %lld millis from now.", + logResponse.next_request_wait_millis); + futureUploadTime = + [GDTCORClock clockSnapshotInTheFuture:logResponse.next_request_wait_millis]; + } else if (decodingError) { + GDTCORLogDebug(@"There was a response decoding error: %@", decodingError); + } + pb_release(gdt_cct_LogResponse_fields, &logResponse); + } + if (!futureUploadTime) { + GDTCORLogDebug("%@", @"CCT: The backend response failed to parse, so the next request " + @"won't occur until 15 minutes from now"); + // 15 minutes from now. + futureUploadTime = [GDTCORClock clockSnapshotInTheFuture:15 * 60 * 1000]; + } + switch (target) { + case kGDTCORTargetCCT: + self->_CCTNextUploadTime = futureUploadTime; + break; + + case kGDTCORTargetFLL: + // Falls through. + case kGDTCORTargetCSH: + self->_FLLNextUploadTime = futureUploadTime; + default: + break; + } + + // Only retry if one of these codes is returned, or there was an error. + if (error || ((NSHTTPURLResponse *)response).statusCode == 429 || + ((NSHTTPURLResponse *)response).statusCode == 503) { + [package retryDeliveryInTheFuture]; + } else { +#if !NDEBUG + // Post a notification when in DEBUG mode to state how many packages were uploaded. Useful + // for validation during tests. + [[NSNotificationCenter defaultCenter] postNotificationName:GDTCCTUploadCompleteNotification + object:@(package.events.count)]; +#endif // #if !NDEBUG + GDTCORLogDebug("%@", @"CCT: package delivered"); + [package completeDelivery]; + } + + // End the background task if there was one. + if (bgID != GDTCORBackgroundIdentifierInvalid) { + [[GDTCORApplication sharedApplication] endBackgroundTask:bgID]; + bgID = GDTCORBackgroundIdentifierInvalid; + } + self.currentTask = nil; + self.currentUploadPackage = nil; + }; + self->_currentUploadPackage = package; + NSData *requestProtoData = + [self constructRequestProtoFromPackage:(GDTCORUploadPackage *)package]; + NSData *gzippedData = [GDTCCTCompressionHelper gzippedData:requestProtoData]; + BOOL usingGzipData = gzippedData != nil && gzippedData.length < requestProtoData.length; + NSData *dataToSend = usingGzipData ? gzippedData : requestProtoData; + NSURLRequest *request = [self constructRequestForTarget:target data:dataToSend]; + GDTCORLogDebug("CTT: request created: %@", request); + self.currentTask = [self.uploaderSession uploadTaskWithRequest:request + fromData:dataToSend + completionHandler:completionHandler]; + GDTCORLogDebug("%@", @"CCT: The upload task is about to begin."); + [self.currentTask resume]; + }); +} + +- (BOOL)readyToUploadTarget:(GDTCORTarget)target conditions:(GDTCORUploadConditions)conditions { + __block BOOL result = NO; + dispatch_sync(_uploaderQueue, ^{ + if (target == kGDTCORTargetCSH) { + if ([GDTCCTPrioritizer sharedInstance].CSHEvents.count > 0) { + result = YES; + } else { + result = NO; + } + return; + } + + if (self->_currentUploadPackage) { + result = NO; + GDTCORLogDebug("%@", @"CCT: can't upload because a package is in flight"); + return; + } + if (self->_currentTask) { + result = NO; + GDTCORLogDebug("%@", @"CCT: can't upload because a task is in progress"); + return; + } + if ((conditions & GDTCORUploadConditionHighPriority) == GDTCORUploadConditionHighPriority) { + result = YES; + GDTCORLogDebug("%@", @"CCT: a high priority event is allowing an upload"); + return; + } + switch (target) { + case kGDTCORTargetCCT: + if (self->_CCTNextUploadTime) { + result = [[GDTCORClock snapshot] isAfter:self->_CCTNextUploadTime]; + } + break; + + case kGDTCORTargetFLL: + if (self->_FLLNextUploadTime) { + result = [[GDTCORClock snapshot] isAfter:self->_FLLNextUploadTime]; + } + break; + + default: + // The CSH backend should be handled above. + break; + } + if (result) { + GDTCORLogDebug("CCT: can upload to target %ld because the request wait time has transpired", + (long)target); + } else { + GDTCORLogDebug("CCT: can't upload to target %ld because the backend asked to wait", + (long)target); + } + result = YES; + GDTCORLogDebug("CCT: can upload to target %ld because nothing is preventing it", (long)target); + }); + return result; +} + +#pragma mark - Private helper methods + +/** Constructs data given an upload package. + * + * @param package The upload package used to construct the request proto bytes. + * @return Proto bytes representing a gdt_cct_LogRequest object. + */ +- (nonnull NSData *)constructRequestProtoFromPackage:(GDTCORUploadPackage *)package { + // Segment the log events by log type. + NSMutableDictionary *> *logMappingIDToLogSet = + [[NSMutableDictionary alloc] init]; + [package.events enumerateObjectsUsingBlock:^(GDTCOREvent *_Nonnull event, BOOL *_Nonnull stop) { + NSMutableSet *logSet = logMappingIDToLogSet[event.mappingID]; + logSet = logSet ? logSet : [[NSMutableSet alloc] init]; + [logSet addObject:event]; + logMappingIDToLogSet[event.mappingID] = logSet; + }]; + + gdt_cct_BatchedLogRequest batchedLogRequest = + GDTCCTConstructBatchedLogRequest(logMappingIDToLogSet); + + NSData *data = GDTCCTEncodeBatchedLogRequest(&batchedLogRequest); + pb_release(gdt_cct_BatchedLogRequest_fields, &batchedLogRequest); + return data ? data : [[NSData alloc] init]; +} + +/** Constructs a request to FLL given a URL and request body data. + * + * @param target The target backend to send the request to. + * @param data The request body data. + * @return A new NSURLRequest ready to be sent to FLL. + */ +- (NSURLRequest *)constructRequestForTarget:(GDTCORTarget)target data:(NSData *)data { + NSURL *URL = [self serverURLForTarget:target]; + NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:URL]; + NSString *targetString; + switch (target) { + case kGDTCORTargetCCT: + targetString = @"cct"; + break; + + case kGDTCORTargetFLL: + targetString = @"fll"; + break; + + case kGDTCORTargetCSH: + targetString = @"csh"; + break; + + default: + targetString = @"unknown"; + break; + } + NSString *userAgent = + [NSString stringWithFormat:@"datatransport/%@ %@support/%@ apple/", kGDTCORVersion, + targetString, kGDTCCTSupportSDKVersion]; + if (target == kGDTCORTargetFLL || target == kGDTCORTargetCSH) { + [request setValue:[self FLLAndCSHAPIKey] forHTTPHeaderField:@"X-Goog-Api-Key"]; + } + if ([GDTCCTCompressionHelper isGzipped:data]) { + [request setValue:@"gzip" forHTTPHeaderField:@"Content-Encoding"]; + } + [request setValue:@"application/x-protobuf" forHTTPHeaderField:@"Content-Type"]; + [request setValue:@"gzip" forHTTPHeaderField:@"Accept-Encoding"]; + [request setValue:userAgent forHTTPHeaderField:@"User-Agent"]; + request.HTTPMethod = @"POST"; + [request setHTTPBody:data]; + return request; +} + +#pragma mark - GDTCORUploadPackageProtocol + +- (void)packageExpired:(GDTCORUploadPackage *)package { + dispatch_async(_uploaderQueue, ^{ + [self.currentTask cancel]; + self.currentTask = nil; + self.currentUploadPackage = nil; + }); +} + +#pragma mark - GDTCORLifecycleProtocol + +- (void)appWillTerminate:(GDTCORApplication *)application { + dispatch_sync(_uploaderQueue, ^{ + [self.currentTask cancel]; + [self.currentUploadPackage completeDelivery]; + }); +} + +#pragma mark - NSURLSessionDelegate + +- (void)URLSession:(NSURLSession *)session + task:(NSURLSessionTask *)task + willPerformHTTPRedirection:(NSHTTPURLResponse *)response + newRequest:(NSURLRequest *)request + completionHandler:(void (^)(NSURLRequest *_Nullable))completionHandler { + if (!completionHandler) { + return; + } + if (response.statusCode == 302 || response.statusCode == 301) { + if ([request.URL isEqual:[self serverURLForTarget:kGDTCORTargetFLL]]) { + NSURLRequest *newRequest = [self constructRequestForTarget:kGDTCORTargetCCT + data:task.originalRequest.HTTPBody]; + completionHandler(newRequest); + } + } else { + completionHandler(request); + } +} + +@end diff --git a/Pods/GoogleDataTransportCCTSupport/GoogleDataTransportCCTSupport/GDTCCTLibrary/Private/GDTCCTCompressionHelper.h b/Pods/GoogleDataTransportCCTSupport/GoogleDataTransportCCTSupport/GDTCCTLibrary/Private/GDTCCTCompressionHelper.h new file mode 100644 index 0000000000..08d0a4badf --- /dev/null +++ b/Pods/GoogleDataTransportCCTSupport/GoogleDataTransportCCTSupport/GDTCCTLibrary/Private/GDTCCTCompressionHelper.h @@ -0,0 +1,40 @@ +/* + * Copyright 2020 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** A class with methods to help with gzipped data. */ +@interface GDTCCTCompressionHelper : NSObject + +/** Compresses the given data and returns a new data object. + * + * @note Reduced version from GULNSData+zlib.m of GoogleUtilities. + * @return Compressed data, or nil if there was an error. + */ ++ (nullable NSData *)gzippedData:(NSData *)data; + +/** Returns YES if the data looks like it was gzip compressed by checking for the gzip magic number. + * + * @note: From https://en.wikipedia.org/wiki/Gzip, gzip's magic number is 1f 8b. + * @return YES if the data appears gzipped, NO otherwise. + */ ++ (BOOL)isGzipped:(NSData *)data; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/GoogleDataTransportCCTSupport/GoogleDataTransportCCTSupport/GDTCCTLibrary/Private/GDTCCTNanopbHelpers.h b/Pods/GoogleDataTransportCCTSupport/GoogleDataTransportCCTSupport/GDTCCTLibrary/Private/GDTCCTNanopbHelpers.h new file mode 100644 index 0000000000..6e4864a74a --- /dev/null +++ b/Pods/GoogleDataTransportCCTSupport/GoogleDataTransportCCTSupport/GDTCCTLibrary/Private/GDTCCTNanopbHelpers.h @@ -0,0 +1,138 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +#import +#import + +#import "GDTCCTLibrary/Protogen/nanopb/cct.nanopb.h" + +NS_ASSUME_NONNULL_BEGIN + +/** A string sets in customPrioritizationParams as a key paired to @YES if current event needs to + * populate network connection info data, @NO otherwise. + */ +FOUNDATION_EXPORT NSString *const GDTCCTNeedsNetworkConnectionInfo; + +/** A string sets in customPrioritizationParams as a key paired to the network connection info data + * of current event. + */ +FOUNDATION_EXPORT NSString *const GDTCCTNetworkConnectionInfo; + +#pragma mark - General purpose encoders + +/** Converts an NSString* to a pb_bytes_array_t*. + * + * @note calloc is called in this method. Ensure that pb_release is called on this or the parent. + * + * @param string The string to convert. + * @return A newly allocated array of bytes representing the UTF8 encoding of the string. + */ +pb_bytes_array_t *GDTCCTEncodeString(NSString *string); + +/** Converts an NSData to a pb_bytes_array_t*. + * + * @note calloc is called in this method. Ensure that pb_release is called on this or the parent. + * + * @param data The data to convert. + * @return A newly allocated array of bytes with [data bytes] copied into it. + */ +pb_bytes_array_t *GDTCCTEncodeData(NSData *data); + +#pragma mark - CCT object constructors + +/** Encodes a batched log request. + * + * @note Ensure that pb_release is called on the batchedLogRequest param. + * + * @param batchedLogRequest A pointer to the log batch to encode to bytes. + * @return An NSData object representing the bytes of the log request batch. + */ +FOUNDATION_EXPORT +NSData *GDTCCTEncodeBatchedLogRequest(gdt_cct_BatchedLogRequest *batchedLogRequest); + +/** Constructs a gdt_cct_BatchedLogRequest given sets of events segemented by mapping ID. + * + * @note calloc is called in this method. Ensure that pb_release is called on this or the parent. + * + * @param logMappingIDToLogSet A map of mapping IDs to sets of events to convert into a batch. + * @return A newly created gdt_cct_BatchedLogRequest. + */ +FOUNDATION_EXPORT +gdt_cct_BatchedLogRequest GDTCCTConstructBatchedLogRequest( + NSDictionary *> *logMappingIDToLogSet); + +/** Constructs a log request given a log source and a set of events. + * + * @note calloc is called in this method. Ensure that pb_release is called on this or the parent. + * @param logSource The CCT log source to put into the log request. + * @param logSet The set of events to send in this log request. + */ +FOUNDATION_EXPORT +gdt_cct_LogRequest GDTCCTConstructLogRequest(int32_t logSource, NSSet *logSet); + +/** Constructs a gdt_cct_LogEvent given a GDTCOREvent*. + * + * @param event The GDTCOREvent to convert. + * @return The new gdt_cct_LogEvent object. + */ +FOUNDATION_EXPORT +gdt_cct_LogEvent GDTCCTConstructLogEvent(GDTCOREvent *event); + +/** Constructs a gdt_cct_ClientInfo representing the client device. + * + * @return The new gdt_cct_ClientInfo object. + */ +FOUNDATION_EXPORT +gdt_cct_ClientInfo GDTCCTConstructClientInfo(void); + +/** Constructs a gdt_cct_IosClientInfo representing the client device. + * + * @return The new gdt_cct_IosClientInfo object. + */ +FOUNDATION_EXPORT +gdt_cct_IosClientInfo GDTCCTConstructiOSClientInfo(void); + +/** Constructs the data of a gdt_cct_NetworkConnectionInfo representing the client nework connection + * information. + * + * @return The data of a gdt_cct_NetworkConnectionInfo object. + */ +FOUNDATION_EXPORT +NSData *GDTCCTConstructNetworkConnectionInfoData(void); + +/** Return a gdt_cct_NetworkConnectionInfo_MobileSubtype representing the client + * + * @return The gdt_cct_NetworkConnectionInfo_MobileSubtype. + */ +FOUNDATION_EXPORT +gdt_cct_NetworkConnectionInfo_MobileSubtype GDTCCTNetworkConnectionInfoNetworkMobileSubtype(void); + +#pragma mark - CCT object decoders + +/** Decodes a gdt_cct_LogResponse given proto bytes. + * + * @note calloc is called in this method. Ensure that pb_release is called on the return value. + * + * @param data The proto bytes of the gdt_cct_LogResponse. + * @param error An error that will be populated if something went wrong during decoding. + * @return A newly allocated gdt_cct_LogResponse from the data, if the bytes decoded properly. + */ +FOUNDATION_EXPORT +gdt_cct_LogResponse GDTCCTDecodeLogResponse(NSData *data, NSError **error); + +NS_ASSUME_NONNULL_END diff --git a/Pods/GoogleDataTransportCCTSupport/GoogleDataTransportCCTSupport/GDTCCTLibrary/Private/GDTCCTPrioritizer.h b/Pods/GoogleDataTransportCCTSupport/GoogleDataTransportCCTSupport/GDTCCTLibrary/Private/GDTCCTPrioritizer.h new file mode 100644 index 0000000000..9674c1aa2f --- /dev/null +++ b/Pods/GoogleDataTransportCCTSupport/GoogleDataTransportCCTSupport/GDTCCTLibrary/Private/GDTCCTPrioritizer.h @@ -0,0 +1,55 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +#import +#import +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** Manages the prioritization of events from GoogleDataTransport. */ +@interface GDTCCTPrioritizer : NSObject + +/** The queue on which this prioritizer operates. */ +@property(nonatomic) dispatch_queue_t queue; + +/** All CCT events that have been processed by this prioritizer. */ +@property(nonatomic) NSMutableSet *CCTEvents; + +/** All FLL events that have been processed by this prioritizer. */ +@property(nonatomic) NSMutableSet *FLLEvents; + +/** All CSH events that have been processed by this prioritizer. */ +@property(nonatomic) NSMutableSet *CSHEvents; + +/** The most recent attempted upload of CCT daily uploaded logs. */ +@property(nonatomic) GDTCORClock *CCTTimeOfLastDailyUpload; + +/** The most recent attempted upload of FLL daily uploaded logs*/ +@property(nonatomic) GDTCORClock *FLLOfLastDailyUpload; + +/** Creates and/or returns the singleton instance of this class. + * + * @return The singleton instance of this class. + */ ++ (instancetype)sharedInstance; + +NS_ASSUME_NONNULL_END + +@end diff --git a/Pods/GoogleDataTransportCCTSupport/GoogleDataTransportCCTSupport/GDTCCTLibrary/Private/GDTCCTUploader.h b/Pods/GoogleDataTransportCCTSupport/GoogleDataTransportCCTSupport/GDTCCTLibrary/Private/GDTCCTUploader.h new file mode 100644 index 0000000000..cdc322d4e7 --- /dev/null +++ b/Pods/GoogleDataTransportCCTSupport/GoogleDataTransportCCTSupport/GDTCCTLibrary/Private/GDTCCTUploader.h @@ -0,0 +1,63 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +#import + +NS_ASSUME_NONNULL_BEGIN + +#if !NDEBUG +/** A notification fired when uploading is complete, detailing the number of events uploaded. */ +extern NSNotificationName const GDTCCTUploadCompleteNotification; +#endif // #if !NDEBUG + +/** Class capable of uploading events to the CCT backend. */ +@interface GDTCCTUploader : NSObject + +/** The queue on which all CCT uploading will occur. */ +@property(nonatomic, readonly) dispatch_queue_t uploaderQueue; + +/** The URL session that will attempt upload. */ +@property(nonatomic, readonly) NSURLSession *uploaderSession; + +/** The current upload task. */ +@property(nullable, nonatomic, readonly) NSURLSessionUploadTask *currentTask; + +/** Current upload package. */ +@property(nullable, nonatomic) GDTCORUploadPackage *currentUploadPackage; + +/** The next upload time for the CCT target. */ +@property(nullable, nonatomic) GDTCORClock *CCTNextUploadTime; + +/** The next upload time for the FLL target. */ +@property(nullable, nonatomic) GDTCORClock *FLLNextUploadTime; + +#if !NDEBUG +/** An upload URL used across all targets. For testing only. */ +@property(nullable, nonatomic) NSURL *testServerURL; + +#endif // !NDEBUG + +/** Creates and/or returns the singleton instance of this class. + * + * @return The singleton instance of this class. + */ ++ (instancetype)sharedInstance; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/GoogleDataTransportCCTSupport/GoogleDataTransportCCTSupport/GDTCCTLibrary/Protogen/nanopb/cct.nanopb.c b/Pods/GoogleDataTransportCCTSupport/GoogleDataTransportCCTSupport/GDTCCTLibrary/Protogen/nanopb/cct.nanopb.c new file mode 100644 index 0000000000..95846e6d66 --- /dev/null +++ b/Pods/GoogleDataTransportCCTSupport/GoogleDataTransportCCTSupport/GDTCCTLibrary/Protogen/nanopb/cct.nanopb.c @@ -0,0 +1,128 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-0.3.9.3 */ + +#include "cct.nanopb.h" + +/* @@protoc_insertion_point(includes) */ +#if PB_PROTO_HEADER_VERSION != 30 +#error Regenerate this file with the current version of nanopb generator. +#endif + +const gdt_cct_NetworkConnectionInfo_NetworkType gdt_cct_NetworkConnectionInfo_network_type_default = gdt_cct_NetworkConnectionInfo_NetworkType_NONE; +const gdt_cct_NetworkConnectionInfo_MobileSubtype gdt_cct_NetworkConnectionInfo_mobile_subtype_default = gdt_cct_NetworkConnectionInfo_MobileSubtype_UNKNOWN_MOBILE_SUBTYPE; +const gdt_cct_QosTierConfiguration_QosTier gdt_cct_LogRequest_qos_tier_default = gdt_cct_QosTierConfiguration_QosTier_DEFAULT; +const int32_t gdt_cct_QosTierConfiguration_log_source_default = 0; + + +const pb_field_t gdt_cct_LogEvent_fields[7] = { + PB_FIELD( 1, INT64 , OPTIONAL, STATIC , FIRST, gdt_cct_LogEvent, event_time_ms, event_time_ms, 0), + PB_FIELD( 6, BYTES , OPTIONAL, POINTER , OTHER, gdt_cct_LogEvent, source_extension, event_time_ms, 0), + PB_FIELD( 11, INT32 , OPTIONAL, STATIC , OTHER, gdt_cct_LogEvent, event_code, source_extension, 0), + PB_FIELD( 15, SINT64 , OPTIONAL, STATIC , OTHER, gdt_cct_LogEvent, timezone_offset_seconds, event_code, 0), + PB_FIELD( 17, INT64 , OPTIONAL, STATIC , OTHER, gdt_cct_LogEvent, event_uptime_ms, timezone_offset_seconds, 0), + PB_FIELD( 23, MESSAGE , OPTIONAL, STATIC , OTHER, gdt_cct_LogEvent, network_connection_info, event_uptime_ms, &gdt_cct_NetworkConnectionInfo_fields), + PB_LAST_FIELD +}; + +const pb_field_t gdt_cct_NetworkConnectionInfo_fields[3] = { + PB_FIELD( 1, ENUM , OPTIONAL, STATIC , FIRST, gdt_cct_NetworkConnectionInfo, network_type, network_type, &gdt_cct_NetworkConnectionInfo_network_type_default), + PB_FIELD( 2, UENUM , OPTIONAL, STATIC , OTHER, gdt_cct_NetworkConnectionInfo, mobile_subtype, network_type, &gdt_cct_NetworkConnectionInfo_mobile_subtype_default), + PB_LAST_FIELD +}; + +const pb_field_t gdt_cct_IosClientInfo_fields[8] = { + PB_FIELD( 3, BYTES , OPTIONAL, POINTER , FIRST, gdt_cct_IosClientInfo, os_major_version, os_major_version, 0), + PB_FIELD( 4, BYTES , OPTIONAL, POINTER , OTHER, gdt_cct_IosClientInfo, os_full_version, os_major_version, 0), + PB_FIELD( 5, BYTES , OPTIONAL, POINTER , OTHER, gdt_cct_IosClientInfo, application_build, os_full_version, 0), + PB_FIELD( 6, BYTES , OPTIONAL, POINTER , OTHER, gdt_cct_IosClientInfo, country, application_build, 0), + PB_FIELD( 7, BYTES , OPTIONAL, POINTER , OTHER, gdt_cct_IosClientInfo, model, country, 0), + PB_FIELD( 8, BYTES , OPTIONAL, POINTER , OTHER, gdt_cct_IosClientInfo, language_code, model, 0), + PB_FIELD( 11, BYTES , OPTIONAL, POINTER , OTHER, gdt_cct_IosClientInfo, application_bundle_id, language_code, 0), + PB_LAST_FIELD +}; + +const pb_field_t gdt_cct_ClientInfo_fields[3] = { + PB_FIELD( 1, UENUM , OPTIONAL, STATIC , FIRST, gdt_cct_ClientInfo, client_type, client_type, 0), + PB_FIELD( 4, MESSAGE , OPTIONAL, STATIC , OTHER, gdt_cct_ClientInfo, ios_client_info, client_type, &gdt_cct_IosClientInfo_fields), + PB_LAST_FIELD +}; + +const pb_field_t gdt_cct_BatchedLogRequest_fields[2] = { + PB_FIELD( 1, MESSAGE , REPEATED, POINTER , FIRST, gdt_cct_BatchedLogRequest, log_request, log_request, &gdt_cct_LogRequest_fields), + PB_LAST_FIELD +}; + +const pb_field_t gdt_cct_LogRequest_fields[7] = { + PB_FIELD( 1, MESSAGE , OPTIONAL, STATIC , FIRST, gdt_cct_LogRequest, client_info, client_info, &gdt_cct_ClientInfo_fields), + PB_FIELD( 2, INT32 , OPTIONAL, STATIC , OTHER, gdt_cct_LogRequest, log_source, client_info, 0), + PB_FIELD( 3, MESSAGE , REPEATED, POINTER , OTHER, gdt_cct_LogRequest, log_event, log_source, &gdt_cct_LogEvent_fields), + PB_FIELD( 4, INT64 , OPTIONAL, STATIC , OTHER, gdt_cct_LogRequest, request_time_ms, log_event, 0), + PB_FIELD( 8, INT64 , OPTIONAL, STATIC , OTHER, gdt_cct_LogRequest, request_uptime_ms, request_time_ms, 0), + PB_FIELD( 9, UENUM , OPTIONAL, STATIC , OTHER, gdt_cct_LogRequest, qos_tier, request_uptime_ms, &gdt_cct_LogRequest_qos_tier_default), + PB_LAST_FIELD +}; + +const pb_field_t gdt_cct_QosTierConfiguration_fields[3] = { + PB_FIELD( 2, UENUM , OPTIONAL, STATIC , FIRST, gdt_cct_QosTierConfiguration, qos_tier, qos_tier, 0), + PB_FIELD( 3, INT32 , OPTIONAL, STATIC , OTHER, gdt_cct_QosTierConfiguration, log_source, qos_tier, &gdt_cct_QosTierConfiguration_log_source_default), + PB_LAST_FIELD +}; + +const pb_field_t gdt_cct_QosTiersOverride_fields[3] = { + PB_FIELD( 1, MESSAGE , REPEATED, POINTER , FIRST, gdt_cct_QosTiersOverride, qos_tier_configuration, qos_tier_configuration, &gdt_cct_QosTierConfiguration_fields), + PB_FIELD( 2, INT64 , OPTIONAL, STATIC , OTHER, gdt_cct_QosTiersOverride, qos_tier_fingerprint, qos_tier_configuration, 0), + PB_LAST_FIELD +}; + +const pb_field_t gdt_cct_LogResponse_fields[3] = { + PB_FIELD( 1, INT64 , OPTIONAL, STATIC , FIRST, gdt_cct_LogResponse, next_request_wait_millis, next_request_wait_millis, 0), + PB_FIELD( 3, MESSAGE , OPTIONAL, STATIC , OTHER, gdt_cct_LogResponse, qos_tier, next_request_wait_millis, &gdt_cct_QosTiersOverride_fields), + PB_LAST_FIELD +}; + + + + + + +/* Check that field information fits in pb_field_t */ +#if !defined(PB_FIELD_32BIT) +/* If you get an error here, it means that you need to define PB_FIELD_32BIT + * compile-time option. You can do that in pb.h or on compiler command line. + * + * The reason you need to do this is that some of your messages contain tag + * numbers or field sizes that are larger than what can fit in 8 or 16 bit + * field descriptors. + */ +PB_STATIC_ASSERT((pb_membersize(gdt_cct_LogEvent, network_connection_info) < 65536 && pb_membersize(gdt_cct_ClientInfo, ios_client_info) < 65536 && pb_membersize(gdt_cct_LogRequest, client_info) < 65536 && pb_membersize(gdt_cct_LogResponse, qos_tier) < 65536), YOU_MUST_DEFINE_PB_FIELD_32BIT_FOR_MESSAGES_gdt_cct_LogEvent_gdt_cct_NetworkConnectionInfo_gdt_cct_IosClientInfo_gdt_cct_ClientInfo_gdt_cct_BatchedLogRequest_gdt_cct_LogRequest_gdt_cct_QosTierConfiguration_gdt_cct_QosTiersOverride_gdt_cct_LogResponse) +#endif + +#if !defined(PB_FIELD_16BIT) && !defined(PB_FIELD_32BIT) +/* If you get an error here, it means that you need to define PB_FIELD_16BIT + * compile-time option. You can do that in pb.h or on compiler command line. + * + * The reason you need to do this is that some of your messages contain tag + * numbers or field sizes that are larger than what can fit in the default + * 8 bit descriptors. + */ +PB_STATIC_ASSERT((pb_membersize(gdt_cct_LogEvent, network_connection_info) < 256 && pb_membersize(gdt_cct_ClientInfo, ios_client_info) < 256 && pb_membersize(gdt_cct_LogRequest, client_info) < 256 && pb_membersize(gdt_cct_LogResponse, qos_tier) < 256), YOU_MUST_DEFINE_PB_FIELD_16BIT_FOR_MESSAGES_gdt_cct_LogEvent_gdt_cct_NetworkConnectionInfo_gdt_cct_IosClientInfo_gdt_cct_ClientInfo_gdt_cct_BatchedLogRequest_gdt_cct_LogRequest_gdt_cct_QosTierConfiguration_gdt_cct_QosTiersOverride_gdt_cct_LogResponse) +#endif + + +/* @@protoc_insertion_point(eof) */ diff --git a/Pods/GoogleDataTransportCCTSupport/GoogleDataTransportCCTSupport/GDTCCTLibrary/Protogen/nanopb/cct.nanopb.h b/Pods/GoogleDataTransportCCTSupport/GoogleDataTransportCCTSupport/GDTCCTLibrary/Protogen/nanopb/cct.nanopb.h new file mode 100644 index 0000000000..a6d4cfb82b --- /dev/null +++ b/Pods/GoogleDataTransportCCTSupport/GoogleDataTransportCCTSupport/GDTCCTLibrary/Protogen/nanopb/cct.nanopb.h @@ -0,0 +1,281 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* Automatically generated nanopb header */ +/* Generated by nanopb-0.3.9.3 */ + +#ifndef PB_GDT_CCT_CCT_NANOPB_H_INCLUDED +#define PB_GDT_CCT_CCT_NANOPB_H_INCLUDED +#include + +/* @@protoc_insertion_point(includes) */ +#if PB_PROTO_HEADER_VERSION != 30 +#error Regenerate this file with the current version of nanopb generator. +#endif + + +/* Enum definitions */ +typedef enum _gdt_cct_NetworkConnectionInfo_NetworkType { + gdt_cct_NetworkConnectionInfo_NetworkType_NONE = -1, + gdt_cct_NetworkConnectionInfo_NetworkType_MOBILE = 0, + gdt_cct_NetworkConnectionInfo_NetworkType_WIFI = 1, + gdt_cct_NetworkConnectionInfo_NetworkType_MOBILE_MMS = 2, + gdt_cct_NetworkConnectionInfo_NetworkType_MOBILE_SUPL = 3, + gdt_cct_NetworkConnectionInfo_NetworkType_MOBILE_DUN = 4, + gdt_cct_NetworkConnectionInfo_NetworkType_MOBILE_HIPRI = 5, + gdt_cct_NetworkConnectionInfo_NetworkType_WIMAX = 6, + gdt_cct_NetworkConnectionInfo_NetworkType_BLUETOOTH = 7, + gdt_cct_NetworkConnectionInfo_NetworkType_DUMMY = 8, + gdt_cct_NetworkConnectionInfo_NetworkType_ETHERNET = 9, + gdt_cct_NetworkConnectionInfo_NetworkType_MOBILE_FOTA = 10, + gdt_cct_NetworkConnectionInfo_NetworkType_MOBILE_IMS = 11, + gdt_cct_NetworkConnectionInfo_NetworkType_MOBILE_CBS = 12, + gdt_cct_NetworkConnectionInfo_NetworkType_WIFI_P2P = 13, + gdt_cct_NetworkConnectionInfo_NetworkType_MOBILE_IA = 14, + gdt_cct_NetworkConnectionInfo_NetworkType_MOBILE_EMERGENCY = 15, + gdt_cct_NetworkConnectionInfo_NetworkType_PROXY = 16, + gdt_cct_NetworkConnectionInfo_NetworkType_VPN = 17 +} gdt_cct_NetworkConnectionInfo_NetworkType; +#define _gdt_cct_NetworkConnectionInfo_NetworkType_MIN gdt_cct_NetworkConnectionInfo_NetworkType_NONE +#define _gdt_cct_NetworkConnectionInfo_NetworkType_MAX gdt_cct_NetworkConnectionInfo_NetworkType_VPN +#define _gdt_cct_NetworkConnectionInfo_NetworkType_ARRAYSIZE ((gdt_cct_NetworkConnectionInfo_NetworkType)(gdt_cct_NetworkConnectionInfo_NetworkType_VPN+1)) + +typedef enum _gdt_cct_NetworkConnectionInfo_MobileSubtype { + gdt_cct_NetworkConnectionInfo_MobileSubtype_UNKNOWN_MOBILE_SUBTYPE = 0, + gdt_cct_NetworkConnectionInfo_MobileSubtype_GPRS = 1, + gdt_cct_NetworkConnectionInfo_MobileSubtype_EDGE = 2, + gdt_cct_NetworkConnectionInfo_MobileSubtype_UMTS = 3, + gdt_cct_NetworkConnectionInfo_MobileSubtype_CDMA = 4, + gdt_cct_NetworkConnectionInfo_MobileSubtype_EVDO_0 = 5, + gdt_cct_NetworkConnectionInfo_MobileSubtype_EVDO_A = 6, + gdt_cct_NetworkConnectionInfo_MobileSubtype_RTT = 7, + gdt_cct_NetworkConnectionInfo_MobileSubtype_HSDPA = 8, + gdt_cct_NetworkConnectionInfo_MobileSubtype_HSUPA = 9, + gdt_cct_NetworkConnectionInfo_MobileSubtype_HSPA = 10, + gdt_cct_NetworkConnectionInfo_MobileSubtype_IDEN = 11, + gdt_cct_NetworkConnectionInfo_MobileSubtype_EVDO_B = 12, + gdt_cct_NetworkConnectionInfo_MobileSubtype_LTE = 13, + gdt_cct_NetworkConnectionInfo_MobileSubtype_EHRPD = 14, + gdt_cct_NetworkConnectionInfo_MobileSubtype_HSPAP = 15, + gdt_cct_NetworkConnectionInfo_MobileSubtype_GSM = 16, + gdt_cct_NetworkConnectionInfo_MobileSubtype_TD_SCDMA = 17, + gdt_cct_NetworkConnectionInfo_MobileSubtype_IWLAN = 18, + gdt_cct_NetworkConnectionInfo_MobileSubtype_LTE_CA = 19, + gdt_cct_NetworkConnectionInfo_MobileSubtype_COMBINED = 100 +} gdt_cct_NetworkConnectionInfo_MobileSubtype; +#define _gdt_cct_NetworkConnectionInfo_MobileSubtype_MIN gdt_cct_NetworkConnectionInfo_MobileSubtype_UNKNOWN_MOBILE_SUBTYPE +#define _gdt_cct_NetworkConnectionInfo_MobileSubtype_MAX gdt_cct_NetworkConnectionInfo_MobileSubtype_COMBINED +#define _gdt_cct_NetworkConnectionInfo_MobileSubtype_ARRAYSIZE ((gdt_cct_NetworkConnectionInfo_MobileSubtype)(gdt_cct_NetworkConnectionInfo_MobileSubtype_COMBINED+1)) + +typedef enum _gdt_cct_ClientInfo_ClientType { + gdt_cct_ClientInfo_ClientType_CLIENT_UNKNOWN = 0, + gdt_cct_ClientInfo_ClientType_IOS_FIREBASE = 15 +} gdt_cct_ClientInfo_ClientType; +#define _gdt_cct_ClientInfo_ClientType_MIN gdt_cct_ClientInfo_ClientType_CLIENT_UNKNOWN +#define _gdt_cct_ClientInfo_ClientType_MAX gdt_cct_ClientInfo_ClientType_IOS_FIREBASE +#define _gdt_cct_ClientInfo_ClientType_ARRAYSIZE ((gdt_cct_ClientInfo_ClientType)(gdt_cct_ClientInfo_ClientType_IOS_FIREBASE+1)) + +typedef enum _gdt_cct_QosTierConfiguration_QosTier { + gdt_cct_QosTierConfiguration_QosTier_DEFAULT = 0, + gdt_cct_QosTierConfiguration_QosTier_UNMETERED_ONLY = 1, + gdt_cct_QosTierConfiguration_QosTier_UNMETERED_OR_DAILY = 2, + gdt_cct_QosTierConfiguration_QosTier_FAST_IF_RADIO_AWAKE = 3, + gdt_cct_QosTierConfiguration_QosTier_NEVER = 4 +} gdt_cct_QosTierConfiguration_QosTier; +#define _gdt_cct_QosTierConfiguration_QosTier_MIN gdt_cct_QosTierConfiguration_QosTier_DEFAULT +#define _gdt_cct_QosTierConfiguration_QosTier_MAX gdt_cct_QosTierConfiguration_QosTier_NEVER +#define _gdt_cct_QosTierConfiguration_QosTier_ARRAYSIZE ((gdt_cct_QosTierConfiguration_QosTier)(gdt_cct_QosTierConfiguration_QosTier_NEVER+1)) + +/* Struct definitions */ +typedef struct _gdt_cct_BatchedLogRequest { + pb_size_t log_request_count; + struct _gdt_cct_LogRequest *log_request; +/* @@protoc_insertion_point(struct:gdt_cct_BatchedLogRequest) */ +} gdt_cct_BatchedLogRequest; + +typedef struct _gdt_cct_IosClientInfo { + pb_bytes_array_t *os_major_version; + pb_bytes_array_t *os_full_version; + pb_bytes_array_t *application_build; + pb_bytes_array_t *country; + pb_bytes_array_t *model; + pb_bytes_array_t *language_code; + pb_bytes_array_t *application_bundle_id; +/* @@protoc_insertion_point(struct:gdt_cct_IosClientInfo) */ +} gdt_cct_IosClientInfo; + +typedef struct _gdt_cct_ClientInfo { + bool has_client_type; + gdt_cct_ClientInfo_ClientType client_type; + bool has_ios_client_info; + gdt_cct_IosClientInfo ios_client_info; +/* @@protoc_insertion_point(struct:gdt_cct_ClientInfo) */ +} gdt_cct_ClientInfo; + +typedef struct _gdt_cct_NetworkConnectionInfo { + bool has_network_type; + gdt_cct_NetworkConnectionInfo_NetworkType network_type; + bool has_mobile_subtype; + gdt_cct_NetworkConnectionInfo_MobileSubtype mobile_subtype; +/* @@protoc_insertion_point(struct:gdt_cct_NetworkConnectionInfo) */ +} gdt_cct_NetworkConnectionInfo; + +typedef struct _gdt_cct_QosTierConfiguration { + bool has_qos_tier; + gdt_cct_QosTierConfiguration_QosTier qos_tier; + bool has_log_source; + int32_t log_source; +/* @@protoc_insertion_point(struct:gdt_cct_QosTierConfiguration) */ +} gdt_cct_QosTierConfiguration; + +typedef struct _gdt_cct_QosTiersOverride { + pb_size_t qos_tier_configuration_count; + struct _gdt_cct_QosTierConfiguration *qos_tier_configuration; + bool has_qos_tier_fingerprint; + int64_t qos_tier_fingerprint; +/* @@protoc_insertion_point(struct:gdt_cct_QosTiersOverride) */ +} gdt_cct_QosTiersOverride; + +typedef struct _gdt_cct_LogEvent { + bool has_event_time_ms; + int64_t event_time_ms; + pb_bytes_array_t *source_extension; + bool has_event_code; + int32_t event_code; + bool has_timezone_offset_seconds; + int64_t timezone_offset_seconds; + bool has_event_uptime_ms; + int64_t event_uptime_ms; + bool has_network_connection_info; + gdt_cct_NetworkConnectionInfo network_connection_info; +/* @@protoc_insertion_point(struct:gdt_cct_LogEvent) */ +} gdt_cct_LogEvent; + +typedef struct _gdt_cct_LogRequest { + bool has_client_info; + gdt_cct_ClientInfo client_info; + bool has_log_source; + int32_t log_source; + pb_size_t log_event_count; + struct _gdt_cct_LogEvent *log_event; + bool has_request_time_ms; + int64_t request_time_ms; + bool has_request_uptime_ms; + int64_t request_uptime_ms; + bool has_qos_tier; + gdt_cct_QosTierConfiguration_QosTier qos_tier; +/* @@protoc_insertion_point(struct:gdt_cct_LogRequest) */ +} gdt_cct_LogRequest; + +typedef struct _gdt_cct_LogResponse { + bool has_next_request_wait_millis; + int64_t next_request_wait_millis; + bool has_qos_tier; + gdt_cct_QosTiersOverride qos_tier; +/* @@protoc_insertion_point(struct:gdt_cct_LogResponse) */ +} gdt_cct_LogResponse; + +/* Default values for struct fields */ +extern const gdt_cct_NetworkConnectionInfo_NetworkType gdt_cct_NetworkConnectionInfo_network_type_default; +extern const gdt_cct_NetworkConnectionInfo_MobileSubtype gdt_cct_NetworkConnectionInfo_mobile_subtype_default; +extern const gdt_cct_QosTierConfiguration_QosTier gdt_cct_LogRequest_qos_tier_default; +extern const int32_t gdt_cct_QosTierConfiguration_log_source_default; + +/* Initializer values for message structs */ +#define gdt_cct_LogEvent_init_default {false, 0, NULL, false, 0, false, 0, false, 0, false, gdt_cct_NetworkConnectionInfo_init_default} +#define gdt_cct_NetworkConnectionInfo_init_default {false, gdt_cct_NetworkConnectionInfo_NetworkType_NONE, false, gdt_cct_NetworkConnectionInfo_MobileSubtype_UNKNOWN_MOBILE_SUBTYPE} +#define gdt_cct_IosClientInfo_init_default {NULL, NULL, NULL, NULL, NULL, NULL, NULL} +#define gdt_cct_ClientInfo_init_default {false, _gdt_cct_ClientInfo_ClientType_MIN, false, gdt_cct_IosClientInfo_init_default} +#define gdt_cct_BatchedLogRequest_init_default {0, NULL} +#define gdt_cct_LogRequest_init_default {false, gdt_cct_ClientInfo_init_default, false, 0, 0, NULL, false, 0, false, 0, false, gdt_cct_QosTierConfiguration_QosTier_DEFAULT} +#define gdt_cct_QosTierConfiguration_init_default {false, _gdt_cct_QosTierConfiguration_QosTier_MIN, false, 0} +#define gdt_cct_QosTiersOverride_init_default {0, NULL, false, 0} +#define gdt_cct_LogResponse_init_default {false, 0, false, gdt_cct_QosTiersOverride_init_default} +#define gdt_cct_LogEvent_init_zero {false, 0, NULL, false, 0, false, 0, false, 0, false, gdt_cct_NetworkConnectionInfo_init_zero} +#define gdt_cct_NetworkConnectionInfo_init_zero {false, _gdt_cct_NetworkConnectionInfo_NetworkType_MIN, false, _gdt_cct_NetworkConnectionInfo_MobileSubtype_MIN} +#define gdt_cct_IosClientInfo_init_zero {NULL, NULL, NULL, NULL, NULL, NULL, NULL} +#define gdt_cct_ClientInfo_init_zero {false, _gdt_cct_ClientInfo_ClientType_MIN, false, gdt_cct_IosClientInfo_init_zero} +#define gdt_cct_BatchedLogRequest_init_zero {0, NULL} +#define gdt_cct_LogRequest_init_zero {false, gdt_cct_ClientInfo_init_zero, false, 0, 0, NULL, false, 0, false, 0, false, _gdt_cct_QosTierConfiguration_QosTier_MIN} +#define gdt_cct_QosTierConfiguration_init_zero {false, _gdt_cct_QosTierConfiguration_QosTier_MIN, false, 0} +#define gdt_cct_QosTiersOverride_init_zero {0, NULL, false, 0} +#define gdt_cct_LogResponse_init_zero {false, 0, false, gdt_cct_QosTiersOverride_init_zero} + +/* Field tags (for use in manual encoding/decoding) */ +#define gdt_cct_BatchedLogRequest_log_request_tag 1 +#define gdt_cct_IosClientInfo_os_major_version_tag 3 +#define gdt_cct_IosClientInfo_os_full_version_tag 4 +#define gdt_cct_IosClientInfo_application_build_tag 5 +#define gdt_cct_IosClientInfo_country_tag 6 +#define gdt_cct_IosClientInfo_model_tag 7 +#define gdt_cct_IosClientInfo_language_code_tag 8 +#define gdt_cct_IosClientInfo_application_bundle_id_tag 11 +#define gdt_cct_ClientInfo_client_type_tag 1 +#define gdt_cct_ClientInfo_ios_client_info_tag 4 +#define gdt_cct_NetworkConnectionInfo_network_type_tag 1 +#define gdt_cct_NetworkConnectionInfo_mobile_subtype_tag 2 +#define gdt_cct_QosTierConfiguration_qos_tier_tag 2 +#define gdt_cct_QosTierConfiguration_log_source_tag 3 +#define gdt_cct_QosTiersOverride_qos_tier_configuration_tag 1 +#define gdt_cct_QosTiersOverride_qos_tier_fingerprint_tag 2 +#define gdt_cct_LogEvent_event_time_ms_tag 1 +#define gdt_cct_LogEvent_event_code_tag 11 +#define gdt_cct_LogEvent_event_uptime_ms_tag 17 +#define gdt_cct_LogEvent_source_extension_tag 6 +#define gdt_cct_LogEvent_timezone_offset_seconds_tag 15 +#define gdt_cct_LogEvent_network_connection_info_tag 23 +#define gdt_cct_LogRequest_request_time_ms_tag 4 +#define gdt_cct_LogRequest_request_uptime_ms_tag 8 +#define gdt_cct_LogRequest_client_info_tag 1 +#define gdt_cct_LogRequest_log_source_tag 2 +#define gdt_cct_LogRequest_log_event_tag 3 +#define gdt_cct_LogRequest_qos_tier_tag 9 +#define gdt_cct_LogResponse_next_request_wait_millis_tag 1 +#define gdt_cct_LogResponse_qos_tier_tag 3 + +/* Struct field encoding specification for nanopb */ +extern const pb_field_t gdt_cct_LogEvent_fields[7]; +extern const pb_field_t gdt_cct_NetworkConnectionInfo_fields[3]; +extern const pb_field_t gdt_cct_IosClientInfo_fields[8]; +extern const pb_field_t gdt_cct_ClientInfo_fields[3]; +extern const pb_field_t gdt_cct_BatchedLogRequest_fields[2]; +extern const pb_field_t gdt_cct_LogRequest_fields[7]; +extern const pb_field_t gdt_cct_QosTierConfiguration_fields[3]; +extern const pb_field_t gdt_cct_QosTiersOverride_fields[3]; +extern const pb_field_t gdt_cct_LogResponse_fields[3]; + +/* Maximum encoded size of messages (where known) */ +/* gdt_cct_LogEvent_size depends on runtime parameters */ +#define gdt_cct_NetworkConnectionInfo_size 13 +/* gdt_cct_IosClientInfo_size depends on runtime parameters */ +/* gdt_cct_ClientInfo_size depends on runtime parameters */ +/* gdt_cct_BatchedLogRequest_size depends on runtime parameters */ +/* gdt_cct_LogRequest_size depends on runtime parameters */ +#define gdt_cct_QosTierConfiguration_size 13 +/* gdt_cct_QosTiersOverride_size depends on runtime parameters */ +/* gdt_cct_LogResponse_size depends on runtime parameters */ + +/* Message IDs (where set with "msgid" option) */ +#ifdef PB_MSGID + +#define CCT_MESSAGES \ + + +#endif + +/* @@protoc_insertion_point(eof) */ + +#endif diff --git a/Pods/GoogleDataTransportCCTSupport/LICENSE b/Pods/GoogleDataTransportCCTSupport/LICENSE new file mode 100644 index 0000000000..d645695673 --- /dev/null +++ b/Pods/GoogleDataTransportCCTSupport/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/Pods/GoogleDataTransportCCTSupport/README.md b/Pods/GoogleDataTransportCCTSupport/README.md new file mode 100644 index 0000000000..23d66e8586 --- /dev/null +++ b/Pods/GoogleDataTransportCCTSupport/README.md @@ -0,0 +1,270 @@ +# Firebase iOS Open Source Development + [![Actions Status][gh-core-badge]][gh-actions] + [![Actions Status][gh-dynamiclinks-badge]][gh-actions] + [![Actions Status][gh-datatransport-badge]][gh-actions] + [![Actions Status][gh-storage-badge]][gh-actions] + [![Actions Status][gh-zip-badge]][gh-actions] + [![Travis](https://travis-ci.org/firebase/firebase-ios-sdk.svg?branch=master)](https://travis-ci.org/firebase/firebase-ios-sdk) + +This repository contains all Firebase iOS SDK source except FirebaseAnalytics, +FirebasePerformance, and FirebaseML. + +The repository also includes GoogleUtilities source. The +[GoogleUtilities](GoogleUtilities/README.md) pod is +a set of utilities used by Firebase and other Google products. + +Firebase is an app development platform with tools to help you build, grow and +monetize your app. More information about Firebase can be found at +[https://firebase.google.com](https://firebase.google.com). + +## Installation + +See the three subsections for details about three different installation methods. +1. [Standard pod install](README.md#standard-pod-install) +1. [Installing from the GitHub repo](README.md#installing-from-github) +1. [Experimental Carthage](README.md#carthage-ios-only) + +### Standard pod install + +Go to +[https://firebase.google.com/docs/ios/setup](https://firebase.google.com/docs/ios/setup). + +### Installing from GitHub + +For releases starting with 5.0.0, the source for each release is also deployed +to CocoaPods master and available via standard +[CocoaPods Podfile syntax](https://guides.cocoapods.org/syntax/podfile.html#pod). + +These instructions can be used to access the Firebase repo at other branches, +tags, or commits. + +#### Background + +See +[the Podfile Syntax Reference](https://guides.cocoapods.org/syntax/podfile.html#pod) +for instructions and options about overriding pod source locations. + +#### Accessing Firebase Source Snapshots + +All of the official releases are tagged in this repo and available via CocoaPods. To access a local +source snapshot or unreleased branch, use Podfile directives like the following: + +To access FirebaseFirestore via a branch: +``` +pod 'FirebaseCore', :git => 'https://github.com/firebase/firebase-ios-sdk.git', :branch => 'master' +pod 'FirebaseFirestore', :git => 'https://github.com/firebase/firebase-ios-sdk.git', :branch => 'master' +``` + +To access FirebaseMessaging via a checked out version of the firebase-ios-sdk repo do: + +``` +pod 'FirebaseCore', :path => '/path/to/firebase-ios-sdk' +pod 'FirebaseMessaging', :path => '/path/to/firebase-ios-sdk' +``` + +### Carthage (iOS only) + +Instructions for the experimental Carthage distribution are at +[Carthage](Carthage.md). + +### Rome + +Instructions for installing binary frameworks via +[Rome](https://github.com/CocoaPods/Rome) are at [Rome](Rome.md). + +### Using Firebase from a Framework or a library + +[Using Firebase from a Framework or a library](docs/firebase_in_libraries.md) + +## Development + +To develop Firebase software in this repository, ensure that you have at least +the following software: + + * Xcode 10.1 (or later) + * CocoaPods 1.7.2 (or later) + * [CocoaPods generate](https://github.com/square/cocoapods-generate) + +For the pod that you want to develop: + +`pod gen Firebase{name here}.podspec --local-sources=./ --auto-open --platforms=ios` + +Note: If the CocoaPods cache is out of date, you may need to run +`pod repo update` before the `pod gen` command. + +Note: Set the `--platforms` option to `macos` or `tvos` to develop/test for +those platforms. Since 10.2, Xcode does not properly handle multi-platform +CocoaPods workspaces. + +Firestore has a self contained Xcode project. See +[Firestore/README.md](Firestore/README.md). + +### Development for Catalyst +* `pod gen {name here}.podspec --local-sources=./ --auto-open --platforms=ios` +* Check the Mac box in the App-iOS Build Settings +* Sign the App in the Settings Signing & Capabilities tab +* Click Pods in the Project Manager +* Add Signing to the iOS host app and unit test targets +* Select the Unit-unit scheme +* Run it to build and test + +### Adding a New Firebase Pod + +See [AddNewPod.md](AddNewPod.md). + +### Code Formatting + +To ensure that the code is formatted consistently, run the script +[./scripts/style.sh](https://github.com/firebase/firebase-ios-sdk/blob/master/scripts/style.sh) +before creating a PR. + +Travis will verify that any code changes are done in a style compliant way. Install +`clang-format` and `swiftformat`. +These commands will get the right versions: + +``` +brew upgrade https://raw.githubusercontent.com/Homebrew/homebrew-core/e3496d9/Formula/clang-format.rb +brew upgrade https://raw.githubusercontent.com/Homebrew/homebrew-core/7963c3d/Formula/swiftformat.rb +``` + +Note: if you already have a newer version of these installed you may need to +`brew switch` to this version. + +To update this section, find the versions of clang-format and swiftformat.rb to +match the versions in the CI failure logs +[here](https://github.com/Homebrew/homebrew-core/tree/master/Formula). + +### Running Unit Tests + +Select a scheme and press Command-u to build a component and run its unit tests. + +#### Viewing Code Coverage + +First, make sure that [xcov](https://github.com/nakiostudio/xcov) is installed with `gem install xcov`. + +After running the `AllUnitTests_iOS` scheme in Xcode, execute +`xcov --workspace Firebase.xcworkspace --scheme AllUnitTests_iOS --output_directory xcov_output` +at Example/ in the terminal. This will aggregate the coverage, and you can run `open xcov_output/index.html` to see the results. + +### Running Sample Apps +In order to run the sample apps and integration tests, you'll need valid +`GoogleService-Info.plist` files for those samples. The Firebase Xcode project contains dummy plist +files without real values, but can be replaced with real plist files. To get your own +`GoogleService-Info.plist` files: + +1. Go to the [Firebase Console](https://console.firebase.google.com/) +2. Create a new Firebase project, if you don't already have one +3. For each sample app you want to test, create a new Firebase app with the sample app's bundle +identifier (e.g. `com.google.Database-Example`) +4. Download the resulting `GoogleService-Info.plist` and replace the appropriate dummy plist file +(e.g. in [Example/Database/App/](Example/Database/App/)); + +Some sample apps like Firebase Messaging ([Example/Messaging/App](Example/Messaging/App)) require +special Apple capabilities, and you will have to change the sample app to use a unique bundle +identifier that you can control in your own Apple Developer account. + +## Specific Component Instructions +See the sections below for any special instructions for those components. + +### Firebase Auth + +If you're doing specific Firebase Auth development, see +[the Auth Sample README](Example/Auth/README.md) for instructions about +building and running the FirebaseAuth pod along with various samples and tests. + +### Firebase Database + +To run the Database Integration tests, make your database authentication rules +[public](https://firebase.google.com/docs/database/security/quickstart). + +### Firebase Storage + +To run the Storage Integration tests, follow the instructions in +[FIRStorageIntegrationTests.m](Example/Storage/Tests/Integration/FIRStorageIntegrationTests.m). + +#### Push Notifications + +Push notifications can only be delivered to specially provisioned App IDs in the developer portal. +In order to actually test receiving push notifications, you will need to: + +1. Change the bundle identifier of the sample app to something you own in your Apple Developer +account, and enable that App ID for push notifications. +2. You'll also need to +[upload your APNs Provider Authentication Key or certificate to the Firebase Console](https://firebase.google.com/docs/cloud-messaging/ios/certs) +at **Project Settings > Cloud Messaging > [Your Firebase App]**. +3. Ensure your iOS device is added to your Apple Developer portal as a test device. + +#### iOS Simulator + +The iOS Simulator cannot register for remote notifications, and will not receive push notifications. +In order to receive push notifications, you'll have to follow the steps above and run the app on a +physical device. + +## Community Supported Efforts + +We've seen an amazing amount of interest and contributions to improve the Firebase SDKs, and we are +very grateful! We'd like to empower as many developers as we can to be able to use Firebase and +participate in the Firebase community. + +### tvOS, macOS, watchOS and Catalyst +Thanks to contributions from the community, many of Firebase SDKs now compile, run unit tests, and work on +tvOS, macOS, watchOS and Catalyst. + +For tvOS, checkout the [Sample](Example/tvOSSample). +For watchOS, currently only Messaging and Storage (and their dependencies) have limited support. Checkout the +[Independent Watch App Sample](Example/watchOSSample). + +Keep in mind that macOS, tvOS, watchOS and Catalyst are not officially supported by Firebase, and this +repository is actively developed primarily for iOS. While we can catch basic unit test issues with +Travis, there may be some changes where the SDK no longer works as expected on macOS, tvOS or watchOS. If you +encounter this, please [file an issue](https://github.com/firebase/firebase-ios-sdk/issues). + +During app setup in the console, you may get to a step that mentions something like "Checking if the app +has communicated with our servers". This relies on Analytics and will not work on macOS/tvOS/watchOS/Catalyst. +**It's safe to ignore the message and continue**, the rest of the SDKs will work as expected. + +To install, add a subset of the following to the Podfile: + +``` +pod 'Firebase/ABTesting' # No watchOS support yet +pod 'Firebase/Auth' # No watchOS support yet +pod 'Firebase/Crashlytics' # No watchOS support yet +pod 'Firebase/Database' # No watchOS support yet +pod 'Firebase/Firestore' # No watchOS support yet +pod 'Firebase/Functions' # No watchOS support yet +pod 'Firebase/Messaging' +pod 'Firebase/RemoteConfig' # No watchOS support yet +pod 'Firebase/Storage' +``` + +#### Additional Catalyst Notes + +* FirebaseAuth and FirebaseMessaging require adding `Keychain Sharing Capability` +to Build Settings. +* FirebaseFirestore requires signing the +[gRPC Resource target](https://github.com/firebase/firebase-ios-sdk/issues/3500#issuecomment-518741681). + +## Roadmap + +See [Roadmap](ROADMAP.md) for more about the Firebase iOS SDK Open Source +plans and directions. + +## Contributing + +See [Contributing](CONTRIBUTING.md) for more information on contributing to the Firebase +iOS SDK. + +## License + +The contents of this repository is licensed under the +[Apache License, version 2.0](http://www.apache.org/licenses/LICENSE-2.0). + +Your use of Firebase is governed by the +[Terms of Service for Firebase Services](https://firebase.google.com/terms/). + +[gh-actions]: https://github.com/firebase/firebase-ios-sdk/actions +[gh-core-badge]: https://github.com/firebase/firebase-ios-sdk/workflows/core/badge.svg +[gh-datatransport-badge]: https://github.com/firebase/firebase-ios-sdk/workflows/datatransport/badge.svg +[gh-dynamiclinks-badge]: https://github.com/firebase/firebase-ios-sdk/workflows/dynamiclinks/badge.svg +[gh-storage-badge]: https://github.com/firebase/firebase-ios-sdk/workflows/storage/badge.svg +[gh-zip-badge]: https://github.com/firebase/firebase-ios-sdk/workflows/zip/badge.svg diff --git a/Pods/GoogleUtilities/GoogleUtilities/AppDelegateSwizzler/GULAppDelegateSwizzler.m b/Pods/GoogleUtilities/GoogleUtilities/AppDelegateSwizzler/GULAppDelegateSwizzler.m index 59f400dcc6..173a776dcc 100644 --- a/Pods/GoogleUtilities/GoogleUtilities/AppDelegateSwizzler/GULAppDelegateSwizzler.m +++ b/Pods/GoogleUtilities/GoogleUtilities/AppDelegateSwizzler/GULAppDelegateSwizzler.m @@ -12,50 +12,62 @@ // See the License for the specific language governing permissions and // limitations under the License. -#import "TargetConditionals.h" - -#if TARGET_OS_IOS +#import +#import #import #import #import -#import "../Common/GULLoggerCodes.h" -#import "Internal/GULAppDelegateSwizzler_Private.h" -#import "Private/GULAppDelegateSwizzler.h" +#import "GoogleUtilities/AppDelegateSwizzler/Internal/GULAppDelegateSwizzler_Private.h" +#import "GoogleUtilities/Common/GULLoggerCodes.h" -#import #import // Implementations need to be typed before calling the implementation directly to cast the // arguments and the return types correctly. Otherwise, it will crash the app. typedef BOOL (*GULRealOpenURLSourceApplicationAnnotationIMP)( - id, SEL, UIApplication *, NSURL *, NSString *, id); + id, SEL, GULApplication *, NSURL *, NSString *, id); typedef BOOL (*GULRealOpenURLOptionsIMP)( - id, SEL, UIApplication *, NSURL *, NSDictionary *); + id, SEL, GULApplication *, NSURL *, NSDictionary *); #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wstrict-prototypes" typedef void (*GULRealHandleEventsForBackgroundURLSessionIMP)( - id, SEL, UIApplication *, NSString *, void (^)()); + id, SEL, GULApplication *, NSString *, void (^)()); #pragma clang diagnostic pop // This is needed to for the library to be warning free on iOS versions < 8. #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wunguarded-availability" typedef BOOL (*GULRealContinueUserActivityIMP)( - id, SEL, UIApplication *, NSUserActivity *, void (^)(NSArray *restorableObjects)); + id, SEL, GULApplication *, NSUserActivity *, void (^)(NSArray *restorableObjects)); +#pragma clang diagnostic pop + +typedef void (*GULRealDidRegisterForRemoteNotificationsIMP)(id, SEL, GULApplication *, NSData *); + +typedef void (*GULRealDidFailToRegisterForRemoteNotificationsIMP)(id, + SEL, + GULApplication *, + NSError *); + +typedef void (*GULRealDidReceiveRemoteNotificationIMP)(id, SEL, GULApplication *, NSDictionary *); + +// TODO: Since we don't support iOS 7 anymore, see if we can remove the check below. +#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 70000 && !TARGET_OS_WATCH +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wunguarded-availability" +typedef void (*GULRealDidReceiveRemoteNotificationWithCompletionIMP)( + id, SEL, GULApplication *, NSDictionary *, void (^)(UIBackgroundFetchResult)); #pragma clang diagnostic pop +#endif // __IPHONE_OS_VERSION_MAX_ALLOWED >= 70000 && !TARGET_OS_WATCH -typedef void (^GULAppDelegateInterceptorCallback)(id); +typedef void (^GULAppDelegateInterceptorCallback)(id); // The strings below are the keys for associated objects. -static char const *const kGULContinueUserActivityIMPKey = "GUL_continueUserActivityIMP"; -static char const *const kGULHandleBackgroundSessionIMPKey = "GUL_handleBackgroundSessionIMP"; -static char const *const kGULOpenURLOptionsIMPKey = "GUL_openURLOptionsIMP"; -static char const *const kGULOpenURLOptionsSourceAnnotationsIMPKey = - "GUL_openURLSourceApplicationAnnotationIMP"; +static char const *const kGULRealIMPBySelectorKey = "GUL_realIMPBySelector"; static char const *const kGULRealClassKey = "GUL_realClass"; + static NSString *const kGULAppDelegateKeyPath = @"delegate"; static GULLoggerService kGULLoggerSwizzler = @"[GoogleUtilities/AppDelegateSwizzler]"; @@ -63,11 +75,12 @@ typedef BOOL (*GULRealContinueUserActivityIMP)( // Since Firebase SDKs also use this for app delegate proxying, in order to not be a breaking change // we disable App Delegate proxying when either of these two flags are set to NO. -/** Plist key that allows Firebase developers to disable App Delegate Proxying. */ +/** Plist key that allows Firebase developers to disable App and Scene Delegate Proxying. */ static NSString *const kGULFirebaseAppDelegateProxyEnabledPlistKey = @"FirebaseAppDelegateProxyEnabled"; -/** Plist key that allows developers not using Firebase to disable App Delegate Proxying. */ +/** Plist key that allows developers not using Firebase to disable App and Scene Delegate Proxying. + */ static NSString *const kGULGoogleUtilitiesAppDelegateProxyEnabledPlistKey = @"GoogleUtilitiesAppDelegateProxyEnabled"; @@ -75,7 +88,35 @@ typedef BOOL (*GULRealContinueUserActivityIMP)( static NSString *const kGULAppDelegatePrefix = @"GUL_"; /** The original instance of App Delegate. */ -static id gOriginalAppDelegate; +static id gOriginalAppDelegate; + +/** The original App Delegate class */ +static Class gOriginalAppDelegateClass; + +/** The subclass of the original App Delegate. */ +static Class gAppDelegateSubclass; + +/** Remote notification methods selectors + * + * We have to opt out of referencing APNS related App Delegate methods directly to prevent + * an Apple review warning email about missing Push Notification Entitlement + * (like here: https://github.com/firebase/firebase-ios-sdk/issues/2807). From our experience, the + * warning is triggered when any of the symbols is present in the application sent to review, even + * if the code is never executed. Because GULAppDelegateSwizzler may be used by applications that + * are not using APNS we have to refer to the methods indirectly using selector constructed from + * string. + * + * NOTE: None of the methods is proxied unless it is explicitly requested by calling the method + * +[GULAppDelegateSwizzler proxyOriginalDelegateIncludingAPNSMethods] + */ +static NSString *const kGULDidRegisterForRemoteNotificationsSEL = + @"application:didRegisterForRemoteNotificationsWithDeviceToken:"; +static NSString *const kGULDidFailToRegisterForRemoteNotificationsSEL = + @"application:didFailToRegisterForRemoteNotificationsWithError:"; +static NSString *const kGULDidReceiveRemoteNotificationSEL = + @"application:didReceiveRemoteNotification:"; +static NSString *const kGULDidReceiveRemoteNotificationWithCompletionSEL = + @"application:didReceiveRemoteNotification:fetchCompletionHandler:"; /** * This class is necessary to store the delegates in an NSArray without retaining them. @@ -149,6 +190,7 @@ - (void)observeValueForKeyPath:(NSString *)keyPath @implementation GULAppDelegateSwizzler static dispatch_once_t sProxyAppDelegateOnceToken; +static dispatch_once_t sProxyAppDelegateRemoteNotificationOnceToken; #pragma mark - Public methods @@ -177,9 +219,9 @@ + (BOOL)isAppDelegateProxyEnabled { } + (GULAppDelegateInterceptorID)registerAppDelegateInterceptor: - (id)interceptor { + (id)interceptor { NSAssert(interceptor, @"AppDelegateProxy cannot add nil interceptor"); - NSAssert([interceptor conformsToProtocol:@protocol(UIApplicationDelegate)], + NSAssert([interceptor conformsToProtocol:@protocol(GULApplicationDelegate)], @"AppDelegateProxy interceptor does not conform to UIApplicationDelegate"); if (!interceptor) { @@ -189,7 +231,7 @@ + (GULAppDelegateInterceptorID)registerAppDelegateInterceptor: @"AppDelegateProxy cannot add nil interceptor."); return nil; } - if (![interceptor conformsToProtocol:@protocol(UIApplicationDelegate)]) { + if (![interceptor conformsToProtocol:@protocol(GULApplicationDelegate)]) { GULLogError(kGULLoggerSwizzler, NO, [NSString stringWithFormat:@"I-SWZ%06ld", (long)kGULSwizzlerMessageCodeAppDelegateSwizzling001], @@ -240,21 +282,49 @@ + (void)unregisterAppDelegateInterceptorWithID:(GULAppDelegateInterceptorID)inte } + (void)proxyOriginalDelegate { + if ([GULAppEnvironmentUtil isAppExtension]) { + return; + } + dispatch_once(&sProxyAppDelegateOnceToken, ^{ - id originalDelegate = + id originalDelegate = [GULAppDelegateSwizzler sharedApplication].delegate; [GULAppDelegateSwizzler proxyAppDelegate:originalDelegate]; }); } ++ (void)proxyOriginalDelegateIncludingAPNSMethods { + if ([GULAppEnvironmentUtil isAppExtension]) { + return; + } + + [self proxyOriginalDelegate]; + + dispatch_once(&sProxyAppDelegateRemoteNotificationOnceToken, ^{ + id appDelegate = [GULAppDelegateSwizzler sharedApplication].delegate; + + NSMutableDictionary *realImplementationsBySelector = + [objc_getAssociatedObject(appDelegate, &kGULRealIMPBySelectorKey) mutableCopy]; + + [self proxyRemoteNotificationsMethodsWithAppDelegateSubClass:gAppDelegateSubclass + realClass:gOriginalAppDelegateClass + appDelegate:appDelegate + realImplementationsBySelector:realImplementationsBySelector]; + + objc_setAssociatedObject(appDelegate, &kGULRealIMPBySelectorKey, + [realImplementationsBySelector copy], OBJC_ASSOCIATION_RETAIN); + [self reassignAppDelegate]; + }); +} + #pragma mark - Create proxy -+ (UIApplication *)sharedApplication { ++ (GULApplication *)sharedApplication { if ([GULAppEnvironmentUtil isAppExtension]) { return nil; } id sharedApplication = nil; - Class uiApplicationClass = NSClassFromString(@"UIApplication"); + Class uiApplicationClass = NSClassFromString(kGULApplicationClassName); if (uiApplicationClass && [uiApplicationClass respondsToSelector:(NSSelectorFromString(@"sharedApplication"))]) { sharedApplication = [uiApplicationClass sharedApplication]; @@ -268,18 +338,18 @@ + (UIApplication *)sharedApplication { * object to the new subclass. Additionally this copies methods to that new subclass that allow us * to intercept UIApplicationDelegate methods. This is better known as isa swizzling. * - * @param anObject The object to which you want to isa swizzle. This has to conform to the + * @param appDelegate The object to which you want to isa swizzle. This has to conform to the * UIApplicationDelegate subclass. + * @return Returns the new subclass. */ -+ (void)createSubclassWithObject:(id)anObject { - Class realClass = [anObject class]; ++ (nullable Class)createSubclassWithObject:(id)appDelegate { + Class realClass = [appDelegate class]; - // Create GUL__ + // Create GUL__ NSString *classNameWithPrefix = [kGULAppDelegatePrefix stringByAppendingString:NSStringFromClass(realClass)]; - NSTimeInterval timestamp = [NSDate date].timeIntervalSince1970; NSString *newClassName = - [NSString stringWithFormat:@"%@-%0.0f", classNameWithPrefix, timestamp * 1000]; + [NSString stringWithFormat:@"%@-%@", classNameWithPrefix, [NSUUID UUID].UUIDString]; if (NSClassFromString(newClassName)) { GULLogError(kGULLoggerSwizzler, NO, @@ -288,7 +358,7 @@ + (void)createSubclassWithObject:(id)anObject { @"Cannot create a proxy for App Delegate. Subclass already exists. Original Class: " @"%@, subclass: %@", NSStringFromClass(realClass), newClassName); - return; + return nil; } // Register the new class as subclass of the real one. Do not allocate more than the real class @@ -301,64 +371,63 @@ + (void)createSubclassWithObject:(id)anObject { @"Cannot create a proxy for App Delegate. Subclass already exists. Original Class: " @"%@, subclass: Nil", NSStringFromClass(realClass)); - return; + return nil; } + NSMutableDictionary *realImplementationsBySelector = + [[NSMutableDictionary alloc] init]; + + // For application:continueUserActivity:restorationHandler: + SEL continueUserActivitySEL = @selector(application:continueUserActivity:restorationHandler:); + [self proxyDestinationSelector:continueUserActivitySEL + implementationsFromSourceSelector:continueUserActivitySEL + fromClass:[GULAppDelegateSwizzler class] + toClass:appDelegateSubClass + realClass:realClass + storeDestinationImplementationTo:realImplementationsBySelector]; + +#if TARGET_OS_IOS || TARGET_OS_TV // Add the following methods from GULAppDelegate class, and store the real implementation so it // can forward to the real one. // For application:openURL:options: - NSValue *openURLOptionsIMPPointer; SEL applicationOpenURLOptionsSEL = @selector(application:openURL:options:); - if ([anObject respondsToSelector:applicationOpenURLOptionsSEL]) { + if ([appDelegate respondsToSelector:applicationOpenURLOptionsSEL]) { // Only add the application:openURL:options: method if the original AppDelegate implements it. // This fixes a bug if an app only implements application:openURL:sourceApplication:annotation: // (if we add the `options` method, iOS sees that one exists and does not call the // `sourceApplication` method, which in this case is the only one the app implements). - [GULAppDelegateSwizzler addInstanceMethodWithSelector:applicationOpenURLOptionsSEL - fromClass:[GULAppDelegateSwizzler class] - toClass:appDelegateSubClass]; - GULRealOpenURLOptionsIMP openURLOptionsIMP = (GULRealOpenURLOptionsIMP) - [GULAppDelegateSwizzler implementationOfMethodSelector:applicationOpenURLOptionsSEL - fromClass:realClass]; - openURLOptionsIMPPointer = [NSValue valueWithPointer:openURLOptionsIMP]; + [self proxyDestinationSelector:applicationOpenURLOptionsSEL + implementationsFromSourceSelector:applicationOpenURLOptionsSEL + fromClass:[GULAppDelegateSwizzler class] + toClass:appDelegateSubClass + realClass:realClass + storeDestinationImplementationTo:realImplementationsBySelector]; } - // For application:continueUserActivity:restorationHandler: - SEL continueUserActivitySEL = @selector(application:continueUserActivity:restorationHandler:); - [GULAppDelegateSwizzler addInstanceMethodWithSelector:continueUserActivitySEL - fromClass:[GULAppDelegateSwizzler class] - toClass:appDelegateSubClass]; - GULRealContinueUserActivityIMP continueUserActivityIMP = (GULRealContinueUserActivityIMP) - [GULAppDelegateSwizzler implementationOfMethodSelector:continueUserActivitySEL - fromClass:realClass]; - NSValue *continueUserActivityIMPPointer = [NSValue valueWithPointer:continueUserActivityIMP]; + // For application:handleEventsForBackgroundURLSession:completionHandler: + SEL handleEventsForBackgroundURLSessionSEL = @selector(application: + handleEventsForBackgroundURLSession:completionHandler:); + [self proxyDestinationSelector:handleEventsForBackgroundURLSessionSEL + implementationsFromSourceSelector:handleEventsForBackgroundURLSessionSEL + fromClass:[GULAppDelegateSwizzler class] + toClass:appDelegateSubClass + realClass:realClass + storeDestinationImplementationTo:realImplementationsBySelector]; +#endif // TARGET_OS_IOS || TARGET_OS_TV +#if TARGET_OS_IOS // For application:openURL:sourceApplication:annotation: - SEL openURLSourceApplicationAnnotationSEL = - @selector(application:openURL:sourceApplication:annotation:); - [GULAppDelegateSwizzler addInstanceMethodWithSelector:openURLSourceApplicationAnnotationSEL - fromClass:[GULAppDelegateSwizzler class] - toClass:appDelegateSubClass]; - GULRealOpenURLSourceApplicationAnnotationIMP openURLSourceApplicationAnnotationIMP = - (GULRealOpenURLSourceApplicationAnnotationIMP)[GULAppDelegateSwizzler - implementationOfMethodSelector:openURLSourceApplicationAnnotationSEL - fromClass:realClass]; - NSValue *openURLSourceAppAnnotationIMPPointer = - [NSValue valueWithPointer:openURLSourceApplicationAnnotationIMP]; - - // For application:handleEventsForBackgroundURLSession:completionHandler: - SEL handleEventsForBackgroundURLSessionSEL = - @selector(application:handleEventsForBackgroundURLSession:completionHandler:); - [GULAppDelegateSwizzler addInstanceMethodWithSelector:handleEventsForBackgroundURLSessionSEL - fromClass:[GULAppDelegateSwizzler class] - toClass:appDelegateSubClass]; - GULRealHandleEventsForBackgroundURLSessionIMP handleBackgroundSessionIMP = - (GULRealHandleEventsForBackgroundURLSessionIMP)[GULAppDelegateSwizzler - implementationOfMethodSelector:handleEventsForBackgroundURLSessionSEL - fromClass:realClass]; - NSValue *handleBackgroundSessionIMPPointer = - [NSValue valueWithPointer:handleBackgroundSessionIMP]; + SEL openURLSourceApplicationAnnotationSEL = @selector(application: + openURL:sourceApplication:annotation:); + + [self proxyDestinationSelector:openURLSourceApplicationAnnotationSEL + implementationsFromSourceSelector:openURLSourceApplicationAnnotationSEL + fromClass:[GULAppDelegateSwizzler class] + toClass:appDelegateSubClass + realClass:realClass + storeDestinationImplementationTo:realImplementationsBySelector]; +#endif // TARGET_OS_IOS // Override the description too so the custom class name will not show up. [GULAppDelegateSwizzler addInstanceMethodWithDestinationSelector:@selector(description) @@ -366,18 +435,10 @@ + (void)createSubclassWithObject:(id)anObject { fromClass:[self class] toClass:appDelegateSubClass]; - // Create fake properties for the real app delegate object. - objc_setAssociatedObject(anObject, &kGULContinueUserActivityIMPKey, - continueUserActivityIMPPointer, OBJC_ASSOCIATION_RETAIN_NONATOMIC); - objc_setAssociatedObject(anObject, &kGULHandleBackgroundSessionIMPKey, - handleBackgroundSessionIMPPointer, OBJC_ASSOCIATION_RETAIN_NONATOMIC); - if (openURLOptionsIMPPointer) { - objc_setAssociatedObject(anObject, &kGULOpenURLOptionsIMPKey, openURLOptionsIMPPointer, - OBJC_ASSOCIATION_RETAIN_NONATOMIC); - } - objc_setAssociatedObject(anObject, &kGULOpenURLOptionsSourceAnnotationsIMPKey, - openURLSourceAppAnnotationIMPPointer, OBJC_ASSOCIATION_RETAIN_NONATOMIC); - objc_setAssociatedObject(anObject, &kGULRealClassKey, realClass, + // Store original implementations to a fake property of the original delegate. + objc_setAssociatedObject(appDelegate, &kGULRealIMPBySelectorKey, + [realImplementationsBySelector copy], OBJC_ASSOCIATION_RETAIN_NONATOMIC); + objc_setAssociatedObject(appDelegate, &kGULRealClassKey, realClass, OBJC_ASSOCIATION_RETAIN_NONATOMIC); // The subclass size has to be exactly the same size with the original class size. The subclass @@ -391,12 +452,12 @@ + (void)createSubclassWithObject:(id)anObject { @"same size. %@", NSStringFromClass(realClass)); NSAssert(NO, @"Classes must be the same size to swizzle isa"); - return; + return nil; } // Make the newly created class to be the subclass of the real App Delegate class. objc_registerClassPair(appDelegateSubClass); - if (object_setClass(anObject, appDelegateSubClass)) { + if (object_setClass(appDelegate, appDelegateSubClass)) { GULLogDebug(kGULLoggerSwizzler, NO, [NSString stringWithFormat:@"I-SWZ%06ld", (long)kGULSwizzlerMessageCodeAppDelegateSwizzling008], @@ -405,16 +466,96 @@ + (void)createSubclassWithObject:(id)anObject { [GULAppDelegateSwizzler correctAppDelegateProxyKey]); } - // We have to do this to invalidate the cache that caches the original respondsToSelector of - // openURL handlers. Without this, it won't call the default implementations because the system - // checks and caches them. - // Register KVO only once. Otherwise, the observing method will be called as many times as - // being registered. - id delegate = [GULAppDelegateSwizzler sharedApplication].delegate; - [GULAppDelegateSwizzler sharedApplication].delegate = nil; - [GULAppDelegateSwizzler sharedApplication].delegate = delegate; + return appDelegateSubClass; +} + ++ (void)proxyRemoteNotificationsMethodsWithAppDelegateSubClass:(Class)appDelegateSubClass + realClass:(Class)realClass + appDelegate:(id)appDelegate + realImplementationsBySelector: + (NSMutableDictionary *)realImplementationsBySelector { + if (realClass == nil || appDelegateSubClass == nil || appDelegate == nil || + realImplementationsBySelector == nil) { + // The App Delegate has not been swizzled. + return; + } + + // For application:didRegisterForRemoteNotificationsWithDeviceToken: + SEL didRegisterForRemoteNotificationsSEL = + NSSelectorFromString(kGULDidRegisterForRemoteNotificationsSEL); + SEL didRegisterForRemoteNotificationsDonorSEL = @selector(application: + donor_didRegisterForRemoteNotificationsWithDeviceToken:); + + [self proxyDestinationSelector:didRegisterForRemoteNotificationsSEL + implementationsFromSourceSelector:didRegisterForRemoteNotificationsDonorSEL + fromClass:[GULAppDelegateSwizzler class] + toClass:appDelegateSubClass + realClass:realClass + storeDestinationImplementationTo:realImplementationsBySelector]; + + // For application:didFailToRegisterForRemoteNotificationsWithError: + SEL didFailToRegisterForRemoteNotificationsSEL = + NSSelectorFromString(kGULDidFailToRegisterForRemoteNotificationsSEL); + SEL didFailToRegisterForRemoteNotificationsDonorSEL = @selector(application: + donor_didFailToRegisterForRemoteNotificationsWithError:); + + [self proxyDestinationSelector:didFailToRegisterForRemoteNotificationsSEL + implementationsFromSourceSelector:didFailToRegisterForRemoteNotificationsDonorSEL + fromClass:[GULAppDelegateSwizzler class] + toClass:appDelegateSubClass + realClass:realClass + storeDestinationImplementationTo:realImplementationsBySelector]; + + // For application:didReceiveRemoteNotification: + SEL didReceiveRemoteNotificationSEL = NSSelectorFromString(kGULDidReceiveRemoteNotificationSEL); + SEL didReceiveRemoteNotificationDonotSEL = @selector(application: + donor_didReceiveRemoteNotification:); + + [self proxyDestinationSelector:didReceiveRemoteNotificationSEL + implementationsFromSourceSelector:didReceiveRemoteNotificationDonotSEL + fromClass:[GULAppDelegateSwizzler class] + toClass:appDelegateSubClass + realClass:realClass + storeDestinationImplementationTo:realImplementationsBySelector]; + + // For application:didReceiveRemoteNotification:fetchCompletionHandler: +#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 70000 && !TARGET_OS_WATCH + if ([GULAppEnvironmentUtil isIOS7OrHigher]) { + SEL didReceiveRemoteNotificationWithCompletionSEL = + NSSelectorFromString(kGULDidReceiveRemoteNotificationWithCompletionSEL); + SEL didReceiveRemoteNotificationWithCompletionDonorSEL = + @selector(application:donor_didReceiveRemoteNotification:fetchCompletionHandler:); + if ([appDelegate respondsToSelector:didReceiveRemoteNotificationWithCompletionSEL]) { + // Only add the application:didReceiveRemoteNotification:fetchCompletionHandler: method if + // the original AppDelegate implements it. + // This fixes a bug if an app only implements application:didReceiveRemoteNotification: + // (if we add the method with completion, iOS sees that one exists and does not call + // the method without the completion, which in this case is the only one the app implements). + + [self proxyDestinationSelector:didReceiveRemoteNotificationWithCompletionSEL + implementationsFromSourceSelector:didReceiveRemoteNotificationWithCompletionDonorSEL + fromClass:[GULAppDelegateSwizzler class] + toClass:appDelegateSubClass + realClass:realClass + storeDestinationImplementationTo:realImplementationsBySelector]; + } + } +#endif // __IPHONE_OS_VERSION_MAX_ALLOWED >= 70000 && !TARGET_OS_WATCH +} + +/// We have to do this to invalidate the cache that caches the original respondsToSelector of +/// openURL handlers. Without this, it won't call the default implementations because the system +/// checks and caches them. +/// Register KVO only once. Otherwise, the observing method will be called as many times as +/// being registered. ++ (void)reassignAppDelegate { +#if !TARGET_OS_WATCH + id delegate = [self sharedApplication].delegate; + [self sharedApplication].delegate = nil; + [self sharedApplication].delegate = delegate; gOriginalAppDelegate = delegate; [[GULAppDelegateObserver sharedInstance] observeUIApplication]; +#endif } #pragma mark - Helper methods @@ -428,6 +569,32 @@ + (GULMutableDictionary *)interceptors { return sInterceptors; } ++ (nullable NSValue *)originalImplementationForSelector:(SEL)selector object:(id)object { + NSDictionary *realImplementationBySelector = + objc_getAssociatedObject(object, &kGULRealIMPBySelectorKey); + return realImplementationBySelector[NSStringFromSelector(selector)]; +} + ++ (void)proxyDestinationSelector:(SEL)destinationSelector + implementationsFromSourceSelector:(SEL)sourceSelector + fromClass:(Class)sourceClass + toClass:(Class)destinationClass + realClass:(Class)realClass + storeDestinationImplementationTo: + (NSMutableDictionary *)destinationImplementationsBySelector { + [self addInstanceMethodWithDestinationSelector:destinationSelector + withImplementationFromSourceSelector:sourceSelector + fromClass:sourceClass + toClass:destinationClass]; + IMP sourceImplementation = + [GULAppDelegateSwizzler implementationOfMethodSelector:destinationSelector + fromClass:realClass]; + NSValue *sourceImplementationPointer = [NSValue valueWithPointer:sourceImplementation]; + + NSString *destinationSelectorString = NSStringFromSelector(destinationSelector); + destinationImplementationsBySelector[destinationSelectorString] = sourceImplementationPointer; +} + /** Copies a method identified by the methodSelector from one class to the other. After this method * is called, performing [toClassInstance methodSelector] will be similar to calling * [fromClassInstance methodSelector]. This method does nothing if toClass already has a method @@ -530,23 +697,25 @@ - (NSString *)fakeDescription { } #pragma mark - [Donor Methods] URL overridden handler methods +#if TARGET_OS_IOS || TARGET_OS_TV -- (BOOL)application:(UIApplication *)application +- (BOOL)application:(GULApplication *)application openURL:(NSURL *)url options:(NSDictionary *)options { + SEL methodSelector = @selector(application:openURL:options:); // Call the real implementation if the real App Delegate has any. - NSValue *openURLIMPPointer = objc_getAssociatedObject(self, &kGULOpenURLOptionsIMPKey); + NSValue *openURLIMPPointer = + [GULAppDelegateSwizzler originalImplementationForSelector:methodSelector object:self]; GULRealOpenURLOptionsIMP openURLOptionsIMP = [openURLIMPPointer pointerValue]; __block BOOL returnedValue = NO; - SEL methodSelector = @selector(application:openURL:options:); // This is needed to for the library to be warning free on iOS versions < 9. #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wunguarded-availability" [GULAppDelegateSwizzler notifyInterceptorsWithMethodSelector:methodSelector - callback:^(id interceptor) { + callback:^(id interceptor) { returnedValue |= [interceptor application:application openURL:url options:options]; @@ -558,21 +727,26 @@ - (BOOL)application:(UIApplication *)application return returnedValue; } -- (BOOL)application:(UIApplication *)application +#endif // TARGET_OS_IOS || TARGET_OS_TV + +#if TARGET_OS_IOS + +- (BOOL)application:(GULApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { + SEL methodSelector = @selector(application:openURL:sourceApplication:annotation:); + // Call the real implementation if the real App Delegate has any. NSValue *openURLSourceAppAnnotationIMPPointer = - objc_getAssociatedObject(self, &kGULOpenURLOptionsSourceAnnotationsIMPKey); + [GULAppDelegateSwizzler originalImplementationForSelector:methodSelector object:self]; GULRealOpenURLSourceApplicationAnnotationIMP openURLSourceApplicationAnnotationIMP = [openURLSourceAppAnnotationIMPPointer pointerValue]; __block BOOL returnedValue = NO; - SEL methodSelector = @selector(application:openURL:sourceApplication:annotation:); [GULAppDelegateSwizzler notifyInterceptorsWithMethodSelector:methodSelector - callback:^(id interceptor) { + callback:^(id interceptor) { #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wdeprecated-declarations" returnedValue |= [interceptor application:application @@ -588,25 +762,29 @@ - (BOOL)application:(UIApplication *)application return returnedValue; } +#endif // TARGET_OS_IOS + #pragma mark - [Donor Methods] Network overridden handler methods +#if TARGET_OS_IOS || TARGET_OS_TV + #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wstrict-prototypes" -- (void)application:(UIApplication *)application +- (void)application:(GULApplication *)application handleEventsForBackgroundURLSession:(NSString *)identifier completionHandler:(void (^)())completionHandler API_AVAILABLE(ios(7.0)) { #pragma clang diagnostic pop + SEL methodSelector = @selector(application: + handleEventsForBackgroundURLSession:completionHandler:); NSValue *handleBackgroundSessionPointer = - objc_getAssociatedObject(self, &kGULHandleBackgroundSessionIMPKey); + [GULAppDelegateSwizzler originalImplementationForSelector:methodSelector object:self]; GULRealHandleEventsForBackgroundURLSessionIMP handleBackgroundSessionIMP = [handleBackgroundSessionPointer pointerValue]; // Notify interceptors. - SEL methodSelector = - @selector(application:handleEventsForBackgroundURLSession:completionHandler:); [GULAppDelegateSwizzler notifyInterceptorsWithMethodSelector:methodSelector - callback:^(id interceptor) { + callback:^(id interceptor) { [interceptor application:application handleEventsForBackgroundURLSession:identifier completionHandler:completionHandler]; @@ -617,28 +795,32 @@ - (void)application:(UIApplication *)application } } +#endif // TARGET_OS_IOS || TARGET_OS_TV + #pragma mark - [Donor Methods] User Activities overridden handler methods // This is needed to for the library to be warning free on iOS versions < 8. #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wunguarded-availability" -- (BOOL)application:(UIApplication *)application +- (BOOL)application:(GULApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray *restorableObjects))restorationHandler { + SEL methodSelector = @selector(application:continueUserActivity:restorationHandler:); NSValue *continueUserActivityIMPPointer = - objc_getAssociatedObject(self, &kGULContinueUserActivityIMPKey); + [GULAppDelegateSwizzler originalImplementationForSelector:methodSelector object:self]; GULRealContinueUserActivityIMP continueUserActivityIMP = continueUserActivityIMPPointer.pointerValue; __block BOOL returnedValue = NO; - SEL methodSelector = @selector(application:continueUserActivity:restorationHandler:); +#if !TARGET_OS_WATCH [GULAppDelegateSwizzler notifyInterceptorsWithMethodSelector:methodSelector - callback:^(id interceptor) { + callback:^(id interceptor) { returnedValue |= [interceptor application:application continueUserActivity:userActivity restorationHandler:restorationHandler]; }]; +#endif // Call the real implementation if the real App Delegate has any. if (continueUserActivityIMP) { returnedValue |= continueUserActivityIMP(self, methodSelector, application, userActivity, @@ -648,8 +830,149 @@ - (BOOL)application:(UIApplication *)application } #pragma clang diagnostic pop -+ (void)proxyAppDelegate:(id)appDelegate { - id originalDelegate = appDelegate; +#pragma mark - [Donor Methods] Remote Notifications + +- (void)application:(GULApplication *)application + donor_didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { + SEL methodSelector = NSSelectorFromString(kGULDidRegisterForRemoteNotificationsSEL); + + NSValue *didRegisterForRemoteNotificationsIMPPointer = + [GULAppDelegateSwizzler originalImplementationForSelector:methodSelector object:self]; + GULRealDidRegisterForRemoteNotificationsIMP didRegisterForRemoteNotificationsIMP = + [didRegisterForRemoteNotificationsIMPPointer pointerValue]; + + // Notify interceptors. + [GULAppDelegateSwizzler + notifyInterceptorsWithMethodSelector:methodSelector + callback:^(id interceptor) { + NSInvocation *invocation = [GULAppDelegateSwizzler + appDelegateInvocationForSelector:methodSelector]; + [invocation setTarget:interceptor]; + [invocation setSelector:methodSelector]; + [invocation setArgument:(void *)(&application) atIndex:2]; + [invocation setArgument:(void *)(&deviceToken) atIndex:3]; + [invocation invoke]; + }]; + // Call the real implementation if the real App Delegate has any. + if (didRegisterForRemoteNotificationsIMP) { + didRegisterForRemoteNotificationsIMP(self, methodSelector, application, deviceToken); + } +} + +- (void)application:(GULApplication *)application + donor_didFailToRegisterForRemoteNotificationsWithError:(NSError *)error { + SEL methodSelector = NSSelectorFromString(kGULDidFailToRegisterForRemoteNotificationsSEL); + NSValue *didFailToRegisterForRemoteNotificationsIMPPointer = + [GULAppDelegateSwizzler originalImplementationForSelector:methodSelector object:self]; + GULRealDidFailToRegisterForRemoteNotificationsIMP didFailToRegisterForRemoteNotificationsIMP = + [didFailToRegisterForRemoteNotificationsIMPPointer pointerValue]; + + // Notify interceptors. + [GULAppDelegateSwizzler + notifyInterceptorsWithMethodSelector:methodSelector + callback:^(id interceptor) { + NSInvocation *invocation = [GULAppDelegateSwizzler + appDelegateInvocationForSelector:methodSelector]; + [invocation setTarget:interceptor]; + [invocation setSelector:methodSelector]; + [invocation setArgument:(void *)(&application) atIndex:2]; + [invocation setArgument:(void *)(&error) atIndex:3]; + [invocation invoke]; + }]; + // Call the real implementation if the real App Delegate has any. + if (didFailToRegisterForRemoteNotificationsIMP) { + didFailToRegisterForRemoteNotificationsIMP(self, methodSelector, application, error); + } +} + +#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 70000 && !TARGET_OS_WATCH +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wunguarded-availability" +- (void)application:(GULApplication *)application + donor_didReceiveRemoteNotification:(NSDictionary *)userInfo + fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler { + SEL methodSelector = NSSelectorFromString(kGULDidReceiveRemoteNotificationWithCompletionSEL); + NSValue *didReceiveRemoteNotificationWithCompletionIMPPointer = + [GULAppDelegateSwizzler originalImplementationForSelector:methodSelector object:self]; + GULRealDidReceiveRemoteNotificationWithCompletionIMP + didReceiveRemoteNotificationWithCompletionIMP = + [didReceiveRemoteNotificationWithCompletionIMPPointer pointerValue]; + + // Notify interceptors. + [GULAppDelegateSwizzler + notifyInterceptorsWithMethodSelector:methodSelector + callback:^(id interceptor) { + NSInvocation *invocation = [GULAppDelegateSwizzler + appDelegateInvocationForSelector:methodSelector]; + [invocation setTarget:interceptor]; + [invocation setSelector:methodSelector]; + [invocation setArgument:(void *)(&application) atIndex:2]; + [invocation setArgument:(void *)(&userInfo) atIndex:3]; + [invocation setArgument:(void *)(&completionHandler) atIndex:4]; + [invocation invoke]; + }]; + // Call the real implementation if the real App Delegate has any. + if (didReceiveRemoteNotificationWithCompletionIMP) { + didReceiveRemoteNotificationWithCompletionIMP(self, methodSelector, application, userInfo, + completionHandler); + } +} +#pragma clang diagnostic pop +#endif // __IPHONE_OS_VERSION_MAX_ALLOWED >= 70000 && !TARGET_OS_WATCH + +- (void)application:(GULApplication *)application + donor_didReceiveRemoteNotification:(NSDictionary *)userInfo { + SEL methodSelector = NSSelectorFromString(kGULDidReceiveRemoteNotificationSEL); + NSValue *didReceiveRemoteNotificationIMPPointer = + [GULAppDelegateSwizzler originalImplementationForSelector:methodSelector object:self]; + GULRealDidReceiveRemoteNotificationIMP didReceiveRemoteNotificationIMP = + [didReceiveRemoteNotificationIMPPointer pointerValue]; + + // Notify interceptors. +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + [GULAppDelegateSwizzler + notifyInterceptorsWithMethodSelector:methodSelector + callback:^(id interceptor) { + NSInvocation *invocation = [GULAppDelegateSwizzler + appDelegateInvocationForSelector:methodSelector]; + [invocation setTarget:interceptor]; + [invocation setSelector:methodSelector]; + [invocation setArgument:(void *)(&application) atIndex:2]; + [invocation setArgument:(void *)(&userInfo) atIndex:3]; + [invocation invoke]; + }]; +#pragma clang diagnostic pop + // Call the real implementation if the real App Delegate has any. + if (didReceiveRemoteNotificationIMP) { + didReceiveRemoteNotificationIMP(self, methodSelector, application, userInfo); + } +} + ++ (nullable NSInvocation *)appDelegateInvocationForSelector:(SEL)selector { + struct objc_method_description methodDescription = + protocol_getMethodDescription(@protocol(GULApplicationDelegate), selector, NO, YES); + if (methodDescription.types == NULL) { + return nil; + } + + NSMethodSignature *signature = [NSMethodSignature signatureWithObjCTypes:methodDescription.types]; + return [NSInvocation invocationWithMethodSignature:signature]; +} + ++ (void)proxyAppDelegate:(id)appDelegate { + if (![appDelegate conformsToProtocol:@protocol(GULApplicationDelegate)]) { + GULLogNotice( + kGULLoggerSwizzler, NO, + [NSString + stringWithFormat:@"I-SWZ%06ld", + (long)kGULSwizzlerMessageCodeAppDelegateSwizzlingInvalidAppDelegate], + @"App Delegate does not conform to UIApplicationDelegate protocol. %@", + [GULAppDelegateSwizzler correctAlternativeWhenAppDelegateProxyNotCreated]); + return; + } + + id originalDelegate = appDelegate; // Do not create a subclass if it is not enabled. if (![GULAppDelegateSwizzler isAppDelegateProxyEnabled]) { GULLogNotice(kGULLoggerSwizzler, NO, @@ -670,7 +993,9 @@ + (void)proxyAppDelegate:(id)appDelegate { } @try { - [self createSubclassWithObject:originalDelegate]; + gOriginalAppDelegateClass = [originalDelegate class]; + gAppDelegateSubclass = [self createSubclassWithObject:originalDelegate]; + [self reassignAppDelegate]; } @catch (NSException *exception) { GULLogError(kGULLoggerSwizzler, NO, [NSString stringWithFormat:@"I-SWZ%06ld", @@ -697,22 +1022,17 @@ + (NSString *)correctAlternativeWhenAppDelegateProxyNotCreated { #pragma mark - Private Methods for Testing -#ifdef GUL_APP_DELEGATE_TESTING - + (void)clearInterceptors { [[self interceptors] removeAllObjects]; } + (void)resetProxyOriginalDelegateOnceToken { sProxyAppDelegateOnceToken = 0; + sProxyAppDelegateRemoteNotificationOnceToken = 0; } -+ (id)originalDelegate { ++ (id)originalDelegate { return gOriginalAppDelegate; } -#endif // GUL_APP_DELEGATE_TESTING - @end - -#endif // TARGET_OS_IOS diff --git a/Pods/GoogleUtilities/GoogleUtilities/AppDelegateSwizzler/Internal/GULAppDelegateSwizzler_Private.h b/Pods/GoogleUtilities/GoogleUtilities/AppDelegateSwizzler/Internal/GULAppDelegateSwizzler_Private.h index 219b220cfd..d7ebd86809 100644 --- a/Pods/GoogleUtilities/GoogleUtilities/AppDelegateSwizzler/Internal/GULAppDelegateSwizzler_Private.h +++ b/Pods/GoogleUtilities/GoogleUtilities/AppDelegateSwizzler/Internal/GULAppDelegateSwizzler_Private.h @@ -14,27 +14,22 @@ * limitations under the License. */ +#import #import #import -@class UIApplication; +@class GULApplication; NS_ASSUME_NONNULL_BEGIN @interface GULAppDelegateSwizzler () -/** Returns the current sharedApplication. - * - * @return the current UIApplication if in an app, or nil if in extension or if it doesn't exist. - */ -+ (nullable UIApplication *)sharedApplication; - /** ISA Swizzles the given appDelegate as the original app delegate would be. * * @param appDelegate The object that needs to be isa swizzled. This should conform to the - * UIApplicationDelegate protocol. + * application delegate protocol. */ -+ (void)proxyAppDelegate:(id)appDelegate; ++ (void)proxyAppDelegate:(id)appDelegate; /** Returns a dictionary containing interceptor IDs mapped to a GULZeroingWeakContainer. * @@ -43,8 +38,6 @@ NS_ASSUME_NONNULL_BEGIN */ + (GULMutableDictionary *)interceptors; -#ifdef GUL_APP_DELEGATE_TESTING // Methods only used in tests. - /** Deletes all the registered interceptors. */ + (void)clearInterceptors; @@ -55,9 +48,7 @@ NS_ASSUME_NONNULL_BEGIN * * @return The original app delegate instance that was proxied. */ -+ (id)originalDelegate; - -#endif // GUL_APP_DELEGATE_TESTING ++ (id)originalDelegate; @end diff --git a/Pods/GoogleUtilities/GoogleUtilities/AppDelegateSwizzler/Private/GULAppDelegateSwizzler.h b/Pods/GoogleUtilities/GoogleUtilities/AppDelegateSwizzler/Private/GULAppDelegateSwizzler.h index 31fc4b0ab0..c1b2d6e1d3 100644 --- a/Pods/GoogleUtilities/GoogleUtilities/AppDelegateSwizzler/Private/GULAppDelegateSwizzler.h +++ b/Pods/GoogleUtilities/GoogleUtilities/AppDelegateSwizzler/Private/GULAppDelegateSwizzler.h @@ -16,7 +16,7 @@ #import -@protocol UIApplicationDelegate; +#import NS_ASSUME_NONNULL_BEGIN @@ -28,13 +28,13 @@ typedef NSString *const GULAppDelegateInterceptorID; /** Registers an app delegate interceptor whose methods will be invoked as they're invoked on the * original app delegate. * - * @param interceptor An instance of a class that conforms to the UIApplicationDelegate protocol. + * @param interceptor An instance of a class that conforms to the application delegate protocol. * The interceptor is NOT retained. * @return A unique GULAppDelegateInterceptorID if interceptor was successfully registered; nil * if it fails. */ + (nullable GULAppDelegateInterceptorID)registerAppDelegateInterceptor: - (id)interceptor; + (id)interceptor; /** Unregisters an interceptor with the given ID if it exists. * @@ -45,9 +45,46 @@ typedef NSString *const GULAppDelegateInterceptorID; /** This method ensures that the original app delegate has been proxied. Call this before * registering your interceptor. This method is safe to call multiple times (but it only proxies * the app delegate once). + * + * This method doesn't proxy APNS related methods: + * @code + * - application:didRegisterForRemoteNotificationsWithDeviceToken: + * - application:didFailToRegisterForRemoteNotificationsWithError: + * - application:didReceiveRemoteNotification:fetchCompletionHandler: + * - application:didReceiveRemoteNotification: + * @endcode + * + * To proxy these methods use +[GULAppDelegateSwizzler + * proxyOriginalDelegateIncludingAPNSMethods]. The methods have to be proxied separately to + * avoid potential warnings from Apple review about missing Push Notification Entitlement (e.g. + * https://github.com/firebase/firebase-ios-sdk/issues/2807) + * + * The method has no effect for extensions. + * + * @see proxyOriginalDelegateIncludingAPNSMethods + */ ++ (void)proxyOriginalDelegate; + +/** This method ensures that the original app delegate has been proxied including APNS related + * methods. Call this before registering your interceptor. This method is safe to call multiple + * times (but it only proxies the app delegate once) or + * after +[GULAppDelegateSwizzler proxyOriginalDelegate] + * + * This method calls +[GULAppDelegateSwizzler proxyOriginalDelegate] under the hood. + * After calling this method the following App Delegate methods will be proxied in addition to + * the methods proxied by proxyOriginalDelegate: + * @code + * - application:didRegisterForRemoteNotificationsWithDeviceToken: + * - application:didFailToRegisterForRemoteNotificationsWithError: + * - application:didReceiveRemoteNotification:fetchCompletionHandler: + * - application:didReceiveRemoteNotification: + * @endcode + * + * The method has no effect for extensions. + * + * @see proxyOriginalDelegate */ -+ (void)proxyOriginalDelegate NS_EXTENSION_UNAVAILABLE( - "App delegate proxy doesn't support extensions."); ++ (void)proxyOriginalDelegateIncludingAPNSMethods; /** Indicates whether app delegate proxy is explicitly disabled or enabled. Enabled by default. * @@ -55,6 +92,13 @@ typedef NSString *const GULAppDelegateInterceptorID; */ + (BOOL)isAppDelegateProxyEnabled; +/** Returns the current sharedApplication. + * + * @return the current application instance if in an app, or nil if in extension or if it doesn't + * exist. + */ ++ (nullable GULApplication *)sharedApplication; + /** Do not initialize this class. */ - (instancetype)init NS_UNAVAILABLE; diff --git a/Pods/GoogleUtilities/GoogleUtilities/AppDelegateSwizzler/Private/GULApplication.h b/Pods/GoogleUtilities/GoogleUtilities/AppDelegateSwizzler/Private/GULApplication.h new file mode 100644 index 0000000000..80672124a0 --- /dev/null +++ b/Pods/GoogleUtilities/GoogleUtilities/AppDelegateSwizzler/Private/GULApplication.h @@ -0,0 +1,50 @@ +/* + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +#if TARGET_OS_IOS || TARGET_OS_TV + +#import + +#define GULApplication UIApplication +#define GULApplicationDelegate UIApplicationDelegate +#define GULUserActivityRestoring UIUserActivityRestoring + +static NSString *const kGULApplicationClassName = @"UIApplication"; + +#elif TARGET_OS_OSX + +#import + +#define GULApplication NSApplication +#define GULApplicationDelegate NSApplicationDelegate +#define GULUserActivityRestoring NSUserActivityRestoring + +static NSString *const kGULApplicationClassName = @"NSApplication"; + +#elif TARGET_OS_WATCH + +#import + +// We match the according watchOS API but swizzling should not work in watch +#define GULApplication WKExtension +#define GULApplicationDelegate WKExtensionDelegate +#define GULUserActivityRestoring NSUserActivityRestoring + +static NSString *const kGULApplicationClassName = @"WKExtension"; + +#endif diff --git a/Pods/GoogleUtilities/GoogleUtilities/Common/GULLoggerCodes.h b/Pods/GoogleUtilities/GoogleUtilities/Common/GULLoggerCodes.h index b71c03797c..053ce8432b 100644 --- a/Pods/GoogleUtilities/GoogleUtilities/Common/GULLoggerCodes.h +++ b/Pods/GoogleUtilities/GoogleUtilities/Common/GULLoggerCodes.h @@ -14,22 +14,42 @@ * limitations under the License. */ +#import + typedef NS_ENUM(NSInteger, GULSwizzlerMessageCode) { // App Delegate Swizzling. - kGULSwizzlerMessageCodeAppDelegateSwizzling000 = 1000, // I-SWZ001000 - kGULSwizzlerMessageCodeAppDelegateSwizzling001 = 1001, // I-SWZ001001 - kGULSwizzlerMessageCodeAppDelegateSwizzling002 = 1002, // I-SWZ001002 - kGULSwizzlerMessageCodeAppDelegateSwizzling003 = 1003, // I-SWZ001003 - kGULSwizzlerMessageCodeAppDelegateSwizzling004 = 1004, // I-SWZ001004 - kGULSwizzlerMessageCodeAppDelegateSwizzling005 = 1005, // I-SWZ001005 - kGULSwizzlerMessageCodeAppDelegateSwizzling006 = 1006, // I-SWZ001006 - kGULSwizzlerMessageCodeAppDelegateSwizzling007 = 1007, // I-SWZ001007 - kGULSwizzlerMessageCodeAppDelegateSwizzling008 = 1008, // I-SWZ001008 - kGULSwizzlerMessageCodeAppDelegateSwizzling009 = 1009, // I-SWZ001009 - kGULSwizzlerMessageCodeAppDelegateSwizzling010 = 1010, // I-SWZ001010 - kGULSwizzlerMessageCodeAppDelegateSwizzling011 = 1011, // I-SWZ001011 - kGULSwizzlerMessageCodeAppDelegateSwizzling012 = 1012, // I-SWZ001012 - kGULSwizzlerMessageCodeAppDelegateSwizzling013 = 1013, // I-SWZ001013 + kGULSwizzlerMessageCodeAppDelegateSwizzling000 = 1000, // I-SWZ001000 + kGULSwizzlerMessageCodeAppDelegateSwizzling001 = 1001, // I-SWZ001001 + kGULSwizzlerMessageCodeAppDelegateSwizzling002 = 1002, // I-SWZ001002 + kGULSwizzlerMessageCodeAppDelegateSwizzling003 = 1003, // I-SWZ001003 + kGULSwizzlerMessageCodeAppDelegateSwizzling004 = 1004, // I-SWZ001004 + kGULSwizzlerMessageCodeAppDelegateSwizzling005 = 1005, // I-SWZ001005 + kGULSwizzlerMessageCodeAppDelegateSwizzling006 = 1006, // I-SWZ001006 + kGULSwizzlerMessageCodeAppDelegateSwizzling007 = 1007, // I-SWZ001007 + kGULSwizzlerMessageCodeAppDelegateSwizzling008 = 1008, // I-SWZ001008 + kGULSwizzlerMessageCodeAppDelegateSwizzling009 = 1009, // I-SWZ001009 + kGULSwizzlerMessageCodeAppDelegateSwizzling010 = 1010, // I-SWZ001010 + kGULSwizzlerMessageCodeAppDelegateSwizzling011 = 1011, // I-SWZ001011 + kGULSwizzlerMessageCodeAppDelegateSwizzling012 = 1012, // I-SWZ001012 + kGULSwizzlerMessageCodeAppDelegateSwizzling013 = 1013, // I-SWZ001013 + kGULSwizzlerMessageCodeAppDelegateSwizzlingInvalidAppDelegate = 1014, // I-SWZ001014 + + // Scene Delegate Swizzling. + kGULSwizzlerMessageCodeSceneDelegateSwizzling000 = 1100, // I-SWZ001100 + kGULSwizzlerMessageCodeSceneDelegateSwizzling001 = 1101, // I-SWZ001101 + kGULSwizzlerMessageCodeSceneDelegateSwizzling002 = 1102, // I-SWZ001102 + kGULSwizzlerMessageCodeSceneDelegateSwizzling003 = 1103, // I-SWZ001103 + kGULSwizzlerMessageCodeSceneDelegateSwizzling004 = 1104, // I-SWZ001104 + kGULSwizzlerMessageCodeSceneDelegateSwizzling005 = 1105, // I-SWZ001105 + kGULSwizzlerMessageCodeSceneDelegateSwizzling006 = 1106, // I-SWZ001106 + kGULSwizzlerMessageCodeSceneDelegateSwizzling007 = 1107, // I-SWZ001107 + kGULSwizzlerMessageCodeSceneDelegateSwizzling008 = 1108, // I-SWZ001108 + kGULSwizzlerMessageCodeSceneDelegateSwizzling009 = 1109, // I-SWZ001109 + kGULSwizzlerMessageCodeSceneDelegateSwizzling010 = 1110, // I-SWZ001110 + kGULSwizzlerMessageCodeSceneDelegateSwizzling011 = 1111, // I-SWZ001111 + kGULSwizzlerMessageCodeSceneDelegateSwizzling012 = 1112, // I-SWZ001112 + kGULSwizzlerMessageCodeSceneDelegateSwizzling013 = 1113, // I-SWZ001113 + kGULSwizzlerMessageCodeSceneDelegateSwizzlingInvalidSceneDelegate = 1114, // I-SWZ001114 // Method Swizzling. kGULSwizzlerMessageCodeMethodSwizzling000 = 2000, // I-SWZ002000 diff --git a/Pods/GoogleUtilities/GoogleUtilities/Environment/GULHeartbeatDateStorage.m b/Pods/GoogleUtilities/GoogleUtilities/Environment/GULHeartbeatDateStorage.m new file mode 100644 index 0000000000..483c85903f --- /dev/null +++ b/Pods/GoogleUtilities/GoogleUtilities/Environment/GULHeartbeatDateStorage.m @@ -0,0 +1,140 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import +#import + +@interface GULHeartbeatDateStorage () +/** The storage to store the date of the last sent heartbeat. */ +@property(nonatomic, readonly) NSFileCoordinator *fileCoordinator; +@end + +@implementation GULHeartbeatDateStorage + +- (instancetype)initWithFileName:(NSString *)fileName { + if (fileName == nil) { + return nil; + } + + self = [super init]; + if (self) { + _fileCoordinator = [[NSFileCoordinator alloc] initWithFilePresenter:nil]; + NSURL *directoryURL = [[self class] directoryPathURL]; + [[self class] checkAndCreateDirectory:directoryURL fileCoordinator:_fileCoordinator]; + _fileURL = [directoryURL URLByAppendingPathComponent:fileName]; + } + return self; +} + +/** Returns the URL path of the Application Support folder. + * @return the URL path of Application Support. + */ ++ (NSURL *)directoryPathURL { + NSArray *paths = + NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES); + NSArray *components = @[ paths.lastObject, @"Google/FIRApp" ]; + NSString *directoryString = [NSString pathWithComponents:components]; + NSURL *directoryURL = [NSURL fileURLWithPath:directoryString]; + return directoryURL; +} + +/** Checks and creates a directory for the directory specified by the + * directory url + * @param directoryPathURL The path to the directory which needs to be created. + * @param fileCoordinator The fileCoordinator object to coordinate writes to the directory. + */ ++ (void)checkAndCreateDirectory:(NSURL *)directoryPathURL + fileCoordinator:(NSFileCoordinator *)fileCoordinator { + NSError *fileCoordinatorError = nil; + [fileCoordinator + coordinateWritingItemAtURL:directoryPathURL + options:0 + error:&fileCoordinatorError + byAccessor:^(NSURL *writingDirectoryURL) { + NSError *error; + if (![writingDirectoryURL checkResourceIsReachableAndReturnError:&error]) { + // If fail creating the Application Support directory, log warning. + NSError *error; + [[NSFileManager defaultManager] createDirectoryAtURL:writingDirectoryURL + withIntermediateDirectories:YES + attributes:nil + error:&error]; + } + }]; +} + +- (nullable NSMutableDictionary *)heartbeatDictionaryWithFileURL:(NSURL *)readingFileURL { + NSError *error; + NSMutableDictionary *dict; + NSData *objectData = [NSData dataWithContentsOfURL:readingFileURL options:0 error:&error]; + if (objectData == nil || error != nil) { + dict = [NSMutableDictionary dictionary]; + } else { + dict = [GULSecureCoding + unarchivedObjectOfClasses:[NSSet setWithArray:@[ NSDictionary.class, NSDate.class ]] + fromData:objectData + error:&error]; + if (dict == nil || error != nil) { + dict = [NSMutableDictionary dictionary]; + } + } + return dict; +} + +- (nullable NSDate *)heartbeatDateForTag:(NSString *)tag { + __block NSMutableDictionary *dict; + NSError *error; + [self.fileCoordinator coordinateReadingItemAtURL:self.fileURL + options:0 + error:&error + byAccessor:^(NSURL *readingURL) { + dict = [self heartbeatDictionaryWithFileURL:readingURL]; + }]; + return dict[tag]; +} + +- (BOOL)setHearbeatDate:(NSDate *)date forTag:(NSString *)tag { + NSError *error; + __block BOOL isSuccess = false; + [self.fileCoordinator coordinateReadingItemAtURL:self.fileURL + options:0 + writingItemAtURL:self.fileURL + options:0 + error:&error + byAccessor:^(NSURL *readingURL, NSURL *writingURL) { + NSMutableDictionary *dictionary = + [self heartbeatDictionaryWithFileURL:readingURL]; + dictionary[tag] = date; + NSError *error; + isSuccess = [self writeDictionary:dictionary + forWritingURL:writingURL + error:&error]; + }]; + return isSuccess; +} + +- (BOOL)writeDictionary:(NSMutableDictionary *)dictionary + forWritingURL:(NSURL *)writingFileURL + error:(NSError **)outError { + NSData *data = [GULSecureCoding archivedDataWithRootObject:dictionary error:outError]; + if (*outError != nil) { + return false; + } else { + return [data writeToURL:writingFileURL atomically:YES]; + } +} + +@end diff --git a/Pods/GoogleUtilities/GoogleUtilities/Environment/GULSecureCoding.m b/Pods/GoogleUtilities/GoogleUtilities/Environment/GULSecureCoding.m new file mode 100644 index 0000000000..25d5d1998b --- /dev/null +++ b/Pods/GoogleUtilities/GoogleUtilities/Environment/GULSecureCoding.m @@ -0,0 +1,103 @@ +// Copyright 2019 Google +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#import "GoogleUtilities/Environment/Public/GULSecureCoding.h" + +NSString *const kGULSecureCodingError = @"GULSecureCodingError"; + +@implementation GULSecureCoding + ++ (nullable id)unarchivedObjectOfClasses:(NSSet *)classes + fromData:(NSData *)data + error:(NSError **)outError { + id object; +#if __has_builtin(__builtin_available) + if (@available(macOS 10.13, iOS 11.0, tvOS 11.0, watchOS 4.0, *)) { + object = [NSKeyedUnarchiver unarchivedObjectOfClasses:classes fromData:data error:outError]; + } else +#endif // __has_builtin(__builtin_available) + { + @try { +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data]; +#pragma clang diagnostic pop + unarchiver.requiresSecureCoding = YES; + + object = [unarchiver decodeObjectOfClasses:classes forKey:NSKeyedArchiveRootObjectKey]; + } @catch (NSException *exception) { + if (outError) { + *outError = [self archivingErrorWithException:exception]; + } + } + + if (object == nil && outError && *outError == nil) { + NSString *failureReason = @"NSKeyedUnarchiver failed to unarchive data."; + *outError = [NSError errorWithDomain:kGULSecureCodingError + code:-1 + userInfo:@{NSLocalizedFailureReasonErrorKey : failureReason}]; + } + } + + return object; +} + ++ (nullable id)unarchivedObjectOfClass:(Class)class + fromData:(NSData *)data + error:(NSError **)outError { + return [self unarchivedObjectOfClasses:[NSSet setWithObject:class] fromData:data error:outError]; +} + ++ (nullable NSData *)archivedDataWithRootObject:(id)object error:(NSError **)outError { + NSData *archiveData; +#if __has_builtin(__builtin_available) + if (@available(macOS 10.13, iOS 11.0, tvOS 11.0, watchOS 4.0, *)) { + archiveData = [NSKeyedArchiver archivedDataWithRootObject:object + requiringSecureCoding:YES + error:outError]; + } else +#endif // __has_builtin(__builtin_available) + { + @try { + NSMutableData *data = [NSMutableData data]; +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data]; +#pragma clang diagnostic pop + archiver.requiresSecureCoding = YES; + + [archiver encodeObject:object forKey:NSKeyedArchiveRootObjectKey]; + [archiver finishEncoding]; + + archiveData = [data copy]; + } @catch (NSException *exception) { + if (outError) { + *outError = [self archivingErrorWithException:exception]; + } + } + } + + return archiveData; +} + ++ (NSError *)archivingErrorWithException:(NSException *)exception { + NSString *failureReason = [NSString + stringWithFormat:@"NSKeyedArchiver exception with name: %@, reason: %@, userInfo: %@", + exception.name, exception.reason, exception.userInfo]; + NSDictionary *errorUserInfo = @{NSLocalizedFailureReasonErrorKey : failureReason}; + + return [NSError errorWithDomain:kGULSecureCodingError code:-1 userInfo:errorUserInfo]; +} + +@end diff --git a/Pods/GoogleUtilities/GoogleUtilities/Environment/Public/GULHeartbeatDateStorage.h b/Pods/GoogleUtilities/GoogleUtilities/Environment/Public/GULHeartbeatDateStorage.h new file mode 100644 index 0000000000..9432dfc043 --- /dev/null +++ b/Pods/GoogleUtilities/GoogleUtilities/Environment/Public/GULHeartbeatDateStorage.h @@ -0,0 +1,49 @@ +/* + * Copyright 2019 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +NS_ASSUME_NONNULL_BEGIN + +/// Stores either a date or a dictionary to a specified file. +@interface GULHeartbeatDateStorage : NSObject + +- (instancetype)init NS_UNAVAILABLE; + +@property(nonatomic, readonly) NSURL *fileURL; + +/** + * Default initializer. + * @param fileName The name of the file to store the date information. + * exist, it will be created if needed. + */ +- (instancetype)initWithFileName:(NSString *)fileName; + +/** + * Reads the date from the specified file for the given tag. + * @return Returns date if exists, otherwise `nil`. + */ +- (nullable NSDate *)heartbeatDateForTag:(NSString *)tag; + +/** + * Saves the date for the specified tag in the specified file. + * @return YES on success, NO otherwise. + */ +- (BOOL)setHearbeatDate:(NSDate *)date forTag:(NSString *)tag; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/GoogleUtilities/GoogleUtilities/Environment/Public/GULSecureCoding.h b/Pods/GoogleUtilities/GoogleUtilities/Environment/Public/GULSecureCoding.h new file mode 100644 index 0000000000..8484b3953a --- /dev/null +++ b/Pods/GoogleUtilities/GoogleUtilities/Environment/Public/GULSecureCoding.h @@ -0,0 +1,36 @@ +// Copyright 2019 Google +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** The class wraps `NSKeyedArchiver` and `NSKeyedUnarchiver` API to provide a unified secure coding + * methods for iOS versions before and after 11. + */ +@interface GULSecureCoding : NSObject + ++ (nullable id)unarchivedObjectOfClasses:(NSSet *)classes + fromData:(NSData *)data + error:(NSError **)outError; + ++ (nullable id)unarchivedObjectOfClass:(Class)class + fromData:(NSData *)data + error:(NSError **)outError; + ++ (nullable NSData *)archivedDataWithRootObject:(id)object error:(NSError **)outError; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/GoogleUtilities/GoogleUtilities/Environment/third_party/GULAppEnvironmentUtil.h b/Pods/GoogleUtilities/GoogleUtilities/Environment/third_party/GULAppEnvironmentUtil.h index 5b562719cb..d5502647c2 100644 --- a/Pods/GoogleUtilities/GoogleUtilities/Environment/third_party/GULAppEnvironmentUtil.h +++ b/Pods/GoogleUtilities/GoogleUtilities/Environment/third_party/GULAppEnvironmentUtil.h @@ -40,4 +40,7 @@ /// Indicates whether it is running inside an extension or an app. + (BOOL)isAppExtension; +/// @return Returns @YES when is run on iOS version greater or equal to 7.0 ++ (BOOL)isIOS7OrHigher; + @end diff --git a/Pods/GoogleUtilities/GoogleUtilities/Environment/third_party/GULAppEnvironmentUtil.m b/Pods/GoogleUtilities/GoogleUtilities/Environment/third_party/GULAppEnvironmentUtil.m index 1fa767b185..8b1ac6ab06 100644 --- a/Pods/GoogleUtilities/GoogleUtilities/Environment/third_party/GULAppEnvironmentUtil.m +++ b/Pods/GoogleUtilities/GoogleUtilities/Environment/third_party/GULAppEnvironmentUtil.m @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -#import "GULAppEnvironmentUtil.h" +#import "GoogleUtilities/Environment/third_party/GULAppEnvironmentUtil.h" #import #import @@ -129,7 +129,7 @@ static BOOL IsAppEncrypted() { } static BOOL HasSCInfoFolder() { -#if TARGET_OS_IOS || TARGET_OS_TV +#if TARGET_OS_IOS || TARGET_OS_TV || TARGET_OS_WATCH NSString *bundlePath = [NSBundle mainBundle].bundlePath; NSString *scInfoPath = [bundlePath stringByAppendingPathComponent:@"SC_Info"]; return [[NSFileManager defaultManager] fileExistsAtPath:scInfoPath]; @@ -139,7 +139,7 @@ static BOOL HasSCInfoFolder() { } static BOOL HasEmbeddedMobileProvision() { -#if TARGET_OS_IOS || TARGET_OS_TV +#if TARGET_OS_IOS || TARGET_OS_TV || TARGET_OS_WATCH return [[NSBundle mainBundle] pathForResource:@"embedded" ofType:@"mobileprovision"].length > 0; #elif TARGET_OS_OSX return NO; @@ -201,12 +201,17 @@ + (BOOL)isAppStoreReceiptSandbox { } + (BOOL)isSimulator { -#if TARGET_OS_IOS || TARGET_OS_TV +#if TARGET_OS_SIMULATOR + return YES; +#elif TARGET_OS_MACCATALYST + return NO; +#elif TARGET_OS_IOS || TARGET_OS_TV NSString *platform = [GULAppEnvironmentUtil deviceModel]; return [platform isEqual:@"x86_64"] || [platform isEqual:@"i386"]; #elif TARGET_OS_OSX return NO; #endif + return NO; } + (NSString *)deviceModel { @@ -225,7 +230,7 @@ + (NSString *)deviceModel { + (NSString *)systemVersion { #if TARGET_OS_IOS return [UIDevice currentDevice].systemVersion; -#elif TARGET_OS_OSX || TARGET_OS_TV +#elif TARGET_OS_OSX || TARGET_OS_TV || TARGET_OS_WATCH // Assemble the systemVersion, excluding the patch version if it's 0. NSOperatingSystemVersion osVersion = [NSProcessInfo processInfo].operatingSystemVersion; NSMutableString *versionString = [[NSMutableString alloc] @@ -238,7 +243,7 @@ + (NSString *)systemVersion { } + (BOOL)isAppExtension { -#if TARGET_OS_IOS || TARGET_OS_TV +#if TARGET_OS_IOS || TARGET_OS_TV || TARGET_OS_WATCH // Documented by Apple BOOL appExtension = [[[NSBundle mainBundle] bundlePath] hasSuffix:@".appex"]; return appExtension; @@ -247,4 +252,16 @@ + (BOOL)isAppExtension { #endif } ++ (BOOL)isIOS7OrHigher { +#if __has_builtin(__builtin_available) + if (@available(iOS 7.0, *)) { +#else + if ([[UIDevice currentDevice].systemVersion integerValue] >= 7) { +#endif + return YES; + } + + return NO; +} + @end diff --git a/Pods/GoogleUtilities/GoogleUtilities/LICENSE b/Pods/GoogleUtilities/GoogleUtilities/LICENSE new file mode 100644 index 0000000000..30a8f72520 --- /dev/null +++ b/Pods/GoogleUtilities/GoogleUtilities/LICENSE @@ -0,0 +1,247 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +================================================================================ + +The following copyright from Landon J. Fuller applies to the isAppEncrypted +function in Environment/third_party/GULAppEnvironmentUtil.m. + +Copyright (c) 2017 Landon J. Fuller +All rights reserved. + +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. + +Comment from +iPhone Dev Wiki +Crack Prevention: App Store binaries are signed by both their developer +and Apple. This encrypts the binary so that decryption keys are needed in order +to make the binary readable. When iOS executes the binary, the decryption keys +are used to decrypt the binary into a readable state where it is then loaded +into memory and executed. iOS can tell the encryption status of a binary via the +cryptid structure member of LC_ENCRYPTION_INFO MachO load command. If cryptid is +a non-zero value then the binary is encrypted. + +'Cracking' works by letting the kernel decrypt the binary then siphoning the +decrypted data into a new binary file, resigning, and repackaging. This will +only work on jailbroken devices as codesignature validation has been removed. +Resigning takes place because while the codesignature doesn't have to be valid +thanks to the jailbreak, it does have to be in place unless you have AppSync or +similar to disable codesignature checks. + +More information at Landon +Fuller's blog diff --git a/Pods/GoogleUtilities/GoogleUtilities/Logger/GULLogger.m b/Pods/GoogleUtilities/GoogleUtilities/Logger/GULLogger.m index 4feb77a537..0a512da60a 100644 --- a/Pods/GoogleUtilities/GoogleUtilities/Logger/GULLogger.m +++ b/Pods/GoogleUtilities/GoogleUtilities/Logger/GULLogger.m @@ -12,12 +12,12 @@ // See the License for the specific language governing permissions and // limitations under the License. -#import "Private/GULLogger.h" +#import "GoogleUtilities/Logger/Private/GULLogger.h" #include #import -#import "Public/GULLoggerLevel.h" +#import /// ASL client facility name used by GULLogger. const char *kGULLoggerASLClientFacilityName = "com.google.utilities.logger"; @@ -72,8 +72,9 @@ void GULLoggerInitializeASL(void) { dispatch_set_target_queue(sGULClientQueue, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0)); #ifdef DEBUG - sMessageCodeRegex = - [NSRegularExpression regularExpressionWithPattern:kMessageCodePattern options:0 error:NULL]; + sMessageCodeRegex = [NSRegularExpression regularExpressionWithPattern:kMessageCodePattern + options:0 + error:NULL]; #endif }); } @@ -155,14 +156,20 @@ void GULLogBasic(GULLoggerLevel level, #ifdef DEBUG NSCAssert(messageCode.length == 11, @"Incorrect message code length."); NSRange messageCodeRange = NSMakeRange(0, messageCode.length); - NSUInteger numberOfMatches = - [sMessageCodeRegex numberOfMatchesInString:messageCode options:0 range:messageCodeRange]; + NSUInteger numberOfMatches = [sMessageCodeRegex numberOfMatchesInString:messageCode + options:0 + range:messageCodeRange]; NSCAssert(numberOfMatches == 1, @"Incorrect message code format."); #endif - NSString *logMsg = [[NSString alloc] initWithFormat:message arguments:args_ptr]; + NSString *logMsg; + if (args_ptr == NULL) { + logMsg = message; + } else { + logMsg = [[NSString alloc] initWithFormat:message arguments:args_ptr]; + } logMsg = [NSString stringWithFormat:@"%s - %@[%@] %@", sVersion, service, messageCode, logMsg]; dispatch_async(sGULClientQueue, ^{ - asl_log(sGULLoggerClient, NULL, level, "%s", logMsg.UTF8String); + asl_log(sGULLoggerClient, NULL, (int)level, "%s", logMsg.UTF8String); }); } #pragma clang diagnostic pop @@ -170,10 +177,10 @@ void GULLogBasic(GULLoggerLevel level, /** * Generates the logging functions using macros. * - * Calling GULLogError(kGULLoggerCore, @"I-COR000001", @"Configure %@ failed.", @"blah") shows: - * yyyy-mm-dd hh:mm:ss.SSS sender[PID] [{service}][I-COR000001] Configure blah failed. - * Calling GULLogDebug(kGULLoggerCore, @"I-COR000001", @"Configure succeed.") shows: - * yyyy-mm-dd hh:mm:ss.SSS sender[PID] [{service}][I-COR000001] Configure succeed. + * Calling GULLogError({service}, @"I-XYZ000001", @"Configure %@ failed.", @"blah") shows: + * yyyy-mm-dd hh:mm:ss.SSS sender[PID] [{service}][I-XYZ000001] Configure blah failed. + * Calling GULLogDebug({service}, @"I-XYZ000001", @"Configure succeed.") shows: + * yyyy-mm-dd hh:mm:ss.SSS sender[PID] [{service}][I-XYZ000001] Configure succeed. */ #define GUL_LOGGING_FUNCTION(level) \ void GULLog##level(GULLoggerService service, BOOL force, NSString *messageCode, \ diff --git a/Pods/GoogleUtilities/GoogleUtilities/Logger/Public/GULLoggerLevel.h b/Pods/GoogleUtilities/GoogleUtilities/Logger/Public/GULLoggerLevel.h index 81ff212d71..f0ee435b8f 100644 --- a/Pods/GoogleUtilities/GoogleUtilities/Logger/Public/GULLoggerLevel.h +++ b/Pods/GoogleUtilities/GoogleUtilities/Logger/Public/GULLoggerLevel.h @@ -14,6 +14,8 @@ * limitations under the License. */ +#import + /** * The log levels used by internal logging. */ diff --git a/Pods/GoogleUtilities/GoogleUtilities/MethodSwizzler/GULSwizzler.m b/Pods/GoogleUtilities/GoogleUtilities/MethodSwizzler/GULSwizzler.m index 9839124dd3..27d48bbf09 100644 --- a/Pods/GoogleUtilities/GoogleUtilities/MethodSwizzler/GULSwizzler.m +++ b/Pods/GoogleUtilities/GoogleUtilities/MethodSwizzler/GULSwizzler.m @@ -12,22 +12,18 @@ // See the License for the specific language governing permissions and // limitations under the License. -#import "Private/GULSwizzler.h" +#import "GoogleUtilities/MethodSwizzler/Private/GULSwizzler.h" #import +#ifdef DEBUG #import -#import "../Common/GULLoggerCodes.h" +#import "GoogleUtilities/Common/GULLoggerCodes.h" -#ifdef GUL_UNSWIZZLING_ENABLED -#import -// We need a private method for an assert. -#import +static GULLoggerService kGULLoggerSwizzler = @"[GoogleUtilities/MethodSwizzler]"; #endif -static GULLoggerService kGULLoggerSwizzler = @"[GoogleUtilites/MethodSwizzler]"; - -dispatch_queue_t GetGULSwizzlingQueue() { +dispatch_queue_t GetGULSwizzlingQueue(void) { static dispatch_queue_t queue; static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ @@ -56,82 +52,55 @@ + (void)swizzleClass:(Class)aClass NSAssert(method, @"You're attempting to swizzle a method that doesn't exist. (%@, %@)", NSStringFromClass(resolvedClass), NSStringFromSelector(selector)); IMP newImp = imp_implementationWithBlock(block); - -#ifdef GUL_UNSWIZZLING_ENABLED +#ifdef DEBUG IMP currentImp = class_getMethodImplementation(resolvedClass, selector); - [[GULSwizzlingCache sharedInstance] cacheCurrentIMP:currentImp - forNewIMP:newImp - forClass:resolvedClass - withSelector:selector]; + Class class = NSClassFromString(@"GULSwizzlingCache"); + if (class) { + SEL cacheSelector = NSSelectorFromString(@"cacheCurrentIMP:forNewIMP:forClass:withSelector:"); + NSMethodSignature *methodSignature = [class methodSignatureForSelector:cacheSelector]; + if (methodSignature != nil) { + NSInvocation *inv = [NSInvocation invocationWithMethodSignature:methodSignature]; + [inv setSelector:cacheSelector]; + [inv setTarget:class]; + [inv setArgument:&(currentImp) atIndex:2]; + [inv setArgument:&(newImp) atIndex:3]; + [inv setArgument:&(resolvedClass) atIndex:4]; + [inv setArgument:(void *_Nonnull) & (selector) atIndex:5]; + [inv invoke]; + } + } #endif const char *typeEncoding = method_getTypeEncoding(method); __unused IMP originalImpOfClass = class_replaceMethod(resolvedClass, selector, newImp, typeEncoding); -#ifdef GUL_UNSWIZZLING_ENABLED +#ifdef DEBUG // If !originalImpOfClass, then the IMP came from a superclass. if (originalImpOfClass) { - if (originalImpOfClass != - [[GULSwizzlingCache sharedInstance] originalIMPOfCurrentIMP:currentImp]) { - GULLogWarning(kGULLoggerSwizzler, NO, - [NSString stringWithFormat:@"I-SWZ%06ld", - (long)kGULSwizzlerMessageCodeMethodSwizzling000], - @"Swizzling class: %@ SEL:%@ after it has been previously been swizzled.", - NSStringFromClass(resolvedClass), NSStringFromSelector(selector)); + SEL selector = NSSelectorFromString(@"originalIMPOfCurrentIMP:"); + NSMethodSignature *methodSignature = [class methodSignatureForSelector:selector]; + if (methodSignature != nil) { + NSInvocation *inv = [NSInvocation invocationWithMethodSignature:methodSignature]; + [inv setSelector:selector]; + [inv setTarget:class]; + [inv setArgument:&(currentImp) atIndex:2]; + [inv invoke]; + IMP testOriginal; + [inv getReturnValue:&testOriginal]; + if (originalImpOfClass != testOriginal) { + GULLogWarning(kGULLoggerSwizzler, NO, + [NSString stringWithFormat:@"I-SWZ%06ld", + (long)kGULSwizzlerMessageCodeMethodSwizzling000], + @"Swizzling class: %@ SEL:%@ after it has been previously been swizzled.", + NSStringFromClass(resolvedClass), NSStringFromSelector(selector)); + } } } #endif }); } -+ (void)unswizzleClass:(Class)aClass selector:(SEL)selector isClassSelector:(BOOL)isClassSelector { -#ifdef GUL_UNSWIZZLING_ENABLED - dispatch_sync(GetGULSwizzlingQueue(), ^{ - NSAssert(aClass != nil && selector != nil, @"You cannot unswizzle a nil class or selector."); - Method method = nil; - Class resolvedClass = aClass; - if (isClassSelector) { - resolvedClass = object_getClass(aClass); - method = class_getClassMethod(aClass, selector); - } else { - method = class_getInstanceMethod(aClass, selector); - } - NSAssert(method, @"Couldn't find the method you're unswizzling in the runtime."); - IMP originalImp = - [[GULSwizzlingCache sharedInstance] cachedIMPForClass:resolvedClass withSelector:selector]; - NSAssert(originalImp, @"This class/selector combination hasn't been swizzled"); - IMP currentImp = method_setImplementation(method, originalImp); - BOOL didRemoveBlock = imp_removeBlock(currentImp); - NSAssert(didRemoveBlock, @"Wasn't able to remove the block of a swizzled IMP."); - [[GULSwizzlingCache sharedInstance] clearCacheForSwizzledIMP:currentImp - selector:selector - aClass:resolvedClass]; - }); -#else - NSAssert(NO, @"Unswizzling is disabled."); -#endif -} - -+ (nullable IMP)originalImplementationForClass:(Class)aClass - selector:(SEL)selector - isClassSelector:(BOOL)isClassSelector { -#ifdef GUL_UNSWIZZLING_ENABLED - __block IMP originalImp = nil; - dispatch_sync(GetGULSwizzlingQueue(), ^{ - Class resolvedClass = isClassSelector ? object_getClass(aClass) : aClass; - originalImp = - [[GULSwizzlingCache sharedInstance] cachedIMPForClass:resolvedClass withSelector:selector]; - NSAssert(originalImp, @"The IMP for this class/selector combo doesn't exist (%@, %@).", - NSStringFromClass(resolvedClass), NSStringFromSelector(selector)); - }); - return originalImp; -#else - NSAssert(NO, @"Unswizzling is disabled and the original IMP is not cached."); - return nil; -#endif -} - + (nullable IMP)currentImplementationForClass:(Class)aClass selector:(SEL)selector isClassSelector:(BOOL)isClassSelector { @@ -181,5 +150,4 @@ + (BOOL)selector:(SEL)selector existsInClass:(Class)aClass isClassSelector:(BOOL free(vars); return array; } - @end diff --git a/Pods/GoogleUtilities/GoogleUtilities/MethodSwizzler/Private/GULSwizzler.h b/Pods/GoogleUtilities/GoogleUtilities/MethodSwizzler/Private/GULSwizzler.h index ab008cab92..26949c8867 100644 --- a/Pods/GoogleUtilities/GoogleUtilities/MethodSwizzler/Private/GULSwizzler.h +++ b/Pods/GoogleUtilities/GoogleUtilities/MethodSwizzler/Private/GULSwizzler.h @@ -35,14 +35,6 @@ NS_ASSUME_NONNULL_BEGIN isClassSelector:(BOOL)isClassSelector withBlock:(nullable id)block; -/** Restores the original implementation. - * - * @param aClass The class to unswizzle. - * @param selector The selector to restore the original implementation of. - * @param isClassSelector A BOOL specifying whether the selector is a class or instance selector. - */ -+ (void)unswizzleClass:(Class)aClass selector:(SEL)selector isClassSelector:(BOOL)isClassSelector; - /** Returns the current IMP for the given class and selector. * * @param aClass The class to use. @@ -54,18 +46,6 @@ NS_ASSUME_NONNULL_BEGIN selector:(SEL)selector isClassSelector:(BOOL)isClassSelector; -/** Returns the original IMP for the given class and selector. - * - * @param aClass The class to use. - * @param selector The selector to find the implementation of. - * @param isClassSelector A BOOL specifying whether the selector is a class or instance selector. - * @return The implementation of the selector in the runtime before any consumer or GULSwizzler - * swizzled. - */ -+ (nullable IMP)originalImplementationForClass:(Class)aClass - selector:(SEL)selector - isClassSelector:(BOOL)isClassSelector; - /** Checks the runtime to see if a selector exists on a class. If a property is declared as * @dynamic, we have a reverse swizzling situation, where the implementation of a method exists * only in concrete subclasses, and NOT in the superclass. We can detect that situation using diff --git a/Pods/GoogleUtilities/GoogleUtilities/NSData+zlib/GULNSData+zlib.m b/Pods/GoogleUtilities/GoogleUtilities/NSData+zlib/GULNSData+zlib.m index cd3394a41d..5a77bb8f50 100644 --- a/Pods/GoogleUtilities/GoogleUtilities/NSData+zlib/GULNSData+zlib.m +++ b/Pods/GoogleUtilities/GoogleUtilities/NSData+zlib/GULNSData+zlib.m @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -#import "GULNSData+zlib.h" +#import "GoogleUtilities/NSData+zlib/GULNSData+zlib.h" #import diff --git a/Pods/GoogleUtilities/GoogleUtilities/Network/GULMutableDictionary.m b/Pods/GoogleUtilities/GoogleUtilities/Network/GULMutableDictionary.m index d281eb4450..43896601ff 100644 --- a/Pods/GoogleUtilities/GoogleUtilities/Network/GULMutableDictionary.m +++ b/Pods/GoogleUtilities/GoogleUtilities/Network/GULMutableDictionary.m @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -#import "Private/GULMutableDictionary.h" +#import "GoogleUtilities/Network/Private/GULMutableDictionary.h" @implementation GULMutableDictionary { /// The mutable dictionary. @@ -45,14 +45,14 @@ - (NSString *)description { - (id)objectForKey:(id)key { __block id object; dispatch_sync(_queue, ^{ - object = self->_objects[key]; + object = [self->_objects objectForKey:key]; }); return object; } - (void)setObject:(id)object forKey:(id)key { dispatch_async(_queue, ^{ - self->_objects[key] = object; + [self->_objects setObject:object forKey:key]; }); } @@ -77,13 +77,17 @@ - (NSUInteger)count { } - (id)objectForKeyedSubscript:(id)key { - // The method this calls is already synchronized. - return [self objectForKey:key]; + __block id object; + dispatch_sync(_queue, ^{ + object = self->_objects[key]; + }); + return object; } - (void)setObject:(id)obj forKeyedSubscript:(id)key { - // The method this calls is already synchronized. - [self setObject:obj forKey:key]; + dispatch_async(_queue, ^{ + self->_objects[key] = obj; + }); } - (NSDictionary *)dictionary { diff --git a/Pods/GoogleUtilities/GoogleUtilities/Network/GULNetwork.m b/Pods/GoogleUtilities/GoogleUtilities/Network/GULNetwork.m index 233500b5cd..9d78e0ef7a 100644 --- a/Pods/GoogleUtilities/GoogleUtilities/Network/GULNetwork.m +++ b/Pods/GoogleUtilities/GoogleUtilities/Network/GULNetwork.m @@ -12,14 +12,14 @@ // See the License for the specific language governing permissions and // limitations under the License. -#import "Private/GULNetwork.h" -#import "Private/GULNetworkMessageCode.h" +#import "GoogleUtilities/Network/Private/GULNetwork.h" +#import "GoogleUtilities/Network/Private/GULNetworkMessageCode.h" #import #import #import -#import "Private/GULMutableDictionary.h" -#import "Private/GULNetworkConstants.h" +#import "GoogleUtilities/Network/Private/GULMutableDictionary.h" +#import "GoogleUtilities/Network/Private/GULNetworkConstants.h" /// Constant string for request header Content-Encoding. static NSString *const kGULNetworkContentCompressionKey = @"Content-Encoding"; @@ -257,12 +257,12 @@ - (void)setLoggerDelegate:(id)loggerDelegate { // Explicitly check whether the delegate responds to the methods because conformsToProtocol does // not work correctly even though the delegate does respond to the methods. if (!loggerDelegate || - ![loggerDelegate - respondsToSelector:@selector(GULNetwork_logWithLevel:messageCode:message:contexts:)] || - ![loggerDelegate - respondsToSelector:@selector(GULNetwork_logWithLevel:messageCode:message:context:)] || - ! - [loggerDelegate respondsToSelector:@selector(GULNetwork_logWithLevel:messageCode:message:)]) { + ![loggerDelegate respondsToSelector:@selector(GULNetwork_logWithLevel: + messageCode:message:contexts:)] || + ![loggerDelegate respondsToSelector:@selector(GULNetwork_logWithLevel: + messageCode:message:context:)] || + ![loggerDelegate respondsToSelector:@selector(GULNetwork_logWithLevel: + messageCode:message:)]) { GULLogError(kGULLoggerNetwork, NO, [NSString stringWithFormat:@"I-NET%06ld", (long)kGULNetworkMessageCodeNetwork002], @"Cannot set the network logger delegate: delegate does not conform to the network " @@ -279,8 +279,9 @@ - (void)handleErrorWithCode:(NSInteger)code queue:(dispatch_queue_t)queue withHandler:(GULNetworkCompletionHandler)handler { NSDictionary *userInfo = @{kGULNetworkErrorContext : @"Failed to create network request"}; - NSError *error = - [[NSError alloc] initWithDomain:kGULNetworkErrorDomain code:code userInfo:userInfo]; + NSError *error = [[NSError alloc] initWithDomain:kGULNetworkErrorDomain + code:code + userInfo:userInfo]; [self GULNetwork_logWithLevel:kGULNetworkLogLevelWarning messageCode:kGULNetworkMessageCodeNetwork002 message:@"Failed to create network request. Code, error" diff --git a/Pods/GoogleUtilities/GoogleUtilities/Network/GULNetworkConstants.m b/Pods/GoogleUtilities/GoogleUtilities/Network/GULNetworkConstants.m index 90bd03d57e..dea8dbd578 100644 --- a/Pods/GoogleUtilities/GoogleUtilities/Network/GULNetworkConstants.m +++ b/Pods/GoogleUtilities/GoogleUtilities/Network/GULNetworkConstants.m @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -#import "Private/GULNetworkConstants.h" +#import "GoogleUtilities/Network/Private/GULNetworkConstants.h" #import diff --git a/Pods/GoogleUtilities/GoogleUtilities/Network/GULNetworkURLSession.m b/Pods/GoogleUtilities/GoogleUtilities/Network/GULNetworkURLSession.m index 26da579a3b..df8bf46018 100644 --- a/Pods/GoogleUtilities/GoogleUtilities/Network/GULNetworkURLSession.m +++ b/Pods/GoogleUtilities/GoogleUtilities/Network/GULNetworkURLSession.m @@ -14,12 +14,18 @@ #import -#import "Private/GULNetworkURLSession.h" +#import "GoogleUtilities/Network/Private/GULNetworkURLSession.h" #import -#import "Private/GULMutableDictionary.h" -#import "Private/GULNetworkConstants.h" -#import "Private/GULNetworkMessageCode.h" +#import "GoogleUtilities/Network/Private/GULMutableDictionary.h" +#import "GoogleUtilities/Network/Private/GULNetworkConstants.h" +#import "GoogleUtilities/Network/Private/GULNetworkMessageCode.h" + +@interface GULNetworkURLSession () +@end @implementation GULNetworkURLSession { /// The handler to be called when the request completes or error has occurs. @@ -32,6 +38,9 @@ @implementation GULNetworkURLSession { #pragma clang diagnostic ignored "-Wunguarded-availability" /// The session configuration. NSURLSessionConfiguration' is only available on iOS 7.0 or newer. NSURLSessionConfiguration *_sessionConfig; + + /// The current NSURLSession. + NSURLSession *__weak _Nullable _URLSession; #pragma clang diagnostic pop /// The path to the directory where all temporary files are stored before uploading. @@ -94,8 +103,8 @@ + (void)handleEventsForBackgroundURLSessionID:(NSString *)sessionID /// Sends an async POST request using NSURLSession for iOS >= 7.0, and returns an ID of the /// connection. -- (NSString *)sessionIDFromAsyncPOSTRequest:(NSURLRequest *)request - completionHandler:(GULNetworkURLSessionCompletionHandler)handler +- (nullable NSString *)sessionIDFromAsyncPOSTRequest:(NSURLRequest *)request + completionHandler:(GULNetworkURLSessionCompletionHandler)handler API_AVAILABLE(ios(7.0)) { // NSURLSessionUploadTask does not work with NSData in the background. // To avoid this issue, write the data to a temporary file to upload it. @@ -128,7 +137,7 @@ - (NSString *)sessionIDFromAsyncPOSTRequest:(NSURLRequest *)request if (didWriteFile) { // Exclude this file from backing up to iTunes. There are conflicting reports that excluding - // directory from backing up does not excluding files of that directory from backing up. + // directory from backing up does not exclude files of that directory from backing up. [self excludeFromBackupForURL:_uploadingFileURL]; _sessionConfig = [self backgroundSessionConfigWithSessionID:_sessionID]; @@ -141,7 +150,6 @@ - (NSString *)sessionIDFromAsyncPOSTRequest:(NSURLRequest *)request // If we cannot write to file, just send it in the foreground. _sessionConfig = [NSURLSessionConfiguration defaultSessionConfiguration]; [self populateSessionConfig:_sessionConfig withRequest:request]; - _sessionConfig.URLCache = nil; session = [NSURLSession sessionWithConfiguration:_sessionConfig delegate:self delegateQueue:[NSOperationQueue mainQueue]]; @@ -157,6 +165,8 @@ - (NSString *)sessionIDFromAsyncPOSTRequest:(NSURLRequest *)request return nil; } + _URLSession = session; + // Save the session into memory. [[self class] setSessionInFetcherMap:self forSessionID:_sessionID]; @@ -171,8 +181,8 @@ - (NSString *)sessionIDFromAsyncPOSTRequest:(NSURLRequest *)request } /// Sends an async GET request using NSURLSession for iOS >= 7.0, and returns an ID of the session. -- (NSString *)sessionIDFromAsyncGETRequest:(NSURLRequest *)request - completionHandler:(GULNetworkURLSessionCompletionHandler)handler +- (nullable NSString *)sessionIDFromAsyncGETRequest:(NSURLRequest *)request + completionHandler:(GULNetworkURLSessionCompletionHandler)handler API_AVAILABLE(ios(7.0)) { if (_backgroundNetworkEnabled) { _sessionConfig = [self backgroundSessionConfigWithSessionID:_sessionID]; @@ -199,6 +209,8 @@ - (NSString *)sessionIDFromAsyncGETRequest:(NSURLRequest *)request return nil; } + _URLSession = session; + // Save the session into memory. [[self class] setSessionInFetcherMap:self forSessionID:_sessionID]; @@ -210,6 +222,24 @@ - (NSString *)sessionIDFromAsyncGETRequest:(NSURLRequest *)request return _sessionID; } +#pragma mark - NSURLSessionDataDelegate + +/// Called by the NSURLSession when the data task has received some of the expected data. +/// Once the session is completed, URLSession:task:didCompleteWithError will be called and the +/// completion handler will be called with the downloaded data. +- (void)URLSession:(NSURLSession *)session + dataTask:(NSURLSessionDataTask *)dataTask + didReceiveData:(NSData *)data { + @synchronized(self) { + NSMutableData *mutableData = [[NSMutableData alloc] init]; + if (_downloadedData) { + mutableData = _downloadedData.mutableCopy; + } + [mutableData appendData:data]; + _downloadedData = mutableData; + } +} + #pragma mark - NSURLSessionTaskDelegate /// Called by the NSURLSession once the download task is completed. The file is saved in the @@ -283,16 +313,15 @@ - (void)URLSession:(NSURLSession *)session [self maybeRemoveTempFilesAtURL:_networkDirectoryURL expiringTime:kGULNetworkTempFolderExpireTime]; - // Invalidate the session only if it's owned by this class. - NSString *sessionID = session.configuration.identifier; - if ([sessionID hasPrefix:kGULNetworkBackgroundSessionConfigIDPrefix]) { - [session finishTasksAndInvalidate]; + // This is called without checking the sessionID here since non-background sessions + // won't have an ID. + [session finishTasksAndInvalidate]; - // Explicitly remove the session so it won't be reused. The weak map table should - // remove the session on deallocation, but dealloc may not happen immediately after - // calling `finishTasksAndInvalidate`. - [[self class] setSessionInFetcherMap:nil forSessionID:sessionID]; - } + // Explicitly remove the session so it won't be reused. The weak map table should + // remove the session on deallocation, but dealloc may not happen immediately after + // calling `finishTasksAndInvalidate`. + NSString *sessionID = session.configuration.identifier; + [[self class] setSessionInFetcherMap:nil forSessionID:sessionID]; } - (void)URLSession:(NSURLSession *)session @@ -358,7 +387,10 @@ - (void)URLSession:(NSURLSession *)session OSStatus trustError; @synchronized([GULNetworkURLSession class]) { +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" trustError = SecTrustEvaluate(serverTrust, &trustEval); +#pragma clang dianostic pop } if (trustError != errSecSuccess) { @@ -403,9 +435,8 @@ - (void)addSystemCompletionHandler:(GULNetworkSystemCompletionHandler)handler [_loggerDelegate GULNetwork_logWithLevel:kGULNetworkLogLevelError messageCode:kGULNetworkMessageCodeURLSession010 - message: - @"Cannot store system completion handler with empty network " - "session identifier"]; + message:@"Cannot store system completion handler with empty network " + "session identifier"]; return; } @@ -507,8 +538,9 @@ - (void)maybeRemoveTempFilesAtURL:(NSURL *)folderURL expiringTime:(NSTimeInterva NSTimeInterval now = [NSDate date].timeIntervalSince1970; for (NSURL *tempFile in directoryContent) { NSDate *creationDate; - BOOL getCreationDate = - [tempFile getResourceValue:&creationDate forKey:NSURLCreationDateKey error:NULL]; + BOOL getCreationDate = [tempFile getResourceValue:&creationDate + forKey:NSURLCreationDateKey + error:NULL]; if (!getCreationDate) { continue; } @@ -677,13 +709,13 @@ + (void)setSessionInFetcherMap:(GULNetworkURLSession *)session forSessionID:(NSS GULNetworkURLSession *existingSession = [[[self class] sessionIDToFetcherMap] objectForKey:sessionID]; if (existingSession) { - // Invalidating doesn't seem like the right thing to do here since it may cancel an active - // background transfer if the background session is handling multiple requests. The old - // session will be dropped from the map table, but still complete its request. - NSString *message = [NSString stringWithFormat:@"Discarding session: %@", existingSession]; - [existingSession->_loggerDelegate GULNetwork_logWithLevel:kGULNetworkLogLevelInfo - messageCode:kGULNetworkMessageCodeURLSession019 - message:message]; + if (session) { + NSString *message = [NSString stringWithFormat:@"Discarding session: %@", existingSession]; + [existingSession->_loggerDelegate GULNetwork_logWithLevel:kGULNetworkLogLevelInfo + messageCode:kGULNetworkMessageCodeURLSession019 + message:message]; + } + [existingSession->_URLSession finishTasksAndInvalidate]; } if (session) { [[[self class] sessionIDToFetcherMap] setObject:session forKey:sessionID]; diff --git a/Pods/GoogleUtilities/GoogleUtilities/Network/Private/GULNetworkMessageCode.h b/Pods/GoogleUtilities/GoogleUtilities/Network/Private/GULNetworkMessageCode.h index f9d1628a84..507bc5a5dc 100644 --- a/Pods/GoogleUtilities/GoogleUtilities/Network/Private/GULNetworkMessageCode.h +++ b/Pods/GoogleUtilities/GoogleUtilities/Network/Private/GULNetworkMessageCode.h @@ -14,6 +14,8 @@ * limitations under the License. */ +#import + // Make sure these codes do not overlap with any contained in the FIRAMessageCode enum. typedef NS_ENUM(NSInteger, GULNetworkMessageCode) { // GULNetwork.m diff --git a/Pods/GoogleUtilities/GoogleUtilities/Network/Private/GULNetworkURLSession.h b/Pods/GoogleUtilities/GoogleUtilities/Network/Private/GULNetworkURLSession.h index 81190c63d9..3f9f7f9e14 100644 --- a/Pods/GoogleUtilities/GoogleUtilities/Network/Private/GULNetworkURLSession.h +++ b/Pods/GoogleUtilities/GoogleUtilities/Network/Private/GULNetworkURLSession.h @@ -18,43 +18,45 @@ #import "GULNetworkLoggerProtocol.h" -typedef void (^GULNetworkCompletionHandler)(NSHTTPURLResponse *response, - NSData *data, - NSError *error); -typedef void (^GULNetworkURLSessionCompletionHandler)(NSHTTPURLResponse *response, - NSData *data, +NS_ASSUME_NONNULL_BEGIN + +typedef void (^GULNetworkCompletionHandler)(NSHTTPURLResponse *_Nullable response, + NSData *_Nullable data, + NSError *_Nullable error); +typedef void (^GULNetworkURLSessionCompletionHandler)(NSHTTPURLResponse *_Nullable response, + NSData *_Nullable data, NSString *sessionID, - NSError *error); + NSError *_Nullable error); typedef void (^GULNetworkSystemCompletionHandler)(void); /// The protocol that uses NSURLSession for iOS >= 7.0 to handle requests and responses. -@interface GULNetworkURLSession - : NSObject +@interface GULNetworkURLSession : NSObject /// Indicates whether the background network is enabled. Default value is NO. @property(nonatomic, getter=isBackgroundNetworkEnabled) BOOL backgroundNetworkEnabled; /// The logger delegate to log message, errors or warnings that occur during the network operations. -@property(nonatomic, weak) id loggerDelegate; +@property(nonatomic, weak, nullable) id loggerDelegate; /// Calls the system provided completion handler after the background session is finished. + (void)handleEventsForBackgroundURLSessionID:(NSString *)sessionID completionHandler:(GULNetworkSystemCompletionHandler)completionHandler; /// Initializes with logger delegate. -- (instancetype)initWithNetworkLoggerDelegate:(id)networkLoggerDelegate - NS_DESIGNATED_INITIALIZER; +- (instancetype)initWithNetworkLoggerDelegate: + (nullable id)networkLoggerDelegate NS_DESIGNATED_INITIALIZER; - (instancetype)init NS_UNAVAILABLE; /// Sends an asynchronous POST request and calls the provided completion handler when the request /// completes or when errors occur, and returns an ID of the session/connection. -- (NSString *)sessionIDFromAsyncPOSTRequest:(NSURLRequest *)request - completionHandler:(GULNetworkURLSessionCompletionHandler)handler; +- (nullable NSString *)sessionIDFromAsyncPOSTRequest:(NSURLRequest *)request + completionHandler:(GULNetworkURLSessionCompletionHandler)handler; /// Sends an asynchronous GET request and calls the provided completion handler when the request /// completes or when errors occur, and returns an ID of the session. -- (NSString *)sessionIDFromAsyncGETRequest:(NSURLRequest *)request - completionHandler:(GULNetworkURLSessionCompletionHandler)handler; +- (nullable NSString *)sessionIDFromAsyncGETRequest:(NSURLRequest *)request + completionHandler:(GULNetworkURLSessionCompletionHandler)handler; +NS_ASSUME_NONNULL_END @end diff --git a/Pods/GoogleUtilities/GoogleUtilities/Reachability/GULReachabilityChecker+Internal.h b/Pods/GoogleUtilities/GoogleUtilities/Reachability/GULReachabilityChecker+Internal.h index 8883c4d194..8aabc8a122 100644 --- a/Pods/GoogleUtilities/GoogleUtilities/Reachability/GULReachabilityChecker+Internal.h +++ b/Pods/GoogleUtilities/GoogleUtilities/Reachability/GULReachabilityChecker+Internal.h @@ -15,7 +15,7 @@ */ #import - +#if !TARGET_OS_WATCH typedef SCNetworkReachabilityRef (*GULReachabilityCreateWithNameFn)(CFAllocatorRef allocator, const char *host); @@ -38,7 +38,7 @@ struct GULReachabilityApi { GULReachabilityUnscheduleFromRunLoopFn unscheduleFromRunLoopFn; GULReachabilityReleaseFn releaseFn; }; - +#endif @interface GULReachabilityChecker (Internal) - (const struct GULReachabilityApi *)reachabilityApi; diff --git a/Pods/GoogleUtilities/GoogleUtilities/Reachability/GULReachabilityChecker.m b/Pods/GoogleUtilities/GoogleUtilities/Reachability/GULReachabilityChecker.m index 1ddacdfc22..a334c1a0b0 100644 --- a/Pods/GoogleUtilities/GoogleUtilities/Reachability/GULReachabilityChecker.m +++ b/Pods/GoogleUtilities/GoogleUtilities/Reachability/GULReachabilityChecker.m @@ -14,15 +14,15 @@ #import -#import "GULReachabilityChecker+Internal.h" -#import "Private/GULReachabilityChecker.h" -#import "Private/GULReachabilityMessageCode.h" +#import "GoogleUtilities/Reachability/GULReachabilityChecker+Internal.h" +#import "GoogleUtilities/Reachability/Private/GULReachabilityChecker.h" +#import "GoogleUtilities/Reachability/Private/GULReachabilityMessageCode.h" #import #import static GULLoggerService kGULLoggerReachability = @"[GULReachability]"; - +#if !TARGET_OS_WATCH static void ReachabilityCallback(SCNetworkReachabilityRef reachability, SCNetworkReachabilityFlags flags, void *info); @@ -38,26 +38,31 @@ static void ReachabilityCallback(SCNetworkReachabilityRef reachability, static NSString *const kGULReachabilityUnknownStatus = @"Unknown"; static NSString *const kGULReachabilityConnectedStatus = @"Connected"; static NSString *const kGULReachabilityDisconnectedStatus = @"Disconnected"; - +#endif @interface GULReachabilityChecker () @property(nonatomic, assign) const struct GULReachabilityApi *reachabilityApi; @property(nonatomic, assign) GULReachabilityStatus reachabilityStatus; @property(nonatomic, copy) NSString *host; +#if !TARGET_OS_WATCH @property(nonatomic, assign) SCNetworkReachabilityRef reachability; +#endif @end @implementation GULReachabilityChecker @synthesize reachabilityApi = reachabilityApi_; +#if !TARGET_OS_WATCH @synthesize reachability = reachability_; +#endif - (const struct GULReachabilityApi *)reachabilityApi { return reachabilityApi_; } - (void)setReachabilityApi:(const struct GULReachabilityApi *)reachabilityApi { +#if !TARGET_OS_WATCH if (reachability_) { GULLogError(kGULLoggerReachability, NO, [NSString stringWithFormat:@"I-REA%06ld", (long)kGULReachabilityMessageCode000], @@ -66,6 +71,7 @@ - (void)setReachabilityApi:(const struct GULReachabilityApi *)reachabilityApi { return; } reachabilityApi_ = reachabilityApi; +#endif } @synthesize reachabilityStatus = reachabilityStatus_; @@ -73,7 +79,11 @@ - (void)setReachabilityApi:(const struct GULReachabilityApi *)reachabilityApi { @synthesize reachabilityDelegate = reachabilityDelegate_; - (BOOL)isActive { +#if !TARGET_OS_WATCH return reachability_ != nil; +#else + return NO; +#endif } - (void)setReachabilityDelegate:(id)reachabilityDelegate { @@ -98,11 +108,13 @@ - (instancetype)initWithReachabilityDelegate:(id)reacha return nil; } if (self) { +#if !TARGET_OS_WATCH [self setReachabilityDelegate:reachabilityDelegate]; reachabilityApi_ = &kGULDefaultReachabilityApi; reachabilityStatus_ = kGULReachabilityUnknown; host_ = [host copy]; reachability_ = nil; +#endif } return self; } @@ -113,6 +125,10 @@ - (void)dealloc { } - (BOOL)start { +#if TARGET_OS_WATCH + return NO; +#else + if (!reachability_) { reachability_ = reachabilityApi_->createWithNameFn(kCFAllocatorDefault, [host_ UTF8String]); if (!reachability_) { @@ -141,9 +157,11 @@ - (BOOL)start { [NSString stringWithFormat:@"I-REA%06ld", (long)kGULReachabilityMessageCode003], @"Monitoring the network status"); return YES; +#endif } - (void)stop { +#if !TARGET_OS_WATCH if (reachability_) { reachabilityStatus_ = kGULReachabilityUnknown; reachabilityApi_->unscheduleFromRunLoopFn(reachability_, CFRunLoopGetMain(), @@ -151,8 +169,10 @@ - (void)stop { reachabilityApi_->releaseFn(reachability_); reachability_ = nil; } +#endif } +#if !TARGET_OS_WATCH - (GULReachabilityStatus)statusForFlags:(SCNetworkReachabilityFlags)flags { GULReachabilityStatus status = kGULReachabilityNotReachable; // If the Reachable flag is not set, we definitely don't have connectivity. @@ -203,14 +223,17 @@ - (void)reachabilityFlagsChanged:(SCNetworkReachabilityFlags)flags { } } +#endif @end +#if !TARGET_OS_WATCH static void ReachabilityCallback(SCNetworkReachabilityRef reachability, SCNetworkReachabilityFlags flags, void *info) { GULReachabilityChecker *checker = (__bridge GULReachabilityChecker *)info; [checker reachabilityFlagsChanged:flags]; } +#endif // This function used to be at the top of the file, but it was moved here // as a workaround for a suspected compiler bug. When compiled in Release mode diff --git a/Pods/GoogleUtilities/GoogleUtilities/Reachability/Private/GULReachabilityChecker.h b/Pods/GoogleUtilities/GoogleUtilities/Reachability/Private/GULReachabilityChecker.h index b317a0be73..0c70c0553f 100644 --- a/Pods/GoogleUtilities/GoogleUtilities/Reachability/Private/GULReachabilityChecker.h +++ b/Pods/GoogleUtilities/GoogleUtilities/Reachability/Private/GULReachabilityChecker.h @@ -15,7 +15,9 @@ */ #import +#if !TARGET_OS_WATCH #import +#endif /// Reachability Status typedef enum { diff --git a/Pods/GoogleUtilities/GoogleUtilities/Reachability/Private/GULReachabilityMessageCode.h b/Pods/GoogleUtilities/GoogleUtilities/Reachability/Private/GULReachabilityMessageCode.h index 283cdd5c10..373e0af404 100644 --- a/Pods/GoogleUtilities/GoogleUtilities/Reachability/Private/GULReachabilityMessageCode.h +++ b/Pods/GoogleUtilities/GoogleUtilities/Reachability/Private/GULReachabilityMessageCode.h @@ -14,6 +14,8 @@ * limitations under the License. */ +#import + // Make sure these codes do not overlap with any contained in the FIRAMessageCode enum. typedef NS_ENUM(NSInteger, GULReachabilityMessageCode) { // GULReachabilityChecker.m diff --git a/Pods/GoogleUtilities/GoogleUtilities/SceneDelegateSwizzler/GULSceneDelegateSwizzler.m b/Pods/GoogleUtilities/GoogleUtilities/SceneDelegateSwizzler/GULSceneDelegateSwizzler.m new file mode 100644 index 0000000000..b80e2aff11 --- /dev/null +++ b/Pods/GoogleUtilities/GoogleUtilities/SceneDelegateSwizzler/GULSceneDelegateSwizzler.m @@ -0,0 +1,438 @@ +// Copyright 2019 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#import "TargetConditionals.h" + +#import +#import +#import +#import +#import +#import "GoogleUtilities/Common/GULLoggerCodes.h" +#import "GoogleUtilities/SceneDelegateSwizzler/Internal/GULSceneDelegateSwizzler_Private.h" + +#import + +#if UISCENE_SUPPORTED +API_AVAILABLE(ios(13.0), tvos(13.0)) +typedef void (*GULOpenURLContextsIMP)(id, SEL, UIScene *, NSSet *); + +API_AVAILABLE(ios(13.0), tvos(13.0)) +typedef void (^GULSceneDelegateInterceptorCallback)(id); + +// The strings below are the keys for associated objects. +static char const *const kGULRealIMPBySelectorKey = "GUL_realIMPBySelector"; +static char const *const kGULRealClassKey = "GUL_realClass"; +#endif // UISCENE_SUPPORTED + +static GULLoggerService kGULLoggerSwizzler = @"[GoogleUtilities/SceneDelegateSwizzler]"; + +// Since Firebase SDKs also use this for app delegate proxying, in order to not be a breaking change +// we disable App Delegate proxying when either of these two flags are set to NO. + +/** Plist key that allows Firebase developers to disable App and Scene Delegate Proxying. */ +static NSString *const kGULFirebaseSceneDelegateProxyEnabledPlistKey = + @"FirebaseAppDelegateProxyEnabled"; + +/** Plist key that allows developers not using Firebase to disable App and Scene Delegate Proxying. + */ +static NSString *const kGULGoogleUtilitiesSceneDelegateProxyEnabledPlistKey = + @"GoogleUtilitiesAppDelegateProxyEnabled"; + +/** The prefix of the Scene Delegate. */ +static NSString *const kGULSceneDelegatePrefix = @"GUL_"; + +/** + * This class is necessary to store the delegates in an NSArray without retaining them. + * [NSValue valueWithNonRetainedObject] also provides this functionality, but does not provide a + * zeroing pointer. This will cause EXC_BAD_ACCESS when trying to access the object after it is + * dealloced. Instead, this container stores a weak, zeroing reference to the object, which + * automatically is set to nil by the runtime when the object is dealloced. + */ +@interface GULSceneZeroingWeakContainer : NSObject + +/** Stores a weak object. */ +@property(nonatomic, weak) id object; + +@end + +@implementation GULSceneZeroingWeakContainer +@end + +@implementation GULSceneDelegateSwizzler + +#pragma mark - Public methods + ++ (BOOL)isSceneDelegateProxyEnabled { + return [GULAppDelegateSwizzler isAppDelegateProxyEnabled]; +} + ++ (void)proxyOriginalSceneDelegate { +#if UISCENE_SUPPORTED + if ([GULAppEnvironmentUtil isAppExtension]) { + return; + } + + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + if (@available(iOS 13.0, tvOS 13.0, *)) { + if (![GULSceneDelegateSwizzler isSceneDelegateProxyEnabled]) { + return; + } + [[NSNotificationCenter defaultCenter] + addObserver:self + selector:@selector(handleSceneWillConnectToNotification:) + name:UISceneWillConnectNotification + object:nil]; + } + }); +#endif // UISCENE_SUPPORTED +} + +#if UISCENE_SUPPORTED ++ (GULSceneDelegateInterceptorID)registerSceneDelegateInterceptor:(id)interceptor { + NSAssert(interceptor, @"SceneDelegateProxy cannot add nil interceptor"); + NSAssert([interceptor conformsToProtocol:@protocol(UISceneDelegate)], + @"SceneDelegateProxy interceptor does not conform to UIApplicationDelegate"); + + if (!interceptor) { + GULLogError(kGULLoggerSwizzler, NO, + [NSString stringWithFormat:@"I-SWZ%06ld", + (long)kGULSwizzlerMessageCodeSceneDelegateSwizzling000], + @"SceneDelegateProxy cannot add nil interceptor."); + return nil; + } + if (![interceptor conformsToProtocol:@protocol(UISceneDelegate)]) { + GULLogError(kGULLoggerSwizzler, NO, + [NSString stringWithFormat:@"I-SWZ%06ld", + (long)kGULSwizzlerMessageCodeSceneDelegateSwizzling001], + @"SceneDelegateProxy interceptor does not conform to UIApplicationDelegate"); + return nil; + } + + // The ID should be the same given the same interceptor object. + NSString *interceptorID = + [NSString stringWithFormat:@"%@%p", kGULSceneDelegatePrefix, interceptor]; + if (!interceptorID.length) { + GULLogError(kGULLoggerSwizzler, NO, + [NSString stringWithFormat:@"I-SWZ%06ld", + (long)kGULSwizzlerMessageCodeSceneDelegateSwizzling002], + @"SceneDelegateProxy cannot create Interceptor ID."); + return nil; + } + GULSceneZeroingWeakContainer *weakObject = [[GULSceneZeroingWeakContainer alloc] init]; + weakObject.object = interceptor; + [GULSceneDelegateSwizzler interceptors][interceptorID] = weakObject; + return interceptorID; +} + ++ (void)unregisterSceneDelegateInterceptorWithID:(GULSceneDelegateInterceptorID)interceptorID { + NSAssert(interceptorID, @"SceneDelegateProxy cannot unregister nil interceptor ID."); + NSAssert(((NSString *)interceptorID).length != 0, + @"SceneDelegateProxy cannot unregister empty interceptor ID."); + + if (!interceptorID) { + GULLogError(kGULLoggerSwizzler, NO, + [NSString stringWithFormat:@"I-SWZ%06ld", + (long)kGULSwizzlerMessageCodeSceneDelegateSwizzling003], + @"SceneDelegateProxy cannot unregister empty interceptor ID."); + return; + } + + GULSceneZeroingWeakContainer *weakContainer = + [GULSceneDelegateSwizzler interceptors][interceptorID]; + if (!weakContainer.object) { + GULLogError(kGULLoggerSwizzler, NO, + [NSString stringWithFormat:@"I-SWZ%06ld", + (long)kGULSwizzlerMessageCodeSceneDelegateSwizzling004], + @"SceneDelegateProxy cannot unregister interceptor that was not registered. " + "Interceptor ID %@", + interceptorID); + return; + } + + [[GULSceneDelegateSwizzler interceptors] removeObjectForKey:interceptorID]; +} + +#pragma mark - Helper methods + ++ (GULMutableDictionary *)interceptors { + static dispatch_once_t onceToken; + static GULMutableDictionary *sInterceptors; + dispatch_once(&onceToken, ^{ + sInterceptors = [[GULMutableDictionary alloc] init]; + }); + return sInterceptors; +} + ++ (void)clearInterceptors { + [[self interceptors] removeAllObjects]; +} + ++ (nullable NSValue *)originalImplementationForSelector:(SEL)selector object:(id)object { + NSDictionary *realImplementationBySelector = + objc_getAssociatedObject(object, &kGULRealIMPBySelectorKey); + return realImplementationBySelector[NSStringFromSelector(selector)]; +} + ++ (void)proxyDestinationSelector:(SEL)destinationSelector + implementationsFromSourceSelector:(SEL)sourceSelector + fromClass:(Class)sourceClass + toClass:(Class)destinationClass + realClass:(Class)realClass + storeDestinationImplementationTo: + (NSMutableDictionary *)destinationImplementationsBySelector { + [self addInstanceMethodWithDestinationSelector:destinationSelector + withImplementationFromSourceSelector:sourceSelector + fromClass:sourceClass + toClass:destinationClass]; + IMP sourceImplementation = + [GULSceneDelegateSwizzler implementationOfMethodSelector:destinationSelector + fromClass:realClass]; + NSValue *sourceImplementationPointer = [NSValue valueWithPointer:sourceImplementation]; + + NSString *destinationSelectorString = NSStringFromSelector(destinationSelector); + destinationImplementationsBySelector[destinationSelectorString] = sourceImplementationPointer; +} + +/** Copies a method identified by the methodSelector from one class to the other. After this method + * is called, performing [toClassInstance methodSelector] will be similar to calling + * [fromClassInstance methodSelector]. This method does nothing if toClass already has a method + * identified by methodSelector. + * + * @param methodSelector The SEL that identifies both the method on the fromClass as well as the + * one on the toClass. + * @param fromClass The class from which a method is sourced. + * @param toClass The class to which the method is added. If the class already has a method with + * the same selector, this has no effect. + */ ++ (void)addInstanceMethodWithSelector:(SEL)methodSelector + fromClass:(Class)fromClass + toClass:(Class)toClass { + [self addInstanceMethodWithDestinationSelector:methodSelector + withImplementationFromSourceSelector:methodSelector + fromClass:fromClass + toClass:toClass]; +} + +/** Copies a method identified by the sourceSelector from the fromClass as a method for the + * destinationSelector on the toClass. After this method is called, performing + * [toClassInstance destinationSelector] will be similar to calling + * [fromClassInstance sourceSelector]. This method does nothing if toClass already has a method + * identified by destinationSelector. + * + * @param destinationSelector The SEL that identifies the method on the toClass. + * @param sourceSelector The SEL that identifies the method on the fromClass. + * @param fromClass The class from which a method is sourced. + * @param toClass The class to which the method is added. If the class already has a method with + * the same selector, this has no effect. + */ ++ (void)addInstanceMethodWithDestinationSelector:(SEL)destinationSelector + withImplementationFromSourceSelector:(SEL)sourceSelector + fromClass:(Class)fromClass + toClass:(Class)toClass { + Method method = class_getInstanceMethod(fromClass, sourceSelector); + IMP methodIMP = method_getImplementation(method); + const char *types = method_getTypeEncoding(method); + if (!class_addMethod(toClass, destinationSelector, methodIMP, types)) { + GULLogWarning( + kGULLoggerSwizzler, NO, + [NSString + stringWithFormat:@"I-SWZ%06ld", (long)kGULSwizzlerMessageCodeSceneDelegateSwizzling009], + @"Cannot copy method to destination selector %@ as it already exists", + NSStringFromSelector(destinationSelector)); + } +} + +/** Gets the IMP of the instance method on the class identified by the selector. + * + * @param selector The selector of which the IMP is to be fetched. + * @param aClass The class from which the IMP is to be fetched. + * @return The IMP of the instance method identified by selector and aClass. + */ ++ (IMP)implementationOfMethodSelector:(SEL)selector fromClass:(Class)aClass { + Method aMethod = class_getInstanceMethod(aClass, selector); + return method_getImplementation(aMethod); +} + +/** Enumerates through all the interceptors and if they respond to a given selector, executes a + * GULSceneDelegateInterceptorCallback with the interceptor. + * + * @param methodSelector The SEL to check if an interceptor responds to. + * @param callback the GULSceneDelegateInterceptorCallback. + */ ++ (void)notifyInterceptorsWithMethodSelector:(SEL)methodSelector + callback:(GULSceneDelegateInterceptorCallback)callback + API_AVAILABLE(ios(13.0)) { + if (!callback) { + return; + } + + NSDictionary *interceptors = [GULSceneDelegateSwizzler interceptors].dictionary; + [interceptors enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) { + GULSceneZeroingWeakContainer *interceptorContainer = obj; + id interceptor = interceptorContainer.object; + if (!interceptor) { + GULLogWarning( + kGULLoggerSwizzler, NO, + [NSString stringWithFormat:@"I-SWZ%06ld", + (long)kGULSwizzlerMessageCodeSceneDelegateSwizzling010], + @"SceneDelegateProxy cannot find interceptor with ID %@. Removing the interceptor.", key); + [[GULSceneDelegateSwizzler interceptors] removeObjectForKey:key]; + return; + } + if ([interceptor respondsToSelector:methodSelector]) { + callback(interceptor); + } + }]; +} + ++ (void)handleSceneWillConnectToNotification:(NSNotification *)notification { + if (@available(iOS 13.0, tvOS 13.0, *)) { + if ([notification.object isKindOfClass:[UIScene class]]) { + UIScene *scene = (UIScene *)notification.object; + [GULSceneDelegateSwizzler proxySceneDelegateIfNeeded:scene]; + } + } +} + +#pragma mark - [Donor Methods] UISceneDelegate URL handler + +- (void)scene:(UIScene *)scene + openURLContexts:(NSSet *)URLContexts API_AVAILABLE(ios(13.0), tvos(13.0)) { + if (@available(iOS 13.0, tvOS 13.0, *)) { + SEL methodSelector = @selector(scene:openURLContexts:); + // Call the real implementation if the real Scene Delegate has any. + NSValue *openURLContextsIMPPointer = + [GULSceneDelegateSwizzler originalImplementationForSelector:methodSelector object:self]; + GULOpenURLContextsIMP openURLContextsIMP = [openURLContextsIMPPointer pointerValue]; + + [GULSceneDelegateSwizzler + notifyInterceptorsWithMethodSelector:methodSelector + callback:^(id interceptor) { + if ([interceptor + conformsToProtocol:@protocol(UISceneDelegate)]) { + id sceneInterceptor = + (id)interceptor; + [sceneInterceptor scene:scene openURLContexts:URLContexts]; + } + }]; + + if (openURLContextsIMP) { + openURLContextsIMP(self, methodSelector, scene, URLContexts); + } + } +} + ++ (void)proxySceneDelegateIfNeeded:(UIScene *)scene { + Class realClass = [scene.delegate class]; + NSString *className = NSStringFromClass(realClass); + + // Skip proxying if failed to get the delegate class name for some reason (e.g. `delegate == nil`) + // or the class has a prefix of kGULAppDelegatePrefix, which means it has been proxied before. + if (className == nil || [className hasPrefix:kGULSceneDelegatePrefix]) { + return; + } + + NSString *classNameWithPrefix = [kGULSceneDelegatePrefix stringByAppendingString:className]; + NSString *newClassName = + [NSString stringWithFormat:@"%@-%@", classNameWithPrefix, [NSUUID UUID].UUIDString]; + + if (NSClassFromString(newClassName)) { + GULLogError( + kGULLoggerSwizzler, NO, + [NSString + stringWithFormat:@"I-SWZ%06ld", + (long) + kGULSwizzlerMessageCodeSceneDelegateSwizzlingInvalidSceneDelegate], + @"Cannot create a proxy for Scene Delegate. Subclass already exists. Original Class" + @": %@, subclass: %@", + className, newClassName); + return; + } + + // Register the new class as subclass of the real one. Do not allocate more than the real class + // size. + Class sceneDelegateSubClass = objc_allocateClassPair(realClass, newClassName.UTF8String, 0); + if (sceneDelegateSubClass == Nil) { + GULLogError( + kGULLoggerSwizzler, NO, + [NSString + stringWithFormat:@"I-SWZ%06ld", + (long) + kGULSwizzlerMessageCodeSceneDelegateSwizzlingInvalidSceneDelegate], + @"Cannot create a proxy for Scene Delegate. Subclass already exists. Original Class" + @": %@, subclass: Nil", + className); + return; + } + + NSMutableDictionary *realImplementationsBySelector = + [[NSMutableDictionary alloc] init]; + + // For scene:openURLContexts: + SEL openURLContextsSEL = @selector(scene:openURLContexts:); + [self proxyDestinationSelector:openURLContextsSEL + implementationsFromSourceSelector:openURLContextsSEL + fromClass:[GULSceneDelegateSwizzler class] + toClass:sceneDelegateSubClass + realClass:realClass + storeDestinationImplementationTo:realImplementationsBySelector]; + + // Store original implementations to a fake property of the original delegate. + objc_setAssociatedObject(scene.delegate, &kGULRealIMPBySelectorKey, + [realImplementationsBySelector copy], OBJC_ASSOCIATION_RETAIN_NONATOMIC); + objc_setAssociatedObject(scene.delegate, &kGULRealClassKey, realClass, + OBJC_ASSOCIATION_RETAIN_NONATOMIC); + + // The subclass size has to be exactly the same size with the original class size. The subclass + // cannot have more ivars/properties than its superclass since it will cause an offset in memory + // that can lead to overwriting the isa of an object in the next frame. + if (class_getInstanceSize(realClass) != class_getInstanceSize(sceneDelegateSubClass)) { + GULLogError( + kGULLoggerSwizzler, NO, + [NSString + stringWithFormat:@"I-SWZ%06ld", + (long) + kGULSwizzlerMessageCodeSceneDelegateSwizzlingInvalidSceneDelegate], + @"Cannot create subclass of Scene Delegate, because the created subclass is not the " + @"same size. %@", + className); + NSAssert(NO, @"Classes must be the same size to swizzle isa"); + return; + } + + // Make the newly created class to be the subclass of the real Scene Delegate class. + objc_registerClassPair(sceneDelegateSubClass); + if (object_setClass(scene.delegate, sceneDelegateSubClass)) { + GULLogDebug( + kGULLoggerSwizzler, NO, + [NSString + stringWithFormat:@"I-SWZ%06ld", + (long) + kGULSwizzlerMessageCodeSceneDelegateSwizzlingInvalidSceneDelegate], + @"Successfully created Scene Delegate Proxy automatically. To disable the " + @"proxy, set the flag %@ to NO (Boolean) in the Info.plist", + [GULSceneDelegateSwizzler correctSceneDelegateProxyKey]); + } +} + ++ (NSString *)correctSceneDelegateProxyKey { + return NSClassFromString(@"FIRCore") ? kGULFirebaseSceneDelegateProxyEnabledPlistKey + : kGULGoogleUtilitiesSceneDelegateProxyEnabledPlistKey; +} + +#endif // UISCENE_SUPPORTED + +@end diff --git a/Pods/GoogleUtilities/GoogleUtilities/SceneDelegateSwizzler/Internal/GULSceneDelegateSwizzler_Private.h b/Pods/GoogleUtilities/GoogleUtilities/SceneDelegateSwizzler/Internal/GULSceneDelegateSwizzler_Private.h new file mode 100644 index 0000000000..a2439eb30e --- /dev/null +++ b/Pods/GoogleUtilities/GoogleUtilities/SceneDelegateSwizzler/Internal/GULSceneDelegateSwizzler_Private.h @@ -0,0 +1,48 @@ +/* + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface GULSceneDelegateSwizzler () + +#if UISCENE_SUPPORTED + +/** Returns a dictionary containing interceptor IDs mapped to a GULZeroingWeakContainer. + * + * @return A dictionary of the form {NSString : GULZeroingWeakContainer}, where the NSString is + * the interceptorID. + */ ++ (GULMutableDictionary *)interceptors; + +/** Deletes all the registered interceptors. */ ++ (void)clearInterceptors; + +/** ISA Swizzles the given appDelegate as the original app delegate would be. + * + * @param scene The scene whose delegate needs to be isa swizzled. This should conform to the + * scene delegate protocol. + */ ++ (void)proxySceneDelegateIfNeeded:(UIScene *)scene API_AVAILABLE(ios(13.0), tvos(13.0)); + +#endif // UISCENE_SUPPORTED + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/GoogleUtilities/GoogleUtilities/SceneDelegateSwizzler/Private/GULSceneDelegateSwizzler.h b/Pods/GoogleUtilities/GoogleUtilities/SceneDelegateSwizzler/Private/GULSceneDelegateSwizzler.h new file mode 100644 index 0000000000..420b3e76cd --- /dev/null +++ b/Pods/GoogleUtilities/GoogleUtilities/SceneDelegateSwizzler/Private/GULSceneDelegateSwizzler.h @@ -0,0 +1,73 @@ +/* + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if !TARGET_OS_OSX +#import +#endif // !TARGET_OS_OSX + +#if ((TARGET_OS_IOS || TARGET_OS_TV) && (__IPHONE_OS_VERSION_MAX_ALLOWED >= 130000)) +#define UISCENE_SUPPORTED 1 +#endif + +NS_ASSUME_NONNULL_BEGIN + +typedef NSString *const GULSceneDelegateInterceptorID; + +/** This class contains methods that isa swizzle the scene delegate. */ +@interface GULSceneDelegateSwizzler : NSProxy + +#if UISCENE_SUPPORTED + +/** Registers a scene delegate interceptor whose methods will be invoked as they're invoked on the + * original scene delegate. + * + * @param interceptor An instance of a class that conforms to the application delegate protocol. + * The interceptor is NOT retained. + * @return A unique GULSceneDelegateInterceptorID if interceptor was successfully registered; nil + * if it fails. + */ ++ (nullable GULSceneDelegateInterceptorID)registerSceneDelegateInterceptor: + (id)interceptor API_AVAILABLE(ios(13.0), tvos(13.0)); + +/** Unregisters an interceptor with the given ID if it exists. + * + * @param interceptorID The object that was generated when the interceptor was registered. + */ ++ (void)unregisterSceneDelegateInterceptorWithID:(GULSceneDelegateInterceptorID)interceptorID + API_AVAILABLE(ios(13.0), tvos(13.0)); + +/** Do not initialize this class. */ +- (instancetype)init NS_UNAVAILABLE; + +#endif // UISCENE_SUPPORTED + +/** This method ensures that the original scene delegate has been proxied. Call this before + * registering your interceptor. This method is safe to call multiple times (but it only proxies + * the scene delegate once). + * + * The method has no effect for extensions. + */ ++ (void)proxyOriginalSceneDelegate; + +/** Indicates whether scene delegate proxy is explicitly disabled or enabled. Enabled by default. + * + * @return YES if SceneDelegateProxy is Enabled, NO otherwise. + */ ++ (BOOL)isSceneDelegateProxyEnabled; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Pods/GoogleUtilities/GoogleUtilities/UserDefaults/GULUserDefaults.m b/Pods/GoogleUtilities/GoogleUtilities/UserDefaults/GULUserDefaults.m index 1b1bafb76e..47ac35d641 100644 --- a/Pods/GoogleUtilities/GoogleUtilities/UserDefaults/GULUserDefaults.m +++ b/Pods/GoogleUtilities/GoogleUtilities/UserDefaults/GULUserDefaults.m @@ -195,28 +195,6 @@ - (void)synchronize { #pragma mark - Private methods -/// Removes all values from the search list entry specified by 'domainName', the current user, and -/// any host. The change is persistent. Equivalent to -removePersistentDomainForName: of -/// NSUserDefaults. -- (void)clearAllData { - // On macOS, using `kCFPreferencesCurrentHost` will not set all the keys necessary to match - // `NSUserDefaults`. -#if TARGET_OS_MAC - CFStringRef host = kCFPreferencesAnyHost; -#else - CFStringRef host = kCFPreferencesCurrentHost; -#endif // TARGET_OS_OSX - - CFArrayRef keyList = CFPreferencesCopyKeyList(_appNameRef, kCFPreferencesCurrentUser, host); - if (!keyList) { - return; - } - - CFPreferencesSetMultiple(NULL, keyList, _appNameRef, kCFPreferencesCurrentUser, host); - CFRelease(keyList); - [self scheduleSynchronize]; -} - - (void)scheduleSynchronize { // Synchronize data using a timer so that multiple set... calls can be coalesced under one // synchronize. diff --git a/Pods/GoogleUtilities/README.md b/Pods/GoogleUtilities/README.md index eb6ea333f8..d6798fe45c 100644 --- a/Pods/GoogleUtilities/README.md +++ b/Pods/GoogleUtilities/README.md @@ -1,9 +1,13 @@ -# Firebase iOS Open Source Development [![Build Status](https://travis-ci.org/firebase/firebase-ios-sdk.svg?branch=master)](https://travis-ci.org/firebase/firebase-ios-sdk) +# Firebase iOS Open Source Development + [![Actions Status][gh-core-badge]][gh-actions] + [![Actions Status][gh-dynamiclinks-badge]][gh-actions] + [![Actions Status][gh-datatransport-badge]][gh-actions] + [![Actions Status][gh-storage-badge]][gh-actions] + [![Actions Status][gh-zip-badge]][gh-actions] + [![Travis](https://travis-ci.org/firebase/firebase-ios-sdk.svg?branch=master)](https://travis-ci.org/firebase/firebase-ios-sdk) -This repository contains a subset of the Firebase iOS SDK source. It currently -includes FirebaseCore, FirebaseAuth, FirebaseDatabase, FirebaseFirestore, -FirebaseFunctions, FirebaseInAppMessagingDisplay, FirebaseMessaging and -FirebaseStorage. +This repository contains all Firebase iOS SDK source except FirebaseAnalytics, +FirebasePerformance, and FirebaseML. The repository also includes GoogleUtilities source. The [GoogleUtilities](GoogleUtilities/README.md) pod is @@ -60,29 +64,84 @@ pod 'FirebaseMessaging', :path => '/path/to/firebase-ios-sdk' ### Carthage (iOS only) -An experimental Carthage distribution is now available. See +Instructions for the experimental Carthage distribution are at [Carthage](Carthage.md). +### Rome + +Instructions for installing binary frameworks via +[Rome](https://github.com/CocoaPods/Rome) are at [Rome](Rome.md). + ## Development -Follow the subsequent instructions to develop, debug, unit test, run integration -tests, and try out reference samples: +To develop Firebase software in this repository, ensure that you have at least +the following software: + + * Xcode 10.1 (or later) + * CocoaPods 1.7.2 (or later) + * [CocoaPods generate](https://github.com/square/cocoapods-generate) + +For the pod that you want to develop: + +`pod gen Firebase{name here}.podspec --local-sources=./ --auto-open --platforms=ios` + +Note: If the CocoaPods cache is out of date, you may need to run +`pod repo update` before the `pod gen` command. + +Note: Set the `--platforms` option to `macos` or `tvos` to develop/test for +those platforms. Since 10.2, Xcode does not properly handle multi-platform +CocoaPods workspaces. + +Firestore has a self contained Xcode project. See +[Firestore/README.md](Firestore/README.md). + +### Development for Catalyst +* `pod gen {name here}.podspec --local-sources=./ --auto-open --platforms=ios` +* Check the Mac box in the App-iOS Build Settings +* Sign the App in the Settings Signing & Capabilities tab +* Click Pods in the Project Manager +* Add Signing to the iOS host app and unit test targets +* Select the Unit-unit scheme +* Run it to build and test + +### Adding a New Firebase Pod + +See [AddNewPod.md](AddNewPod.md). + +### Code Formatting + +To ensure that the code is formatted consistently, run the script +[./scripts/style.sh](https://github.com/firebase/firebase-ios-sdk/blob/master/scripts/style.sh) +before creating a PR. + +Travis will verify that any code changes are done in a style compliant way. Install +`clang-format` and `swiftformat`. +These commands will get the right versions: ``` -$ git clone git@github.com:firebase/firebase-ios-sdk.git -$ cd firebase-ios-sdk/Example -$ pod update -$ open Firebase.xcworkspace +brew upgrade https://raw.githubusercontent.com/Homebrew/homebrew-core/e3496d9/Formula/clang-format.rb +brew upgrade https://raw.githubusercontent.com/Homebrew/homebrew-core/7963c3d/Formula/swiftformat.rb ``` -Firestore and Functions have self contained Xcode projects. See -[Firestore/README.md](Firestore/README.md) and -[Functions/README.md](Functions/README.md). +Note: if you already have a newer version of these installed you may need to +`brew switch` to this version. + +To update this section, find the versions of clang-format and swiftformat.rb to +match the versions in the CI failure logs +[here](https://github.com/Homebrew/homebrew-core/tree/master/Formula). ### Running Unit Tests Select a scheme and press Command-u to build a component and run its unit tests. +#### Viewing Code Coverage + +First, make sure that [xcov](https://github.com/nakiostudio/xcov) is installed with `gem install xcov`. + +After running the `AllUnitTests_iOS` scheme in Xcode, execute +`xcov --workspace Firebase.xcworkspace --scheme AllUnitTests_iOS --output_directory xcov_output` +at Example/ in the terminal. This will aggregate the coverage, and you can run `open xcov_output/index.html` to see the results. + ### Running Sample Apps In order to run the sample apps and integration tests, you'll need valid `GoogleService-Info.plist` files for those samples. The Firebase Xcode project contains dummy plist @@ -143,23 +202,43 @@ We've seen an amazing amount of interest and contributions to improve the Fireba very grateful! We'd like to empower as many developers as we can to be able to use Firebase and participate in the Firebase community. -### macOS and tvOS -FirebaseAuth, FirebaseCore, FirebaseDatabase and FirebaseStorage now compile, run unit tests, and -work on macOS and tvOS, thanks to contributions from the community. There are a few tweaks needed, -like ensuring iOS-only, macOS-only, or tvOS-only code is correctly guarded with checks for -`TARGET_OS_IOS`, `TARGET_OS_OSX` and `TARGET_OS_TV`. +### tvOS, macOS, watchOS and Catalyst +Thanks to contributions from the community, many of Firebase SDKs now compile, run unit tests, and work on +tvOS, macOS, watchOS and Catalyst. For tvOS, checkout the [Sample](Example/tvOSSample). +For watchOS, currently only Messaging and Storage (and their dependencies) have limited support. Checkout the +[Independent Watch App Sample](Example/watchOSSample). -Keep in mind that macOS and tvOS are not officially supported by Firebase, and this repository is -actively developed primarily for iOS. While we can catch basic unit test issues with Travis, there -may be some changes where the SDK no longer works as expected on macOS or tvOS. If you encounter -this, please [file an issue](https://github.com/firebase/firebase-ios-sdk/issues). +Keep in mind that macOS, tvOS, watchOS and Catalyst are not officially supported by Firebase, and this +repository is actively developed primarily for iOS. While we can catch basic unit test issues with +Travis, there may be some changes where the SDK no longer works as expected on macOS, tvOS or watchOS. If you +encounter this, please [file an issue](https://github.com/firebase/firebase-ios-sdk/issues). -For installation instructions, see [above](README.md#accessing-firebase-source-snapshots). +During app setup in the console, you may get to a step that mentions something like "Checking if the app +has communicated with our servers". This relies on Analytics and will not work on macOS/tvOS/watchOS/Catalyst. +**It's safe to ignore the message and continue**, the rest of the SDKs will work as expected. -Note that the Firebase pod is not available for macOS and tvOS. Install a selection of the -`FirebaseAuth`, `FirebaseCore`, `FirebaseDatabase` and `FirebaseStorage` CocoaPods. +To install, add a subset of the following to the Podfile: + +``` +pod 'Firebase/ABTesting' # No watchOS support yet +pod 'Firebase/Auth' # No watchOS support yet +pod 'Firebase/Crashlytics' # No watchOS support yet +pod 'Firebase/Database' # No watchOS support yet +pod 'Firebase/Firestore' # No watchOS support yet +pod 'Firebase/Functions' # No watchOS support yet +pod 'Firebase/Messaging' +pod 'Firebase/RemoteConfig' # No watchOS support yet +pod 'Firebase/Storage' +``` + +#### Additional Catalyst Notes + +* FirebaseAuth and FirebaseMessaging require adding `Keychain Sharing Capability` +to Build Settings. +* FirebaseFirestore requires signing the +[gRPC Resource target](https://github.com/firebase/firebase-ios-sdk/issues/3500#issuecomment-518741681). ## Roadmap @@ -178,3 +257,10 @@ The contents of this repository is licensed under the Your use of Firebase is governed by the [Terms of Service for Firebase Services](https://firebase.google.com/terms/). + +[gh-actions]: https://github.com/firebase/firebase-ios-sdk/actions +[gh-core-badge]: https://github.com/firebase/firebase-ios-sdk/workflows/core/badge.svg +[gh-datatransport-badge]: https://github.com/firebase/firebase-ios-sdk/workflows/datatransport/badge.svg +[gh-dynamiclinks-badge]: https://github.com/firebase/firebase-ios-sdk/workflows/dynamiclinks/badge.svg +[gh-storage-badge]: https://github.com/firebase/firebase-ios-sdk/workflows/storage/badge.svg +[gh-zip-badge]: https://github.com/firebase/firebase-ios-sdk/workflows/zip/badge.svg diff --git a/Pods/Headers/Private/FirebaseCoreDiagnosticsInterop/FIRCoreDiagnosticsData.h b/Pods/Headers/Private/FirebaseCoreDiagnosticsInterop/FIRCoreDiagnosticsData.h new file mode 120000 index 0000000000..ce646ecf1d --- /dev/null +++ b/Pods/Headers/Private/FirebaseCoreDiagnosticsInterop/FIRCoreDiagnosticsData.h @@ -0,0 +1 @@ +../../../FirebaseCoreDiagnosticsInterop/Interop/CoreDiagnostics/Public/FIRCoreDiagnosticsData.h \ No newline at end of file diff --git a/Pods/Headers/Private/FirebaseCoreDiagnosticsInterop/FIRCoreDiagnosticsInterop.h b/Pods/Headers/Private/FirebaseCoreDiagnosticsInterop/FIRCoreDiagnosticsInterop.h new file mode 120000 index 0000000000..07d83d70f4 --- /dev/null +++ b/Pods/Headers/Private/FirebaseCoreDiagnosticsInterop/FIRCoreDiagnosticsInterop.h @@ -0,0 +1 @@ +../../../FirebaseCoreDiagnosticsInterop/Interop/CoreDiagnostics/Public/FIRCoreDiagnosticsInterop.h \ No newline at end of file diff --git a/Pods/Headers/Public/FirebaseCoreDiagnosticsInterop/FIRCoreDiagnosticsData.h b/Pods/Headers/Public/FirebaseCoreDiagnosticsInterop/FIRCoreDiagnosticsData.h new file mode 120000 index 0000000000..ce646ecf1d --- /dev/null +++ b/Pods/Headers/Public/FirebaseCoreDiagnosticsInterop/FIRCoreDiagnosticsData.h @@ -0,0 +1 @@ +../../../FirebaseCoreDiagnosticsInterop/Interop/CoreDiagnostics/Public/FIRCoreDiagnosticsData.h \ No newline at end of file diff --git a/Pods/Headers/Public/FirebaseCoreDiagnosticsInterop/FIRCoreDiagnosticsInterop.h b/Pods/Headers/Public/FirebaseCoreDiagnosticsInterop/FIRCoreDiagnosticsInterop.h new file mode 120000 index 0000000000..07d83d70f4 --- /dev/null +++ b/Pods/Headers/Public/FirebaseCoreDiagnosticsInterop/FIRCoreDiagnosticsInterop.h @@ -0,0 +1 @@ +../../../FirebaseCoreDiagnosticsInterop/Interop/CoreDiagnostics/Public/FIRCoreDiagnosticsInterop.h \ No newline at end of file diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Headers/JitsiMeet-Swift.h b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Headers/JitsiMeet-Swift.h index 4101c4d9e1..2e7cf108b6 100644 --- a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Headers/JitsiMeet-Swift.h +++ b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Headers/JitsiMeet-Swift.h @@ -1,6 +1,4 @@ -#if 0 -#elif defined(__arm64__) && __arm64__ -// Generated by Apple Swift version 5.1.2 (swiftlang-1100.0.278 clang-1100.0.33.9) +// Generated by Apple Swift version 5.2 (swiftlang-1103.0.32.1 clang-1103.0.32.29) #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wgcc-compat" @@ -84,254 +82,10 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); #else # define SWIFT_NOESCAPE #endif -#if __has_attribute(warn_unused_result) -# define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) -#else -# define SWIFT_WARN_UNUSED_RESULT -#endif -#if __has_attribute(noreturn) -# define SWIFT_NORETURN __attribute__((noreturn)) -#else -# define SWIFT_NORETURN -#endif -#if !defined(SWIFT_CLASS_EXTRA) -# define SWIFT_CLASS_EXTRA -#endif -#if !defined(SWIFT_PROTOCOL_EXTRA) -# define SWIFT_PROTOCOL_EXTRA -#endif -#if !defined(SWIFT_ENUM_EXTRA) -# define SWIFT_ENUM_EXTRA -#endif -#if !defined(SWIFT_CLASS) -# if __has_attribute(objc_subclassing_restricted) -# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA -# define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA -# else -# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA -# define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA -# endif -#endif -#if !defined(SWIFT_RESILIENT_CLASS) -# if __has_attribute(objc_class_stub) -# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub)) -# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME) -# else -# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) -# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME) -# endif -#endif - -#if !defined(SWIFT_PROTOCOL) -# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA -# define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA -#endif - -#if !defined(SWIFT_EXTENSION) -# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__) -#endif - -#if !defined(OBJC_DESIGNATED_INITIALIZER) -# if __has_attribute(objc_designated_initializer) -# define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) -# else -# define OBJC_DESIGNATED_INITIALIZER -# endif -#endif -#if !defined(SWIFT_ENUM_ATTR) -# if defined(__has_attribute) && __has_attribute(enum_extensibility) -# define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility))) -# else -# define SWIFT_ENUM_ATTR(_extensibility) -# endif -#endif -#if !defined(SWIFT_ENUM) -# define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type -# if __has_feature(generalized_swift_name) -# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type -# else -# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility) -# endif -#endif -#if !defined(SWIFT_UNAVAILABLE) -# define SWIFT_UNAVAILABLE __attribute__((unavailable)) -#endif -#if !defined(SWIFT_UNAVAILABLE_MSG) -# define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg))) -#endif -#if !defined(SWIFT_AVAILABILITY) -# define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__))) -#endif -#if !defined(SWIFT_WEAK_IMPORT) -# define SWIFT_WEAK_IMPORT __attribute__((weak_import)) -#endif -#if !defined(SWIFT_DEPRECATED) -# define SWIFT_DEPRECATED __attribute__((deprecated)) -#endif -#if !defined(SWIFT_DEPRECATED_MSG) -# define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__))) -#endif -#if __has_feature(attribute_diagnose_if_objc) -# define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning"))) -#else -# define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg) -#endif -#if !defined(IBSegueAction) -# define IBSegueAction -#endif -#if __has_feature(modules) -#if __has_warning("-Watimport-in-framework-header") -#pragma clang diagnostic ignored "-Watimport-in-framework-header" -#endif -@import CallKit; -@import Foundation; -@import ObjectiveC; -#endif - -#pragma clang diagnostic ignored "-Wproperty-attribute-mismatch" -#pragma clang diagnostic ignored "-Wduplicate-method-arg" -#if __has_warning("-Wpragma-clang-attribute") -# pragma clang diagnostic ignored "-Wpragma-clang-attribute" -#endif -#pragma clang diagnostic ignored "-Wunknown-pragmas" -#pragma clang diagnostic ignored "-Wnullability" - -#if __has_attribute(external_source_symbol) -# pragma push_macro("any") -# undef any -# pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="JitsiMeet",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol)) -# pragma pop_macro("any") -#endif - -@class AVAudioSession; -@class CXAction; - -SWIFT_PROTOCOL("_TtP9JitsiMeet17JMCallKitListener_") -@protocol JMCallKitListener -@optional -- (void)providerDidReset; -- (void)performAnswerCallWithUUID:(NSUUID * _Nonnull)UUID; -- (void)performEndCallWithUUID:(NSUUID * _Nonnull)UUID; -- (void)performSetMutedCallWithUUID:(NSUUID * _Nonnull)UUID isMuted:(BOOL)isMuted; -- (void)performStartCallWithUUID:(NSUUID * _Nonnull)UUID isVideo:(BOOL)isVideo; -- (void)providerDidActivateAudioSessionWithSession:(AVAudioSession * _Nonnull)session; -- (void)providerDidDeactivateAudioSessionWithSession:(AVAudioSession * _Nonnull)session; -- (void)providerTimedOutPerformingActionWithAction:(CXAction * _Nonnull)action; -@end - -@class CXTransaction; - -SWIFT_CLASS("_TtC9JitsiMeet14JMCallKitProxy") -@interface JMCallKitProxy : NSObject -- (nonnull instancetype)init SWIFT_UNAVAILABLE; -+ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); -/// Enables the proxy in between CallKit and the consumers of the SDK. -/// Defaults to enabled, set to false when you don’t want to use CallKit. -SWIFT_CLASS_PROPERTY(@property (nonatomic, class) BOOL enabled;) -+ (BOOL)enabled SWIFT_WARN_UNUSED_RESULT; -+ (void)setEnabled:(BOOL)newValue; -+ (void)configureProviderWithLocalizedName:(NSString * _Nonnull)localizedName ringtoneSound:(NSString * _Nullable)ringtoneSound iconTemplateImageData:(NSData * _Nullable)iconTemplateImageData; -+ (BOOL)isProviderConfigured SWIFT_WARN_UNUSED_RESULT; -+ (void)addListener:(id _Nonnull)listener; -+ (void)removeListener:(id _Nonnull)listener; -+ (BOOL)hasActiveCallForUUID:(NSString * _Nonnull)callUUID SWIFT_WARN_UNUSED_RESULT; -+ (void)reportNewIncomingCallWithUUID:(NSUUID * _Nonnull)UUID handle:(NSString * _Nullable)handle displayName:(NSString * _Nullable)displayName hasVideo:(BOOL)hasVideo completion:(void (^ _Nonnull)(NSError * _Nullable))completion; -+ (void)reportCallUpdateWith:(NSUUID * _Nonnull)UUID handle:(NSString * _Nullable)handle displayName:(NSString * _Nullable)displayName hasVideo:(BOOL)hasVideo; -+ (void)reportCallWith:(NSUUID * _Nonnull)UUID endedAt:(NSDate * _Nullable)dateEnded reason:(CXCallEndedReason)endedReason; -+ (void)reportOutgoingCallWith:(NSUUID * _Nonnull)UUID startedConnectingAt:(NSDate * _Nullable)dateStartedConnecting; -+ (void)reportOutgoingCallWith:(NSUUID * _Nonnull)UUID connectedAt:(NSDate * _Nullable)dateConnected; -+ (void)request:(CXTransaction * _Nonnull)transaction completion:(void (^ _Nonnull)(NSError * _Nullable))completion; -@end - -#if __has_attribute(external_source_symbol) -# pragma clang attribute pop -#endif -#pragma clang diagnostic pop - -#elif defined(__ARM_ARCH_7A__) && __ARM_ARCH_7A__ -// Generated by Apple Swift version 5.1.2 (swiftlang-1100.0.278 clang-1100.0.33.9) -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wgcc-compat" - -#if !defined(__has_include) -# define __has_include(x) 0 -#endif -#if !defined(__has_attribute) -# define __has_attribute(x) 0 -#endif -#if !defined(__has_feature) -# define __has_feature(x) 0 -#endif -#if !defined(__has_warning) -# define __has_warning(x) 0 -#endif - -#if __has_include() -# include -#endif - -#pragma clang diagnostic ignored "-Wauto-import" -#include -#include -#include -#include - -#if !defined(SWIFT_TYPEDEFS) -# define SWIFT_TYPEDEFS 1 -# if __has_include() -# include -# elif !defined(__cplusplus) -typedef uint_least16_t char16_t; -typedef uint_least32_t char32_t; -# endif -typedef float swift_float2 __attribute__((__ext_vector_type__(2))); -typedef float swift_float3 __attribute__((__ext_vector_type__(3))); -typedef float swift_float4 __attribute__((__ext_vector_type__(4))); -typedef double swift_double2 __attribute__((__ext_vector_type__(2))); -typedef double swift_double3 __attribute__((__ext_vector_type__(3))); -typedef double swift_double4 __attribute__((__ext_vector_type__(4))); -typedef int swift_int2 __attribute__((__ext_vector_type__(2))); -typedef int swift_int3 __attribute__((__ext_vector_type__(3))); -typedef int swift_int4 __attribute__((__ext_vector_type__(4))); -typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2))); -typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3))); -typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); -#endif - -#if !defined(SWIFT_PASTE) -# define SWIFT_PASTE_HELPER(x, y) x##y -# define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y) -#endif -#if !defined(SWIFT_METATYPE) -# define SWIFT_METATYPE(X) Class -#endif -#if !defined(SWIFT_CLASS_PROPERTY) -# if __has_feature(objc_class_property) -# define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__ -# else -# define SWIFT_CLASS_PROPERTY(...) -# endif -#endif - -#if __has_attribute(objc_runtime_name) -# define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X))) -#else -# define SWIFT_RUNTIME_NAME(X) -#endif -#if __has_attribute(swift_name) -# define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X))) -#else -# define SWIFT_COMPILE_NAME(X) -#endif -#if __has_attribute(objc_method_family) -# define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X))) +#if __has_attribute(ns_consumed) +# define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed)) #else -# define SWIFT_METHOD_FAMILY(X) -#endif -#if __has_attribute(noescape) -# define SWIFT_NOESCAPE __attribute__((noescape)) -#else -# define SWIFT_NOESCAPE +# define SWIFT_RELEASES_ARGUMENT #endif #if __has_attribute(warn_unused_result) # define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) @@ -478,7 +232,7 @@ SWIFT_CLASS("_TtC9JitsiMeet14JMCallKitProxy") /// Defaults to enabled, set to false when you don’t want to use CallKit. SWIFT_CLASS_PROPERTY(@property (nonatomic, class) BOOL enabled;) + (BOOL)enabled SWIFT_WARN_UNUSED_RESULT; -+ (void)setEnabled:(BOOL)newValue; ++ (void)setEnabled:(BOOL)value; + (void)configureProviderWithLocalizedName:(NSString * _Nonnull)localizedName ringtoneSound:(NSString * _Nullable)ringtoneSound iconTemplateImageData:(NSData * _Nullable)iconTemplateImageData; + (BOOL)isProviderConfigured SWIFT_WARN_UNUSED_RESULT; + (void)addListener:(id _Nonnull)listener; @@ -496,5 +250,3 @@ SWIFT_CLASS_PROPERTY(@property (nonatomic, class) BOOL enabled;) # pragma clang attribute pop #endif #pragma clang diagnostic pop - -#endif diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Info.plist b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Info.plist index e6f9910a00..1698b36355 100644 Binary files a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Info.plist and b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Info.plist differ diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/JitsiMeet b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/JitsiMeet index 6a9427242f..f8ea212017 100755 Binary files a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/JitsiMeet and b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/JitsiMeet differ diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/Project/x86_64-apple-ios-simulator.swiftsourceinfo b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/Project/x86_64-apple-ios-simulator.swiftsourceinfo new file mode 100644 index 0000000000..491a3b30db Binary files /dev/null and b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/Project/x86_64-apple-ios-simulator.swiftsourceinfo differ diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/Project/x86_64.swiftsourceinfo b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/Project/x86_64.swiftsourceinfo new file mode 100644 index 0000000000..491a3b30db Binary files /dev/null and b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/Project/x86_64.swiftsourceinfo differ diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/arm.swiftdoc b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/arm.swiftdoc deleted file mode 100644 index 757cb6efd1..0000000000 Binary files a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/arm.swiftdoc and /dev/null differ diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/arm.swiftinterface b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/arm.swiftinterface deleted file mode 100644 index 78260ed1f5..0000000000 --- a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/arm.swiftinterface +++ /dev/null @@ -1,72 +0,0 @@ -// swift-interface-format-version: 1.0 -// swift-compiler-version: Apple Swift version 5.1.2 (swiftlang-1100.0.278 clang-1100.0.33.9) -// swift-module-flags: -target armv7-apple-ios10.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -module-name JitsiMeet -import AVKit -import CallKit -import Foundation -@_exported import JitsiMeet -import Swift -public typealias AnimationCompletion = (Swift.Bool) -> Swift.Void -public protocol PiPViewCoordinatorDelegate : AnyObject { - func exitPictureInPicture() -} -public class PiPViewCoordinator { - public var dragBoundInsets: UIKit.UIEdgeInsets { - get - set - } - public enum Position { - case lowerRightCorner - case upperRightCorner - case lowerLeftCorner - case upperLeftCorner - public static func == (a: JitsiMeet.PiPViewCoordinator.Position, b: JitsiMeet.PiPViewCoordinator.Position) -> Swift.Bool - public var hashValue: Swift.Int { - get - } - public func hash(into hasher: inout Swift.Hasher) - } - public var initialPositionInSuperview: JitsiMeet.PiPViewCoordinator.Position - public var pipSizeRatio: CoreGraphics.CGFloat - weak public var delegate: JitsiMeet.PiPViewCoordinatorDelegate? - public init(withView view: UIKit.UIView) - public func configureAsStickyView(withParentView parentView: UIKit.UIView? = nil) - public func show(completion: JitsiMeet.AnimationCompletion? = nil) - public func hide(completion: JitsiMeet.AnimationCompletion? = nil) - public func enterPictureInPicture() - @objc public func exitPictureInPicture() - public func resetBounds(bounds: CoreGraphics.CGRect) - public func stopDragGesture() - open func configureExitPiPButton(target: Any, action: ObjectiveC.Selector) -> UIKit.UIButton - @objc deinit -} -@objc final public class JMCallKitProxy : ObjectiveC.NSObject { - @objc public static var enabled: Swift.Bool { - @objc get - @objc set - } - @objc public static func configureProvider(localizedName: Swift.String, ringtoneSound: Swift.String?, iconTemplateImageData: Foundation.Data?) - @objc public static func isProviderConfigured() -> Swift.Bool - @objc public static func addListener(_ listener: JitsiMeet.JMCallKitListener) - @objc public static func removeListener(_ listener: JitsiMeet.JMCallKitListener) - @objc public static func hasActiveCallForUUID(_ callUUID: Swift.String) -> Swift.Bool - @objc public static func reportNewIncomingCall(UUID: Foundation.UUID, handle: Swift.String?, displayName: Swift.String?, hasVideo: Swift.Bool, completion: @escaping (Swift.Error?) -> Swift.Void) - @objc public static func reportCallUpdate(with UUID: Foundation.UUID, handle: Swift.String?, displayName: Swift.String?, hasVideo: Swift.Bool) - @objc public static func reportCall(with UUID: Foundation.UUID, endedAt dateEnded: Foundation.Date?, reason endedReason: CallKit.CXCallEndedReason) - @objc public static func reportOutgoingCall(with UUID: Foundation.UUID, startedConnectingAt dateStartedConnecting: Foundation.Date?) - @objc public static func reportOutgoingCall(with UUID: Foundation.UUID, connectedAt dateConnected: Foundation.Date?) - @objc public static func request(_ transaction: CallKit.CXTransaction, completion: @escaping (Swift.Error?) -> Swift.Void) - @objc deinit -} -@objc public protocol JMCallKitListener : ObjectiveC.NSObjectProtocol { - @objc optional func providerDidReset() - @objc optional func performAnswerCall(UUID: Foundation.UUID) - @objc optional func performEndCall(UUID: Foundation.UUID) - @objc optional func performSetMutedCall(UUID: Foundation.UUID, isMuted: Swift.Bool) - @objc optional func performStartCall(UUID: Foundation.UUID, isVideo: Swift.Bool) - @objc optional func providerDidActivateAudioSession(session: AVFoundation.AVAudioSession) - @objc optional func providerDidDeactivateAudioSession(session: AVFoundation.AVAudioSession) - @objc optional func providerTimedOutPerformingAction(action: CallKit.CXAction) -} -extension JitsiMeet.PiPViewCoordinator.Position : Swift.Equatable {} -extension JitsiMeet.PiPViewCoordinator.Position : Swift.Hashable {} diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/arm.swiftmodule b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/arm.swiftmodule deleted file mode 100644 index e9950ed0f9..0000000000 Binary files a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/arm.swiftmodule and /dev/null differ diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/arm64-apple-ios.swiftdoc b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/arm64-apple-ios.swiftdoc index eb1efcdc03..15e626b75b 100644 Binary files a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/arm64-apple-ios.swiftdoc and b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/arm64-apple-ios.swiftdoc differ diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/arm64-apple-ios.swiftinterface b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/arm64-apple-ios.swiftinterface index 85a9e455ba..1fba276ba8 100644 --- a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/arm64-apple-ios.swiftinterface +++ b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/arm64-apple-ios.swiftinterface @@ -1,6 +1,6 @@ // swift-interface-format-version: 1.0 -// swift-compiler-version: Apple Swift version 5.1.2 (swiftlang-1100.0.278 clang-1100.0.33.9) -// swift-module-flags: -target arm64-apple-ios10.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -module-name JitsiMeet +// swift-compiler-version: Apple Swift version 5.2 (swiftlang-1103.0.32.1 clang-1103.0.32.29) +// swift-module-flags: -target arm64-apple-ios11.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -module-name JitsiMeet import AVKit import CallKit import Foundation @@ -40,7 +40,7 @@ public class PiPViewCoordinator { open func configureExitPiPButton(target: Any, action: ObjectiveC.Selector) -> UIKit.UIButton @objc deinit } -@objc final public class JMCallKitProxy : ObjectiveC.NSObject { +@_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objc final public class JMCallKitProxy : ObjectiveC.NSObject { @objc public static var enabled: Swift.Bool { @objc get @objc set diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/arm64-apple-ios.swiftmodule b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/arm64-apple-ios.swiftmodule index 1b67cc1184..7256b493c4 100644 Binary files a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/arm64-apple-ios.swiftmodule and b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/arm64-apple-ios.swiftmodule differ diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/arm64.swiftdoc b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/arm64.swiftdoc index eb1efcdc03..15e626b75b 100644 Binary files a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/arm64.swiftdoc and b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/arm64.swiftdoc differ diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/arm64.swiftinterface b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/arm64.swiftinterface index 85a9e455ba..1fba276ba8 100644 --- a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/arm64.swiftinterface +++ b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/arm64.swiftinterface @@ -1,6 +1,6 @@ // swift-interface-format-version: 1.0 -// swift-compiler-version: Apple Swift version 5.1.2 (swiftlang-1100.0.278 clang-1100.0.33.9) -// swift-module-flags: -target arm64-apple-ios10.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -module-name JitsiMeet +// swift-compiler-version: Apple Swift version 5.2 (swiftlang-1103.0.32.1 clang-1103.0.32.29) +// swift-module-flags: -target arm64-apple-ios11.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -module-name JitsiMeet import AVKit import CallKit import Foundation @@ -40,7 +40,7 @@ public class PiPViewCoordinator { open func configureExitPiPButton(target: Any, action: ObjectiveC.Selector) -> UIKit.UIButton @objc deinit } -@objc final public class JMCallKitProxy : ObjectiveC.NSObject { +@_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objc final public class JMCallKitProxy : ObjectiveC.NSObject { @objc public static var enabled: Swift.Bool { @objc get @objc set diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/arm64.swiftmodule b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/arm64.swiftmodule index 1b67cc1184..7256b493c4 100644 Binary files a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/arm64.swiftmodule and b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/arm64.swiftmodule differ diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/armv7-apple-ios.swiftdoc b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/armv7-apple-ios.swiftdoc deleted file mode 100644 index 757cb6efd1..0000000000 Binary files a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/armv7-apple-ios.swiftdoc and /dev/null differ diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/armv7-apple-ios.swiftinterface b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/armv7-apple-ios.swiftinterface deleted file mode 100644 index 78260ed1f5..0000000000 --- a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/armv7-apple-ios.swiftinterface +++ /dev/null @@ -1,72 +0,0 @@ -// swift-interface-format-version: 1.0 -// swift-compiler-version: Apple Swift version 5.1.2 (swiftlang-1100.0.278 clang-1100.0.33.9) -// swift-module-flags: -target armv7-apple-ios10.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -module-name JitsiMeet -import AVKit -import CallKit -import Foundation -@_exported import JitsiMeet -import Swift -public typealias AnimationCompletion = (Swift.Bool) -> Swift.Void -public protocol PiPViewCoordinatorDelegate : AnyObject { - func exitPictureInPicture() -} -public class PiPViewCoordinator { - public var dragBoundInsets: UIKit.UIEdgeInsets { - get - set - } - public enum Position { - case lowerRightCorner - case upperRightCorner - case lowerLeftCorner - case upperLeftCorner - public static func == (a: JitsiMeet.PiPViewCoordinator.Position, b: JitsiMeet.PiPViewCoordinator.Position) -> Swift.Bool - public var hashValue: Swift.Int { - get - } - public func hash(into hasher: inout Swift.Hasher) - } - public var initialPositionInSuperview: JitsiMeet.PiPViewCoordinator.Position - public var pipSizeRatio: CoreGraphics.CGFloat - weak public var delegate: JitsiMeet.PiPViewCoordinatorDelegate? - public init(withView view: UIKit.UIView) - public func configureAsStickyView(withParentView parentView: UIKit.UIView? = nil) - public func show(completion: JitsiMeet.AnimationCompletion? = nil) - public func hide(completion: JitsiMeet.AnimationCompletion? = nil) - public func enterPictureInPicture() - @objc public func exitPictureInPicture() - public func resetBounds(bounds: CoreGraphics.CGRect) - public func stopDragGesture() - open func configureExitPiPButton(target: Any, action: ObjectiveC.Selector) -> UIKit.UIButton - @objc deinit -} -@objc final public class JMCallKitProxy : ObjectiveC.NSObject { - @objc public static var enabled: Swift.Bool { - @objc get - @objc set - } - @objc public static func configureProvider(localizedName: Swift.String, ringtoneSound: Swift.String?, iconTemplateImageData: Foundation.Data?) - @objc public static func isProviderConfigured() -> Swift.Bool - @objc public static func addListener(_ listener: JitsiMeet.JMCallKitListener) - @objc public static func removeListener(_ listener: JitsiMeet.JMCallKitListener) - @objc public static func hasActiveCallForUUID(_ callUUID: Swift.String) -> Swift.Bool - @objc public static func reportNewIncomingCall(UUID: Foundation.UUID, handle: Swift.String?, displayName: Swift.String?, hasVideo: Swift.Bool, completion: @escaping (Swift.Error?) -> Swift.Void) - @objc public static func reportCallUpdate(with UUID: Foundation.UUID, handle: Swift.String?, displayName: Swift.String?, hasVideo: Swift.Bool) - @objc public static func reportCall(with UUID: Foundation.UUID, endedAt dateEnded: Foundation.Date?, reason endedReason: CallKit.CXCallEndedReason) - @objc public static func reportOutgoingCall(with UUID: Foundation.UUID, startedConnectingAt dateStartedConnecting: Foundation.Date?) - @objc public static func reportOutgoingCall(with UUID: Foundation.UUID, connectedAt dateConnected: Foundation.Date?) - @objc public static func request(_ transaction: CallKit.CXTransaction, completion: @escaping (Swift.Error?) -> Swift.Void) - @objc deinit -} -@objc public protocol JMCallKitListener : ObjectiveC.NSObjectProtocol { - @objc optional func providerDidReset() - @objc optional func performAnswerCall(UUID: Foundation.UUID) - @objc optional func performEndCall(UUID: Foundation.UUID) - @objc optional func performSetMutedCall(UUID: Foundation.UUID, isMuted: Swift.Bool) - @objc optional func performStartCall(UUID: Foundation.UUID, isVideo: Swift.Bool) - @objc optional func providerDidActivateAudioSession(session: AVFoundation.AVAudioSession) - @objc optional func providerDidDeactivateAudioSession(session: AVFoundation.AVAudioSession) - @objc optional func providerTimedOutPerformingAction(action: CallKit.CXAction) -} -extension JitsiMeet.PiPViewCoordinator.Position : Swift.Equatable {} -extension JitsiMeet.PiPViewCoordinator.Position : Swift.Hashable {} diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/armv7-apple-ios.swiftmodule b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/armv7-apple-ios.swiftmodule deleted file mode 100644 index e9950ed0f9..0000000000 Binary files a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/armv7-apple-ios.swiftmodule and /dev/null differ diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/armv7.swiftdoc b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/armv7.swiftdoc deleted file mode 100644 index 757cb6efd1..0000000000 Binary files a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/armv7.swiftdoc and /dev/null differ diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/armv7.swiftinterface b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/armv7.swiftinterface deleted file mode 100644 index 78260ed1f5..0000000000 --- a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/armv7.swiftinterface +++ /dev/null @@ -1,72 +0,0 @@ -// swift-interface-format-version: 1.0 -// swift-compiler-version: Apple Swift version 5.1.2 (swiftlang-1100.0.278 clang-1100.0.33.9) -// swift-module-flags: -target armv7-apple-ios10.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -module-name JitsiMeet -import AVKit -import CallKit -import Foundation -@_exported import JitsiMeet -import Swift -public typealias AnimationCompletion = (Swift.Bool) -> Swift.Void -public protocol PiPViewCoordinatorDelegate : AnyObject { - func exitPictureInPicture() -} -public class PiPViewCoordinator { - public var dragBoundInsets: UIKit.UIEdgeInsets { - get - set - } - public enum Position { - case lowerRightCorner - case upperRightCorner - case lowerLeftCorner - case upperLeftCorner - public static func == (a: JitsiMeet.PiPViewCoordinator.Position, b: JitsiMeet.PiPViewCoordinator.Position) -> Swift.Bool - public var hashValue: Swift.Int { - get - } - public func hash(into hasher: inout Swift.Hasher) - } - public var initialPositionInSuperview: JitsiMeet.PiPViewCoordinator.Position - public var pipSizeRatio: CoreGraphics.CGFloat - weak public var delegate: JitsiMeet.PiPViewCoordinatorDelegate? - public init(withView view: UIKit.UIView) - public func configureAsStickyView(withParentView parentView: UIKit.UIView? = nil) - public func show(completion: JitsiMeet.AnimationCompletion? = nil) - public func hide(completion: JitsiMeet.AnimationCompletion? = nil) - public func enterPictureInPicture() - @objc public func exitPictureInPicture() - public func resetBounds(bounds: CoreGraphics.CGRect) - public func stopDragGesture() - open func configureExitPiPButton(target: Any, action: ObjectiveC.Selector) -> UIKit.UIButton - @objc deinit -} -@objc final public class JMCallKitProxy : ObjectiveC.NSObject { - @objc public static var enabled: Swift.Bool { - @objc get - @objc set - } - @objc public static func configureProvider(localizedName: Swift.String, ringtoneSound: Swift.String?, iconTemplateImageData: Foundation.Data?) - @objc public static func isProviderConfigured() -> Swift.Bool - @objc public static func addListener(_ listener: JitsiMeet.JMCallKitListener) - @objc public static func removeListener(_ listener: JitsiMeet.JMCallKitListener) - @objc public static func hasActiveCallForUUID(_ callUUID: Swift.String) -> Swift.Bool - @objc public static func reportNewIncomingCall(UUID: Foundation.UUID, handle: Swift.String?, displayName: Swift.String?, hasVideo: Swift.Bool, completion: @escaping (Swift.Error?) -> Swift.Void) - @objc public static func reportCallUpdate(with UUID: Foundation.UUID, handle: Swift.String?, displayName: Swift.String?, hasVideo: Swift.Bool) - @objc public static func reportCall(with UUID: Foundation.UUID, endedAt dateEnded: Foundation.Date?, reason endedReason: CallKit.CXCallEndedReason) - @objc public static func reportOutgoingCall(with UUID: Foundation.UUID, startedConnectingAt dateStartedConnecting: Foundation.Date?) - @objc public static func reportOutgoingCall(with UUID: Foundation.UUID, connectedAt dateConnected: Foundation.Date?) - @objc public static func request(_ transaction: CallKit.CXTransaction, completion: @escaping (Swift.Error?) -> Swift.Void) - @objc deinit -} -@objc public protocol JMCallKitListener : ObjectiveC.NSObjectProtocol { - @objc optional func providerDidReset() - @objc optional func performAnswerCall(UUID: Foundation.UUID) - @objc optional func performEndCall(UUID: Foundation.UUID) - @objc optional func performSetMutedCall(UUID: Foundation.UUID, isMuted: Swift.Bool) - @objc optional func performStartCall(UUID: Foundation.UUID, isVideo: Swift.Bool) - @objc optional func providerDidActivateAudioSession(session: AVFoundation.AVAudioSession) - @objc optional func providerDidDeactivateAudioSession(session: AVFoundation.AVAudioSession) - @objc optional func providerTimedOutPerformingAction(action: CallKit.CXAction) -} -extension JitsiMeet.PiPViewCoordinator.Position : Swift.Equatable {} -extension JitsiMeet.PiPViewCoordinator.Position : Swift.Hashable {} diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/armv7.swiftmodule b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/armv7.swiftmodule deleted file mode 100644 index e9950ed0f9..0000000000 Binary files a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/armv7.swiftmodule and /dev/null differ diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/i386-apple-ios-simulator.swiftdoc b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/i386-apple-ios-simulator.swiftdoc deleted file mode 100644 index 0f40160360..0000000000 Binary files a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/i386-apple-ios-simulator.swiftdoc and /dev/null differ diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/i386-apple-ios-simulator.swiftinterface b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/i386-apple-ios-simulator.swiftinterface deleted file mode 100644 index 6adc933069..0000000000 --- a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/i386-apple-ios-simulator.swiftinterface +++ /dev/null @@ -1,72 +0,0 @@ -// swift-interface-format-version: 1.0 -// swift-compiler-version: Apple Swift version 5.1.2 (swiftlang-1100.0.278 clang-1100.0.33.9) -// swift-module-flags: -target i386-apple-ios10.0-simulator -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -module-name JitsiMeet -import AVKit -import CallKit -import Foundation -@_exported import JitsiMeet -import Swift -public typealias AnimationCompletion = (Swift.Bool) -> Swift.Void -public protocol PiPViewCoordinatorDelegate : AnyObject { - func exitPictureInPicture() -} -public class PiPViewCoordinator { - public var dragBoundInsets: UIKit.UIEdgeInsets { - get - set - } - public enum Position { - case lowerRightCorner - case upperRightCorner - case lowerLeftCorner - case upperLeftCorner - public static func == (a: JitsiMeet.PiPViewCoordinator.Position, b: JitsiMeet.PiPViewCoordinator.Position) -> Swift.Bool - public var hashValue: Swift.Int { - get - } - public func hash(into hasher: inout Swift.Hasher) - } - public var initialPositionInSuperview: JitsiMeet.PiPViewCoordinator.Position - public var pipSizeRatio: CoreGraphics.CGFloat - weak public var delegate: JitsiMeet.PiPViewCoordinatorDelegate? - public init(withView view: UIKit.UIView) - public func configureAsStickyView(withParentView parentView: UIKit.UIView? = nil) - public func show(completion: JitsiMeet.AnimationCompletion? = nil) - public func hide(completion: JitsiMeet.AnimationCompletion? = nil) - public func enterPictureInPicture() - @objc public func exitPictureInPicture() - public func resetBounds(bounds: CoreGraphics.CGRect) - public func stopDragGesture() - open func configureExitPiPButton(target: Any, action: ObjectiveC.Selector) -> UIKit.UIButton - @objc deinit -} -@objc final public class JMCallKitProxy : ObjectiveC.NSObject { - @objc public static var enabled: Swift.Bool { - @objc get - @objc set - } - @objc public static func configureProvider(localizedName: Swift.String, ringtoneSound: Swift.String?, iconTemplateImageData: Foundation.Data?) - @objc public static func isProviderConfigured() -> Swift.Bool - @objc public static func addListener(_ listener: JitsiMeet.JMCallKitListener) - @objc public static func removeListener(_ listener: JitsiMeet.JMCallKitListener) - @objc public static func hasActiveCallForUUID(_ callUUID: Swift.String) -> Swift.Bool - @objc public static func reportNewIncomingCall(UUID: Foundation.UUID, handle: Swift.String?, displayName: Swift.String?, hasVideo: Swift.Bool, completion: @escaping (Swift.Error?) -> Swift.Void) - @objc public static func reportCallUpdate(with UUID: Foundation.UUID, handle: Swift.String?, displayName: Swift.String?, hasVideo: Swift.Bool) - @objc public static func reportCall(with UUID: Foundation.UUID, endedAt dateEnded: Foundation.Date?, reason endedReason: CallKit.CXCallEndedReason) - @objc public static func reportOutgoingCall(with UUID: Foundation.UUID, startedConnectingAt dateStartedConnecting: Foundation.Date?) - @objc public static func reportOutgoingCall(with UUID: Foundation.UUID, connectedAt dateConnected: Foundation.Date?) - @objc public static func request(_ transaction: CallKit.CXTransaction, completion: @escaping (Swift.Error?) -> Swift.Void) - @objc deinit -} -@objc public protocol JMCallKitListener : ObjectiveC.NSObjectProtocol { - @objc optional func providerDidReset() - @objc optional func performAnswerCall(UUID: Foundation.UUID) - @objc optional func performEndCall(UUID: Foundation.UUID) - @objc optional func performSetMutedCall(UUID: Foundation.UUID, isMuted: Swift.Bool) - @objc optional func performStartCall(UUID: Foundation.UUID, isVideo: Swift.Bool) - @objc optional func providerDidActivateAudioSession(session: AVFoundation.AVAudioSession) - @objc optional func providerDidDeactivateAudioSession(session: AVFoundation.AVAudioSession) - @objc optional func providerTimedOutPerformingAction(action: CallKit.CXAction) -} -extension JitsiMeet.PiPViewCoordinator.Position : Swift.Equatable {} -extension JitsiMeet.PiPViewCoordinator.Position : Swift.Hashable {} diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/i386-apple-ios-simulator.swiftmodule b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/i386-apple-ios-simulator.swiftmodule deleted file mode 100644 index 8d7ec59a54..0000000000 Binary files a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/i386-apple-ios-simulator.swiftmodule and /dev/null differ diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/i386.swiftdoc b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/i386.swiftdoc deleted file mode 100644 index 0f40160360..0000000000 Binary files a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/i386.swiftdoc and /dev/null differ diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/i386.swiftinterface b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/i386.swiftinterface deleted file mode 100644 index 6adc933069..0000000000 --- a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/i386.swiftinterface +++ /dev/null @@ -1,72 +0,0 @@ -// swift-interface-format-version: 1.0 -// swift-compiler-version: Apple Swift version 5.1.2 (swiftlang-1100.0.278 clang-1100.0.33.9) -// swift-module-flags: -target i386-apple-ios10.0-simulator -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -module-name JitsiMeet -import AVKit -import CallKit -import Foundation -@_exported import JitsiMeet -import Swift -public typealias AnimationCompletion = (Swift.Bool) -> Swift.Void -public protocol PiPViewCoordinatorDelegate : AnyObject { - func exitPictureInPicture() -} -public class PiPViewCoordinator { - public var dragBoundInsets: UIKit.UIEdgeInsets { - get - set - } - public enum Position { - case lowerRightCorner - case upperRightCorner - case lowerLeftCorner - case upperLeftCorner - public static func == (a: JitsiMeet.PiPViewCoordinator.Position, b: JitsiMeet.PiPViewCoordinator.Position) -> Swift.Bool - public var hashValue: Swift.Int { - get - } - public func hash(into hasher: inout Swift.Hasher) - } - public var initialPositionInSuperview: JitsiMeet.PiPViewCoordinator.Position - public var pipSizeRatio: CoreGraphics.CGFloat - weak public var delegate: JitsiMeet.PiPViewCoordinatorDelegate? - public init(withView view: UIKit.UIView) - public func configureAsStickyView(withParentView parentView: UIKit.UIView? = nil) - public func show(completion: JitsiMeet.AnimationCompletion? = nil) - public func hide(completion: JitsiMeet.AnimationCompletion? = nil) - public func enterPictureInPicture() - @objc public func exitPictureInPicture() - public func resetBounds(bounds: CoreGraphics.CGRect) - public func stopDragGesture() - open func configureExitPiPButton(target: Any, action: ObjectiveC.Selector) -> UIKit.UIButton - @objc deinit -} -@objc final public class JMCallKitProxy : ObjectiveC.NSObject { - @objc public static var enabled: Swift.Bool { - @objc get - @objc set - } - @objc public static func configureProvider(localizedName: Swift.String, ringtoneSound: Swift.String?, iconTemplateImageData: Foundation.Data?) - @objc public static func isProviderConfigured() -> Swift.Bool - @objc public static func addListener(_ listener: JitsiMeet.JMCallKitListener) - @objc public static func removeListener(_ listener: JitsiMeet.JMCallKitListener) - @objc public static func hasActiveCallForUUID(_ callUUID: Swift.String) -> Swift.Bool - @objc public static func reportNewIncomingCall(UUID: Foundation.UUID, handle: Swift.String?, displayName: Swift.String?, hasVideo: Swift.Bool, completion: @escaping (Swift.Error?) -> Swift.Void) - @objc public static func reportCallUpdate(with UUID: Foundation.UUID, handle: Swift.String?, displayName: Swift.String?, hasVideo: Swift.Bool) - @objc public static func reportCall(with UUID: Foundation.UUID, endedAt dateEnded: Foundation.Date?, reason endedReason: CallKit.CXCallEndedReason) - @objc public static func reportOutgoingCall(with UUID: Foundation.UUID, startedConnectingAt dateStartedConnecting: Foundation.Date?) - @objc public static func reportOutgoingCall(with UUID: Foundation.UUID, connectedAt dateConnected: Foundation.Date?) - @objc public static func request(_ transaction: CallKit.CXTransaction, completion: @escaping (Swift.Error?) -> Swift.Void) - @objc deinit -} -@objc public protocol JMCallKitListener : ObjectiveC.NSObjectProtocol { - @objc optional func providerDidReset() - @objc optional func performAnswerCall(UUID: Foundation.UUID) - @objc optional func performEndCall(UUID: Foundation.UUID) - @objc optional func performSetMutedCall(UUID: Foundation.UUID, isMuted: Swift.Bool) - @objc optional func performStartCall(UUID: Foundation.UUID, isVideo: Swift.Bool) - @objc optional func providerDidActivateAudioSession(session: AVFoundation.AVAudioSession) - @objc optional func providerDidDeactivateAudioSession(session: AVFoundation.AVAudioSession) - @objc optional func providerTimedOutPerformingAction(action: CallKit.CXAction) -} -extension JitsiMeet.PiPViewCoordinator.Position : Swift.Equatable {} -extension JitsiMeet.PiPViewCoordinator.Position : Swift.Hashable {} diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/i386.swiftmodule b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/i386.swiftmodule deleted file mode 100644 index 8d7ec59a54..0000000000 Binary files a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/i386.swiftmodule and /dev/null differ diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/x86_64-apple-ios-simulator.swiftdoc b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/x86_64-apple-ios-simulator.swiftdoc index 5366d80ce4..54d419ce97 100644 Binary files a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/x86_64-apple-ios-simulator.swiftdoc and b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/x86_64-apple-ios-simulator.swiftdoc differ diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/x86_64-apple-ios-simulator.swiftinterface b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/x86_64-apple-ios-simulator.swiftinterface index 9c0fa72665..9b84516346 100644 --- a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +++ b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/x86_64-apple-ios-simulator.swiftinterface @@ -1,6 +1,6 @@ // swift-interface-format-version: 1.0 -// swift-compiler-version: Apple Swift version 5.1.2 (swiftlang-1100.0.278 clang-1100.0.33.9) -// swift-module-flags: -target x86_64-apple-ios10.0-simulator -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -module-name JitsiMeet +// swift-compiler-version: Apple Swift version 5.2 (swiftlang-1103.0.32.1 clang-1103.0.32.29) +// swift-module-flags: -target x86_64-apple-ios11.0-simulator -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -module-name JitsiMeet import AVKit import CallKit import Foundation @@ -40,7 +40,7 @@ public class PiPViewCoordinator { open func configureExitPiPButton(target: Any, action: ObjectiveC.Selector) -> UIKit.UIButton @objc deinit } -@objc final public class JMCallKitProxy : ObjectiveC.NSObject { +@_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objc final public class JMCallKitProxy : ObjectiveC.NSObject { @objc public static var enabled: Swift.Bool { @objc get @objc set diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/x86_64-apple-ios-simulator.swiftmodule b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/x86_64-apple-ios-simulator.swiftmodule index 1733fc7900..2340f5c476 100644 Binary files a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/x86_64-apple-ios-simulator.swiftmodule and b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/x86_64-apple-ios-simulator.swiftmodule differ diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/x86_64.swiftdoc b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/x86_64.swiftdoc index 5366d80ce4..54d419ce97 100644 Binary files a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/x86_64.swiftdoc and b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/x86_64.swiftdoc differ diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/x86_64.swiftinterface b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/x86_64.swiftinterface index 9c0fa72665..9b84516346 100644 --- a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/x86_64.swiftinterface +++ b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/x86_64.swiftinterface @@ -1,6 +1,6 @@ // swift-interface-format-version: 1.0 -// swift-compiler-version: Apple Swift version 5.1.2 (swiftlang-1100.0.278 clang-1100.0.33.9) -// swift-module-flags: -target x86_64-apple-ios10.0-simulator -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -module-name JitsiMeet +// swift-compiler-version: Apple Swift version 5.2 (swiftlang-1103.0.32.1 clang-1103.0.32.29) +// swift-module-flags: -target x86_64-apple-ios11.0-simulator -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -module-name JitsiMeet import AVKit import CallKit import Foundation @@ -40,7 +40,7 @@ public class PiPViewCoordinator { open func configureExitPiPButton(target: Any, action: ObjectiveC.Selector) -> UIKit.UIButton @objc deinit } -@objc final public class JMCallKitProxy : ObjectiveC.NSObject { +@_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objc final public class JMCallKitProxy : ObjectiveC.NSObject { @objc public static var enabled: Swift.Bool { @objc get @objc set diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/x86_64.swiftmodule b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/x86_64.swiftmodule index 1733fc7900..2340f5c476 100644 Binary files a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/x86_64.swiftmodule and b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/Modules/JitsiMeet.swiftmodule/x86_64.swiftmodule differ diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-bg.json b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-bg.json index c577341a97..555a285130 100644 --- a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-bg.json +++ b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-bg.json @@ -14,6 +14,7 @@ "fr": "Френски", "frCA": "Френски (Канада)", "hr": "Хърватски", + "hu": "Унгарски", "hy": "Арменски", "it": "Италиански", "ja": "Японски", diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-de.json b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-de.json index 13e1fc71c7..c2c4b3e736 100644 --- a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-de.json +++ b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-de.json @@ -1,18 +1,18 @@ { "en": "Englisch", - "af": "", - "az": "", + "af": "Afrikaans", + "az": "Aserbaidschanisch", "bg": "Bulgarisch", - "cs": "", + "cs": "Tschechisch", "de": "Deutsch", - "el": "", + "el": "Griechisch", "eo": "Esperanto", "es": "Spanisch", "fr": "Französisch", "hy": "Armenisch", "it": "Italienisch", - "ja": "", - "ko": "", + "ja": "Japanisch", + "ko": "Koreanisch", "nb": "Norwegisch (Bokmal)", "oc": "Okzitanisch", "pl": "Polnisch", @@ -22,6 +22,6 @@ "sl": "Slowenisch", "sv": "Schwedisch", "tr": "Türkisch", - "vi": "", + "vi": "Vietnamesisch", "zhCN": "Chinesisch (China)" -} \ No newline at end of file +} diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-es.json b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-es.json index cb1f057191..353a4a95af 100644 --- a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-es.json +++ b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-es.json @@ -1,27 +1,34 @@ { "en": "Inglés", "af": "Africano", - "az": "Azerbaijani", "bg": "Búlgaro", - "cs": "Czech", + "ca": "Catalán", + "cs": "Checo", "de": "Alemán", "el": "Griego", + "enGB": "Inglés (Reino Unido)", "eo": "Esperanto", "es": "Español", + "esUS": "Español (América Latina)", + "fi": "Finlandés", "fr": "Francés", + "frCA": "Franco (Canadiense)", + "he": "Hebreo", + "hr": "Croata", + "hu": "Húngaro", "hy": "Armenio", "it": "Italiano", - "ja": "Jopones", + "ja": "Japonés", "ko": "Coreano", - "nb": "Noruego (bokmal)", + "nl": "Holandés", "oc": "Occitano", "pl": "Polaco", "ptBR": "Portugués (Brasil)", "ru": "Ruso", "sk": "Eslovaco", - "sl": "Esloveno", "sv": "Sueco", "tr": "Turco", "vi": "Vietnamita", - "zhCN": "Chino (China)" -} \ No newline at end of file + "zhCN": "Chino (China)", + "zhTW": "Chino (Taiwan)" +} diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-esUS.json b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-esUS.json index 89fb1ac957..c9bc73bbf7 100644 --- a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-esUS.json +++ b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-esUS.json @@ -1,27 +1,34 @@ { - "en": "", - "af": "", - "az": "", - "bg": "", - "cs": "", - "de": "", - "el": "", - "eo": "", - "es": "", - "fr": "", - "hy": "", - "it": "", - "ja": "", - "ko": "", - "nb": "", - "oc": "", - "pl": "", - "ptBR": "", - "ru": "", - "sk": "", - "sl": "", - "sv": "", - "tr": "", - "vi": "", - "zhCN": "" -} \ No newline at end of file + "en": "Inglés", + "af": "Africano", + "bg": "Búlgaro", + "ca": "Catalán", + "cs": "Checo", + "de": "Alemán", + "el": "Griego", + "enGB": "Inglés", + "eo": "Esperanto", + "es": "Español", + "esUS": "Español (Latinoamérica)", + "fi": "Finlandés", + "fr": "Francés", + "frCA": "Francés (Canadiense)", + "he": "Hebreo", + "hr": "Croata", + "hu": "Húngaro", + "hy": "Armenio", + "it": "Italiano", + "ja": "Japonés", + "ko": "Coreano", + "nl": "Holandés", + "oc": "Occitano", + "pl": "Polaco", + "ptBR": "Portugués (Brasil)", + "ru": "Ruso", + "sk": "Eslovaco", + "sv": "Sueco", + "tr": "Turco", + "vi": "Vietnamita", + "zhCN": "Chino (China)", + "zhTW": "Chino (Taiwan)" +} diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-et.json b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-et.json new file mode 100644 index 0000000000..d87fbb7b29 --- /dev/null +++ b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-et.json @@ -0,0 +1,33 @@ +{ + "en": "Inglise keel", + "af": "Afrikaani keel", + "bg": "Bulgaaria keel", + "ca": "Katalaani keel", + "cs": "Tšehhi keel", + "de": "Saksa keel", + "el": "Kreeka keel", + "enGB": "Inglise keel (Ühendkuningriik)", + "eo": "Esperanto keel", + "es": "Hispaania keel", + "esUS": "Hispaania keel (Ladina-Ameerika)", + "et": "Eesti keel", + "fi": "Soome keel", + "fr": "Prantsuse keel", + "frCA": "Prantsuse keel (Kanada)", + "hr": "Horvaadi keel", + "hu": "Ungari keel", + "hy": "Armeenia keel", + "it": "Itaalia keel", + "ja": "Jaapani keel", + "ko": "Korea keel", + "nl": "Hollandi keel", + "oc": "Oksitaani keel", + "pl": "Poola keel", + "ptBR": "Portigali keel (Brasiilia)", + "ru": "Vene keel", + "sv": "Roosi keel", + "tr": "Türgi keel", + "vi": "Vietnami keel", + "zhCN": "Hiina keel (Hiina)", + "zhTW": "Hiina keel (Tai)" +} diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-fr.json b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-fr.json index 0620b9d39a..bdd3634b6a 100644 --- a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-fr.json +++ b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-fr.json @@ -14,6 +14,7 @@ "fr": "Français", "frCA": "Français (Canadien)", "hr": "Croate", + "hu": "Hongrois", "hy": "Arménien", "it": "Italien", "ja": "Japonais", @@ -23,6 +24,7 @@ "pl": "Polonais", "ptBR": "Portugais (Brésil)", "ru": "Russe", + "sk": "Slovaque", "sv": "Suédois", "tr": "Turc", "vi": "Vietnamien", diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-frCA.json b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-frCA.json index 89fb1ac957..f721c92840 100644 --- a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-frCA.json +++ b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-frCA.json @@ -1,27 +1,33 @@ { - "en": "", - "af": "", - "az": "", - "bg": "", - "cs": "", - "de": "", - "el": "", - "eo": "", - "es": "", - "fr": "", - "hy": "", - "it": "", - "ja": "", - "ko": "", - "nb": "", - "oc": "", - "pl": "", - "ptBR": "", - "ru": "", - "sk": "", - "sl": "", - "sv": "", - "tr": "", - "vi": "", - "zhCN": "" + "en": "Anglais", + "af": "Africain", + "bg": "Bulgare", + "ca": "Catalan", + "cs": "Tchèque", + "de": "Allemand", + "el": "Grec", + "enGB": "Anglais (Royaume-Uni) ", + "eo": "Espéranto", + "es": "Espagnol", + "esUS": "Espagnol (Amérique latine)", + "fi": "Finlandais", + "fr": "Français", + "frCA": "Français (Canadien)", + "hr": "Croate", + "hu": "Hongrois", + "hy": "Arménien", + "it": "Italien", + "ja": "Japonais", + "ko": "Coréen", + "nl": "Néerlandais", + "oc": "Occitan", + "pl": "Polonais", + "ptBR": "Portugais (Brésil)", + "ru": "Russe", + "sk": "Slovaque", + "sv": "Suédois", + "tr": "Turc", + "vi": "Vietnamien", + "zhCN": "Chinois (Chine)", + "zhTW": "Chinois (Taiwan)" } \ No newline at end of file diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-hu.json b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-hu.json index 96874ae23a..1d5f7208bb 100644 --- a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-hu.json +++ b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-hu.json @@ -1,31 +1,33 @@ { - "en": "angol", - "af": "afrikaans", - "bg": "bolgár", - "ca": "katalán", - "cs": "cseh", - "de": "német", - "el": "görög", - "enGB": "angol (Egyesült Királyság)", - "eo": "eszperantó", - "es": "spanyol", - "esUS": "spanyol (Latin-Amerika)", - "fi": "finn", - "fr": "francia", - "frCA": "francia (kanadai)", - "hr": "horvát", - "hy": "örmény", - "it": "olasz", - "ja": "japán", - "ko": "koreai", - "nl": "holland", - "oc": "okszitán", - "pl": "lengyel", - "ptBR": "portugál (Brazil)", - "ru": "orosz", - "sv": "svéd", - "tr": "török", - "vi": "vietnámi", - "zhCN": "kínai (Kína)", - "zhTW": "kínai (Tajvan)" + "en": "Angol", + "af": "Afrikaans", + "bg": "Bolgár", + "ca": "Katalán", + "cs": "Cseh", + "de": "Német", + "el": "Görög", + "enGB": "Angol (Egyesült Királyság)", + "eo": "Eszperantó", + "es": "Spanyol", + "esUS": "Spanyol (Latin-Amerika)", + "fi": "Finn", + "fr": "Francia", + "frCA": "Francia (kanadai)", + "hr": "Horvát", + "hu": "Magyar", + "hy": "Örmény", + "it": "Olasz", + "ja": "Japán", + "ko": "Koreai", + "nl": "Holland", + "oc": "Okszitán", + "pl": "Lengyel", + "ptBR": "Portugál (Brazil)", + "ru": "Orosz", + "sk": "Szlovákul", + "sv": "Svéd", + "tr": "Török", + "vi": "Vietnámi", + "zhCN": "Kínai (Kína)", + "zhTW": "Kínai (Tajvan)" } \ No newline at end of file diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-it.json b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-it.json index 8f1a6bb3ab..87544b281e 100644 --- a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-it.json +++ b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-it.json @@ -1,6 +1,6 @@ { "en": "Inglese", - "af": "", + "af": "Afrikaans", "az": "Azero", "bg": "Bulgaro", "cs": "Ceco", @@ -24,4 +24,4 @@ "tr": "Turco", "vi": "Vietnamita", "zhCN": "Cinese (Cina)" -} \ No newline at end of file +} diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-mn.json b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-mn.json new file mode 100644 index 0000000000..de7fbe5779 --- /dev/null +++ b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-mn.json @@ -0,0 +1,35 @@ +{ + "en": "English", + "af": "Afrikaans", + "bg": "Bulgarian", + "ca": "Catalan", + "cs": "Czech", + "da": "Danish", + "de": "German", + "el": "Greek", + "enGB": "English (United Kingdom)", + "eo": "Esperanto", + "es": "Spanish", + "esUS": "Spanish (Latin America)", + "et": "Estonian", + "fi": "Finnish", + "fr": "French", + "frCA": "French (Canadian)", + "hr": "Croatian", + "hu": "Hungarian", + "hy": "Armenian", + "it": "Italian", + "ja": "Japanese", + "ko": "Korean", + "nl": "Dutch", + "oc": "Occitan", + "pl": "Polish", + "ptBR": "Portuguese (Brazil)", + "ru": "Russian", + "sv": "Swedish", + "tr": "Turkish", + "vi": "Vietnamese", + "zhCN": "Chinese (China)", + "zhTW": "Chinese (Taiwan)", + "mn": "Монгол" +} diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-nl.json b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-nl.json index 89fb1ac957..a692dc92f7 100644 --- a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-nl.json +++ b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-nl.json @@ -1,27 +1,38 @@ { - "en": "", - "af": "", - "az": "", - "bg": "", - "cs": "", - "de": "", - "el": "", - "eo": "", - "es": "", - "fr": "", - "hy": "", - "it": "", - "ja": "", - "ko": "", - "nb": "", - "oc": "", - "pl": "", - "ptBR": "", - "ru": "", - "sk": "", - "sl": "", - "sv": "", - "tr": "", - "vi": "", - "zhCN": "" -} \ No newline at end of file + "en": "Engels", + "af": "Afrikaans", + "az": "Azerbeidzjaans", + "bg": "Bulgaars", + "ca": "Catalaans", + "cs": "Tsjechisch", + "da": "Deens", + "de": "Duits", + "enGB": "Engels (Verenigd Koninkrijk)", + "et": "Estlands", + "el": "Grieks", + "eo": "Esperanto", + "es": "Spaans", + "esUS": "Spaans (Latijns Amerika)", + "fi": "Fins", + "fr": "Frans", + "frCA": "Frans (Canadees)", + "hr": "Kroatisch", + "hu": "Hongaars", + "hy": "Armeens", + "it": "Italiaans", + "ja": "Japans", + "ko": "Koreaans", + "nb": "Noors (Bokmal)", + "nl": "Nederlands", + "oc": "Occitaans", + "pl": "Pools", + "ptBR": "Portugees (Brazilië)", + "ru": "Russisch", + "sk": "Slowaaks", + "sl": "Sloveens", + "sv": "Zweeds", + "tr": "Turks", + "vi": "Vietnamees", + "zhCN": "Chinees (China)", + "zhTW": "Chinees (Taiwan)" +} diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-oc.json b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-oc.json index 7655b329a4..052500bdae 100644 --- a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-oc.json +++ b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-oc.json @@ -14,6 +14,7 @@ "fr": "Francés", "frCA": "Francés (Canadian)", "hr": "Croat", + "hu": "Ongrés", "hy": "Armenian", "it": "Italian", "ja": "Japonés", diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-pl.json b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-pl.json index 118b7853b2..20f20a4433 100644 --- a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-pl.json +++ b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-pl.json @@ -1,31 +1,33 @@ { - "en": "Angielski", - "af": "Afrykanerski", - "bg": "Bułgarski", - "ca": "", - "cs": "Czeski", - "de": "Niemiecki", - "el": "Grecki", - "enGB": "", - "eo": "Esperanto", - "es": "Hiszpański", - "esUS": "", - "fi": "", - "fr": "Francuski", - "frCA": "", - "hr": "", - "hy": "Ormiański", - "it": "Włoski", - "ja": "Japoński", - "ko": "Koreański", - "nl": "", - "oc": "Oksytański", - "pl": "Polski", - "ptBR": "Portugalski (brazylijski)", - "ru": "Rosyjski", - "sv": "Szwedzki", - "tr": "Turecki", - "vi": "Wietnamski", - "zhCN": "Chiński (Chiny)", - "zhTW": "" + "en": "angielski", + "af": "afrykanerski", + "bg": "bułgarski", + "ca": "kataloński", + "cs": "czeski", + "de": "niemiecki", + "el": "grecki", + "enGB": "angielski (Zjednoczone Królestwo)", + "eo": "esperanto", + "es": "hiszpański", + "esUS": "hiszpański (Ameryka Łacińska)", + "fi": "fiński", + "fr": "francuski", + "frCA": "francuski (kanadyjski)", + "hr": "chorwacki", + "hu": "węgierski", + "hy": "ormiański", + "it": "włoski", + "ja": "japoński", + "ko": "koreański", + "nl": "holenderski", + "oc": "oksytański", + "pl": "polski", + "ptBR": "portugalski (brazylijski)", + "ru": "rosyjski", + "sk": "słowacki", + "sv": "szwedzki", + "tr": "turecki", + "vi": "wietnamski", + "zhCN": "chiński (Chiny)", + "zhTW": "chiński (Tajwan)" } \ No newline at end of file diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-ptBR.json b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-ptBR.json index 35b817516c..5bdb5ca3ac 100644 --- a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-ptBR.json +++ b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-ptBR.json @@ -2,23 +2,24 @@ "en": "Inglês", "af": "Africâner", "bg": "Búlgaro", - "ca": "", + "ca": "Catalão", "cs": "Checo", "de": "Alemão", "el": "Grego", - "enGB": "", + "enGB": "Inglês (Reino Unido)", "eo": "Esperanto", "es": "Espanhol", - "esUS": "", - "fi": "", + "esUS": "Espanhol (América Latina)", + "fi": "Finlandês", "fr": "Francês", - "frCA": "", - "hr": "", + "frCA": "Francês (Canadá)", + "hr": "Croata", + "hu": "Húngaro", "hy": "Armênio", "it": "Italiano", "ja": "Japonês", "ko": "Coreano", - "nl": "", + "nl": "Holandês", "oc": "Occitano", "pl": "Polonês", "ptBR": "Português (Brasil)", @@ -27,5 +28,5 @@ "tr": "Turco", "vi": "Vietnamita", "zhCN": "Chinês (China)", - "zhTW": "" + "zhTW": "Chinês (Taiwan)" } \ No newline at end of file diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-ru.json b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-ru.json index 2c543aacfd..a02c8c0607 100644 --- a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-ru.json +++ b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-ru.json @@ -1,24 +1,25 @@ { "en": "Английский", - "af": "", + "af": "Африкаанс", "bg": "Болгарский", - "ca": "", + "ca": "Каталонский", "cs": "Чешский", "de": "Немецкий", "el": "Греческий", - "enGB": "", + "enGB": "Английский (Великобритания)", "eo": "Эсперанто", "es": "Испанский", - "esUS": "", - "fi": "", + "esUS": "Испанский (Латинская Америка)", + "fi": "Финский", "fr": "Французский", - "frCA": "", - "hr": "", + "frCA": "Французский (канадский)", + "hr": "Хорватский", + "hu": "Венгерский", "hy": "Армянский", "it": "Итальянский", "ja": "Японский", "ko": "Корейский", - "nl": "", + "nl": "Голландский", "oc": "Окситанский", "pl": "Польский", "ptBR": "Португальский (Бразилия)", @@ -27,5 +28,5 @@ "tr": "Турецкий", "vi": "Вьетнамский", "zhCN": "Китайский (Китай)", - "zhTW": "" + "zhTW": "Китайский (Тайвань)" } \ No newline at end of file diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-zhCN.json b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-zhCN.json index 25fb3740d3..3c1639479e 100644 --- a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-zhCN.json +++ b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-zhCN.json @@ -1,27 +1,32 @@ { "en": "英语", "af": "南非荷兰语", - "az": "阿塞拜疆语", "bg": "保加利亚语", + "ca": "加泰罗尼亚语", "cs": "捷克语", "de": "德语", "el": "希腊语", + "enGB": "英语(英国)", "eo": "世界语", "es": "西班牙语", + "esUS": "西班牙语(拉丁美洲)", + "fi": "芬兰语", "fr": "法语", + "frCA": "法语(加拿大)", + "hr": "克罗地亚语", + "hu": "匈牙利语", "hy": "亚美尼亚语", "it": "意大利语", "ja": "日语", "ko": "韩语", - "nb": "挪威布克摩尔语", + "nl": "荷兰语", "oc": "欧西坦语", "pl": "波兰语", "ptBR": "葡萄牙语(巴西)", "ru": "俄语", - "sk": "斯洛伐克语", - "sl": "斯洛文尼亚语", "sv": "瑞典语", "tr": "土耳其语", "vi": "越南语", - "zhCN": "中文(中国)" + "zhCN": "中文(中国)", + "zhTW": "中文(台湾)" } \ No newline at end of file diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-zhTW.json b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-zhTW.json index 744c66fad5..f8f684ae5a 100644 --- a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-zhTW.json +++ b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages-zhTW.json @@ -1,27 +1,34 @@ { - "en": "English", - "af": "", - "az": "Azerbaijani", - "bg": "Bulgarian", - "cs": "Czech", - "de": "German", - "el": "Greek", - "eo": "Esperanto", - "es": "Spanish", - "fr": "French", - "hy": "Armenian", - "it": "Italian", - "ja": "日本語", + "en": "英語", + "af": "南非荷蘭文", + "bg": "保加利亞文", + "ca": "卡達隆尼亞文", + "cs": "捷克文", + "de": "德文", + "el": "希臘文", + "enGB": "英文 (英國)", + "eo": "世界語", + "es": "西班牙文", + "esUS": "西班牙文 (拉丁美洲)", + "fi": "芬蘭文", + "fr": "法文", + "frCA": "法文 (加拿大)", + "hr": "克羅埃西亞文", + "hu": "匈牙利文", + "hy": "亞美尼亞文", + "it": "義大利文", + "ja": "日語", "ko": "韓文", - "nb": "Norwegian Bokmal", - "oc": "Occitan", - "pl": "Polish", - "ptBR": "Portuguese (Brazil)", - "ru": "Russian", - "sk": "Slovak", - "sl": "Slovenian", - "sv": "Swedish", - "tr": "Turkish", - "vi": "Vietnamese", - "zhCN": "中文 简体 (中国)" -} \ No newline at end of file + "nl": "荷蘭文", + "oc": "奧西坦文", + "pl": "波蘭文", + "ptBR": "葡萄牙文 (巴西)", + "ru": "俄文", + "sv": "瑞典文", + "tr": "土耳其文", + "vi": "越南文", + "zhCN": "中文 (中国,简体)", + "zhTW": "中文 (台灣,正體)", + "et": "愛沙尼亞文", + "da": "丹麥文" +} diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages.json b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages.json index 0cbf194a33..fe0cff36d9 100644 --- a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages.json +++ b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/languages.json @@ -4,26 +4,32 @@ "bg": "Bulgarian", "ca": "Catalan", "cs": "Czech", + "da": "Danish", "de": "German", "el": "Greek", "enGB": "English (United Kingdom)", "eo": "Esperanto", "es": "Spanish", "esUS": "Spanish (Latin America)", + "et": "Estonian", "fi": "Finnish", "fr": "French", "frCA": "French (Canadian)", + "he": "Hebrew", "hr": "Croatian", "hu": "Hungarian", "hy": "Armenian", "it": "Italian", "ja": "Japanese", "ko": "Korean", + "lt": "Lithuanian", "nl": "Dutch", "oc": "Occitan", "pl": "Polish", "ptBR": "Portuguese (Brazil)", "ru": "Russian", + "sc": "Sardinian", + "sk": "Slovak", "sv": "Swedish", "tr": "Turkish", "vi": "Vietnamese", diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-bg.json b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-bg.json index a0124bda42..984eac1eb0 100644 --- a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-bg.json +++ b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-bg.json @@ -6,7 +6,7 @@ "disabled": "Не можете да каните хора.", "failedToAdd": "Неуспешно добавяне на участници", "footerText": "Изходящите разговори не са разрешени.", - "loading": "Търсене на хора и телефонни номера.", + "loading": "Търсене на хора и телефонни номера", "loadingNumber": "Валидиране на номера", "loadingPeople": "Търсене на хора", "noResults": "Няма резултати", @@ -46,13 +46,18 @@ "today": "Днес" }, "chat": { - "error": "Грешка: вашето съобщение \"{{originalText}}\" не е бе изпратено. Поради: {{error}}", + "error": "Грешка: вашето съобщение не бе изпратено, пради: {{error}}", + "fieldPlaceHolder": "Въведете съобщението", "messagebox": "Въведете съобщение", + "messageTo": "Лично съобщение до {{recipient}}", + "noMessagesMessage": "Все още няма съобщения в срещата. Започнете разговор тук!", "nickname": { "popover": "Избор на име", "title": "Въведете име за да обменяте съобщения" }, - "title": "Текстови съобщения" + "privateNotice": "Лично съобщение до {{recipient}}", + "title": "Текстови съобщения", + "you": "вие" }, "connectingOverlay": { "joiningRoom": "Свързване с вашата среща..." @@ -67,13 +72,17 @@ "DISCONNECTED": "Изключен", "DISCONNECTING": "Прекъсване на връзката", "ERROR": "Грешка", - "RECONNECTING": "Появи се проблем с мрежата. Връзваме се наново..." + "RECONNECTING": "Появи се проблем с мрежата. Връзваме се наново...", + "LOW_BANDWIDTH": "Виеото на {{displayName}} беше изключено поради слаба Интернет връзка", + "GOT_SESSION_ID": "Отваряне на сесията...Завърши", + "GET_SESSION_ID_ERROR": "Грешка при отваряне на сесията: {{code}}", + "FETCH_SESSION_ID": "Отваряне на сесия..." }, "connectionindicator": { "address": "Адрес:", "bandwidth": "Предполагаема скорост:", "bitrate": "Скорост:", - "bridgeCount": "Брой сървъри:", + "bridgeCount": "Брой сървъри: ", "connectedTo": "Свързан към:", "framerate": "Кадри в секунда:", "less": "Скриване", @@ -191,24 +200,24 @@ "maxUsersLimitReachedTitle": "Достигнат е лимита за максимален брой участници", "micConstraintFailedError": "Микрофонът Ви не покрива някои от изискванията.", "micNotFoundError": "Не е открит микрофон.", - "micNotSendingData": "Пуснете микрофона си от системните настройки на компютъра ви.", + "micNotSendingData": "Пуснете микрофона си от системните настройки на компютъра ви", "micNotSendingDataTitle": "Микрофона ви е спрян от системните настройки", "micPermissionDeniedError": "Не сте дали разрешение за използване на микрофона. Ще можете да се присъедините в беседата, но другите няма да Ви чуват. Използвайте бутона с камерата в адресната лента, за да оправите това.", "micUnknownError": "Невъзможен достъп до микрофона по неясна причина.", "muteParticipantBody": "Вие няма да можете да спрете заглушаването на участника, но той ще може да го направи по всяко време.", "muteParticipantButton": "Изключи микрофона", - "muteParticipantDialog": "Сигурни ли сте че искате да заглушите този участник? Няма да можете да пуснете обратно звука му, но участника ще може да направи това сам.", + "muteParticipantDialog": "Сигурни ли сте че искате да заглушите този участник? Няма да можете да пуснете обратно звука му, но участникът ще може да направи това сам.", "muteParticipantTitle": "Спиране звука на участник?", "Ok": "Готово", - "passwordLabel": "Парола", + "passwordLabel": "Тази среща е заключена. Моля въведете $t(lockRoomPassword) за да влезнете.", "passwordNotSupported": "Задаването на $t(lockRoomPassword) за срещата не се поддържа.", "passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) не се поддържа", - "passwordRequired": "Изисква се $t(lockRoomPassword) ", + "passwordRequired": "Изисква се $t(lockRoomPassword)", "popupError": "Браузърът Ви блокира изскачащите прозорци от този уеб сайт. Моля, разрешете изскачащите прозорци от настройките за сигурност на браузъра си и след това опитайте отново.", "popupErrorTitle": "Блокиран изскачащ прозорец", "recording": "Запис", - "recordingDisabledForGuestTooltip": "Гостите не могат да стартират запис", - "recordingDisabledTooltip": "Стартирането на запис е спряно", + "recordingDisabledForGuestTooltip": "Гостите не могат да стартират запис.", + "recordingDisabledTooltip": "Стартирането на запис е спряно.", "rejoinNow": "Повторно присъединяване сега", "remoteControlAllowedMessage": "{{user}} прие заявката Ви за отдалечено управление!", "remoteControlDeniedMessage": "{{user}} отказа заявката Ви за отдалечено управление!", @@ -226,9 +235,13 @@ "retry": "Повторен опит", "screenSharingFailedToInstall": "Опа! Разширението за споделяне на екрана не успя да се инсталира.", "screenSharingFailedToInstallTitle": "Разширението за споделяне на екрана не успя да се инсталира", - "screenSharingFirefoxPermissionDeniedError": "Нещо се обърка докато се опитвахме да споделим екрана. Моля уверете се че сте дали права за това.", + "screenSharingFirefoxPermissionDeniedError": "Нещо се обърка докато се опитвахме да споделим екрана. Моля уверете се че сте дали права за това. ", "screenSharingFirefoxPermissionDeniedTitle": "Упс! Не успяхме да стартираме споделянето на екрана!", "screenSharingPermissionDeniedError": "Опа! Нещо се обърка с разрешенията на разширението за споделяне на екрана. Моля, презаредете и опитайте отново.", + "sendPrivateMessage": "Наскоро получихте лично съобщение. Искате да отговорите на това съобшение или да изпратите до всички?", + "sendPrivateMessageCancel": "Изпрати до всички", + "sendPrivateMessageOk": "Изпрати лично", + "sendPrivateMessageTitle": "Да се изпрати лично?", "serviceUnavailable": "Услугата не е налична", "sessTerminated": "Разговорът приключи", "Share": "Споделяне", @@ -257,17 +270,27 @@ "WaitForHostMsgWOk": "Конференцията {{room}} все още не е започнала. Ако сте домакинът тогава натиснете бутона за да се идентифицирате. В противен случай изчакайте докато домакинът пристигне.", "WaitingForHost": "Чакаме домакина ...", "Yes": "Да", - "yourEntireScreen": "Целия екран" + "yourEntireScreen": "Целия екран", + "screenSharingAudio": "Сподели и звука", + "muteEveryoneStartMuted": "Всички да влизат без звук", + "muteEveryoneSelf": "себе си", + "muteEveryoneTitle": "Заглуши всички?", + "muteEveryoneDialog": "Сигурни ли сте, че искате да заглушите всички? Няма да можете да пуснете звука им отново, но участниците ще могат да направят това сами.", + "muteEveryoneElseTitle": "Заглушете всички освен {{whom}}?", + "muteEveryoneElseDialog": "След като заглушите някой, няма да можете да пуснете обратно звука му, но участникът ще може да направи това сам." }, "dialOut": { "statusMessage": "в момента е {{status}}" }, + "documentSharing": { + "title": "Споделен документ" + }, "feedback": { "average": "Средно", "bad": "Лошо", "detailsLabel": "Разкажете ни повече.", "good": "Добра", - "rateExperience": "Моля, оценете качеството на срещата.", + "rateExperience": "Моля, оценете качеството на срещата", "veryBad": "Много лошо", "veryGood": "Много добра" }, @@ -286,14 +309,14 @@ "country": "Страна", "dialANumber": "За влизане в срещата, наберете един от изброените номера и въведете кода.", "dialInConferenceID": "Код:", - "dialInNotSupported": "Съжаляваме, обаждането в момента не се поддържа. ", + "dialInNotSupported": "Съжаляваме, обаждането в момента не се поддържа.", "dialInNumber": "Тел:", "dialInSummaryError": "Проблем при достъпа на информация за опциите за влизане през телефон. Моля опитайте отново по-късно.", "dialInTollFree": "Безплатен", "genericError": "Упс, нещо се случи.", "inviteLiveStream": "За да видите предаването на живо на срещата, използвйте тази връзка: {{url}}", "invitePhone": "За влизане през телефон, използвайте: {{number}},,{{conferenceID}}#\n", - "invitePhoneAlternatives": "Търсене на друг номер за набиране?\nВижте още номера: : {{url}}\n\n\nАко вече сте набрали от телефон в стаята, влезте без да е пуснат звука: {{silentUrl}}", + "invitePhoneAlternatives": "Вижте още номера: {{url}}\n\n\nАко вече сте набрали от телефон в стаята, влезте без да е пуснат звука: {{silentUrl}}", "inviteURLFirstPartGeneral": "Поканени сте да се присъедините към среща.", "inviteURLFirstPartPersonal": "{{name}} ви кани за среща.\n", "inviteURLSecondPart": "\nВлезте в срещата:\n{{url}}\n", @@ -341,7 +364,7 @@ }, "liveStreaming": { "busy": "Работим върху това да освободим ресурси за излъчване. Моля, опитайте отново след няколко минути.", - "busyTitle": "Всички излъчватели в момента са заети.", + "busyTitle": "Всички излъчватели в момента са заети", "changeSignIn": "Смяна на акаунти.", "choose": "Изберете предаване на живо", "chooseCTA": "Изберете опция за предаване. Влезли сте като {{email}}.", @@ -364,10 +387,12 @@ "signedInAs": "В момента сте влезли като:", "signIn": "Влезте с Гугъл", "signInCTA": "Влезте или въведете ключът за излъчване на живо от YouTube.", - "signOut": "", + "signOut": "Излизане", "start": "Започни излъчване на живо", "streamIdHelp": "Какво е това?", - "unavailableTitle": "Излъчването на живо е недостъпно" + "unavailableTitle": "Излъчването на живо е недостъпно", + "googlePrivacyPolicy": "Политика за поверителност на Google", + "youtubeTerms": "Условия за ползване на YouTube" }, "localRecording": { "clientState": { @@ -425,7 +450,7 @@ "somebody": "Някой", "startSilentTitle": "Влязохте с опция да не чувате аудио!", "startSilentDescription": "Влезте повторно за да пуснете звука", - "suboptimalBrowserWarning": "Опасяваме се, че няма да можете да се насладите на срещата. Работим по въпроса, междувременно използвайте някой от напълно поддържаните браузъри.", + "suboptimalBrowserWarning": "Опасяваме се, че няма да можете да се насладите на срещата. Работим по въпроса, междувременно използвайте някой от напълно поддържаните браузъри.", "suboptimalExperienceTitle": "Внимание", "unmute": "Пускане на микрофона", "newDeviceCameraTitle": "Засечена е нова камера", @@ -464,7 +489,7 @@ "busyTitle": "Всички възможности за запис в момента са заети", "error": "Грешка при опит за запис. Моля опитайте отново.", "expandedOff": "Записът спря", - "expandedOn": "Срещата се записва в момента", + "expandedOn": "Срещата се записва в момента.", "expandedPending": "Записът започва...", "failedToStart": "Неуспешен опит за записване", "fileSharingdescription": "Споделете записа с участниците в срещата", @@ -492,7 +517,7 @@ "disconnect": "Разкачи", "microsoftSignIn": "Влез с Microsoft акаунт", "signedIn": "В момента достъпва календара с {{email}}. Натиснете бутона Разкачи за да спрете достъпа.", - "title": "" + "title": "Календар" }, "devices": "Устройства", "followMe": "Всички ме следват", @@ -507,19 +532,25 @@ "selectMic": "Микрофон", "startAudioMuted": "Всички започват заглушени", "startVideoMuted": "Всички започват скрити", - "title": "Настройки" + "title": "Настройки", + "speakers": "Говорители", + "microphones": "Микрофони" }, "settingsView": { + "advanced": "Разширени", "alertOk": "Потвърди", "alertTitle": "Внимание", "alertURLText": "Въведената връзка за сървър е невалидна", "buildInfoSection": "Информация за програмата", "conferenceSection": "Конференция", + "disableCallIntegration": "Декативирнае на интеграция с обажданията", + "disableP2P": "Деактивиране на опцията за пряка връзка (p2p)", "displayName": "Име", "email": "Поща", "header": "Настройки", "profileSection": "Профил", "serverURL": "Линк на сървъра", + "showAdvanced": "Показване на разширени настройки", "startWithAudioMuted": "Започни със спрян звук", "startWithVideoMuted": "Започни със спряно видео", "version": "Версия" @@ -549,14 +580,16 @@ "toolbar": { "accessibilityLabel": { "audioOnly": "Пускане на режим само с звук", - "audioRoute": "", - "callQuality": "Управление на качестото на обаждането", + "audioRoute": "Изберете устройство за звук", + "callQuality": "Промяна качеството на видеото", "cc": "Пускане на субтитри", "chat": "Активиране на прозорец за съобщения", "document": "Показване на споделен документ", - "feedback": "", + "download": "Свалете приложението", + "feedback": "Отзиви", "fullScreen": "Пускане/Спиране на изглед в цял екран", "hangup": "Напускане на срещата", + "help": "Помощ", "invite": "Поканете участници", "kick": "Изгони участник", "localRecording": "Показване на контроли за локален запис", @@ -565,21 +598,25 @@ "moreActionsMenu": "Меню с повече опции", "mute": "Пускане/спиране на видеото", "pip": "Пускане на Картина-в-Картина", + "privateMessage": "Изпрати лично съобщение", "profile": "Редактиране на профила", "raiseHand": "Смяна искане на думата", "recording": "Пускане/спиране на запис", "remoteMute": "Заглуши участник", "Settings": "Промяна на настройки", "sharedvideo": "Споделяне на YouTube видео", - "shareRoom": "", + "shareRoom": "Добавете някого", "shareYourScreen": "Споделяне на екрана", "shortcuts": "Бързи клавиши", - "show": "", + "show": "Покажи на главния екран", "speakerStats": "Показване на статистики за участниците", - "tileView": "", - "toggleCamera": "", + "tileView": "Превключване на изглед галерия", + "toggleCamera": "Пускане/спиране на камера", "videomute": "Пускане/спиране на видеото", - "videoblur": "Пускане/спиране на замъгляване на видеото" + "videoblur": "Пускане/спиране на замъгляване на видеото", + "toggleFilmstrip": "Превключи видео миниатюрите", + "muteEveryone": "Заглуши всички", + "moreOptions": "Покажи повече опции" }, "addPeople": "Добавяне на участници в разговора", "audioOnlyOff": "Спиране режима с нисък трафик", @@ -591,20 +628,26 @@ "closeChat": "Затваряне на съобщенията", "documentClose": "Затваряне на споделеният документ", "documentOpen": "Отваряне на споделен документ", + "download": "Свалете приложението", "enterFullScreen": "Вижте на цял екран", "enterTileView": "Влизане в изглед галерия", "exitFullScreen": "Изход от цял екран", "exitTileView": "Спиране на изглед галерия", "feedback": "Отзиви", "hangup": "Напускане", + "help": "Помощ", "invite": "Поканете участници", "login": "Влез", "logout": "Изход", "lowerYourHand": "Махни искането на думата", "moreActions": "Още опции", "mute": "Спиране/пускане на микрофона", + "noAudioSignalTitle": "Няма сигнал идващ от микрофона!", + "noAudioSignalDesc": "Ако не сте спрели звука на устройството от системните настройки, сменете с друго устройство.", + "noAudioSignalDescSuggestion": "Ако не сте спрели звука на устройството от системните настройки, използвайте някое от предложените устройства.", "openChat": "Отвори съобщенията", "pip": "Пусни Картина-в-Картина", + "privateMessage": "Изпрати лично съобщение", "profile": "Редактиране на профила", "raiseHand": "Вдигане/сваляне на ръка", "raiseYourHand": "Поискай думата", @@ -623,7 +666,13 @@ "toggleCamera": "Пускане/спиране на камера", "videomute": "Пускане/спиране на камерата", "startvideoblur": "Замъгли фона ми", - "stopvideoblur": "Спиране замъгляването на фона" + "stopvideoblur": "Спиране замъгляването на фона", + "noisyAudioInputDesc": "Изглежда доста шум идва от микрофона ви, заглушете го или сменете устройството.", + "noisyAudioInputTitle": "Изглежда е шумно около вас!", + "noAudioSignalDialInLinkDesc": "Номера за обаждане", + "noAudioSignalDialInDesc": "Може да влезнете чрез обаждане на:", + "muteEveryone": "Заглуши всички", + "moreOptions": "Повече опции" }, "transcribing": { "ccButtonTooltip": "Пускане / Спиране на субтитри", @@ -689,14 +738,15 @@ "muted": "Изключен микрофон", "remoteControl": "Отдалечено управление", "show": "Покажи на главния екран", - "videomute": "Участник е спрял камерата си" + "videomute": "Участник е спрял камерата си", + "domuteOthers": "Заглушете всички останали" }, "welcomepage": { "accessibilityLabel": { "join": "Натиснете за да влезете", "roomname": "Въведете име на стаята" }, - "appDescription": "Хайде на видео разговорите с целият ви екип. Всъщност, поканете всички познати. {{app}} е напълно защитено, 100% решение за видеоконференции с отворен код което може да ползвате по цял ден, всеки ден, безплатно - без да ви е нужна регистрация.", + "appDescription": "Хайде на видео разговор с целия екип! Всъщност, поканете всички свои познати! {{app}} е напълно защитено решение за видеоконференции със 100% отворен код, което може да ползвате по цял ден, всеки ден, безплатно - без да ви е нужна регистрация.", "audioVideoSwitch": { "audio": "Глас", "video": "Видео" @@ -705,9 +755,10 @@ "connectCalendarButton": "Свържете вашия календар", "connectCalendarText": "Свържете вашия календар за да видите срещите си в {{app}}. Добавяйки {{provider}} срещите в календара си ще можете да ги старирате с едно докосване.", "enterRoomTitle": "Започни нова среща", - "onlyAsciiAllowed": "Името на срещата може да съдържа само латински букви и цифри.", + "roomNameAllowedChars": "Името на срещата не трябва да съдържа някой от символите: ?, &, :, ', \", %, #.", "go": "НАПРЕД", - "join": "ПРИСЪЕДИНЯВАНЕ", + "goSmall": "НАПРЕД", + "join": "Създай / Влез", "info": "Информация", "privacy": "Поверителност", "recentList": "Скорошни срещи", @@ -718,6 +769,19 @@ "roomnameHint": "Въведете името или връзката на стаята в която искате да влезете. Също може да си измислите име. Само го споделете с някой, за да може и той да въведе същото име за да се срещнете.", "sendFeedback": "Изпращане на отзиви", "terms": "Условия", - "title": "Сигурна, с много възможности, и напълно безплатна платформа за видео конференции" + "title": "Сигурна, с много възможности, и напълно безплатна платформа за видео конференции", + "getHelp": "Търсене на помощ" + }, + "helpView": { + "header": "Място за помощ" + }, + "lonelyMeetingExperience": { + "youAreAlone": "Вие сте сами в срещата", + "button": "Поканете участници" + }, + "chromeExtensionBanner": { + "dontShowAgain": "Не показвай повече", + "buttonText": "Инсталирайте разширението за Chrome", + "installExtensionText": "Инсталирайте разширенията за Google Calendar и Office 365" } -} \ No newline at end of file +} diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-de.json b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-de.json index 5b415f798a..a60027fe47 100644 --- a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-de.json +++ b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-de.json @@ -20,39 +20,49 @@ "audioDevices": { "bluetooth": "Bluetooth", "headphones": "Kopfhörer", - "phone": "Telefon", - "speaker": "Sprecher" + "phone": "Hörer", + "speaker": "Lautsprecher", + "none": "Keine Audiogeräte verfügbar" }, "audioOnly": { "audioOnly": "Nur Audio" }, "calendarSync": { "addMeetingURL": "Meeting-Link hinzufügen", - "confirmAddLink": "Wollen Sie einen Jitsi-Link zu dieser Veranstaltung hinzufügen?", + "confirmAddLink": "Möchten Sie einen Jitsi-Link zu diesem Termin hinzufügen?", "error": { "appConfiguration": "Kalenderintegration ist nicht richtig konfiguriert.", "generic": "Ein Fehler ist aufgetreten. Prüfen Sie Ihre Kalendereinstellungen oder versuchen Sie, den Kalender zu aktualisieren.", - "notSignedIn": "Ein Fehler ist während der Authentifizierung zur Anzeige von Kalendererveranstaltungen aufgetreten. Prüfen Sie Ihre Kalendereinstellungen oder versuchen Sie, sich erneut anzumelden." + "notSignedIn": "Ein Fehler ist während der Authentifizierung zur Anzeige von Kalenderterminen aufgetreten. Prüfen Sie Ihre Kalendereinstellungen oder versuchen Sie, sich erneut anzumelden." }, "join": "Teilnehmen", "joinTooltip": "Am Meeting teilnehmen", "nextMeeting": "Nächste Konferenz", - "noEvents": "Es sind keine bevorstehenden Veranstaltungen geplant.", + "noEvents": "Es gibt keine bevorstehenden Termine.", "ongoingMeeting": "Laufendes Meeting", "permissionButton": "Einstellungen öffnen", - "permissionMessage": "Die App benötigt Zugriff auf den Kalender um die Termine und Konferenzen anzuzeigen.", + "permissionMessage": "Die App benötigt Zugriff auf den Kalender, um Termine und Konferenzen anzuzeigen.", "refresh": "Kalender aktualisieren", "today": "Heute" }, - "\u0005calendarSync": {}, "chat": { - "error": "", + "error": "Fehler: Ihre Nachricht wurde nicht versendet. Grund: {{error}}", + "fieldPlaceHolder": "Geben Sie Ihre Nachricht hier ein", "messagebox": "Nachricht eingeben", + "messageTo": "Private Nachricht an {{recipient}}", + "noMessagesMessage": "Es gibt noch keine Nachricht in dieser Konferenz. Starten Sie hier eine Unterhaltung!", "nickname": { "popover": "Name", "title": "Geben Sie einen Alias zum Chatten ein" }, - "title": "Chatten" + "privateNotice": "Private Nachricht an {{recipient}}", + "title": "Chatten", + "you": "Sie" + }, + "chromeExtensionBanner": { + "installExtensionText": "Installieren Sie die Erweiterung für die Integration von Google Calendar und Office 365", + "buttonText": "Chrome-Erweiterung installieren", + "dontShowAgain": "Hinweis nicht mehr anzeigen" }, "connectingOverlay": { "joiningRoom": "Eine Verbindung zu Ihrem Meeting wird hergestellt…" @@ -67,7 +77,10 @@ "DISCONNECTED": "Getrennt", "DISCONNECTING": "Verbindung wird getrennt", "ERROR": "Fehler", - "RECONNECTING": "Es ist ein Netzwerkproblem aufgetreten. Verbinde..." + "FETCH_SESSION_ID": "Sitzungs-ID erhalten...", + "GET_SESSION_ID_ERROR": "Sitzungs-ID-Fehler erhalten: {{code}}", + "GOT_SESSION_ID": "Sitzungs-ID erhalten... Beendet", + "LOW_BANDWIDTH": "Video für {{displayName}} wurde ausgeschaltet, um Bandbreite einzusparen" }, "connectionindicator": { "address": "Adresse:", @@ -75,6 +88,7 @@ "bitrate": "Bitrate:", "bridgeCount": "Serverzahl: ", "connectedTo": "Verbunden mit:", + "e2e_rtt": "E2E RTT:", "framerate": "Bildwiederholrate:", "less": "Weniger anzeigen", "localaddress": "Lokale Adresse:", @@ -97,7 +111,7 @@ "resolution": "Auflösung:", "status": "Verbindung:", "transport": "Protokoll:", - "turn": " (TURN)" + "transport_plural": "Protokolle:" }, "dateUtils": { "earlier": "Früher", @@ -105,9 +119,9 @@ "yesterday": "Gestern" }, "deepLinking": { - "appNotInstalled": "Sie benötigen die {{app}} App um der Konferenz auf dem Smartphone beizutreten.", - "description": "Nichts passiert? Wir haben versucht die Konferenz in {{app}} zu öffnen. Versuchen Sie es erneut oder treten Sie der Konferenz in {{app}} im Web bei.", - "descriptionWithoutWeb": "", + "appNotInstalled": "Sie benötigen die „{{app}}“-App, um der Konferenz auf dem Smartphone beizutreten.", + "description": "Nichts passiert? Wir haben versucht, die Konferenz in {{app}} zu öffnen. Versuchen Sie es erneut oder treten Sie der Konferenz in {{app}} im Web bei.", + "descriptionWithoutWeb": "Ist nichts passiert? Wir haben versucht, Ihre Besprechung in der „{{{app}}}“-Desktop-App zu starten.", "downloadApp": "App herunterladen", "launchWebButton": "Im Web öffnen", "openApp": "In der App fortfahren", @@ -115,6 +129,7 @@ "tryAgainButton": "Erneut mit der nativen Applikation versuchen" }, "defaultLink": "Bsp.: {{url}}", + "defaultNickname": "Z.B. Jane Pink", "deviceError": { "cameraError": "Fehler beim Zugriff auf die Kamera", "cameraPermission": "Fehler beim Bezug der Kamera-Zugriffsberechtigungen", @@ -132,19 +147,19 @@ "liveStreaming": "Livestream:" }, "allow": "Erlauben", - "alreadySharedVideoMsg": "", + "alreadySharedVideoMsg": "Ein anderer Teilnehmer gibt bereits ein Video weiter. Bei dieser Konferenz ist jeweils nur ein geteiltes Video möglich.", "alreadySharedVideoTitle": "Nur ein geteiltes Video gleichzeitig", "applicationWindow": "Anwendungsfenster", "Back": "Zurück", "cameraConstraintFailedError": "Ihre Kamera erfüllt die notwendigen Anforderungen nicht.", "cameraNotFoundError": "Kamera nicht gefunden.", - "cameraNotSendingData": "Die Kamera ist nicht verfügbar. Bitte prüfen ob eine andere Applikation die Kamera verwendet, eine andere Kamera vom Einstellungs-Menu auswählen oder die Applikation neu laden.", + "cameraNotSendingData": "Die Kamera ist nicht verfügbar. Bitte prüfen, ob eine andere Applikation die Kamera verwendet, eine andere Kamera vom Einstellungs-Menü auswählen oder die Applikation neu laden.", "cameraNotSendingDataTitle": "Zugriff auf Kamera nicht möglich", "cameraPermissionDeniedError": "Die Berechtigung zur Verwendung der Kamera wurde nicht erteilt. Sie können trotzdem an der Konferenz teilnehmen, aber die anderen Teilnehmer können Sie nicht sehen. Verwenden Sie die Kamera-Schaltfläche in der Adressleiste um die Berechtigungen zu erteilen.", "cameraUnknownError": "Die Kamera kann aus einem unbekannten Grund nicht verwendet werden.", "cameraUnsupportedResolutionError": "Die Kamera unterstützt die erforderliche Auflösung nicht.", "Cancel": "Abbrechen", - "close": "Schliessen", + "close": "Schließen", "conferenceDisconnectMsg": "Prüfen Sie allenfalls Ihre Netzwerkverbindung. Verbinde in {{seconds}} Sekunden...", "conferenceDisconnectTitle": "Ihre Verbindung ist getrennt worden.", "conferenceReloadMsg": "Wir versuchen das zu beheben. Verbinde in {{seconds}} Sekunden...", @@ -158,69 +173,75 @@ "contactSupport": "Support kontaktieren", "copy": "Kopieren", "dismiss": "OK", - "displayNameRequired": "", + "displayNameRequired": "Hallo! Wie ist Ihr Name?", "done": "Fertig", - "enterDisplayName": "", + "enterDisplayName": "Bitte geben Sie hier Ihren Namen ein", "error": "Fehler", - "externalInstallationMsg": "Die Bildschirmfreigabeerweiterung muss installiert werden.", + "externalInstallationMsg": "Die Bildschirmfreigabe-Erweiterung muss installiert werden.", "externalInstallationTitle": "Erweiterung erforderlich", "goToStore": "Zum Store", "gracefulShutdown": "Der Dienst steht momentan wegen Wartungsarbeiten nicht zur Verfügung. Bitte versuchen Sie es später noch einmal.", "IamHost": "Ich bin der Organisator", - "incorrectRoomLockPassword": "", + "incorrectRoomLockPassword": "Falsches Passwort", "incorrectPassword": "Benutzername oder Passwort ungültig", - "inlineInstallationMsg": "Die Bildschirmfreigabeerweiterung muss installiert werden.", + "inlineInstallationMsg": "Die Bildschirmfreigabe-Erweiterung muss installiert werden.", "inlineInstallExtension": "Jetzt installieren", "internalError": "Oh! Es hat etwas nicht funktioniert. Der folgende Fehler ist aufgetreten: {{error}}", "internalErrorTitle": "Interner Fehler", - "kickMessage": "", + "kickMessage": "Sie können sich für mehr Details an {{participantDisplayName}} wenden.", "kickParticipantButton": "Entfernen", "kickParticipantDialog": "Wollen Sie diesen Teilnehmer wirklich entfernen?", - "kickParticipantTitle": "Teilnehmer stummschalten?", - "kickTitle": "", - "liveStreaming": "Live-Streaming", - "liveStreamingDisabledForGuestTooltip": "Gäste können kein Live-Streaming starten.", - "liveStreamingDisabledTooltip": "Starten des Live-Streams deaktiviert.", + "kickParticipantTitle": "Teilnehmer entfernen?", + "kickTitle": "Autsch! {{participantDisplayName}} hat Sie aus dem Meeting geworfen.", + "liveStreaming": "Livestreaming", + "liveStreamingDisabledForGuestTooltip": "Gäste können kein Livestreaming starten.", + "liveStreamingDisabledTooltip": "Starten des Livestreams deaktiviert.", "lockMessage": "Die Konferenz konnte nicht gesperrt werden.", - "lockRoom": "", + "lockRoom": "Meeting-$t(lockRoomPasswordUppercase) hinzufügen", "lockTitle": "Sperren fehlgeschlagen", "logoutQuestion": "Sind Sie sicher, dass Sie sich abmelden und die Konferenz verlassen möchten?", "logoutTitle": "Abmelden", - "maxUsersLimitReached": "", - "maxUsersLimitReachedTitle": "", + "maxUsersLimitReached": "Das Limit für die maximale Teilnehmerzahl ist erreicht. Die Konferenz ist voll. Bitte wenden Sie sich an den Besitzer des Meetings oder versuchen Sie es später noch einmal!", + "maxUsersLimitReachedTitle": "Maximales Teilnehmerlimit erreicht", "micConstraintFailedError": "Ihr Mikrofon erfüllt die notwendigen Anforderungen nicht.", "micNotFoundError": "Mikrofon nicht gefunden.", - "micNotSendingData": "", - "micNotSendingDataTitle": "", + "micNotSendingData": "Gehen Sie zu den Einstellungen Ihres Computers, um die Stummschaltung Ihres Mikrofons aufzuheben und seinen Pegel einzustellen.", + "micNotSendingDataTitle": "Ihr Mikrofon ist durch Ihre Systemeinstellungen stumm geschaltet.", "micPermissionDeniedError": "Die Berechtigung zur Verwendung des Mikrofons wurde nicht erteilt. Sie können trotzdem an der Konferenz teilnehmen, aber die anderen Teilnehmer können Sie nicht hören. Verwenden Sie die Kamera-Schaltfläche in der Adressleiste um die Berechtigungen zu erteilen.", "micUnknownError": "Das Mikrofon kann aus einem unbekannten Grund nicht verwendet werden.", + "muteEveryoneElseDialog": "Einmal stummgeschaltet, können Sie deren Stummschaltung nicht mehr beenden, aber sie können ihre Stummschaltung jederzeit selbst beenden.", + "muteEveryoneElseTitle": "Alle außer {{whom}} stummschaten?", + "muteEveryoneDialog": "Wollen Sie wirklich alle stummschalten? Sie können deren Stummschaltung nicht mehr beenden, aber sie können ihre Stummschaltung jederzeit selbst beenden.", + "muteEveryoneTitle": "Alle stummschalten?", + "muteEveryoneSelf": "sich selbst", + "muteEveryoneStartMuted": "Alle beginnen von jetzt an stummgeschaltet", "muteParticipantBody": "Sie können die Stummschaltung anderer Teilnehmer nicht aufheben, aber ein Teilnehmer kann seine eigene Stummschaltung jederzeit beenden.", "muteParticipantButton": "Stummschalten", "muteParticipantDialog": "Wollen Sie diesen Teilnehmer wirklich stummschalten? Sie können die Stummschaltung nicht wieder aufheben, der Teilnehmer kann dies aber jederzeit selbst tun.", "muteParticipantTitle": "Teilnehmer stummschalten?", "Ok": "OK", - "passwordLabel": "", + "passwordLabel": "$t(lockRoomPasswordUppercase)", "passwordNotSupported": "Setzen eines Konferenz-Passworts ist nicht unterstützt", - "passwordNotSupportedTitle": "", - "passwordRequired": "", - "popupError": "Ihr Browser blockiert Popups von dieser Website. Bitte aktivieren Sie Popups in den Sicherheitseinstellungen des Browsers und versuchen Sie es erneut.", - "popupErrorTitle": "Popup blockiert", + "passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) nicht unterstützt", + "passwordRequired": "$t(lockRoomPasswordUppercase) erforderlich", + "popupError": "Ihr Browser blockiert Pop-ups von dieser Website. Bitte aktivieren Sie Pop-ups in den Sicherheitseinstellungen des Browsers und versuchen Sie es erneut.", + "popupErrorTitle": "Pop-up blockiert", "recording": "Aufnahme", - "recordingDisabledForGuestTooltip": "Gäste können kein Aufzeichnungen starten.", + "recordingDisabledForGuestTooltip": "Gäste können keine Aufzeichnungen starten.", "recordingDisabledTooltip": "Start der Aufzeichnung deaktiviert.", "rejoinNow": "Jetzt erneut beitreten", "remoteControlAllowedMessage": "{{user}} hat die Anfrage zur Fernsteuerung angenommen.", "remoteControlDeniedMessage": "{{user}} hat die Anfrage zur Fernsteuerung verweigert.", "remoteControlErrorMessage": "Beim Anfordern der Fernsteuerungsberechtigung von {{user}} ist ein Fehler aufgetreten.", - "remoteControlRequestMessage": "Möchten Sie {{user}} erlauben den Computer fernzusteuern?", - "remoteControlShareScreenWarning": "Achtung, wenn Sie die Anfrage genehmigen starten Sie die Bildschirmfreigabe!", + "remoteControlRequestMessage": "Möchten Sie {{user}} erlauben, den Computer fernzusteuern?", + "remoteControlShareScreenWarning": "Achtung, wenn Sie die Anfrage genehmigen, starten Sie die Bildschirmfreigabe!", "remoteControlStopMessage": "Die Fernsteuerung wurde beendet.", "remoteControlTitle": "Fernsteuerung", "Remove": "Entfernen", - "removePassword": "", - "removeSharedVideoMsg": "Sind Sie sicher dass Sie das geteilte Video entfernen möchten?", + "removePassword": "$t(lockRoomPassword) entfernen", + "removeSharedVideoMsg": "Sind Sie sicher, dass Sie das geteilte Video entfernen möchten?", "removeSharedVideoTitle": "Freigegebenes Video entfernen", - "reservationError": "Fehler im Reservationssystem", + "reservationError": "Fehler im Reservierungssystem", "reservationErrorMsg": "Fehler, Nummer: {{code}}, Nachricht: {{msg}}", "retry": "Wiederholen", "screenSharingFailedToInstall": "Oh! Die Erweiterung für die Bildschirmfreigabe konnte nicht installiert werden.", @@ -228,6 +249,10 @@ "screenSharingFirefoxPermissionDeniedError": "Die Bildschirmfreigabe ist leider fehlgeschlagen. Bitte stellen Sie sicher, dass die Berechtigung für die Bildschirmfreigabe im Browser erteilt wurde.", "screenSharingFirefoxPermissionDeniedTitle": "Die Bildschirmfreigabe konnte nicht gestartet werden.", "screenSharingPermissionDeniedError": "Oh! Beim Anfordern der Bildschirmfreigabe-Berechtigungen hat etwas nicht funktioniert. Bitte aktualisieren und erneut versuchen.", + "sendPrivateMessage": "Sie haben kürzlich eine private Nachricht erhalten. Hatten Sie die Absicht, darauf privat zu antworten, oder wollen Sie Ihre Nachricht an die Gruppe senden?", + "sendPrivateMessageCancel": "An die Gruppe senden", + "sendPrivateMessageOk": "Privat antworten", + "sendPrivateMessageTitle": "Privat antworten?", "serviceUnavailable": "Dienst nicht verfügbar", "sessTerminated": "Konferenz beendet", "Share": "Teilen", @@ -239,33 +264,33 @@ "startLiveStreaming": "Einen Livestream starten", "startRecording": "Aufnahme starten", "startRemoteControlErrorMessage": "Beim Versuch die Fernsteuerung zu starten ist ein Fehler aufgetreten.", - "stopLiveStreaming": "Live-Streaming stoppen", + "stopLiveStreaming": "Livestreaming stoppen", "stopRecording": "Aufnahme stoppen", - "stopRecordingWarning": "Sind Sie sicher dass Sie die Aufnahme stoppen möchten?", - "stopStreamingWarning": "Sind Sie sicher dass Sie das Live-Streaming stoppen möchten?", + "stopRecordingWarning": "Sind Sie sicher, dass Sie die Aufnahme stoppen möchten?", + "stopStreamingWarning": "Sind Sie sicher, dass Sie das Livestreaming stoppen möchten?", "streamKey": "Name/Schlüssel für den Stream", "Submit": "OK", "thankYou": "Danke für die Verwendung von {{appName}}!", "token": "Token", - "tokenAuthFailed": "Sie sind nicht berechtigt dieser Konferenz beizutreten.", + "tokenAuthFailed": "Sie sind nicht berechtigt, dieser Konferenz beizutreten.", "tokenAuthFailedTitle": "Authentifizierung fehlgeschlagen", "transcribing": "Wird transkribiert", - "unlockRoom": "", + "unlockRoom": "Meeting-$t(lockRoomPassword) entfernen", "userPassword": "Benutzerpasswort", - "WaitForHostMsg": "Die Konferenz {{room}} wurde noch nicht gestartet. Wenn Sie der Veranstalter sind, authentifizieren Sie sich. Warten Sie andernfalls, bis der Veranstalter erscheint.", - "WaitForHostMsgWOk": "Die Konferenz {{room}} wurde noch nicht gestartet. Wenn Sie der Veranstalter sind, drücken Sie zum Authentifizieren auf OK. Warten Sie andernfalls, bis der Veranstalter erscheint.", + "WaitForHostMsg": "Die Konferenz {{room}} wurde noch nicht gestartet. Wenn Sie der Organisator sind, authentifizieren Sie sich. Warten Sie andernfalls, bis der Organisator erscheint.", + "WaitForHostMsgWOk": "Die Konferenz {{room}} wurde noch nicht gestartet. Wenn Sie der Organisator sind, drücken Sie zum Authentifizieren auf OK. Warten Sie andernfalls, bis der Organisator erscheint.", "WaitingForHost": "Warten auf den Organisator...", "Yes": "Ja", "yourEntireScreen": "Ganzer Bildschirm" }, - "\u0005dialog": { - "accessibilityLabel": {} - }, "dialOut": { "statusMessage": "ist jetzt {{status}}" }, + "documentSharing": { + "title": "Freigegebenes Dokument" + }, "feedback": { - "average": "Durschnittlich", + "average": "Durchschnittlich", "bad": "Schlecht", "detailsLabel": "Sagen Sie uns mehr dazu.", "good": "Gut", @@ -282,32 +307,32 @@ }, "info": { "accessibilityLabel": "Informationen anzeigen", - "addPassword": "", - "cancelPassword": "", + "addPassword": "$t(lockRoomPassword) hinzufügen", + "cancelPassword": "$t(lockRoomPassword) löschen", "conferenceURL": "Link:", "country": "Land", - "dialANumber": "Um am Metting teilzunehmen, müssen Sie eine dieser Nummern wählen und dann die PIN eingeben.", + "dialANumber": "Um am Meeting teilzunehmen, müssen Sie eine dieser Nummern wählen und dann die PIN eingeben.", "dialInConferenceID": "PIN:", "dialInNotSupported": "Entschuldigung, leider wird das Einwählen derzeit nicht unterstützt.", "dialInNumber": "Einwählen:", - "dialInSummaryError": "Fehler beim Abrufen der Einwählinformationen. Versuchen Sie es später erneut.", + "dialInSummaryError": "Fehler beim Abrufen der Einwahlinformationen. Versuchen Sie es später erneut.", "dialInTollFree": "Gebührenfrei", "genericError": "Es ist leider etwas schiefgegangen.", "inviteLiveStream": "Klicken Sie auf {{url}} um den Livestream dieser Konferenz zu öffnen", - "invitePhone": "", - "invitePhoneAlternatives": "", + "invitePhone": "Wenn Sie stattdessen per Telefon beitreten möchten, tippen Sie hier: {{number}},,{{conferenceID}}#\n", + "invitePhoneAlternatives": "Suche nach einer anderen Einwahlnummer?\nMeetings-Einwahlnummern sehen: {{{url}}\n\n\n\nWenn Sie sich auch über ein Raumtelefon einwählen, nehmen Sie teil, ohne sich mit dem Ton zu verbinden: {{silentUrl}}", "inviteURLFirstPartGeneral": "Sie wurden zur Teilnahme an einem Meeting eingeladen.", - "inviteURLFirstPartPersonal": "", - "inviteURLSecondPart": "", + "inviteURLFirstPartPersonal": "{{name}} lädt Sie zu einem Meeting ein.\n", + "inviteURLSecondPart": "\nAm Meeting teilnehmen:\n{{url}}\n", "liveStreamURL": "Livestream:", "moreNumbers": "Weitere Telefonnummern", "noNumbers": "Keine Telefonnummern verfügbar.", "noPassword": "Kein", - "noRoom": "Keine Konferenz für die Einwähl-Informationen angegeben.", + "noRoom": "Keine Konferenz für die Einwahlinformationen angegeben.", "numbers": "Einwählnummern", - "password": "", + "password": "$t(lockRoomPasswordUppercase):", "title": "Teilen", - "tooltip": "Freigabe-Link und Einwählinformationen für dieses Meeting", + "tooltip": "Freigabe-Link und Einwahlinformationen für dieses Meeting", "label": "Meeting-Informationen" }, "inviteDialog": { @@ -322,7 +347,7 @@ "msg": "Es ist ein Fehler aufgetreten.", "retry": "Erneut versuchen", "support": "Support", - "supportMsg": "Wenn der Fehler erneut auftritt, bitte kontaktieren sie" + "supportMsg": "Wenn der Fehler erneut auftritt, bitte kontaktieren Sie" }, "keyboardShortcuts": { "focusLocal": "Lokales Video fokussieren", @@ -331,45 +356,46 @@ "keyboardShortcuts": "Tastenkürzel", "localRecording": "Lokale Aufzeichnungssteuerelemente ein- oder ausblenden", "mute": "Stummschaltung aktivieren oder deaktivieren", - "pushToTalk": "Drücken um zu sprechen", + "pushToTalk": "Push-to-Talk (Sprechtaste)", "raiseHand": "Hand erheben", "showSpeakerStats": "Statistiken für Sprecher anzeigen", - "toggleChat": "Chat öffnen oder schliessen", + "toggleChat": "Chat öffnen oder schließen", "toggleFilmstrip": "Video-Miniaturansichten ein- oder ausblenden", "toggleScreensharing": "Zwischen Kamera und Bildschirmfreigabe wechseln", "toggleShortcuts": "Tastenkombinationen ein- oder ausblenden", - "videoMute": "Kamera starten oder stoppen" + "videoMute": "Kamera starten oder stoppen", + "videoQuality": "Anrufqualität verwalten" }, - "\u0005keyboardShortcuts": {}, "liveStreaming": { - "busy": "Es werden Resourcen zum Streamen bereitgestellt. Bitte in ein paar Minuten erneut versuchen.", + "busy": "Es werden Ressourcen zum Streamen bereitgestellt. Bitte in ein paar Minuten erneut versuchen.", "busyTitle": "Alle Streaming-Instanzen sind in Gebrauch", "changeSignIn": "Konten wechseln.", - "choose": "Live stream auswählen", + "choose": "Livestream auswählen", "chooseCTA": "Streaming-Option auswählen. Sie sind aktuell als {{email}} angemeldet.", - "enterStreamKey": "Name/Schlüssel für den YouTube Livestream hier eingeben.", - "error": "Das Live-Streaming ist fehlgeschlagen. Bitte versuchen Sie es erneut.", - "errorAPI": "Beim abrufen der YouTube Livestreams ist ein Fehler aufgetreten. Bitte versuchen Sie sich erneut anzumelden.", - "errorLiveStreamNotEnabled": "Live-Streaming ist für {{email}} nicht aktiviert. Aktivieren Sie das Live-Streaming oder melden Sie sich bei einem Konto mit aktiviertem Live-Streaming an.", - "expandedOff": "Live-Streaming wurde angehalten", + "enterStreamKey": "Name/Schlüssel für den YouTube-Livestream hier eingeben.", + "error": "Das Livestreaming ist fehlgeschlagen. Bitte versuchen Sie es erneut.", + "errorAPI": "Beim Abrufen der YouTube-Livestreams ist ein Fehler aufgetreten. Bitte versuchen Sie, sich erneut anzumelden.", + "errorLiveStreamNotEnabled": "Livestreaming ist für {{email}} nicht aktiviert. Aktivieren Sie das Livestreaming oder melden Sie sich bei einem Konto mit aktiviertem Livestreaming an.", + "expandedOff": "Livestreaming wurde angehalten", "expandedOn": "Das Meeting wird momentan an YouTube gestreamt.", - "expandedPending": "Live-Streaming wird gestartet...", - "failedToStart": "Live-Streaming konnte nicht gestartet werden", - "getStreamKeyManually": "", - "invalidStreamKey": "Der Live-Stream-Schlüssel ist u. U. falsch.", - "off": "Live-Streaming gestoppt", - "on": "Live-Streaming", - "pending": "Live-Stream wird gestartet...", - "serviceName": "Live Streaming-Dienst", + "expandedPending": "Livestreaming wird gestartet...", + "failedToStart": "Livestreaming konnte nicht gestartet werden", + "getStreamKeyManually": "Wir waren nicht in der Lage, Livestreams abzurufen. Versuchen Sie, Ihren Livestream-Schlüssel von YouTube zu erhalten.", + "invalidStreamKey": "Der Livestream-Schlüssel ist u. U. falsch.", + "off": "Livestreaming gestoppt", + "offBy": "{{name}} stoppte das Livestreaming", + "on": "Livestreaming", + "onBy": "{{name}} startete das Livestreaming", + "pending": "Livestream wird gestartet...", + "serviceName": "Livestreaming-Dienst", "signedInAs": "Sie sind derzeit angemeldet als:", "signIn": "Mit Google anmelden", - "signInCTA": "Anmelden oder den Name/Schlüssel des YouTube Livestreams eingeben.", + "signInCTA": "Anmelden oder den Namen/Schlüssel des YouTube-Livestreams eingeben.", "signOut": "Abmelden", "start": "Einen Livestream starten", "streamIdHelp": "Was ist das?", - "unavailableTitle": "Live-Streaming nicht verfügbar" + "unavailableTitle": "Livestreaming nicht verfügbar" }, - "\u0005liveStreaming": {}, "localRecording": { "clientState": { "off": "Aus", @@ -379,7 +405,7 @@ "dialogTitle": "Lokale Aufzeichnungssteuerelemente", "duration": "Dauer", "durationNA": "N. v.", - "encoding": "Codierung", + "encoding": "Kodierung", "label": "LOR", "labelToolTip": "Lokale Aufzeichnung ist aktiviert", "localRecording": "Lokale Aufzeichnung", @@ -387,7 +413,7 @@ "messages": { "engaged": "Lokale Aufzeichnung ist aktiviert", "finished": "Aufzeichnung der Sitzung {{token}} ist beendet. Senden Sie die aufgezeichnete Datei an den Moderator.", - "finishedModerator": "Aufzeichnung der Sitzung {{token}} ist beendet. Die Aufzeichnung der lokalen Verlaufs wurde gespeichert. Bitten Sie die anderen Teilnehmer, ihre Aufzeichnungen zu übermitteln.", + "finishedModerator": "Aufzeichnung der Sitzung {{token}} ist beendet. Die Aufzeichnung des lokalen Verlaufs wurde gespeichert. Bitten Sie die anderen Teilnehmer, ihre Aufzeichnungen zu übermitteln.", "notModerator": "Sie sind nicht der Moderator. Sie können die lokale Aufzeichnung nicht starten oder stoppen." }, "moderator": "Moderator", @@ -399,7 +425,6 @@ "stop": "Aufnahme stoppen", "yes": "Ja" }, - "\u0005localRecording": {}, "lockRoomPassword": "Passwort", "lockRoomPasswordUppercase": "Passwort", "me": "ich", @@ -412,30 +437,30 @@ "focusFail": "{{component}} ist im Moment nicht verfügbar - wiederholen in {{ms}} Sekunden", "grantedTo": "Moderatorenrechte an {{to}} vergeben.", "invitedOneMember": "{{displayName}} wurde eingeladen", - "invitedThreePlusMembers": "", - "invitedTwoMembers": "", - "kickParticipant": "", + "invitedThreePlusMembers": "{{name}} und {{count}} andere wurden eingeladen", + "invitedTwoMembers": "{{first}} und {{second}} wurden eingeladen", + "kickParticipant": "Sie können sich für mehr Details an {{participantDisplayName}} wenden.", "me": "Ich", "moderator": "Moderatorenrechte vergeben", "muted": "Der Konferenz wurde stumm beigetreten.", "mutedTitle": "Stummschaltung aktiv!", - "mutedRemotelyTitle": "", - "mutedRemotelyDescription": "", - "passwordRemovedRemotely": "", - "passwordSetRemotely": "", + "mutedRemotelyTitle": "Sie wurden von {{participantDisplayName}} stummgeschaltet!", + "mutedRemotelyDescription": "Sie können jederzeit die Stummschaltung aufheben, wenn Sie bereit sind zu sprechen. Wenn Sie fertig sind, können sich wieder stummschalten, um Geräusche vom Meeting fernzuhalten.", + "passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) von einem anderen Teilnehmer entfernt", + "passwordSetRemotely": "$t(lockRoomPasswordUppercase) von einem anderen Teilnehmer gesetzt", "raisedHand": "{{name}} möchte sprechen.", "somebody": "Jemand", - "startSilentTitle": "", - "startSilentDescription": "", - "suboptimalExperienceDescription": "Tut uns leid, aber die Konferenz wird mit {{appName}} kein grossartiges Erlebnis. Wir versuchen immer die Situation zu verbessern, bis dahin empfehlen wir aber die Verwendung einer der vollständig unterstützen Browser.", + "startSilentTitle": "Sie sind ohne Audioausgabe beigetreten!", + "startSilentDescription": "Treten Sie dem Meeting noch einmal bei, um Ihr Audio zu aktivieren", + "suboptimalBrowserWarning": "Tut uns leid, aber die Konferenz wird mit {{appName}} kein großartiges Erlebnis. Wir versuchen immer die Situation zu verbessern, bis dahin empfehlen wir aber die Verwendung einer der vollständig unterstützen Browser.", "suboptimalExperienceTitle": "Browserwarnung", - "unmute": "", + "unmute": "Stummschaltung aufheben", "newDeviceCameraTitle": "Neue Kamera erkannt", "newDeviceAudioTitle": "Neues Audiogerät erkannt", "newDeviceAction": "Verwenden" }, "passwordSetRemotely": "von einem anderen Teilnehmer gesetzt", - "passwordDigitsOnly": "", + "passwordDigitsOnly": "Bis zu {{number}} Ziffern", "poweredby": "Betrieben von", "presenceStatus": { "busy": "Beschäftigt", @@ -451,18 +476,18 @@ "rejected": "Abgelehnt", "ringing": "Es klingelt…" }, - "\u0005presenceStatus": {}, "profile": { "setDisplayNameLabel": "Anzeigename festlegen", "setEmailInput": "E-Mail eingeben", - "setEmailLabel": "E-Mail Adresse für Gravatar", + "setEmailLabel": "E-Mail-Adresse für Gravatar", "title": "Profil" }, + "raisedHand": "Ich möchte sprechen", "recording": { "authDropboxText": "In Dropbox hochladen", "availableSpace": "Verfügbarer Speicherplatz: {{spaceLeft}} MB (ca. {{duration}} Minuten Aufzeichnung)", "beta": "BETA", - "busy": "Es werden Resourcen für eine Aufnahme bereitgestellt. Bitte in ein paar Minuten erneut versuchen.", + "busy": "Es werden Ressourcen für eine Aufnahme bereitgestellt. Bitte in ein paar Minuten erneut versuchen.", "busyTitle": "Alle Aufnahme-Instanzen sind in Gebrauch", "error": "Die Aufzeichnung ist fehlgeschlagen. Bitte versuchen Sie es erneut.", "expandedOff": "Aufzeichnung wurde gestoppt", @@ -473,7 +498,9 @@ "live": "LIVE", "loggedIn": "Als {{userName}} angemeldet", "off": "Aufnahme gestoppt", + "offBy": "{{name}} stoppte die Aufnahme", "on": "Aufnahme", + "onBy": "{{name}} startete die Aufnahme", "pending": "Aufzeichnung des Meetings wird vorbereitet…", "rec": "AUFZ", "serviceDescription": "Ihre Aufzeichnung wird vom Aufzeichnungsdienst gespeichert", @@ -484,14 +511,14 @@ "unavailableTitle": "Aufnahme nicht verfügbar" }, "sectionList": { - "pullToRefresh": "Ziehen um zu aktualisieren" + "pullToRefresh": "Ziehen, um zu aktualisieren" }, "settings": { "calendar": { - "about": "Die Kalenderintegration von {{appName}} wird verwendet, um ein sicheres Zugreifen auf Ihren Kalender und Auslesen der bevorstehenden Veranstaltungen zu ermöglichen.", + "about": "Die Kalenderintegration von {{appName}} wird verwendet, um ein sicheres Zugreifen auf Ihren Kalender und Auslesen der bevorstehenden Termine zu ermöglichen.", "disconnect": "Getrennt", "microsoftSignIn": "Mit Microsoft anmelden", - "signedIn": "Momentan wird auf Kalenderveranstaltungen von {{email}} zugegriffen. Klicken Sie auf die folgende Schaltfläche „Trennen“, um den Zugriff auf die Kalenderveranstaltungen zu stoppen.", + "signedIn": "Momentan wird auf Kalendertermine von {{email}} zugegriffen. Klicken Sie auf die folgende Schaltfläche „Trennen“, um den Zugriff auf die Kalendertermine zu stoppen.", "title": "Kalender" }, "devices": "Geräte", @@ -509,27 +536,28 @@ "startVideoMuted": "Alle Teilnehmer treten ohne Video bei", "title": "Einstellungen" }, - "\u0005settings": { - "calendar": {} - }, "settingsView": { + "advanced": "Erweitert", "alertOk": "OK", "alertTitle": "Warnung", - "alertURLText": "Die angegebene Server URL ist ungültig", + "alertURLText": "Die angegebene Server-URL ist ungültig", "buildInfoSection": "Build-Informationen", "conferenceSection": "Konferenz", + "disableCallIntegration": "Native Anrufintegration deaktivieren", + "disableP2P": "Ende-zu-Ende-Modus deaktivieren", "displayName": "Anzeigename", "email": "E-Mail", "header": "Einstellungen", "profileSection": "Profil", - "serverURL": "Server URL", + "serverURL": "Server-URL", + "showAdvanced": "Erweiterte Einstellungen anzeigen", "startWithAudioMuted": "Stumm beitreten", "startWithVideoMuted": "Ohne Video beitreten", "version": "Version" }, "share": { - "dialInfoText": "", - "mainText": "" + "dialInfoText": "\n\n=====\n\nWollen Sie sich nur auf Ihrem Telefon einwählen?\n\n{{{defaultDialInNumber}}}Klicken Sie auf diesen Link, um die eingewählten Telefonnummern für dieses Meeting zu sehen\n{{dialInfoPageUrl}}", + "mainText": "Klicken Sie auf den folgenden Link, um dem Meeting beizutreten:\n{{roomUrl}}" }, "speaker": "Sprecher", "speakerStats": { @@ -546,28 +574,33 @@ }, "suspendedoverlay": { "rejoinKeyTitle": "Erneut teilnehmen", - "text": "Erneut teilnehmen Schaltfläche betätigen um erneut zu verbinden.", - "title": "Die Konferenz wurde unterbrochen weil der Standbymodus aktiviert wurde." + "text": "„Erneut teilnehmen“-Schaltfläche betätigen, um erneut zu verbinden.", + "title": "Die Konferenz wurde unterbrochen, weil der Standby-Modus aktiviert wurde." }, "toolbar": { "accessibilityLabel": { - "audioOnly": "Nur Audio ein-/ausschalten", + "audioOnly": "„Nur Audio“ ein-/ausschalten", "audioRoute": "Audiogerät auswählen", "callQuality": "Qualitätseinstellungen", "cc": "Untertitel ein-/ausschalten", "chat": "Chatfenster ein-/ausblenden", - "document": "Geteiltes Dokument schliessen", - "feedback": "Feedback hinterlasen", - "fullScreen": "Vollbildschirm ein-/ausblenden", + "document": "Geteiltes Dokument schließen", + "download": "Unsere Apps herunterladen", + "feedback": "Feedback hinterlassen", + "fullScreen": "Vollbildmodus aktivieren/deaktivieren", "hangup": "Anruf beenden", + "help": "Hilfe", "invite": "Teilnehmer einladen", "kick": "Teilnehmer entfernen", "localRecording": "Lokale Aufzeichnungssteuerelemente ein-/ausschalten", "lockRoom": "Meeting-Passwort ein-/auschalten", "moreActions": "Menü „Weitere Aktionen“ ein-/ausschalten", "moreActionsMenu": "Menü „Weitere Aktionen“", + "moreOptions": "Menü „Weitere Optionen“", "mute": "„Audio stummschalten“ ein-/ausschalten", + "muteEveryone": "Alle stummschalten", "pip": "Bild-in-Bild-Modus ein-/ausschalten", + "privateMessage": "Private Nachricht senden", "profile": "Profil bearbeiten", "raiseHand": "„Melden“ ein-/ausschalten", "recording": "Aufzeichnung ein-/ausschalten", @@ -577,12 +610,12 @@ "shareRoom": "Person einladen", "shareYourScreen": "Bildschirmfreigabe ein-/ausschalten", "shortcuts": "Tastenkombinationen ein-/ausblenden", - "show": "", + "show": "Im Vordergrund anzeigen", "speakerStats": "Sprecherstatistik ein-/ausblenden", "tileView": "Kachelansicht ein-/ausschalten", - "toggleCamera": "Kamera ein-/ausschalten", + "toggleCamera": "Kamera wechseln", "videomute": "„Video stummschalten“ ein-/ausschalten", - "videoblur": "" + "videoblur": "Video-Unschärfe ein-/ausschalten" }, "addPeople": "Teilnehmer zur Konferenz hinzufügen", "audioOnlyOff": "Modus „Nur Audio“ deaktivieren", @@ -590,24 +623,36 @@ "audioRoute": "Audiogerät auswählen", "authenticate": "Anmelden", "callQuality": "Qualitätseinstellungen", - "chat": "Chat öffnen / schliessen", + "chat": "Chat öffnen / schließen", "closeChat": "Chat schließen", - "documentClose": "Geteiltes Dokument schliessen", + "documentClose": "Geteiltes Dokument schließen", "documentOpen": "Geteiltes Dokument öffnen", + "download": "Unsere Apps herunterladen", "enterFullScreen": "Vollbildmodus", "enterTileView": "Kachelansicht einschalten", "exitFullScreen": "Vollbildmodus verlassen", "exitTileView": "Kachelansicht ausschalten", - "feedback": "Feedback hinterlasen", + "feedback": "Feedback hinterlassen", "hangup": "Verlassen", + "help": "Hilfe", "invite": "Teilnehmer einladen", "login": "Anmelden", "logout": "Abmelden", "lowerYourHand": "Hand senken", "moreActions": "Weitere Einstellungen", + "moreOptions": "Weitere Optionen", "mute": "Stummschaltung aktivieren / deaktivieren", + "muteEveryone": "Alle stummschalten", + "noAudioSignalTitle": "Es kommt kein Input von Ihrem Mikrofon!", + "noAudioSignalDesc": "Wenn Sie das Gerät nicht absichtlich über die Systemeinstellungen oder die Hardware stumm geschaltet haben, sollten Sie einen Wechsel des Geräts in Erwägung ziehen.", + "noAudioSignalDescSuggestion": "Wenn Sie das Gerät nicht absichtlich über die Systemeinstellungen oder die Hardware stummgeschaltet haben, sollten Sie einen Wechsel auf das vorgeschlagene Gerät in Erwägung ziehen.", + "noAudioSignalDialInDesc": "Sie können sich auch über die Einwahlnummer einwählen:", + "noAudioSignalDialInLinkDesc" : "Einwahlnummern:", + "noisyAudioInputTitle": "Ihr Mikrofon scheint lärmintensiv zu sein!", + "noisyAudioInputDesc": "Es klingt, als ob Ihr Mikrofon Störgeräusche verursacht. Bitte überlegen Sie, ob Sie das Gerät stummschalten oder austauschen wollen.", "openChat": "Chat öffnen", "pip": "Bild-in-Bild-Modus einschalten", + "privateMessage": "Private Nachricht senden", "profile": "Profil bearbeiten", "raiseHand": "Hand erheben", "raiseYourHand": "Melden", @@ -620,16 +665,13 @@ "startSubtitles": "Untertitel einschalten", "stopScreenSharing": "Bildschirmfreigabe stoppen", "stopSubtitles": "Untertitel ausschalten", - "stopSharedVideo": "YouTube Video stoppen", - "talkWhileMutedPopup": "Versuchen sie zu sprechen? Ihr Mikrofon ist stummgeschaltet.", + "stopSharedVideo": "YouTube-Video stoppen", + "talkWhileMutedPopup": "Versuchen Sie zu sprechen? Ihr Mikrofon ist stummgeschaltet.", "tileViewToggle": "Kachelansicht ein-/ausschalten", - "toggleCamera": "Kamera ein-/ausschalten", + "toggleCamera": "Kamera wechseln", "videomute": "Kamera starten / stoppen", - "startvideoblur": "", - "stopvideoblur": "" - }, - "\u0005toolbar": { - "accessibilityLabel": {} + "startvideoblur": "Hintergrundunschärfe aktivieren", + "stopvideoblur": "Hintergrundunschärfe deaktivieren" }, "transcribing": { "ccButtonTooltip": "Untertitel ein-/ausschalten", @@ -643,18 +685,17 @@ "stop": "Anzeige der Untertitel stoppen", "tr": "TR" }, - "\u0005transcribing": {}, "userMedia": { - "androidGrantPermissions": "Wählen Sie Erlauben wenn der Browser um Berechtigungen bittet.", - "chromeGrantPermissions": "Wählen Sie Erlauben wenn der Browser um Berechtigungen bittet.", - "edgeGrantPermissions": "Wählen Sie Ja wenn der Browser um Berechtigungen bittet.", + "androidGrantPermissions": "Wählen Sie Zulassen, wenn der Browser um Berechtigungen bittet.", + "chromeGrantPermissions": "Wählen Sie Zulassen, wenn der Browser um Berechtigungen bittet.", + "edgeGrantPermissions": "Wählen Sie Ja, wenn der Browser um Berechtigungen bittet.", "electronGrantPermissions": "Bitte Berechtigungen zur Verwendung der Kamera und des Mikrofons erteilen", - "firefoxGrantPermissions": "Wählen Sie Markiertes Gerät teilen wenn der Browser um Berechtigungen bittet.", - "iexplorerGrantPermissions": "Wählen Sie OK wenn der Browser um Berechtigungen bittet.", + "firefoxGrantPermissions": "Wählen Sie Erlauben, wenn der Browser um Berechtigungen bittet.", + "iexplorerGrantPermissions": "Wählen Sie OK, wenn der Browser um Berechtigungen bittet.", "nwjsGrantPermissions": "Bitte Berechtigungen zur Verwendung der Kamera und des Mikrofons erteilen", - "operaGrantPermissions": "Wählen Sie Erlauben wenn der Browser um Berechtigungen bittet.", - "react-nativeGrantPermissions": "Wählen Sie Erlauben wenn der Browser um Berechtigungen bittet.", - "safariGrantPermissions": "Wählen Sie OK wenn der Browser um Berechtigungen bittet." + "operaGrantPermissions": "Wählen Sie Zulassen, wenn der Browser um Berechtigungen bittet.", + "react-nativeGrantPermissions": "Wählen Sie Erlauben, wenn der Browser um Berechtigungen bittet.", + "safariGrantPermissions": "Wählen Sie OK, wenn der Browser um Berechtigungen bittet." }, "videoSIPGW": { "busy": "Es stehen keine freien Ressourcen zur Verfügung. Bitte versuchen Sie es später noch einmal.", @@ -669,58 +710,68 @@ "videoStatus": { "audioOnly": "AUD", "audioOnlyExpanded": "Sie befinden sich im Modus „Nur Audio“. Dieser Modus benötigt weniger Bandbreite, Sie sehen jedoch nicht die Videos der anderen.", - "callQuality": "", + "callQuality": "Videoqualität", "hd": "HD", + "hdTooltip": "Video wird in hoher Auflösung angezeigt", "highDefinition": "Hohe Auflösung", "labelTooiltipNoVideo": "Kein Video", - "labelTooltipAudioOnly": "Nur-Audio Modus aktiv", + "labelTooltipAudioOnly": "„Nur Audio“-Modus aktiv", "ld": "LD", + "ldTooltip": "Video wird in niedriger Auflösung angezeigt", "lowDefinition": "Niedrige Auflösung", "onlyAudioAvailable": "Nur Ton", "onlyAudioSupported": "In diesem Browser wird nur Audio unterstützt.", "p2pEnabled": "Ende-zu-Ende aktiviert", - "p2pVideoQualityDescription": "", + "p2pVideoQualityDescription": "Im Ende-zu-Ende-Modus kann die empfangene Videoqualität nur zwischen „Hoch“ und „Nur Audio“ umgeschaltet werden. Andere Einstellungen werden erst beim Verlassen des Ende-zu-Ende-Modus berücksichtigt.", "recHighDefinitionOnly": "Hohe Qualität wird bevorzugt.", "sd": "SD", + "sdTooltip": "Video wird in Standardauflösung angezeigt", "standardDefinition": "Standardauflösung" }, "videothumbnail": { "domute": "Stummschalten", + "domuteOthers": "Alle anderen stummschalten", "flip": "Spiegeln", "kick": "Hinauswerfen", "moderator": "Moderator", "mute": "Teilnehmer ist stumm geschaltet", "muted": "Stummgeschaltet", "remoteControl": "Fernsteuerung", - "show": "", - "videomute": "" + "show": "Im Vordergrund anzeigen", + "videomute": "Teilnehmer hat die Kamera angehalten" }, "welcomepage": { "accessibilityLabel": { "join": "Zum Teilnehmen tippen", "roomname": "Konferenzname eingeben" }, - "appDescription": "Auf geht's! Beginne eine Videokonferenz mit dem ganzen Team. Oder eigentlich, lade alle ein die du kennst. {{app}} ist eine vollständig verschlüsselte, aus 100% Open-Source-Software bestehende Videokonferenzlösung die du den ganzen Tag kostenlos verwenden kannst — ohne Registrierung.", + "appDescription": "Auf geht's! Starten Sie eine Videokonferenz mit dem ganzen Team. Oder besser noch: Laden Sie alle ein, die Sie kennen. {{app}} ist eine vollständig verschlüsselte, aus 100 % Open-Source-Software bestehende Videokonferenzlösung, die Sie den ganzen Tag kostenlos verwenden können — ohne Registrierung.", "audioVideoSwitch": { - "audio": "Sprache", + "audio": "Audio", "video": "Video" }, "calendar": "Kalender", "connectCalendarButton": "Kalender verbinden", "connectCalendarText": "Verbinden Sie Ihren Kalender, um all Ihre Meetings in {{app}} anzuzeigen. Fügen Sie zudem {{provider}}-Meetings in Ihren Kalender ein und starten Sie sie mit nur einem Klick.", "enterRoomTitle": "Neues Meeting starten", + "roomNameAllowedChars": "Der Meeting-Name sollte keines der folgenden Zeichen enthalten: ?, &, :, ', \", %, #.", "go": "Los", + "goSmall": "Los", "join": "Beitreten", "info": "Informationen", - "privacy": "Privatsphäre", - "recentList": "Letzte\"", + "privacy": "Datenschutz", + "recentList": "Letzte", "recentListDelete": "Löschen", "recentListEmpty": "Die Liste „Letzte“ ist momentan leer. Chatten Sie mit Ihrem Team. Sie finden all Ihre letzten Meetings hier.", - "reducedUIText": "", + "reducedUIText": "Willkommen bei {{app}}!", "roomname": "Konferenzname eingeben", - "roomnameHint": "Name oder URL der Konferenz der Sie beitreten möchten. Sie können einen Namen erfinden, er muss nur den anderen Teilnehmern übermittelt werden damit sie der gleichen Konferenz beitreten.", - "sendFeedback": "Senden Sie uns Ihr Feedback", - "terms": "Bedingungen", + "roomnameHint": "Name oder URL der Konferenz, der Sie beitreten möchten. Sie können einen Namen erfinden, er muss nur den anderen Teilnehmern übermittelt werden, damit diese der gleichen Konferenz beitreten.", + "sendFeedback": "Feedback senden", + "terms": "AGB", "title": "Sichere, mit umfassenden Funktionen ausgestattete und vollkommen kostenlose Videokonferenzen" + }, + "lonelyMeetingExperience": { + "button": "Andere einladen", + "youAreAlone": "Nur Sie sind in diesem Meeting" } -} \ No newline at end of file +} diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-es.json b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-es.json index e312f95a81..71a7f5df88 100644 --- a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-es.json +++ b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-es.json @@ -1,7 +1,7 @@ { "addPeople": { "add": "Invitar", - "countryNotSupported": "Aun no contamos con soporte a este destino.", + "countryNotSupported": "Aún no contamos con soporte a este destino.", "countryReminder": "¿Llamando fuera de los Estados Unidos? ¡Por favor, asegúrese de empezar con el código de país!", "disabled": "No puede invitar a otras personas.", "failedToAdd": "Error al agregar participantes", @@ -21,16 +21,17 @@ "bluetooth": "Bluetooth", "headphones": "Audífonos", "phone": "Teléfono", - "speaker": "Orador" + "speaker": "Orador", + "none": "No hay dispositivos de audio disponibles" }, "audioOnly": { - "audioOnly": "Solo audio" + "audioOnly": "Bajo consumo de Ancho de Banda" }, "calendarSync": { "addMeetingURL": "Agregar un vínculo a la reunión", "confirmAddLink": "¿Quiere añadir un enlace de Jitsi a este evento?", "error": { - "appConfiguration": "La integración del calendario no se está configurada correctamente", + "appConfiguration": "La integración del calendario no está configurada correctamente", "generic": "Se ha producido un error. Compruebe la configuración del calendario o pruebe a recargarlo", "notSignedIn": "Se ha producido un error de autenticación para ver los eventos del calendario. Compruebe la configuración del calendario e intente iniciar sesión de nuevo" }, @@ -45,13 +46,23 @@ "today": "Hoy" }, "chat": { - "error": "Error: su mensaje \"{{originalText}}\" no fue enviado. Motivo: {{error}}", + "error": "Error: su mensaje no se envío. Motivo: {{error}}", + "fieldPlaceHolder": "Escriba su mensaje aquí", "messagebox": "Escriba un mensaje", + "messageTo": "Mensaje privado para {{recipient}}", + "noMessagesMessage": "No hay mensajes en la reunión. ¡Inicie una conversación!", "nickname": { "popover": "Seleccione un apodo", "title": "Introduzca un apodo para usar el chat" }, - "title": "Chat" + "privateNotice": "Mensaje privado para {{recipient}}", + "title": "Chat", + "you": "usted" + }, + "chromeExtensionBanner": { + "installExtensionText": "", + "buttonText": "", + "dontShowAgain": "" }, "connectingOverlay": { "joiningRoom": "Conectándose a su reunión…" @@ -96,8 +107,7 @@ "resolution": "Resolución:", "status": "Conexión:", "transport": "Transporte:", - "transport_plural": "Transportes:", - "turn": " (turnar)" + "transport_plural": "Transportes:" }, "dateUtils": { "earlier": "Anterior", @@ -107,7 +117,7 @@ "deepLinking": { "appNotInstalled": "Usted necesita la aplicación móvil {{app}} para unirse a esta reunión en su teléfono.", "description": "¿No pasó nada? Hemos intentado iniciar su reunión en la aplicación de escritorio {{app}}. intente de nuevo o inicie en la aplicación web {{app}}.", - "descriptionWithoutWeb": "", + "descriptionWithoutWeb": "¿No pasó nada? Intentamos iniciar su reunión en la aplicación de escritorio {{app}}.", "downloadApp": "Descargar la app", "launchWebButton": "Iniciar en web", "openApp": "Continuar a la aplicación", @@ -115,6 +125,7 @@ "tryAgainButton": "Intentar de nuevo en el escritorio" }, "defaultLink": "ej. {{url}}", + "defaultNickname": "ej. Juana Rosas", "deviceError": { "cameraError": "Error al acceder a su cámara", "cameraPermission": "Error al obtener permiso de la cámara", @@ -132,7 +143,7 @@ "liveStreaming": "Transmisión en Vivo" }, "allow": "Permitir", - "alreadySharedVideoMsg": "", + "alreadySharedVideoMsg": "Otro participante esta compartiendo un video. Esta conferencia solo permite compartir un video a la vez.", "alreadySharedVideoTitle": "Solo se permite un video compartido a la vez", "applicationWindow": "Ventana de aplicación", "Back": "Anterior", @@ -158,40 +169,40 @@ "contactSupport": "Contacte al soporte técnico", "copy": "Copiar", "dismiss": "Descartar", - "displayNameRequired": "", - "done": "Ninguno", - "enterDisplayName": "", + "displayNameRequired": "¡Hola! ¿Cuál es tu nombre?", + "done": "Listo", + "enterDisplayName": "Por favor ingresa tu nombre aquí", "error": "Error", "externalInstallationMsg": "Necesita instalar nuestra extensión para compartir escritorio.", "externalInstallationTitle": "Extensión requerida", "goToStore": "Ir al webstore", "gracefulShutdown": "Nuestro servicio se encuentra en mantenimiento. Por favor, intente más tarde.", "IamHost": "Yo soy el anfitrión", - "incorrectRoomLockPassword": "", + "incorrectRoomLockPassword": "Contraseña incorrecta", "incorrectPassword": "Nombre de usuario o contraseña incorrecta", "inlineInstallationMsg": "Necesita instalar nuestra extensión para compartir escritorio.", "inlineInstallExtension": "Instalar ahora", "internalError": "¡Oops! Algo salió mal. El siguiente error ocurrió: {{error}}", "internalErrorTitle": "Error interno", - "kickMessage": "", + "kickMessage": "Puede ponerse en contacto con {{participantDisplayName}} para obtener más detalles.", "kickParticipantButton": "Expulsar", "kickParticipantDialog": "¿Seguro que quiere expulsar a este participante?", - "kickParticipantTitle": "¿Silenciar a este participante?", - "kickTitle": "", + "kickParticipantTitle": "¿Expulsar a este participante?", + "kickTitle": "¡Ay! {{participantDisplayName}} te expulsó de la reunión", "liveStreaming": "Emisión en Directo", "liveStreamingDisabledForGuestTooltip": "Los invitados no pueden iniciar transmisiones en vivo.", "liveStreamingDisabledTooltip": "Iniciar transmisión en vivo deshabilitado.", "lockMessage": "No se pudo bloquear la conferencia.", - "lockRoom": "", + "lockRoom": "Agregar reunion $t(lockRoomPasswordUppercase)", "lockTitle": "El bloqueo falló", "logoutQuestion": "¿Está seguro que desea salir y detener la conferencia?", "logoutTitle": "Cerrar sesión", - "maxUsersLimitReached": "", - "maxUsersLimitReachedTitle": "", + "maxUsersLimitReached": "El límite máximo de participantes ha sido alcanzado. La conferencia está llena. Por favor contacta al organizador o intenta mas tarde.", + "maxUsersLimitReachedTitle": "Se ha alcanzado el límite máximo de participantes", "micConstraintFailedError": "El micrófono no satisface algunos de los requerimientos.", "micNotFoundError": "No se encontró el micrófono.", - "micNotSendingData": "", - "micNotSendingDataTitle": "", + "micNotSendingData": "Vaya a la configuración de su computadora para activar el micrófono y ajustar su nivel", + "micNotSendingDataTitle": "Su micrófono está silenciado en la configuración de su sistema", "micPermissionDeniedError": "No ha otorgado permisos para usar su micrófono. Puede unirse a la conferencia, pero no lo podrán escuchar. Utilice el botón en la barra de dirección para solucionar esto.", "micUnknownError": "No se puede usar su micrófono por motivos desconocidos.", "muteParticipantBody": "No podrás quitarles el modo en silencio, pero ellos pueden quitárselo en cualquier momento.", @@ -199,10 +210,10 @@ "muteParticipantDialog": "¿Seguro que quiere silenciar a este participante? No podrá revertir esta acción, pero el participante podrá hacerlo en cualquier momento", "muteParticipantTitle": "¿Silenciar a este participante?", "Ok": "Aceptar", - "passwordLabel": "", - "passwordNotSupported": "No se soporta establecer contraseña para una reunión.", - "passwordNotSupportedTitle": "", - "passwordRequired": "", + "passwordLabel": "$t(lockRoomPasswordUppercase)", + "passwordNotSupported": "No se soporta $t(lockRoomPassword) en la reunión", + "passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) no es compatible", + "passwordRequired": "$t(lockRoomPasswordUppercase) necesario", "popupError": "Su navegador está bloqueando las ventanas emergentes de este sitio. Habilite las ventanas emergentes en la configuración de seguridad de su navegador y vuelva a intentarlo.", "popupErrorTitle": "Ventana emergente bloqueada", "recording": "Grabando", @@ -217,7 +228,7 @@ "remoteControlStopMessage": "La sesión de control remoto ha finalizado!", "remoteControlTitle": "Control de escritorio remoto", "Remove": "Eliminar", - "removePassword": "", + "removePassword": "Eliminar $t(lockRoomPassword)", "removeSharedVideoMsg": "¿Está seguro que desea eliminar su vídeo compartido?", "removeSharedVideoTitle": "Eliminar video compartido", "reservationError": "Error del sistema de reservación", @@ -228,6 +239,10 @@ "screenSharingFirefoxPermissionDeniedError": "Algo salió mal mientras tratábamos de compartir la pantalla. Por favor, asegúrese de que nos ha dado permiso para hacerlo. ", "screenSharingFirefoxPermissionDeniedTitle": "OOPS! ¡ No pudimos empezar a compartir la pantalla!", "screenSharingPermissionDeniedError": "Oops! Algo salió mal con sus permisos de extensión para compartir pantalla. Por favor, vuelva a cargar e intente de nuevo.", + "sendPrivateMessage": "Acaba de recibir un mensaje privado. ¿Desea responder de forma privada?, ¿Desea responder al grupo?", + "sendPrivateMessageCancel": "Enviar al grupo", + "sendPrivateMessageOk": "Enviar privado", + "sendPrivateMessageTitle": "¿Enviar privado?", "serviceUnavailable": "Servicio no disponible", "sessTerminated": "Llamada terminada", "Share": "Compartir", @@ -250,7 +265,7 @@ "tokenAuthFailed": "Lo siento, usted no tiene permiso para unirse a este llamada.", "tokenAuthFailedTitle": "Falló la autenticación", "transcribing": "Transcribiendo", - "unlockRoom": "", + "unlockRoom": "Eliminar reunión $t(lockRoomPassword)", "userPassword": "contraseña del usuario", "WaitForHostMsg": "La conferencia {{room}} aún no ha comenzado. Si usted es el anfitrión, por favor autentíquese. De lo contrario, espere a que llegue el anfitrión.", "WaitForHostMsgWOk": "La conferencia {{room}} aún no ha comenzado. Si usted es el anfitrión, presione Ok para autenticar. De lo contrario, espere a que llegue el anfitrión.", @@ -261,6 +276,9 @@ "dialOut": { "statusMessage": "esta {{status}}" }, + "documentSharing": { + "title": "Compartir documento" + }, "feedback": { "average": "Promedio", "bad": "Malo", @@ -279,40 +297,40 @@ }, "info": { "accessibilityLabel": "Mostrar Información", - "addPassword": "", - "cancelPassword": "", + "addPassword": "Agregar $t(lockRoomPassword)", + "cancelPassword": "Cancelar $t(lockRoomPassword)", "conferenceURL": "Enlace:", "country": "País", - "dialANumber": "Para unirse a su reunión, marque uno de estos números y luego ingrese el pin.", + "dialANumber": "Para unirse a la reunión, marque uno de estos números e introduzca el PIN", "dialInConferenceID": "PIN:", "dialInNotSupported": "Lo sentimos, actualmente no se admite la marcación.", "dialInNumber": "Marcar:", - "dialInSummaryError": "Error al obtener información de acceso telefónico ahora. Por favor, inténtelo de nuevo más tarde.", - "dialInTollFree": "Llamada gratuita", + "dialInSummaryError": "Se ha producido un error al capturar la información de marcación. Vuelva a intentarlo más tarde", + "dialInTollFree": "Número gratuito", "genericError": "Ups, algo salió mal.", "inviteLiveStream": "Marcado de un solo toque: {{number}},,{{conferenceID}}#", - "invitePhone": "", - "invitePhoneAlternatives": "", - "inviteURLFirstPartGeneral": "Usted está invitado a unirse a una reunión.", + "invitePhone": "Para unirse por teléfono, presione: {{number}},,{{conferenceID}}#\n", + "invitePhoneAlternatives": "¿Busca un número de marcación diferente?\nConsulte los números de marcación de la reunión: {{url}}\n\n\nSi está marcando a través del teléfono de otra reunión, únase sin conectarse al audio: {{silentUrl}}", + "inviteURLFirstPartGeneral": "Le han invitado a unirse a una reunión", "inviteURLFirstPartPersonal": "{{name}} te esta invitando a una sesión.\n", - "inviteURLSecondPart": "", + "inviteURLSecondPart": "\nUnirse a la reunión:\n{{url}}\n", "liveStreamURL": "Transmisión en vivo:", "moreNumbers": "Más números", "noNumbers": "Sin números a marcar.", "noPassword": "Ninguno", "noRoom": "No se especificó la sala a marcar.", "numbers": "Números de marcado", - "password": "", + "password": "$t(lockRoomPasswordUppercase):", "title": "Compartir", "tooltip": "Compartir el enlace y la información de acceso telefónico para esta reunión", - "label": "Información de la sesión" + "label": "Información de la reunión" }, "inviteDialog": { - "alertText": "Error al invitar a algunos participantes ", + "alertText": "Se ha producido un error al invitar a algunos participantes", "header": "Invitar", "searchCallOnlyPlaceholder": "Introduzca número de télefono", - "searchPeopleOnlyPlaceholder": "Buscar participantes ", - "searchPlaceholder": "Participante o número de teléfono ", + "searchPeopleOnlyPlaceholder": "Buscar participantes", + "searchPlaceholder": "Participante o número de teléfono", "send": "Enviar" }, "inlineDialogFailure": { @@ -335,7 +353,8 @@ "toggleFilmstrip": "Mostrar/Ocultar miniaturas de video", "toggleScreensharing": "Cambiar entre cámara y compartir pantalla", "toggleShortcuts": "Mostrar/ocultar atajos del teclado", - "videoMute": "Activar o desactivar tu cámara" + "videoMute": "Activar o desactivar tu cámara", + "videoQuality": "Administrar la calidad de llamadas" }, "liveStreaming": { "busy": "Estamos trabajando para liberar recursos de transmisión. Por favor, inténtelo de nuevo en unos minutos.", @@ -352,9 +371,11 @@ "expandedPending": "La transmisión en vivo se está iniciando ...", "failedToStart": "La transmisión en vivo no se puso iniciar", "getStreamKeyManually": "No pudimos buscar ninguna transmisión en vivo. Trate de obtener su clave de transmisión en vivo de YouTube.", - "invalidStreamKey": "La clave de transmisión en vivo puede ser incorrecta.", + "invalidStreamKey": "Es posible que la clave de transmisión sea incorrecta", "off": "Transmisión en vivo detenida", + "offBy": "{{name}} transmisión en directo", "on": "Emisión en Directo", + "onBy": "{{name}} transmisión en directo iniciada", "pending": "Iniciando Emisión en Directo...", "serviceName": "Servicio de streaming en vivo", "signedInAs": "Actualmente está conectado como:", @@ -406,30 +427,30 @@ "focusFail": "{{component}} no disponible - reintentar en {{ms}} seg", "grantedTo": "¡Se otorgaron privilegios de moderador a {{to}}!", "invitedOneMember": "{{displayName}} ha sido invitado", - "invitedThreePlusMembers": "", - "invitedTwoMembers": "", - "kickParticipant": "", + "invitedThreePlusMembers": "{{name}} y otros {{count}} fueron invitados", + "invitedTwoMembers": "{{first}} y {{second}} fueron invitados", + "kickParticipant": "{{kicked}} desalojado por {{kicker}}", "me": "Yo", "moderator": "¡Se otorgaron privilegios de moderador!", "muted": "Has iniciado la conversación silenciado.", "mutedTitle": "¡Estás silenciado!", - "mutedRemotelyTitle": "", - "mutedRemotelyDescription": "", - "passwordRemovedRemotely": "", - "passwordSetRemotely": "", + "mutedRemotelyTitle": "¡{{Nombre del participante}} te ha silenciado!", + "mutedRemotelyDescription": "Siempre puedes quitar el silencio cuando estés listo para hablar. Silencie cuando termine para mantener el ruido alejado de la reunión.", + "passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) eliminado por otro participante", + "passwordSetRemotely": "$t(lockRoomPasswordUppercase) establecido por otro participante", "raisedHand": "{{name}} quisiera hablar.", "somebody": "Alguien", - "startSilentTitle": "", - "startSilentDescription": "", - "suboptimalExperienceDescription": "Eer... Al parecer su experiencia con {{appName}} no será tan buena aquí. Estamos buscando formas de mejorar esto pero hasta entonces, intente utilizar uno de los navegadores compatibles.", + "startSilentTitle": "¡Te uniste sin salida de audio!", + "startSilentDescription": "Vuelva a unirse a la reunión para habilitar el audio", + "suboptimalBrowserWarning": "Tememos que su experiencia en la reunión no sea tan buena. Estamos buscando formas de mejorar esto, pero hasta entonces intente utilizar uno de los navegadores totalmente compatibles.", "suboptimalExperienceTitle": "Advertencia del Explorador", - "unmute": "", - "newDeviceCameraTitle": "Nueva cámara detectada ", - "newDeviceAudioTitle": "Nuevo dispositivo de audio detectado ", + "unmute": "Dejar de silenciar", + "newDeviceCameraTitle": "Se ha detectado una nueva cámara", + "newDeviceAudioTitle": "Se ha detectado un nuevo dispositivo de audio", "newDeviceAction": "Usar" }, "passwordSetRemotely": "definido por otro participante", - "passwordDigitsOnly": "", + "passwordDigitsOnly": "Hasta {{number}} dígitos", "poweredby": "proporcionado por", "presenceStatus": { "busy": "Ocupado", @@ -451,6 +472,7 @@ "setEmailLabel": "Establecer su gravatar", "title": "Perfil" }, + "raisedHand": "Desea hablar", "recording": { "authDropboxText": "Subir a Dropbox", "availableSpace": "Espacio disponible: {{spaceLeft}} MB (aproximadamente {{duration}} minutos de grabación)", @@ -462,16 +484,18 @@ "expandedOn": "La reunión está siendo grabada.", "expandedPending": "La grabación se está inciando...", "failedToStart": "No se pudo iniciar la grabación", - "fileSharingdescription": "Compartir grabación con los participantes de la sesión ", + "fileSharingdescription": "Compartir la grabación con los participantes de la reunión", "live": "Directo", "loggedIn": "Sesión iniciada como {{userName}}", "off": "Grabación detenida", + "offBy": "{{name}} detuvo la grabación", "on": "Grabando", + "onBy": "{{name}} comenzó la grabación", "pending": "Preparando para grabar la reunión...", "rec": "REC", - "serviceDescription": "Tu grabación sera guardada por el servicio de grabación ", + "serviceDescription": "El servicio de grabación guardará la grabación", "serviceName": "Servicio de grabación", - "signIn": "Entrar", + "signIn": "Iniciar sesión", "signOut": "Cerrar sesión", "unavailable": "Oops! El {{serviceName}} no está disponible actualmente. Estamos trabajando para resolver la situación. Por favor intente más tarde.", "unavailableTitle": "Grabación no disponible" @@ -503,23 +527,27 @@ "title": "Ajustes" }, "settingsView": { + "advanced": "Avanzado", "alertOk": "OK", "alertTitle": "Aviso", "alertURLText": "La dirección URL del servidor no es válida", - "buildInfoSection": "Generar información ", + "buildInfoSection": "Información de la compilación", "conferenceSection": "Conferencia", + "disableCallIntegration": "Deshabilitar la integración nativa de llamadas", + "disableP2P": "Deshabilitar el modo punto a punto", "displayName": "Nombre a mostrar", "email": "Email", "header": "Ajustes", "profileSection": "Perfil", "serverURL": "URL del servidor", + "showAdvanced": "Mostrar configuración avanzada", "startWithAudioMuted": "Inicio con audio en silencio", "startWithVideoMuted": "Iniciar con el vídeo en silencio", - "version": "Versión " + "version": "Versión" }, "share": { - "dialInfoText": "", - "mainText": "Pulse en el siguiente enlace para unirse a la reunión:\n{{roomUrl}}" + "dialInfoText": "\n\n===== \\ n\n¿Solo quieres marcar en tu teléfono? \\ N\n{{defaultDialInNumber}} Haga clic en este enlace para ver el marcado en los números de teléfono de esta reunión\n{{dialInfoPageUrl}}", + "mainText": "Presione en el siguiente enlace para unirse a la reunión:\n{{roomUrl}}" }, "speaker": "Orador", "speakerStats": { @@ -543,83 +571,95 @@ "accessibilityLabel": { "audioOnly": "Alternar sólo audio", "audioRoute": "Seleccione el dispositivo de sonido", - "callQuality": "Administrar la calidad de llamadas", + "callQuality": "Administrar la calidad del video", "cc": "Alternar subtítulos", "chat": "Alternar ventana de chat", "document": "Alternar documento compartido", + "download": "Descarga nuestras aplicaciones", "feedback": "Dejar comentarios", "fullScreen": "Alternar pantalla completa", "hangup": "Dejar la llamada", + "help": "Ayuda", "invite": "Invitar personas", - "kick": "Expulsar participante ", + "kick": "Expulsar participante", "localRecording": "Alternar controles de grabación locales", - "lockRoom": "Cambiar contraseña de sesión ", + "lockRoom": "Activar o desactivar contraseña de la reunión", "moreActions": "Menú alternar más acciones", "moreActionsMenu": "Menú más acciones", "mute": "Alternar audio mudo", "pip": "Alternar modo de Picture-in-Picture", + "privateMessage": "Enviar mensaje privado", "profile": "Editar tu perfil", "raiseHand": "Levantar / Bajar tu mano", "recording": "Activar grabación", - "remoteMute": "Silenciar participante ", + "remoteMute": "Silenciar participante", "Settings": "Alternar configuración", "sharedvideo": "Alternar compartir un vídeo de YouTube", "shareRoom": "Invitar a alguien", "shareYourScreen": "Alternar compartir pantalla", "shortcuts": "Alternar accesos directos", - "show": "", + "show": "Mostrar en escena", "speakerStats": "Alternar estadísticas del orador", "tileView": "Alternar vista de mosaico", "toggleCamera": "Alternar cámara", "videomute": "Alternar silencio de video", - "videoblur": "" + "videoblur": "Alternar desenfoque de video" }, "addPeople": "Agregar personas a su llamada", - "audioOnlyOff": "Habilitar el modo de solo audio", - "audioOnlyOn": "Habilitar el modo de solo audio", + "audioOnlyOff": "Deshabilitar el modo de ancho de banda bajo", + "audioOnlyOn": "Habilitar el modo de ancho de banda bajo", "audioRoute": "Seleccione el dispositivo de sonido", "authenticate": "Autenticar", - "callQuality": "Administrar la calidad de llamadas", + "callQuality": "Administrar la calidad del video", "chat": "Abrir / cerrar sala de charla", - "closeChat": "Cerrar chat ", + "closeChat": "Cerrar chat", "documentClose": "Cerrar documento compartido", "documentOpen": "Abrir documento compartido", + "download": "Descarga nuestras aplicaciones", "enterFullScreen": "Ver pantalla completa", - "enterTileView": "Entrar en la vista de mosaico", + "enterTileView": "Entrar en vista de mosaico", "exitFullScreen": "Salir de pantalla completa", - "exitTileView": "Salir de la vista de mosaico", + "exitTileView": "Salir de vista de mosaico", "feedback": "Dejar comentarios", "hangup": "Salir", + "help": "Ayuda", "invite": "Invitar personas", "login": "Inicio de sesión", "logout": "Cerrar sesión", - "lowerYourHand": "Baja tu mano", + "lowerYourHand": "Bajar la mano", "moreActions": "Más acciones", + "moreOptions": "Más opciones", "mute": "Activar / Desactivar Silencio", + "noAudioSignalTitle": "¡No hay entrada proveniente de su micrófono!", + "noAudioSignalDesc": "Si no lo silenció a propósito desde la configuración del sistema o el dispositivo, considere cambiar el dispositivo.", + "noAudioSignalDescSuggestion": "Si no lo silenció a propósito desde la configuración del sistema o el dispositivo, considere usar el siguiente dispositivo:", + "noisyAudioInputTitle": "", + "noisyAudioInputDesc": "", "openChat": "Abrir chat", "pip": "Entra en el modo Picture-in-Picture", + "privateMessage": "Enviar mensaje privado", "profile": "Editar tu perfil", "raiseHand": "Levantar / Bajar tu mano", - "raiseYourHand": "Levanta tu mano", + "raiseYourHand": "Alzar la mano", "Settings": "Ajustes", "sharedvideo": "Compartir un vídeo de YouTube", "shareRoom": "Invitar a alguien", "shortcuts": "Ver accesos directos", "speakerStats": "Estadísticas del locutor", - "startScreenSharing": "Iniciar el uso compartido de pantalla", + "startScreenSharing": "Comenzar a compartir pantalla", "startSubtitles": "Iniciar subtítulos", - "stopScreenSharing": "Detener el uso compartido de pantalla ", - "stopSubtitles": "Detener subtítulos ", + "stopScreenSharing": "Dejar de compartir pantalla", + "stopSubtitles": "Detener subtítulos", "stopSharedVideo": "Detener vídeo de YouTube", "talkWhileMutedPopup": "Tratas de hablar? Estás silenciado.", "tileViewToggle": "Alternar vista de mosaico", "toggleCamera": "Alternar cámara", "videomute": "Iniciar / detener cámara", - "startvideoblur": "", - "stopvideoblur": "" + "startvideoblur": "Desenfocar mi fondo", + "stopvideoblur": "Desactivar desenfoque de fondo" }, "transcribing": { - "ccButtonTooltip": "Iniciar / Detener Subtítulos", + "ccButtonTooltip": "Iniciar / Detener subtítulos", "error": "La Transcripción falló. Por favor, inténtelo nuevamente.", "expandedLabel": "Transcripción encendida", "failedToStart": "No es posible iniciar la transcripción", @@ -654,32 +694,35 @@ }, "videoStatus": { "audioOnly": "AUD", - "audioOnlyExpanded": "Se encuentra en modalidad solo audio. Esta modalidad ahorra ancho de banda sin embargo no verá el video de otros.", - "callQuality": "", + "audioOnlyExpanded": "Estás en modo de ancho de banda bajo. En este modo, solo recibirá audio y pantalla compartida.", + "callQuality": "Calidad de video", "hd": "HD", + "hdTooltip": "Visualizando vídeo en alta definición", "highDefinition": "Alta definición", "labelTooiltipNoVideo": "No hay vídeo", - "labelTooltipAudioOnly": "Modo de sólo audio activado", + "labelTooltipAudioOnly": "Modo de ancho de banda bajo habilitado", "ld": "LD", + "ldTooltip": "Visualizando vídeo en baja definición", "lowDefinition": "Baja definición", "onlyAudioAvailable": "Solo hay audio disponible", "onlyAudioSupported": "Solo soportamos audio en este navegador.", "p2pEnabled": "Punto a Punto Activado", - "p2pVideoQualityDescription": "", + "p2pVideoQualityDescription": "En el modo punto a punto, la calidad de video recibida solo se puede alternar entre calidad alta y solo audio. No se respetarán otras configuraciones hasta que se salga del modo punto a punto.", "recHighDefinitionOnly": "Preferirá alta definición.", "sd": "SD", + "sdTooltip": "Visualizando vídeo en definición estándar", "standardDefinition": "Definición estándar" }, "videothumbnail": { - "domute": "Control de escritorio remoto", + "domute": "Silenciar", "flip": "Voltear", "kick": "Expulsar", "moderator": "Moderador", "mute": "Participante está silenciado", "muted": "Silenciado", - "remoteControl": "Control remoto", - "show": "", - "videomute": "" + "remoteControl": "", + "show": "Mostrar en escena", + "videomute": "El participante ha detenido la cámara." }, "welcomepage": { "accessibilityLabel": { @@ -695,18 +738,24 @@ "connectCalendarButton": "Conecte su calendario", "connectCalendarText": "Conecte su calendario para ver todas sus reuniones en {{app}}. Plus, add {{provider}}reuniones a tu calendario e iniciarlas con un solo clic.", "enterRoomTitle": "Comenzar una reunión", + "roomNameAllowedChars": "El nombre de la reunión no debe contener ninguno de estos caracteres: ?, &, :, ', \", %, #.", "go": "IR", - "join": "UNIRSE", + "goSmall": "IR", + "join": "CREAR / UNIRSE", "info": "Información", "privacy": "Privacidad", "recentList": "Reciente", "recentListDelete": "Borrar", "recentListEmpty": "Su lista de recientes está actualmente vacía. Chatea con tu equipo y encontrarás todas tus reuniones aquí.", - "reducedUIText": "", + "reducedUIText": "¡Bienvenido a {{app}}!", "roomname": "Introduzca un nombre de sala", "roomnameHint": "Introduce el nombre o URL de la sala a la que quieres unirte. Puedes crear un nombre nuevo, sólo tienes que hacer llegar este nombre al resto de participantes para que puedan unirse a esta sala.", "sendFeedback": "Enviar comentarios", "terms": "Términos", "title": "Seguro, lleno de funcionalidades y videoconferencias completamente gratuitas" + }, + "lonelyMeetingExperience": { + "button": "Invitar a otros", + "youAreAlone": "Eres el único en la reunión" } -} \ No newline at end of file +} diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-esUS.json b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-esUS.json index 70a1d969c6..81596e1847 100644 --- a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-esUS.json +++ b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-esUS.json @@ -1,80 +1,95 @@ { "addPeople": { "add": "Invitar", - "countryNotSupported": "Todavía no admitimos este destino.", - "countryReminder": "¿Llamas fuera de los EE. UU.? Asegúrate de comenzar con el código de país.", - "disabled": "No puedes invitar personas.", - "failedToAdd": "", - "footerText": "La marcación externa está deshabilitada.", + "countryNotSupported": "Aun no contamos con soporte a este destino.", + "countryReminder": "¿Llamando fuera de los Estados Unidos? ¡Por favor, asegúrese de empezar con el código de país!", + "disabled": "No puede invitar a otras personas.", + "failedToAdd": "Error al agregar participantes", + "footerText": "La marcación está desactivada.", "loading": "Buscar personas y números de teléfono", - "loadingNumber": "Validar número de teléfono", - "loadingPeople": "Buscar personas para invitar", - "noResults": "No se encontraron resultados de búsqueda que coincidan", - "noValidNumbers": "Introduce un número de teléfono", - "searchNumbers": "Agregar números de teléfono", - "searchPeople": "Buscar personas", - "searchPeopleAndNumbers": "Buscar personas o agregar sus números de teléfono", + "loadingNumber": "Validando el número de teléfono", + "loadingPeople": "Buscando contactos a invitar", + "noResults": "No se encontraron coincidencias", + "noValidNumbers": "Por favor ingrese un número de teléfono", + "searchNumbers": "Agregar números telefónicos", + "searchPeople": "Búsqueda de personas", + "searchPeopleAndNumbers": "Buscar personas o añadir sus números de teléfono", "telephone": "Teléfono: {{number}}", - "title": "Invitar personas a esta reunión" + "title": "Invitar a otras personas a esta reunión" }, "audioDevices": { "bluetooth": "Bluetooth", "headphones": "Audífonos", "phone": "Teléfono", - "speaker": "Altavoz" + "speaker": "Altavoz", + "none": "No hay dispositivos de audio disponibles" }, "audioOnly": { - "audioOnly": "Solo audio" + "audioOnly": "Ancho de banda bajo" }, "calendarSync": { - "addMeetingURL": "Agregar un enlace de reunión", - "confirmAddLink": "¿Deseas agregar un enlace de Jitsi a este evento?", + "addMeetingURL": "Agregar un vínculo a la reunión", + "confirmAddLink": "¿Quiere añadir un enlace de Jitsi a este evento?", "error": { - "appConfiguration": "La integración del calendario no está correctamente configurada.", - "generic": "Se produjo un error. Comprueba la configuración del calendario o intenta actualizarlo.", - "notSignedIn": "Se produjo un error al autenticar para ver eventos de calendario. Comprueba la configuración del calendario e intenta volver a iniciar sesión." + "appConfiguration": "La integración del calendario no está configurada correctamente", + "generic": "Se ha producido un error. Compruebe la configuración del calendario o pruebe cargarlo nuevamente.", + "notSignedIn": "Se ha producido un error de autenticación para ver los eventos del calendario. Compruebe la configuración del calendario e intente iniciar sesión de nuevo" }, - "join": "Unirse", - "joinTooltip": "Unir a la reunión", - "nextMeeting": "reunión siguiente", - "noEvents": "No hay próximos eventos programados.", - "ongoingMeeting": "reunión en progreso", + "join": "Unir", + "joinTooltip": "Unirse a la reunión", + "nextMeeting": "próxima reunión", + "noEvents": "No hay eventos próximos programados.", + "ongoingMeeting": "reunión en proceso", "permissionButton": "Abrir configuración", - "permissionMessage": "Se requiere el permiso del calendario para ver las reuniones en la aplicación.", + "permissionMessage": "Los permisos al calendario son necesarios para ver sus reuniones en la aplicación.", "refresh": "Actualizar calendario", "today": "Hoy" }, "chat": { - "error": "Error: el mensaje \"{{originalText}}\" no se envió. Motivo: {{error}}", - "messagebox": "Escribir un mensaje", + "error": "Error: su mensaje no se envío. Motivo: {{error}}", + "fieldPlaceHolder": "Escriba su mensaje aquí", + "messagebox": "Escriba un mensaje", + "messageTo": "Mensaje privado para {{recipient}}", + "noMessagesMessage": "No hay mensajes en la reunión. ¡Inicie una conversación!", "nickname": { - "popover": "Elegir un apodo", + "popover": "Seleccione un apodo", "title": "Introducir un apodo para usar el chat" }, - "title": "Chat" + "privateNotice": "Mensaje privado para {{recipient}}", + "title": "Mensajes", + "you": "usted" + }, + "chromeExtensionBanner": { + "installExtensionText": "Instalar la extensión para Google Calendar y la integración con Office 365", + "buttonText": "Instalar extensión de Chrome", + "dontShowAgain": "No mostrar nuevamente" }, "connectingOverlay": { - "joiningRoom": "Conectándote a la reunión..." + "joiningRoom": "Conectando a su reunión..." }, "connection": { "ATTACHED": "Adjunto", - "AUTHENTICATING": "Autenticación", + "AUTHENTICATING": "Autenticando", "AUTHFAIL": "Error de autenticación", "CONNECTED": "Conectado", - "CONNECTING": "Conexión", + "CONNECTING": "Conectando", "CONNFAIL": "Error de conexión", "DISCONNECTED": "Desconectado", - "DISCONNECTING": "Desconexión", + "DISCONNECTING": "Desconectando", "ERROR": "Error", - "RECONNECTING": "Se produjo un problema de red. Reconectando..." + "RECONNECTING": "Ocurrió un problema en la red. Reconectando...", + "FETCH_SESSION_ID": "Obteniendo session-id...", + "GET_SESSION_ID_ERROR": "Obtener session-id error: {{code}}", + "GOT_SESSION_ID": "Obteniendo session-id... Listo", + "LOW_BANDWIDTH": "Video para {{displayName}} ha sido deshabilitado para economizar ancho de banda" }, "connectionindicator": { "address": "Dirección:", "bandwidth": "Ancho de banda estimado:", - "bitrate": "Velocidad de transferencia:", - "bridgeCount": "Recuento de servidor: ", + "bitrate": "Tasa de transferencia:", + "bridgeCount": "Contador del servidor: ", "connectedTo": "Conectado a:", - "framerate": "Velocidad de cuadro:", + "framerate": "Cuadros por segundo:", "less": "Mostrar menos", "localaddress": "Dirección local:", "localaddress_plural": "Direcciones locales:", @@ -96,33 +111,33 @@ "resolution": "Resolución:", "status": "Conexión:", "transport": "Transporte:", - "transport_plural": "Transportes:", - "turn": " (activar/desactivar)" + "transport_plural": "Transportes:" }, "dateUtils": { - "earlier": "Más temprano", + "earlier": "Temprano", "today": "Hoy", "yesterday": "Ayer" }, "deepLinking": { "appNotInstalled": "Necesitas la aplicación móvil de {{app}} para unirte a esta reunión en el teléfono.", - "description": "¿No sucedió nada? Intentamos iniciar la reunión en la aplicación de escritorio de {{app}}. Vuelve a intentarlo o iníciala en la aplicación web de {{app}}.", - "descriptionWithoutWeb": "", + "description": "¿No pasó nada? Hemos intentado iniciar su reunión en la aplicación {{app}} de escritorio. intente de nuevo o inicie en la aplicación {{app}} vía web.", + "descriptionWithoutWeb": "¿No pasó nada? Intentamos iniciar su reunión en la aplicación {{app}} de escritorio.", "downloadApp": "Descargar la aplicación", "launchWebButton": "Iniciar en la Web", "openApp": "Continuar a la aplicación", "title": "Iniciando la reunión en {{app}}...", - "tryAgainButton": "Volver a intentar en escritorio" + "tryAgainButton": "Intentar de nuevo en el escritorio" }, - "defaultLink": "por ejemplo, {{url}}", + "defaultLink": "p.ej. {{url}}", + "defaultNickname": "p. ej. Juan Pérez", "deviceError": { - "cameraError": "No se pudo acceder a la cámara", - "cameraPermission": "Error al obtener el permiso de la cámara", - "microphoneError": "No se pudo acceder al micrófono", - "microphonePermission": "Error al obtener el permiso del micrófono" + "cameraError": "Error al acceder a tu cámara", + "cameraPermission": "Error de permisos en la cámara", + "microphoneError": "Error al acceder a tu micrófono", + "microphonePermission": "Error al obtener permiso del micrófono" }, "deviceSelection": { - "noPermission": "No se otorgó permiso", + "noPermission": "Permiso no concedido", "previewUnavailable": "Vista previa no disponible", "selectADevice": "Seleccionar un dispositivo", "testAudio": "Reproducir un sonido de prueba" @@ -132,11 +147,11 @@ "liveStreaming": "Transmisión en vivo" }, "allow": "Permitir", - "alreadySharedVideoMsg": "", + "alreadySharedVideoMsg": "Otro participante ya está compartiendo un vídeo. Esta conferencia sólo permite compartir un vídeo a la vez.", "alreadySharedVideoTitle": "Solo se permite un video compartido por vez", "applicationWindow": "Ventana de aplicación", - "Back": "Volver", - "cameraConstraintFailedError": "La cámara no satisface algunas de las limitaciones requeridas.", + "Back": "Anterior", + "cameraConstraintFailedError": "Su cámara no satisface algunos de los requerimientos.", "cameraNotFoundError": "No se encontró la cámara.", "cameraNotSendingData": "No podemos acceder a la cámara. Comprueba si otra aplicación está usando este dispositivo, selecciona otro dispositivo del menú de configuración o intenta volver a cargar la aplicación.", "cameraNotSendingDataTitle": "No es posible acceder a la cámara", @@ -146,78 +161,84 @@ "Cancel": "Cancelar", "close": "Cerrar", "conferenceDisconnectMsg": "Se recomienda que compruebes la conexión de la red. Reconectando en {{seconds}} segundos...", - "conferenceDisconnectTitle": "Se te ha desconectado.", - "conferenceReloadMsg": "Estamos intentando solucionarlo. Reconectando en {{seconds}} segundos...", - "conferenceReloadTitle": "Lamentablemente, algo salió mal.", + "conferenceDisconnectTitle": "Ha sido desconectado.", + "conferenceReloadMsg": "Estamos tratando de arreglar esto. Reconectando en {{seconds}} segundos...", + "conferenceReloadTitle": "Desafortunadamente, algo salió mal.", "confirm": "Confirmar", "confirmNo": "No", "confirmYes": "Sí", - "connectError": "¡Uy! Algo salió mal y no pudimos conectar con la conferencia.", - "connectErrorWithMsg": "¡Uy! Algo salió mal y no pudimos conectar con la conferencia: {{msg}}", - "connecting": "Conexión", - "contactSupport": "Contactar con soporte", + "connectError": "¡Oops! Algo salio mal y no fue posible conectarnos a la conferencia.", + "connectErrorWithMsg": "¡Oops! Algo salio mal y no fue posible conectarnos a la conferencia: {{msg}}", + "connecting": "Conectando", + "contactSupport": "Contacte a soporte técnico", "copy": "Copiar", "dismiss": "Descartar", - "displayNameRequired": "", + "displayNameRequired": "¡Hola! ¿Cuál es tu nombre?", "done": "Listo", - "enterDisplayName": "", + "enterDisplayName": "Por favor ingresa tu nombre aquí", "error": "Error", - "externalInstallationMsg": "Tienes que instalar nuestra extensión de uso compartido del escritorio.", - "externalInstallationTitle": "Se requiere extensión", + "externalInstallationMsg": "Necesita instalar nuestra extensión para compartir escritorio.", + "externalInstallationTitle": "Extensión requerida", "goToStore": "Ir a la tienda web", - "gracefulShutdown": "Nuestro servicio está actualmente interrumpido debido a tareas de mantenimiento. Vuelve a intentarlo más tarde.", + "gracefulShutdown": "Nuestro servicio se encuentra en mantenimiento. Por favor, intente más tarde.", "IamHost": "Soy el anfitrión", - "incorrectRoomLockPassword": "", - "incorrectPassword": "Nombre de usuario o contraseña incorrectos", - "inlineInstallationMsg": "Tienes que instalar nuestra extensión de uso compartido del escritorio.", + "incorrectRoomLockPassword": "Contraseña incorrecta", + "incorrectPassword": "Nombre de usuario o contraseña incorrecta", + "inlineInstallationMsg": "Necesita instalar nuestra extensión para compartir escritorio.", "inlineInstallExtension": "Instalar ahora", - "internalError": "¡Uy! Algo salió mal. Se produjo el siguiente error: {{error}}", + "internalError": "¡Oops! Algo salió mal. El siguiente error ocurrió: {{error}}", "internalErrorTitle": "Error interno", - "kickMessage": "", - "kickParticipantButton": "Echar", - "kickParticipantDialog": "¿Estás seguro de que deseas echar a este participante?", - "kickParticipantTitle": "", - "kickTitle": "", + "kickMessage": "Puede ponerse en contacto con {{participantDisplayName}} para obtener más detalles.", + "kickParticipantButton": "Expulsar", + "kickParticipantDialog": "¿Seguro que quiere expulsar a este participante?", + "kickParticipantTitle": "¿Sacar este participante?", + "kickTitle": "¡Ay! {{participantDisplayName}} te expulsó de la reunión", "liveStreaming": "Transmisión en vivo", "liveStreamingDisabledForGuestTooltip": "Los invitados no pueden iniciar la transmisión en vivo.", - "liveStreamingDisabledTooltip": "Inicio de transmisión en vivo deshabilitado.", + "liveStreamingDisabledTooltip": "Iniciar transmisión en vivo deshabilitado.", "lockMessage": "No se pudo bloquear la conferencia.", - "lockRoom": "", - "lockTitle": "Error de bloqueo", - "logoutQuestion": "¿Estás seguro de que deseas cerrar la sesión y detener la conferencia?", + "lockRoom": "Agregar $t(lockRoomPasswordUppercase) a la reunión", + "lockTitle": "El bloqueo falló", + "logoutQuestion": "¿Está seguro que desea salir y detener la conferencia?", "logoutTitle": "Cierre de sesión", - "maxUsersLimitReached": "", - "maxUsersLimitReachedTitle": "", - "micConstraintFailedError": "El micrófono no cumple algunas de las restricciones requeridas.", + "maxUsersLimitReached": "El límite máximo de participantes ha sido alcanzado. La conferencia está llena. Por favor contacta al organizador o intenta mas tarde.", + "maxUsersLimitReachedTitle": "Se ha alcanzado el límite máximo de participantes", + "micConstraintFailedError": "El micrófono no satisface algunos de los requerimientos.", "micNotFoundError": "No se encontró el micrófono.", - "micNotSendingData": "", - "micNotSendingDataTitle": "", - "micPermissionDeniedError": "No has otorgado permiso para usar el micrófono. Puedes unirte a la conferencia de todos modos, pero los demás asistente no te podrán escuchar. Usa el botón de la cámara en la barra de direcciones para solucionarlo.", - "micUnknownError": "No se puede usar el micrófono por un motivo desconocido.", - "muteParticipantBody": "No podrás anular el silencio, pero él/ella podrá hacerlo en cualquier momento.", + "micNotSendingData": "Vaya a la configuración de su computadora para activar el micrófono y ajustar su nivel", + "micNotSendingDataTitle": "Su micrófono está silenciado en la configuración de su sistema", + "micPermissionDeniedError": "No ha otorgado permisos para usar su micrófono. Puede unirse a la conferencia, pero no lo podrán escuchar. Utilice el botón en la barra de dirección para solucionar esto.", + "micUnknownError": "No se puede usar su micrófono por motivos desconocidos.", + "muteEveryoneElseDialog": "Una vez silenciados, No podrás quitarles el modo en silencio, pero ellos pueden quitárselo en cualquier momento.", + "muteEveryoneElseTitle": "¿Silenciar a todos excepto a {{whom}}?", + "muteEveryoneDialog": "¿Está seguro que quiere silenciar a todos? No podrás quitarles el modo en silencio, pero ellos pueden quitárselo en cualquier momento.", + "muteEveryoneTitle": "¿Silenciar a todos?", + "muteEveryoneSelf": "Usted mismo", + "muteEveryoneStartMuted": "Todos inician silenciados desde ahora", + "muteParticipantBody": "No podrás quitarles el modo en silencio, pero ellos pueden quitárselo en cualquier momento.", "muteParticipantButton": "Silenciar", - "muteParticipantDialog": "¿Estás seguro de que deseas silenciar a este participante? No podrás anular el silencio, pero él/ella podrá hacerlo en cualquier momento.", - "muteParticipantTitle": "", + "muteParticipantDialog": "¿Seguro que quiere silenciar a este participante? No podrá revertir esta acción, pero el participante podrá hacerlo en cualquier momento", + "muteParticipantTitle": "Silenciar este participante?", "Ok": "Aceptar", - "passwordLabel": "", - "passwordNotSupported": "", - "passwordNotSupportedTitle": "", - "passwordRequired": "", - "popupError": "El navegador bloquea las ventanas emergentes de este sitio. Habilítalas en la configuración de seguridad del navegador y vuelve a intentarlo.", + "passwordLabel": "$t(lockRoomPasswordUppercase)", + "passwordNotSupported": "No se soporta $t(lockRoomPassword) en la reunión", + "passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) no es compatible", + "passwordRequired": "$t(lockRoomPasswordUppercase) necesario", + "popupError": "Su navegador está bloqueando las ventanas emergentes de este sitio. Habilite las ventanas emergentes en la configuración de seguridad de su navegador y vuelva a intentarlo.", "popupErrorTitle": "Ventana emergente bloqueada", "recording": "Grabación", "recordingDisabledForGuestTooltip": "Los invitados no pueden iniciar grabaciones.", - "recordingDisabledTooltip": "Inicio de grabación deshabilitado.", - "rejoinNow": "Volver a unirse ahora", - "remoteControlAllowedMessage": "{{user}} aceptó tu solicitud de control remoto.", - "remoteControlDeniedMessage": "{{user}} rechazó tu solicitud de control remoto.", - "remoteControlErrorMessage": "Se produjo un error al intentar solicitar permisos de control remoto de {{user}}.", - "remoteControlRequestMessage": "¿Permites que {{user}} controle tu escritorio de manera remota?", - "remoteControlShareScreenWarning": "Ten en cuenta que si presionas \"Permitir\", compartirás tu pantalla.", - "remoteControlStopMessage": "La sesión de control remoto finalizó.", + "recordingDisabledTooltip": "Inicio de grabación desactivado.", + "rejoinNow": "Reunirse ahora", + "remoteControlAllowedMessage": "¡{{user}} ha aceptado tu solicitud de control remoto!", + "remoteControlDeniedMessage": "¡{{user}} ha rechazado tu solicitud de control remoto!", + "remoteControlErrorMessage": "¡Ha ocurrido un error tratando de solicitar permiso de control remoto de {{user}}!", + "remoteControlRequestMessage": "¿Permitirá que {{user}} controle remotamente su escritorio?", + "remoteControlShareScreenWarning": "¡Tenga en cuenta que si presiona \"Permitir\" usted compartirá su pantalla!", + "remoteControlStopMessage": "¡La sesión de control remoto ha finalizado!", "remoteControlTitle": "Control de escritorio remoto", "Remove": "Eliminar", - "removePassword": "", + "removePassword": "Eliminar $t(lockRoomPassword)", "removeSharedVideoMsg": "¿Estás seguro de que deseas eliminar el video compartido?", "removeSharedVideoTitle": "Eliminar video compartido", "reservationError": "Error del sistema de reservaciones", @@ -225,15 +246,19 @@ "retry": "Volver a intentar", "screenSharingFailedToInstall": "¡Uy! La extensión de uso compartido de pantalla no se pudo instalar.", "screenSharingFailedToInstallTitle": "La extensión de uso compartido de pantalla no se pudo instalar", - "screenSharingFirefoxPermissionDeniedError": "Algo salió mal cuando intentamos compartir tu pantalla. Asegúrate de habernos dado permiso para hacerlo. ", + "screenSharingFirefoxPermissionDeniedError": "Algo salió mal cuando intentamos compartir su pantalla. Asegúrese de habernos dado permiso para hacerlo.", "screenSharingFirefoxPermissionDeniedTitle": "¡Uy! No pudimos iniciar el uso compartido de la pantalla.", - "screenSharingPermissionDeniedError": "¡Uy! Algo salió mal con tus permisos de extensión de uso compartido de pantalla. Vuelve a cargar e inténtalo nuevamente.", + "screenSharingPermissionDeniedError": "¡Uy! Algo salió mal con sus permisos de extensión para compartido pantalla. Vuelva a cargar la página e intente de nuevo.", + "sendPrivateMessage": "Recientemente ha recibido un mensaje privado. ¿Pretendía responder a eso en privado, o quería enviar su mensaje al grupo?", + "sendPrivateMessageCancel": "Enviar al grupo", + "sendPrivateMessageOk": "Enviar en privado", + "sendPrivateMessageTitle": "¿Enviar en privado?", "serviceUnavailable": "Servicio no disponible", "sessTerminated": "Llamada finalizada", "Share": "Compartir", "shareVideoLinkError": "Proporciona un enlace de YouTube correcto.", "shareVideoTitle": "Compartir un video", - "shareYourScreen": "Compartir tu pantalla", + "shareYourScreen": "Compartir su pantalla", "shareYourScreenDisabled": "Uso compartido de pantalla deshabilitado.", "shareYourScreenDisabledForGuest": "Los invitados no pueden compartir la pantalla.", "startLiveStreaming": "Iniciar transmisión en vivo", @@ -250,23 +275,26 @@ "tokenAuthFailed": "Lo sentimos, no tienes permiso para unirte a esta llamada.", "tokenAuthFailedTitle": "Error de autenticación", "transcribing": "Transcripción", - "unlockRoom": "", + "unlockRoom": "Remover la $t(lockRoomPassword) de reunión", "userPassword": "contraseña de usuario", "WaitForHostMsg": "La conferencia {{room}} aún no ha comenzado. Si eres el anfitrión, inicia la autenticación. De lo contrario, espera a que llegue el anfitrión.", "WaitForHostMsgWOk": "La conferencia {{room}} aún no ha comenzado. Si eres el anfitrión, presiona Aceptar para autenticar. De lo contrario, espera a que llegue el anfitrión.", "WaitingForHost": "Esperando al anfitrión...", "Yes": "Sí", - "yourEntireScreen": "Toda tu pantalla" + "yourEntireScreen": "Toda su pantalla" }, "dialOut": { "statusMessage": "ahora está {{status}}" }, + "documentSharing": { + "title": "Documento Compartido" + }, "feedback": { "average": "Promedio", "bad": "Malo", "detailsLabel": "Cuéntanos más sobre eso.", "good": "Bueno", - "rateExperience": "Califica tu experiencia con la reunión", + "rateExperience": "Califique su experiencia en la reunión", "veryBad": "Muy malo", "veryGood": "Muy bueno" }, @@ -279,32 +307,32 @@ }, "info": { "accessibilityLabel": "Mostrar información", - "addPassword": "", - "cancelPassword": "", + "addPassword": "Agregar la $t(lockRoomPassword)", + "cancelPassword": "Anular la $t(lockRoomPassword)", "conferenceURL": "Enlace:", "country": "País", "dialANumber": "Para unirte a la reunión, marca uno de estos números y, luego introduce el PIN.", "dialInConferenceID": "PIN:", - "dialInNotSupported": "Lo sentimos, la marcación interna actualmente no se admite.", - "dialInNumber": "Marcación interna:", - "dialInSummaryError": "Error al obtener información de marcación interna ahora. Vuelve a intentarlo más tarde.", + "dialInNotSupported": "Lo sentimos, la marcación desde afuera actualmente no se admite.", + "dialInNumber": "Marcación desde afuera:", + "dialInSummaryError": "Error al obtener información de marcación desde afuera. Vuelva a intentar más tarde.", "dialInTollFree": "Sin cargo", "genericError": "Epa, algo salió mal.", "inviteLiveStream": "Para ver la transmisión en vivo de esta reunión, haz clic en este enlace: {{url}}", - "invitePhone": "", - "invitePhoneAlternatives": "", + "invitePhone": "Para unirse por teléfono, marque: {{number}},,{{conferenceID}}#\n", + "invitePhoneAlternatives": "¿Busca un número de acceso diferente?\nConsulte los números de acceso a las reuniones : {{url}}\n\n\nSi también marca a través de un teléfono externo, ingrese sin conectarse al audio: {{silentUrl}}", "inviteURLFirstPartGeneral": "Estás invitado a unirte a una reunión.", - "inviteURLFirstPartPersonal": "", - "inviteURLSecondPart": "", + "inviteURLFirstPartPersonal": "{{name}} lo invita a una reunión.\n", + "inviteURLSecondPart": "\nIngrese a la reunión :\n{{url}}\n", "liveStreamURL": "Transmisión en vivo:", "moreNumbers": "Más números", - "noNumbers": "Sin números de marcación interna.", + "noNumbers": "No hay números para marcación desde afuera.", "noPassword": "Ninguno", - "noRoom": "No se especificó ninguna sala para la marcación interna.", - "numbers": "Números de marcación interna", - "password": "", + "noRoom": "No se especificó ninguna sala para la marcación desde afuera.", + "numbers": "Números de marcación desde afuera", + "password": "$t(lockRoomPasswordUppercase):", "title": "Compartir", - "tooltip": "Compartir enlace e información de marcación interna para esta reunión", + "tooltip": "Compartir el enlace y la información de marcación desde afuera para esta reunión", "label": "Información de reunión" }, "inviteDialog": { @@ -322,7 +350,7 @@ "supportMsg": "Si esto sigue ocurriendo, contacta con" }, "keyboardShortcuts": { - "focusLocal": "Concentrar en tu video", + "focusLocal": "Concentrar en su video", "focusRemote": "Concentrar en el video de otra persona", "fullScreen": "Ver pantalla completa o salir de ella", "keyboardShortcuts": "Accesos directos del teclado", @@ -335,7 +363,8 @@ "toggleFilmstrip": "Mostrar u ocultar miniaturas de video", "toggleScreensharing": "Cambiar entre el uso compartido de pantalla y de cámara", "toggleShortcuts": "Mostrar u ocultar accesos directos del teclado", - "videoMute": "Iniciar o detener la cámara" + "videoMute": "Iniciar o detener la cámara", + "videoQuality": "Ajustar la calidad de la llamada" }, "liveStreaming": { "busy": "Estamos trabajando para liberar recursos de transmisión. Vuelve a intentarlo en unos minutos.", @@ -343,9 +372,9 @@ "changeSignIn": "Cambiar cuentas.", "choose": "Elegir una transmisión en vivo", "chooseCTA": "Elegir una opción de transmisión. Actualmente, la sesión está iniciada como {{email}}.", - "enterStreamKey": "Introduce tu clave de transmisión en vivo de YouTube aquí.", + "enterStreamKey": "Ingrese su clave de transmisión en vivo YouTube aquí.", "error": "Error de transmisión en vivo. Vuelve a intentarlo.", - "errorAPI": "Se produjo un error al acceder a tus difusiones de YouTube. Vuelve a intentar iniciar sesión.", + "errorAPI": "Se produjo un error al acceder a sus difusiones YouTube. Vuelva a intentar iniciar su sesión.", "errorLiveStreamNotEnabled": "La transmisión en vivo no está habilitada en {{email}}. Habilítala o inicia sesión en una cuenta con la transmisión en vivo habilitada.", "expandedOff": "La transmisión en vivo se ha detenido", "expandedOn": "La reunión se está transmitiendo actualmente a YouTube.", @@ -354,7 +383,9 @@ "getStreamKeyManually": "No pudimos obtener ninguna transmisión en vivo. Intenta obtener la clave de transmisión en vivo de YouTube.", "invalidStreamKey": "Es posible que la clave de transmisión en vivo sea incorrecta.", "off": "Transmisión en vivo detenida", + "offBy": "{{name}} detuvo el streaming en directo", "on": "Transmisión en vivo", + "onBy": "{{name}} inició el streaming en directo", "pending": "Iniciando transmisión en vivo...", "serviceName": "Servicio de transmisión en vivo", "signedInAs": "Actualmente, la sesión está iniciada como:", @@ -394,8 +425,8 @@ "stop": "Detener grabación", "yes": "Sí" }, - "lockRoomPassword": "", - "lockRoomPasswordUppercase": "", + "lockRoomPassword": "clave", + "lockRoomPasswordUppercase": "Clave", "me": "yo", "notify": { "connectedOneMember": "{{name}} se unió a la reunión", @@ -405,31 +436,31 @@ "focus": "Enfoque de la conferencia", "focusFail": "{{component}} no disponible. Vuelve a intentar en {{ms}} segundos", "grantedTo": "Se otorgaron derechos de moderador a {{to}}.", - "invitedOneMember": "", - "invitedThreePlusMembers": "", - "invitedTwoMembers": "", - "kickParticipant": "", + "invitedOneMember": "{{name}} ha sido invitado", + "invitedThreePlusMembers": "{{name}} y {{count}} más han sido invitados", + "invitedTwoMembers": "{{first}} y {{second}} han sido invitados", + "kickParticipant": "{{kicker}} sacó a {{kicked}}", "me": "Yo", "moderator": "Derechos de moderador otorgados.", "muted": "Has iniciado la conversación con el silencio activado.", "mutedTitle": "Tienes el silencio activado.", - "mutedRemotelyTitle": "", - "mutedRemotelyDescription": "", - "passwordRemovedRemotely": "", - "passwordSetRemotely": "", + "mutedRemotelyTitle": "¡Su micrófono fue silenciado por {{participantDisplayName}}!", + "mutedRemotelyDescription": "Siempre puede reactivar sur micrófono cuando esté listo para hablar. Desactívelo de nuevo cuando termine para mantener el ruido al mínimo en la reunión.", + "passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) retirada por otro participante", + "passwordSetRemotely": "$t(lockRoomPasswordUppercase) agregada por otro participante", "raisedHand": "{{name}} desea hablar.", "somebody": "Alguien", - "startSilentTitle": "", - "startSilentDescription": "", - "suboptimalExperienceDescription": "Bueno... Lamentamos que tu experiencia con {{appName}} no sea tan buena aquí. Estamos viendo la manera de mejorarlo, pero, hasta entonces, prueba con usar uno de los navegadores totalmente compatibles.", + "startSilentTitle": "¡Ingresó sin salida de audio!", + "startSilentDescription": "Vuelva a ingresar para activar el audio", + "suboptimalBrowserWarning": "Nos tememos que su experiencia de reunión no será tan buena aquí. Estamos buscando formas de mejorar esto, pero hasta entonces, por favor, intente utilizar uno de los navegadores soportados.", "suboptimalExperienceTitle": "Advertencia del navegador", - "unmute": "", + "unmute": "Reactivar el sonido", "newDeviceCameraTitle": "Se detectó una cámara nueva", "newDeviceAudioTitle": "Se detectó un dispositivo de audio nuevo", "newDeviceAction": "Usar" }, - "passwordSetRemotely": "", - "passwordDigitsOnly": "", + "passwordSetRemotely": "definida por otro participante", + "passwordDigitsOnly": "Hasta {{number]] cifras", "poweredby": "con tecnología de", "presenceStatus": { "busy": "Ocupado", @@ -443,14 +474,15 @@ "initializingCall": "Inicializando llamada...", "invited": "Invitado", "rejected": "Rechazado", - "ringing": "Sonando..." + "ringing": "Timbrando..." }, "profile": { - "setDisplayNameLabel": "Configurar tu nombre para mostrar", + "setDisplayNameLabel": "Configurar su nombre para mostrar", "setEmailInput": "Introducir correo electrónico", - "setEmailLabel": "Configurar tu correo electrónico de Gravatar", + "setEmailLabel": "Configurar su correo electrónico de Gravatar", "title": "Perfil" }, + "raisedHand": "Desea hablar", "recording": { "authDropboxText": "Cargar a Dropbox", "availableSpace": "Espacio disponible: {{spaceLeft}} MB (aproximadamente {{duration}} minutos de grabación)", @@ -466,7 +498,9 @@ "live": "EN VIVO", "loggedIn": "Sesión iniciada como {{userName}}", "off": "Grabación detenida", + "offBy": "{{name}} paró la grabación", "on": "Grabación", + "onBy": "{{name}} inició la grabación", "pending": "Preparando para grabar la reunión...", "rec": "REC", "serviceDescription": "El servicio de grabación guardará la grabación", @@ -503,22 +537,26 @@ "title": "Configuración" }, "settingsView": { + "advanced": "Avanzado", "alertOk": "Aceptar", "alertTitle": "Advertencia", "alertURLText": "La dirección URL de servidor introducida no es válida", "buildInfoSection": "Información de compilación", "conferenceSection": "Conferencia", + "disableCallIntegration": "Desactivar la integración nativa de llamadas", + "disableP2P": "Desactiver el modo \"Peer-To-Peer\"", "displayName": "Nombre para mostrar", "email": "Correo electrónico", "header": "Configuración", "profileSection": "Perfil", "serverURL": "Dirección URL del servidor", + "showAdvanced": "Mostrar la configuración avanzada", "startWithAudioMuted": "Iniciar con el audio en silencio", "startWithVideoMuted": "Iniciar con el video en silencio", "version": "Versión" }, "share": { - "dialInfoText": "", + "dialInfoText": "\n\n=====\n\n¿Desea llamar desde su teléfono?\n\n{{defaultDialInNumber}}La lista de números disponibles para la reunión está disponible aquí : \n{{dialInfoPageUrl}}", "mainText": "Haz clic en el enlace siguiente para unirte a la reunión:\n{{roomUrl}}" }, "speaker": "Altavoz", @@ -532,7 +570,7 @@ }, "startupoverlay": { "policyText": " ", - "title": "{{app}} tiene que usar el micrófono y la cámara." + "title": "{{app}} necesita usar el micrófono y la cámara." }, "suspendedoverlay": { "rejoinKeyTitle": "Volver a unirme", @@ -543,21 +581,26 @@ "accessibilityLabel": { "audioOnly": "Alternar solo audio", "audioRoute": "Seleccionar el dispositivo de sonido", - "callQuality": "", + "callQuality": "Ajustar la calidad vídeo", "cc": "Alternar subtítulos", "chat": "Alternar ventana de chat", "document": "Alternar documento compartido", + "download": "Descargar nuestras aplicaciones", "feedback": "Dejar comentario", "fullScreen": "Alternar pantalla completa", "hangup": "Dejar la llamada", + "help": "Ayuda", "invite": "Invitar personas", "kick": "Echar participante", "localRecording": "Alternar controles de grabación local", "lockRoom": "Alternar contraseña de reunión", "moreActions": "Alternar menú de más acciones", "moreActionsMenu": "Menú de más acciones", + "moreOptions": "Mostrar más opciones", "mute": "Alternar silenciar audio", + "muteEveryone": "Silenciar a todos", "pip": "Alternar modo de imagen en imagen", + "privateMessage": "Enviar un mensaje privado", "profile": "Editar el perfil", "raiseHand": "Alternar levantar la mano", "recording": "Alternar grabación", @@ -567,37 +610,49 @@ "shareRoom": "Invitar a alguien", "shareYourScreen": "Alternar uso compartido de pantalla", "shortcuts": "Alternar accesos directos", - "show": "", + "show": "Mostrar en primer plano", "speakerStats": "Alternar estadísticas del altavoz", "tileView": "Alternar vista de mosaico", "toggleCamera": "Alternar cámara", "videomute": "Alternar silenciar video", - "videoblur": "" + "videoblur": "Cambiar el desenfoque del fondo" }, "addPeople": "Agregar personas a la llamada", - "audioOnlyOff": "Deshabilitar modo de solo audio", - "audioOnlyOn": "Habilitar modo de solo audio", + "audioOnlyOff": "Desactivar el modo de ancho de banda bajo", + "audioOnlyOn": "Activar el modo de ancho de banda bajo", "audioRoute": "Seleccionar el dispositivo de sonido", "authenticate": "Autenticar", - "callQuality": "", + "callQuality": "Ajustar la calidad vídeo", "chat": "Abrir/cerrar chat", "closeChat": "Cerrar chat", "documentClose": "Cerrar documento compartido", "documentOpen": "Abrir documento compartido", + "download": "Descargar nuestras aplicaciones", "enterFullScreen": "Ver pantalla completa", "enterTileView": "Introducir vista de mosaico", "exitFullScreen": "Salir de pantalla completa", "exitTileView": "Salir de vista de mosaico", "feedback": "Dejar comentario", "hangup": "Dejar", + "help": "Ayuda", "invite": "Invitar personas", "login": "Inicio de sesión", "logout": "Cierre de sesión", "lowerYourHand": "Bajar la mano", "moreActions": "Más acciones", + "moreOptions": "Más opciones", "mute": "Silenciar/anular silencio", + "muteEveryone": "Silenciar a todos", + "noAudioSignalTitle": "¡No hay ninguna entrada que provenga de su micrófono!", + "noAudioSignalDesc": "Si no lo silenció intencionalmente desde la configuración del sistema o el hardware, considere la posibilidad de cambiar el dispositivo.", + "noAudioSignalDescSuggestion": "Si no lo silenció intencionalmente desde la configuración del sistema o el hardware, considere utilizar el siguiente dispositivo:", + "noAudioSignalDialInDesc": "Usted puede además llamar usando:", + "noAudioSignalDialInLinkDesc" : "Números de llamada", + "noisyAudioInputTitle": "Su micrófono parece estar ruidoso", + "noisyAudioInputDesc": "Parece que su micráfono está haciendo ruido, por favor considere silenciarlo o cambiar de dispositivo.", "openChat": "Abrir chat", "pip": "Introducir modo de imagen en imagen", + "privateMessage": "Enviar un mensaje privado", "profile": "Editar el perfil", "raiseHand": "Levantar/bajar la mano", "raiseYourHand": "Levantar la mano", @@ -615,8 +670,8 @@ "tileViewToggle": "Alternar vista de mosaico", "toggleCamera": "Alternar cámara", "videomute": "Iniciar/detener cámara", - "startvideoblur": "", - "stopvideoblur": "" + "startvideoblur": "Desenfocar mi fondo", + "stopvideoblur": "Desactivar el desenfoque de fondo" }, "transcribing": { "ccButtonTooltip": "Iniciar/detener subtítulos", @@ -654,32 +709,36 @@ }, "videoStatus": { "audioOnly": "AUD", - "audioOnlyExpanded": "Estás en modo de solo audio. Este modo ahorra ancho de banda, pero no podrás ver los videos de otras personas.", - "callQuality": "", + "audioOnlyExpanded": "Se encuentra en el modo de bajo ancho de banda. En este modo sólo recibirá audio y pantalla compartida.", + "callQuality": "Calidad Vídeo", "hd": "HD", + "hdTooltip": "Vista de video en alta definición", "highDefinition": "Alta definición", "labelTooiltipNoVideo": "Sin video", - "labelTooltipAudioOnly": "Modo de solo audio habilitado", + "labelTooltipAudioOnly": "Modo de bajo ancho de banda habilitado", "ld": "LD", + "ldTooltip": "Vista de video en baja definición", "lowDefinition": "Baja definición", "onlyAudioAvailable": "Modo de solo audio disponible", "onlyAudioSupported": "Solo admitimos audio en este navegador.", "p2pEnabled": "Punto a punto habilitado", - "p2pVideoQualityDescription": "", + "p2pVideoQualityDescription": "En el modo \"peer to peer\", la calidad de vídeo recibida sólo se puede alternar entre alta y sólo audio. No se respetarán otros ajustes hasta que se salga del modo \"peer to peer\".", "recHighDefinitionOnly": "Preferiré alta definición.", "sd": "SD", + "sdTooltip": "Vista de video en definición estándar", "standardDefinition": "Definición estándar" }, "videothumbnail": { "domute": "Silenciar", + "domuteOthers": "Silenciar a todos", "flip": "Dar vuelta", "kick": "Echar", "moderator": "Moderador", - "mute": "", + "mute": "Se silenció el participante", "muted": "Silenciado", - "remoteControl": "Control remoto", - "show": "", - "videomute": "" + "remoteControl": "", + "show": "Mostrar en primer plano", + "videomute": "El participante paró su cámara" }, "welcomepage": { "accessibilityLabel": { @@ -693,20 +752,22 @@ }, "calendar": "Calendario", "connectCalendarButton": "Conectar el calendario", - "connectCalendarText": "", + "connectCalendarText": "Conecte su calendario para ver todas sus reuniones en {{app}}. Además, agregue reuniones {{provider}} a su calendario e inícielas con un solo clic.", "enterRoomTitle": "Iniciar una nueva reunión", + "roomNameAllowedChars": "El nombre de la reunión no debe contener ninguno de estos caracteres: ?, &, :, ', \", %, #.", "go": "IR", - "join": "UNIRSE", + "goSmall": "IR", + "join": "CREAR / INGRESAR", "info": "Información", "privacy": "Privacidad", "recentList": "Reciente", "recentListDelete": "Eliminar", - "recentListEmpty": "Tu lista reciente está actualmente vacía. Ten una sesión de chat con tu equipo y encontrarás todas tus reuniones recientes aquí.", - "reducedUIText": "", + "recentListEmpty": "Su lista reciente está actualmente vacía. Abra una sesión de chat con su equipo y encontrará todas sus reuniones recientes aquí.", + "reducedUIText": "¡Bienvenid@ a {{app}}!", "roomname": "Introducir nombre de sala", "roomnameHint": "Introduce el nombre o la dirección URL de la sala a la que deseas unirte. Puedes inventar un nombre, simplemente infórmaselo a las personas con las que te reunirás para que introduzcan el mismo nombre.", "sendFeedback": "Enviar comentario", "terms": "Términos", "title": "Conferencias en video seguras, con gran variedad de funciones y completamente gratuitas" } -} \ No newline at end of file +} diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-et.json b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-et.json new file mode 100644 index 0000000000..2ff8d2fcc4 --- /dev/null +++ b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-et.json @@ -0,0 +1,777 @@ +{ + "addPeople": { + "add": "Lisa", + "countryNotSupported": "Valitud riik ei ole toetatud.", + "countryReminder": "Veendu, et suunakood oleks lisatud.", + "disabled": "Uusi kontakte ei saa kõnesse lisada.", + "failedToAdd": "Uue kontakti kõnesse lisamine ebaõnnestus", + "footerText": "Numbri valimine on keelatud.", + "loading": "Kontaktide otsimine...", + "loadingNumber": "Telefoninumbri kontrollimine...", + "loadingPeople": "Kontaktide otsimine kõnesse lisamiseks...", + "noResults": "Vasteid ei leitud", + "noValidNumbers": "Sisesta telefoninumber", + "searchNumbers": "Lisa telefoninumber", + "searchPeople": "Kontaktide otsimine", + "searchPeopleAndNumbers": "Otsi kontakti või lisa telefoninumber", + "telephone": "Telefoninumber: {{number}}", + "title": "Lisa kontakte kõnesse" + }, + "audioDevices": { + "bluetooth": "Bluetooth", + "headphones": "Kõrvaklapid", + "phone": "Telefon", + "speaker": "Kõlar", + "none": "Heli vahendid pole kättesaadavad" + }, + "audioOnly": { + "audioOnly": "Ainult heli" + }, + "calendarSync": { + "addMeetingURL": "Lisa kõne link", + "confirmAddLink": "Kas soovid käesolevale kõnele lisada lingi?", + "error": { + "appConfiguration": "Ühendus kalendriga ei ole õigesti seadistatud.", + "generic": "Viga! Palun kontrolli kalendri seadistusi või värskenda kalendrit.", + "notSignedIn": "Viga kalendri autentimisel! Palun kontrolli kalendri seadistusi ja logi uuesti sisse." + }, + "join": "Liitu", + "joinTooltip": "Liitu kõnega", + "nextMeeting": "järgmine kõne", + "noEvents": "Uusi kõnesid pole planeeritud..", + "ongoingMeeting": "aktiivne kõne", + "permissionButton": "Ava seadistused", + "permissionMessage": "Planeeritud kõne nägemiseks on vajalik kalendri ligipääsuõigus.", + "refresh": "Värskenda kalendrit", + "today": "Täna" + }, + "chat": { + "error": "Viga: sõnumi \"{{originalText}}\" saatmine ebaõnnestus. Põhjus: {{error}}", + "fieldPlaceHolder": "Sisesta oma sõnum siia", + "messagebox": "Sisesta sõnum", + "messageTo": "Privaatsõnum kasutajale {{recipient}}", + "noMessagesMessage": "Kirjavahetust pole veel alustatud. Alusta kirjavahetust siin!", + "nickname": { + "popover": "Sisesta nimi", + "title": "Sisesta nimi, et kõnega alustada" + }, + "privateNotice": "Privaatsõnum kasutajale {{recipient}}", + "title": "Kõne", + "you": "you" + }, + "chromeExtensionBanner": { + "installExtensionText": "Paigalda Google Kalendri laiendus ja Office 365 integratsioon", + "buttonText": "Paigalda Chrome'i laiendus", + "dontShowAgain": "Ära rohkem näita" + }, + "connectingOverlay": { + "joiningRoom": "Kõnega ühendamine..." + }, + "connection": { + "ATTACHED": "Ühendatud", + "AUTHENTICATING": "Autentimine...", + "AUTHFAIL": "Autentimine ebaõnnestus", + "CONNECTED": "Ühendatud", + "CONNECTING": "Ühendamine...", + "CONNFAIL": "Ühendamine ebaõnnestus", + "DISCONNECTED": "Ühendus katkestatud", + "DISCONNECTING": "Ühenduse katkestamine...", + "ERROR": "Viga", + "FETCH_SESSION_ID": "Sessiooni-ID püüdmine...", + "GET_SESSION_ID_ERROR": "Sessiooni-ID püüdmisel tekkis viga: {{code}}", + "GOT_SESSION_ID": "Sessiooni-ID püüdmine... Tehtud", + "LOW_BANDWIDTH": "Kasutaja {{displayName}} video on ülekandekiiruse parandamiseks välja lülitatud" + }, + "connectionindicator": { + "address": "Aadress:", + "bandwidth": "Eeldatav ülekandekiirus:", + "bitrate": "Andmeedastuskiirus:", + "bridgeCount": "Serverite arv: ", + "connectedTo": "Ühendatud:", + "e2e_rtt": "E2E RTT:", + "framerate": "Ekraani eraldusvõime:", + "less": "Näita vähem", + "localaddress": "Lokaalne aadress:", + "localaddress_plural": "Lokaalsed aadressid:", + "localport": "Lokaalne port:", + "localport_plural": "Lokaalsed pordid:", + "more": "Näita rohkem", + "packetloss": "Andmepaketi kaotus:", + "quality": { + "good": "Hea", + "inactive": "Mitteaktiivne", + "lost": "Kaotatud", + "nonoptimal": "Mitteoptimaalne", + "poor": "Nõrk" + }, + "remoteaddress": "Kaugtöö aadress:", + "remoteaddress_plural": "Kaugtöö aadressid:", + "remoteport": "Kaugtöö port:", + "remoteport_plural": "Kaugtöö pordid:", + "resolution": "Resolutsioon:", + "status": "Ühendus:", + "transport": "Transport:", + "transport_plural": "Transpordid:" + }, + "dateUtils": { + "earlier": "Varem", + "today": "Täna", + "yesterday": "Eile" + }, + "deepLinking": { + "appNotInstalled": "Kõnega liitumiseks läbi mobiiltelefoni on vaja paigaldada {{app}} rakendus.", + "description": "Midagi ei juhtunud? Proovisime ühendust luua töölaua rakendusega. Proovi uuesti või käivita {{app}} rakendus.", + "descriptionWithoutWeb": "Midagi ei juhtunud? Televastuvõttu prooviti avada töölaua rakendusest {{app}}.", + "downloadApp": "Laadi rakendus alla", + "launchWebButton": "Käivita veebis", + "openApp": "Jätka töölaua rakendusega", + "title": "Kõne avamine rakenduses {{app}}...", + "tryAgainButton": "Proovi töölaua rakendusega uuesti " + }, + "defaultLink": "nt {{url}}", + "defaultNickname": "nt. Mari Maasikas", + "deviceError": { + "cameraError": "Ei saanud kaameraga ühendust", + "cameraPermission": "Puudub õigus kasutada kaamerat", + "microphoneError": "Ei saanud mikrofoniga ühendust", + "microphonePermission": "Puudub õigus kasutada mikrofoni" + }, + "deviceSelection": { + "noPermission": "Luba pole antud", + "previewUnavailable": "Eelvaade pole kättesaadav", + "selectADevice": "Vali seade", + "testAudio": "Mängi testimiseks heli" + }, + "dialog": { + "accessibilityLabel": { + "liveStreaming": "Otseülekanne" + }, + "allow": "Luba", + "alreadySharedVideoMsg": "Teine kasutaja jagab videot. Selles kõnes on ainult ühe video jagamine korraga lubatud.", + "alreadySharedVideoTitle": "Korraga on lubatud ainult ühe video jagamine.", + "applicationWindow": "Rakenduse aken", + "Back": "Tagasi", + "cameraConstraintFailedError": "Kaamera ei vasta teatud piirangutele.", + "cameraNotFoundError": "Kaamerat ei leitud.", + "cameraNotSendingData": "Ei saa ühendust kaameraga. Kontrolli, kas vahend on mõne teise rakenduse poolt kasutusel, vali menüüst teine vahend või värskenda rakendust.", + "cameraNotSendingDataTitle": "Kaamera pole kättesaadav.", + "cameraPermissionDeniedError": "Kaamera kasutamine on keelatud. Kõnega on võimalik ühineda ilma kaamerata. Kaamera kasutamiseks vajuta aadressiribal kaamera nupule.", + "cameraUnknownError": "Kaamerat ei saa kasutada! Põhjus teadmata.", + "cameraUnsupportedResolutionError": "Kaamera ei toeta nõutud resolutsiooni.", + "Cancel": "Tühista", + "close": "Sulge", + "conferenceDisconnectMsg": "Kontrolli võrguühendust. Taasühendamine {{seconds}}...", + "conferenceDisconnectTitle": "Ühendus on katkenud.", + "conferenceReloadMsg": "Lahenduse otsime. Taasühendus {{seconds}} sek...", + "conferenceReloadTitle": "Midagi läks valesti!", + "confirm": "Kinnita", + "confirmNo": "Ei", + "confirmYes": "Kinnita", + "connectError": "Oih, midagi läks valesti! Kõnega ühendamine ebaõnnestus.", + "connectErrorWithMsg": "Oih, midagi läks valesti! Kõnega ühendamine ebaõnnestus. Põhjus: {{msg}}.", + "connecting": "Ühendamine.", + "contactSupport": "Võta ühendust kasutustoega", + "copy": "Kopeeri", + "dismiss": "Lõpeta", + "displayNameRequired": "Nimi on kohustuslik", + "done": "Valmis", + "enterDisplayName": "Sisesta nimi", + "error": "Viga", + "externalInstallationMsg": "Töölauale on vaja paigaldada jagamise laiendus.", + "externalInstallationTitle": "Laiendus on kohustuslik", + "goToStore": "Mine veebipoodi", + "gracefulShutdown": "Rakendus on hoolduseks ajutiselt maas. Proovi hiljem uuesti!", + "IamHost": "Mina olen võõrustaja", + "incorrectRoomLockPassword": "Vale parool", + "incorrectPassword": "Vale kasutajanimi või parool", + "inlineInstallationMsg": "Töölauale tuleb paigaldada jagamise laiendus.", + "inlineInstallExtension": "Paiglada kohe", + "internalError": "Oih, midagi läks valesti! Veateate: {{error}}.", + "internalErrorTitle": "Sisemine viga", + "kickMessage": "Oih, oled kõnest eemaldatud!", + "kickParticipantButton": "Eemalda kõnest", + "kickParticipantDialog": "Oled kindel, et tahad kasutaja kõnest eemaldada?", + "kickParticipantTitle": "Eemalda kasutaja kõnest?", + "kickTitle": "Kõnest eemaldatud", + "liveStreaming": "Otseülekanne", + "liveStreamingDisabledForGuestTooltip": "Külalised ei saa otseülekannet alustada.", + "liveStreamingDisabledTooltip": "Otseülekande alustamine on keelatud.", + "lockMessage": "Ebaõnnestunud lukustada kõnet.", + "lockRoom": "Lisa kõnele parool", + "lockTitle": "Lukustamine ebaõnnestus", + "logoutQuestion": "Oled kindel, et tahad kõne peatada ja välja logida?", + "logoutTitle": "Logi välja", + "maxUsersLimitReached": "Maksimaalne kõnes osalejate arv on täis. Võta ühendust kõne omanikuga või proovi hiljem uuesti!", + "maxUsersLimitReachedTitle": "Maksimaalne kõnes osalejate arv on täis", + "micConstraintFailedError": "Mikrofon ei vasta teatud piirangutele.", + "micNotFoundError": "Mikrofoni ei leitud.", + "micNotSendingData": "Ei saa ühendust mikrofoniga. Vali menüüst teine vahend või värskenda rakendust.", + "micNotSendingDataTitle": "Mikrofon pole kättesaadav.", + "micPermissionDeniedError": "Mikrofoni kasutamine on keelatud. Kõnega on võimalik ühineda, aga teised Sind ei kuule. Mikrofoni kasutamiseks vajuta aadressiribal mikrofoni nupule.", + "micUnknownError": "Mikrofoni ei saa kasutada. Põhjus teadmata.", + "muteEveryoneElseDialog": "Peale mikrofoni vaigistamist saab ainult kasutaja ise oma mikrofoni tagasi sisse lülitada.", + "muteEveryoneElseTitle": "Vaigista kõikide teiste mikrofonid, välja arvatud {{whom}}?", + "muteEveryoneDialog": "Oled kindel, et soovid kõikide teiste mikrofonid vaigistada? Neid saab tagasi sisse lülitada ainult kasutaja ise.", + "muteEveryoneTitle": "Vaigista kõik?", + "muteEveryoneSelf": "Sina ise", + "muteEveryoneStartMuted": "Edaspidi alustavad kõik välja lülitatud mikrofonidega", + "muteParticipantBody": "Teiste kasutajate mikrofoni ei saa sisse lülitada. Kasutaja saab ise otsutada, kas mikrofon on sees või väljas.", + "muteParticipantButton": "Lülita mikrofon välja", + "muteParticipantDialog": "Oled kindel, et soovid kasutaja mikrofoni välja lülitada? Seda saab ainult kasutaja ise sisse tagasi lülitada.", + "muteParticipantTitle": "Lülita kasutaja mikrofon välja?", + "Ok": "Jah", + "passwordLabel": "Parool", + "passwordNotSupported": "Kõnele ei saa parooli määrata.", + "passwordNotSupportedTitle": "Parooli lisamine pole toetatud", + "passwordRequired": "Parool on kohustuslik", + "popupError": "Modaalaknad on veebilehitsejas keelatud. Palun luba modaalakende kasutamine veebilehitseja turvalisuse seadistuses ning proovi uuesti.", + "popupErrorTitle": "Modaalaknad on keelatud", + "recording": "Salvetamine", + "recordingDisabledForGuestTooltip": "Külalised ei saa kõne salvestada.", + "recordingDisabledTooltip": "Kõne salvestamine on keelatud.", + "rejoinNow": "Ühine uuesti", + "remoteControlAllowedMessage": "{{user}} andis kaugjuhtimiseks loa!", + "remoteControlDeniedMessage": "{{user}} keelas kaugjuhtimise!", + "remoteControlErrorMessage": "Viga kaugjuhtimiseks loa küsimisel kasutajalt {{user}}!", + "remoteControlRequestMessage": "Kas lubad kasutajal {{user}} oma töölauda kaugjuhtida?", + "remoteControlShareScreenWarning": "Kui vajutad nupule \"Luba\", siis jagad oma ekraani.", + "remoteControlStopMessage": "Kaugjuhtimise sessioon on lõppenud!", + "remoteControlTitle": "Kaugjuhtimine", + "Remove": "Eemalda", + "removePassword": "Eemalda parool", + "removeSharedVideoMsg": "Oled kindel, et soovid oma jagatud video eemaldada?", + "removeSharedVideoTitle": "Eemalda jagatud video", + "reservationError": "Broneerimise süsteemi viga", + "reservationErrorMsg": "Veakood: {{code}}, sõnum: {{msg}}", + "retry": "Proovi uuesti", + "screenSharingFailedToInstall": "Oih, ekraanijagamise laienduse paigaldamine ebaõnnestus!", + "screenSharingFailedToInstallTitle": "Ekraanijagamise laienduse paigaldamine ebaõnnestus", + "screenSharingFirefoxPermissionDeniedError": "Ekraani jagamisega läks midagi valesti! Veendu, et oled ekraani jagamiseks loa andnud.", + "screenSharingFirefoxPermissionDeniedTitle": "Oih, ekraani jagamist ei saanud alustada!", + "screenSharingPermissionDeniedError": "Oih, midagi läks valesti ekraanijagamise laienduse õigustega! Värskenda ja proovi uuesti.", + "sendPrivateMessage": "Sulle saabus privaatsõnum. Kas soovid vastata privaatselt või avalikult?", + "sendPrivateMessageCancel": "Saada sõnum avalikult", + "sendPrivateMessageOk": "Saada sõnum privaatselt", + "sendPrivateMessageTitle": "Saada privaatselt?", + "serviceUnavailable": "Teenus pole kättesaadav", + "sessTerminated": "Kõne lõpetatud", + "Share": "Jaga", + "shareVideoLinkError": "Sisesta korrektne Youtube’i link.", + "shareVideoTitle": "Jaga videot", + "shareYourScreen": "Jaga ekraani", + "shareYourScreenDisabled": "Ekraani jagamine on keelatud.", + "shareYourScreenDisabledForGuest": "Külalised ei saa ekraani jagada.", + "startLiveStreaming": "Alusta otseülekannet", + "startRecording": "Alusta salvestamist", + "startRemoteControlErrorMessage": "Kaugjuhtimise sessiooni alustamisel tekkis viga!", + "stopLiveStreaming": "Lõpeta otseülekanne", + "stopRecording": "Lõpeta salvestamine", + "stopRecordingWarning": "Oled kindel, et soovid salvestamist lõpetada?", + "stopStreamingWarning": "Oled kindel, et soovid otseülekannet lõpetada?", + "streamKey": "Otseülekande võti", + "Submit": "Esita", + "thankYou": "Aitäh, et kasutasid rakendust {{appName}}!", + "token": "token", + "tokenAuthFailed": "Kahjuks ei ole kõnega ühinemine lubatud.", + "tokenAuthFailedTitle": "Autentimine ebaõnnestus", + "transcribing": "Transkribeerimine", + "unlockRoom": "Eemalda kõne parool", + "userPassword": "kasutaja parool", + "WaitForHostMsg": "Kõne {{room}} ei ole veel alanud. Autendi ennast, kui oled võõrustaja. Külalisena oota, kuni võõrustaja saabub.", + "WaitForHostMsgWOk": "Kõne {{room}} ei ole veel alanud. Kui oled võõrustaja, vajuta OK, et ennast autentida. Külalisena oota, kuni võõrustaja saabub.", + "WaitingForHost": "Võõrustaja ootamine...", + "Yes": "Jah", + "yourEntireScreen": "Täisekraan" + }, + "dialOut": { + "statusMessage": "on staatusega {{status}}" + }, + "documentSharing": { + "title": "Jagatud dokument" + }, + "feedback": { + "average": "Keskmine", + "bad": "Halb", + "detailsLabel": "Kirjelda täpsemalt.", + "good": "Hea", + "rateExperience": "Hinda kõne kvaliteeti", + "veryBad": "Väga halb", + "veryGood": "Väga hea" + }, + "incomingCall": { + "answer": "Vasta", + "audioCallTitle": "Sissetulev kõne", + "decline": "Lõpeta", + "productLabel": "Jitsi", + "videoCallTitle": "Sissetulev videokõne" + }, + "info": { + "accessibilityLabel": "Näita infot", + "addPassword": "Lisa parool", + "cancelPassword": "Tühista parool", + "conferenceURL": "Link:", + "country": "Riik", + "dialANumber": "Kõnega ühinemiseks vali number ja sisesta pin-kood.", + "dialInConferenceID": "PIN:", + "dialInNotSupported": "Oih, sissehelistamine ei ole toetatud!", + "dialInNumber": "Sissehelistamine:", + "dialInSummaryError": "Sissehelistamise info pole kättesaadav. Proovi hiljem uuesti!", + "dialInTollFree": "Maksuvaba", + "genericError": "Oih, midagi läks valesti!", + "inviteLiveStream": "Otseülekande nägemiseks vajuta lingile: {{url}}", + "invitePhone": "Üks klikk heliga sissehelistamiseks: {{number}},,{{conferenceID}}#", + "invitePhoneAlternatives": "Otsid teist sissehelistamise numbrit?\nVaata sissehelistamise numbreid: {{url}}\n\n\nKui helistad läbi ruumi, ühine kõnega väljalülitatud mikrofoni režiimis: {{silentUrl}}", + "inviteURLFirstPartGeneral": "Oled kõnesse kutsutud.", + "inviteURLFirstPartPersonal": "{{name}} kutsub Sind kõnesse.\n", + "inviteURLSecondPart": "\nÜhine kõnega:\n{{url}}\n", + "liveStreamURL": "Otseülekanne:", + "moreNumbers": "Rohkem numbreid", + "noNumbers": "Sissehelistamise numbrid puuduvad.", + "noPassword": "Andmed puuduvad", + "noRoom": "Sissehelistamise ruum pole täpsustatud.", + "numbers": "Sissehelistamise numbrid", + "password": "Parool:", + "title": "Jaga", + "tooltip": "Jaga linki ja helista, et kõnega ühineda", + "label": "Kõne info" + }, + "inviteDialog": { + "alertText": "Osade kasutajate kutsumine ebaõnnestus.", + "header": "Kutsu", + "searchCallOnlyPlaceholder": "Sisesta telefoninumber", + "searchPeopleOnlyPlaceholder": "Otsi kasutajaid", + "searchPlaceholder": "Kasutaja telefoninumber", + "send": "Saada" + }, + "inlineDialogFailure": { + "msg": "Midagi läks valesti.", + "retry": "Proovi uuesti", + "support": "Kasutajatugi", + "supportMsg": "Kui see juhtub uuesti, võta ühendust" + }, + "keyboardShortcuts": { + "focusLocal": "Keskendu videole", + "focusRemote": "Keskendu teise kasutaja videole", + "fullScreen": "Ava/sulge täisekraani vaade", + "keyboardShortcuts": "Klaviatuuri kiirvalikud", + "localRecording": "Näita/peida salvestamise võimalused", + "mute": "Lülita mikrofon sisse/välja", + "pushToTalk": "Vajuta, et rääkida", + "raiseHand": "Tõsta/langeta kätt", + "showSpeakerStats": "Näita kõnelejate statistikat", + "toggleChat": "Ava/sulge vestluse aken", + "toggleFilmstrip": "Näita/peida video eelvaade", + "toggleScreensharing": "Vaheta kaamera ja ekraanijagamise vahel", + "toggleShortcuts": "Näita/peida klaviatuuri kiirvalikud", + "videoMute": "Lülita kaamera sisse/välja", + "videoQuality": "Halda kõne kvaliteeti" + }, + "liveStreaming": { + "busy": "Toimub ülekande ressursi vabastamine. Proovi mõne minuti pärast uuesti.", + "busyTitle": "Kõik ülekandjad on hetkel hõivatud", + "changeSignIn": "Vaheta kontot.", + "choose": "Vali otseülekanne", + "chooseCTA": "Vali ülekande viis. Oled sisse logitud e-mailiga {{email}}.", + "enterStreamKey": "Sisesta siia oma YouTube’i ülekande võti.", + "error": "Otseülekanne ebaõnnestus. Proovi uuesti.", + "errorAPI": "YouTube’i kanaliga ühendumisel tekkis viga. Palun logi uuesti sisse.", + "errorLiveStreamNotEnabled": "Otseülekanne ei ole e-mailiga {{email}} sisse lülitatud. Luba kasutajaga otseülekanded või vaheta kontot.", + "expandedOff": "Otseülekanne on peatatud", + "expandedOn": "Kõnest tehakse otseülekanne YouTube’i.", + "expandedPending": "Otseülekanne algab...", + "failedToStart": "Otseülekandega alustamine ebaõnnestus.", + "getStreamKeyManually": "Ülekandjaid ei leitud. Leia YouTube’st otseülekande võti.", + "invalidStreamKey": "Otseülekande võti võib olla vale.", + "off": "Otseülekanne on peatatud", + "offBy": "{{name}} lõpetas otseülekande", + "on": "Otseülekanne", + "onBy": "{{name}} alustas otseülekandega", + "pending": "Otseülekande alustamine...", + "serviceName": "Otseülekande teenus", + "signedInAs": "Oled sisse logitud kasutajana:", + "signIn": "Google’ga sisselogimine", + "signInCTA": "Logi sisse või sisesta otseülekande võti YouTube’st.", + "signOut": "Logi välja", + "start": "Alusta otseülekannet.", + "streamIdHelp": "Mis see on?", + "unavailableTitle": "Otseülekanne pole kättesaadav." + }, + "localRecording": { + "clientState": { + "off": "Väljas", + "on": "Sees", + "unknown": "Teadmata" + }, + "dialogTitle": "Kohalikud salvestamise nupud", + "duration": "Kestvus", + "durationNA": "N/A", + "encoding": "Kodeerimine", + "label": "LOR", + "labelToolTip": "Kohalik salvestamine on alustatud", + "localRecording": "Kohalik salvestamine", + "me": "Mina", + "messages": { + "engaged": "Local recording engaged.", + "finished": "Salvestamise sessioon {{token}} on lõppenud. Palun saada salvestatud fail moderaatorile.", + "finishedModerator": "Salvestamise sessioon {{token}} on lõppenud ja salvestatud. Küsi teistelt kontaktidelt nende koopiaid.", + "notModerator": "Sa ei ole moderaator. Sa ei saa alustada ega lõpetada kohalikku salvestamist." + }, + "moderator": "Moderaator", + "no": "Ei", + "participant": "Osaleja", + "participantStats": "Osaleja andmed", + "sessionToken": "Sessiooni token", + "start": "Alusta salvestamist", + "stop": "Lõpeta salvestamine", + "yes": "Jah" + }, + "lockRoomPassword": "parool", + "lockRoomPasswordUppercase": "Parool", + "me": "mina", + "notify": { + "connectedOneMember": "{{name}} ühines kõnega", + "connectedThreePlusMembers": "{{name}} ja {{count}} teist kasutajat ühines kõnega", + "connectedTwoMembers": "{{first}} ja {{second}} ühinesid kõnega", + "disconnected": "lahti ühendatud", + "focus": "Konverentsi fookus", + "focusFail": "{{component}} pole kättesaadav - proovi uuesti {{ms}} sekundi pärast.", + "grantedTo": "Moderaatori õigused on antud kasutajale {{to}}!", + "invitedOneMember": "{{name}} on kutsutud", + "invitedThreePlusMembers": "{{name}} ja {{count}} teist kasutajat on kutsutud", + "invitedTwoMembers": "{{first}} ja {{second}} on kutsutud", + "kickParticipant": "{{kicked}} eemaldati kõnest kasutaja {{kicker}} poolt", + "me": "Mina", + "moderator": "Moderaatori õigused jagatud!", + "muted": "Alustasid kõnet väljalülitatud mikrofoniga.", + "mutedTitle": "Mikrofon on välja lülitatud!", + "mutedRemotelyTitle": "Sinu mikrofon lülitati välja kasutaja {{participantDisplayName}} poolt!", + "mutedRemotelyDescription": "Saad alati oma mikrofoni sisse lülitada, kui soovid rääkida. Lülita mikrofon peale rääkimist uuesti välja liigse müra ja kaja vältimiseks.", + "passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) eemaldatud teise kasutaja poolt", + "passwordSetRemotely": "$t(lockRoomPasswordUppercase) lisatud teise kasutaja poolt", + "raisedHand": "{{name}} soovib rääkida.", + "somebody": "Keegi", + "startSilentTitle": "Ühinesid ilma mikrofonita!", + "startSilentDescription": "Mikrofoni kasutamiseks ühine kõnega uuesti", + "suboptimalExperienceDescription": "Rakenduse {{appName}} parima kvaliteedi tagamiseks palun kasuta ühte nendest veebilehitsejatest.", + "suboptimalExperienceTitle": "Veebilehitseja hoiatus", + "unmute": "Lülita mikrofon sisse", + "newDeviceCameraTitle": "Leitud uus kaamera", + "newDeviceAudioTitle": "Leitud uus heliseadeldis", + "newDeviceAction": "Kasuta" + }, + "passwordSetRemotely": "määratud teise kasutaja poolt", + "passwordDigitsOnly": "Kuni {{number}} tähemärki", + "poweredby": "teieni toodud", + "presenceStatus": { + "busy": "Hõivatud", + "calling": "Helistamine...", + "connected": "Ühendatud", + "connecting": "Ühendamine...", + "connecting2": "Ühendamine*...", + "disconnected": "Lahti ühendatud", + "expired": "Aegunud", + "ignored": "Eiratud", + "initializingCall": "Kõne alustamine...", + "invited": "Kutsutud", + "rejected": "Tagasi lükatud", + "ringing": "Kutsumine..." + }, + "profile": { + "setDisplayNameLabel": "Sisesta nimi", + "setEmailInput": "Sisesta e-mail", + "setEmailLabel": "Sisesta gravatar email", + "title": "Profiil" + }, + "raisedHand": "Soovin rääkida", + "recording": { + "authDropboxText": "Lisa Dropbox’i", + "availableSpace": "Vaba ruum: {{spaceLeft}} MB (ca {{duration}} minutit salvestamist)", + "beta": "BETA", + "busy": "Salvestamise ressursi vabastamine... Proovi mõne minuti pärast uuesti.", + "busyTitle": "Kõik salvestajad on praegu kinni", + "error": "Salvestamine ebaõnnestus. Proovi uuesti.", + "expandedOff": "Salvestamine peatatud", + "expandedOn": "Kõne salvestatakse.", + "expandedPending": "Salvestamine on alustatud...", + "failedToStart": "Salvestamine ebaõnnestus", + "fileSharingdescription": "Jaga salvestust kõnelejatega", + "live": "Otse", + "loggedIn": "Sisseloginud kasutajana {{userName}}", + "off": "Salvestamine on lõpetatud", + "offBy": "{{name}} lõpetas salvestamise", + "on": "Salvestatakse", + "onBy": "{{name}} alustas salvestamist", + "pending": "Kõne salvestamise ettevalmistus...", + "rec": "REC", + "serviceDescription": "Salvestus toimub teenuse kaudu", + "serviceName": "Salvestamise teenus", + "signIn": "Logi sisse", + "signOut": "Logi välja", + "unavailable": "Oih! {{serviceName}} ei ole hetkel kättesaadav! Proovi hiljem uuesti.", + "unavailableTitle": "Salvestamine ei ole võimalik." + }, + "sectionList": { + "pullToRefresh": "Tõmba uuendamiseks" + }, + "settings": { + "calendar": { + "about": "Rakenduse {{appName}} kalender kasutab turvalist ühendust ning näeb eesolevaid kõnesid.", + "disconnect": "Ühenda lahti", + "microsoftSignIn": "Logi sisse Microsoft’i kontoga", + "signedIn": "Hetkel nähakse kasutaja {{email}} kalendrit. Kalendrikutsete peitmiseks vajuta “Ühenda lahti” nupule.", + "title": "Kalender" + }, + "devices": "Seaded", + "followMe": "Kõik jälgivad mind", + "language": "Keel", + "loggedIn": "Logitud sisse nimega: {{name}}", + "moderator": "Moderaator", + "more": "Rohkem", + "name": "Nimi", + "noDevice": "Andmed puuduvad", + "selectAudioOutput": "Heli väljund", + "selectCamera": "Kaamera", + "selectMic": "Mikrofon", + "startAudioMuted": "Kõik alustavad väljalülitatud mikrofoniga", + "startVideoMuted": "Kõik alustavad väljalülitatud kaameraga", + "title": "Seaded" + }, + "settingsView": { + "advanced": "Täpsem", + "alertOk": "OK", + "alertTitle": "Hoiatus", + "alertURLText": "Sisestatud link ei ole õige", + "buildInfoSection": "Versioon", + "conferenceSection": "Kõne", + "disableCallIntegration": "Lülita kohaliku kõne integratsioon välja", + "disableP2P": "Lülita otseühendus välja", + "displayName": "Kasutatav nimi", + "email": "E-mail", + "header": "Seaded", + "profileSection": "Profiil", + "serverURL": "Serveri link", + "showAdvanced": "Näita täpsemaid seadistusi", + "startWithAudioMuted": "Alusta väljalülitatud heliga", + "startWithVideoMuted": "Alusta väljalülitatud videoga", + "version": "Versioon" + }, + "share": { + "dialInfoText": "\n\n=====\n\nSoovid sisse helistada oma telefonilt?\n\n{{defaultDialInNumber}}Vajuta lingile, et näha telefoninumbreid sisse helistamiseks\n{{dialInfoPageUrl}}", + "mainText": "Vajuta lingile, et kõnega ühineda:\n{{roomUrl}}" + }, + "speaker": "Kõneleja", + "speakerStats": { + "hours": "{{count}}t", + "minutes": "{{count}}m", + "name": "Nimi", + "seconds": "{{count}}s", + "speakerStats": "Kõneleja andmed", + "speakerTime": "Kõnelemise aeg" + }, + "startupoverlay": { + "policyText": " ", + "title": "{{app}} vajab ligipääsu mikrofonile ja kaamerale." + }, + "suspendedoverlay": { + "rejoinKeyTitle": "Ühine uuesti", + "text": "Vajuta Ühine uuesti nupule, et uuesti ühineda.", + "title": "Kõne katkestati, sest arvuti läks magama." + }, + "toolbar": { + "accessibilityLabel": { + "audioOnly": "Kasuta ainult heli", + "audioRoute": "Vali heli vahend", + "callQuality": "Halda kõne kvaliteeti", + "cc": "Kasuta subtiitreid", + "chat": "Kasuta vestluse akent", + "document": "Kasuta jagatud dokumente", + "download": "Laadi rakendus alla", + "feedback": "Jäta tagasiside", + "fullScreen": "Kasuta täisekraani", + "hangup": "Lahku kõnest", + "help": "Abi", + "invite": "Kutsu inimesi", + "kick": "Eemalda kõneleja", + "localRecording": "Näita salvestamise paneeli", + "lockRoom": "Kasuta kõne parooli", + "moreActions": "Kasuta toimingute menüüd", + "moreActionsMenu": "Toimingute menüü", + "moreOptions": "Näita rohkem valikuid", + "mute": "Lülita heli välja", + "muteEveryone": "Vaigista kõikide mikrofonid", + "pip": "Kasuta pilt-pildis vaadet", + "privateMessage": "Saada privaatsõnum", + "profile": "Muuda profiili", + "raiseHand": "Käe tõstmine", + "recording": "Salvestamine", + "remoteMute": "Lülita kasutaja mikrofon välja", + "Settings": "Seadistused", + "sharedvideo": "Kasuta Youtube’i video jagamist", + "shareRoom": "Kutsu", + "shareYourScreen": "Jaga ekraani", + "shortcuts": "Kasuta kiirvalikuid", + "show": "Näita laval", + "speakerStats": "Kõnelejate statistika", + "tileView": "Paneelvaade", + "toggleCamera": "Kasuta kaamerat", + "videomute": "Video väljalülitamine", + "videoblur": "Video hägustamine" + }, + "addPeople": "Lisa kõnesse inimesi", + "audioOnlyOff": "Lülita “ainult heli” valik välja", + "audioOnlyOn": "Lülita “ainult heli” valik sisse", + "audioRoute": "Vali heli vahend", + "authenticate": "Autendi", + "callQuality": "Halda kõne kvaliteeti", + "chat": "Ava/sulge vestlus", + "closeChat": "Sulge vestlus", + "documentClose": "Sulge jagatud dokument", + "documentOpen": "Ava jagatud dokument", + "download": "Laadi rakendus alla", + "enterFullScreen": "Vaata täisekraanil", + "enterTileView": "Vaata paneelvaates", + "exitFullScreen": "Välju täisekraani vaatest", + "exitTileView": "Välju paneelvaatest", + "feedback": "Jäta tagasiside", + "hangup": "Lahku", + "help": "Abi", + "invite": "Kutsu", + "login": "Logi sisse", + "logout": "Logi välja", + "lowerYourHand": "Langeta kätt", + "moreActions": "Rohkem tegevusi", + "moreOptions": "Rohkem valikuid", + "mute": "Mikrofon sisse/välja", + "muteEveryone": "Vaigista kõikide mikrofonid", + "noAudioSignalTitle": "Mikrofon ei püüa sisendit kinni!", + "noAudioSignalDesc": "Kui Sa ei lülitanud mikrofoni seadistustest tahtlikult välja, kaalu seadme vahetamist.", + "noAudioSignalDescSuggestion": "Kui Sa ei lülitanud mikrofoni seadistustest tahtlikult välja, kaalu seadme vahetamist.", + "noAudioSignalDialInDesc": "Võid sisse helistada valides:", + "noAudioSignalDialInLinkDesc" : "Sissehelistamise numbrid", + "noisyAudioInputTitle": "Mikrofonis on müra! Tundub, et läbi mikrofoni kostub palju helisid. Kaalu mikrofoni välja lülitamist või seadme vahetamist.", + "noisyAudioInputDesc": "Tundub, et läbi mikrofoni kostub palju helisid. Kaalu mikrofoni välja lülitamist või seadme vahetamist.", + "openChat": "Ava vestlus", + "pip": "Ava pilt-pildis vaade", + "privateMessage": "Saada privaatsõnum", + "profile": "Muuda profiili", + "raiseHand": "Tõsta/langeta kätt", + "raiseYourHand": "Tõsta kätt", + "Settings": "Seaded", + "sharedvideo": "Jaga YouTube’i videot", + "shareRoom": "Kutsu", + "shortcuts": "Vaata kiirvalikuid", + "speakerStats": "Kõneleja andmed", + "startScreenSharing": "Alust ekraani jagamist", + "startSubtitles": "Alusta subtiitrite näitamist", + "stopScreenSharing": "Lõpeta ekraani jagamine", + "stopSubtitles": "Lõpeta subtiitrite näitamine", + "stopSharedVideo": "Lõpeta YouTube’i video", + "talkWhileMutedPopup": "Soovid rääkida? Mikrofon on välja lülitatud.", + "tileViewToggle": "Näita paneelvaadet", + "toggleCamera": "Kasuta kaamerat", + "videomute": "Kaamera sisse/välja", + "startvideoblur": "Tausta hägustamine", + "stopvideoblur": "Lülita tausta hägustamine välja" + }, + "transcribing": { + "ccButtonTooltip": "Subtiitrid sisse/välja", + "error": "Transkribeerimine ebaõnnestus. Proovi uuesti.", + "expandedLabel": "Transkribeerimine on sisse lülitatud", + "failedToStart": "Transkribeerimise alustamine ebaõnnestus", + "labelToolTip": "Kõne transkribeeritakse", + "off": "Transkribeerimine peatatud", + "pending": "Transkribeerimise ettevalmistus...", + "start": "Alusta subtiitrite kuvamist", + "stop": "Lõpeta subtiitrite kuvamine", + "tr": "TR" + }, + "userMedia": { + "androidGrantPermissions": "Vali Luba, kui veebilehitseja küsib nõusolekut.", + "chromeGrantPermissions": "Vali Luba, kui veebilehitseja küsib nõusolekut.", + "edgeGrantPermissions": "Vali Jah, kui veebilehitseja küsib nõusolekut.", + "electronGrantPermissions": "Luba kasutada kaamerat ja mikrofoni", + "firefoxGrantPermissions": "Vali Jaga valitud vahendit, kui veebilehitseja küsib nõusolekut.", + "iexplorerGrantPermissions": "Vali OK, kui veebilehitseja küsib nõusolekut.", + "nwjsGrantPermissions": "Luba kasutada kaamerat ja mikrofoni", + "operaGrantPermissions": "Vali Luba, kui veebilehitseja küsib nõusolekut.", + "react-nativeGrantPermissions": "Vali Luba, kui veebilehitseja küsib nõusolekut.", + "safariGrantPermissions": "Vali OK, kui veebilehitseja küsib nõusolekut." + }, + "videoSIPGW": { + "busy": "Vabastatakse ressurssi... Proovi mõne minuti pärast uuesti.", + "busyTitle": "Ruumi teenus on hetkel hõivatud", + "errorAlreadyInvited": "{{displayName}} on juba kutsutud", + "errorInvite": "Ühendus ei ole veel saavutatud. Proovi hiljem uuesti.", + "errorInviteFailed": "Probleemi lahendatakse. Proovi hiljem uuesti.", + "errorInviteFailedTitle": "Kasutaja {{displayName}} kutsumine ebaõnnestus", + "errorInviteTitle": "Ruumi kutsumine ebaõnnestus", + "pending": "{{displayName}} on kutsutud" + }, + "videoStatus": { + "audioOnly": "AUD", + "audioOnlyExpanded": "Kasutad kõnes ainult heli. See hõivab ülekandekiirust vähem, aga video jagamine on välja lülitatud.", + "callQuality": "Kõne kvaliteet", + "hd": "HD", + "hdTooltip": "Video vaatamine kõrgkvaliteediga", + "highDefinition": "Kõrgresolutsioon", + "labelTooiltipNoVideo": "Video puudub", + "labelTooltipAudioOnly": "Valitud on “ainult heli” seadistus", + "ld": "LD", + "ldTooltip": "Video vaatamine madala kvaliteediga", + "lowDefinition": "Madal", + "onlyAudioAvailable": "Saab kasutada ainult heli", + "onlyAudioSupported": "Selles veebilehitsejas on toetatud ainult heli.", + "p2pEnabled": "Otseühendus on sisse lülitatud", + "p2pVideoQualityDescription": "Otseühenduse režiimis saab vastuvõetava kõne heli olla “ainult heli“, või kõrge. Teisi seadistusi ei saa valida.", + "recHighDefinitionOnly": "Eelistan kõrgresolutsiooni.", + "sd": "SD", + "sdTooltip": "Video vaatamine vaikekvaliteediga", + "standardDefinition": "Vaike resolutsioon" + }, + "videothumbnail": { + "domute": "Lülita mikrofon välja", + "domuteOthers": "Vaigista teiste mikrofonid", + "flip": "Pööra", + "kick": "Eemalda kõnest", + "moderator": "Moderaator", + "mute": "Kasutaja mikrofon välja lülitatud", + "muted": "Mikrofon välja lülitatud", + "remoteControl": "Kaugjuhtimine", + "show": "Näita laval", + "videomute": "Kasutaja on kaamera peatanud" + }, + "welcomepage": { + "accessibilityLabel": { + "join": "Vajuta, et ühineda", + "roomname": "Sisesta ruumi nimi" + }, + "appDescription": "Lase käia, tee videoülekanne kogu meeskonnaga! Kutsu kõik, keda soovid. Rakendus {{app}} on krüpteeritud. 100% vabavara ülekannete tegemiseks, mida saab kasutada iga päev tasuta - ilma konto loomiseta.", + "audioVideoSwitch": { + "audio": "Heli", + "video": "Video" + }, + "calendar": "Kalender", + "connectCalendarButton": "Ühenda kalender", + "connectCalendarText": "Ühenda oma kalender, et kõiki kohtumisi näha rakenduses {{app}}. Lisa {{provider}} kohtumised kalendrisse ja alusta kõnesid ühe klikiga.", + "enterRoomTitle": "Alusta uut kõnet", + "roomNameAllowedChars": "Televastuvõtu nimi ei tohi sisaldada sümboleid: ?, &, :, ', \", %, #.", + "go": "Mine", + "goSmall": "Mine", + "join": "Ühine", + "info": "Info", + "privacy": "Privaatsus", + "recentList": "Hiljutised", + "recentListDelete": "Kustuta", + "recentListEmpty": "Hiljutiste valikute nimekiri on tühi. Vestle kasutajatega ja leia oma hiljutised kõned siit.", + "reducedUIText": "Tere tulemast rakendusse {{app}}!", + "roomname": "Sisesta ruumi nimi", + "roomnameHint": "Sisesta ruumi nimi või link, millega soovid ühinega. Võid nime välja mõelda, aga anna osalejatele sellest teada, et nad saaksid ruumiga ühineda.", + "sendFeedback": "Saada tagasiside", + "terms": "Tingimused", + "title": "Turvaline, võimalusi täis ja tasuta keskkond videokõnede jaoks." + }, + "lonelyMeetingExperience": { + "button": "Kutsu teisi", + "youAreAlone": "Asud hetkel ruumis üksi" + } +} diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-fr.json b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-fr.json index f323a06c96..6057fc14ae 100644 --- a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-fr.json +++ b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-fr.json @@ -2,7 +2,7 @@ "addPeople": { "add": "Inviter", "countryNotSupported": "Nous ne supportons pas encore cette destination.", - "countryReminder": "Appel hors États-Unis? Veuillez commencer avec le code du pays!", + "countryReminder": "Appel hors des États-Unis ? Veuillez commencer avec le code du pays !", "disabled": "Vous ne pouvez pas inviter quelqu'un.", "failedToAdd": "Erreur lors de l'ajout des participants", "footerText": "Appels sortants désactivés", @@ -29,7 +29,7 @@ }, "calendarSync": { "addMeetingURL": "Ajouter un lien de conférence", - "confirmAddLink": "Voulez-vous ajouter un lien Jitsi à cet événement?", + "confirmAddLink": "Voulez-vous ajouter un lien Jitsi à cet événement ?", "error": { "appConfiguration": "l'intégration du calendrier n'est pas correctement configurée", "generic": "Une erreur s'est produite. Veuillez vérifier les paramètres de votre calendrier ou tenter de l'actualiser.", @@ -46,13 +46,23 @@ "today": "Aujourd'hui" }, "chat": { - "error": "Erreur : votre message \"{{originalText}}\" n'a pas été envoyé. Raison : {{error}}", + "error": "Erreur : votre message n'a pas été envoyé. Raison : {{error}}", + "fieldPlaceHolder": "Tapez votre message ici", "messagebox": "Saisissez un message", + "messageTo": "Message privé à {{recipient}}", + "noMessagesMessage": "Il n'y a pas encore de messages dans cette réunion. Démarrez une conversation ici !", "nickname": { "popover": "Choisissez un pseudonyme", "title": "Entrez un pseudonyme pour utiliser le chat" }, - "title": "Chat" + "privateNotice": "Message privé à {{recipient}}", + "title": "Chat", + "you": "vous" + }, + "chromeExtensionBanner": { + "installExtensionText": "", + "buttonText": "", + "dontShowAgain": "" }, "connectingOverlay": { "joiningRoom": "Connexion à la réunion..." @@ -92,10 +102,10 @@ }, "remoteaddress": "Adresse distante :", "remoteaddress_plural": "Adresses distantes :", - "remoteport": "Port distant:", - "remoteport_plural": "Ports distants:", + "remoteport": "Port distant :", + "remoteport_plural": "Ports distants :", "resolution": "Résolution :", - "status": "Connexion:", + "status": "Connexion :", "transport": "Transport :", "transport_plural": "Transports :" }, @@ -106,8 +116,8 @@ }, "deepLinking": { "appNotInstalled": "Vous avez besoin de l'application mobile {{app}} pour participer à cette réunion avec votre téléphone.", - "description": "Rien ne s'est passé? Nous avons essayé de lancer votre réunion dans l'application de bureau {{app}}. Essayez à nouveau ou lancez-la dans l'application web {{app}}.", - "descriptionWithoutWeb": "Rien ne s'est passé? Nous avons essayé de démarrer votre réunion dans l'application bureau {{app}}.", + "description": "Rien ne s'est passé ? Nous avons essayé de lancer votre réunion dans l'application de bureau {{app}}. Essayez à nouveau ou lancez-la dans l'application web {{app}}.", + "descriptionWithoutWeb": "Rien ne s'est passé ? Nous avons essayé de démarrer votre réunion dans l'application bureau {{app}}.", "downloadApp": "Télécharger l'application", "launchWebButton": "Lancer dans le navigateur", "openApp": "Continuer vers l'application", @@ -126,7 +136,7 @@ "noPermission": "Permission non accordée", "previewUnavailable": "Aperçu non disponible", "selectADevice": "Sélectionner un périphérique", - "testAudio": "Lire un audio de test" + "testAudio": "Tester la sortie audio" }, "dialog": { "accessibilityLabel": { @@ -148,7 +158,7 @@ "close": "Fermer", "conferenceDisconnectMsg": "Veuillez vérifier votre connexion réseau. Reconnexion dans {{seconds}} sec...", "conferenceDisconnectTitle": "Vous avez été déconnecté.", - "conferenceReloadMsg": "Nous somme en train de régler cela. Reconnexion dans {{seconds}} sec...", + "conferenceReloadMsg": "On essaie d'arranger ça. Reconnexion dans {{seconds}} secondes...", "conferenceReloadTitle": "Malheureusement, un problème est survenu", "confirm": "Confirmer", "confirmNo": "Non", @@ -159,7 +169,7 @@ "contactSupport": "Contacter le support", "copy": "Copier", "dismiss": "Rejeter", - "displayNameRequired": "Salut! Quel est votre nom?", + "displayNameRequired": "Salut! Quel est votre nom ?", "done": "Terminé", "enterDisplayName": "Merci de saisir votre nom ici", "error": "Erreur", @@ -177,13 +187,13 @@ "kickMessage": "Vous pouvez contacter {{participantDisplayName}} pour plus de détails.", "kickParticipantButton": "Expulser", "kickParticipantDialog": "Êtes-vous sûr(e) de vouloir expulser ce participant ?", - "kickParticipantTitle": "Expulser ce participant?", + "kickParticipantTitle": "Expulser ce participant ?", "kickTitle": "Oups! vous avez été expulsé(e) par {{participantDisplayName}}", "liveStreaming": "Direct", "liveStreamingDisabledForGuestTooltip": "Les invités ne peuvent démarrer la diffusion en direct.", "liveStreamingDisabledTooltip": "La diffusion en direct est désactivé", "lockMessage": "Impossible de verrouiller la conférence.", - "lockRoom": "Ajouter la réunion $t(lockRoomPasswordUppercase)", + "lockRoom": "Ajouter un $t(lockRoomPassword) à la réunion ", "lockTitle": "Échec du verrouillage", "logoutQuestion": "Voulez-vous vraiment vous déconnecter et arrêter la conférence ?", "logoutTitle": "Déconnexion", @@ -195,14 +205,20 @@ "micNotSendingDataTitle": "Votre micro est désactivé par les paramètres de votre système", "micPermissionDeniedError": "Vous n'avez pas autorisé l'utilisation de votre microphone. Vous pouvez toujours participer à la conférence, mais les autres ne vont pas vous entendre. Utilisez le bouton du microphone dans la barre d'adresse pour résoudre ce problème.", "micUnknownError": "Vous ne pouvez pas utiliser le microphone pour une raison inconnue.", - "muteParticipantBody": "Vous ne pourrez plus réactiver leurs micros, mais ils peuvent l'activer par eux-même à tout moment.", + "muteEveryoneElseDialog": "Une fois leur micro coupé, vous ne pourrez plus le réactiver, mais ils pourront l'activer par eux-mêmes à tout moment.", + "muteEveryoneElseTitle": "Couper le micro de tout le monde sauf de {{whom}} ?", + "muteEveryoneDialog": "Etes-vous sûr de vouloir couper les micros de tout le monde ? Vous ne pourrez plus réactiver leur micro, mais ils pourront l'activer par eux-mêmes à tout moment.", + "muteEveryoneTitle": "Couper le micro de tout le monde ?", + "muteEveryoneSelf": "vous", + "muteEveryoneStartMuted": "Tout le monde démarre avec le micro coupé", + "muteParticipantBody": "Vous ne pourrez plus réactiver son micro, mais il pourra l'activer par lui-même à tout moment.", "muteParticipantButton": "Couper le micro", "muteParticipantDialog": "Êtes-vous sûr(e) de vouloir couper le micro de ce participant ? Seul le participant pourra ensuite réactiver son micro à tout moment.", - "muteParticipantTitle": "Couper le micro de ce participant?", + "muteParticipantTitle": "Couper le micro de ce participant ?", "Ok": "Ok", "passwordLabel": "$t(lockRoomPasswordUppercase)", "passwordNotSupported": "La définition d'un $t(lockRoomPassword) de réunion n'est pas prise en charge.", - "passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) n'est pas supporté", + "passwordNotSupportedTitle": "L'ajout d'un $t(lockRoomPassword) n'est pas supporté", "passwordRequired": "$t(lockRoomPasswordUppercase) requis", "popupError": "Votre navigateur bloque les fenêtres pop-up. Veuillez autoriser les fenêtres pop-up dans les paramètres de votre navigateur.", "popupErrorTitle": "Pop-up bloquée", @@ -210,15 +226,15 @@ "recordingDisabledForGuestTooltip": "Les invités ne peuvent enregistrer.", "recordingDisabledTooltip": "L'enregistrement est désactivé.", "rejoinNow": "Rejoindre maintenant", - "remoteControlAllowedMessage": "Une erreur s'est produite lors de la demande d’autorisation de prise en main à distance avec {{user}}!", - "remoteControlDeniedMessage": "{{user}} a refusé votre demande de prise en main à distance!", - "remoteControlErrorMessage": "Une erreur s'est produite lors de la demande d’autorisation de prise en main à distance avec {{user}}!", - "remoteControlRequestMessage": "Voulez-vous autoriser {{user}} à contrôler votre bureau?", - "remoteControlShareScreenWarning": "Si vous appuyez sur \"Autoriser\" vous allez partager votre écran!", + "remoteControlAllowedMessage": "{{user}} a accepté votre demande de prise en main à distance !", + "remoteControlDeniedMessage": "{{user}} a refusé votre demande de prise en main à distance !", + "remoteControlErrorMessage": "Une erreur s'est produite lors de la demande d’autorisation de prise en main à distance avec {{user}} !", + "remoteControlRequestMessage": "Voulez-vous autoriser {{user}} à contrôler votre bureau ?", + "remoteControlShareScreenWarning": "Si vous appuyez sur \"Autoriser\", vous allez partager votre écran !", "remoteControlStopMessage": "La prise en main à distance est terminée!", "remoteControlTitle": "Contrôle de bureau à distance", "Remove": "Supprimer", - "removePassword": "Supprimer $t(lockRoomPassword)", + "removePassword": "Supprimer le $t(lockRoomPassword)", "removeSharedVideoMsg": "Voulez-vous vraiment supprimer votre vidéo partagée ?", "removeSharedVideoTitle": "Supprimer la vidéo partagée", "reservationError": "Erreur du système de réservation", @@ -229,6 +245,10 @@ "screenSharingFirefoxPermissionDeniedError": "Quelque chose s'est mal passé pendant que nous essayions de partager votre écran. S'il vous plaît assurez-vous que vous nous avez donné la permission de le faire.", "screenSharingFirefoxPermissionDeniedTitle": "Oups! Nous ne pouvions pas démarrer le partage d'écran!", "screenSharingPermissionDeniedError": "Oups! Une erreur s'est produite avec vos autorisations d'extension de partage d'écran. Veuillez rafraîchir et réessayer.", + "sendPrivateMessage": "Vous avez récemment reçu un message privé. Aviez-vous l'intention d'y répondre en privé, ou vouliez-vous envoyer votre message au groupe ?", + "sendPrivateMessageCancel": "Envoyer au groupe", + "sendPrivateMessageOk": "Envoyer en privé", + "sendPrivateMessageTitle": "Envoyer en privé ?", "serviceUnavailable": "Service indisponible", "sessTerminated": "Appel terminé", "Share": "Partager", @@ -242,8 +262,8 @@ "startRemoteControlErrorMessage": "Une erreur est survenue lors de la tentative de démarrage de la session de contrôle à distance!", "stopLiveStreaming": "Arrêter la diffusion en direct", "stopRecording": "Arrêter l'enregistrement", - "stopRecordingWarning": "Désirez-vous vraiment arrêter l'enregistrement?", - "stopStreamingWarning": "Désirez-vous vraiment arrêter le direct?", + "stopRecordingWarning": "Désirez-vous vraiment arrêter l'enregistrement ?", + "stopStreamingWarning": "Désirez-vous vraiment arrêter le direct ?", "streamKey": "Clé Live stream", "Submit": "Soumettre", "thankYou": "Merci d'avoir utilisé {{appName}} !", @@ -251,7 +271,7 @@ "tokenAuthFailed": "Désolé, vous n'êtes pas autorisé à rejoindre cette conversation.", "tokenAuthFailedTitle": "Échec de l'authentification", "transcribing": "Transcription", - "unlockRoom": "Supprimer $t(lockRoomPassword) de la réunion", + "unlockRoom": "Supprimer le $t(lockRoomPassword) de la réunion", "userPassword": "mot de passe utilisateur", "WaitForHostMsg": "La conférence {{room}} n'a pas encore commencé. Si vous en êtes l'hôte, veuillez vous authentifier. Sinon, veuillez attendre son arrivée.", "WaitForHostMsgWOk": "La conférence {{room}} n'a pas encore commencé. Si vous en êtes l'hôte, veuillez appuyer sur Ok pour vous authentifier. Sinon, veuillez attendre son arrivée.", @@ -262,6 +282,9 @@ "dialOut": { "statusMessage": "est maintenant {{status}}" }, + "documentSharing": { + "title": "Document partagé" + }, "feedback": { "average": "Moyen", "bad": "Mauvais", @@ -280,20 +303,20 @@ }, "info": { "accessibilityLabel": "Afficher les informations", - "addPassword": "Ajouter $t(lockRoomPassword)", - "cancelPassword": "Annuler $t(lockRoomPassword)", - "conferenceURL": "Lien:", + "addPassword": "Ajouter un $t(lockRoomPassword)", + "cancelPassword": "Supprimer le $t(lockRoomPassword)", + "conferenceURL": "Lien :", "country": "Pays", "dialANumber": "Pour rejoindre votre réunion, composez l'un de ces numéros, puis saisissez le code confidentiel.", - "dialInConferenceID": "PIN:", + "dialInConferenceID": "PIN :", "dialInNotSupported": "Désolé, l'accès par téléphone n'est pas pris en charge pour l'instant.", - "dialInNumber": "Composer:", + "dialInNumber": "Composer :", "dialInSummaryError": "Erreur lors de la récupération des informations de numérotation. Veuillez réessayer plus tard.", "dialInTollFree": "Numéro gratuit", "genericError": "Oups, quelque chose a mal tourné.", "inviteLiveStream": "Pour voir la diffusion en direct de cette réunion, cliquez sur ce lien : {{url}}", "invitePhone": "Pour rejoindre depuis un téléphone, saisissez : {{number}},,{{conferenceID}}#\n", - "invitePhoneAlternatives": "Vous cherchez un numéro d'appel différent?\nAfficher les numéros d'appel de la réunion: {{url}}\n\n\nSi vous appelez également via un téléphone de salle, vous pouvez vous connecter sans audio: {{silentUrl}}", + "invitePhoneAlternatives": "Vous cherchez un numéro d'appel différent ?\nAfficher les numéros d'appel de la réunion: {{url}}\n\n\nSi vous appelez également via un téléphone de salle, vous pouvez vous connecter sans audio: {{silentUrl}}", "inviteURLFirstPartGeneral": "Vous êtes invité(e) à participer à une réunion.", "inviteURLFirstPartPersonal": "{{name}} vous invite à une réunion.\n", "inviteURLSecondPart": "\nRejoindre la réunion:\n{{url}}\n", @@ -303,7 +326,7 @@ "noPassword": "Aucun", "noRoom": "Aucune réunion n'a été spécifiée pour l'appel entrant.", "numbers": "Numéros d'appel", - "password": "$t(lockRoomPasswordUppercase):", + "password": "$t(lockRoomPasswordUppercase) :", "title": "Partager", "tooltip": "Partager le lien et les informations de connexion pour cette conférence", "label": "Information de la réunion" @@ -356,7 +379,9 @@ "getStreamKeyManually": "Nous n'avons pu récupérer aucun flux en direct. Essayez d’obtenir votre clé de diffusion en direct sur YouTube.", "invalidStreamKey": "La clé de diffusion en direct n'est peut-être pas correcte.", "off": "Le Streaming a été arrêté", + "offBy": "{{name}} a arrêté la diffusion en continu", "on": "Direct", + "onBy": "{{name}} démarré la diffusion en continu", "pending": "Commencer le direct...", "serviceName": "Service de diffusion en direct", "signedInAs": "Vous êtes connecté en tant que :", @@ -364,7 +389,7 @@ "signInCTA": "Connectez vous ou entrez votre clé de flux live provenant de Youtube.", "signOut": "Se déconnecter", "start": "Démarrer la diffusion en direct", - "streamIdHelp": "Qu'est-ce que c'est?", + "streamIdHelp": "Qu'est-ce que c'est ?", "unavailableTitle": "Le Streaming est indisponible" }, "localRecording": { @@ -378,11 +403,11 @@ "durationNA": "N/A", "encoding": "Encodage", "label": "ENR-LOC", - "labelToolTip": "L'enregistrement local est engagé", + "labelToolTip": "L'enregistrement local est démarré", "localRecording": "Enregistrement local", "me": "Moi", "messages": { - "engaged": "Enregistrement local engagé.", + "engaged": "L'enregistrement local a démarré.", "finished": "L'enregistrement de la session {{token}} s'est terminé. Merci d'envoyer le fichier au modérateur.", "finishedModerator": "L'enregistrement de la session {{token}} s'est terminé. La piste a bien été sauvegardée. Merci de demander aux autres participants de soumettre leurs enregistrements.", "notModerator": "Vous n'êtes pas le modérateur. Vous ne pouvez pas démarrer ou arrêter un enregistrement local." @@ -414,11 +439,11 @@ "me": "Moi", "moderator": "Droits modérateur accordés !", "muted": "Vous avez commencé la conversation en muet.", - "mutedTitle": "Vous êtes en muet !", + "mutedTitle": "Vôtre micro est coupé !", "mutedRemotelyTitle": "Votre micro a été coupé par {{participantDisplayName}}!", "mutedRemotelyDescription": "Vous pouvez toujours activer votre micro pour prendre la parole. Désactivez votre micro quand vous terminez pour éviter les bruits parasites.", - "passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) a été supprimé par un autre participant", - "passwordSetRemotely": "$t(lockRoomPasswordUppercase) défini par un autre participant", + "passwordRemovedRemotely": "Le $t(lockRoomPassword) a été supprimé par un autre participant", + "passwordSetRemotely": "Un $t(lockRoomPassword) a été défini par un autre participant", "raisedHand": "{{name}} aimerait prendre la parole.", "somebody": "Quelqu'un", "startSilentTitle": "Vous avez rejoint sans sortie audio!", @@ -469,7 +494,9 @@ "live": "DIRECT", "loggedIn": "Connecté en tant que {{userName}}", "off": "Enregistrement arrêté", + "offBy": "{{name}} a arrêté l'enregistrement", "on": "Enregistrement", + "onBy": "{{name}} a démarré l'enregistrement", "pending": "Préparation de l'enregistrement de la réunion...", "rec": "REC", "serviceDescription": "Votre enregistrement sera enregistré par le service dédié.", @@ -506,22 +533,26 @@ "title": "Paramètres" }, "settingsView": { + "advanced": "Avancé", "alertOk": "D'accord", "alertTitle": "Avertissement", "alertURLText": "L'URL du serveur est invalide", "buildInfoSection": "Informations de build", "conferenceSection": "Conférence", + "disableCallIntegration": "Désactiver l'intégration d'appels native", + "disableP2P": "Désactiver le mode pair à pair", "displayName": "Pseudo", "email": "Email", "header": "Paramètres", "profileSection": "Profil", "serverURL": "URL du serveur", - "startWithAudioMuted": "Commencez avec la vidéo en sourdine", + "showAdvanced": "Afficher les paramètres avancés", + "startWithAudioMuted": "Commencez avec l'audio en sourdine", "startWithVideoMuted": "Commencez avec la vidéo en sourdine", "version": "Version" }, "share": { - "dialInfoText": "\n\n=====\n\nVoulez-vous appeler depuis votre téléphone?\n\n{{defaultDialInNumber}}Cliquez sur ce lien pour afficher les numéros d'appels pour cette réunion\n{{dialInfoPageUrl}}", + "dialInfoText": "\n\n=====\n\nVoulez-vous appeler depuis votre téléphone ?\n\n{{defaultDialInNumber}}Cliquez sur ce lien pour afficher les numéros d'appels pour cette réunion\n{{dialInfoPageUrl}}", "mainText": "Cliquez sur le lien suivant pour rejoindre une conférence :\n{{roomUrl}}" }, "speaker": "Haut-parleur", @@ -550,9 +581,11 @@ "cc": "Activer/désactiver les sous-titres", "chat": "Afficher/masquer la discussion instantanée", "document": "Activer/désactiver le document partagé", + "download": "Télécharger nos applications", "feedback": "Laisser des commentaires", "fullScreen": "Activer/désactiver le plein écran", "hangup": "Quitter la conversation", + "help": "Aide", "invite": "Inviter des participants", "kick": "Expulser le participant", "localRecording": "Activer/désactiver les contrôles d'enregistrement local", @@ -561,6 +594,7 @@ "moreActionsMenu": "Menu d'actions supplémentaires", "mute": "Activer/désactiver l'audio", "pip": "Activer/désactiver le mode Picture in Picture", + "privateMessage": "Envoyer un message privé", "profile": "Éditer votre profil", "raiseHand": "Lever/baisser la main", "recording": "Activer/désactiver l'enregistrement", @@ -573,7 +607,7 @@ "show": "Afficher en premier plan", "speakerStats": "Afficher/cacher les statistiques de parole", "tileView": "Activer/désactiver la vue mosaïque", - "toggleCamera": "Activer/désactiver la caméra", + "toggleCamera": "Changer de caméra", "videomute": "Activer/désactiver la vidéo", "videoblur": "Activer/désactiver le flou de la vidéo" }, @@ -587,20 +621,30 @@ "closeChat": "Fermer le chat", "documentClose": "Fermer le document partagé", "documentOpen": "Ouvrir le document partagé", + "download": "Télécharger nos applications", "enterFullScreen": "Afficher en plein écran", "enterTileView": "Accéder au mode mosaïque", "exitFullScreen": "Quitter le mode plein écran", "exitTileView": "Quitter le mode mosaïque", "feedback": "Laisser des commentaires", "hangup": "Quitter", + "help": "Aide", "invite": "Inviter des participants", "login": "Connexion", "logout": "Déconnexion", "lowerYourHand": "Baisser la main", "moreActions": "Plus d'actions", + "moreOptions": "Plus d'options", "mute": "Muet / Actif", + "muteEveryone": "Couper le micro de tout le monde", + "noAudioSignalTitle": "Il n'y a pas d'entrée provenant de votre micro !", + "noAudioSignalDesc": "Si vous n'avez pas délibérément coupé le son des paramètres du système ou du matériel, envisagez de changer le périphérique.", + "noAudioSignalDescSuggestion": "Si vous n'avez pas délibérément coupé le son des paramètres du système ou du matériel, pensez à utiliser le périphérique suivant :", + "noisyAudioInputTitle": "", + "noisyAudioInputDesc": "", "openChat": "Ouvrir le chat", "pip": "Entrer en mode Picture-in-Picture", + "privateMessage": "Envoyer un message privé", "profile": "Éditer votre profil", "raiseHand": "Lever / Baisser la main", "raiseYourHand": "Lever la main", @@ -614,9 +658,9 @@ "stopScreenSharing": "Arrêter le partage d'écran", "stopSubtitles": "Désactiver les sous-titres", "stopSharedVideo": "Arrêter la vidéo YouTube", - "talkWhileMutedPopup": "Vous voulez parler? Vous êtes en muet.", + "talkWhileMutedPopup": "Vous voulez parler ? Vôtre micro est coupé.", "tileViewToggle": "Activer/désactiver la vue mosaïque", - "toggleCamera": "Activer/désactiver la caméra", + "toggleCamera": "Changer de caméra", "videomute": "Démarrer / Arrêter la caméra", "startvideoblur": "Flouter mon arrière plan", "stopvideoblur": "Désactiver le flou d'arrière-plan" @@ -678,12 +722,13 @@ }, "videothumbnail": { "domute": "Couper le micro", + "domuteOthers": "Couper le micro de tous les autres", "flip": "Balancer", "kick": "Exclure", "moderator": "Moderateur", "mute": "Un participant a coupé son micro", "muted": "Muet", - "remoteControl": "Contrôle à distance", + "remoteControl": "", "show": "Afficher en premier plan", "videomute": "Le participant a arrêté la caméra" }, @@ -692,7 +737,7 @@ "join": "Touchez pour rejoindre", "roomname": "Saisissez un nom de salle" }, - "appDescription": "Allez-y, chat vidéo avec toute l'équipe. En fait, invitez tout le monde que vous connaissez. {{app}} est une solution de visioconférence entièrement cryptée et 100% open source que vous pouvez utiliser toute la journée, tous les jours, gratuitement— aucun compte requis.", + "appDescription": "Allez-y, chat vidéo avec toute l'équipe. En fait, invitez tout le monde que vous connaissez. {{app}} est une solution de visioconférence entièrement chiffrée et 100% open source que vous pouvez utiliser toute la journée, tous les jours, gratuitement— aucun compte requis.", "audioVideoSwitch": { "audio": "Voix", "video": "Vidéo" @@ -701,8 +746,10 @@ "connectCalendarButton": "Connecter votre calendrier", "connectCalendarText": "Connectez-vous à votre calendrier pour afficher toutes les réunions {{app}}. Ajoutez également les réunions de {{provider}} à votre calendrier et démarrez-les d'un simple clic.", "enterRoomTitle": "Démarrer une nouvelle réunion", + "roomNameAllowedChars": "Le nom de la réunion ne doit contenir aucun de ces caractères : ?, &, :, ', \", %, #.", "go": "Créer", - "join": "REJOINDRE", + "goSmall": "Créer", + "join": "CRÉER / REJOINDRE", "info": "Infos", "privacy": "Confidentialité", "recentList": "Récent", @@ -714,5 +761,12 @@ "sendFeedback": "Envoyer votre avis", "terms": "Termes", "title": "Vidéoconférence Sécurisée, entièrement en vedette et gratuite" + }, + "lonelyMeetingExperience": { + "button": "Inviter d'autres personnes", + "youAreAlone": "Vous êtes le seul participant de la réunion" + }, + "helpView": { + "header": "Centre d'aide" } -} \ No newline at end of file +} diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-frCA.json b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-frCA.json index 27d3a65524..f79a94004d 100644 --- a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-frCA.json +++ b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-frCA.json @@ -1,6 +1,6 @@ { "addPeople": { - "add": "", + "add": "Inviter", "countryNotSupported": "Nous ne prenons pas encore cette destination en charge.", "countryReminder": "Vous appelez en dehors des É.-U.? Veuillez vous assurer de commencer par le code de pays!", "disabled": "Vous ne pouvez pas inviter d'autres personnes.", @@ -21,14 +21,15 @@ "bluetooth": "Bluetooth", "headphones": "Écouteurs", "phone": "Téléphone", - "speaker": "" + "speaker": "Intervenant", + "none": "Aucun périphérique audio n'est disponible" }, "audioOnly": { - "audioOnly": "Audio seulement" + "audioOnly": "Bande passante faible" }, "calendarSync": { "addMeetingURL": "Ajouter un lien de réunion", - "confirmAddLink": "Voulez-vous ajouter un lien Jitsi à cet événement?", + "confirmAddLink": "Voulez-vous ajouter un lien Jitsi Meet à cet événement ?", "error": { "appConfiguration": "L'intégration de l'agenda n'est pas correctement configurée.", "generic": "Une erreur s'est produite. Veuillez vérifier vos paramètres d'agenda ou essayer de rafraîchir l'agenda.", @@ -42,16 +43,21 @@ "permissionButton": "Ouvrir les paramètres", "permissionMessage": "L'autorisation de l'Agenda est nécessaire pour consulter vos réunions dans l'application.", "refresh": "Rafraîchir l'agenda", - "today": "" + "today": "Aujourd'hui" }, "chat": { - "error": "Erreur : votre message \"{{originalText}}\" n'a pas été envoyé. Raison : {{error}}", + "error": "Erreur : votre message n'a pas été envoyé. Raison : {{error}}", + "fieldPlaceHolder": "Tapez votre message ici", "messagebox": "Tapez un message", + "messageTo": "", + "noMessagesMessage": "Il n'y a pas encore de messages dans cette réunion. Démarrez une conversation ici !", "nickname": { "popover": "Choisissez un nom d'affichage", "title": "Entrer un nom d'affichage pour utiliser le clavardage" }, - "title": "Clavardage" + "privateNotice": "Message privé à {{recipient}}", + "title": "Clavardage", + "you": "vous" }, "connectingOverlay": { "joiningRoom": "Connexion à la réunion en cours..." @@ -59,13 +65,13 @@ "connection": { "ATTACHED": "Joint", "AUTHENTICATING": "Authentification", - "AUTHFAIL": "", - "CONNECTED": "", - "CONNECTING": "", + "AUTHFAIL": "Échec de l'authentification", + "CONNECTED": "Connecté", + "CONNECTING": "Connexion en cours", "CONNFAIL": "Échec de la connexion", - "DISCONNECTED": "", + "DISCONNECTED": "Déconnecté", "DISCONNECTING": "Déconnexion en cours", - "ERROR": "", + "ERROR": "Erreur", "RECONNECTING": "Un problème de réseau est survenu. Reconnexion en cours..." }, "connectionindicator": { @@ -76,28 +82,27 @@ "connectedTo": "Connecté à :", "framerate": "Fréquence d'images :", "less": "Afficher moins", - "localaddress_plural": "Adresse locale :", - "localaddress": "Adresses locales :", - "localport_plural": "Port local :", - "localport": "Ports locaux :", + "localaddress": "Adresse locale :", + "localaddress_plural": "Adresses locales :", + "localport": "Port local :", + "localport_plural": "Ports locaux :", "more": "Afficher plus", "packetloss": "Perte de paquet :", "quality": { - "good": "", + "good": "Bonne", "inactive": "Inactive", "lost": "Perdue", "nonoptimal": "Non-optimale", "poor": "Faible" }, - "remoteaddress_plural": "Adresse distante :", - "remoteaddress": "Adresses distantes :", - "remoteport_plural": "Port distant :", - "remoteport": "Ports distants :", + "remoteaddress": "Adresse distante :", + "remoteaddress_plural": "Adresses distantes :", + "remoteport": "Port distant :", + "remoteport_plural": "Ports distants :", "resolution": "Résolution :", "status": "Connexion :", - "transport_plural": "Tranport :", - "transport": "Transports :", - "turn": " (tour)" + "transport": "Tranport :", + "transport_plural": "Transports :" }, "dateUtils": { "earlier": "Plus tôt", @@ -107,7 +112,7 @@ "deepLinking": { "appNotInstalled": "L'application mobile {{app}} est nécessaire pour rejoindre cette réunion sur votre téléphone.", "description": "Il ne s'est rien passé? Nous avons essayés de démarrer votre réunion dans l'application de bureau {{app}}. Veuillez réessayer ou démarrer la réunion dans l'application Web {{app}}.", - "descriptionWithoutWeb": "", + "descriptionWithoutWeb": "Rien ne s'est passé? Nous avons essayé de démarrer votre réunion dans l'application bureau {{app}}.", "downloadApp": "Télécharger l'application", "launchWebButton": "Démarrer dans l'application Web", "openApp": "Continuer vers l'application", @@ -115,6 +120,7 @@ "tryAgainButton": "Veuillez réessayer sur votre ordinateur" }, "defaultLink": "p. ex. {{url}}", + "defaultNickname": "p. ex. Jane Pink", "deviceError": { "cameraError": "Échec de l'accès à votre caméra", "cameraPermission": "Erreur lors de l'obtention de l'autorisation de la caméra", @@ -150,24 +156,24 @@ "conferenceReloadMsg": "Nous tentons de résoudre le problème. Reconnexion dans {{seconds}} sec...", "conferenceReloadTitle": "Malheureusement, une erreur s'est produite.", "confirm": "Confirmer", - "confirmNo": "", - "confirmYes": "", + "confirmNo": "Non", + "confirmYes": "Oui", "connectError": "Oups! Une erreur s'est produite. La connexion à la conférence a échouée.", "connectErrorWithMsg": "Oups! Une erreur s'est produite. La connexion à la conférence a échoué : {{msg}}", "connecting": "Connexion en cours", "contactSupport": "Communiquez avec le service de soutien", "copy": "Copier", - "dismiss": "", + "dismiss": "Rejeter", "displayNameRequired": "Un nom d'affichage est requis", "done": "Terminé", "enterDisplayName": "Veuillez saisir votre nom d'affichage", "error": "Erreur", - "externalInstallationMsg": "", + "externalInstallationMsg": "Vous devez installer notre extension de partage de bureau.", "externalInstallationTitle": "Extension requise", "goToStore": "Rendez-vous sur notre boutique en ligne", "gracefulShutdown": "Notre service est actuellement hors service pour l'entretien. Veuillez réessayer plus tard.", "IamHost": "Je suis l'hôte", - "incorrectRoomLockPassword": "", + "incorrectRoomLockPassword": "Mot de passe incorrect", "incorrectPassword": "Nom d'utilisateur ou mot de passe incorrect", "inlineInstallationMsg": "Vous devez installer notre extension de partage de bureau.", "inlineInstallExtension": "Installer maintenant", @@ -178,14 +184,14 @@ "kickParticipantDialog": "Êtes-vous certain de vouloir expulser ce participant?", "kickParticipantTitle": "Expulser ce membre?", "kickTitle": "Expulsé de la réunion", - "liveStreaming": "", + "liveStreaming": "Diffusion en direct", "liveStreamingDisabledForGuestTooltip": "Les invités ne peuvent pas démarrer la diffusion en direct.", "liveStreamingDisabledTooltip": "Démarrage de la diffusion en direct désactivé.", "lockMessage": "Échec du verrouillage de la conférence.", "lockRoom": "Ajouter un mot de passe à la réunion", "lockTitle": "Échec du verrouillage", "logoutQuestion": "Êtes-vous certain de vouloir vous déconnecter et arrêter la conférence?", - "logoutTitle": "", + "logoutTitle": "Déconnexion", "maxUsersLimitReached": "La limite du nombre maximum de membres a été atteinte. La conférence est pleine. Veuillez communiquer avec l'hôte de la réunion ou réessayer plus tard.", "maxUsersLimitReachedTitle": "Limite du nombre de membres maximum atteinte", "micConstraintFailedError": "Votre micro ne répond pas à certaines exigences", @@ -195,7 +201,7 @@ "micPermissionDeniedError": "Vous n'avez pas accordé l'autorisation d'utilisation de votre micro. Vous pouvez toujours rejoindre la conférence, mais les autres membres ne pourront pas vous entendre. Utilisez le bouton de caméra dans la barre d'adresse pour remédier à cela.", "micUnknownError": "Impossible d'utiliser le micro pour une raison inconnue.", "muteParticipantBody": "Vous ne pourrez pas réactiver leur micro, mais ils peuvent le réactiver eux-mêmes à tout moment.", - "muteParticipantButton": "", + "muteParticipantButton": "Discrétion", "muteParticipantDialog": "Êtes-vous certain de vouloir désactiver le micro de ce participant? Vous ne pourrez pas le réactiver, mais il peut le réactiver lui-même à tout moment.", "muteParticipantTitle": "Désactiver le micro de ce membre?", "Ok": "OK", @@ -205,7 +211,7 @@ "passwordRequired": "Mot de passe requis", "popupError": "Votre navigateur bloque les fenêtres surgissantes provenant de ce site. Veuillez activer les fenêtres surgissantes dans les paramètres de sécurité de votre navigateur et réessayer.", "popupErrorTitle": "Fenêtre surgissante bloquée", - "recording": "", + "recording": "Enregistrement", "recordingDisabledForGuestTooltip": "Les invités ne peuvent pas démarrer l'enregistrement.", "recordingDisabledTooltip": "Démarrage de l'enregistrement désactivé.", "rejoinNow": "Rejoindre maintenant", @@ -228,9 +234,13 @@ "screenSharingFirefoxPermissionDeniedError": "Une erreur s'est produite lors de la tentative de partage d'écran. Veuillez vous assurer d'avoir donné votre autorisation. ", "screenSharingFirefoxPermissionDeniedTitle": "Oups! Il est impossible de démarrer le partage d'écran!", "screenSharingPermissionDeniedError": "Oups! Une erreur s'est produite avec les autorisations de l'extension de partage d'écran. Veuillez recharger et réessayer.", + "sendPrivateMessage": "Vous avez récemment reçu un message privé. Aviez-vous l'intention d'y répondre en privé, ou vouliez-vous envoyer votre message au groupe ?", + "sendPrivateMessageCancel": "Envoyer au groupe", + "sendPrivateMessageOk": "Envoyer en privé", + "sendPrivateMessageTitle": "Envoyer en privé ?", "serviceUnavailable": "Service non disponible", "sessTerminated": "Appel terminé", - "Share": "", + "Share": "Oui", "shareVideoLinkError": "Veuillez fournir un lien YouTube correct.", "shareVideoTitle": "Partager une vidéo", "shareYourScreen": "Partager votre écran", @@ -255,12 +265,15 @@ "WaitForHostMsg": "La conférence {{room}} n'a pas encore démarré. Si vous êtes l'hôte, veuillez vous authentifier. Sinon, veuillez attendre que l'hôte arrive.", "WaitForHostMsgWOk": "La conférence {{room}} n'a pas encore démarré. Si vous êtes l'hôte, veuillez appuyer sur OK pour vous authentifier. Sinon, veuillez attendre que l'hôte arrive.", "WaitingForHost": "En attente de l'hôte...", - "Yes": "", + "Yes": "Oui", "yourEntireScreen": "Votre écran entier" }, "dialOut": { "statusMessage": "est maintenant {{status}}" }, + "documentSharing": { + "title": "Document partagé" + }, "feedback": { "average": "Moyenne", "bad": "Mauvaise", @@ -291,15 +304,15 @@ "dialInTollFree": "Sans frais", "genericError": "Oups, une erreur s'est produite.", "inviteLiveStream": "Pour voir la diffusion en directe de cette réunion, cliquez sur ce lien : {{url}}", - "invitePhone": "", - "invitePhoneAlternatives": "", + "invitePhone": "Pour rejoindre depuis un téléphone, composez : {{number}},,{{conferenceID}}#\n", + "invitePhoneAlternatives": "Vous cherchez un numéro d'appel différent ?\nConsultez la liste de numéros d'appel de la réunion : {{url}}\n\n\nSi vous appelez également via un téléphone de salle, vous pouvez vous connecter sans audio : {{silentUrl}}", "inviteURLFirstPartGeneral": "Vous avez été invité à rejoindre une réunion.", - "inviteURLFirstPartPersonal": "", - "inviteURLSecondPart": "", + "inviteURLFirstPartPersonal": "{{name}} vous invite à une réunion.\n", + "inviteURLSecondPart": "\nRejoindre la réunion:\n{{url}}\n", "liveStreamURL": "Diffusion en direct :", "moreNumbers": "Plus de numéros", "noNumbers": "Aucun numéro d'appel interne.", - "noPassword": "", + "noPassword": "Aucun", "noRoom": "Vous n'avez pas précisé de salle pour l'appel interne.", "numbers": "Numéros d'appel interne", "password": "Mot de passe :", @@ -335,7 +348,8 @@ "toggleFilmstrip": "Afficher ou masquer les icônes vidéos", "toggleScreensharing": "Basculer entre la caméra et le partage d'écran", "toggleShortcuts": "Afficher ou masquer les raccourcis clavier", - "videoMute": "Démarrer ou arrêter votre caméra" + "videoMute": "Démarrer ou arrêter votre caméra", + "videoQuality": "Gérer la qualité d'appel" }, "liveStreaming": { "busy": "Libération de ressources de diffusion en cours. Veuillez réessayer dans quelques minutes.", @@ -354,13 +368,15 @@ "getStreamKeyManually": "La récupération de diffusions en direct a échoué. Essayez d'obtenir une clé de diffusion en direct sur YouTube.", "invalidStreamKey": "La clé de diffusion en direct peut être erronée.", "off": "La diffusion en direct s'est arrêtée", + "offBy": "{{name}} a arrêté la diffusion en continu", "on": "Diffusion en direct", + "onBy": "{{name}} démarré la diffusion en continu", "pending": "Démarrage de la diffusion en direct...", "serviceName": "Service de diffusion en direct", "signedInAs": "Vous êtes actuellement connecté en tant que :", "signIn": "Se connecter avec Google", "signInCTA": "Connectez-vous ou entrez votre clé de diffusion en direct de YouTube", - "signOut": "", + "signOut": "Se déconnecter", "start": "Démarrer une diffusion en direct", "streamIdHelp": "Qu'est-ce que c'est?", "unavailableTitle": "Diffusion en direct non disponible" @@ -378,14 +394,14 @@ "label": "LOR", "labelToolTip": "L'enregistrement local est en cours", "localRecording": "Enregistrement local", - "me": "", + "me": "Moi", "messages": { "engaged": "Enregistrement local activé.", "finished": "Enregistrement de la séance {{token}} terminé. Veuillez envoyer le fichier d'enregistrement au modérateur.", "finishedModerator": "Enregistrement de la séance {{token}} terminé. L'enregistrement de la piste locale a été enregistrée. Veuillez demander aux autres participants de soumettre leurs enregistrements.", "notModerator": "Vous n'êtes pas le modérateur. Vous ne pouvez pas démarrer ou arrêter l'enregistrement local." }, - "moderator": "", + "moderator": "Modérateur", "no": "Non", "participant": "Participant", "participantStats": "Statistiques de participants", @@ -394,8 +410,8 @@ "stop": "Arrêter l'enregistrement", "yes": "Oui" }, - "lockRoomPassword": "", - "lockRoomPasswordUppercase": "", + "lockRoomPassword": "mot de passe", + "lockRoomPasswordUppercase": "Mot de passe", "me": "moi", "notify": { "connectedOneMember": "{{name}} a rejoint la réunion", @@ -405,25 +421,25 @@ "focus": "Sujet de la conférence", "focusFail": "{{component}} non disponible; réessayez dans {{ms}} sec", "grantedTo": "Droits de modérateur accordés à {{to}}!", - "invitedOneMember": "", - "invitedThreePlusMembers": "", - "invitedTwoMembers": "", - "kickParticipant": "", + "invitedOneMember": "{{displayName}} a été invité", + "invitedThreePlusMembers": "{{name}} et {{count}} autres ont été invités", + "invitedTwoMembers": "{{first}} et {{second}} ont été invités", + "kickParticipant": "{{kicked}} a été expulsé par {{kicker}}", "me": "Moi", "moderator": "Droits de modérateur accordés!", "muted": "Vous avez joint la conversation en sourdine.", "mutedTitle": "Vous êtes en sourdine!", - "mutedRemotelyTitle": "", - "mutedRemotelyDescription": "", - "passwordRemovedRemotely": "", - "passwordSetRemotely": "", + "mutedRemotelyTitle": "Votre micro a été coupé par {{participantDisplayName}}!", + "mutedRemotelyDescription": "Vous pouvez toujours activer votre micro pour prendre la parole. Désactivez votre micro quand vous terminez pour éviter les bruits parasites.", + "passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) supprimé par un autre participant", + "passwordSetRemotely": "$t(lockRoomPasswordUppercase) défini par un autre participant", "raisedHand": "{{name}} voudrait parler.", "somebody": "Quelqu'un", - "startSilentTitle": "", - "startSilentDescription": "", - "suboptimalExperienceDescription": "Euh... nous sommes désolés que vous expérience avec {{appName}} ne se déroule pas comme prévu. Nous cherchons à améliorer cela, mais en attendant, veuillez essayer d'utiliser un des navigateurs pris en charge.", + "startSilentTitle": "Vous avez rejoint sans sortie audio!", + "startSilentDescription": "Rejoignez la réunion de nouveau pour activer l'audio", + "suboptimalBrowserWarning": "Nous craignons que votre expérience de réunion en ligne ne soit bonne ici. Nous cherchons des moyens d’améliorer cela, mais d’ici-là, essayez d’utiliser l’un des navigateurs supportés.", "suboptimalExperienceTitle": "Avertissement de navigateur", - "unmute": "", + "unmute": "Rétablir le son", "newDeviceCameraTitle": "Nouvelle caméra détectée", "newDeviceAudioTitle": "Nouveau dispositif audio détecté", "newDeviceAction": "Utiliser" @@ -449,8 +465,9 @@ "setDisplayNameLabel": "Définir votre nom d'affichage", "setEmailInput": "Entrer votre adresse courriel", "setEmailLabel": "Définir votre courriel gravatar", - "title": "" + "title": "Profil" }, + "raisedHand": "Aimerait prendre la parole", "recording": { "authDropboxText": "Téléverser à Dropbox", "availableSpace": "Espace disponible : {{spaceLeft}} Mo (approximativement {{duration}} minutes d'enregistrement)", @@ -466,7 +483,9 @@ "live": "EN DIRECT", "loggedIn": "Connecté en tant que {{userName}}", "off": "L'enregistrement est arrêté", + "offBy": "{{name}} a arrêté l'enregistrement", "on": "Enregistrement", + "onBy": "{{name}} a démarré l'enregistrement", "pending": "Enregistrement de la réunion en préparation...", "rec": "REC", "serviceDescription": "Votre enregistrement sera sauvegardé par le service d'enregistrement", @@ -485,41 +504,45 @@ "disconnect": "Déconnexion", "microsoftSignIn": "Se connecter avec Microsoft", "signedIn": "Accès aux événements de votre agenda en cours pour {{email}}. Cliquez sur le bouton de déconnexion ci-dessous pour terminer l'accès aux événements d'agenda.", - "title": "" + "title": "Calendrier" }, "devices": "Dispositifs", "followMe": "Tous les participants me suivent", "language": "Language", "loggedIn": "Connecté en tant que {{name}}", - "moderator": "", + "moderator": "Modérateur", "more": "Plus", - "name": "", + "name": "Nom", "noDevice": "Aucun", "selectAudioOutput": "Sortie audio", "selectCamera": "Caméra", "selectMic": "Micro", "startAudioMuted": "Tous les participants débutent en sourdine", "startVideoMuted": "Tous les participants débutent masqués", - "title": "" + "title": "Paramètres" }, "settingsView": { + "advanced": "Avancé", "alertOk": "OK", "alertTitle": "Alerte", "alertURLText": "L'URL de serveur saisi n'est pas valide", "buildInfoSection": "Information de version", "conferenceSection": "Conférence", + "disableCallIntegration": "Désactiver l'intégration d'appels native", + "disableP2P": "Désactiver le mode pair à pair", "displayName": "Nom d'affichage", "email": "Courriel", - "header": "", + "header": "Paramètres", "profileSection": "Profil", "serverURL": "URL du serveur", + "showAdvanced": "Afficher les paramètres avancés", "startWithAudioMuted": "Démarrer avec l'audio en sourdine", "startWithVideoMuted": "Démarrer avec la vidéo en sourdine", "version": "Version" }, "share": { - "dialInfoText": "", - "mainText": "" + "dialInfoText": "\n\n=====\n\nVoulez-vous appeler depuis votre téléphone ?\n\n{{defaultDialInNumber}}Voici la liste des numéros d'appels pour cette réunion :\n{{dialInfoPageUrl}}", + "mainText": "Cliquez sur ce lien pour rejoindre la réunion :\n{{roomUrl}}" }, "speaker": "Intervenant", "speakerStats": { @@ -542,15 +565,17 @@ "toolbar": { "accessibilityLabel": { "audioOnly": "Basculement du mode audio uniquement", - "audioRoute": "", - "callQuality": "", + "audioRoute": "Sélectionner le dispositif audio", + "callQuality": "Gestion de la qualité d'appel", "cc": "Basculement des sous-titres", "chat": "Basculement de la fenêtre de clavardage", "document": "Basculement du document partagé", - "feedback": "", + "download": "", + "feedback": "Laisser un commentaire", "fullScreen": "Basculement de l'affichage plein écran", "hangup": "Quitter l'appel", - "invite": "", + "help": "", + "invite": "Inviter des personnes", "kick": "Expulser le participant", "localRecording": "Basculement des commandes d'enregistrement local", "lockRoom": "Basculement du mot de passe de la réunion", @@ -558,25 +583,26 @@ "moreActionsMenu": "Menu d'actions supplémentaires", "mute": "Basculement de la sourdine", "pip": "Basculement du mode image dans l'image", - "profile": "", + "privateMessage": "", + "profile": "Modifier votre profil", "raiseHand": "Basculement de la main levée", "recording": "Basculement de l'enregistrement", "remoteMute": "Mettre le participant en sourdine", "Settings": "Basculement des paramètres", "sharedvideo": "Basculement du partage de vidéo YouTube", - "shareRoom": "", + "shareRoom": "Inviter quelqu'un", "shareYourScreen": "Basculement du partage d'écran", "shortcuts": "Basculement des raccourcis", "show": "", "speakerStats": "Basculement des statistiques d'intervenant", - "tileView": "", - "toggleCamera": "", + "tileView": "Basculement de l'affichage mosaïque", + "toggleCamera": "Basculement de la caméra", "videomute": "Basculement de la sourdine vidéo", - "videoblur": "" + "videoblur": "Alterner le brouillage vidéo" }, "addPeople": "Ajouter des personnes à votre appel", - "audioOnlyOff": "Désactiver le mode audio uniquement", - "audioOnlyOn": "Activer le mode audio uniquement", + "audioOnlyOff": "Désactiver le mode bande passante faible", + "audioOnlyOn": "Activer le mode bande passante faible", "audioRoute": "Sélectionner le dispositif audio", "authenticate": "Authentification", "callQuality": "Gestion de la qualité d'appel", @@ -584,20 +610,26 @@ "closeChat": "Fermer le clavardage", "documentClose": "Fermer le document partagé", "documentOpen": "Ouvrir le document partagé", + "download": "Télécharger nos applications", "enterFullScreen": "Afficher le mode plein écran", "enterTileView": "Passer à l'affichage mosaïque", "exitFullScreen": "Quitter le mode plein écran", "exitTileView": "Quitter l'affichage mosaïque", "feedback": "Laisser un commentaire", "hangup": "Quitter", + "help": "Aide", "invite": "Inviter des personnes", "login": "Connexion", "logout": "Déconnexion", "lowerYourHand": "Abaisser votre main", "moreActions": "Plus d'actions", "mute": "Activer / Réactiver le son", + "noAudioSignalTitle": "Il n'y a pas d'entrée provenant de votre micro !", + "noAudioSignalDesc": "Si vous n'avez pas délibérément coupé le son des paramètres du système ou du matériel, envisagez de changer le périphérique.", + "noAudioSignalDescSuggestion": "Si vous n'avez pas délibérément coupé le son des paramètres du système ou du matériel, pensez à utiliser le périphérique suivant :", "openChat": "Ouvrir le clavardage", "pip": "Passer en mode image dans l'image", + "privateMessage": "Envoyer un message privé", "profile": "Modifier votre profil", "raiseHand": "Lever / Abaisser votre main", "raiseYourHand": "Lever votre main", @@ -615,8 +647,8 @@ "tileViewToggle": "Basculement de l'affichage mosaïque", "toggleCamera": "Basculement de la caméra", "videomute": "Démarrer / Arrêter la caméra", - "startvideoblur": "", - "stopvideoblur": "" + "startvideoblur": "Brouiller mon arrière plan", + "stopvideoblur": "Désactiver le brouillage d'arrière-plan" }, "transcribing": { "ccButtonTooltip": "Activer / Désactiver les sous-titres", @@ -631,14 +663,14 @@ "tr": "PI" }, "userMedia": { - "androidGrantPermissions": "", - "chromeGrantPermissions": "", + "androidGrantPermissions": "Sélectionner Autoriser lorsque votre navigateur vous demande l'autorisation.", + "chromeGrantPermissions": "Sélectionner Autoriser lorsque votre navigateur vous demande l'autorisation.", "edgeGrantPermissions": "Sélectionner Oui lorsque votre navigateur demande l'autorisation.", - "electronGrantPermissions": "", + "electronGrantPermissions": "Veuillez accorder l'autorisation d'utiliser votre caméra et votre micro", "firefoxGrantPermissions": "Sélectionner Partager le dispositif sélectionné lorsque votre navigateur demande l'autorisation.", - "iexplorerGrantPermissions": "", + "iexplorerGrantPermissions": "Sélectionner OK lorsque votre navigateur demande l'autorisation.", "nwjsGrantPermissions": "Veuillez accorder l'autorisation d'utiliser votre caméra et votre micro", - "operaGrantPermissions": "", + "operaGrantPermissions": "Sélectionner Autoriser lorsque votre navigateur vous demande l'autorisation.", "react-nativeGrantPermissions": "Sélectionner Autoriser lorsque votre navigateur vous demande l'autorisation.", "safariGrantPermissions": "Sélectionner OK lorsque votre navigateur demande l'autorisation." }, @@ -654,13 +686,15 @@ }, "videoStatus": { "audioOnly": "AUD", - "audioOnlyExpanded": "Vous êtes en mode audio uniquement. Ce mode économise de la bande passante, mais bloque les vidéos des autres.", + "audioOnlyExpanded": "Vous êtes en mode bande passante faible. Dans ce mode, vous ne recevrez que le partage audio et le partage d’écran.", "callQuality": "Qualité d'appel", "hd": "HD", + "hdTooltip": "Visionnement de vidéo en haute définition", "highDefinition": "Haute définition", "labelTooiltipNoVideo": "Aucune vidéo", - "labelTooltipAudioOnly": "Mode audio uniquement activé", + "labelTooltipAudioOnly": "Mode bande passante faible activé", "ld": "LD", + "ldTooltip": "Visionnement de vidéo en basse définition", "lowDefinition": "Basse définition", "onlyAudioAvailable": "Seulement l'audio est disponible", "onlyAudioSupported": "Ce navigateur prend seulement l'audio en charge.", @@ -668,6 +702,7 @@ "p2pVideoQualityDescription": "En mode pair à pair, il est possible de basculer entre la haute qualité d'appel entrant et l'audio seulement. Certains paramètres ne seront pas activés tant que vous ne quittez le mode pair à pair.", "recHighDefinitionOnly": "La haute définition est préférable.", "sd": "SD", + "sdTooltip": "Visionnement de vidéo en définition standard", "standardDefinition": "Définition standard" }, "videothumbnail": { @@ -678,13 +713,13 @@ "mute": "Le membre est en sourdine", "muted": "Discrétion", "remoteControl": "Contrôle à distance", - "show": "", + "show": "Afficher en premier plan", "videomute": "Le membre a arrêté la caméra" }, "welcomepage": { "accessibilityLabel": { "join": "Toucher pour rejoindre", - "roomname": "" + "roomname": "Entrer le nom de la salle" }, "appDescription": "Profitez de la conversation vidéo avec toute votre équipe. Allez-y, invitez tous ceux que vous connaissez. {{app}} est une solution 100 % libre de conférence vidéo entièrement cryptée que vous pouvez utiliser en tout temps et gratuitement, sans avoir besoin de compte.", "audioVideoSwitch": { @@ -693,16 +728,18 @@ }, "calendar": "Calendrier", "connectCalendarButton": "Connecter votre agenda", - "connectCalendarText": "", + "connectCalendarText": "Connectez-vous à votre calendrier pour afficher toutes les réunions {{app}}. Ajoutez également les réunions de {{provider}} à votre calendrier et démarrez-les d'un simple clic.", "enterRoomTitle": "Démarrer une nouvelle réunion", + "roomNameAllowedChars": "Le nom de la réunion ne doit contenir aucun de ces caractères : ?, &, :, ', \", %, #.", "go": "Commencer", - "join": "Rejoindre", + "goSmall": "Commencer", + "join": "CRÉER / REJOINDRE", "info": "Ret. arr.", "privacy": "Confidentialité", "recentList": "Récent", "recentListDelete": "Supprimer", "recentListEmpty": "Votre liste récente est actuellement vide. Clavardez avec votre équipe et vous y trouverez toutes vos réunions récentes.", - "reducedUIText": "", + "reducedUIText": "Bienvenue sur {{app}}!", "roomname": "Entrer le nom de la salle", "roomnameHint": "Entrez le nom ou l'URL de la salle que vous voulez rejoindre. Vous pouvez inventer un nom, mais assurez-vous de le partager avec les participants de la réunion pour qu'ils utilisent le même nom.", "sendFeedback": "Envoyer un commentaire", diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-hu.json b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-hu.json index a8175d61e6..fa2026a92a 100644 --- a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-hu.json +++ b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-hu.json @@ -5,7 +5,7 @@ "countryReminder": "Ez USA-n kívüli hívás? Országhívószámmal kell kezdődnie!", "disabled": "Nem hívhat meg senkit.", "failedToAdd": "Nem sikerült a résztvevők hozzáadása", - "footerText": "A külső tárcsázás le van tiltva. ", + "footerText": "A külső tárcsázás le van tiltva.", "loading": "Személyek és telefonszámaik keresése", "loadingNumber": "Telefonszám ellenőrzése", "loadingPeople": "Meghívható személyek keresése", @@ -46,13 +46,18 @@ "today": "Ma" }, "chat": { - "error": "Hiba: Az üzenet „{{originalText}}” nem lett elküldve. Ok: {{error}}", + "error": "Hiba: az üzenetet nem sikerült elküldeni. Hiba oka: {{error}}", + "fieldPlaceHolder": "Írja ide az üzenetét", "messagebox": "Írja be az üzenetet", + "messageTo": "Privát üzenet a felhasználónak: {{recipient}}", + "noMessagesMessage": "A találkozón még nincsenek üzenetek. Itt kezdhet beszélgetést!", "nickname": { "popover": "Becenév kiválasztása", "title": "Adjon meg egy becenevet a csevegés számára" }, - "title": "Csevegés" + "privateNotice": "Privát üzenet a felhasználónak: {{recipient}}", + "title": "Csevegés", + "you": "neked" }, "connectingOverlay": { "joiningRoom": "Kapcsolódás az értekezlethez..." @@ -133,8 +138,8 @@ "liveStreaming": "Élő közvetítés" }, "allow": "Engedélyez", - "alreadySharedVideoMsg": "Egy másik résztvevő is videót oszt meg. E konferencia számára csak egy videómegosztás engedélyezett.", - "alreadySharedVideoTitle": "Egyszerre csak egy videómegosztás engedélyezése", + "alreadySharedVideoMsg": "Egy másik résztvevő is videot oszt meg. E konferencia számára csak egy videomegosztás engedélyezett.", + "alreadySharedVideoTitle": "Egyszerre csak egy videomegosztás engedélyezése", "applicationWindow": "Alkalmazásablak", "Back": "Vissza", "cameraConstraintFailedError": "A kamera nem felel meg bizonyos kikötéseknek.", @@ -143,8 +148,8 @@ "cameraNotSendingDataTitle": "Nem lehet hozzáférni a kamerához", "cameraPermissionDeniedError": "Nem adott engedélyt a kamera használatához. Csatlakozhat a beszélgetéshez, de a többiek nem fogják Önt látni. A címsorban lévő kamera ikonnal lehet ezt helyrehozni.", "cameraUnknownError": "Ismeretlen ok miatt nem lehet a kamerát használni.", - "cameraUnsupportedResolutionError": "A kamera nem támogatja a szükséges videófelbontást.", - "Cancel": "Mégse", + "cameraUnsupportedResolutionError": "A kamera nem támogatja a szükséges videofelbontást.", + "Cancel": "Mégsem", "close": "Bezárás", "conferenceDisconnectMsg": "Ellenőrizni kellene a hálózati kapcsolatokat. Újracsatlakozás {{seconds}} másodperc múlva...", "conferenceDisconnectTitle": "Lecsatlakozott.", @@ -159,14 +164,14 @@ "contactSupport": "Ügyfélszolgálat", "copy": "Másolás", "dismiss": "Elutasítás", - "displayNameRequired": "Mi a neve?", + "displayNameRequired": "Helló! Mi a neve?", "done": "Kész", "enterDisplayName": "Adja meg itt a nevét", "error": "Hiba", "externalInstallationMsg": "Telepíteni kell a munkaasztal megosztására való kiterjesztést.", "externalInstallationTitle": "Kiterjesztésre van szükség", - "goToStore": "Az alkalmazásbolthoz", - "gracefulShutdown": "Jelenleg a szolgáltatás karbantartás miatt nem elérhető. Később érdemes próbálkozni.", + "goToStore": "Ugrás az alkalmazásbolthoz", + "gracefulShutdown": "Jelenleg a szolgáltatás karbantartás miatt nem elérhető. Később próbálja meg ismét.", "IamHost": "Én vagyok a szervező", "incorrectRoomLockPassword": "Helytelen jelszó", "incorrectPassword": "Helytelen felhasználói név és jelszó", @@ -174,7 +179,7 @@ "inlineInstallExtension": "Telepítés azonnal", "internalError": "Hoppá! Valami elromlott. Az alábbi hiba történt: {{error}}", "internalErrorTitle": "Belső hiba", - "kickMessage": "További részletek a résztvevőtől kérhetők: {{participantDisplayName}}.", + "kickMessage": "További részletek kérhetők a {{participantDisplayName}} résztvevőtől.", "kickParticipantButton": "Kirúgás", "kickParticipantDialog": "Valóban kirúgható ez a résztvevő?", "kickParticipantTitle": "Résztvevő kirúgása?", @@ -185,9 +190,9 @@ "lockMessage": "A konferencia zárolása meghiúsult.", "lockRoom": "Értekezlet $t(lockRoomPasswordUppercase) hozzáadása", "lockTitle": "Zárolás meghiúsult", - "logoutQuestion": "Valóban ki akar lépni és leállítani a konferenciát?", + "logoutQuestion": "Valóban ki akar lépni és leállítja a konferenciát?", "logoutTitle": "Kilépés", - "maxUsersLimitReached": "A lehetséges résztvevők maximális száma elérve, a konferencia tele van. Lépj kapcsolatba az értekezlet tulajdonosával vagy próbálkozz később.", + "maxUsersLimitReached": "A lehetséges résztvevők maximális száma elérve. A konferencia tele van. Lépjen kapcsolatba az értekezlet tulajdonosával vagy próbálkozzon később!", "maxUsersLimitReachedTitle": "A lehetséges résztvevők maximális száma elérve", "micConstraintFailedError": "A mikrofon nem felel meg bizonyos kikötéseknek.", "micNotFoundError": "Nem található mikrofon.", @@ -195,9 +200,9 @@ "micNotSendingDataTitle": "A mikrofon le van némítva a rendszerbeállításokban", "micPermissionDeniedError": "Nem adott engedélyt a mikrofon használatához. Csatlakozhat a beszélgetéshez, de a többiek nem fogják Önt hallani. A címsorban lévő kamera ikonnal lehet ezt helyrehozni.", "micUnknownError": "Ismeretlen ok miatt nem lehet a mikrofont használni.", - "muteParticipantBody": "Visszahangosítani nem fogja tudni, de ő önmagát bármikor vissza tudja majd hangosítani.", + "muteParticipantBody": "Nem fogja tudni visszahangosítani, de ő önmagát bármikor vissza tudja majd hangosítani.", "muteParticipantButton": "Némítás", - "muteParticipantDialog": "Valóban lenémítható ez a résztvevő? Visszahangosítani nem fogja tudni, de ő önmagát bármikor vissza tudja majd hangosítani.", + "muteParticipantDialog": "Valóban lenémítható ez a résztvevő? Nem fogja tudni visszahangosítani, de ő önmagát bármikor vissza tudja majd hangosítani.", "muteParticipantTitle": "Lenémítható a résztvevő?", "Ok": "Ok", "passwordLabel": "$t(lockRoomPasswordUppercase)", @@ -212,28 +217,32 @@ "rejoinNow": "Újracsatlakozás azonnal", "remoteControlAllowedMessage": "{{user}} elfogadta az Ön távoli vezérlési kérését!", "remoteControlDeniedMessage": "{{user}} visszautasította az Ön távoli vezérlési kérését!", - "remoteControlErrorMessage": "Hiba történt a résztvevőhöz ({{user}}) intézett távoli vezérlési kérés küldése közben!", + "remoteControlErrorMessage": "Hiba történt a résztvevőhöz {{user}} intézett távoli vezérlési kérés küldése közben!", "remoteControlRequestMessage": "Engedélyezi {{user}} résztvevőnek, hogy távolról vezérelje a munkaasztalt?", - "remoteControlShareScreenWarning": "Figyelem! Az „engedélyezés” gomb lenyomásakor a képernyő megosztásra kerül!", + "remoteControlShareScreenWarning": "Vegye figyelembe, hogy ha megnyomja az „Engedélyezés” lehetőséget, akkor megosztja a képernyőt!", "remoteControlStopMessage": "A távoli munkamenet irányítása befejeződött!", "remoteControlTitle": "Távoli asztal vezérlése", "Remove": "Eltávolítás", "removePassword": "$t(lockRoomPassword) eltávolítása", - "removeSharedVideoMsg": "Valóban eltávolítható a megosztott videó?", - "removeSharedVideoTitle": "Megosztott videó eltávolítása", + "removeSharedVideoMsg": "Valóban eltávolítható a megosztott video?", + "removeSharedVideoTitle": "Megosztott video eltávolítása", "reservationError": "Foglalási rendszerhiba", "reservationErrorMsg": "Hibakód: {{code}}, üzenet: {{msg}}", "retry": "Újra", "screenSharingFailedToInstall": "Hoppá! A képernyőmegosztó kiterjesztés telepítése meghiúsult.", "screenSharingFailedToInstallTitle": "A képernyőmegosztó kiterjesztés telepítése meghiúsult", - "screenSharingFirefoxPermissionDeniedError": "Valami elromlott a képernyőmegosztás indítása közben. Ellenőrizze, hogy megadta-e a szükséges engedélyeket.", + "screenSharingFirefoxPermissionDeniedError": "Valami elromlott a képernyőmegosztás indítása közben. Ellenőrizze, hogy megadta-e a szükséges engedélyeket. ", "screenSharingFirefoxPermissionDeniedTitle": "Hoppá! Nem sikerült a képernyőmegosztás indítása!", - "screenSharingPermissionDeniedError": "Hoppá! Valami elromlott a képernyőmegosztás kiterjesztés jogosultságaival. Töltse újra és kísérelje meg újra.", + "screenSharingPermissionDeniedError": "Hoppá! Valami elromlott a képernyőmegosztás kiterjesztés jogosultságaival. Töltse újra és kísérelje meg újra.", + "sendPrivateMessage": "Nemrég egy csak Önnek szóló üzenete érkezett. A válaszát privát üzenetként, vagy inkább az egész csoportnak akarja elküldeni?", + "sendPrivateMessageCancel": "Küldés a csoportnak", + "sendPrivateMessageOk": "Küldés privátban", + "sendPrivateMessageTitle": "Privátban legyen elküldve?", "serviceUnavailable": "Szolgáltatás nem elérhető", "sessTerminated": "Hívás megszakadt", "Share": "Megosztás", "shareVideoLinkError": "Adjon meg egy helyes YouTube linket.", - "shareVideoTitle": "Videó megosztása", + "shareVideoTitle": "Video megosztása", "shareYourScreen": "Képernyő megosztása", "shareYourScreenDisabled": "Képernyőmegosztás letiltva.", "shareYourScreenDisabledForGuest": "Vendég nem végezhet képernyőmegosztást.", @@ -253,15 +262,18 @@ "transcribing": "Átirat készítése", "unlockRoom": "Értekezlet $t(lockRoomPassword) eltávolítása", "userPassword": "felhasználói jelszó", - "WaitForHostMsg": "A konferencia még nem kezdődött meg: {{room}}. Ha Ön a házigazda, akkor hitelesítse magát. Ellenkező esetben, kérjük várjon a házigazda érkezésére.", - "WaitForHostMsgWOk": "A konferencia még nem kezdődött meg: {{room}}. Ha Ön a házigazda, kérjük az „OK” gombra kattintva hitelesítse magát. Ellenkező esetben, kérjük várjon a házigazda érkezésére.", - "WaitingForHost": "Várakozás a házigazdára...", + "WaitForHostMsg": "A {{room}} konferencia még nem kezdődött meg. Ha Ön a házigazda, akkor hitelesítse magát. Ellenkező esetben, kérjük várjon a házigazda érkezésére.", + "WaitForHostMsgWOk": "A {{room}} konferencia még nem kezdődött meg. Ha Ön a házigazda, kérjük az „OK” gombra kattintva hitelesítse magát. Ellenkező esetben, kérjük várjon a házigazda érkezésére.", + "WaitingForHost": "Várakozás a házigazdára ...", "Yes": "Igen", "yourEntireScreen": "A teljes képernyő" }, "dialOut": { "statusMessage": "jelenleg {{status}}" }, + "documentSharing": { + "title": "Megosztott dokumentum" + }, "feedback": { "average": "Átlag", "bad": "Rossz", @@ -276,7 +288,7 @@ "audioCallTitle": "Bejövő hívás", "decline": "Elutasítás", "productLabel": "a Jitsi Meettől", - "videoCallTitle": "Bejövő videóhívás" + "videoCallTitle": "Bejövő videohívás" }, "info": { "accessibilityLabel": "Információk megjelenítése", @@ -294,14 +306,14 @@ "inviteLiveStream": "Az értekezlet élő közvetítésének megtekintése: {{url}}", "invitePhone": "Telefonról való csatlakozáshoz ezeket kell tárcsázni: {{number}},,{{conferenceID}}#\n", "invitePhoneAlternatives": "Más betárcsázási számot keres?\nLásd az értekezlet betárcsázási számait: {{url}}\n\n\nHa termi telefonon keresztül tárcsáz, csatlakozhat hang nélkül is: {{silentUrl}}", - "inviteURLFirstPartGeneral": "Meg lett hívva egy értekezletre.", + "inviteURLFirstPartGeneral": "Önt meghívták egy értekezletre.", "inviteURLFirstPartPersonal": "{{name}} meghívta Önt egy értekezletre.\n", "inviteURLSecondPart": "\nCsatlakozás az értekezlethez:\n{{url}}\n", "liveStreamURL": "Élő közvetítés:", "moreNumbers": "További számok", "noNumbers": "Nincsenek betárcsázási számok.", "noPassword": "Nincs", - "noRoom": "Nem volt terem megadva, amelybe be lehetne lépni.", + "noRoom": "Nem volt szoba megadva, amelybe be lehetne lépni.", "numbers": "Betárcsázási számok", "password": "$t(lockRoomPasswordUppercase):", "title": "Megosztás", @@ -323,17 +335,17 @@ "supportMsg": "Ismételt hiba esetén érdemes kapcsolatba lépnie" }, "keyboardShortcuts": { - "focusLocal": "Fókusz a saját videómra", - "focusRemote": "Fókusz egy másik személy videójára", + "focusLocal": "Fókusz a saját videomra", + "focusRemote": "Fókusz egy másik személy videojára", "fullScreen": "Belépés vagy kilépés a teljes képernyőből", "keyboardShortcuts": "Gyorsbillentyűk", "localRecording": "Helyi rögzítési vezérlőelemek megjelenítése vagy elrejtése", "mute": "Mikrofon némítása vagy visszahangosítása", - "pushToTalk": "Nyomd a csevegéshez", + "pushToTalk": "Push to talk", "raiseHand": "Kéz felemelése vagy leengedése", "showSpeakerStats": "Beszéd statisztikák megjelenítése", "toggleChat": "Csevegés megnyitása vagy bezárása", - "toggleFilmstrip": "Videóbélyegképek megjelenítése vagy elrejtése", + "toggleFilmstrip": "Video bélyegképek megjelenítése vagy elrejtése", "toggleScreensharing": "Váltás kamera és képernyőmegosztás között", "toggleShortcuts": "Gyorsbillentyűk megjelenítése vagy elrejtése", "videoMute": "Kamera elindítása vagy leállítása", @@ -361,7 +373,7 @@ "onBy": "{{name}} elindította az élő közvetítést", "pending": "Élő közvetítés kezdése...", "serviceName": "Élő közvetítési szolgáltatás", - "signedInAs": "Jelenleg bejelentkezve mint: ", + "signedInAs": "Jelenleg bejelentkezve mint:", "signIn": "Bejelentkezés a Google-lel", "signInCTA": "Jelentkezzen be vagy adja meg a élő közvetítési kulcsot a YouTube-ról.", "signOut": "Kilépés", @@ -376,17 +388,17 @@ "unknown": "Ismeretlen" }, "dialogTitle": "Helyi felvétel vezérlőelemei", - "duration": "Hossz", - "durationNA": "nincs", + "duration": "Időtartam", + "durationNA": "N/A", "encoding": "Kódolás", - "label": "HeR", + "label": "HeF", "labelToolTip": "Helyi felvétel aktiválva", "localRecording": "Helyi felvétel", "me": "Én", "messages": { "engaged": "Helyi felvétel aktiválva.", - "finished": "A rögzítési munkamenet befejeződött: {{token}}. Küldje el a rögzített fájlt a moderátornak.", - "finishedModerator": "A rögzítési munkamenet befejeződött: {{token}}. A helyi sáv rögzítésre került. Kérje el a többi résztvevőtől, amit rögzítettek.", + "finished": "A {{token}} rögzítési munkamenet befejeződött. Küldje el a rögzített fájlt a moderátornak.", + "finishedModerator": "A {{token}} rögzítési munkamenet befejeződött. A helyi sáv rögzítésre került. Kérje el a többi résztvevőtől, amit rögzítettek.", "notModerator": "Ön nem moderátor. Nem tudja elindítani vagy leállítani a helyi felvételt." }, "moderator": "Moderátor", @@ -425,7 +437,7 @@ "somebody": "Valaki", "startSilentTitle": "Hang nélkül csatlakozott!", "startSilentDescription": "Csatlakozzon újra a hang engedélyezéséhez", - "suboptimalBrowserWarning": "Sajnáljuk, de nem nagy élmény így csatlakozni a konferenciához. Keressük a megoldást, de addig is, érdemes inkább egy teljesen támogatott böngészővel csatlakozni.", + "suboptimalBrowserWarning": "Sajnáljuk, de nem nagy élmény így csatlakozni a konferenciához. Keressük a megoldást, de addig is, érdemes inkább egy teljesen támogatott böngészővel csatlakozni.", "suboptimalExperienceTitle": "Böngészőhiba", "unmute": "Visszahangosítás", "newDeviceCameraTitle": "Új kamera észlelve", @@ -434,7 +446,7 @@ }, "passwordSetRemotely": "egy másik résztvevő által beállítva", "passwordDigitsOnly": "Legfeljebb {{number}} szám", - "poweredby": "Működteti: ", + "poweredby": "Működteti:", "presenceStatus": { "busy": "Foglalt", "calling": "Hívás...", @@ -506,22 +518,26 @@ "selectCamera": "Kamera", "selectMic": "Mikrofon", "startAudioMuted": "Mindenki lenémítva kezd", - "startVideoMuted": "Mindenki videó nélkül kezd", + "startVideoMuted": "Mindenki video nélkül kezd", "title": "Beállítások" }, "settingsView": { + "advanced": "Haladó", "alertOk": "OK", "alertTitle": "Figyelmeztetés", "alertURLText": "A megadott kiszolgáló URL-je érvénytelen", "buildInfoSection": "Fordítási információk", "conferenceSection": "Konferencia", + "disableCallIntegration": "A natív hívások integrációjának letiltása", + "disableP2P": "Kapcsolja ki a peer-to-peer módot", "displayName": "Megjelenő név", "email": "E-mail", "header": "Beállítások", "profileSection": "Profil", "serverURL": "Kiszolgáló URL", + "showAdvanced": "Speciális beállítások megjelenítése", "startWithAudioMuted": "Kezdés a hang lenémításával", - "startWithVideoMuted": "Kezdés a videó letiltásával", + "startWithVideoMuted": "Kezdés a video letiltásával", "version": "Verzió" }, "share": { @@ -543,8 +559,8 @@ }, "suspendedoverlay": { "rejoinKeyTitle": "Újracsatlakozás", - "text": "Az „újracsatlakozás” gombbal lehet ismételten csatlakozni.", - "title": "A videóhívás megszakadt, mivel ez a számítógép aló állapotba helyezte magát." + "text": "Az újracsatlakozás gombbal lehet ismételten csatlakozni.", + "title": "A videohívás megszakadt, mivel ez a számítógép aló állapotba helyezte magát." }, "toolbar": { "accessibilityLabel": { @@ -554,9 +570,11 @@ "cc": "Feliratok átváltása", "chat": "Csevegés ablak átváltása", "document": "Megosztott dokumentum átváltása", + "download": "Alkalmazás letöltése", "feedback": "Visszajelzés küldése", "fullScreen": "Teljes képernyő átváltása", "hangup": "Beszélgetés elhagyása", + "help": "Súgó", "invite": "Személyek meghívása", "kick": "Résztvevő kirúgása", "localRecording": "Helyi felvétel vezérlőelemeinek átváltása", @@ -565,51 +583,58 @@ "moreActionsMenu": "További műveltek menü", "mute": "Hang némításának átváltása", "pip": "Kép és képben mód átváltása", + "privateMessage": "Privát üzenet küldése", "profile": "Adja meg a profilját", "raiseHand": "Kéz felemelésének átváltása", "recording": "Felvétel átváltása", "remoteMute": "Résztvevők némítása", "Settings": "Beállítások átváltása", - "sharedvideo": "YouTube videó megosztásának átváltása", + "sharedvideo": "YouTube video megosztásának átváltása", "shareRoom": "Valaki meghívása", "shareYourScreen": "Képernyőmegosztás átváltása", "shortcuts": "Gyorsbillentyűk átváltása", "show": "Megjelenítés a színpadon", "speakerStats": "Beszélő statisztika átváltása", - "tileView": "Mozaikon nézet átváltása", + "tileView": "Mozaikos nézet átváltása", "toggleCamera": "Kamera átváltása", - "videomute": "Videó letiltásának átváltása", - "videoblur": "Videóelmosás átváltása" + "videomute": "Video letiltásának átváltása", + "videoblur": "Videoelmosás átváltása" }, "addPeople": "Személy hozzáadása a híváshoz", "audioOnlyOff": "Alacsony sávszélességű mód letiltása", "audioOnlyOn": "Alacsony sávszélességű mód engedélyezése", "audioRoute": "Hangeszköz kijelölése", "authenticate": "Hitelesítés", - "callQuality": "Videóminőség kezelése", + "callQuality": "Videominőség kezelése", "chat": "Csevegés megnyitása / bezárása", "closeChat": "Csevegés bezárása", "documentClose": "Megosztott dokumentum bezárása", "documentOpen": "Megosztott dokumentum megnyitása", + "download": "Alkalmazás letöltése", "enterFullScreen": "Teljes képernyős megtekintés", "enterTileView": "Mozaikos nézet indítása", "exitFullScreen": "Kilépés a teljes képernyőből", - "exitTileView": "Kilépés a mozaikon nézetből", + "exitTileView": "Kilépés a mozaikos nézetből", "feedback": "Visszajelzés küldése", "hangup": "Kilépés", + "help": "Súgó", "invite": "Személyek meghívása", "login": "Belépés", "logout": "Kilépés", "lowerYourHand": "Kéz leengedése", "moreActions": "További műveltek", "mute": "Némítás / Visszahangosítás", + "noAudioSignalTitle": "Nincs bemenet a mikrofonjáról!", + "noAudioSignalDesc": "Ha nem szándékosan némította el a rendszerbeállításokban vagy az eszközön, akkor fontolja meg az eszköz cseréjét.", + "noAudioSignalDescSuggestion": "Ha nem szándékosan némította el a rendszerbeállításokban vagy az eszközön, akkor fontolja meg a következő eszköz használatát:", "openChat": "Csevegés megnyitása", "pip": "Belépés kép a képben módba", + "privateMessage": "Privát üzenet küldése", "profile": "Adja meg a profilját", - "raiseHand": "Kéz felemelése, ill. leengedése", + "raiseHand": "Kéz felemelése / leengedése", "raiseYourHand": "Kéz felemelése", "Settings": "Beállítások", - "sharedvideo": "YouTube videó megosztása", + "sharedvideo": "YouTube video megosztása", "shareRoom": "Valaki meghívása", "shortcuts": "Gyorsbillentyűk megtekintése", "speakerStats": "Beszélő statisztika", @@ -617,9 +642,9 @@ "startSubtitles": "Feliratok kezdése", "stopScreenSharing": "Képernyőmegosztás leállítása", "stopSubtitles": "Felirat leállítása", - "stopSharedVideo": "YouTube videó leállítása", + "stopSharedVideo": "YouTube video leállítása", "talkWhileMutedPopup": "Úgy tűnik beszélni szeretne, de le van némítva.", - "tileViewToggle": "Mozaikon nézet átváltása", + "tileViewToggle": "Mozaikos nézet átváltása", "toggleCamera": "Kamera átváltása", "videomute": "Kamera indítása / leállítása", "startvideoblur": "Háttér elhomályosítása", @@ -650,40 +675,40 @@ "safariGrantPermissions": "Válaszd az OK opciót, ha a böngésző engedélyezést kér." }, "videoSIPGW": { - "busy": "Dolgozunk az erőforrások felszabadításán. Kísérelje meg újra néhány perc múlva", - "busyTitle": "A terem szolgáltatás jelenleg foglalt", - "errorAlreadyInvited": "{{displayName}} már meg lett hívva", + "busy": "Dolgozunk az erőforrások felszabadításán. Kísérelje meg újra néhány perc múlva.", + "busyTitle": "A szoba szolgáltatás jelenleg foglalt", + "errorAlreadyInvited": "{{displayName}} -t már meghívták", "errorInvite": "A konferencia még nem lett megalakítva. Később próbálja újra.", "errorInviteFailed": "Dolgozunk a hiba elhárításán. Próbálja meg később.", "errorInviteFailedTitle": "{{displayName}} meghívása meghiúsult", - "errorInviteTitle": "Hiba a meghívó teremmel", - "pending": "{{displayName}} meg lett hívva" + "errorInviteTitle": "Hiba a meghívó szobával", + "pending": "{{displayName}} -t meghívta" }, "videoStatus": { "audioOnly": "CsH", "audioOnlyExpanded": "Jelenleg az alacsony sávszélességű mód az aktív, vagyis csak hangot lehet fogadni és képernyőmegosztást.", - "callQuality": "Videóminőség", - "hd": "HD", - "hdTooltip": "Nagy felbontású videó megtekintése", - "highDefinition": "Nagy felbontású", - "labelTooiltipNoVideo": "Nincs videó", + "callQuality": "Videominőség", + "hd": "MF", + "hdTooltip": "Magas felbontású video megtekintése", + "highDefinition": "Magas felbontású", + "labelTooiltipNoVideo": "Nincs video", "labelTooltipAudioOnly": "Alacsony sávszélességű mód aktiválva", "ld": "AF", - "ldTooltip": "Alacsony felbontású videó", + "ldTooltip": "Alacsony felbontású video", "lowDefinition": "Alacsony felbontású", "onlyAudioAvailable": "„Csak hang” mód elérhető", "onlyAudioSupported": "Csak a hang támogatott ebben a böngészőben.", "p2pEnabled": "Egyenrangú kapcsolat engedélyezve", - "p2pVideoQualityDescription": "Az egyenrangú (peer to peer) módban a kapott videóminőség csak a nagyfelbontású és a „csak hang” mód között váltható. A további beállítások nem lesz figyelembe véve az egyenrangú kapcsolat alatt.", - "recHighDefinitionOnly": "Lehetőleg nagy felbontású.", - "sd": "SD", - "sdTooltip": "Szabványos felbontású videó megtekintése", + "p2pVideoQualityDescription": "Az egyenrangú (peer to peer) módban a kapott videominőség csak a magas felbontású és a „csak hang” mód között váltható. A további beállítások nem lesznek figyelembe véve az egyenrangú kapcsolat alatt.", + "recHighDefinitionOnly": "Lehetőleg magas felbontású.", + "sd": "SF", + "sdTooltip": "Szabványos felbontású video megtekintése", "standardDefinition": "Szabványos felbontású" }, "videothumbnail": { "domute": "Némítás", "flip": "Tükrözés", - "kick": "Kirugás", + "kick": "Kirúgás", "moderator": "Moderátor", "mute": "A résztvevő le van némítva", "muted": "Némítva", @@ -696,28 +721,29 @@ "join": "Koppintson a csatlakozáshoz", "roomname": "Adja meg a terem nevét" }, - "appDescription": "Előre, csevegjen a teljes csapattal! Valóban meg lehet hívni minden ismerőst. A {{app}} teljes titkosított, 100%-ig nyílt forráskódú videókonferencia megoldás, amelyet egész nap, minden nap ingyenesen lehet használni – és még regisztrálni sem kell.", + "appDescription": "Gyerünk,csevegjen az egész csapattal. Valóban hívjon meg mindenkit, akit ismer. A {{app}} teljesen titkosított, 100% -ban nyílt forráskódú videokonferencia-megoldás, amelyet egész nap, minden nap ingyenesen használhat - fiók nélkül.", "audioVideoSwitch": { - "audio": "Hang", - "video": "Videó" + "audio": "Gyerünk, csevegjen az egész csapattal. Valóban hívjon meg mindenkit akit ismer. A {{app}} teljesen titkosított, 100% -ban nyílt forráskódú videokonferencia-megoldás, amelyet egész nap, minden nap ingyenesen használhat - fiók nélkül.", + "video": "Video" }, "calendar": "Naptár", "connectCalendarButton": "Naptár csatolása", "connectCalendarText": "Csatlakoztassa a naptárát, hogy láthassa az értekezleteket a {{app}} alkalmazásban. Továbbá, adja hozzá a {{provider}} szolgáltatót és egy kattintással lehet kezelni azokat.", "enterRoomTitle": "Új értekezlet kezdése", - "onlyAsciiAllowed": "Az értekezlet neve csak latin karaktereket és számokat tartalmazhat.", + "roomNameAllowedChars": "Az értekezlet neve nem tartalmazhatja a következő karaktereket: ?, &, :, ', \", %, #.", "go": "Indítás", - "join": "CSATLAKOZÁS", + "goSmall": "Indítás", + "join": "LÉTREHOZ /HOZZÁAD", "info": "Információ", "privacy": "Adatvédelem", "recentList": "Legutóbbi", "recentListDelete": "Törlés", "recentListEmpty": "A legutóbbi lista jelenleg üres. Csevegjen a csapattal és minden előző értekezlet itt lesz megtalálható.", "reducedUIText": "Üdvözlet a {{app}} programban!", - "roomname": "Adja meg a terem nevét", + "roomname": "Adja meg a szoba nevét", "roomnameHint": "Adja meg a kívánt nevet vagy URL-t, amelyhez csatlakozni szeretne. Bármiképp elnevezheti, csak ossza meg az értekezlet résztvevőivel, hogy ők ugyanezt a nevet tudják majd megadni.", "sendFeedback": "Visszajelzés küldése", "terms": "Feltételek", - "title": "Biztonságos, maradéktalanul felszerelt és teljesen ingyenes videókonferencia" + "title": "Biztonságos, maradéktalanul felszerelt és teljesen ingyenes videokonferencia" } } \ No newline at end of file diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-it.json b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-it.json index 68dcd6a542..d424850abe 100644 --- a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-it.json +++ b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-it.json @@ -2,15 +2,15 @@ "addPeople": { "add": "Invita", "countryNotSupported": "Non supportiamo ancora questa destinazione.", - "countryReminder": "Stai chiamando fuori dagli Stati Uniti? Assicurati di iniziare inserendo il codice paese!", + "countryReminder": "Stai chiamando fuori dagli Stati Uniti? Assicurati d'inserire il prefisso internazionale!", "disabled": "Non puoi invitare persone.", - "failedToAdd": "", - "footerText": "La chiamata dall'esterno è disabilitata.", - "loading": "Cercando persone e numeri di telefono", + "failedToAdd": "L'aggiunta di nuovi membri è fallita", + "footerText": "La chiamata all'esterno è disabilitata.", + "loading": "Sto cercando persone e numeri di telefono", "loadingNumber": "Sto validando il numero di telefono", - "loadingPeople": "Ricerca delle persone da invitare", + "loadingPeople": "Sto cercando le persone da invitare", "noResults": "Nessun risultato corrispondente", - "noValidNumbers": "Inserire un numero di telefono", + "noValidNumbers": "Per favore inserire un numero di telefono", "searchNumbers": "Aggiungi numeri di telefono", "searchPeople": "Cerca persone", "searchPeopleAndNumbers": "Cerca persone o aggiungi i loro numeri di telefono", @@ -21,17 +21,17 @@ "bluetooth": "Bluetooth", "headphones": "Cuffie", "phone": "Telefono", - "speaker": "Relatore" + "speaker": "Vivavoce" }, "audioOnly": { "audioOnly": "Solo audio" }, "calendarSync": { "addMeetingURL": "Aggiungi un collegamento alla conferenza", - "confirmAddLink": "Vuoi aggiungere un collegamento a ANDI Conference a questo evento?", + "confirmAddLink": "Vuoi aggiungere un collegamento Jitsi a questo evento?", "error": { "appConfiguration": "L'integrazione del calendario non è configurata in modo appropriato.", - "generic": "È stato riscontrato un errore. Controllare le impostazioni del calendario e ricaricare la pagina.", + "generic": "È stato riscontrato un errore. Controllare le impostazioni del calendario o ricaricare la pagina.", "notSignedIn": "È stato riscontrato un errore durante l'autenticazione per la visualizzazione degli eventi del calendario. Controllare le impostazioni del calendario e provare a ripetere l'accesso." }, "join": "Partecipa", @@ -45,7 +45,7 @@ "today": "Oggi" }, "chat": { - "error": "Errore: il tuo messaggio “{{originalText}}” non e’ stato inviato. Ragione: {{error}}", + "error": "Errore: il tuo messaggio “{{originalText}}” non e’ stato inviato. Motivo: {{error}}", "messagebox": "Digitare un messaggio", "nickname": { "popover": "Scegli un nickname", @@ -54,7 +54,7 @@ "title": "Chat" }, "connectingOverlay": { - "joiningRoom": "Collegamento al meeting in corso…" + "joiningRoom": "Collegamento al tuo meeting in corso…" }, "connection": { "ATTACHED": "Collegato", @@ -63,7 +63,7 @@ "CONNECTED": "Connesso", "CONNECTING": "Connessione", "CONNFAIL": "Connessione non riuscita", - "DISCONNECTED": "Occupato", + "DISCONNECTED": "Disconnesso", "DISCONNECTING": "Disconnessione in corso", "ERROR": "Errore", "RECONNECTING": "Si è verificato un problema di rete. Riconnessione..." @@ -124,14 +124,14 @@ "noPermission": "Permesso negato", "previewUnavailable": "Anteprima non disponibile", "selectADevice": "Seleziona un dispositivo", - "testAudio": "Riproduci un suono di test" + "testAudio": "Riproduci un suono di prova" }, "dialog": { "accessibilityLabel": { "liveStreaming": "Diretta" }, "allow": "Consenti", - "alreadySharedVideoMsg": "", + "alreadySharedVideoMsg": "Un altro utente sta condividendo un video. Questa conferenza permette di condividere un solo video alla volta.", "alreadySharedVideoTitle": "È permesso un solo video alla volta", "applicationWindow": "Finestra applicazione", "Back": "Indietro", @@ -157,9 +157,9 @@ "contactSupport": "Contatta il supporto", "copy": "Copia", "dismiss": "Scarta", - "displayNameRequired": "", + "displayNameRequired": "Tutti devono avere un nome", "done": "Fatto", - "enterDisplayName": "", + "enterDisplayName": "Inserisci il nome da visualizzare", "error": "Errore", "externalInstallationMsg": "Devi installare la nostra estensione per la condivisione desktop.", "externalInstallationTitle": "Richiesta estensione", @@ -172,31 +172,31 @@ "inlineInstallExtension": "Installa adesso", "internalError": "Ops! Qualcosa è andato storto. Questo è l'errore: {{error}}", "internalErrorTitle": "Errore interno", - "kickMessage": "", + "kickMessage": "Acc! Sei stato espulso dal meeting!", "kickParticipantButton": "Espelli", - "kickParticipantDialog": "Espellere questo partecipante?", - "kickParticipantTitle": "", - "kickTitle": "", + "kickParticipantDialog": "Sei sicuro di voler espellere questo partecipante?", + "kickParticipantTitle": "Espellere questi partecipante?", + "kickTitle": "Espulso dal meeting", "liveStreaming": "Live Streaming", "liveStreamingDisabledForGuestTooltip": "Gli ospiti non possono avviare una diretta.", "liveStreamingDisabledTooltip": "Trasmissioni in diretta disabilitate.", "lockMessage": "Impossibile bloccare la conferenza.", - "lockRoom": "", + "lockRoom": "Aggiungi una password al meeting", "lockTitle": "Blocco fallito", "logoutQuestion": "Vuoi disconnetterti e interrompere la conferenza ?", "logoutTitle": "Logout", - "maxUsersLimitReached": "", - "maxUsersLimitReachedTitle": "", + "maxUsersLimitReached": "E' stato raggiunto il numero massimo di partecipanti. La conferenza è al completo. Contatta l'organizzatore, o riprova più tardi!", + "maxUsersLimitReachedTitle": "Raggiunto limite partecipanti", "micConstraintFailedError": "Il tuo microfono non soddisfa alcuni dei requisiti richiesti.", "micNotFoundError": "Microfono non trovato.", - "micNotSendingData": "", - "micNotSendingDataTitle": "", + "micNotSendingData": "Non riusciamo a ricevere suoni dal microfono scelto. Prova a selezionare nelle impostazioni un microfono diverso, o a riavvare l'applicazione.", + "micNotSendingDataTitle": "Impossibile accedere al microfono", "micPermissionDeniedError": "Non hai concesso il permesso di usare il microfono. Puoi comunque partecipare alla conferenza ma gli altri non potranno sentirti. Usa il bottone a forma di telecamera nella barra degli indirizzi per cambiare impostazioni.", "micUnknownError": "Impossibile usare il microfono per un motivo sconosciuto.", "muteParticipantBody": "Tu non sarai in grado di riattivare il loro audio, ma loro potranno riattivarlo in qualsiasi momento.", - "muteParticipantButton": "Disattiva audio", - "muteParticipantDialog": "", - "muteParticipantTitle": "", + "muteParticipantButton": "Silenzia partecipante", + "muteParticipantDialog": "Sei sicuro di voler disattivare l'audio di questo partecipante? Saranno loro a doversi riattivare l'audio, per parlare.", + "muteParticipantTitle": "Silenzio questo partecipante?", "Ok": "Ok", "passwordLabel": "", "passwordNotSupported": "Le password per le videoconferenze non sono supportate.", @@ -216,7 +216,7 @@ "remoteControlStopMessage": "Sessione di controllo remoto terminata!", "remoteControlTitle": "Connessione desktop remoto", "Remove": "Rimuovi", - "removePassword": "", + "removePassword": "Togli la password", "removeSharedVideoMsg": "Sei sicuro di voler rimuovere il tuo video condiviso?", "removeSharedVideoTitle": "Rimuovi video condiviso", "reservationError": "Errore di sistema in prenotazione", @@ -249,10 +249,10 @@ "tokenAuthFailed": "Ci dispiace ma non sei autorizzato a partecipare a questa chiamata.", "tokenAuthFailedTitle": "Autenticazione fallita", "transcribing": "Trascrizione", - "unlockRoom": "", + "unlockRoom": "Togli la password al meeting", "userPassword": "password utente", - "WaitForHostMsg": "", - "WaitForHostMsgWOk": "", + "WaitForHostMsg": "La conferenza {{room}} non è ancora cominciata. Se sei l'organizzatore, per favore autenticati. Altrimenti, aspetta l'arrivo dell'organizzatore.", + "WaitForHostMsgWOk": "La conferenza {{room}} non è ancora cominciata. Se sei l'organizzatore, allora premi OK per autenticarti. Altrimenti, aspetta l'arrivo dell'organizzatore.", "WaitingForHost": "In attesa dell'organizzatore ...", "Yes": "Sì", "yourEntireScreen": "Schermo intero" @@ -270,41 +270,41 @@ "veryGood": "Molto Buona" }, "incomingCall": { - "answer": "Risposta", + "answer": "Rispondi", "audioCallTitle": "Chiamata in arrivo", "decline": "Scarta", - "productLabel": "da ANDI Conference", + "productLabel": "da Jitsi Meet", "videoCallTitle": "Videochiamata in arrivo" }, "info": { "accessibilityLabel": "Mostra informazioni", - "addPassword": "", - "cancelPassword": "", + "addPassword": "Aggiungi password", + "cancelPassword": "Togli password", "conferenceURL": "Collegamento:", "country": "Paese", - "dialANumber": "", + "dialANumber": "Per collegarti telefonicamente al meeting, chiama uno di questi numeri e metti il pin.", "dialInConferenceID": "PIN:", - "dialInNotSupported": "Spiacenti, la chiamata per partecipare attualmente non è supportata", + "dialInNotSupported": "Spiacenti, la partecipazionne solo telefonica non è supportata attualmente", "dialInNumber": "Componi:", - "dialInSummaryError": "", - "dialInTollFree": "", + "dialInSummaryError": "Errore nella ricerca dei numeri telefonici. Riprova più tardi.", + "dialInTollFree": "Numero verde", "genericError": "Ops, qualcosa è andato storto.", - "inviteLiveStream": "Per visualizzare la trasmissione in diretta di questo meeting, clicca su questo link: {{url}}", - "invitePhone": "", + "inviteLiveStream": "Per vedere la diretta di questo meeting, clicca su questo link: {{url}}", + "invitePhone": "Per seguire solo telefonicamente, clicca: {{number}},,{{conferenceID}}#", "invitePhoneAlternatives": "", - "inviteURLFirstPartGeneral": "", - "inviteURLFirstPartPersonal": "", - "inviteURLSecondPart": "", + "inviteURLFirstPartGeneral": "Invito a connettersi ad una conferenza.", + "inviteURLFirstPartPersonal": "{{name}} ti sta invitando ad un meeting.\n", + "inviteURLSecondPart": "\nPartecipa al meeting:\n{{url}}\n", "liveStreamURL": "Trasmissione in diretta:", "moreNumbers": "Più numeri", "noNumbers": "Nessun numero da chiamare.", - "noPassword": "Nessuno", + "noPassword": "Nessuna", "noRoom": "Non è stata specificata nessuna stanza da chiamare.", "numbers": "Numeri da chiamare", - "password": "", + "password": "Password", "title": "Condividi", - "tooltip": "Condividi collegamento e informazioni di chiamata per questa conferenza", - "label": "" + "tooltip": "Invia il collegamento e i numeri telefonici di questa conferenza", + "label": "Informazioni meeting" }, "inviteDialog": { "alertText": "", @@ -328,13 +328,13 @@ "localRecording": "Mostra o nascondi i controlli per la registrazione", "mute": "Attiva o disattiva il microfono", "pushToTalk": "Premi per parlare", - "raiseHand": "Mostra / Nascondi i video", - "showSpeakerStats": "Mostra statistiche conversanti", + "raiseHand": "Alza o abbassa la mano", + "showSpeakerStats": "Mostra statistiche", "toggleChat": "Apri o chiudi la chat", "toggleFilmstrip": "Mostra o nascondi anteprime video", "toggleScreensharing": "Cambia modalità tra videocamera e condivisione schermo", "toggleShortcuts": "Mostra o nascondi le scorciatoie", - "videoMute": "Attiva / disattiva videocamera" + "videoMute": "Accendo o spegni la videocamera" }, "liveStreaming": { "busy": "Stiamo cercando di liberare risorse per lo streaming. Riprova tra qualche minuto.", @@ -349,11 +349,11 @@ "expandedOff": "La diretta è stata interrotta", "expandedOn": "La conferenza è attualmente in diretta su YouTube.", "expandedPending": "La diretta è in fase di avvio...", - "failedToStart": "Avvio live streaming fallito", - "getStreamKeyManually": "", - "invalidStreamKey": "", - "off": "Il live streaming si è interrotto", - "on": "Live Streaming", + "failedToStart": "Avvio trasmissione in diretta fallito", + "getStreamKeyManually": "Non siamo stati in grado di trovare nessuna trasmissione dal vivo. Prova ad ottenere una chiave stream da Youtube", + "invalidStreamKey": "La chiave stream potrebbe non essere corretta.", + "off": "La diretta si è interrotta", + "on": "Trasmissione in diretta", "pending": "Avvio live stream...", "serviceName": "Servizio live streaming", "signedInAs": "Sei attualmente collegato come:", @@ -397,38 +397,38 @@ "lockRoomPasswordUppercase": "Password", "me": "io", "notify": { - "connectedOneMember": "", - "connectedThreePlusMembers": "", - "connectedTwoMembers": "", + "connectedOneMember": "{{name}} si è connesso", + "connectedThreePlusMembers": "{{name}} e altri {{count}} si sono connessi", + "connectedTwoMembers": "{{first}} e {{second}} si sono connessi", "disconnected": "disconnesso", "focus": "Focus su conferenza", "focusFail": "{{component}} non disponibile - riprova in {{ms}} sec", "grantedTo": "Permessi di moderatore garantiti a {{to}}!", "invitedOneMember": "{{displayName}} è stato invitato", - "invitedThreePlusMembers": "", - "invitedTwoMembers": "", - "kickParticipant": "", - "me": "io", + "invitedThreePlusMembers": "Hai invitato {{name}} e altri {{count}}", + "invitedTwoMembers": "Hai invitato {{first}} e {{second}}", + "kickParticipant": "{{kicked}} è stato espulso da {{kicker}}", + "me": "Io", "moderator": "Impostati i permessi di moderatore!", "muted": "Hai iniziato la conversazione con l'audio disattivato.", "mutedTitle": "Hai l'audio disattivato!", - "mutedRemotelyTitle": "", + "mutedRemotelyTitle": "Ti è stato disattivato l'audio da {{participantDisplayName}}!", "mutedRemotelyDescription": "", "passwordRemovedRemotely": "", "passwordSetRemotely": "", - "raisedHand": "", + "raisedHand": "{{name}} vorrebbe intervenire.", "somebody": "Qualcuno", "startSilentTitle": "", "startSilentDescription": "", "suboptimalExperienceDescription": "Ehm... temiamo che la tua esperienza con {{appName}} non sarà granché su questo browser. Stiamo cercando di migliorare la situazione ma, per il momento, prova ad utilizzare uno di questi browser supportati.", "suboptimalExperienceTitle": "Problemi con il browser", "unmute": "", - "newDeviceCameraTitle": "", - "newDeviceAudioTitle": "", - "newDeviceAction": "" + "newDeviceCameraTitle": "Trovata nuova videocamera", + "newDeviceAudioTitle": "Trovata nuova origine audio", + "newDeviceAction": "Usala" }, - "passwordSetRemotely": "", - "passwordDigitsOnly": "", + "passwordSetRemotely": "definita da altro utente", + "passwordDigitsOnly": "Fino a {{number}} cifre", "poweredby": "powered by", "presenceStatus": { "busy": "Occupato", @@ -498,26 +498,26 @@ "selectCamera": "Videocamera", "selectMic": "Microfono", "startAudioMuted": "Tutti cominciano con il microfono disattivato", - "startVideoMuted": "Tutti cominciano nascosti", + "startVideoMuted": "Tutti cominciano con il video disattivato", "title": "Impostazioni" }, "settingsView": { "alertOk": "OK", "alertTitle": "Attenzione", "alertURLText": "L'URL del server inserito non è valido", - "buildInfoSection": "", + "buildInfoSection": "Versione", "conferenceSection": "Conferenza", "displayName": "Nome visualizzato", "email": "Email", "header": "Impostazioni", "profileSection": "Profilo", "serverURL": "URL del server", - "startWithAudioMuted": "Inizia con l'audio mutato", - "startWithVideoMuted": "Avvia con video mutato", - "version": "" + "startWithAudioMuted": "Inizia con l'audio disattivato", + "startWithVideoMuted": "Avvia con il video disattivato", + "version": "Versione" }, "share": { - "dialInfoText": "", + "dialInfoText": "\n\n=====\n\nVuoi solo ascoltare la conferenza da un telefono?\n\n{{defaultDialInNumber}}Clicca questo link per vedere i numeri telefonici di questo meeting\n{{dialInfoPageUrl}}", "mainText": "Clicca sul link seguente per partecipare alla conferenza:\n{{roomUrl}}" }, "speaker": "Relatore", @@ -526,8 +526,8 @@ "minutes": "{{count}}m", "name": "Nome", "seconds": "{{count}}s", - "speakerStats": "Statistiche del parlante", - "speakerTime": "Tempo del conversante" + "speakerStats": "Statistiche del relatore", + "speakerTime": "Tempo del relatore" }, "startupoverlay": { "policyText": " ", @@ -550,75 +550,76 @@ "fullScreen": "Attiva/disattiva schermo intero", "hangup": "Lascia la conferenza", "invite": "Invita persone", - "kick": "", + "kick": "Espelli partecipante", "localRecording": "Abilita controlli di registrazione locale", - "lockRoom": "", - "moreActions": "Attiva/disattiva Menu avanzato", + "lockRoom": "Attiva o disattiva password", + "moreActions": "Attiva o disattiva menu avanzato", "moreActionsMenu": "Menu avanzato", - "mute": "Attiva/disattiva audio muto", + "mute": "Attiva/disattiva audio", "pip": "Attiva/disattiva immagine nell’immagine", "profile": "Modifica profilo", "raiseHand": "Attiva/disattiva alzata di mano", "recording": "Attiva/disattiva registrazione", - "remoteMute": "", + "remoteMute": "Disattiva audio partecipante", "Settings": "Attiva/disattiva impostazioni", "sharedvideo": "Attiva/disattiva condivisione YouTube", - "shareRoom": "Invita partecipante", + "shareRoom": "Invita qualcuno", "shareYourScreen": "Attiva/disattiva condivisione schermo", "shortcuts": "Attiva/disattiva scorciatoie", "show": "", "speakerStats": "Attiva/disattiva statistiche relatore", - "tileView": "Attiva/disattiva visualizzazione griglia", - "toggleCamera": "Attiva/disattiva webcam", - "videomute": "Attiva/disattiva silenziamento video", - "videoblur": "" + "tileView": "Attiva/disattiva visualizzazione a tessere", + "toggleCamera": "Cambia videocamera", + "videomute": "Attiva/disattiva videocamera", + "videoblur": "Attiva/disattiva offuscamento video" }, "addPeople": "Aggiungi persone alla chiamata", "audioOnlyOff": "Disattiva modalità solo audio", - "audioOnlyOn": "Disattiva modalità solo audio", + "audioOnlyOn": "Attiva modalità solo audio", "audioRoute": "Seleziona la periferica audio", "authenticate": "Autenticazione", "callQuality": "Gestisci qualità della chiamata", "chat": "Apri / Chiudi chat", - "closeChat": "", + "closeChat": "Chiudi chat", "documentClose": "Chiudi documento condiviso", "documentOpen": "Apri documento condiviso", "enterFullScreen": "Visualizza a schermo intero", - "enterTileView": "", + "enterTileView": "Vista a tessere", "exitFullScreen": "Esci da schermo intero", - "exitTileView": "", + "exitTileView": "Vista utente singolo", "feedback": "Lascia un feedback", "hangup": "Esci", "invite": "Invita persone", "login": "Login", "logout": "Logout", - "lowerYourHand": "", + "lowerYourHand": "Abbassa la mano", "moreActions": "Più azioni", + "moreOptions": "Più opzioni", "mute": "Microfono Attiva / Disattiva", - "openChat": "", + "openChat": "Apri una chat", "pip": "Abilita visualizzazione immagine nell’immagine", "profile": "Modifica profilo", "raiseHand": "Alza / Abbassa la mano", - "raiseYourHand": "", + "raiseYourHand": "Alza la mano", "Settings": "Impostazioni", "sharedvideo": "Condividi un video Youtube", "shareRoom": "Invita partecipante", "shortcuts": "Visualizza scorciatoie", "speakerStats": "Statistiche dell'interlocutore", - "startScreenSharing": "", - "startSubtitles": "", - "stopScreenSharing": "", - "stopSubtitles": "", + "startScreenSharing": "Inizia la condivisione dello schermo", + "startSubtitles": "Avvia sottotitoli", + "stopScreenSharing": "Ferma la condivisione dello schermo", + "stopSubtitles": "Ferma sottotitoli", "stopSharedVideo": "Ferma video YouTube", "talkWhileMutedPopup": "Stai provando a parlare? Il microfono è disattivato.", "tileViewToggle": "Attiva/disattiva visualizzazione griglia", - "toggleCamera": "Attiva/disattiva webcam", + "toggleCamera": "Cambia videocamera", "videomute": "Attiva / Disattiva videocamera", - "startvideoblur": "", - "stopvideoblur": "" + "startvideoblur": "Offusca il video", + "stopvideoblur": "Non offuscare il video" }, "transcribing": { - "ccButtonTooltip": "", + "ccButtonTooltip": "Inizia / Ferma i sottotitoli", "error": "Registrazione fallita. Prova di nuovo.", "expandedLabel": "La trascrizione della conferenza è attiva", "failedToStart": "C’è stato un errore nell’avvio del servizio di trascrizione.", @@ -654,7 +655,7 @@ "videoStatus": { "audioOnly": "AUD", "audioOnlyExpanded": "Modalita' solo audio attiva. Questa modalità permette di rispamiare banda ma non vedrai gli altri partecipanti.", - "callQuality": "", + "callQuality": "Qualità video", "hd": "HD", "highDefinition": "Alta definizione", "labelTooiltipNoVideo": "Nessun video", @@ -678,14 +679,14 @@ "muted": "Audio disattivato", "remoteControl": "Controllo remoto", "show": "", - "videomute": "" + "videomute": "Silenzia il video" }, "welcomepage": { "accessibilityLabel": { "join": "Tap per accedere", "roomname": "Inserisci Nome Stanza" }, - "appDescription": "Via avanti, video chatta con l'intero team. In effetti, invita tutti quelli che conosci. {{app}} è una soluzione di video conference totalmente crittografata, 100% open cource, che puoi utilizzare tutto il giorno, ogni giorno, gratuitamente - senza bisogno di un account.", + "appDescription": "Avvia una videochiamata con tutto il team. Invita tutti quelli che conosci. {{app}} è una soluzione per effettuare videoconferenze totalmente crittografata, 100% open source, che puoi usare sempre, ogni giorno, gratuitamente – senza bisogno di un account.", "audioVideoSwitch": { "audio": "Voce", "video": "Video" @@ -696,7 +697,7 @@ "enterRoomTitle": "Avvia una nuova conferenza", "go": "VAI", "join": "UNISCITI", - "info": "", + "info": "Informazioni", "privacy": "Privacy", "recentList": "Recente", "recentListDelete": "Cancella", @@ -707,5 +708,9 @@ "sendFeedback": "Invia feedback", "terms": "Termini di utilizzo", "title": "Il sistema di conferenza sicuro, funzionale e completamente gratuito." + }, + "lonelyMeetingExperience": { + "button": "Invita gli altri", + "youAreAlone": "Sei l'unico in riunione" } -} \ No newline at end of file +} diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-ja.json b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-ja.json index d7b61c5489..c0b58e3a69 100644 --- a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-ja.json +++ b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-ja.json @@ -533,8 +533,8 @@ }, "speaker": "スピーカー", "speakerStats": { - "hours": "{{count}} 秒", - "minutes": "{{count}} 秒", + "hours": "{{count}} 時間", + "minutes": "{{count}} 分", "name": "名前", "seconds": "{{count}} 秒", "speakerStats": "話者の統計", diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-mn.json b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-mn.json new file mode 100644 index 0000000000..4e05db4b66 --- /dev/null +++ b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-mn.json @@ -0,0 +1,777 @@ +{ + "addPeople": { + "add": "Урих", + "countryNotSupported": "Танай улсыг хараахан дэмжихгүй байна.", + "countryReminder": "АНУ-аас өөр улсруу залгах бол улсын кодоо оруулна уу!", + "disabled": "Хүмүүсийг урих боломжгүй.", + "failedToAdd": "Оролцогч нэмж чадсангүй", + "footerText": "Дуудлага хийх идэвхгүй.", + "loading": "Хүмүүс болон утасны дугаарыг хайж байна", + "loadingNumber": "Утасны дугаарыг баталгаажуулж байна", + "loadingPeople": "Урих хүмүүсийг хайж байна", + "noResults": "Үр дүн олдсонгүй", + "noValidNumbers": "Утасны дугаараа оруулна уу", + "searchNumbers": "Утасны дугаар нэмэх", + "searchPeople": "Хүмүүс хайх", + "searchPeopleAndNumbers": "Хүмүүсээс хайх эсвэл утасны дугаар нэмнэ үү", + "telephone": "Утас: {{number}}", + "title": "Хүмүүсийг хуралд урих" + }, + "audioDevices": { + "bluetooth": "Bluetooth", + "headphones": "Чихэвч", + "phone": "Утас", + "speaker": "Яригч", + "none": "Дууны төхөөрөмж байхгүй" + }, + "audioOnly": { + "audioOnly": "Чанар багасгах" + }, + "calendarSync": { + "addMeetingURL": "Хурлын холбоосыг нэмнэ үү", + "confirmAddLink": "Та энэ үйл явдалд холбоосыг нэмэхийг хүсч байна уу?", + "error": { + "appConfiguration": "Цагалбарын холболтыг зөв тохируулаагүй байна.", + "generic": "Алдаа гарсан байна. Цагалбарын тохиргоогоо шалгах эсвэл цагалбар дахин ачаалж үзнэ үү.", + "notSignedIn": "An error occurred while authenticating to see calendar events. Please check your calendar settings and try logging in again." + }, + "join": "Нэгдэх", + "joinTooltip": "Уулзалтад нэглэх", + "nextMeeting": "Дараагийн уулзалт", + "noEvents": "Удахгүй болох үйл явдал байхгүй байна.", + "ongoingMeeting": "идэвхтэй уулзалт", + "permissionButton": "Тохиргоо нээх", + "permissionMessage": "Апп-д уулзалтуудаа нэмэхийн тулд цагалбарын зөвшөөрөл шаардлагатай.", + "refresh": "Цагалбараа дахин ачаалах", + "today": "Өнөөдөр" + }, + "chat": { + "error": "Алдаа: таны мессеж илгээгдээгүй байна. Шалтгаан: {{error}}", + "fieldPlaceHolder": "Энд чатаа бичнэ үү", + "messagebox": "Зурвас бичих", + "messageTo": "Хувийн зурвас {{recipient}}", + "noMessagesMessage": "Энэ хуралд ямар ч зурвас байхгүй. Эндээс зурвасаа эхлүүл!", + "nickname": { + "popover": "Нэр бичнэ үү", + "title": "Нэрээ оруулна уу" + }, + "privateNotice": "Хувийн зурвас {{recipient}}", + "title": "Чат", + "you": "чи" + }, + "chromeExtensionBanner": { + "installExtensionText": "Install the extension for Google Calendar and Office 365 integration", + "buttonText": "Chrome Extension суулгах", + "dontShowAgain": "Энийг дахин харахгүй" + }, + "connectingOverlay": { + "joiningRoom": "Таныг хуралд холбож байна..." + }, + "connection": { + "ATTACHED": "Хавсаргасан", + "AUTHENTICATING": "Нэвтэрч байна", + "AUTHFAIL": "Нэвтрэлт амжилтгүй болсон", + "CONNECTED": "Холбогдсон", + "CONNECTING": "Холбож байна", + "CONNFAIL": "Холболт амжилтгүй болсон", + "DISCONNECTED": "Холбогдоогүй", + "DISCONNECTING": "Салгаж байна", + "ERROR": "Алдаа", + "FETCH_SESSION_ID": "Оролцогчийн холболтыг олох...", + "GET_SESSION_ID_ERROR": "Оролцогчийн хоболт дээр алдаа: {{code}}", + "GOT_SESSION_ID": "Оролцогчийн холболтыг олох... Дууссан", + "LOW_BANDWIDTH": "{{displayName}} чанарыг бууруулж видео унтраасан байна" + }, + "connectionindicator": { + "address": "Хаяг:", + "bandwidth": "Тооцоолсон чанар:", + "bitrate": "Битрат:", + "bridgeCount": "Серверийн тоо: ", + "connectedTo": "Холбогдсон:", + "e2e_rtt": "E2E RTT:", + "framerate": "Нягтаршил:", + "less": "Хураах", + "localaddress": "Дотоод хаяг:", + "localaddress_plural": "Дотоод хаягууд:", + "localport": "Дотоод порт:", + "localport_plural": "Дотоод портууд:", + "more": "Дэлгэрэнгүй", + "packetloss": "Алдагдал:", + "quality": { + "good": "Сайн", + "inactive": "Идэвхгүй", + "lost": "Алдагдалтай", + "nonoptimal": "Оромгүй", + "poor": "Муу" + }, + "remoteaddress": "Гадаад хаяг:", + "remoteaddress_plural": "Гадаад хаягууд:", + "remoteport": "Гадаад порт:", + "remoteport_plural": "Гадаад портууд:", + "resolution": "Хэмжээ:", + "status": "Холболт:", + "transport": "Transport:", + "transport_plural": "Transports:" + }, + "dateUtils": { + "earlier": "Өмнөх", + "today": "Өнөөдөр", + "yesterday": "Өчигдөр" + }, + "deepLinking": { + "appNotInstalled": "Та утсан дээрээ хурал оролцохын тулд танд {{app}} мобайл апп шаардлагатай.", + "description": "Бид таны уулзалтыг {{app}} desktop апп дотор эхлүүлэхийг оролдсон. Дахин оролдох эсвэл {{app}} веб апп дээр эхлүүлнэ үү.", + "descriptionWithoutWeb": "Бид таны хурлыг {{app}} desktop апп дотор эхлүүлэхийг оролдсон.", + "downloadApp": "Апп татаж авах", + "launchWebButton": "Вэб дээр ажиллуулах", + "openApp": "Апп-аар үргэлжлүүлэх", + "title": "Таны уулзалтыг {{app}} эхлүүлж байна....", + "tryAgainButton": "Дахин оролдоно уу" + }, + "defaultLink": "e.g. {{url}}", + "defaultNickname": "Нэрээ бич", + "deviceError": { + "cameraError": "Таны камер руу нэвтрэх үйлдэл амжилтгүй болсон байна", + "cameraPermission": "Камерын зөвшөөрөл авахад алдаа гарлаа", + "microphoneError": "Таны микрофон руу нэвтрэлт амжилтгүй боллоо", + "microphonePermission": "Микрофоны зөвшөөрөл авахад алдаа гарлаа" + }, + "deviceSelection": { + "noPermission": "Зөвшөөрөл өгөөгүй байна", + "previewUnavailable": "Урьдчилан харах боломжгүй", + "selectADevice": "Төхөөрөмж сонгоно уу", + "testAudio": "Туршилтын дуу тоглуул" + }, + "dialog": { + "accessibilityLabel": { + "liveStreaming": "Шууд дамжуулалт" + }, + "allow": "Зөвшөөр", + "alreadySharedVideoMsg": "Видео хуваалцаж байна. Хуралд нэг зэрэг зөвхөн нэг л видеог хуваалцах боломжийг олгодог..", + "alreadySharedVideoTitle": "Нэг удаад зөвхөн нэг л хуваалцсан видеог зөвшөөрнө", + "applicationWindow": "Програмын цонх", + "Back": "Буцах", + "cameraConstraintFailedError": "Таны камер зарим шаардлагатай хязгаарлалтыг хангаж чадахгүй байна.", + "cameraNotFoundError": "Камер олдсонгүй.", + "cameraNotSendingData": "Таны камерт хандах боломжгүй байна. Хэрэв өөр програм энэ төхөөрөмжийг ашиглаж байгаа эсэхийг шалгаад, тохиргоог цэснээс өөр төхөөрөмжийг сонгох эсвэл дахин ачаалж үзнэ үү.", + "cameraNotSendingDataTitle": "Камерт хандах боломжгүй байна", + "cameraPermissionDeniedError": "Та камераа ашиглах зөвшөөрөл өгөөгүй байна. Та энэ хуралд оролцох боломжтой ч бусад хүмүүс таныг харж чадахгүй. Үүнийг засахын тулд хаяг бичдэг хэсэгийн хойно байгаа камерын товчийг дарна уу.", + "cameraUnknownError": "Ямар нэг шалтгааны улмаас камерыг ашиглаж чадахгүй.", + "cameraUnsupportedResolutionError": "Таны камер шаардлагатай видеоны хэмжээг дэмждэггүй.", + "Cancel": "Цуцлах", + "close": "Хаах", + "conferenceDisconnectMsg": "Сүлжээний холболт шалгаж байна. Дахин холбогдож байна {{seconds}} сек...", + "conferenceDisconnectTitle": "Та салсан байна.", + "conferenceReloadMsg": "Бид засахаар оролдож байна. Дахин холбогдож байна {{seconds}} сек...", + "conferenceReloadTitle": "Уучлаарай. Ямар нэг алдаа гарсан байна.", + "confirm": "Батлах", + "confirmNo": "Үгүй", + "confirmYes": "Тийт", + "connectError": "Алдаа гарсан тул бид хуралтай холбогдож чадахгүй байна.", + "connectErrorWithMsg": "Алдаа гарсан тул бид конференцтай холбогдож чадахгүй байна: {{msg}}", + "connecting": "Холбож байна", + "contactSupport": "Дэмжлэгтэй холбоо барина уу", + "copy": "Хуулах", + "dismiss": "хаах", + "displayNameRequired": "Таны нэр хэн бэ?", + "done": "Дуусгах", + "enterDisplayName": "Энд нэрээ оруулна уу", + "error": "Алдаа", + "externalInstallationMsg": "Та манай десктоп хуваалцах өргөтгөлийг суулгах хэрэгтэй.", + "externalInstallationTitle": "Өргөтгөл суулгах шаардлагатай", + "goToStore": "webstore орох", + "gracefulShutdown": "Манай үйлчилгээ одоогоор засвартай байна. Дараа дахин оролдож үзнэ үү.", + "IamHost": "Үүсгэгч", + "incorrectRoomLockPassword": "Нууц үг буруу", + "incorrectPassword": "Хэрэглэгчийн нэр эсвэл нууц үг буруу байна", + "inlineInstallationMsg": "Та манай десктоп хуваалцах өргөтгөлийг суулгах хэрэгтэй.", + "inlineInstallExtension": "Одоо суулгах", + "internalError": "Ямар нэгэн зүйл буруу байна. Дараах алдаа гарсан байна: {{error}}", + "internalErrorTitle": "Дотоод алдаа", + "kickMessage": "Та дэлгэрэнгүй мэдээллийг {{participantDisplayName}} холбогдож авна уу..", + "kickParticipantButton": "Гаргах", + "kickParticipantDialog": "Та энэ оролцогчийг гаргахдаа итгэлтэй байна уу?", + "kickParticipantTitle": "Энэ оролцогчийг гаргах үү?", + "kickTitle": "{{participantDisplayName}} чамайг хурлаас гаргасан", + "liveStreaming": "Шууд дамжуулалт", + "liveStreamingDisabledForGuestTooltip": "Зочид шууд дамжуулалт эхлүүлэх боломжгүй.", + "liveStreamingDisabledTooltip": "Шууд дамжуулалтыг идэвхгүй болгох.", + "lockMessage": "Хурал түгжигдсэнгүй.", + "lockRoom": "Хурал нэмэх $t(lockRoomPasswordUppercase)", + "lockTitle": "Түгжихэд алдаа гарлаа", + "logoutQuestion": "Та хурлаас гарч, хурлыг зогсоохыг хүсэж байна уу?", + "logoutTitle": "Гарах", + "maxUsersLimitReached": "Оролцогчдын тооны дээд хязгаарт хүрсэн байна. Уулзалтын эзэмшигчтэй холбоо барина уу эсвэл дараа дахин оролдоно уу!", + "maxUsersLimitReachedTitle": "Оролцогчдын дээд хязгаарт хүрсэн байна", + "micConstraintFailedError": "Таны микрофон зарим шаардлагатай хязгаарлалтыг хангахгүй байна.", + "micNotFoundError": "Микрофон олдсонгүй.", + "micNotSendingData": "Микрофоныг дуугүй болгохын тулд компьютерийн тохиргоо руу очно уу", + "micNotSendingDataTitle": "Таны микрофоныг системийн тохиргооноос хаасан байна", + "micPermissionDeniedError": "Та микрофон ашиглах зөвшөөрөл өгөөгүй байна. Та одоо чуулга уулзалтанд оролцож болох ч бусад хүмүүс таныг сонсох боломжгүй. Үүнийг засахын тулд хаягийн талбарт байгаа камерын товчийг ашиглана уу.", + "micUnknownError": "Ямар нэг шалтгааны улмаас микрофоныг ашиглах боломжгүй байна.", + "muteEveryoneElseDialog": "Бусад оролцогчдын дуу хаалттай үед та дууг нээх боломжгүй, гэхдээ өөрийнхөө дууг нээх боломжтой.", + "muteEveryoneElseTitle": "Бүх оролцогчдын дууг хаах уу?", + "muteEveryoneDialog": "Та бүх оролцогчдын дууг хаахдаа итгэлтэй байна уу? Та тэдний дууг идэвхжүүлэх боломжгүй ч хүссэн үедээ өөрийнхөө дуу нээх боломжтой.", + "muteEveryoneTitle": "Бүх оролцогчдын дууг хаах уу?", + "muteEveryoneSelf": "Чи өөрөө", + "muteEveryoneStartMuted": "Одооноос эхлэн бүх оролцогчдын дуу хаагдана", + "muteParticipantBody": "Та тэдний дууг идэвхжүүлэх боломжгүй ч хүссэн үедээ өөрийн дууг нээх боломжтой.", + "muteParticipantButton": "Дуугүй болгох", + "muteParticipantDialog": "Та энэ оролцогчийн дууг хаахдаа итгэлтэй байна уу? Та дууг идэвхжүүлэх боломжгүй ч хүссэн үедээ өөрийн дууг нээх боломжтой.", + "muteParticipantTitle": "Энэ оролцогчийн дууг хаах уу?", + "Ok": "Ok", + "passwordLabel": "$t(lockRoomPasswordUppercase)", + "passwordNotSupported": "$t(lockRoomPassword) тохируулах нь дэмжигдэхгүй байна.", + "passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) дэмжигдэхгүй байна", + "passwordRequired": "$t(lockRoomPasswordUppercase) заавал", + "popupError": "Таны хөтөч энэ сайтаас попап цонхуудыг блоклож байна. Хөтчөө аюулгүй байдлын тохиргоон дээр гарч ирэх цонхыг идэвхжүүлээд дахин оролдоно уу.", + "popupErrorTitle": "Попап хаалттай байна", + "recording": "Бичлэг хийх", + "recordingDisabledForGuestTooltip": "Зочид бичлэг хийж болохгүй.", + "recordingDisabledTooltip": "Бичлэг хийх хаалттай.", + "rejoinNow": "Одоо дахин нэгдэх", + "remoteControlAllowedMessage": "{{user}} алсын удирдлагын хүсэлтийг хүлээн авлаа!", + "remoteControlDeniedMessage": "{{user}} алсын удирдлагын хүсэлтээс татгалзлаа!", + "remoteControlErrorMessage": "Алсын удирдлагаас {{user}} зөвшөөрөл хүсэх үед алдаа гарлаа!", + "remoteControlRequestMessage": "Та {{user}} таны десктопоос алсын зайнаас удирдахыг зөвшөөрөх үү?", + "remoteControlShareScreenWarning": "Хэрэв та \"Allow\" товчийг дарвал, таны дэлгэцийг хуваалцах болно гэдгийг анхаарна уу!", + "remoteControlStopMessage": "Алсын удирдлагын хэсэг дууссан!", + "remoteControlTitle": "Алсын удирдлагын", + "Remove": "Устгах", + "removePassword": "$t(lockRoomPassword) устгах", + "removeSharedVideoMsg": "Та хуваалцсан видеогоо устгахдаа итгэлтэй байна уу?", + "removeSharedVideoTitle": "Хуваалцсан видеог устгах", + "reservationError": "Захиалгын системийн алдаа", + "reservationErrorMsg": "Алдааны код: {{code}}, мессеж: {{msg}}", + "retry": "Дахиж", + "screenSharingFailedToInstall": "Дэлгэц хуваалцах өргөтгөлийг суулгаж чадсангүй.", + "screenSharingFailedToInstallTitle": "Дэлгэц хуваалцах өргөтгөлийг суулгаж чадсангүй", + "screenSharingFirefoxPermissionDeniedError": "Таны дэлгэцийг хуваалцах үед ямар нэг алдаа гарлаа. Та бидэнд зөвшөөрөл өгсөн эсэхээ шалгана уу. ", + "screenSharingFirefoxPermissionDeniedTitle": "Дэлгэц хуваалцахыг эхлүүлэх боломжгүй байна!", + "screenSharingPermissionDeniedError": "Таны дэлгэцийг хуваалцах зөвшөөрлийг суулгахад алдаа гарсан байна. Файлыг дахин ачааллаад, дахин оролдоно уу.", + "sendPrivateMessage": "Хувийн мессеж хүлээн авсан. Та тусдаа хариу өгөх гэж байна уу, эсвэл та бүлэгт илгээх үү?", + "sendPrivateMessageCancel": "Бүлэгт илгээнэ үү", + "sendPrivateMessageOk": "Хувийн байдлаар илгээх", + "sendPrivateMessageTitle": "Хувиараа илгээх үү?", + "serviceUnavailable": "Үйлчилгээ авах боломжгүй", + "sessTerminated": "Дуудлага саллаа", + "Share": "Хуваалцах", + "shareVideoLinkError": "YouTube-ийн зөв линк оруулна уу.", + "shareVideoTitle": "Видео хуваалцах", + "shareYourScreen": "Дэлгэцээ хуваалцах", + "shareYourScreenDisabled": "Дэлгэц хуваалцах идэвхгүй", + "shareYourScreenDisabledForGuest": "Зочид дэлгэц хуваалцах боломжгүй.", + "startLiveStreaming": "Шууд дамжуулалтыг эхлүүл", + "startRecording": "Бичлэг хийж эхэл", + "startRemoteControlErrorMessage": "Алсын удирдлага эхлүүлэх үед алдаа гарлаа!", + "stopLiveStreaming": "Шууд дамжуулалтыг зогсоо", + "stopRecording": "Бичлэгээ зогсоо", + "stopRecordingWarning": "Та бичлэгээ зогсоохдоо итгэлтэй байна уу?", + "stopStreamingWarning": "Та шууд дамжуулалтыг зогсоохдоо итгэлтэй байна уу?", + "streamKey": "Шууд дамжуулалтын түлхүүр", + "Submit": "Илгээх", + "thankYou": "{{appName}} ашиглаж буй танд баярлалаа!", + "token": "token", + "tokenAuthFailed": "Уучлаарай, та энд нэвтрэх эрхгүй байна.", + "tokenAuthFailedTitle": "Нэвтрэлт амжилтгүй", + "transcribing": "Орчуулах", + "unlockRoom": "$t(lockRoomPassword) хурлыг устгана уу", + "userPassword": "хэрэглэгчийн нууц үг", + "WaitForHostMsg": "{{room}} хурал хараахан эхлээгүй байна. Хэрэв та хост байгаа бол нэвтэрнэ үү. Үгүй бол хост ирэхийг хүлээнэ үү.", + "WaitForHostMsgWOk": "{{room}} хурал хараахан эхлээгүй байна. Хэрэв та хост эзэмшигч бол баталгаажуулахын тулд Ok дээр дарна уу. Үгүй бол хост ирэхийг хүлээнэ үү.", + "WaitingForHost": "Хостыг хүлээж байна ...", + "Yes": "Тийм", + "yourEntireScreen": "Таны дэлгэцийг бүхэлдээ" + }, + "dialOut": { + "statusMessage": "одоо {{status}} байна" + }, + "documentSharing": { + "title": "Бичиг баримт хуваалцах" + }, + "feedback": { + "average": "Дундаж", + "bad": "Муу", + "detailsLabel": "Энэ талаар илүү дэлгэрэнгүй.", + "good": "Сайн", + "rateExperience": "Хурлын туршлагаа үнэлэх", + "veryBad": "Маш муу", + "veryGood": "Маш сайн" + }, + "incomingCall": { + "answer": "Хариул", + "audioCallTitle": "Дуудлага ирлээ", + "decline": "Гаргах", + "productLabel": "Сангийн Яам", + "videoCallTitle": "Видео дуудлага ирлээ" + }, + "info": { + "accessibilityLabel": "Мэдээллийг харуулах", + "addPassword": "$t(lockRoomPassword) нэмэх", + "cancelPassword": "$t(lockRoomPassword) цуцлах", + "conferenceURL": "Холбоос:", + "country": "Улс", + "dialANumber": "Уулзалтанд оролцохын тулд эдгээр дугааруудын аль нэгрүү нь залгаад, пинг оруулна уу.", + "dialInConferenceID": "PIN:", + "dialInNotSupported": "Уучлаарай, одоогоор дуудлага хийх боломжгүй байна.", + "dialInNumber": "Дуудлага хийж байна:", + "dialInSummaryError": "Залгаж мэдээллийг авах үед алдаа гарлаа. Дараа дахин оролдож үзнэ үү.", + "dialInTollFree": "Toll Free", + "genericError": "Ямар нэг асуудал гарлаа.", + "inviteLiveStream": "Энэ уулзалтын шууд дамжуулалтыг үзэхийн тулд энэ холбоосыг дарна уу: {{url}}", + "invitePhone": "Утсаар холбогдохын тулд энэ дээр дарна уу: {{number}},,{{conferenceID}}#\n", + "invitePhoneAlternatives": "Өөр залгах дугаар хайж байна уу?\nУулзалтын дугаарыг харах: {{url}}\n\n\nХэрэв өрөөний утас руу залгах бол аудиод холбогдохгүйгээр нэгдээрэй: {{silentUrl}}", + "inviteURLFirstPartGeneral": "Та бүхнийг уулзалтад урьж байна.", + "inviteURLFirstPartPersonal": "{{name}} таныг уулзалтанд урьж байна.\n", + "inviteURLSecondPart": "\nУулзалтад нэгдээрэй:\n{{url}}\n", + "liveStreamURL": "Шууд дамжуулалт:", + "moreNumbers": "Бусад дугаар", + "noNumbers": "Залгах дугаар байхгүй байна.", + "noPassword": "Хоосон", + "noRoom": "Нэвтрэх өрөө олдсонгүй.", + "numbers": "Залгах дугаарууд", + "password": "$t(lockRoomPasswordUppercase):", + "title": "Хуваалцах", + "tooltip": "Хурлын холбоосыг хуваалцах", + "label": "Хурлын мэдээлэл" + }, + "inviteDialog": { + "alertText": "Зарим оролцогчдыг урьж чадсангүй.", + "header": "Урих", + "searchCallOnlyPlaceholder": "Утасны дугаараа оруулна уу", + "searchPeopleOnlyPlaceholder": "Оролцогчдыг хайх", + "searchPlaceholder": "Оролцогч эсвэл утасны дугаар", + "send": "Илгээх" + }, + "inlineDialogFailure": { + "msg": "Асуудал гарлаа", + "retry": "Дахин оролд", + "support": "Дэмжлэг", + "supportMsg": "Хэрэв ийм асуудал дахиад тохиолдвол холбоо бариарай" + }, + "keyboardShortcuts": { + "focusLocal": "Өөрийн видеог үзэх", + "focusRemote": "Өөр хүний видеог үзэх", + "fullScreen": "Дэлгэц дүүргэх эсвэл гарах", + "keyboardShortcuts": "Гарны товчлол", + "localRecording": "Өөрийн бичлэгийн хяналтыг үзүүлэх эсвэл нуух", + "mute": "Микрофоныг хаах эсвэл нээх", + "pushToTalk": "Яриа руу", + "raiseHand": "Гараа өргөх эсвэл доошлуул", + "showSpeakerStats": "Яригчийн статистик харах", + "toggleChat": "Зурвасыг нээх буюу хаах", + "toggleFilmstrip": "Видео бичлэгийн өнгөц зургийг үзүүлэх эсвэл нуух", + "toggleScreensharing": "Камер ба дэлгэц хуваалцах хооронд шилжинэ", + "toggleShortcuts": "Товчлолуудыг харуулах эсвэл нуух", + "videoMute": "Камераа эхлүүлэх эсвэл зогсоох", + "videoQuality": "Видеоны чанарыг удирдах" + }, + "liveStreaming": { + "busy": "Бид урсгалын чөлөөлөхөөр ажиллаж байна. Хэдэн минутын дараа дахин оролдоно уу.", + "busyTitle": "Бүх дамжуулагчид завгүй байна", + "changeSignIn": "Бүртгэл солих.", + "choose": "Шууд дамжуулалтыг сонгоно уу", + "chooseCTA": "Дамжуулалтыг сонгоно уу. Та {{email}} ашиглан нэвтэрсэн байна.", + "enterStreamKey": "YouTube шууд дамжуулалтын түлхүүрийг энд оруулна уу.", + "error": "Шууд дамжуулалт амжилтгүй болсон. Дахин оролдоно уу.", + "errorAPI": "Таны YouTube рүү нэвтрэх үед алдаа гарлаа. Дараа дахин нэвтэрнэ үү.", + "errorLiveStreamNotEnabled": "Шууд дамжуулалт {{email}} дээр идэвхжүүлээгүй байна. Шууд дамжуулалтыг идэвхжүүл эсвэл шууд дамжуулалт хийх боломжтой бүртгэлээр нэвтэрнэ үү.", + "expandedOff": "Шууд дамжуулалт зогссон байна", + "expandedOn": "Энэ хурлыг YouTube дээр шууд дамжуулж байна.", + "expandedPending": "Шууд дамжуулалтыг эхлүүлж байна...", + "failedToStart": "Шууд дамжуулалтыг эхлүүлж чадсангүй", + "getStreamKeyManually": "Шууд дамжуулалтыг хийх чадсангүй. YouTube-ээс шууд дамжуулалтын түлхүүрээ шалгаж үзээрэй.", + "invalidStreamKey": "Шууд дамжуулалтын түлхүүрээ шалгана уу.", + "off": "Шууд дамжуулалт зогссон", + "offBy": "{{name}} шууд дамжуулалтыг зогсоосон", + "on": "Шууд дамжуулалт", + "onBy": "{{name}} шууд дамжуулалт эхлүүлсэн", + "pending": "Шууд дамжуулалтыг эхлүүлж байна...", + "serviceName": "Шууд дамжуулалт үйлчилгээ", + "signedInAs": "Та одоо нэвтэрсэн байна:", + "signIn": "Google-р нэвтрэх", + "signInCTA": "YouTube дээр шууд дамжуулалтын түлхүүрээ оруулна уу.", + "signOut": "Гарах", + "start": "Шууд дамжуулалт эхлүүл", + "streamIdHelp": "Энэ юу вэ?", + "unavailableTitle": "Шууд дамжуулалт боломжгүй" + }, + "localRecording": { + "clientState": { + "off": "Off", + "on": "On", + "unknown": "Танигдаагүй" + }, + "dialogTitle": "Дотоод бичлэгийн хяналт", + "duration": "Үргэлжлэх хугацаа", + "durationNA": "N/A", + "encoding": "Encoding", + "label": "LOR", + "labelToolTip": "Дотоод бичлэг хийнэ", + "localRecording": "Дотоод бичлэг", + "me": "Надад", + "messages": { + "engaged": "Дотоод бичлэг хийдэг", + "finished": "Recording session {{token}} finished. Please send the recorded file to the moderator.", + "finishedModerator": "Recording session {{token}} finished. The recording of the local track has been saved. Please ask the other participants to submit their recordings.", + "notModerator": "Та зохицуулагч биш. Та дотоод бичлэгийг эхлүүлэх эсвэл зогсоох боломжгүй." + }, + "moderator": "Зохицуулагч", + "no": "Үгүй", + "participant": "Оролцогч", + "participantStats": "Оролцогчдын статистик", + "sessionToken": "Идэвхтэй Токен", + "start": "Бичлэг хийх", + "stop": "Бичлэг болих", + "yes": "Тийм" + }, + "lockRoomPassword": "нууц үг", + "lockRoomPasswordUppercase": "Нууц үг", + "me": "Надад", + "notify": { + "connectedOneMember": "{{name}} хуралд нэгдсэн", + "connectedThreePlusMembers": "{{name}} болон бусад {{count}} хуралд нэгдсэн", + "connectedTwoMembers": "{{first}} ба {{second}} хуралд нэгдсэн", + "disconnected": "Хурлаас гарлаа", + "focus": "Хурал фокус", + "focusFail": "{{component}} боломжгүй - {{ms}} сек дараа дахин оролдоно уу", + "grantedTo": "{{to}} зохицуулагч эрх өгөгдсөн!", + "invitedOneMember": "{{name}} урьсан байна", + "invitedThreePlusMembers": "{{name}} болон бусад {{count}} урьсан байна", + "invitedTwoMembers": "{{first}} ба {{second}} урьсан байна", + "kickParticipant": "{{kicked}} -г {{kicker}} гаргасан", + "me": "Надад", + "moderator": "Зохицуулагчийн эрх олгосон!", + "muted": "Та харилцан яриаг хаасан байна.", + "mutedTitle": "Таны дуу хаалтай байна!", + "mutedRemotelyTitle": "Таны дууг {{participantDisplayName}} хаасан байна!!", + "mutedRemotelyDescription": "Та ярихад бэлэн үедээ дууг нээж ярих боломжтой. Уулзалтад дуу чимээ гаргахгүй байхын тулд дуугаа хаагаарай.", + "passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) өөр оролцогч устгасан", + "passwordSetRemotely": "$t(lockRoomPasswordUppercase) өөр оролцогчоос хийсэн", + "raisedHand": "{{name}} ярихыг хүсч байна.", + "somebody": "Хэн нэгэн", + "startSilentTitle": "Та ямар ч аудио төхөөрөмжгүй нэгдсэн!", + "startSilentDescription": "Дууг идэвхжүүлэхийн тулд хуралд дахин нэгдээрэй", + "suboptimalBrowserWarning": "Таны хөтөч дээр бүрэн дэмжлэг ороогүй байна. Та бүрэн дэмжигдсэн хөтөчийг ашиглана уу.", + "suboptimalExperienceTitle": "Хөтөчийн анхааруулга", + "unmute": "Дуутай", + "newDeviceCameraTitle": "Шинэ камер", + "newDeviceAudioTitle": "Шинэ аудио төхөөрөмж", + "newDeviceAction": "Хэрэглэх" + }, + "passwordSetRemotely": "өөр оролцогч хийсэн", + "passwordDigitsOnly": "{{number}} хүртэлх тоо", + "poweredby": "дэмжигдсэн", + "presenceStatus": { + "busy": "Завгүй", + "calling": "Дуудаж байна...", + "connected": "Холбогдсон", + "connecting": "Холбож байна...", + "connecting2": "Холбож байна*...", + "disconnected": "Холбогдоогүй", + "expired": "Хугацаа нь дууссан", + "ignored": "Ignored", + "initializingCall": "Дуудлагыг эхлүүлж байна...", + "invited": "Урьсан", + "rejected": "Татгалзсан", + "ringing": "Дуудаж байна..." + }, + "profile": { + "setDisplayNameLabel": "Нэрээ оруулна уу", + "setEmailInput": "И-мэйл оруулна уу", + "setEmailLabel": "И-мэйл хаягаа оруулна уу", + "title": "Профайл" + }, + "raisedHand": "Ярьмаар байна", + "recording": { + "authDropboxText": "Dropbox байршуулах", + "availableSpace": "Боломжтой зай: {{spaceLeft}} MB (ойролцоогоор {{duration}} минутын бичлэг)", + "beta": "BETA", + "busy": "Бичлэгийн нөөцийг сул болгохоор ажиллаж байна. Хэдэн минутын дараа дахин оролдоно уу.", + "busyTitle": "Бүх бичигчид завгүй байна", + "error": "Бичлэг хийх амжилтгүй боллоо. Дахин оролдоно уу.", + "expandedOff": "Бичлэг хийх зогссон", + "expandedOn": "Хурлыг одоо тэмдэглэж байна.", + "expandedPending": "Бичлэгийг хийж байна...", + "failedToStart": "Бичлэг хийх амжилтгүй боллоо", + "fileSharingdescription": "Бичлэгийг хурлын оролцогчидтой хуваалцах", + "live": "ШУУД", + "loggedIn": "{{userName}} нэвтэрнэ үү", + "off": "Бичлэг зогссон", + "offBy": "{{name}} бичлэгийг зогсоосон", + "on": "Бичиж байна", + "onBy": "{{name}} бичлэг хийж эхлэв", + "pending": "Хурлыг бичихээр бэлтгэж байна...", + "rec": "REC", + "serviceDescription": "Таны бичлэгийг хадгална", + "serviceName": "Бичлэгийн үйлчилгээ", + "signIn": "Нэвтрэх", + "signOut": "Гарах", + "unavailable": "{{serviceName}} одоогоор ажиллахгүй байна. Бид асуудлыг шийдвэрлэхээр ажиллаж байна. Дараа дахин оролдож үзнэ үү.", + "unavailableTitle": "Бичлэг хийх боломжгүй" + }, + "sectionList": { + "pullToRefresh": "Шинэчлэх бол татна уу" + }, + "settings": { + "calendar": { + "about": "The {{appName}} calendar integration is used to securely access your calendar so it can read upcoming events.", + "disconnect": "Салгалаа", + "microsoftSignIn": "Sign in with Microsoft", + "signedIn": "Currently accessing calendar events for {{email}}. Click the Disconnect button below to stop accessing calendar events.", + "title": "Цагалбар" + }, + "devices": "Төхөөрөмжүүд", + "followMe": "Бүгд намайг дагаж байна", + "language": "Хэл", + "loggedIn": "{{name}} нэвтэрсэн", + "moderator": "Зохицуулагч", + "more": "Цааш", + "name": "Нэр", + "noDevice": "Байхгүй", + "selectAudioOutput": "Аудио гаралт", + "selectCamera": "Камер", + "selectMic": "Микрофон", + "startAudioMuted": "Бүгд дуугүй эхлэх", + "startVideoMuted": "Бүгд дүрсгүй эхлэх", + "title": "Тохиргоо" + }, + "settingsView": { + "advanced": "Нарийвчилсан", + "alertOk": "OK", + "alertTitle": "Анхааруулга", + "alertURLText": "Оруулсан серверийн URL хүчингүй байна", + "buildInfoSection": "Мэдээлэл оруулах", + "conferenceSection": "Хурал", + "disableCallIntegration": "Үндсэн дуудлагад өгөх тохиргоог идэвхгүй болгох", + "disableP2P": "Peer-To-Peer горим идэвхгүй болгох", + "displayName": "Дэлгэц нэр", + "email": "Имэйл", + "header": "Тохиргоо", + "profileSection": "Профайл", + "serverURL": "Серверийн URL", + "showAdvanced": "Нарийвчилсан тохиргоог харуулах", + "startWithAudioMuted": "Аудио дуугүй болгох", + "startWithVideoMuted": "Видеог дууг хаах", + "version": "Хувилбар" + }, + "share": { + "dialInfoText": "\n\n=====\n\nУтсан дээрээ залгахыг хүсч байна уу?\n\n{{defaultDialInNumber}}Энэ уулзалтын утасны дугаарлуу залгахыг харахын тулд энэ холбоос дээр дарна уу\n{{dialInfoPageUrl}}", + "mainText": "Уулзалтанд нэгдэхийн тулд дараах холбоосыг дарна уу:\n{{roomUrl}}" + }, + "speaker": "Яригч", + "speakerStats": { + "hours": "{{count}}ц", + "minutes": "{{count}}м", + "name": "Нэр", + "seconds": "{{count}}с", + "speakerStats": "Яригчийн статистик", + "speakerTime": "Яригчийн цаг" + }, + "startupoverlay": { + "policyText": " ", + "title": "{{app}} нь таны микрофон болон камерыг ашиглана." + }, + "suspendedoverlay": { + "rejoinKeyTitle": "Дахин нэгдэх", + "text": "Дахин холбохын тулд Rejoin товчийг дарна уу.", + "title": "Энэ компьютер унтарсан учир таны видео дуудлага тасарлаа." + }, + "toolbar": { + "accessibilityLabel": { + "audioOnly": "Зөвхөн аудио", + "audioRoute": "Дууны төхөөрөмж сонго", + "callQuality": "Видеоны чанар", + "cc": "Хадмал орчуулга", + "chat": "Зурвасын цонх", + "document": "Бичиг баримт хуваалцах", + "download": "Манай програмуудыг татах", + "feedback": "Санал хүсэлтээ үлдээх", + "fullScreen": "Бүтэн дэлгэц", + "hangup": "Салгах", + "help": "Тусламж", + "invite": "Хүмүүсийг урих", + "kick": "Оролцогчийг гаргах", + "localRecording": "Дотоод бичлэгийн хяналт", + "lockRoom": "Нууц үг өгөх", + "moreActions": "Бусад цэс", + "moreActionsMenu": "Бусад цэс", + "moreOptions": "Илүү сонголт", + "mute": "Дууг хаах", + "muteEveryone": "Бүх дууг хаах", + "pip": "Зураг зураг горим", + "privateMessage": "Хувийн зурвас илгээх", + "profile": "Өөрийн профайлыг засах", + "raiseHand": "Гараа өргө", + "recording": "Бичлэг хийх", + "remoteMute": "Оролцогч дууг хаах", + "Settings": "Тохиргоо", + "sharedvideo": "Youtube-н видео хуваалцах", + "shareRoom": "Хүн урих", + "shareYourScreen": "Дэлгэц хуваалцах", + "shortcuts": "Товчлол", + "show": "Үзүүлэх", + "speakerStats": "Яригчийн статистик", + "tileView": "Зэрэгцүүлж харах", + "toggleCamera": "Камер", + "videomute": "Дүрсгүй видео", + "videoblur": "Видео бүдэгрүүлэх" + }, + "addPeople": "Таны дуудлагад хүн нэмэх", + "audioOnlyOff": "Бага дамжуулах горимыг идэвхгүй болгох", + "audioOnlyOn": "Бага дамжуулах горимыг идэвхжүүлэх", + "audioRoute": "Дууны төхөөрөмж сонгох", + "authenticate": "Нэвтрэлт", + "callQuality": "Видеоны чанар", + "chat": "Зурвас нээх/хаах", + "closeChat": "Зурвас хаах", + "documentClose": "Хуваалцсан бичиг баримт хаах", + "documentOpen": "Хуваалцсан бичиг баримт нээх", + "download": "Манай програмуудыг татах", + "enterFullScreen": "Бүтэн дэлгэцээр харах", + "enterTileView": "Зэрэгцүүлж харах", + "exitFullScreen": "Бүтэн дэлгэцээс гарах", + "exitTileView": "Зэрэгцүүлж харах болих", + "feedback": "Санал хүсэлтээ үлдээх", + "hangup": "Салгах", + "help": "Тусламж", + "invite": "Хүмүүс урих", + "login": "Нэвтрэх", + "logout": "Гарах", + "lowerYourHand": "Гараа болих", + "moreActions": "Бусад үйлдэл", + "moreOptions": "Бусад тохиргоо", + "mute": "Дуу хаах/нээх", + "muteEveryone": "Бүх дууг хаах", + "noAudioSignalTitle": "Таны микрофоноос оруулах оролт байхгүй байна!", + "noAudioSignalDesc": "Хэрэв та системийн тохиргоо эсвэл техник хангамжаас үүнийг идэвхгүй болгоогүй бол төхөөрөмжийг солиж үзнэ үү.", + "noAudioSignalDescSuggestion": "Хэрэв та системийн тохиргоо эсвэл техник хангамжаас үүнийг идэвхгүй болгоогүй бол санал болгосон төхөөрөмжид шилжүүлнэ үү.", + "noAudioSignalDialInDesc": "Залгаж ашиглаж болно:", + "noAudioSignalDialInLinkDesc": "Залгах дугаарууд", + "noisyAudioInputTitle": "Таны микрофон шуугиантай байна!", + "noisyAudioInputDesc": "Таны микрофон шуугиж байна, дууг нь хаах эсвэл өөрчилнө үү.", + "openChat": "Зурвас нээлттэй", + "pip": "Зураг-зураг горим оруулах", + "privateMessage": "Хувийн зурвас илгээх", + "profile": "Профайлаа засна уу", + "raiseHand": "Гараа өргөх/болих", + "raiseYourHand": "Гараа өргө", + "Settings": "Тохиргоо", + "sharedvideo": "YouTube-н видео хуваалцах", + "shareRoom": "Хэн нэгнийг урих", + "shortcuts": "Товчлол харах", + "speakerStats": "Яригчийн статистик", + "startScreenSharing": "Дэлгэц хуваалцахыг эхлүүл", + "startSubtitles": "Хадмал орчуулгыг эхлүүл", + "stopScreenSharing": "Дэлгэц хуваалцахыг зогсоох", + "stopSubtitles": "Хадмал орчуулгыг зогсоох", + "stopSharedVideo": "YouTube видео зогсоох", + "talkWhileMutedPopup": "Ярьж үзмээр байна уу? Дуу хаалттай байна.", + "tileViewToggle": "Зэрэгцүүлж харах", + "toggleCamera": "Камер", + "videomute": "Камер нээх/хаах", + "startvideoblur": "Дэвсгэрийг бүдгэрүүл", + "stopvideoblur": "Бүдэгрүүлэлтийг болиулах" + }, + "transcribing": { + "ccButtonTooltip": "Хадмал орчуулгыг харуулах/болих", + "error": "Орчуулга амжилтгүй боллоо. Дахин оролдоно уу.", + "expandedLabel": "Хадмал орчуулгыг бичиж байна", + "failedToStart": "Хадмал орчуулга эхлүүлж чадсангүй", + "labelToolTip": "Хурлын хадмал орчуулга", + "off": "Хадмал орчуулга больсон", + "pending": "Хурлын хадмал орчуулга хийхэд бэлдэж байна...", + "start": "Хадмал орчуулгыг харуулах", + "stop": "Хадмал орчуулгыг болиул", + "tr": "TR" + }, + "userMedia": { + "androidGrantPermissions": "Хөтөчөөс зөвшөөрөл хүсэх тохиолдолд Allow дарна уу.", + "chromeGrantPermissions": "Хөтөчөөс зөвшөөрөл хүсэх тохиолдолд Allow дарна уу.", + "edgeGrantPermissions": "Хөтөчөөс зөвшөөрөл хүсэх тохиолдолд Yes дарна уу.", + "electronGrantPermissions": "Камер болон микрофон ашиглах зөвшөөрөл өгнө үү", + "firefoxGrantPermissions": "Хөтөчөөс зөвшөөрөл хүсэх тохиолдолд Share Selected Device дарна уу.", + "iexplorerGrantPermissions": "Хөтөчөөс зөвшөөрөл хүсэх тохиолдолд OK дарна уу.", + "nwjsGrantPermissions": "Камер болон микрофон ашиглах зөвшөөрөл өгнө үү", + "operaGrantPermissions": "Хөтөчөөс зөвшөөрөл хүсэх тохиолдолд Allow дарна уу.", + "react-nativeGrantPermissions": "Хөтөчөөс зөвшөөрөл хүсэх тохиолдолд Allow дарна уу.", + "safariGrantPermissions": "Хөтөчөөс зөвшөөрөл хүсэх тохиолдолд OK дарна уу." + }, + "videoSIPGW": { + "busy": "Бид нөөцийг чөлөөлөхөөр ажиллаж байна. Хэдэн минутын дараа дахин оролдоно уу.", + "busyTitle": "Үйлчилгээ одоогоор завгүй байна", + "errorAlreadyInvited": "{{displayName}} урьсан байна", + "errorInvite": "Хурал хараахан эхлээгүй байна. Дараа дахин оролдож үзнэ үү.", + "errorInviteFailed": "Бид асуудлыг шийдвэрлэхээр ажиллаж байна. Дараа дахин оролдож үзнэ үү.", + "errorInviteFailedTitle": "{{displayName}} урилга амжилтгүй болсон", + "errorInviteTitle": "Хуралд урихад алдаа гарлаа", + "pending": "{{displayName}} урьсан байна" + }, + "videoStatus": { + "audioOnly": "AUD", + "audioOnlyExpanded": "Таны дамжуулах чадвар муу байна. Энэ горимд та зөвхөн аудио болон дэлгэцийн хуваалцахыг хүлээн авах боломжтой.", + "callQuality": "Видеоны чанар", + "hd": "HD", + "hdTooltip": "Өндөр нягтаршилтай видеог үзэж байна", + "highDefinition": "Өндөр нягтаршил", + "labelTooiltipNoVideo": "Видео байхгүй", + "labelTooltipAudioOnly": "Дамжуулалтын багтаамж бага горим идэвхжсэн", + "ld": "LD", + "ldTooltip": "Бага нягтаршилтай видео үзэж байна", + "lowDefinition": "Бага нягтаршил", + "onlyAudioAvailable": "Зөвхөн аудио ашиглах боломжтой", + "onlyAudioSupported": "Энэ хөтчид аудио ашиглах боломжтой.", + "p2pEnabled": "P2P идэвхтэй", + "p2pVideoQualityDescription": "P2P горим дээр зөвхөн өндөр нягтаршилтай видео болон аудио хооронд л шилжүүлэх боломжтой. P2P гарах хүртэл бусад тохиргоог хийх боломжгүй.", + "recHighDefinitionOnly": "Өндөр нягтаршилтайг илүүд үздэг.", + "sd": "SD", + "sdTooltip": "Стандарт нарийвчлалтай видео үзэж байна", + "standardDefinition": "Стандарт нягтаршил" + }, + "videothumbnail": { + "domute": "Дуу хаах", + "domuteOthers": "Бүх дууг хаах", + "flip": "Урсах", + "kick": "Гаргах", + "moderator": "Зохицуулагч", + "mute": "Оролцогч дуугүй байна", + "muted": "Дуугүй", + "remoteControl": "Алсын удирдлагыг эхлүүлэх / зогсоох", + "show": "Үзүүлэх", + "videomute": "Оролцогч камераа зогсоосон байна" + }, + "welcomepage": { + "accessibilityLabel": { + "join": "Товшоод нэгдэх", + "roomname": "Хурлын нэрийг оруулна уу" + }, + "appDescription": "Таньдаг бүх хүмүүсийг урь. {{app}} нь бүрэн шифрлэгдсэн, 100% нээлттэй, видео хурлын шийдэл бөгөөд та өдөр бүр үнэ төлбөргүй ашиглаж болно.", + "audioVideoSwitch": { + "audio": "Дуутай", + "video": "Видео" + }, + "calendar": "Цагалбар", + "connectCalendarButton": "Цагалбараа холбоно уу", + "connectCalendarText": "Цагалбар дээрх уулзалтуудаа {{app}} дээр оруулж болно. Та цагалбараа холбоход болно.", + "enterRoomTitle": "Шинэ хурал эхлүүлэх", + "roomNameAllowedChars": "Хурлын нэр нь эдгээр тэмдэгтүүдийн аль нэгийг агуулж болохгүй: ?, &, :, ', \", %, #.", + "go": "OK", + "goSmall": "OK", + "join": "ҮҮСГЭХ / НЭГДЭХ", + "info": "Мэдээлэл", + "privacy": "Нууцлал", + "recentList": "Онцлох", + "recentListDelete": "Устгах", + "recentListEmpty": "Таны жагсаалт хоосон байна. Таны хийсэн бүх хурлууд энд байна.", + "reducedUIText": "{{app}}, тавтай морил!", + "roomname": "Хурлын нэрийг оруулна уу", + "roomnameHint": "Нэгдэхийг хүсч буй хурлын нэр, URL-ийг оруулна уу. Та хурлын нэрээ үүсгэж болно. хуралд оролцох хүмүүстээ тэр нэрийг өгөөрэй.", + "sendFeedback": "Санал илгээх", + "terms": "Нөхцөлүүд", + "title": "Аюулгүй, үнэгүй видео хурал хийх боломжтой" + }, + "lonelyMeetingExperience": { + "button": "Бусдыг урь", + "youAreAlone": "Та энэ хуралд ганцаараа байна" + } +} diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-nl.json b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-nl.json index 04614beb55..e13025046d 100644 --- a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-nl.json +++ b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-nl.json @@ -21,16 +21,16 @@ "bluetooth": "Bluetooth", "headphones": "Hoofdtelefoon", "phone": "Telefoon", - "speaker": "Spreker" + "speaker": "Speaker" }, "audioOnly": { "audioOnly": "Alleen audio" }, "calendarSync": { "addMeetingURL": "Een link naar de vergadering toevoegen", - "confirmAddLink": "Wilt u een Jitsi-link naar deze gebeurtenis toevoegen?", + "confirmAddLink": "Wilt u een Jitsi-link aan deze gebeurtenis toevoegen?", "error": { - "appConfiguration": "De Agenda-integratie is niet naar behoren geconfigureerd.", + "appConfiguration": "De agenda-integratie is niet juist ingesteld.", "generic": "Er is een fout opgetreden. Controleer de agenda-instellingen of vernieuw de agenda.", "notSignedIn": "Er is een fout opgetreden tijdens de verificatie voor het weergeven van agendagebeurtenissen. Controleer de agenda-instellingen en probeer u opnieuw aan te melden." }, @@ -40,18 +40,23 @@ "noEvents": "Er zijn geen gebeurtenissen gepland.", "ongoingMeeting": "actieve vergadering", "permissionButton": "Instellingen openen", - "permissionMessage": "U hebt een machtiging voor Agenda nodig om uw vergaderingen weer te geven in de app.", + "permissionMessage": "U hebt een machtiging voor Agenda nodig om uw afspraken weer te geven in de app.", "refresh": "Agenda vernieuwen", "today": "Vandaag" }, "chat": { "error": "Fout: uw bericht \"{{originalText}}\" is niet verzonden. Reden: {{error}}", + "fieldPlaceHolder": "Type hier je bericht", "messagebox": "Typ een bericht", + "messageTo": "Privébericht aan {{recipient}}", + "noMessagesMessage": "Er zijn nog geen berichten in deze bijkeenkomst. Begin een gesprek!", "nickname": { "popover": "Kies een bijnaam", "title": "Voer een bijnaam in om de chatfunctie te gebruiken" }, - "title": "Chat" + "privateNotice": "Privébericht aan {{recipient}}", + "title": "Chat", + "you": "jij" }, "connectingOverlay": { "joiningRoom": "Er wordt verbinding gemaakt met de vergadering..." @@ -132,7 +137,7 @@ "liveStreaming": "Livestream" }, "allow": "Toestaan", - "alreadySharedVideoMsg": "Er wordt al een video gedeeld door een ander lid. In deze vergadering kan slechts één video tegelijkertijd worden gedeeld.", + "alreadySharedVideoMsg": "Er wordt al een video gedeeld door een andere deelnemer. In deze vergadering kan slechts één video tegelijkertijd worden gedeeld.", "alreadySharedVideoTitle": "Slechts één gedeelde video tegelijkertijd toegestaan", "applicationWindow": "Toepassingsvenster", "Back": "Terug", @@ -176,10 +181,10 @@ "kickMessage": "U bent uit de vergadering verwijderd.", "kickParticipantButton": "Verwijderen", "kickParticipantDialog": "Weet u zeker dat u deze deelnemer wilt verwijderen?", - "kickParticipantTitle": "Dit lid verwijderen?", + "kickParticipantTitle": "Deze deelnemer verwijderen?", "kickTitle": "Verwijderd uit vergadering", "liveStreaming": "Livestream", - "liveStreamingDisabledForGuestTooltip": "Gasten kunnen livestream niet starten.", + "liveStreamingDisabledForGuestTooltip": "Gasten kunnen de livestream niet starten.", "liveStreamingDisabledTooltip": "Het starten van de livestream is uitgeschakeld.", "lockMessage": "Het vergrendelen van de vergadering is mislukt.", "lockRoom": "Wachtwoord voor vergadering toevoegen", @@ -188,7 +193,7 @@ "logoutTitle": "Afmelden", "maxUsersLimitReached": "Het maximale aantal leden is bereikt. De vergadering is vol. Neem contact op met de eigenaar van de vergadering of probeer het later opnieuw.", "maxUsersLimitReachedTitle": "Maximaal aantal leden bereikt", - "micConstraintFailedError": "Uw microfoon voldoet niet aan alle vereiste beperkingen.", + "micConstraintFailedError": "Uw microfoon voldoet niet aan alle vereiste randvoorwaarden.", "micNotFoundError": "Microfoon niet gevonden.", "micNotSendingData": "Er is geen toegang tot uw microfoon verkregen. Selecteer een ander apparaat in de instellingen of laad de toepassing opnieuw.", "micNotSendingDataTitle": "Geen toegang tot de microfoon", @@ -196,8 +201,8 @@ "micUnknownError": "Kan de microfoon om een onbekende reden niet gebruiken.", "muteParticipantBody": "U kunt het dempen van anderen niet opheffen, maar zij kunnen dit wel op elk gewenst moment voor zichzelf doen.", "muteParticipantButton": "Dempen", - "muteParticipantDialog": "Weet u zeker dat u deze deelnemer wilt dempen? U kunt het dempen niet opheffen, maar dit kan deze persoon wel op elk gewenst moment zelf doen.", - "muteParticipantTitle": "Dit lid dempen?", + "muteParticipantDialog": "Weet u zeker dat u deze deelnemer wilt dempen? U kunt het dempen niet opheffen, maar deze deelnemer kan dat wel op elk gewenst moment zelf doen.", + "muteParticipantTitle": "Deze deelnemer dempen?", "Ok": "OK", "passwordLabel": "Wachtwoord", "passwordNotSupported": "Het instellen van een wachtwoord voor een vergadering wordt niet ondersteund.", @@ -227,7 +232,7 @@ "screenSharingFailedToInstallTitle": "Installatie van extensie voor het delen van het scherm is mislukt", "screenSharingFirefoxPermissionDeniedError": "Er is iets misgegaan tijdens het delen van uw scherm. Controleer of u hier toestemming voor hebt verleend.", "screenSharingFirefoxPermissionDeniedTitle": "Scherm delen kan niet worden gestart.", - "screenSharingPermissionDeniedError": "Er is iets misgegaan met de machtigingen voor de extensie voor het delen van het scherm. Laad de toepassing opnieuw en probeer het nog eens.", + "screenSharingPermissionDeniedError": "Er is iets misgegaan met de permissies voor het delen van het scherm. Laad de toepassing opnieuw en probeer het nog eens.", "serviceUnavailable": "Service niet beschikbaar", "sessTerminated": "Gesprek beëindigd", "Share": "Delen", @@ -332,13 +337,13 @@ "raiseHand": "Uw hand opsteken of laten zakken", "showSpeakerStats": "Sprekerstatistieken weergeven", "toggleChat": "Chatgesprek openen of sluiten", - "toggleFilmstrip": "Videominiaturen weergeven of verbergen", + "toggleFilmstrip": "Toon of verberg videominiaturen", "toggleScreensharing": "Schakelen tussen camera en het delen van het scherm", "toggleShortcuts": "Sneltoetsen weergeven of verbergen", "videoMute": "Uw camera starten of stoppen" }, "liveStreaming": { - "busy": "Er worden streamingresources vrijgemaakt. Probeer het over enkele minuten opnieuw.", + "busy": "We werken aan het vrijmaken van streaming-middelen. Probeer het over enkele minuten opnieuw.", "busyTitle": "Alle streamers zijn momenteel bezet", "changeSignIn": "Wissel van account.", "choose": "Een livestream kiezen", @@ -421,16 +426,16 @@ "somebody": "Iemand", "startSilentTitle": "", "startSilentDescription": "", - "suboptimalExperienceDescription": "Helaas zal uw {{appName}}-ervaring hier niet optimaal zijn. Mogelijk wordt dit in de toekomst verbeterd, maar tot die tijd vragen we u een van de volledig ondersteunde browsers te gebruiken.", + "suboptimalExperienceDescription": "Helaas zal uw {{appName}}-ervaring hier niet optimaal zijn. We proberen dit in de toekomst te verbeteren, maar tot die tijd kunt u proberen een van de volledig ondersteunde browsers te gebruiken.", "suboptimalExperienceTitle": "Browserwaarschuwing", "unmute": "", "newDeviceCameraTitle": "Nieuwe camera gedetecteerd", "newDeviceAudioTitle": "Nieuw audioapparaat gedetecteerd", "newDeviceAction": "Gebruik" }, - "passwordSetRemotely": "ingesteld door een ander lid", + "passwordSetRemotely": "ingesteld door een andere deelnemer", "passwordDigitsOnly": "Maximaal {{number}} cijfers", - "poweredby": "powered by", + "poweredby": "mogelijk gemaakt door", "presenceStatus": { "busy": "Bezet", "calling": "Bellen...", @@ -503,16 +508,18 @@ "title": "Instellingen" }, "settingsView": { + "advanced": "Geavanceerd", "alertOk": "OK", "alertTitle": "Waarschuwing", "alertURLText": "De ingevoerde server-URL is ongeldig", - "buildInfoSection": "Buildgegevens", - "conferenceSection": "Conferentie", + "buildInfoSection": "Versiegegevens", + "conferenceSection": "Bijeenkomsten", "displayName": "Weergavenaam", "email": "E‑mail", "header": "Instellingen", "profileSection": "Profiel", "serverURL": "Server-URL", + "showAdvanced": "Toon geavanceerde instellingen", "startWithAudioMuted": "Starten met audio gedempt", "startWithVideoMuted": "Starten met video gedempt", "version": "Versie" @@ -595,6 +602,7 @@ "logout": "Afmelden", "lowerYourHand": "Uw hand laten zakken", "moreActions": "Meer acties", + "moreOptions": "Meer opties", "mute": "Dempen/dempen opheffen", "openChat": "Chat openen", "pip": "Beeld-in-beeld-modus activeren", @@ -675,11 +683,11 @@ "flip": "Omslaan", "kick": "Verwijderen", "moderator": "Moderator", - "mute": "Lid is gedempt", + "mute": "Deelnemer is gedempt", "muted": "Gedempt", "remoteControl": "Extern beheer", "show": "", - "videomute": "Lid heeft de camera gestopt" + "videomute": "Deelnemer heeft de camera gestopt" }, "welcomepage": { "accessibilityLabel": { @@ -705,8 +713,12 @@ "reducedUIText": "", "roomname": "Naam van ruimte invoeren", "roomnameHint": "Voer de naam of URL in van de ruimte die u wilt betreden. U kunt een naam verzinnen, maar geef de naam wel door aan de andere deelnemers, zodat zij dezelfde naam kunnen invoeren.", - "sendFeedback": "Feedback verzenden", + "sendFeedback": "Feedback sturen", "terms": "Voorwaarden", "title": "Veilige, volledig uitgeruste en geheel gratis videovergaderingen" + }, + "lonelyMeetingExperience": { + "button": "Anderen uitnodigen", + "youAreAlone": "Je bent de enige in dit gesprek" } -} \ No newline at end of file +} diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-oc.json b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-oc.json index 5dea340f88..af4f9a81ea 100644 --- a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-oc.json +++ b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-oc.json @@ -46,13 +46,18 @@ "today": "Uèi" }, "chat": { - "error": "Error : vòstre messatge « {{originalText}} » es pas estat enviat. Rason : {{error}}", + "error": "Error : lo messatge es pas estat enviat. Rason : {{error}}", + "fieldPlaceHolder": "Picatz vòstre messatge aquí", "messagebox": "Picatz un messatge", + "messageTo": "Messatge privat per {{recipient}}", + "noMessagesMessage": "I a pas cap de messatge dins la conferéncia pel moment. Començat una conversacion aquí !", "nickname": { "popover": "Causissètz un escais", "title": "Picatz un escais-nom per utilizar la messatjariá" }, - "title": "Messatjariá" + "privateNotice": "Messatge privat per {{recipient}}", + "title": "Messatjariá", + "you": "vos" }, "connectingOverlay": { "joiningRoom": "Connexion a vòstra reünion…" @@ -196,7 +201,7 @@ "micUnknownError": "Impossible d'utilizar lo microfòn per una rason desconeguda.", "muteParticipantBody": "Poiretz pas lo tornar activar lo microfòn, mai eles pòdon o far quand vòlon.", "muteParticipantButton": "Copar lo son", - "muteParticipantDialog": "", + "muteParticipantDialog": "Volètz vertadièrament copar lo son a aqueste participant ? Poiretz pas lo tornar la votz, mas eles pòdon restablir la comunicacion quand vòlgan.", "muteParticipantTitle": "Copar lo micro als participants ?", "Ok": "D'acòrdi", "passwordLabel": "SENHAL", @@ -228,6 +233,10 @@ "screenSharingFirefoxPermissionDeniedError": "Quicòm a fach mèuca quand èrem a ensajar de partejar vòstre ecran. Mercés de verificar qu’avètz donat l’autorizacion de lo partejar.", "screenSharingFirefoxPermissionDeniedTitle": "Ops ! Avèm pas pogut aviar lo partatge d’ecran.", "screenSharingPermissionDeniedError": "Òups ! Quicòm s'es pas ben passat amb l'autorizacion de vòstra extension de partatge d'ecran. Mercés de recargar e tornar ensajar.", + "sendPrivateMessage": "Avètz recentament recebut un messatge privat. Avètz ensajat d’i respondre en privat, o volètz enviar lo messatge al grop ?", + "sendPrivateMessageCancel": "Enviar al grop", + "sendPrivateMessageOk": "Enviar en privat", + "sendPrivateMessageTitle": "Enviar en privat ?", "serviceUnavailable": "Servici indisponible", "sessTerminated": "Sonada acabada", "Share": "Partejar", @@ -261,6 +270,9 @@ "dialOut": { "statusMessage": "ara es {{status}}" }, + "documentSharing": { + "title": "Document partejat" + }, "feedback": { "average": "Mejana", "bad": "Marrida", @@ -287,12 +299,12 @@ "dialInConferenceID": "PIN :", "dialInNotSupported": "Las sonadas son pas encara foncionalas.", "dialInNumber": "Compausar :", - "dialInSummaryError": "", + "dialInSummaryError": "Error en recuperant las informacions per sonar. Volgatz tornar mai tard.", "dialInTollFree": "Sonada gratuïta", "genericError": "Ops, quicòm a fach mèuca.", "inviteLiveStream": "Per veire lo flux en dirècte de la conferéncia, clicatz aqueste ligam : {{url}}", - "invitePhone": "", - "invitePhoneAlternatives": "", + "invitePhone": "Per jónher per telefòn a la plaça, compausatz aquò : {{number}},,{{conferenceID}}#\n", + "invitePhoneAlternatives": "Cercatz mai de numèros de telefòn ?\nFar veire los numèros de sonada de la reünion : {{url}}\n\n\nSe volètz sonar tanben un telefòn de sala, jonhètz sens connectar l’àudio : {{silentUrl}}", "inviteURLFirstPartGeneral": "Sètz convidat a participar a la conferéncia.", "inviteURLFirstPartPersonal": "{{name}} vos convida a la conferéncia.\n", "inviteURLSecondPart": "\nParticipar a la conferéncia :\n{{url}}\n", @@ -302,7 +314,7 @@ "noPassword": "Pas cap", "noRoom": "Cap de sala pas donada per la jónher.", "numbers": "Sonar de numèros", - "password": "", + "password": "$t(lockRoomPasswordUppercase) :", "title": "Partejar", "tooltip": "Partejar lo ligam e las informacions d’aquesta conferéncia", "label": "Info conferéncia" @@ -352,12 +364,12 @@ "expandedOn": "La conferéncia es difusada sus YouTube.", "expandedPending": "La difusion en dirècte comença...", "failedToStart": "La difusion en dirècte a pas capitat de s'aviar", - "getStreamKeyManually": "", + "getStreamKeyManually": "Avèm pas pogut recuperar cap de flux en dirècte. Ensajatz d’obténer vòstre clau de difusion sus YouTube.", "invalidStreamKey": "La clau de difusion en dirècte es benlèu pas corrècta.", "off": "La difusion en dirècte es estada arrestada", - "offBy": "", + "offBy": "{{name}} a arrestat la difusion en dirècte", "on": "La difusion en dirècte es estada arrestada", - "onBy": "", + "onBy": "{{name}} a començat la difusion en dirècte", "pending": "Començar lo dirècte...", "serviceName": "Servici de difusion en dirècte", "signedInAs": "Sètz connectat coma :", @@ -417,14 +429,14 @@ "muted": "Avètz començat la conversacion en mut.", "mutedTitle": "Sètz en mut !", "mutedRemotelyTitle": "{{participantDisplayName}} vos a mes en silenci !", - "mutedRemotelyDescription": "", + "mutedRemotelyDescription": "Podètz totjorn activar vòstre microfòn per prendre la paraula. Desactivatz lo microfò quand terminetz per evitar los bruches parasits.", "passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) tirat per un autre participant", "passwordSetRemotely": "$t(lockRoomPasswordUppercase) definit per un autre participant", "raisedHand": "{{name}} volriá parlar.", "somebody": "Qualqu'un", "startSilentTitle": "Avètz jonch sens cap de sortida àudio !", "startSilentDescription": "Rejónher la conferéncia per activar l’àudio", - "suboptimalBrowserWarning": "", + "suboptimalBrowserWarning": "Planhèm que vòstra experiéncia de la conferéncia siá pas de las bonas. Sèm a cercar de solucions per melhorar aquò, d’aquel temps, ensajatz un dels navegators compatibles.", "suboptimalExperienceTitle": "Avertiment del navegador", "unmute": "Restablir lo son", "newDeviceCameraTitle": "Nòva camèra detectada", @@ -470,9 +482,9 @@ "live": "DIRÈCTE", "loggedIn": "Session a {{userName}}", "off": "Enregistrament arrestar", - "offBy": "", + "offBy": "{{name}} a arrestat l’enregistrament", "on": "Enregistrament", - "onBy": "", + "onBy": "{{name}} a començat l’enregistrament", "pending": "Preparacion de l’enregistrament de la conferéncia...", "rec": "ENRG", "serviceDescription": "Vòstre enregistrament serà salvagardat pel servici dedicat.", @@ -509,22 +521,26 @@ "title": "Paramètres" }, "settingsView": { + "advanced": "Avançat", "alertOk": "D’acòrdi", "alertTitle": "Avertiment", "alertURLText": "L’URL del servidor es pas valida", "buildInfoSection": "Informacions de generacion", "conferenceSection": "Conferéncia", + "disableCallIntegration": "Desactivar l’integracion nativa de las sonadas", + "disableP2P": "Desactivar lo mòde par a par", "displayName": "Escais-nom", "email": "Corrièl", "header": "Paramètres", "profileSection": "Perfil", "serverURL": "URL del servidor", + "showAdvanced": "Mostrar los paramètres avançats", "startWithAudioMuted": "Començar sens son", "startWithVideoMuted": "Començar sens vièdo", "version": "Version" }, "share": { - "dialInfoText": "", + "dialInfoText": "\n\n=====\n\nVolètz sonar de vòstre telefòn estant ?\n\n{{defaultDialInNumber}}Clicatz lo ligam per veire los numèros de telefòn d’aquesta conferéncia\n{{dialInfoPageUrl}}", "mainText": "Copiatz lo ligam seguent per dintrar dins la conferéncia :\n{{roomUrl}}" }, "speaker": "Nautparlaire", @@ -553,17 +569,20 @@ "cc": "Passar als jostítols", "chat": "Passar a la fenèstra chat", "document": "Tampar los documents partejats", + "download": "Telecargar nòstra aplicacion", "feedback": "Daissar un comentari", "fullScreen": "Passar al ecran complèt", "hangup": "Quitar la sonada", + "help": "Ajuda", "invite": "Convidar de monde", "kick": "Exclure un participan ", "localRecording": "Passar al panèl d’enregistraments locals", - "lockRoom": "Tirar lo senhal de la conferéncia", + "lockRoom": "Tirar/Metre lo senhal de la conferéncia", "moreActions": "Passar al menú mai d’accions", "moreActionsMenu": "Mai de menús d’accion", "mute": "Copar lo son", "pip": "Activar/Desactivar lo mòde Picture-in-Picture", + "privateMessage": "Enviar un messatge privat", "profile": "Modificar vòstre perfil", "raiseHand": "Demandar la paraula", "recording": "Passar al enregistraments", @@ -573,12 +592,12 @@ "shareRoom": "Convidar qualqu’un", "shareYourScreen": "Passar a la captura d’ecran", "shortcuts": "Passar als acorchis", - "show": "", + "show": "Mostrar davant", "speakerStats": "Mostrar/Amagar los estatisticas de paraula", "tileView": "Activar/Desactivar la vista en mosaïc", "toggleCamera": "Passar a la camèra", "videomute": "Silenciar la vidèo", - "videoblur": "" + "videoblur": "Enfoscar o non la vidèo" }, "addPeople": "Ajustar de monde a vòstra sonada", "audioOnlyOff": "Desactivar lo mòde connexion febla", @@ -590,20 +609,26 @@ "closeChat": "Tampar la messatjariá", "documentClose": "Tampar los documents partejats", "documentOpen": "Dobrir los documents partejats", + "download": "Telecargar nòstra aplicacion", "enterFullScreen": "Veire l’ecran complèt", "enterTileView": "Dintrar dins la vista mosaïca", "exitFullScreen": "Sortir de l’ecran complèt", "exitTileView": "Quitar la vista mosaïca", "feedback": "Daissar un comentari", "hangup": "Quitar", + "help": "Ajuda", "invite": "Convidar de monde", "login": "Connexion", "logout": "Desconnexion", "lowerYourHand": "Baissar la man", "moreActions": "Mai d’opcions", "mute": "Mut / Actiu", + "noAudioSignalTitle": "I a pas cap de son en entrada del microfòn !", + "noAudioSignalDesc": "S’avètz pas volontàriament copat lo son a partir dels paramètres sistèma o material, pensatz de cambiar d’aparelh.", + "noAudioSignalDescSuggestion": "S’avètz pas volontàriament copat lo son a partir dels paramètres sistèma o material, pensatz d’utilizar un dels aparelhs seguents :", "openChat": "Dobrir la messatjariá ", "pip": "Passar al mòde Picture-in-Picture", + "privateMessage": "Enviar un messatge privat", "profile": "Modificar vòstre perfil", "raiseHand": "Demandar / Daissar la paraula", "raiseYourHand": "Levar la man", @@ -673,7 +698,7 @@ "onlyAudioAvailable": "Pas que l’àudio es disponible", "onlyAudioSupported": "Sèm compatibles solament amb l’àudio dins aqueste navigator.", "p2pEnabled": "Connexion par a par activada", - "p2pVideoQualityDescription": "", + "p2pVideoQualityDescription": "En mòde par a par, la qualitat vidèo que recebètz pòt solament passar de nauta a àudio solament. Los autres paramètres seràn pas preses en compte fins que quitetz lo mòde par a par.", "recHighDefinitionOnly": "Nauta definicion preferida.", "sd": "SD", "sdTooltip": "Difusion vidèo en definicion estandard", @@ -687,7 +712,7 @@ "mute": "Un participant a copat son micro", "muted": "Mut", "remoteControl": "Contraròtle alonhat", - "show": "", + "show": "Mostrar davant", "videomute": "Lo participant a arrestat la camèra" }, "welcomepage": { @@ -704,9 +729,10 @@ "connectCalendarButton": "Connectar lo calendari", "connectCalendarText": "Connectatz vòstre calendièr per veire vòstras reünions dins {{app}}. Ajustatz tanben las reünions de {{provider}} a vòstre calendièr e aviatz-las amb un sol clic.", "enterRoomTitle": "Començar una nòva conferéncia", - "onlyAsciiAllowed": "", + "roomNameAllowedChars": "Lo nom de la conferéncia deu pas conténer aqueles caractèrs : ?, &, :, ', \", %, #.", "go": "Crear", - "join": "PARTICIPATZ", + "goSmall": "Crear", + "join": "CREAR / REJÓNHER", "info": "Infor", "privacy": "Vida privada", "recentList": "Recents", diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-pl.json b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-pl.json index 62af5f4552..44e22b6760 100644 --- a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-pl.json +++ b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-pl.json @@ -22,10 +22,10 @@ "headphones": "Słuchawki", "phone": "Telefon", "speaker": "Głośnik", - "none": "" + "none": "Brak dostępnych urządzeń dźwiękowych" }, "audioOnly": { - "audioOnly": "za mała przepustowość" + "audioOnly": "Niska przepustowość" }, "calendarSync": { "addMeetingURL": "Dodaj odnośnik do spotkania", @@ -46,13 +46,18 @@ "today": "Dzisiaj" }, "chat": { - "error": "Błąd: Twoja wiadomość \"{{originalText}}\" nie została wysłana. Powód: {{error}}", + "error": "Błąd: Twoja wiadomość nie została wysłana. Powód: {{error}}", + "fieldPlaceHolder": "", "messagebox": "Wpisz wiadomość", + "messageTo": "Prywatna wiadomość do {{recipient}}", + "noMessagesMessage": "", "nickname": { "popover": "Wybierz swój nick", - "title": "Wpisz swoje imię i nazwisko, aby użyć rozmowy" + "title": "Wpisz swoją nazwę, aby użyć rozmowy" }, - "title": "Rozmowa" + "privateNotice": "Prywatna wiadomość do {{recipient}}", + "title": "Rozmowa", + "you": "Ty" }, "connectingOverlay": { "joiningRoom": "Łączenie z Twoim spotkaniem..." @@ -71,38 +76,38 @@ }, "connectionindicator": { "address": "Adres:", - "bandwidth": "Zakładana przepustowość:", + "bandwidth": "Szacowana przepustowość:", "bitrate": "Szybkość transmisji:", "bridgeCount": "Liczba serwerów: ", "connectedTo": "Podłączone do:", - "framerate": "Częstotliwość wyświetlania klatek:", + "framerate": "Klatek na sekundę:", "less": "Pokaż mniej", "localaddress_0": "Adres lokalny:", "localaddress_1": "Adresy lokalne:", - "localaddress_2": "Adresów lokalnych:", + "localaddress_2": "Adresy lokalne:", "localport_0": "Port lokalny:", "localport_1": "Porty lokalne:", - "localport_2": "Portów lokalnych:", + "localport_2": "Porty lokalne:", "more": "Pokaż więcej", - "packetloss": "Strata pakietów:", + "packetloss": "Utrata pakietów:", "quality": { - "good": "Prawdziwy", - "inactive": "Nieaktywny", - "lost": "Zaginiony", + "good": "Dobre", + "inactive": "Nieaktywne", + "lost": "Utracone", "nonoptimal": "Nieoptymalne", - "poor": "Słaby" + "poor": "Słabe" }, "remoteaddress_0": "Adres zdalny:", "remoteaddress_1": "Adresy zdalne:", - "remoteaddress_2": "Adresów zdalnych:", + "remoteaddress_2": "Adresy zdalne:", "remoteport_0": "Port zdalny:", "remoteport_1": "Porty zdalne:", - "remoteport_2": "Portów zdalnych:", + "remoteport_2": "Porty zdalne:", "resolution": "Rozdzielczość:", "status": "Połączenie:", - "transport_0": "Przekazywanie:", - "transport_1": "Przekazywania:", - "transport_2": "Przekazywań:" + "transport_0": "Transport:", + "transport_1": "Transporty:", + "transport_2": "Transporty:" }, "dateUtils": { "earlier": "Wcześniej", @@ -123,7 +128,7 @@ "defaultNickname": "np. Ziutek Kowalski", "deviceError": { "cameraError": "Błąd dostępu do Twojej kamery", - "cameraPermission": "Błąd podczas przetwarzania uprawnień do kamery", + "cameraPermission": "Błąd podczas otrzymywania uprawnień do kamery", "microphoneError": "Błąd dostępu do Twojego mikrofonu", "microphonePermission": "Błąd podczas otrzymywania uprawnień do mikrofonu" }, @@ -156,7 +161,7 @@ "conferenceReloadMsg": "Staramy się to naprawić. Ponowne połączenie za {{seconds}} sekund...", "conferenceReloadTitle": "Niestety, coś poszło nie tak.", "confirm": "Potwierdź", - "confirmNo": "", + "confirmNo": "Nie", "confirmYes": "Tak", "connectError": "Ocho! Cos poszło nie tak, nie można podłaczyć się do tej konferencji.", "connectErrorWithMsg": "Upsss! Coś poszło nie tak i nie możemy podłączyć się do tej konferencji: {{msg}}", @@ -204,7 +209,7 @@ "muteParticipantButton": "Wyciszenie", "muteParticipantDialog": "Czy na pewno wyciszyć tego uczestnika? Nie będziesz mógł wyłączyć wyciszenia uczestników, ale oni mogą samodzielnie wyłączyć wyciszenie w dowolnym momencie.", "muteParticipantTitle": "Wyciszyć tego uczestnika?", - "Ok": "Ok", + "Ok": "OK", "passwordLabel": "$t(lockRoomPasswordUppercase)", "passwordNotSupported": "Ustanowienie spotkania $t(lockRoomPassword) nie jest obsługiwane.", "passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) nie jest obsługiwane", @@ -234,6 +239,10 @@ "screenSharingFirefoxPermissionDeniedError": "Coś poszło nie tak podczas próby współdzielenia Twojego ekranu. Upewnij się, że udzieliłeś zgody na tą próbę. ", "screenSharingFirefoxPermissionDeniedTitle": "Ups! Nie byliśmy w stanie rozpocząć współdzielenia ekranu!", "screenSharingPermissionDeniedError": "Ups! Coś poszło nie tak z prawami dostępu do wtyczki współdzielenia ekranu. Wczytaj ponownie i spróbuj jeszcze raz.", + "sendPrivateMessage": "Niedawno otrzymałeś prywatną wiadomość. Czy zamierzałeś odpowiedzieć na nią prywatnie, czy chcesz wysłać wiadomość do grupy?", + "sendPrivateMessageCancel": "Wyślij do grupy", + "sendPrivateMessageOk": "Wyślij prywatnie", + "sendPrivateMessageTitle": "Wysłać prywatnie?", "serviceUnavailable": "Usługa jest niedostępna", "sessTerminated": "Połączenie przerwane", "Share": "Współdziel", @@ -267,17 +276,20 @@ "dialOut": { "statusMessage": "jest teraz {{status}}" }, + "documentSharing": { + "title": "Współdzielony dokument" + }, "feedback": { - "average": "Średni", - "bad": "Źle", + "average": "Średnio", + "bad": "Źle", "detailsLabel": "Powiedz nam o tym więcej.", - "good": "Prawdziwy", - "rateExperience": "Oceń proszę swoje doświadczenia z konferencji", + "good": "Dobrze", + "rateExperience": "Jak oceniasz tę konferencję?", "veryBad": "Bardzo źle", - "veryGood": "1: Bardzo dobrze" + "veryGood": "Bardzo dobrze" }, "incomingCall": { - "answer": "Odpowiedz", + "answer": "Odbierz", "audioCallTitle": "Przychodzące połączenie", "decline": "Odrzuć", "productLabel": "z Jitsi Meet", @@ -311,7 +323,7 @@ "password": "$t(lockRoomPasswordUppercase):", "title": "Współdziel", "tooltip": "Udostępnij odnośnik i informacje do wdzwonienia się na to spotkanie", - "label": "Informacje o spotkaniu" + "label": "Poinformuj o spotkaniu" }, "inviteDialog": { "alertText": "Nie udało się zaprosić niektórych uczestników.", @@ -352,18 +364,18 @@ "chooseCTA": "Wybierz opcję transmisji. Jesteś obecnie zalogowany jako {{email}}.", "enterStreamKey": "Wpisz tutaj swój klucz transmisji na żywo YouTube.", "error": "Transmitowanie na żywo nie powiodło się. Spróbuj ponownie.", - "errorAPI": "", + "errorAPI": "Wystąpił błąd podczas uzyskiwania dostępu do transmisji w YouTube. Proszę spróbować zalogować się ponownie.", "errorLiveStreamNotEnabled": "", "expandedOff": "Transmisja na żywo została zatrzymana", - "expandedOn": "", + "expandedOn": "Spotkanie jest obecnie transmitowane na YouTube.", "expandedPending": "Transmisja na żywo rozpoczyna się...", "failedToStart": "Transmitowanie na żywo nie uruchomiło się", - "getStreamKeyManually": "", + "getStreamKeyManually": "Nie byliśmy w stanie pobrać żadnych transmisji na żywo. Spróbuj uzyskać klucz do transmisji na żywo z YouTube.", "invalidStreamKey": "Klucz transmisji na żywo może być nieprawidłowy.", "off": "Transmitowanie na żywo zostało zatrzymane", - "offBy": "", + "offBy": "{{name}} zatrzymał transmisję na żywo", "on": "Strumień live", - "onBy": "", + "onBy": "{{name}} rozpoczął transmisję na żywo", "pending": "Start strumieniowania live...", "serviceName": "Usługa transmisji na żywo", "signedInAs": "Jesteś obecnie zalogowany jako:", @@ -385,7 +397,7 @@ "durationNA": "N/D", "encoding": "Kodowanie", "label": "", - "labelToolTip": "", + "labelToolTip": "Nagrywanie lokalne jest włączone", "localRecording": "Nagrywanie lokalne", "me": "To ja", "messages": { @@ -395,7 +407,7 @@ "notModerator": "Nie jesteś moderatorem. Nie możesz rozpoczynać i zatrzymywać lokalnego nagrywania." }, "moderator": "Moderujący", - "no": "", + "no": "Nie", "participant": "Uczestnik", "participantStats": "Statystyki uczestników", "sessionToken": "Token sesji", @@ -415,7 +427,7 @@ "focusFail": "{{component}} jest niedostępny - ponowienie w ciągu {{ms}} sec", "grantedTo": "Prawa moderatora przyznane {{to}}!", "invitedOneMember": "{{name}} został zaproszony", - "invitedThreePlusMembers": "", + "invitedThreePlusMembers": "{{name}} i {{count}} innych osób zostało zaproszone", "invitedTwoMembers": "{{first}} i {{second}} zostali zaproszeni", "kickParticipant": "{{kicked}} został usunięty przez {{kicker}}", "me": "To ja", @@ -423,12 +435,12 @@ "muted": "Rozpoczęto wyciszenie konwersacji.", "mutedTitle": "Jesteś wyciszony!", "mutedRemotelyTitle": "Zostałeś wyciszony przez {{participantDisplayName}}!", - "mutedRemotelyDescription": "", + "mutedRemotelyDescription": "Zawsze możesz wyłączyć wyciszenie, gdy będziesz gotowy do mówienia. Wycisz, gdy skończysz, aby nie hałasować podczas spotkania.", "passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) usunięty przez innego uczestnika", "passwordSetRemotely": "$t(lockRoomPasswordUppercase) ustawiony przez innego uczestnika", "raisedHand": "{{name}} chce mówić.", "somebody": "Ktoś", - "startSilentTitle": "", + "startSilentTitle": "Dołączyłeś bez wyjścia dźwiękowego!", "startSilentDescription": "Ponownie dołącz do spotkania, aby włączyć dźwięk", "suboptimalBrowserWarning": "", "suboptimalExperienceTitle": "Ostrzeżenie przeglądarki", @@ -452,7 +464,7 @@ "initializingCall": "Inicjalizacja połączenia...", "invited": "Zaproszony", "rejected": "Odrzucony", - "ringing": "" + "ringing": "Dzwonek..." }, "profile": { "setDisplayNameLabel": "Podaj swoją wyświetlaną nazwę", @@ -464,7 +476,7 @@ "recording": { "authDropboxText": "Prześlij na Dropbox", "availableSpace": "", - "beta": "", + "beta": "BETA", "busy": "Pracujemy nad uwolnieniem zasobów nagrywania. Proszę spróbować ponownie za kilka minut.", "busyTitle": "Wszystkie urządzenia nagrywania są obecnie zajete", "error": "Nagranie się nie powiodło. Proszę spróbować ponownie.", @@ -476,17 +488,17 @@ "live": "NA ŻYWO", "loggedIn": "Zalogowano jako {{userName}}", "off": "Nagrywanie zatrzymane", - "offBy": "", + "offBy": "{{name}} zatrzymał nagrywanie", "on": "Nagrywanie", - "onBy": "", + "onBy": "{{name}} rozpoczął nagrywanie", "pending": "Przygotowanie do nagrania spotkania...", "rec": "NAGRYWANIE", - "serviceDescription": "", + "serviceDescription": "Twoje nagranie zostanie zapisane przez usługę nagrywania", "serviceName": "Usługa nagrywania", "signIn": "Zaloguj się", "signOut": "Wyloguj się", "unavailable": "", - "unavailableTitle": "" + "unavailableTitle": "Nagrywanie niedostępne" }, "sectionList": { "pullToRefresh": "Przeciągnij, aby odświeżyć" @@ -500,51 +512,55 @@ "title": "Kalendarz" }, "devices": "Urządzenia", - "followMe": "Wszyscy za mną", + "followMe": "Wszyscy widzą mnie", "language": "Język", - "loggedIn": "", - "moderator": "Moderujący", + "loggedIn": "Zalogowano jako {{name}}", + "moderator": "Moderacja", "more": "Więcej", "name": "Nazwa", "noDevice": "Brak", "selectAudioOutput": "Wyjście audio", "selectCamera": "Kamera", "selectMic": "Mikrofon", - "startAudioMuted": "Wszyscy się wyciszyli", - "startVideoMuted": "Wszyscy się ukryli", + "startAudioMuted": "Wycisz wszystkich dołączających", + "startVideoMuted": "Ukryj wszystkich dołączających", "title": "Ustawienia" }, "settingsView": { + "advanced": "", "alertOk": "OK", "alertTitle": "Uwaga", "alertURLText": "Wprowadzony adres URL serwera jest nieprawidłowy", "buildInfoSection": "Informacja o kompilacji", "conferenceSection": "Konferencja", + "disableCallIntegration": "", + "disableP2P": "", "displayName": "Wyświetlana nazwa", "email": "E-mail", "header": "Ustawienia", "profileSection": "Profil", "serverURL": "Adres URL serwera", + "showAdvanced": "", "startWithAudioMuted": "Rozpocznij z wyciszonym dźwiękiem", "startWithVideoMuted": "Rozpocznij z wyłączonym obrazem", "version": "Wersja" }, "share": { "dialInfoText": "", - "mainText": "" + "mainText": "Kliknij na poniższy odnośnik, aby dołączyć do spotkania:\n{{roomUrl}}" }, "speaker": "Głośnik", "speakerStats": { - "hours": "", - "minutes": "", + "hours": "{{count}} godz.", + "minutes": "{{count}} min.", "name": "Nazwa", - "seconds": "", + "seconds": "{{count}} sek.", "speakerStats": "Statystyki mówców", "speakerTime": "" }, "startupoverlay": { "policyText": " ", - "title": "" + "title": "{{app}} potrzebuje używać Twój mikrofon i kamerę." }, "suspendedoverlay": { "rejoinKeyTitle": "Dołącz ponownie", @@ -559,9 +575,11 @@ "cc": "Przełączanie napisów", "chat": "Przełączanie okna rozmowy", "document": "Przełączanie wspólnego dokumentu", + "download": "Pobierz nasze aplikacje", "feedback": "Zostaw swoją opinię", "fullScreen": "Przełączanie trybu pełnoekranowego", "hangup": "Zostaw rozmowę", + "help": "Pomoc", "invite": "Zapraszaj ludzi", "kick": "Usuń uczestnika", "localRecording": "Przełączanie lokalnych urządzeń sterujących zapisem danych", @@ -570,25 +588,26 @@ "moreActionsMenu": "Więcej działań w menu", "mute": "Uruchamianie wyciszonego audycji", "pip": "Tryb przełączania obrazu-w-obrazie", + "privateMessage": "Wyślij wiadomość prywatną", "profile": "Edytuj swój profil", "raiseHand": "Przełączyć rękę w górę", "recording": "Przełączanie nagrywania", "remoteMute": "Wycisz uczestnika", "Settings": "Ustawienia przełączania", - "sharedvideo": "", + "sharedvideo": "Przełącz udostępnianie obrazu na YouTube", "shareRoom": "Zaproś kogoś", "shareYourScreen": "Przełączanie podziału ekranu", "shortcuts": "Przełączanie skrótów klawiszowych", "show": "", "speakerStats": "Przełączanie statystyk dotyczących mówców", - "tileView": "Przełączanie kafelkowego widoku", + "tileView": "Przełącz widok kafelkowy", "toggleCamera": "Przełączanie kamery", "videomute": "Przełączanie wyciszonego filmu wideo", - "videoblur": "" + "videoblur": "Przełącz rozmazanie obrazu" }, "addPeople": "Dodaj ludzi do swojego telefonu", - "audioOnlyOff": "", - "audioOnlyOn": "", + "audioOnlyOff": "Wyłącz tryb słabego łącza", + "audioOnlyOn": "Włącz tryb słabego łącza", "audioRoute": "Wybierz urządzenie dźwiękowe", "authenticate": "Uwierzytelnianie", "callQuality": "Zarządzanie jakością obrazu", @@ -596,51 +615,57 @@ "closeChat": "Zamknij rozmowę", "documentClose": "Zamknij wspólny dokument", "documentOpen": "Otwarty współdzielony dokument", + "download": "Pobierz nasze aplikacje", "enterFullScreen": "Wyświetlanie pełnego ekranu", "enterTileView": "Wejdź w kafelkowy widok", "exitFullScreen": "Wyświetlanie pełnego ekranu", "exitTileView": "Wyjdź z kafelkowego widoku", "feedback": "Zostaw swoją opinię", "hangup": "Opuść", + "help": "Pomoc", "invite": "Zapraszaj ludzi", "login": "Zaloguj", "logout": "Wyloguj", - "lowerYourHand": "Opuść swą rękę", + "lowerYourHand": "Opuść rękę", "moreActions": "Więcej działań", - "mute": "Wycisz / Pogłośnij", + "mute": "Włącz / Wyłącz mikrofon", + "noAudioSignalTitle": "", + "noAudioSignalDesc": "", + "noAudioSignalDescSuggestion": "", "openChat": "Otwórz rozmowę", "pip": "Wprowadź tryb obrazu w obrazie", + "privateMessage": "Wyślij wiadomość prywatną", "profile": "Edytuj swój profil", - "raiseHand": "Podnieś / Opuść swą rękę", - "raiseYourHand": "Podnieś swą rękę", + "raiseHand": "Podnieś / Opuść rękę", + "raiseYourHand": "Podnieś rękę", "Settings": "Ustawienia", - "sharedvideo": "Udostępniaj wideo w Youtube", + "sharedvideo": "Udostępnij wideo w Youtube", "shareRoom": "Zaproś kogoś", - "shortcuts": "Wyświetlanie skrótów", - "speakerStats": "Statystyki głośników", + "shortcuts": "Wyświetl skróty", + "speakerStats": "Statystyki mówców", "startScreenSharing": "Zacznij współdzielenie ekranu", - "startSubtitles": "", - "stopScreenSharing": "", - "stopSubtitles": "", + "startSubtitles": "Uruchom napisy", + "stopScreenSharing": "Zatrzymaj współdzielenie ekranu", + "stopSubtitles": "Zatrzymaj napisy", "stopSharedVideo": "Zatrzymaj wideo z YouTube", "talkWhileMutedPopup": "Próbujesz mówić? Jesteś wyciszony.", "tileViewToggle": "Przełączanie kafelkowego widoku", "toggleCamera": "Przełączanie kamery", "videomute": "Włącz / Wyłącz kamerę", - "startvideoblur": "", - "stopvideoblur": "" + "startvideoblur": "Rozmaż moje tło", + "stopvideoblur": "Wyłącz rozmazanie tła" }, "transcribing": { "ccButtonTooltip": "Uruchom / Zatrzymaj napisy", "error": "Przepisywanie się nie powiodło. Proszę spróbować ponownie.", - "expandedLabel": "", - "failedToStart": "", - "labelToolTip": "", - "off": "", - "pending": "", - "start": "", - "stop": "", - "tr": "" + "expandedLabel": "Transkrypcja jest obecnie włączona", + "failedToStart": "Błąd uruchomienia transkrypcji", + "labelToolTip": "Spotkanie jest transkrybowane", + "off": "Transkrypcja została zatrzymana", + "pending": "Przygotowanie do transkrypcji spotkania...", + "start": "Rozpocznij wyświetlanie napisów", + "stop": "Zatrzymaj wyświetlanie napisów", + "tr": "TR" }, "userMedia": { "androidGrantPermissions": "Wybierz Pozwól, gdy przeglądarka zapyta o pozwolenie.", @@ -657,32 +682,32 @@ "videoSIPGW": { "busy": "", "busyTitle": "Usługa pokoju jest obecnie zajęta", - "errorAlreadyInvited": "", - "errorInvite": "", - "errorInviteFailed": "", - "errorInviteFailedTitle": "", - "errorInviteTitle": "", + "errorAlreadyInvited": "{{displayName}} jest już zaproszony", + "errorInvite": "Konferencja nie została jeszcze ustanowiona. Prosimy spróbować ponownie później.", + "errorInviteFailed": "Pracujemy nad rozwiązaniem tego problemu. Prosimy ponownie spróbować później.", + "errorInviteFailedTitle": "Błąd zaproszenia {{displayName}}", + "errorInviteTitle": "Błąd zaproszenia do pokoju", "pending": "{{displayName}} został zaproszony" }, "videoStatus": { - "audioOnly": "", - "audioOnlyExpanded": "", + "audioOnly": "DŹW", + "audioOnlyExpanded": "Jesteś w trybie słabego łącza. W tym trybie będziesz otrzymywać tylko dźwięk i udostępnianie ekranu.", "callQuality": "Jakość obrazu", "hd": "HD", - "hdTooltip": "", + "hdTooltip": "Podgląd obrazu w wysokiej rozdzielczości", "highDefinition": "Wysoka rozdzielczość", "labelTooiltipNoVideo": "Brak obrazu", - "labelTooltipAudioOnly": "", + "labelTooltipAudioOnly": "Włączono tryb słabego łącza", "ld": "LD", - "ldTooltip": "", + "ldTooltip": "Podgląd obrazu w niskiej rozdzielczości", "lowDefinition": "Niska rozdzielczość", "onlyAudioAvailable": "Dostępny jest tylko dźwięk", "onlyAudioSupported": "Obsługujemy tylko dźwięk w tej przeglądarce.", "p2pEnabled": "Połączenie Peer to Peer włączone", "p2pVideoQualityDescription": "", - "recHighDefinitionOnly": "", + "recHighDefinitionOnly": "Preferowana wysoka rozdzielczość.", "sd": "SD", - "sdTooltip": "", + "sdTooltip": "Podgląd obrazu w standardowej rozdzielczości", "standardDefinition": "Standardowa rozdzielczość" }, "videothumbnail": { @@ -710,9 +735,10 @@ "connectCalendarButton": "Podłącz swój kalendarz", "connectCalendarText": "", "enterRoomTitle": "Rozpocznij nowe spotkanie", - "onlyAsciiAllowed": "", + "roomNameAllowedChars": "Nazwa spotkania nie powinna zawierać żadnego z tych znaków: ?, &, :, ', \", %, #.", "go": "IDŹ", - "join": "DOŁĄCZ", + "goSmall": "IDŹ", + "join": "", "info": "Informacje", "privacy": "Polityka prywatności", "recentList": "Niedawno", diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-ptBR.json b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-ptBR.json index 8bb410c58d..0b7be7112d 100644 --- a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-ptBR.json +++ b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-ptBR.json @@ -22,7 +22,7 @@ "headphones": "Fones de ouvido", "phone": "Celular", "speaker": "Alto-falantes", - "none": "" + "none": "Sem dispositivos de áudio disponível" }, "audioOnly": { "audioOnly": "Largura de banda baixa" @@ -46,13 +46,18 @@ "today": "Hoje" }, "chat": { - "error": "Erro: sua mensagem \"{{originalText}}\" não foi enviada. Motivo: {{error}}", + "error": "Erro: sua mensagem não foi enviada. Motivo: {{error}}", + "fieldPlaceHolder": "Digite sua mensagem aqui", "messagebox": "Digite uma mensagem", + "messageTo": "Mensagem privada para {{recipient}}", + "noMessagesMessage": "Não há mensagens na reunião ainda. Inicie uma conversa aqui!", "nickname": { "popover": "Escolha um apelido", "title": "Digite um apelido para usar o bate-papo" }, - "title": "Bate-papo" + "privateNotice": "Mensagem privada para {{recipient}}", + "title": "Bate-papo", + "you": "você" }, "connectingOverlay": { "joiningRoom": "Conectando você à reunião…" @@ -67,7 +72,11 @@ "DISCONNECTED": "Desconectado", "DISCONNECTING": "Desconectando", "ERROR": "Erro", - "RECONNECTING": "Ocorreu um problema de rede. Reconectando..." + "RECONNECTING": "Ocorreu um problema de rede. Reconectando...", + "LOW_BANDWIDTH": "O vídeo de {{displayName}} foi desativado para economizar largura de banda", + "GOT_SESSION_ID": "Obtendo ID da sessão... Feito", + "GET_SESSION_ID_ERROR": "Erro ao obter o ID da sessão: {{code}}", + "FETCH_SESSION_ID": "Obtendo ID da sessão..." }, "connectionindicator": { "address": "Endereço:", @@ -97,7 +106,8 @@ "resolution": "Resolução:", "status": "Conexão:", "transport": "Transporte:", - "transport_plural": "Transportes:" + "transport_plural": "Transportes:", + "e2e_rtt": "E2E RTT:" }, "dateUtils": { "earlier": "Mais cedo", @@ -200,7 +210,7 @@ "muteParticipantDialog": "Tem certeza de que deseja silenciar este participante? Você não poderá desfazer isso, mas o participante pode reabilitar o áudio a qualquer momento.", "muteParticipantTitle": "Deixar mudo este participante?", "Ok": "Ok", - "passwordLabel": "$t(lockRoomPasswordUppercase)", + "passwordLabel": "A reunião foi travada por um participante. Por favor, insira a $t(lockRoomPassword) para entrar.", "passwordNotSupported": "A configuração de uma reunião $t(lockRoomPassword) não é suportada.", "passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) não suportado", "passwordRequired": "$t(lockRoomPasswordUppercase) requerido", @@ -227,8 +237,12 @@ "screenSharingFailedToInstall": "Oops! Falhou a instalação da extensão de compartilhamento de tela.", "screenSharingFailedToInstallTitle": "A extensão de compartilhamento de tela falhou ao instalar", "screenSharingFirefoxPermissionDeniedError": "Algo deu errado enquanto estávamos tentando compartilhar sua tela. Por favor, certifique-se de que você nos deu permissão para fazê-lo. ", - "screenSharingFirefoxPermissionDeniedTitle": "Opa! Não foi possível iniciar o compartilhamento de tela.", + "screenSharingFirefoxPermissionDeniedTitle": "Opa! Não foi possível iniciar o compartilhamento de tela!", "screenSharingPermissionDeniedError": "Oops! Alguma coisa está errada com suas permissões de compartilhamento de tela. Recarregue e tente de novo.", + "sendPrivateMessage": "Você enviou uma mensagem privada recentemente. Tem intenção de responder em privado, ou deseja enviar sua mensagem para o grupo?", + "sendPrivateMessageCancel": "Enviar para o grupo", + "sendPrivateMessageOk": "Enviar em privado", + "sendPrivateMessageTitle": "Enviar em privado?", "serviceUnavailable": "Serviço indisponível", "sessTerminated": "Chamada terminada", "Share": "Compartilhar", @@ -257,11 +271,21 @@ "WaitForHostMsgWOk": "A conferência {{room}} ainda não começou. Se você é o anfitrião, pressione Ok para autenticar. Do contrário, aguarde a chegada do anfitrião.", "WaitingForHost": "Esperando o hospedeiro...", "Yes": "Sim", - "yourEntireScreen": "Toda sua tela" + "yourEntireScreen": "Toda sua tela", + "screenSharingAudio": "Compartilhar áudio", + "muteEveryoneStartMuted": "Todos iniciam silenciados daqui para frente", + "muteEveryoneSelf": "a si próprio", + "muteEveryoneDialog": "Tem certeza que deseja silenciar todos? Você não poderá ativar o som deles, mas eles podem ativar o som eles mesmo a qualquer momento.", + "muteEveryoneTitle": "Silenciar todos?", + "muteEveryoneElseTitle": "Silenciar todo mundo exceto {{whom}}?", + "muteEveryoneElseDialog": "Uma vez silenciados, você não poderá reativar o som deles, mas eles poderão reativar o som a qualquer momento." }, "dialOut": { "statusMessage": "está agora {{status}}" }, + "documentSharing": { + "title": "Documento compartilhado" + }, "feedback": { "average": "Média", "bad": "Ruim", @@ -292,7 +316,7 @@ "dialInTollFree": "Chamada gratuita", "genericError": "Oops, alguma coisa deu errado.", "inviteLiveStream": "Para ver a transmissão ao vivo da reunião, clique no link: {{url}}", - "invitePhone": "Para participar por telefone, toque aqui: {{number}} ,, {{conferenceID}} # \\ n", + "invitePhone": "Para participar por telefone, toque aqui: {{number}},,{{conferenceID}}#\n", "invitePhoneAlternatives": "Procurando um número de discagem diferente?\nVeja os números de discagem da reunião: {{url}} \n\n\nSe você também estiver discando através de um telefone da sala, participe sem conectar-se ao áudio: {{silentUrl}}", "inviteURLFirstPartGeneral": "Você foi convidado para uma reunião.", "inviteURLFirstPartPersonal": "{{name}} está convidando você para uma reunião.\n", @@ -356,9 +380,9 @@ "getStreamKeyManually": "Não conseguimos buscar nenhuma transmissão ao vivo. Tente obter sua chave de transmissão ao vivo no YouTube.", "invalidStreamKey": "A senha para transmissão ao vivo pode estar incorreta.", "off": "Transmissão ao vivo encerrada", - "offBy": "", + "offBy": "{{name}} parou a transmissão ao vivo", "on": "Transmissão ao Vivo", - "onBy": "", + "onBy": "{{name}} iniciou a transmissão ao vivo", "pending": "Iniciando Transmissão ao Vivo...", "serviceName": "Serviço de Transmissão ao Vivo", "signedInAs": "Você está conectado como:", @@ -367,7 +391,9 @@ "signOut": "Sair", "start": "Iniciar uma transmissão ao vivo", "streamIdHelp": "O que é isso?", - "unavailableTitle": "Transmissão ao vivo indisponível" + "unavailableTitle": "Transmissão ao vivo indisponível", + "googlePrivacyPolicy": "Política de Privacidade do Google", + "youtubeTerms": "Termos de serviços do YouTube" }, "localRecording": { "clientState": { @@ -407,9 +433,9 @@ "connectedTwoMembers": "{{first}} e {{second}} entraram na reunião", "disconnected": "desconectado", "focus": "Foco da conferência", - "focusFail": "{{component}} não disponĩvel - tente em {{ms}} seg.", + "focusFail": "{{component}} não disponível - tente em {{ms}} seg", "grantedTo": "Direitos de moderador concedido para {{to}}!", - "invitedOneMember": "{{displayName}} foi convidado", + "invitedOneMember": "{{name}} foi convidado(a)", "invitedThreePlusMembers": "{{name}} e {{count}} outros foram convidados", "invitedTwoMembers": "{{first}} e {{second}} foram convidados", "kickParticipant": "{{kicked}} foi chutado por {{kicker}}", @@ -425,7 +451,7 @@ "somebody": "Alguém", "startSilentTitle": "Você entrou sem saída de áudio!", "startSilentDescription": "Volte à reunião para habilitar o áudio", - "suboptimalBrowserWarning": "", + "suboptimalBrowserWarning": "Tememos que sua experiência de reunião não seja tão boa aqui. Estamos procurando maneiras de melhorar isso, mas até então, tente usar um dos navegadores completamente suportados.", "suboptimalExperienceTitle": "Alerta do navegador", "unmute": "Ativar som", "newDeviceCameraTitle": "Nova câmera detectada", @@ -457,7 +483,7 @@ }, "raisedHand": "Gostaria de falar", "recording": { - "authDropboxText": "Enviar para o Dropbox.", + "authDropboxText": "Enviar para o Dropbox", "availableSpace": "Espaço disponível: {{spaceLeft}} MB (aproximadamente {{duration}} minutos de gravação)", "beta": "BETA", "busy": "Estamos trabalhando para liberar recursos de gravação. Tente novamente em alguns minutos.", @@ -471,9 +497,9 @@ "live": "AOVIVO", "loggedIn": "Conectado como {{userName}}", "off": "Gravação parada", - "offBy": "", + "offBy": "{{name}} parou a gravação", "on": "Gravando", - "onBy": "", + "onBy": "{{name}} iniciou a gravação", "pending": "Preparando para gravar a reunião...", "rec": "REC", "serviceDescription": "Sua gravação será salva pelo serviço de gravação", @@ -507,26 +533,32 @@ "selectMic": "Microfone", "startAudioMuted": "Todos iniciam mudos", "startVideoMuted": "Todos iniciam ocultos", - "title": "Configurações" + "title": "Configurações", + "speakers": "Alto-faltantes", + "microphones": "Microfones" }, "settingsView": { + "advanced": "Avançado", "alertOk": "OK", "alertTitle": "Atenção", "alertURLText": "A URL digitada do servidor é inválida", "buildInfoSection": "Informações de compilação", "conferenceSection": "Conferência", + "disableCallIntegration": "Desativar integração de chamada nativa", + "disableP2P": "Desativar modo ponto a ponto", "displayName": "Nome de exibição", "email": "E-mail", "header": "Configurações", "profileSection": "Perfil", "serverURL": "URL do servidor", + "showAdvanced": "Mostrar configurações avançadas", "startWithAudioMuted": "Iniciar sem áudio", "startWithVideoMuted": "Iniciar sem vídeo", "version": "Versão" }, "share": { "dialInfoText": "\n\n=====\n\nDeseja apenas discar no seu telefone?\n\n{{defaultDialInNumber}}Clique neste link para ver os números de telefone para esta reunião\n{{dialInfoPageUrl}}", - "mainText": "Clique no seguinte link para entrar na reunião:{{roomUrl}}\n" + "mainText": "Clique no seguinte link para entrar na reunião:\n{{roomUrl}}" }, "speaker": "Alto-falantes", "speakerStats": { @@ -554,9 +586,11 @@ "cc": "Alternar legendas", "chat": "Alternar para janela de chat", "document": "Alternar para documento compartilhado", + "download": "Baixe nossos aplicativos", "feedback": "Deixar feedback", "fullScreen": "Alternar para tela cheia", "hangup": "Sair da chamada", + "help": "Ajuda", "invite": "Convidar pessoas", "kick": "Remover participante", "localRecording": "Alternar controles de gravação local", @@ -565,6 +599,7 @@ "moreActionsMenu": "Menu de mais ações", "mute": "Alternar mudo do áudio", "pip": "Alternar modo Picture-in-Picture", + "privateMessage": "Enviar mensagem privada", "profile": "Editar seu perfil", "raiseHand": "Alternar levantar a mão", "recording": "Alternar gravação", @@ -579,11 +614,14 @@ "tileView": "Alternar visualização em blocos", "toggleCamera": "Alternar câmera", "videomute": "Alternar mudo do vídeo", - "videoblur": "Alternar desfoque de vídeo" + "videoblur": "Alternar desfoque de vídeo", + "toggleFilmstrip": "Alterar tira de filme", + "muteEveryone": "Silenciar todos", + "moreOptions": "Mostrar mais opções" }, "addPeople": "Adicionar pessoas à sua chamada", - "audioOnlyOff": "", - "audioOnlyOn": "", + "audioOnlyOff": "Desabilitar modo de largura de banda baixa", + "audioOnlyOn": "Habilitar modo de largura de banda baixa", "audioRoute": "Selecionar o dispositivo de som", "authenticate": "Autenticar", "callQuality": "Gerenciar qualidade do vídeo", @@ -591,20 +629,26 @@ "closeChat": "Fechar chat", "documentClose": "Fechar documento compartilhado", "documentOpen": "Abrir documento compartilhado", + "download": "Baixe nossos aplicativos", "enterFullScreen": "Ver em tela cheia", "enterTileView": "Entrar em exibição de bloco", "exitFullScreen": "Sair da tela cheia", "exitTileView": "Sair de exibição de bloco", "feedback": "Deixar feedback", "hangup": "Sair", + "help": "Ajuda", "invite": "Convidar pessoas", "login": "Iniciar sessão", "logout": "Encerrar sessão", "lowerYourHand": "Baixar a mão", "moreActions": "Mais ações", "mute": "Mudo / Não mudo", + "noAudioSignalTitle": "Não há entrada de áudio vindo do seu microfone!", + "noAudioSignalDesc": "Se você não o desativou propositalmente das configurações do sistema ou do hardware, considere trocar o dispositivo.", + "noAudioSignalDescSuggestion": "Se você não o desativou propositalmente das configurações do sistema ou do hardware, considere trocar para o dispositivo sugerido.", "openChat": "Abrir chat", "pip": "Entrar em modo Quadro-a-Quadro", + "privateMessage": "Enviar mensagem privada", "profile": "Editar seu perfil", "raiseHand": "Erguer / Baixar sua mão", "raiseYourHand": "Levantar a mão", @@ -623,7 +667,13 @@ "toggleCamera": "Alternar câmera", "videomute": "Iniciar ou parar a câmera", "startvideoblur": "Desfocar meu plano de fundo", - "stopvideoblur": "Desativar desfoque de fundo" + "stopvideoblur": "Desativar desfoque de fundo", + "noisyAudioInputDesc": "Parece que o microfone está fazendo barulho, considere silenciar ou alterar o dispositivo.", + "noisyAudioInputTitle": "O seu microfone parece estar barulhento!", + "noAudioSignalDialInLinkDesc": "Discar números", + "noAudioSignalDialInDesc": "Você também pode discar usando:", + "muteEveryone": "Silenciar todos", + "moreOptions": "Mais opções" }, "transcribing": { "ccButtonTooltip": "Iniciar/parar legendas", @@ -661,13 +711,13 @@ }, "videoStatus": { "audioOnly": "AUD", - "audioOnlyExpanded": "", + "audioOnlyExpanded": "Você está em modo de banda baixa. Neste modo, se recebe somente áudio e compartilhamento de tela.", "callQuality": "Qualidade de vídeo", "hd": "HD", "hdTooltip": "Ver vídeo em alta definição", "highDefinition": "Alta definição (HD)", "labelTooiltipNoVideo": "Sem vídeo", - "labelTooltipAudioOnly": "", + "labelTooltipAudioOnly": "Modo de largura de banda baixa habilitada", "ld": "LD", "ldTooltip": "Ver vídeo em baixa definição", "lowDefinition": "Baixa definição (LD)", @@ -675,7 +725,7 @@ "onlyAudioSupported": "Suportamos somente áudio neste navegador.", "p2pEnabled": "Ponto-a-ponto habilitada", "p2pVideoQualityDescription": "No modo ponto a ponto, a qualidade do vídeo recebido só pode ser alternada entre alta e apenas áudio. Outras configurações não serão respeitadas até que o ponto a ponto seja encerrado.", - "recHighDefinitionOnly": "Preferência para alta definição", + "recHighDefinitionOnly": "Preferência para alta definição.", "sd": "SD", "sdTooltip": "Ver vídeo em definição padrão", "standardDefinition": "Definição padrão" @@ -689,14 +739,15 @@ "muted": "Mudo", "remoteControl": "Controle remoto", "show": "Mostrar no palco", - "videomute": "O participante parou a câmera" + "videomute": "O participante parou a câmera", + "domuteOthers": "Silenciar todos os demais" }, "welcomepage": { "accessibilityLabel": { "join": "Toque para entrar", "roomname": "Digite o nome da sala" }, - "appDescription": "Vá em frente, converse por vídeo com toda a equipe. De fato, convide todos que você conhece. {{app}} é uma solução de videoconferência totalmente criptografada e 100% de código aberto que você pode usar todos os dias, a cada dia, gratuitamente — sem necessidade de conta.", + "appDescription": "Vá em frente, converse por vídeo com toda a equipe. De fato, convide todos que você conhece. {{app}} é uma solução de videoconferência totalmente criptografada e 100% de código aberto que você pode usar todos os dias, a cada dia, gratuitamente — sem necessidade de conta.", "audioVideoSwitch": { "audio": "Voz", "video": "Vídeo" @@ -705,9 +756,10 @@ "connectCalendarButton": "Conectar seu calendário", "connectCalendarText": "Conecte seu calendário para ver todas as reuniões em {{app}}. Além disso, adicione reuniões de {{provider}} ao seu calendário e inicie-as com apenas um clique.", "enterRoomTitle": "Iniciar uma nova reunião", - "onlyAsciiAllowed": "", + "roomNameAllowedChars": "Nome da reunião não deve conter qualquer um destes caracteres: ?. &, :, ', \", %, #.", "go": "IR", - "join": "Entrar", + "goSmall": "IR", + "join": "CRIAR / ENTRAR", "info": "Informações", "privacy": "Política de Privacidade", "recentList": "Recente", @@ -718,6 +770,19 @@ "roomnameHint": "Digite o nome ou a URL da sala que você deseja entrar. Você pode digitar um nome, e apenas deixe para as pessoas que você quer se reunir digitem o mesmo nome.", "sendFeedback": "Enviar comentários", "terms": "Termos", - "title": "Videoconferências mais seguras, flexíveis e totalmente gratuitas" + "title": "Videoconferências mais seguras, flexíveis e totalmente gratuitas", + "getHelp": "Obter ajuda" + }, + "helpView": { + "header": "Centro de ajuda" + }, + "lonelyMeetingExperience": { + "youAreAlone": "Você é o único na reunião", + "button": "Convidar outros" + }, + "chromeExtensionBanner": { + "dontShowAgain": "Não me mostre isso de novo", + "buttonText": "Instalar extensão do Chrome", + "installExtensionText": "Instale a extensão par integração com Google Calendar e Office 365" } -} \ No newline at end of file +} diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-ru.json b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-ru.json index ddbbfeacd3..eebfc5c4b7 100644 --- a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-ru.json +++ b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-ru.json @@ -3,16 +3,16 @@ "add": "Пригласить", "countryNotSupported": "Эта страна пока не поддерживается.", "countryReminder": "Вызов не в США? Пожалуйста, убедитесь, что указали код страны!", - "disabled": "Поиск не дал результата", - "failedToAdd": "", + "disabled": "Поиск не дал результата.", + "failedToAdd": "Не удалось добавить участников", "footerText": "Вызов номера отключен.", "loading": "Поиск людей и номеров телефонов", - "loadingNumber": "Поиск людей для приглашения", + "loadingNumber": "Проверка номера телефона", "loadingPeople": "Поиск людей для приглашения", "noResults": "Поиск не дал результата", "noValidNumbers": "Пожалуйста, введите номер телефона", "searchNumbers": "Добавить номера телефонов", - "searchPeople": "Поиск не дал результата", + "searchPeople": "Поиск людей", "searchPeopleAndNumbers": "Поиск людей или добавление их телефонов", "telephone": "Номер: {{number}}", "title": "Пригласить людей на эту встречу" @@ -22,22 +22,22 @@ "headphones": "Наушники", "phone": "Телефон", "speaker": "Колонка", - "none": "" + "none": "Не обнаружены звуковые устройства" }, "audioOnly": { - "audioOnly": "Не нагружает канал" + "audioOnly": "Только звук" }, "calendarSync": { "addMeetingURL": "Добавить ссылку конференции", - "confirmAddLink": "", + "confirmAddLink": "Вы хотите добавить ссылку Jitsi к этому календарному событию?", "error": { - "appConfiguration": "", - "generic": "", - "notSignedIn": "" + "appConfiguration": "Неправильно настроена интеграция календаря.", + "generic": "Произошла ошибка. Проверьте настройки календаря или попробуйте обновить его.", + "notSignedIn": "В процессе аутентификации для просмотра событий календаря произошла ошибка. Пожалуйста, проверьте настройки календаря и попробуйте снова войти в систему." }, - "join": "", - "joinTooltip": "", - "nextMeeting": "следующая встреча", + "join": "Присоединиться", + "joinTooltip": "Присоединиться к конференции", + "nextMeeting": "следующая конференция", "noEvents": "Нет запланированных событий.", "ongoingMeeting": "текущая конференция", "permissionButton": "Открыть настройки", @@ -46,16 +46,26 @@ "today": "Сегодня" }, "chat": { - "error": "", - "messagebox": "", + "error": "Ошибка: Ваше сообщение не было отправлено. Причина: {{error}}", + "fieldPlaceHolder": "Введите здесь ваше сообщение", + "messagebox": "Введите сообщение", + "messageTo": "Личное сообщение пользователю {{recipient}}", + "noMessagesMessage": "В конференции пока нет никаких сообщений. Начните разговор!", "nickname": { "popover": "Выберите имя", - "title": "" + "title": "Введите имя для использования чата" }, - "title": "" + "privateNotice": "Личное сообщение пользователю {{recipient}}", + "title": "Чат", + "you": "" + }, + "chromeExtensionBanner": { + "installExtensionText": "", + "buttonText": "", + "dontShowAgain": "" }, "connectingOverlay": { - "joiningRoom": "" + "joiningRoom": "Пытаемся присоединиться к вашей конференции..." }, "connection": { "ATTACHED": "Прикреплено", @@ -67,23 +77,24 @@ "DISCONNECTED": "Отключено", "DISCONNECTING": "Отключение", "ERROR": "Ошибка", - "RECONNECTING": "Проблема с сетью. Переподключение..." + "RECONNECTING": "Проблема с сетью. Переподключение...", + "LOW_BANDWIDTH": "Видео для {{displayName}} приостановлено из-за низкой пропускной способности" }, "connectionindicator": { "address": "Адрес:", "bandwidth": "Средняя скорость:", "bitrate": "Битрейт:", - "bridgeCount": "", - "connectedTo": "", + "bridgeCount": "Количество серверов:", + "connectedTo": "Подключен к:", "framerate": "Частота кадров:", - "less": "Меньше", + "less": "Краткая информация", "localaddress_0": "Локальные адреса:", "localaddress_1": "Локальные адреса:", "localaddress_2": "Локальные адреса:", "localport_0": "Локальные порты:", "localport_1": "Локальные порты:", "localport_2": "Локальные порты:", - "more": "Больше", + "more": "Подробная информация", "packetloss": "Потери пакетов:", "quality": { "good": "Хорошо", @@ -112,7 +123,7 @@ "deepLinking": { "appNotInstalled": "Чтобы присоединиться к этой встрече на телефоне, нужно мобильное приложение {{app}}.", "description": "Ничего не случилось? Мы попытались запустить вашу встречу в настольном приложении {{app}}. Повторите попытку или запустите ее в веб-приложении {{app}}.", - "descriptionWithoutWeb": "", + "descriptionWithoutWeb": "Ничего не произошло? Мы попытались запустить вашу конференцию в настольном приложении {{app}}", "downloadApp": "Скачать приложение", "launchWebButton": "Запустить в браузере", "openApp": "Перейти к приложению", @@ -138,7 +149,7 @@ "liveStreaming": "Трансляция" }, "allow": "Разрешить", - "alreadySharedVideoMsg": "", + "alreadySharedVideoMsg": "Другой участник уже поделился ссылкой на видео. Данная конференция позволяет одновременно делиться только одним видео.", "alreadySharedVideoTitle": "Допускается показ только одного видео", "applicationWindow": "Окно приложения", "Back": "Назад", @@ -164,56 +175,56 @@ "contactSupport": "Связь с поддержкой", "copy": "Копировать", "dismiss": "Отклонить", - "displayNameRequired": "", + "displayNameRequired": "Привет! Как тебя зовут?", "done": "Готово", - "enterDisplayName": "", + "enterDisplayName": "Пожалуйста, введите свое имя", "error": "Ошибка", "externalInstallationMsg": "Вам необходимо установить наше дополнение для совместного использования рабочего стола.", "externalInstallationTitle": "Требуется расширение", "goToStore": "Перейти к интернет-магазину", "gracefulShutdown": "Технические работы. Пожалуйста, попробуйте позже.", "IamHost": "Я организатор", - "incorrectRoomLockPassword": "", + "incorrectRoomLockPassword": "Неверный пароль", "incorrectPassword": "Ошибка имени пользователя или пароля", "inlineInstallationMsg": "Вам необходимо установить наше дополнение для совместного использования рабочего стола.", "inlineInstallExtension": "Установить", "internalError": "Что-то пошло не так. Ошибка: {{error}}", "internalErrorTitle": "Внутренняя ошибка", - "kickMessage": "", - "kickParticipantButton": "", - "kickParticipantDialog": "", - "kickParticipantTitle": "", - "kickTitle": "", + "kickMessage": "Вы можете связаться с {{participantDisplayName}} для получения более подробной информации.", + "kickParticipantButton": "Выгнать", + "kickParticipantDialog": "Вы уверены, что хотите выгнать этого участника?", + "kickParticipantTitle": "Выгнать этого участника?", + "kickTitle": "Ай! {{participantDisplayName}} выгнал вас из конференции.", "liveStreaming": "Трансляция", - "liveStreamingDisabledForGuestTooltip": "Гости не могут начать трансляцию.", + "liveStreamingDisabledForGuestTooltip": "Гости не могут начать трансляцию", "liveStreamingDisabledTooltip": "Возможность трансляции отключена", "lockMessage": "Не удалось запереть конференцию", - "lockRoom": "", + "lockRoom": "Добавить конференцию $t(lockRoomPasswordUppercase)", "lockTitle": "Блокировка не удалась", "logoutQuestion": "Уверены, что хотите выйти и остановить встречу?", "logoutTitle": "Завершить сеанс", - "maxUsersLimitReached": "", - "maxUsersLimitReachedTitle": "", + "maxUsersLimitReached": "Достигнут лимит на максимальное количество участников. Конференция переполнена. Пожалуйста, свяжитесь с организатором конференции или повторите попытку позже!", + "maxUsersLimitReachedTitle": "Достигнут максимальный лимит участников", "micConstraintFailedError": "Ваш микрофон не отвечает определенным требованиям.", "micNotFoundError": "Микрофон не обнаружен.", - "micNotSendingData": "", - "micNotSendingDataTitle": "", + "micNotSendingData": "Перейдите в настройки компьютера, чтобы включить микрофон и настроить уровень чувствительности.", + "micNotSendingDataTitle": "Ваш микрофон отключен системными настройками", "micPermissionDeniedError": "Нет доступа к микрофону. Вы можете участвовать во встрече, но другие не будут вас слышать. Используйте значок камеры в адресной строке браузера, чтобы устранить проблему.", "micUnknownError": "Неизвестная ошибка использования микрофона.", "muteParticipantBody": "Вы не можете включить им звук, но они могут сделать это сами в любое время.", "muteParticipantButton": "Выключить звук", - "muteParticipantDialog": "", + "muteParticipantDialog": "Вы уверены, что хотите отключить микрофон у данного пользователя? Вы не сможете отменить это действие, однако он сможет сам снова включить микрофон в любое время.", "muteParticipantTitle": "Приглушить этого участника?", "Ok": "Ok", - "passwordLabel": "", - "passwordNotSupported": "Установка пароля не поддерживается.", - "passwordNotSupportedTitle": "", - "passwordRequired": "", + "passwordLabel": "$t(lockRoomPasswordUppercase)", + "passwordNotSupported": "Установка $t(lockRoomPassword) для конференции не поддерживается.", + "passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) не поддерживается", + "passwordRequired": "Требуется $t(lockRoomPasswordUppercase)", "popupError": "Ваш браузер блокирует всплывающие окна этого сайта. Пожалуйста, разрешите всплывающие окна в настройках безопасности браузера и попробуйте снова.", "popupErrorTitle": "Заблокировано всплывающее окно", "recording": "Запись", - "recordingDisabledForGuestTooltip": "Гости не могут записывать.", - "recordingDisabledTooltip": "Невозможно начать запись.", + "recordingDisabledForGuestTooltip": "Гости не могут записывать", + "recordingDisabledTooltip": "Невозможно начать запись", "rejoinNow": "Подключиться снова", "remoteControlAllowedMessage": "{{user}} принял ваш запрос на удаленное управление!", "remoteControlDeniedMessage": "{{user}} отклонил ваш запрос на удаленное управление!", @@ -223,7 +234,7 @@ "remoteControlStopMessage": "Сессия удаленного управления завершена!", "remoteControlTitle": "Удаленное управление рабочим столом", "Remove": "Удалить", - "removePassword": "", + "removePassword": "Убрать $t(lockRoomPassword)", "removeSharedVideoMsg": "Уверены, что хотите убрать видео, которым поделились?", "removeSharedVideoTitle": "Убрать видео", "reservationError": "Ошибка системы резервирования", @@ -234,14 +245,18 @@ "screenSharingFirefoxPermissionDeniedError": "Что-то пошло не так, когда мы пытались поделиться вашим экраном. Пожалуйста, убедитесь, что вы дали нам разрешение на это.", "screenSharingFirefoxPermissionDeniedTitle": "Ошибка показа экрана!", "screenSharingPermissionDeniedError": "Ошибка доступа к вашему расширению для показа экрана. Пожалуйста, перезапустите браузер и попробуйте снова.", + "sendPrivateMessage": "Вы недавно получили личное сообщение. Вы хотели ответить на него, или отправить свое сообщение группе?", + "sendPrivateMessageCancel": "Отправить в общий чат", + "sendPrivateMessageOk": "Отправить приватное сообщение", + "sendPrivateMessageTitle": "Отправить личное сообщение?", "serviceUnavailable": "Служба недоступна", "sessTerminated": "Связь прервана", "Share": "Поделиться", "shareVideoLinkError": "Пожалуйста, укажите корректную ссылку Youtube.", "shareVideoTitle": "Поделиться видео", "shareYourScreen": "Показать экран", - "shareYourScreenDisabled": "Демонстрация экрана отключена.", - "shareYourScreenDisabledForGuest": "Гости не могут демонстрировать экран.", + "shareYourScreenDisabled": "Демонстрация экрана отключена", + "shareYourScreenDisabledForGuest": "Гости не могут демонстрировать экран", "startLiveStreaming": "Начать трансляцию", "startRecording": "Начать запись", "startRemoteControlErrorMessage": "Ошибка начала сессии удаленного управления!", @@ -256,10 +271,10 @@ "tokenAuthFailed": "Извините, вам не разрешено присоединиться к этому сеансу связи.", "tokenAuthFailedTitle": "Ошибка аутентификации", "transcribing": "Расшифровка", - "unlockRoom": "", + "unlockRoom": "Убрать $t(lockRoomPassword)", "userPassword": "пароль пользователя", - "WaitForHostMsg": "", - "WaitForHostMsgWOk": "", + "WaitForHostMsg": "Конференция {{room}} еще не началась. Если вы организатор, пожалуйста, авторизируйтесь. В противном случае дождитесь организатора.", + "WaitForHostMsgWOk": "Конференция {{room}} еще не началась. Если вы организатор, пожалуйста, нажмите Ok для аутентификации. В противном случае, дождитесь организатора.", "WaitingForHost": "Ждем организатора...", "Yes": "Да", "yourEntireScreen": "Весь экран" @@ -267,6 +282,9 @@ "dialOut": { "statusMessage": "сейчас {{status}}" }, + "documentSharing": { + "title": "Общий Документ" + }, "feedback": { "average": "Средне", "bad": "Плохо", @@ -285,41 +303,41 @@ }, "info": { "accessibilityLabel": "Показать информацию", - "addPassword": "", - "cancelPassword": "", + "addPassword": "Установить $t(lockRoomPassword)", + "cancelPassword": "Отменить $t(lockRoomPassword)", "conferenceURL": "Ссылка:", "country": "Страна", - "dialANumber": "", + "dialANumber": "Чтобы присоединиться к конференции, наберите один из этих номеров и введите pin-код", "dialInConferenceID": "PIN:", "dialInNotSupported": "К сожалению, набор номера в настоящее время не поддерживается.", "dialInNumber": "Номер:", - "dialInSummaryError": "", - "dialInTollFree": "", + "dialInSummaryError": "Ошибка получения информации о наборе номера. Пожалуйста, повторите попытку позже", + "dialInTollFree": "Звонок бесплатный", "genericError": "Что-то пошло не так.", "inviteLiveStream": "Трансляция этой встречи: {{url}}", - "invitePhone": "", - "invitePhoneAlternatives": "", - "inviteURLFirstPartGeneral": "", - "inviteURLFirstPartPersonal": "", - "inviteURLSecondPart": "", + "invitePhone": "Для того, чтобы присоединиться по телефону, нажмите {{number}},,{{conferenceID}}#\n", + "invitePhoneAlternatives": "Ищите дпугой номер для набора?\nПосмотреть номера для набора для конференции: {{url}}\n\n\nЕсли также выполняется набор номера через телефон в комнате, подключитесь в режиме слушателя: {{silentUrl}}", + "inviteURLFirstPartGeneral": "Вас приглашают присоединиться к конференции.", + "inviteURLFirstPartPersonal": "{{name}} приглашает Вас присоединиться к конференции. \n", + "inviteURLSecondPart": "\nПрисоединиться к конференции:\n{{url}}\n", "liveStreamURL": "Трансляция:", "moreNumbers": "Больше номеров", "noNumbers": "Нет номеров для набора.", "noPassword": "нет", "noRoom": "Для набора номера не было указано ни одной комнаты.", "numbers": "Номера для набора", - "password": "", + "password": "$t(lockRoomPasswordUppercase):", "title": "Поделиться", "tooltip": "Поделитесь ссылкой и номером для подключения к этой конференции", - "label": "" + "label": "Информация о конференции" }, "inviteDialog": { - "alertText": "", + "alertText": "Не удалось пригласить некоторых участников.", "header": "Пригласить", "searchCallOnlyPlaceholder": "Укажите номер телефона", - "searchPeopleOnlyPlaceholder": "", - "searchPlaceholder": "", - "send": "" + "searchPeopleOnlyPlaceholder": "Поиск участников", + "searchPlaceholder": "Участник или номер телефона", + "send": "Отправить" }, "inlineDialogFailure": { "msg": "Небольшая заминка.", @@ -332,7 +350,7 @@ "focusRemote": "Фокус на видео другого участника", "fullScreen": "Вкл/выкл полноэкранный режим ", "keyboardShortcuts": "Комбинации клавиш", - "localRecording": "", + "localRecording": "Отобразить или скрыть элементы управления локальной записи", "mute": "Микрофон (вкл./выкл.)", "pushToTalk": "Нажмите, чтобы говорить", "raiseHand": "Поднять или опустить руку", @@ -340,7 +358,7 @@ "toggleChat": "Чат (открыть/закрыть)", "toggleFilmstrip": "Показать/Скрыть краткое описание", "toggleScreensharing": "Переключиться между камерой и показом экрана", - "toggleShortcuts": "Скрыть/Показать горячие клавиши", + "toggleShortcuts": "Скрыть/Показать клавиша быстрого доступа", "videoMute": "Камера (вкл./выкл.)", "videoQuality": "Качество связи" }, @@ -354,17 +372,19 @@ "error": "Ошибка трансляции. Пожалуйста, попробуйте снова.", "errorAPI": "Произошла ошибка при доступе к вашим трансляциям на YouTube. Повторите попытку входа в систему.", "errorLiveStreamNotEnabled": "Трансляция не подключена на {{email}}. Пожалуйста подключите трансляцию или войдите в аккаунт с подключенной трансляцией.", - "expandedOff": "", - "expandedOn": "", - "expandedPending": "", + "expandedOff": "Прямая трансляция остановлена", + "expandedOn": "В настоящий момент конференция транслируется на YouTube.", + "expandedPending": "Начинается прямая трансляция..", "failedToStart": "Ошибка трансляции видео", - "getStreamKeyManually": "", - "invalidStreamKey": "", + "getStreamKeyManually": "Прямые трансляций не найдены. Попробуйте получить ключ прямой трансляции от YouTube.", + "invalidStreamKey": "Похоже ключ прямой трансляции неверен.", "off": "Трансляция остановлена", + "offBy": "{{name}} остановил прямую трансляцию", "on": "Трансляция", + "onBy": "{{name}} начал прямую трансляцию", "pending": "Начинаем трансляцию...", "serviceName": "Служба трансляции", - "signedInAs": "", + "signedInAs": "В настоящее время вы вошли в систему как:", "signIn": "Войти через Google", "signInCTA": "Войдите или введите свой ключ трансляции YouTube.", "signOut": "Выход", @@ -384,13 +404,13 @@ "encoding": "Кодировка", "label": "Левый/Правый", "labelToolTip": "Локальная запись активна", - "localRecording": "", + "localRecording": "Локальная запись", "me": "Я", "messages": { - "engaged": "", + "engaged": "Локальная запись началась.", "finished": "Запись сессии {{token}} завершена. Пожалуйста отправьте записанный файл модератору.", - "finishedModerator": "", - "notModerator": "" + "finishedModerator": "Запись сессии {{token}} завершена. Запись локального трека сохранена. Пожалуйста, попросите других участников представить их записи", + "notModerator": "Вы не модератор и не можете начинать или останавливать локальную запись." }, "moderator": "Модератор", "no": "Нет", @@ -405,49 +425,49 @@ "lockRoomPasswordUppercase": "Пароль", "me": "я", "notify": { - "connectedOneMember": "", - "connectedThreePlusMembers": "", - "connectedTwoMembers": "", + "connectedOneMember": "{{name}} присоединился к конференции", + "connectedThreePlusMembers": "{{name}} и {{count}} других пользователей присоединились к конференции", + "connectedTwoMembers": "{{first}} и {{second}} присоединились к конференции", "disconnected": "соединение разорвано", "focus": "Фокус встречи", "focusFail": "{{component}} недоступен, повторите через {{ms}} с", "grantedTo": "{{to}} получил права модератора!", - "invitedOneMember": "", - "invitedThreePlusMembers": "", - "invitedTwoMembers": "", - "kickParticipant": "", + "invitedOneMember": "{{displayName}} был приглашен", + "invitedThreePlusMembers": "Приглашены {{name}} и {{count}} других пользователей(ля)", + "invitedTwoMembers": "{{first}} и {{second}} присоединились к конференции", + "kickParticipant": "{{kicker}} выгнал {{kicked}} ", "me": "Я", "moderator": "Получены права модератора!", "muted": "Вы начали разговор без звука.", "mutedTitle": "Вы без звука!", - "mutedRemotelyTitle": "", - "mutedRemotelyDescription": "", - "passwordRemovedRemotely": "", - "passwordSetRemotely": "", - "raisedHand": "", + "mutedRemotelyTitle": "{{participantDisplayName}} отключил Вам микрофон!", + "mutedRemotelyDescription": "Вы всегда можете включить микрофон, когда будете готовы говорить. Отключите его, когда закончите, чтобы не транслировать шумы в конференцию.", + "passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) удален другим участником.", + "passwordSetRemotely": "Другой участник установил $t(lockRoomPasswordUppercase)", + "raisedHand": "{{name}} хотел бы выступить.", "somebody": "Кто-то", - "startSilentTitle": "", - "startSilentDescription": "", - "suboptimalBrowserWarning": "", - "suboptimalExperienceTitle": "Предупреждение", - "unmute": "", - "newDeviceCameraTitle": "", - "newDeviceAudioTitle": "", - "newDeviceAction": "" + "startSilentTitle": "У вас отсутствует звук!", + "startSilentDescription": "Перезайдите в конференцию, чтобы включить звук", + "suboptimalBrowserWarning": "К сожалению, ваш браузер не полностью поддерживает данную систему вэбконференций. Мы работаем над проблемой, однако, пока рекомендуем вам воспользоваться следующими браузерами.", + "suboptimalExperienceTitle": "К сожалению, этот браузер может не подойти для работы с {{appName}}. Мы работаем над проблемой, а пока попробуйте один из полностью поддерживаемых браузеров.", + "unmute": "Включить микрофон", + "newDeviceCameraTitle": "Обнаружена новая камера", + "newDeviceAudioTitle": "Обнаружено новое аудиоустройство", + "newDeviceAction": "Использовать" }, "passwordSetRemotely": "установлен другим участником", - "passwordDigitsOnly": "", + "passwordDigitsOnly": "До {{number}} цифр", "poweredby": "работает на", "presenceStatus": { "busy": "Занят", - "calling": "Вызываю...", + "calling": "Вызываю . . .", "connected": "Подключено", - "connecting": "Подключение...", + "connecting": "Подключение. . .", "connecting2": "Подключение*...", "disconnected": "Отключено", "expired": "Истек", "ignored": "Проигнорирован", - "initializingCall": "Инициализация звонка...", + "initializingCall": "Инициализация звонка. . .", "invited": "Приглашенный", "rejected": "Отклонен", "ringing": "Звоню. . ." @@ -460,24 +480,26 @@ }, "raisedHand": "Хочет говорить", "recording": { - "authDropboxText": "", + "authDropboxText": "Загрузить в Dropbox", "availableSpace": "Доступно места: {{spaceLeft}} MB (примерно {{duration}} минут записи)", "beta": "БЕТА", "busy": "Мы стараемся обеспечить больше ресурсов для записи. Пожалуйста, попробуйте через несколько минут.", "busyTitle": "Все записывающие устройства заняты", "error": "Ошибка записи. Пожалуйста, попробуйте позже.", "expandedOff": "Запись остановлена", - "expandedOn": "", - "expandedPending": "", + "expandedOn": "Данная конференция записывается.", + "expandedPending": "Начинаем запись конференции...", "failedToStart": "Ошибка начала записи", - "fileSharingdescription": "", + "fileSharingdescription": "Поделиться записью с участниками конференции", "live": "Прямая трансляция", "loggedIn": "Вошел как {{userName}}", "off": "Запись остановлена", + "offBy": "{{name}} остановил запись", "on": "Запись", - "pending": "Подготовка к записи конференции...", + "onBy": "{{name}} включил запись", + "pending": "Подготовка записи конференции. . .", "rec": "Идет запись", - "serviceDescription": "", + "serviceDescription": "Ваша запись будет сохранена соответствующей службой", "serviceName": "Служба записи", "signIn": "Вход", "signOut": "Выход", @@ -511,22 +533,26 @@ "title": "Настройки" }, "settingsView": { + "advanced": "Дополнительные", "alertOk": "OK", "alertTitle": "Внимание", "alertURLText": "Ошибка адреса сервера", - "buildInfoSection": "", + "buildInfoSection": "Информация о сборке", "conferenceSection": "Номера для набора", + "disableCallIntegration": "Отключить встроенную интеграцию вызовов", + "disableP2P": "Отключить режим Peer-To-Peer", "displayName": "Отображаемое имя", "email": "Email", "header": "Настройки", "profileSection": "Профиль", "serverURL": "Адрес сервера", + "showAdvanced": "Показать дополнительные настройки", "startWithAudioMuted": "Начать с отключенным звуком", "startWithVideoMuted": "Начать с отключенным видео", - "version": "" + "version": "Версия" }, "share": { - "dialInfoText": "", + "dialInfoText": "\n\n=====\n\nПросто хотите набрать номер на Вашем телефоне?\n\n{{defaultDialInNumber}}Щелкните на эту ссылку, чтобы просмотреть телефонные номера для этой конференции\n{{dialInfoPageUrl}}", "mainText": "Нажмите на ссылку чтобы присоединиться к конференции:\n{{roomUrl}}" }, "speaker": "Колонка", @@ -549,91 +575,105 @@ }, "toolbar": { "accessibilityLabel": { - "audioOnly": "Вкл/выкл только звук", + "audioOnly": "Вкл/Выкл только звук", "audioRoute": "Выбрать аудиоустройство", "callQuality": "Качество связи", - "cc": "Вкл/выкл субтитры", + "cc": "Вкл/Выкл субтитры", "chat": "Показать/скрыть окно чата", "document": "Закрыть общий документ", + "download": "Скачать приложение", "feedback": "Оставить отзыв", "fullScreen": "Полноэкранный/оконный режим", "hangup": "Завершить звонок", + "help": "Справка", "invite": "Пригласить", - "kick": "", - "localRecording": "", - "lockRoom": "", + "kick": "Выкинуть участника", + "localRecording": "Вкл/Выкл кнопки записи", + "lockRoom": "Установить пароль", "moreActions": "Показать/скрыть меню доп. настроек", + "moreOptions": "Меню доп. настроек", "moreActionsMenu": "Меню доп. настроек", - "mute": "Вкл/выкл звук", - "pip": "", + "mute": "Вкл/Выкл звук", + "pip": "Вкл/Выкл режим Картинка-в-картинке", + "privateMessage": "Отправить личное сообщение", "profile": "Редактировать профиль", - "raiseHand": "", + "raiseHand": "Поднять руку", "recording": "Вкл/Выкл запись", - "remoteMute": "", - "Settings": "Вкл/выкл меню настроек", + "remoteMute": "Отключить участнику микрофон", + "Settings": "Вкл/Выкл меню настроек", "sharedvideo": "Вкл/Выкл Youtube - трансляцию", "shareRoom": "Отправить приглашение", "shareYourScreen": "Вкл/Выкл демонстрацию экрана", "shortcuts": "Вкл/Выкл значки", - "show": "", + "show": "Показать крупным планом", "speakerStats": "Вкл/Выкл статистику", - "tileView": "", - "toggleCamera": "Вкл/выкл камеру", - "videomute": "Вкл/Выкл звук в видео", - "videoblur": "" + "tileView": "Вкл/Выкл плитку", + "toggleCamera": "Вкл/Выкл камеру", + "videomute": "Вкл/Выкл видео", + "muteEveryone": "Выкл. микрофон у всех", + "videoblur": "Вкл/Выкл размытие фона" }, "addPeople": "Добавить людей к вашему сеансу связи", - "audioOnlyOff": "", - "audioOnlyOn": "", + "audioOnlyOff": "Отключить режим экономии пропуской способности", + "audioOnlyOn": "Включить режим экономии пропускной способности", "audioRoute": "Выбрать аудиоустройство", "authenticate": "Аутентифицировать", "callQuality": "Качество связи", "chat": "Чат", - "closeChat": "", + "closeChat": "Закрыть чат", "documentClose": "Закрыть общий документ", "documentOpen": "Открыть общий документ", + "download": "Скачать приложение", "enterFullScreen": "Полный экран", - "enterTileView": "", + "enterTileView": "Общий план", "exitFullScreen": "Полный экран", - "exitTileView": "", + "exitTileView": "Крупный план", "feedback": "Оставить отзыв", "hangup": "Выход", + "help": "Справка", "invite": "Пригласить", "login": "Войти", "logout": "Завершить сеанс", - "lowerYourHand": "", + "lowerYourHand": "Опустить руку", "moreActions": "Больше", - "mute": "Звук (вкл./выкл.)", - "openChat": "", - "pip": "", + "mute": "Микрофон (вкл./выкл.)", + "muteEveryone": "Выкл. микрофон у всех", + "noAudioSignalTitle": "От вашего микрофона не идет звуковой сигнал!", + "noAudioSignalDesc": "Если вы специально не отключали микрофон в системных настройках, подумайте о том, чтобы поменять его.", + "noAudioSignalDescSuggestion": "Если вы специально не отключали микрофон в системных настройках, вы можете попробовать использовать следующее устройство:", + "noisyAudioInputTitle": "Похоже, ваш микрофон создает шум!", + "noisyAudioInputDesc": "Возможно, ваш микрофон создает шум. Вы можете выключить его или смените устройство.", + "openChat": "Открыть чат", + "pip": "Вкл режим Картинка-в-картинке", + "privateMessage": "Отправить личное сообщение", "profile": "Редактировать профиль", "raiseHand": "Хочу говорить", - "raiseYourHand": "", + "raiseYourHand": "Поднять руку", "Settings": "Настройки", "sharedvideo": "Видео YouTube", "shareRoom": "Отправить приглашение", "shortcuts": "Комбинации клавиш", "speakerStats": "Статистика", - "startScreenSharing": "", - "startSubtitles": "", - "stopScreenSharing": "", - "stopSubtitles": "", + "startScreenSharing": "Начать трансляцию с экрана", + "startSubtitles": "Включить субтитры", + "stopScreenSharing": "Остановить трансляцию с экрана", + "stopSubtitles": "Отключить субтитры", "stopSharedVideo": "Остановить видео на YouTube", "talkWhileMutedPopup": "Пытаетесь говорить? У вас отключен звук.", - "tileViewToggle": "", + "tileViewToggle": "Вкл/выкл плитку", "toggleCamera": "Вкл/выкл камеру", "videomute": "Камера", - "startvideoblur": "", - "stopvideoblur": "" + "startvideoblur": "Размыть фон на видео", + "stopvideoblur": "Отключить размытие фона" }, "transcribing": { - "ccButtonTooltip": "", + "ccButtonTooltip": "Вкл. / Выкл. субтитры", "error": "Ошибка записи. Пожалуйста, попробуйте позже.", - "expandedLabel": "", - "failedToStart": "", - "labelToolTip": "", - "off": "", - "pending": "Подготовка к записи конференции...", + "expandedLabel": "Транскрипция включена", + "failedToStart": "Неудалось начать расшифровку", + "labelToolTip": "Создается транскрипция конференции.", + "off": "Расшифровка остановлена", + "pending": "Подготовка расшифровки конференции. . .", "start": "Вкл/Выкл показ субтитров", "stop": "Вкл/Выкл показ субтитров", "tr": "" @@ -662,20 +702,20 @@ }, "videoStatus": { "audioOnly": "Только звук", - "audioOnlyExpanded": "", - "callQuality": "", + "audioOnlyExpanded": "Активен режим экономии пропускной способности. В этом режиме доступны только звук и трансляция с экрана", + "callQuality": "Качество видео", "hd": "HD", "hdTooltip": "Видео высокого качества", "highDefinition": "Высокое качество", "labelTooiltipNoVideo": "Нет видео", - "labelTooltipAudioOnly": "", + "labelTooltipAudioOnly": "Включен режим экономии пропускной способности", "ld": "LD", "ldTooltip": "Видео низкого качества", "lowDefinition": "Низкое качество", "onlyAudioAvailable": "Только звук", "onlyAudioSupported": "В этом браузере разрешен только звук.", "p2pEnabled": "Включен режим \"точка-к-точке\"", - "p2pVideoQualityDescription": "", + "p2pVideoQualityDescription": "В режиме прямого канала связи между абонентами можно переключаться только между режимами \"только звук\" и \"высокое качество\". Остальные настройки станут доступными, когда закончится этот режим.", "recHighDefinitionOnly": "Предпочтительно высокое качество.", "sd": "SD", "sdTooltip": "Видео стандартного качества", @@ -683,14 +723,15 @@ }, "videothumbnail": { "domute": "Выключить звук", + "domuteOthers": "Выключить остальных", "flip": "Отразить", "kick": "Выкинуть", "moderator": "Модератор", "mute": "Без звука", "muted": "Звук выключен", - "remoteControl": "Дистанционное управление", - "show": "", - "videomute": "" + "remoteControl": "", + "show": "Показать крупным планом", + "videomute": "Участник отключил камеру" }, "welcomepage": { "accessibilityLabel": { @@ -704,20 +745,26 @@ }, "calendar": "Календарь", "connectCalendarButton": "Привязать календарь", - "connectCalendarText": "", - "enterRoomTitle": "", + "connectCalendarText": "Подключите календарь, чтобы увидеть все ваши конференции в {{app}}. Кроме того, добавив {{provider}} конференций в календарь, вы сможете запускать их одним щелчком мышки.", + "enterRoomTitle": "Начать новую видеоконференцию", + "roomNameAllowedChars": "Название конференции не должно содержать следующие символы: ?, &, :, ', \", %, #.", "go": "ОК", - "join": "ПРИСОЕДИНИТЬСЯ", - "info": "", + "goSmall": "ОК", + "join": "СОЗДАТЬ / ПРИСОЕДИНИТЬСЯ", + "info": "Инфо", "privacy": "Приватность", - "recentList": "", - "recentListDelete": "", - "recentListEmpty": "", - "reducedUIText": "", + "recentList": "Недавние", + "recentListDelete": "Удалить", + "recentListEmpty": "Сейчас ваш список недавно проведенных конференций пуст. По мере вашего пользования сервисом он будет пополняться.", + "reducedUIText": "Добро пожаловать в {{app}}!", "roomname": "Укажите название комнаты", "roomnameHint": "Укажите название комнаты или ее адрес. Можете сами создать название и передать его будущим участникам встречи, чтобы они использовали именно его.", "sendFeedback": "Обратная связь", "terms": "Условия", - "title": "" + "title": "Защищенная, полнофункциональная и совершенно бесплатная система видеоконференций" + }, + "lonelyMeetingExperience": { + "button": "Пригласить", + "youAreAlone": "Вы один в видеоконференции" } -} \ No newline at end of file +} diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-sv.json b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-sv.json index 699b65ef8d..2ff76c8511 100644 --- a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-sv.json +++ b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-sv.json @@ -569,9 +569,9 @@ "shareYourScreen": "Slå av eller på skärmdelning", "shortcuts": "Stäng eller öppna genvägar", "show": "", - "speakerStats": "Stäng eller öppna högstalarstatistik", + "speakerStats": "Stäng eller öppna talarstatistik", "tileView": "Öppna eller stäng panelvyn", - "toggleCamera": "Öppna eller stäng kamera", + "toggleCamera": "Växla kamera", "videomute": "Sätt på eller stäng av mikrofonen", "videoblur": "" }, @@ -606,7 +606,7 @@ "sharedvideo": "Dela en Youtube-video", "shareRoom": "Bjud in någon", "shortcuts": "Visa genvägar", - "speakerStats": "Högtalarspecifikationer", + "speakerStats": "Talarstatistik", "startScreenSharing": "Starta skärmdelning", "startSubtitles": "Starta undertextning", "stopScreenSharing": "Avsluta skämdelning", @@ -614,7 +614,7 @@ "stopSharedVideo": "Pausa YouTube-video", "talkWhileMutedPopup": "Försöker du tala? Din mikrofon är tystad.", "tileViewToggle": "Öppna eller stäng panelvyn", - "toggleCamera": "Öppna eller stäng kamera", + "toggleCamera": "Byta kamera", "videomute": "Aktivera / avaktivera kameran", "startvideoblur": "", "stopvideoblur": "" @@ -710,4 +710,4 @@ "terms": "Termer", "title": "Säkra, välutrustade och helt kostnadsfria videokonferenser" } -} \ No newline at end of file +} diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-zhCN.json b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-zhCN.json index a35bde1a5c..ae86676ee9 100644 --- a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-zhCN.json +++ b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-zhCN.json @@ -4,15 +4,15 @@ "countryNotSupported": "目的国家暂时未被支持。", "countryReminder": "尝试在美国之外通话?请检查国家代码!", "disabled": "您不能邀请成员", - "failedToAdd": "", + "failedToAdd": "添加参与者失败", "footerText": "禁止拨号。", "loading": "查找联系人或者电话号码", "loadingNumber": "验证电话号码", "loadingPeople": "正在搜索需要邀请的成员", "noResults": "没有符合要求的搜索结果", "noValidNumbers": "请输入一个电话号码", - "searchNumbers": "新增电话号码", - "searchPeople": "搜索成员", + "searchNumbers": "添加电话成员", + "searchPeople": "查找人员", "searchPeopleAndNumbers": "搜索成员或添加其电话号码", "telephone": "电话号码: {{number}}", "title": "邀请成员与会" @@ -21,10 +21,11 @@ "bluetooth": "蓝牙", "headphones": "耳机", "phone": "电话", - "speaker": "发言人" + "speaker": "发言人", + "none": "没有可用的音频设备" }, "audioOnly": { - "audioOnly": "只有音频" + "audioOnly": "低带宽" }, "calendarSync": { "addMeetingURL": "添加会议链接", @@ -36,22 +37,32 @@ }, "join": "加入", "joinTooltip": "加入会议", - "nextMeeting": "近期无活动。", + "nextMeeting": "下一场会议", "noEvents": "近期无活动。", "ongoingMeeting": "正在进行的会议", - "permissionButton": "打开设置", + "permissionButton": "设置", "permissionMessage": "在应用中查看会议需要日历权限。", "refresh": "刷新日历", "today": "今日" }, "chat": { - "error": "错误:你的消息 \"{{originalText}}\" 未被发送。原因: {{error}}", + "error": "错误:消息未发送。原因:{{error}}", + "fieldPlaceHolder": "在这里输入你的信息", "messagebox": "输入消息", + "messageTo": "与 {{recipient}} 的私人聊天", + "noMessagesMessage": "会议中还没有消息,在这里开始谈话吧!", "nickname": { "popover": "选择一个昵称", "title": "输入一个昵称用于聊天" }, - "title": "聊天" + "privateNotice": "与 {{recipient}} 的私人聊天", + "title": "聊天", + "you": "您" + }, + "chromeExtensionBanner": { + "installExtensionText": "", + "buttonText": "", + "dontShowAgain": "" }, "connectingOverlay": { "joiningRoom": "会议连接中..." @@ -91,8 +102,7 @@ "remoteport": "远程端口:", "resolution": "分辨率:", "status": "连接:", - "transport": "传输:", - "turn": "路由" + "transport": "传输:" }, "dateUtils": { "earlier": "更早的", @@ -102,14 +112,15 @@ "deepLinking": { "appNotInstalled": "您需要在手机上安装 {{app}} 这个应用才能参加会议。", "description": "无响应?正在尝试启动桌面{{app}}召开会议。重试或启动网页版{{app}}召开会议。", - "descriptionWithoutWeb": "", + "descriptionWithoutWeb": "无响应?已尝试启动客户端{{app}}召开会议。", "downloadApp": "下载应用", "launchWebButton": "在网页中启动", - "openApp": "继续打开应用", + "openApp": "继续", "title": "在 {{app}}中登录会议...", "tryAgainButton": "请尝试重启桌面版应用程序" }, "defaultLink": "例如 {{url}}", + "defaultNickname": "例如 星视通", "deviceError": { "cameraError": "无法访问您的摄像头", "cameraPermission": "无法获得摄像头访问权限", @@ -127,8 +138,8 @@ "liveStreaming": "流媒体直播" }, "allow": "允许", - "alreadySharedVideoMsg": "", - "alreadySharedVideoTitle": "只能同时分享 一个视频", + "alreadySharedVideoMsg": "另一位参与者已经在分享视频了,这次会议一次只允许一个人分享视频。", + "alreadySharedVideoTitle": "只能共享一个视频", "applicationWindow": "应用窗口", "Back": "返回", "cameraConstraintFailedError": "你的摄像头不满足要求。", @@ -153,40 +164,40 @@ "contactSupport": "联系我们", "copy": "复制", "dismiss": "解除,离开", - "displayNameRequired": "", + "displayNameRequired": "嗨! 你叫什么名字?", "done": "完成", - "enterDisplayName": "", + "enterDisplayName": "请输入您的名称", "error": "错误", "externalInstallationMsg": "您需要安装桌面共享扩展", "externalInstallationTitle": "需要扩展程序", "goToStore": "跳转至应用商店", "gracefulShutdown": "服务器正在维护,请稍后再试。", "IamHost": "我是主持人。", - "incorrectRoomLockPassword": "", + "incorrectRoomLockPassword": "密码错误", "incorrectPassword": "错误的用户名或者密码", "inlineInstallationMsg": "您需要安装桌面共享扩展", "inlineInstallExtension": "立刻安装", "internalError": "哎呀!出现了点问题。错误: {{error}}", "internalErrorTitle": "内部错误", - "kickMessage": "", + "kickMessage": "你可以联系{{participantDisplayName}}以了解更多信息。", "kickParticipantButton": "踢除", "kickParticipantDialog": "确定要踢除此成员吗?", "kickParticipantTitle": "静音该与会者吗?", - "kickTitle": "", + "kickTitle": "对不起,您被 {{participantDisplayName}} 踢出了会议。", "liveStreaming": "流媒体直播中", "liveStreamingDisabledForGuestTooltip": "访客无法启动流媒体直播。", "liveStreamingDisabledTooltip": "禁止启动流媒体。", "lockMessage": "锁定会议失败。", - "lockRoom": "", + "lockRoom": "添加会议 $t(lockRoomPasswordUppercase)", "lockTitle": "锁定失败", - "logoutQuestion": "你确定要登出并停止会议吗?", + "logoutQuestion": "你确定要退出并停止会议吗?", "logoutTitle": "登出", - "maxUsersLimitReached": "", - "maxUsersLimitReachedTitle": "", - "micConstraintFailedError": "你的麦克风不满足要求。", + "maxUsersLimitReached": "已达到参与人数上限。房间已满。请联系房主或稍后再试!", + "maxUsersLimitReachedTitle": "已达到参与人数上限。", + "micConstraintFailedError": "您的麦克风不符合要求。", "micNotFoundError": "未发现麦克风", - "micNotSendingData": "", - "micNotSendingDataTitle": "", + "micNotSendingData": "在您的电脑设置中开启麦克风并调整音量", + "micNotSendingDataTitle": "您的麦克风被系统静音", "micPermissionDeniedError": "您未授权使用麦克风,您仍可参加会议但是其他人无法听到,使用地址栏里的摄像头按钮来启动麦克风。", "micUnknownError": "未知错误,麦克风不可用。", "muteParticipantBody": "您无法对他们解除静音,但是他们自己可以随时解除静音。", @@ -194,10 +205,10 @@ "muteParticipantDialog": "您确定要将此参与者静音吗?您将无法取消静音,但他们可以随时取消静音。", "muteParticipantTitle": "静音该与会者吗?", "Ok": "好的", - "passwordLabel": "", + "passwordLabel": "$t(lockRoomPasswordUppercase)", "passwordNotSupported": "不支持设置会议密码。", - "passwordNotSupportedTitle": "", - "passwordRequired": "", + "passwordNotSupportedTitle": "不支持 $t(lockRoomPasswordUppercase) not supported", + "passwordRequired": "需 $t(lockRoomPasswordUppercase)", "popupError": "您的浏览器在此网站上阻止了弹出式窗口。请在浏览器的安全设置中打开它并再试一次。", "popupErrorTitle": "弹出窗口被拦截", "recording": "录制中", @@ -212,7 +223,7 @@ "remoteControlStopMessage": "远程控制结束!", "remoteControlTitle": "远程桌面控制", "Remove": "移除", - "removePassword": "", + "removePassword": "移除 $t(lockRoomPassword)", "removeSharedVideoMsg": "您确定要移除共享的视频吗?", "removeSharedVideoTitle": "移除共享的视频", "reservationError": "预定系统错误", @@ -222,9 +233,13 @@ "screenSharingFailedToInstallTitle": "屏幕共享插件安装失败", "screenSharingFirefoxPermissionDeniedError": "尝试进行屏幕共享时遇到了问题。请确认给予了相应的权限。", "screenSharingFirefoxPermissionDeniedTitle": "哎呀!我们无法启动屏幕共享!", - "screenSharingPermissionDeniedError": "哎呀!您的屏幕共享插件似乎遇到了权限问题。请重新加载并重试。", + "screenSharingPermissionDeniedError": "哎呀!您的屏幕共享插件似乎遇到了权限问题。请刷新页面并重试。", + "sendPrivateMessage": "", + "sendPrivateMessageCancel": "", + "sendPrivateMessageOk": "", + "sendPrivateMessageTitle": "", "serviceUnavailable": "服务不可用", - "sessTerminated": "通话已终止", + "sessTerminated": "会话结束", "Share": "分享", "shareVideoLinkError": "请提供正确的youtube链接。", "shareVideoTitle": "分享视频", @@ -256,10 +271,13 @@ "dialOut": { "statusMessage": "现在状态为 {{status}}" }, + "documentSharing": { + "title": "" + }, "feedback": { "average": "平均", "bad": "差", - "detailsLabel": "告诉我们更多建议和意见。", + "detailsLabel": "提供更多建议或意见。", "good": "好", "rateExperience": "请评价您的会议体验。", "veryBad": "非常差", @@ -281,7 +299,7 @@ "dialANumber": "若要加入会议,请拨打其中一个号码,然后输入pin码。", "dialInConferenceID": "PIN:", "dialInNotSupported": "抱歉,不支持电话呼入。", - "dialInNumber": "播入:", + "dialInNumber": "拨入:", "dialInSummaryError": "获取拨入信息时出错。请稍后再试。", "dialInTollFree": "免费电话", "genericError": "糟糕!出错了。", @@ -330,7 +348,8 @@ "toggleFilmstrip": "显示/隐藏 视频缩略图", "toggleScreensharing": "在摄像头和屏幕共享之间切换", "toggleShortcuts": "显示/隐藏 快捷键", - "videoMute": "开启或关闭视频" + "videoMute": "开启或关闭视频", + "videoQuality": "管理通话质量" }, "liveStreaming": { "busy": "我们正在释放串流资源。请几分钟后再试。", @@ -349,7 +368,9 @@ "getStreamKeyManually": "我们无法获取任何直播。尝试从YouTube获取流媒体直播密钥。", "invalidStreamKey": "流媒体直播密钥可能不正确。", "off": "流媒体直播已停止", + "offBy": "", "on": "流媒体直播中", + "onBy": "", "pending": "启动流媒体。。。", "serviceName": "直播服务", "signedInAs": "您当前登录为:", @@ -416,7 +437,7 @@ "somebody": "某人", "startSilentTitle": "", "startSilentDescription": "", - "suboptimalExperienceDescription": "呃…恐怕您对 {{appName}} 的体验会很不好。我们正在尝试优化对此浏览器的支持。眼下,请尝试使用 已知体验很好的浏览器。", + "suboptimalBrowserWarning": "", "suboptimalExperienceTitle": "浏览器警告", "unmute": "", "newDeviceCameraTitle": "检测到新相机", @@ -446,6 +467,7 @@ "setEmailLabel": "设置您的个人全球统一标识邮箱", "title": "简介" }, + "raisedHand": "请求发言", "recording": { "authDropboxText": "上传至Dropbox", "availableSpace": "可用空间:{{spaceLeft}} MB(大约可录 {{duration}} 分钟) ", @@ -461,7 +483,9 @@ "live": "直播", "loggedIn": "以 {{userName}} 登录", "off": "录制已停止", + "offBy": "", "on": "录制中", + "onBy": "", "pending": "正在准备录制会议....", "rec": "REC录制", "serviceDescription": "录制服务将保存您的录制", @@ -498,16 +522,20 @@ "title": "设置" }, "settingsView": { + "advanced": "", "alertOk": "确认", "alertTitle": "警告", "alertURLText": "服务器 URL 无效", "buildInfoSection": "生成信息", "conferenceSection": "会议", + "disableCallIntegration": "", + "disableP2P": "", "displayName": "显示名称", "email": "电子邮件", "header": "设置", "profileSection": "简介", "serverURL": "服务器 URL", + "showAdvanced": "", "startWithAudioMuted": "启动并关闭音频", "startWithVideoMuted": "启动并关闭视频", "version": "版本" @@ -538,21 +566,24 @@ "accessibilityLabel": { "audioOnly": "打开 /关闭 仅音频", "audioRoute": "选择音频设备", - "callQuality": "", + "callQuality": "管理通话质量", "cc": "打开 / 关闭 字幕", "chat": "显示 / 隐藏 聊天窗口", "document": "开启 / 关闭 文档共享", - "feedback": "留下反馈", + "download": "下载应用", + "feedback": "提供反馈", "fullScreen": "进入 / 退出 全屏模式", "hangup": "退出聊天室", + "help": "", "invite": "邀请", "kick": "踢除成员", "localRecording": "显示 / 隐藏 本地录制选项", "lockRoom": "切换会议室锁定", "moreActions": "显示 / 隐藏 更多选择", - "moreActionsMenu": "更多功能菜单", + "moreActionsMenu": "更多选择", "mute": "静音 / 取消静音", "pip": "切换子母画面模式", + "privateMessage": "", "profile": "编辑您的简介", "raiseHand": "举手 / 取消举手", "recording": "开启 / 停止 视频录制", @@ -570,8 +601,8 @@ "videoblur": "" }, "addPeople": "添加成员到您的通话中", - "audioOnlyOff": "禁用仅音频模式", - "audioOnlyOn": "启用仅音频模式", + "audioOnlyOff": "", + "audioOnlyOn": "", "audioRoute": "选择音频设备", "authenticate": "认证", "callQuality": "管理通话质量", @@ -579,20 +610,28 @@ "closeChat": "关闭聊天", "documentClose": "关闭文档共享", "documentOpen": "开启文档共享", - "enterFullScreen": "全屏观看", + "download": "下载应用", + "enterFullScreen": "开启全屏", "enterTileView": "切换视图", - "exitFullScreen": "退出全屏模式", + "exitFullScreen": "退出全屏", "exitTileView": "退出平铺模式", - "feedback": "留下反馈", + "feedback": "提供反馈", "hangup": "离开", + "help": "", "invite": "邀请", "login": "登录", "logout": "登出", "lowerYourHand": "放手", "moreActions": "更多操作", "mute": "静音 / 解除静音", + "noAudioSignalTitle": "", + "noAudioSignalDesc": "", + "noAudioSignalDescSuggestion": "", + "noisyAudioInputTitle": "", + "noisyAudioInputDesc": "", "openChat": "开启聊天", "pip": "进入子母画面模式", + "privateMessage": "", "profile": "编辑您的简介", "raiseHand": "请求 / 取消 发言", "raiseYourHand": "举手", @@ -605,7 +644,7 @@ "startSubtitles": "开启字幕", "stopScreenSharing": "停止屏幕共享", "stopSubtitles": "关闭字幕", - "stopSharedVideo": "关闭YouTube视频", + "stopSharedVideo": "停止YouTube视频", "talkWhileMutedPopup": "您在尝试发言吗? 当前您已被静音。", "tileViewToggle": "画面模式", "toggleCamera": "切换相机", @@ -649,13 +688,15 @@ }, "videoStatus": { "audioOnly": "AUD声音", - "audioOnlyExpanded": "您处于仅用音讯模式。该模式可节省频宽,但无法看见他人影像。", + "audioOnlyExpanded": "", "callQuality": "", "hd": "高清", + "hdTooltip": "观看高清视频", "highDefinition": "高清", "labelTooiltipNoVideo": "无视频", - "labelTooltipAudioOnly": "已启用仅音频模式", + "labelTooltipAudioOnly": "", "ld": "低清", + "ldTooltip": "观看普清视频", "lowDefinition": "低清", "onlyAudioAvailable": "只能使用音频", "onlyAudioSupported": "我们只支持此浏览器的音频功能。", @@ -663,6 +704,7 @@ "p2pVideoQualityDescription": "", "recHighDefinitionOnly": "将会首选高清模式。", "sd": "标清", + "sdTooltip": "观看标清视频", "standardDefinition": "标清" }, "videothumbnail": { @@ -672,7 +714,7 @@ "moderator": "管理员", "mute": "与会者已被静音", "muted": "已静音", - "remoteControl": "远程控制", + "remoteControl": "", "show": "", "videomute": "" }, @@ -687,11 +729,13 @@ "video": "视频" }, "calendar": "日历", - "connectCalendarButton": "连接你的日历", - "connectCalendarText": "连接你的日历以查看你在{{app}}中的全部会议。此外,新增{{provider}} 会议到你的日历中,点击即可启动。", + "connectCalendarButton": "连接您的日历", + "connectCalendarText": "连接您的日历", "enterRoomTitle": "开启一个新的会议", + "roomNameAllowedChars": "", "go": "开始", - "join": "加入", + "goSmall": "开始", + "join": "", "info": "信息", "privacy": "隐私", "recentList": "最近", @@ -704,4 +748,4 @@ "terms": "条款", "title": "安全,功能完善和完全开源的视频会议" } -} \ No newline at end of file +} diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-zhTW.json b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-zhTW.json index e617cb37fe..192a61ac3c 100644 --- a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-zhTW.json +++ b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main-zhTW.json @@ -2,10 +2,10 @@ "addPeople": { "add": "邀請", "countryNotSupported": "此目標區域尚未支援。", - "countryReminder": "嘗試在美國外地通話?請確認開頭使用的國家代碼!", + "countryReminder": "嘗試在美國以外地區通話?請確認開頭使用的國家代碼!", "disabled": "您不可以邀請人員。", - "failedToAdd": "", - "footerText": "播打已關閉。", + "failedToAdd": "增加參與人失敗", + "footerText": "對外播號已停用。", "loading": "尋找聯絡人及電話號碼", "loadingNumber": "驗證電話號碼", "loadingPeople": "正在尋搜人員進行邀請", @@ -18,65 +18,75 @@ "title": "邀請人員參加會議" }, "audioDevices": { - "bluetooth": "藍牙", + "bluetooth": "藍芽", "headphones": "耳機", "phone": "電話", - "speaker": "發言者" + "speaker": "發言者", + "none": "沒有可用的音效裝置" }, "audioOnly": { - "audioOnly": "僅用音訊" + "audioOnly": "低頻寬" }, "calendarSync": { "addMeetingURL": "增加會議連結", - "confirmAddLink": "你要加上 Jitsi 連結於此事件嗎?", + "confirmAddLink": "您要加上 Jitsi 連結於此事件嗎?", "error": { - "appConfiguration": "", - "generic": "", - "notSignedIn": "" + "appConfiguration": "行事曆整合尚未正確設定。", + "generic": "發生錯誤。請檢查行事曆設定,或是重新整理行事曆。", + "notSignedIn": "查看行事曆事件進行認證時發生錯誤。請檢查您的行事曆設定,並再次登入。" }, "join": "參加", "joinTooltip": "參加會議", "nextMeeting": "下次會議", "noEvents": "沒有預定事件排入行程。", - "ongoingMeeting": "即將進行會議", + "ongoingMeeting": "正在進行的會議", "permissionButton": "開啟設定", - "permissionMessage": "日曆允許權限是必須的,以查看你的會議於應用程式中。", + "permissionMessage": "行事曆允許權限是必須的,以查看您在應用程式中的會議。", "refresh": "重新整理行事曆", "today": "今日" }, "chat": { - "error": "錯誤:你的訊息 \"{{originalText}}\" 未被送出。原因: {{error}}", - "messagebox": "", + "error": "錯誤:您的訊息未被傳送。原因: {{error}}", + "fieldPlaceHolder": "在此輸入您的訊息", + "messagebox": "輸入訊息", + "messageTo": "私人訊息傳送至 {{recipient}}", + "noMessagesMessage": "會議中還沒有訊息。在此開始對話!", "nickname": { - "popover": "選擇暱稱", - "title": "" + "popover": "選擇名稱", + "title": "輸入名稱來使用交談" }, - "title": "" + "privateNotice": "私人訊息傳送至 {{recipient}}", + "title": "交談", + "you": "自己" }, "connectingOverlay": { - "joiningRoom": "" + "joiningRoom": "將自己連接至自訂會議..." }, "connection": { "ATTACHED": "已經附加", - "AUTHENTICATING": "驗證中", - "AUTHFAIL": "驗證失敗", + "AUTHENTICATING": "認證中", + "AUTHFAIL": "認證失敗", "CONNECTED": "已經連接", "CONNECTING": "連接中", "CONNFAIL": "連接失敗", "DISCONNECTED": "已經中斷連接", "DISCONNECTING": "中斷連接中", "ERROR": "錯誤", - "RECONNECTING": "網絡錯誤發生。重新連接中………" + "RECONNECTING": "網路發生問題。重新連線中.........", + "GOT_SESSION_ID": "正在取得 session-id… 完成", + "GET_SESSION_ID_ERROR": "取得 session-id 時發生錯誤:{{code}}", + "FETCH_SESSION_ID": "正在取得 session-id…", + "LOW_BANDWIDTH": "已關閉 {{displayName}} 的影片以節省流量" }, "connectionindicator": { - "address": "地址:", + "address": "位址:", "bandwidth": "估計頻寬:", "bitrate": "比特率:", - "bridgeCount": "伺服器計數:", + "bridgeCount": "伺服器數量:", "connectedTo": "已連接至:", "framerate": "影格率:", "less": "顯示較少", - "localaddress": "本地地址:", + "localaddress": "本地位址:", "localport": "本地端口:", "more": "顯示更多", "packetloss": "丟包:", @@ -87,12 +97,17 @@ "nonoptimal": "不甚理想", "poor": "不好" }, - "remoteaddress": "遠端地址:", + "remoteaddress": "遠端位址:", "remoteport": "遠端端口:", "resolution": "解析度:", "status": "連接:", "transport": "傳輸:", - "turn": " (轉)" + "transport_plural": "傳輸:", + "remoteport_plural": "遠端連線埠:", + "remoteaddress_plural": "遠端位址:", + "localport_plural": "本機連線埠:", + "localaddress_plural": "本機位址:", + "e2e_rtt": "E2E RTT:" }, "dateUtils": { "earlier": "稍早", @@ -101,8 +116,8 @@ }, "deepLinking": { "appNotInstalled": "在您的手機上需要 {{app}} 行動應用程式去加入這場會議。", - "description": "沒有發生作用嗎?我們嘗試發起您的會議於 {{app}} desktop 桌面應用程式。請再試一次,或是發起會議於 {{app}} 網路應用程式。", - "descriptionWithoutWeb": "", + "description": "沒有發生作用嗎?我們嘗試發起您的會議於 {{app}} 桌面應用程式。請再試一次,或是在 {{app}} 網路應用程式發起會議。", + "descriptionWithoutWeb": "毫無作用嗎?我們已試著將您的會議在桌機應用工具 {{app}} 中啟動。", "downloadApp": "下載應用 APP", "launchWebButton": "在網路上發起", "openApp": "繼續前往此應用程式", @@ -110,6 +125,7 @@ "tryAgainButton": "在桌面上再試一次" }, "defaultLink": "例如 {{url}}", + "defaultNickname": "例如 春嬌 志明", "deviceError": { "cameraError": "無法取用您的攝影裝置", "cameraPermission": "無法獲得攝影裝置取用權限", @@ -119,7 +135,7 @@ "deviceSelection": { "noPermission": "未取得權限", "previewUnavailable": "預覽無法使用", - "selectADevice": "選擇設備", + "selectADevice": "選擇裝置", "testAudio": "播放測試聲音" }, "dialog": { @@ -127,25 +143,25 @@ "liveStreaming": "直播串流" }, "allow": "允許", - "alreadySharedVideoMsg": "", - "alreadySharedVideoTitle": "一次只能允許一位視訊分享", + "alreadySharedVideoMsg": "另一位參與者已經進行分享影像了。此會議同個時間只能允許一人分享影像畫面。", + "alreadySharedVideoTitle": "一次只允許一位影像分享", "applicationWindow": "應用程式視窗", "Back": "返回", "cameraConstraintFailedError": "您的攝影裝置不符合要求。", "cameraNotFoundError": "未發現攝影裝置。", "cameraNotSendingData": "我們無法取用您的攝影裝置。請檢查是否有其他程序正在使用這個設備,否則請從設置選單裡選擇其他設備或者重新裝載。", "cameraNotSendingDataTitle": "無法取用攝影裝置", - "cameraPermissionDeniedError": "您未取得權限使用您的攝影裝置。您仍然可參加會議,但是其他人無法看到。可以利用位址欄中的攝影裝置按鈕來修復啟動。", + "cameraPermissionDeniedError": "您未取得權限使用攝影裝置。您仍可參加會議,但其他人無法看到。可以利用位址欄中的攝影裝置按鈕來修正。", "cameraUnknownError": "由於不明原因,無法使用攝影裝置。", - "cameraUnsupportedResolutionError": "您的攝影裝置不支援所需的視訊解析度。", + "cameraUnsupportedResolutionError": "您的攝影裝置不支援所需的影像解析度。", "Cancel": "取消", "close": "關閉", - "conferenceDisconnectMsg": "請檢查一下網路連接。將在 {{seconds}} 秒後重新連接…", + "conferenceDisconnectMsg": "請檢查一下網路連接。將在 {{seconds}} 秒後重新連接...", "conferenceDisconnectTitle": "您已經被中斷連接。", - "conferenceReloadMsg": "我們正試著修復狀況。重新連接於 {{seconds}} 秒內……", - "conferenceReloadTitle": "不好意思,出錯了。", + "conferenceReloadMsg": "我們正試著修復狀況。重新連接於 {{seconds}} 秒內......", + "conferenceReloadTitle": "很不幸,有點出錯了。", "confirm": "確認", - "confirmNo": "沒有", + "confirmNo": "否", "confirmYes": "是的", "connectError": "喔哦!發生錯誤,無法連接至會議。", "connectErrorWithMsg": "喔哦!發生錯誤,無法連接至會議: {{msg}}", @@ -153,115 +169,129 @@ "contactSupport": "聯絡支援", "copy": "複製", "dismiss": "解除", - "displayNameRequired": "", + "displayNameRequired": "嗨!請問大名?", "done": "完成", - "enterDisplayName": "", + "enterDisplayName": "請在此輸入您自己的名字", "error": "錯誤", "externalInstallationMsg": "您需要安裝桌面分享擴充應用程式。", "externalInstallationTitle": "需要擴充應用程式", "goToStore": "前往應用商店", - "gracefulShutdown": "本伺服器閉關維護中,請稍後再試。", + "gracefulShutdown": "我們的服務目前關閉維護中,請稍後再試。", "IamHost": "我是主辦人", - "incorrectRoomLockPassword": "", + "incorrectRoomLockPassword": "密碼不符", "incorrectPassword": "錯誤的用戶名稱或密碼", "inlineInstallationMsg": "您需要安裝桌面分享擴充應用程式。", "inlineInstallExtension": "立即安裝", "internalError": "喔哦!出現了點問題。發生錯誤: {{error}}", "internalErrorTitle": "內部錯誤", - "kickMessage": "", - "kickParticipantButton": "", - "kickParticipantDialog": "", - "kickParticipantTitle": "", - "kickTitle": "", + "kickMessage": "您可以聯絡 {{participantDisplayName}} 取得更詳細資訊。", + "kickParticipantButton": "踢出", + "kickParticipantDialog": "確定要將這位參與者踢出會議?", + "kickParticipantTitle": "踢出這位參與者?", + "kickTitle": "噢! {{participantDisplayName}} 已將您踢出會議", "liveStreaming": "直播串流中", "liveStreamingDisabledForGuestTooltip": "訪客無法啟動直播串流。", - "liveStreamingDisabledTooltip": "啟動直播串流已關閉。", + "liveStreamingDisabledTooltip": "啟動直播串流已停用。", "lockMessage": "鎖定會議失敗。", - "lockRoom": "", + "lockRoom": "增加會議 $t(lockRoomPasswordUppercase)", "lockTitle": "鎖定失敗", "logoutQuestion": "您確定要登出並停止會議嗎?", "logoutTitle": "登出", - "maxUsersLimitReached": "", - "maxUsersLimitReachedTitle": "", + "maxUsersLimitReached": "參與人數已達上限,此會議目前滿額。請聯絡會議主人,或是稍後再試!", + "maxUsersLimitReachedTitle": "參與人數已達上限", "micConstraintFailedError": "您的麥克風不符合要求。", "micNotFoundError": "未發現麥克風。", - "micNotSendingData": "", - "micNotSendingDataTitle": "", - "micPermissionDeniedError": "您未取得權限使用麥克風。您仍然可參加會議,但是其他人無法聽到。可以利用位址欄中的攝影裝置按鈕來修復啟動。", + "micNotSendingData": "至電腦設定中解除麥克風靜音並調整大小", + "micNotSendingDataTitle": "您的麥克風由電腦系統設定為靜音", + "micPermissionDeniedError": "您未取得權限使用麥克風。您仍然可參加會議,但是其他人無法聽到。可以利用位址欄中的攝影裝置按鈕來修正。", "micUnknownError": "不明原因造成麥克風無法使用。", "muteParticipantBody": "您無法對他們解除靜音,但是他們自己隨時可以解除靜音。", "muteParticipantButton": "靜音", - "muteParticipantDialog": "", - "muteParticipantTitle": "", - "Ok": "Ok", - "passwordLabel": "", - "passwordNotSupported": "不支援設置會議密碼。", - "passwordNotSupportedTitle": "", - "passwordRequired": "", - "popupError": "您的瀏覽器在此網站上阻攔彈出視窗。請在瀏覽器的安全設置中開啟它並再試一次。", - "popupErrorTitle": "彈出視窗遭到阻攔", - "recording": "錄製作業中", + "muteParticipantDialog": "確定要將這位參與者設為靜音?您無法為他們解除,但他們可以隨時自行解除靜音。", + "muteParticipantTitle": "將這位參與者設為靜音?", + "Ok": "確定", + "passwordLabel": "會議已被參與者鎖定。請輸入 $t(lockRoomPassword) 以加入。", + "passwordNotSupported": "設置會議密碼 $t(lockRoomPassword) 尚未支援 。", + "passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) 尚未支援", + "passwordRequired": "$t(lockRoomPasswordUppercase) 必須要有", + "popupError": "您的瀏覽器在此網站上阻擋彈出視窗。請在瀏覽器的安全設置中開啟並再試一次。", + "popupErrorTitle": "彈出視窗遭到阻擋", + "recording": "錄影中", "recordingDisabledForGuestTooltip": "訪客無法啟動錄影。", - "recordingDisabledTooltip": "啟動錄影已關閉。", + "recordingDisabledTooltip": "啟動錄影已停用。", "rejoinNow": "立即重新加入", "remoteControlAllowedMessage": "{{user}} 接受您進行遠端控制的要求!", "remoteControlDeniedMessage": "{{user}} 拒絕您進行遠端控制的要求!", "remoteControlErrorMessage": "在嘗試向 {{user}} 請求遠端控制權限時發生錯誤!", - "remoteControlRequestMessage": "您要允許 {{user}} 遠端控制您的桌面嗎?", - "remoteControlShareScreenWarning": "注意:如果按下 \"允許\" 您將分享自己的螢幕!", + "remoteControlRequestMessage": "您要允許 {{user}} 遠端控制您的桌面嗎?", + "remoteControlShareScreenWarning": "注意:如果按下 \"允許\" 您將會分享出自己的螢幕!", "remoteControlStopMessage": "遠端控制階段結束!", "remoteControlTitle": "遠端桌面控制", "Remove": "移除", - "removePassword": "", - "removeSharedVideoMsg": "您確定要移除自己的分享視訊嗎?", - "removeSharedVideoTitle": "移除分享視訊", + "removePassword": "移除 $t(lockRoomPassword)", + "removeSharedVideoMsg": "您確定要移除自己分享的影像嗎?", + "removeSharedVideoTitle": "移除分享的影像", "reservationError": "預約系統錯誤", - "reservationErrorMsg": "錯誤碼: {{code}}, 訊息: {{msg}}", + "reservationErrorMsg": "錯誤碼: {{code}} , 訊息: {{msg}}", "retry": "重試", "screenSharingFailedToInstall": "喔哦!螢幕分享擴充程式安裝失敗。", "screenSharingFailedToInstallTitle": "螢幕分享擴充安裝失敗", - "screenSharingFirefoxPermissionDeniedError": "嘗試進行螢幕分享時遇到問題。請確認您有賦予相對的權限允許。", + "screenSharingFirefoxPermissionDeniedError": "嘗試進行螢幕分享時遇到問題。請確認您有授予權限以分享。 ", "screenSharingFirefoxPermissionDeniedTitle": "喔哦!我們無法啟動螢幕分享!", - "screenSharingPermissionDeniedError": "喔哦!您的視訊分享擴充權限發生一點問題。請重新載入再試一次。", + "screenSharingPermissionDeniedError": "噢喔!您的影像分享擴充權限發生問題。請重新載入,再試一次。", + "sendPrivateMessage": "您最近有收到私人訊息。您要進行私人回覆,或是要將自己的訊息發佈至群組?", + "sendPrivateMessageCancel": "發佈至群組", + "sendPrivateMessageOk": "私人回覆", + "sendPrivateMessageTitle": "私人傳訊?", "serviceUnavailable": "服務無法使用", "sessTerminated": "通話已經終止", "Share": "分享", "shareVideoLinkError": "請提供正確的 YouTube 連結。", - "shareVideoTitle": "分享視訊", + "shareVideoTitle": "分享影像", "shareYourScreen": "分享自己的螢幕", - "shareYourScreenDisabled": "螢幕分享已關閉。", + "shareYourScreenDisabled": "螢幕分享已停用。", "shareYourScreenDisabledForGuest": "訪客無法螢幕分享。", "startLiveStreaming": "啟動直播串流", - "startRecording": "啟動錄製作業", + "startRecording": "啟動錄影作業", "startRemoteControlErrorMessage": "嘗試啟動遠端控制階段時發生錯誤!", "stopLiveStreaming": "停止直播串流", - "stopRecording": "停止錄製作業", - "stopRecordingWarning": "確定要停止錄製作業嗎?", + "stopRecording": "停止錄影", + "stopRecordingWarning": "確定要停止錄影嗎?", "stopStreamingWarning": "確定要停止直播串流嗎?", "streamKey": "直播串流密鑰", "Submit": "提交", "thankYou": "感謝您使用 {{appName}}!", "token": "標記", - "tokenAuthFailed": "對不起,您未被允許加入此會議。", - "tokenAuthFailedTitle": "驗證失敗", + "tokenAuthFailed": "抱歉,您未被允許加入此會議。", + "tokenAuthFailedTitle": "認證失敗", "transcribing": "轉錄中", - "unlockRoom": "", + "unlockRoom": "移除會議 $t(lockRoomPassword)", "userPassword": "用戶密碼", - "WaitForHostMsg": "", - "WaitForHostMsgWOk": "", - "WaitingForHost": "等侯主辦人………", + "WaitForHostMsg": "此會議 {{room}} 尚未啟動。如果您是會議主人,請進行認證;否者,請等待會議主人到達。", + "WaitForHostMsgWOk": "此會議 {{room}} 尚未啟動。如果您是會議主人,請按 [確定] 進行認證;否者,請等待會議主人到達。", + "WaitingForHost": "等侯主辦人 ...", "Yes": "是的", - "yourEntireScreen": "自己的全螢幕" + "yourEntireScreen": "自己的全螢幕", + "screenSharingAudio": "分享音訊", + "muteEveryoneStartMuted": "現在所有人皆已靜音", + "muteEveryoneSelf": "您自己", + "muteEveryoneTitle": "靜音所有人?", + "muteEveryoneDialog": "是否要靜音所有人?您將不能解除對方的靜音,但對方可以隨時解除自己的靜音狀態。", + "muteEveryoneElseTitle": "是否要讓除了 {{whom}} 以外的人靜音?", + "muteEveryoneElseDialog": "靜音後,你就不能再解除對方的靜音,但對方可以隨時解除自己的靜音狀態。" }, "dialOut": { "statusMessage": "現在狀態為 {{status}}" }, + "documentSharing": { + "title": "分享的文件" + }, "feedback": { "average": "普通中等", "bad": "很差", - "detailsLabel": "告訴我們本次會議使用上更多結果。", + "detailsLabel": "告訴我們關於本次會議使用上更多結果。", "good": "很好", - "rateExperience": "請您評價這次會議的體驗成效", + "rateExperience": "請您評分本次會議的體驗效果", "veryBad": "極差", "veryGood": "極好" }, @@ -274,63 +304,64 @@ }, "info": { "accessibilityLabel": "顯示資訊", - "addPassword": "", - "cancelPassword": "", + "addPassword": "增加 $t(lockRoomPassword)", + "cancelPassword": "取消 $t(lockRoomPassword)", "conferenceURL": "連結:", "country": "國家", - "dialANumber": "", + "dialANumber": "要參加您的會議,撥打以下號碼其中之一,然後輸入 PIN 碼。", "dialInConferenceID": "PIN 號碼:", - "dialInNotSupported": "抱歉,目前不支援電話播入。", - "dialInNumber": "播入:", - "dialInSummaryError": "", - "dialInTollFree": "", + "dialInNotSupported": "抱歉,目前不支援電話撥入。", + "dialInNumber": "撥入:", + "dialInSummaryError": "目前解析撥入資訊錯誤。請稍後再試一次。", + "dialInTollFree": "完全免費", "genericError": "糟糕!出錯了。", - "inviteLiveStream": "要觀看這場會議的直播串流,點按此連結: {{url}}", - "invitePhone": "", - "invitePhoneAlternatives": "", - "inviteURLFirstPartGeneral": "", - "inviteURLFirstPartPersonal": "", - "inviteURLSecondPart": "", + "inviteLiveStream": "要查看這場會議的直播串流,點按此連結: {{url}}", + "invitePhone": "要用電話參加會議,請使用: {{number}},,{{conferenceID}}#\n", + "invitePhoneAlternatives": "要找另一組撥入號碼?\n請見會議撥入號碼: {{url}}\n\n\n如果也要用室內電話撥打,不用連接語音進行加入: {{silentUrl}}", + "inviteURLFirstPartGeneral": "您受邀參加會議。", + "inviteURLFirstPartPersonal": "{{name}} 正在邀請您加入會議。\n", + "inviteURLSecondPart": "\n加入會議:\n{{url}}\n", "liveStreamURL": "直播串流:", "moreNumbers": "更多成員", - "noNumbers": "無播入號碼。", + "noNumbers": "無撥入號碼。", "noPassword": "無", "noRoom": "沒有會議室是指定要播打進入。", - "numbers": "播入號碼", - "password": "", + "numbers": "撥入號碼", + "password": "$t(lockRoomPasswordUppercase):", "title": "分享", - "tooltip": "顯示此會議的連結及電話播入號碼", - "label": "" + "tooltip": "顯示此會議的連結及電話撥入號碼", + "label": "會議資訊" }, "inviteDialog": { - "alertText": "", + "alertText": "邀請某些參與者失敗。", "header": "邀請", - "searchCallOnlyPlaceholder": "", - "searchPeopleOnlyPlaceholder": "", - "searchPlaceholder": "", - "send": "" + "searchCallOnlyPlaceholder": "輸入電話號碼", + "searchPeopleOnlyPlaceholder": "搜尋參與者", + "searchPlaceholder": "參與者或電話號碼", + "send": "發送" }, "inlineDialogFailure": { "msg": "好像有點卡卡不順。", "retry": "重試", "support": "支援", - "supportMsg": "如果狀況一直發生,請聯絡" + "supportMsg": "如果這樣狀況一直發生,請聯絡" }, "keyboardShortcuts": { - "focusLocal": "聚焦於自己的視訊", - "focusRemote": "聚焦於另一人的視訊", - "fullScreen": "觀看 或 離開 全螢幕", + "focusLocal": "聚焦於自己的影像", + "focusRemote": "聚焦於另一人的影像", + "fullScreen": "觀看或離開全螢幕", "keyboardShortcuts": "快捷鍵", - "localRecording": "顯示或顯示本地端錄影控制", + "localRecording": "顯示或隱藏本機端錄影操控", "mute": "靜音或解除靜音", "pushToTalk": "按鍵通話", "raiseHand": "舉手發言或不作發言", "showSpeakerStats": "顯示發言者數據", - "toggleChat": "開啟或關閉聊天", - "toggleFilmstrip": "顯示或隱藏視訊影片縮圖", + "toggleChat": "開啟或關閉交談", + "toggleFilmstrip": "顯示或隱藏影片縮圖", "toggleScreensharing": "在攝影鏡頭和螢幕分享之間進行切換", - "toggleShortcuts": "顯示或顯示鍵盤快捷鍵", - "videoMute": "啟動或停止自己的攝影裝置" + "toggleShortcuts": "顯示或隱藏鍵盤快捷鍵", + "videoMute": "啟動或停止自己的攝影裝置", + "videoQuality": "管理通話品質" }, "liveStreaming": { "busy": "我們正在釋放串流資源。請過幾分鐘後再試。", @@ -340,25 +371,29 @@ "chooseCTA": "請選擇直播串流選項。您目前是以 {{email}} 身份登入。", "enterStreamKey": "在此輸入您的 YouTube 直播串流密鑰。", "error": "直播串流失敗。請重試。", - "errorAPI": "取用您的 YouTube 播出時發生錯誤。請重新登入。", + "errorAPI": "在取用您的 YouTube 直播串流時發生問題。請重新登入。", "errorLiveStreamNotEnabled": "直播串流在 {{email}} 尚未啟用。請開啟直播串流或登入有啟用直播串流的帳戶。", "expandedOff": "直播串流已停止", "expandedOn": "會議串流目前送至 YouTube 。", - "expandedPending": "直播串流正被啟動…", + "expandedPending": "直播串流正被啟動...", "failedToStart": "直播串流啟動失敗", - "getStreamKeyManually": "", - "invalidStreamKey": "", + "getStreamKeyManually": "我們無法解析任何直播串流,請從 YouTube 取得您的直播串流 Key 。", + "invalidStreamKey": "直播串流 Key 可能不正確。", "off": "直播串流已經停止", + "offBy": "{{name}} 停止了直播串流", "on": "直播串流中", - "pending": "啟動直播串流………", + "onBy": "{{name}} 啟動了直播串流", + "pending": "啟動直播串流...", "serviceName": "直播串流服務", - "signedInAs": "你目前登入名為:", + "signedInAs": "您目前登入名稱為:", "signIn": "使用 Google 帳戶登入", "signInCTA": "輸入 YouTube 直播串流密鑰,或登入 YouTube 帳號。", "signOut": "登出", "start": "啟動直播串流", "streamIdHelp": "這是什麼?", - "unavailableTitle": "直播串流無法使用" + "unavailableTitle": "直播串流無法使用", + "googlePrivacyPolicy": "Google 隱私權政策", + "youtubeTerms": "YouTube 服務條款" }, "localRecording": { "clientState": { @@ -368,77 +403,77 @@ }, "dialogTitle": "本地端錄影控制", "duration": "期間", - "durationNA": "N/A", - "encoding": "解碼中", + "durationNA": "不適用", + "encoding": "編碼中", "label": "LOR", - "labelToolTip": "本地端錄影使用中", + "labelToolTip": "本地端錄影投入中", "localRecording": "本地端錄影中", "me": "自己", "messages": { - "engaged": "本地端錄影已使用。", + "engaged": "本地端錄影已投入。", "finished": "錄影階段 {{token}} 已完成。請傳送錄影檔案至主持人。", "finishedModerator": "錄影階段 {{token}} 已完成。本地端錄影追蹤已存檔。請要求各參與者提交其錄影檔案。", - "notModerator": "你不是主持人,無法啟動或停止本地端錄影。" + "notModerator": "您不是主持人,無法啟動或停止本地端錄影。" }, "moderator": "主持人", - "no": "沒有", + "no": "否", "participant": "參與者", "participantStats": "參與者狀態", - "sessionToken": "階段標記", - "start": "啟動錄影作業", - "stop": "停止錄影作業", + "sessionToken": "工作階段標記", + "start": "啟動錄影", + "stop": "停止錄影", "yes": "是的" }, "lockRoomPassword": "密碼", "lockRoomPasswordUppercase": "密碼", "me": "我", "notify": { - "connectedOneMember": "", - "connectedThreePlusMembers": "", - "connectedTwoMembers": "", + "connectedOneMember": "{{name}} 加入了會議", + "connectedThreePlusMembers": "{{name}} 及 {{count}} 位人員加入了會議", + "connectedTwoMembers": "{{first}} 及 {{second}} 加入了會議", "disconnected": "已經中斷連接", "focus": "會議焦點", "focusFail": "{{component}} 無法使用 - 請在 {{ms}} 秒後重試", - "grantedTo": "主持人權限已授予 {{to}}!", - "invitedOneMember": "", - "invitedThreePlusMembers": "", - "invitedTwoMembers": "", - "kickParticipant": "", + "grantedTo": "主持人權限已授予 {{to}} !", + "invitedOneMember": "{{name}} 已受邀請", + "invitedThreePlusMembers": "{{name}} 及 {{count}} 位人員已受邀請", + "invitedTwoMembers": "{{first}} 及 {{second}} 已受邀請", + "kickParticipant": "{{kicked}} 已被 {{kicker}} 踢出會議", "me": "自己", "moderator": "主持人權限已經取得!", - "muted": "您已經啟動通話,並處於靜音狀態。", + "muted": "您已經啟動通話,處於靜音。", "mutedTitle": "您目前處於靜音!", - "mutedRemotelyTitle": "", - "mutedRemotelyDescription": "", - "passwordRemovedRemotely": "", - "passwordSetRemotely": "", - "raisedHand": "", + "mutedRemotelyTitle": "您已經被 {{participantDisplayName}} 設為靜音了!", + "mutedRemotelyDescription": "當您準備好要發言,就可以取消靜音。當您結束了,在會議中要避開噪音,即可回復成靜音。", + "passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) 已被其他參與者移除", + "passwordSetRemotely": "$t(lockRoomPasswordUppercase) 已被其他參與者設定", + "raisedHand": "{{name}} 想要發言。", "somebody": "某人", - "startSilentTitle": "", - "startSilentDescription": "", - "suboptimalExperienceDescription": "呃……恐怕您對 {{appName}} 的體驗不是很好,我們正在嘗試找方法改進對此瀏覽器的支援。現下敬請選用 全力支援的瀏覽器 來進行。", + "startSilentTitle": "您加入了會議而無聲音輸出!", + "startSilentDescription": "重新加入會議以啟用語音", + "suboptimalBrowserWarning": "恐怕您本次會議體驗並不太好,我們會想辦法改進的。但在此之前,敬請使用 完全支援的瀏覽器 。", "suboptimalExperienceTitle": "瀏覽器警告", - "unmute": "", - "newDeviceCameraTitle": "", - "newDeviceAudioTitle": "", - "newDeviceAction": "" + "unmute": "取消靜音", + "newDeviceCameraTitle": "偵測到新的攝影裝置", + "newDeviceAudioTitle": "偵測到新的音效裝置", + "newDeviceAction": "使用" }, - "passwordSetRemotely": "", - "passwordDigitsOnly": "", + "passwordSetRemotely": "被其他參與者設定", + "passwordDigitsOnly": "提昇到 {{number}} 位元", "poweredby": "技術支援", "presenceStatus": { "busy": "忙線", - "calling": "來電…", + "calling": "來電...", "connected": "已經連接", "connecting": "連線中...", "connecting2": "通話中*...", "disconnected": "已經中斷連接", - "expired": "未接", - "ignored": "忽略", - "initializingCall": "播打電話…", - "invited": "被邀請的", + "expired": "逾時未接", + "ignored": "忽略不接", + "initializingCall": "播打電話...", + "invited": "受邀請的", "rejected": "拒接", - "ringing": "鈴鈴鈴……" + "ringing": "鈴鈴鈴..." }, "profile": { "setDisplayNameLabel": "設定您的顯示名稱", @@ -446,41 +481,44 @@ "setEmailLabel": "設置您的大頭人像電子信箱", "title": "簡介" }, + "raisedHand": "請求發言", "recording": { "authDropboxText": "上傳至 Dropbox", "availableSpace": "可用空間: {{spaceLeft}} MB (大約錄影時間 {{duration}} 分鐘)", "beta": "BETA", - "busy": "我們正在釋放錄製資源。請過幾分鐘後再試。", - "busyTitle": "全部錄製設備正在忙碌", - "error": "錄製作業失敗。請再次重試。", + "busy": "我們正在釋放錄影資源。請過幾分鐘後再試。", + "busyTitle": "全部錄影目前忙碌", + "error": "錄影失敗。請再次重試。", "expandedOff": "錄影已經停止", "expandedOn": "此會議目前正在錄影。", - "expandedPending": "錄影正在啟動…", - "failedToStart": "錄製啟動失敗", - "fileSharingdescription": "", + "expandedPending": "錄影正在啟動...", + "failedToStart": "錄影啟動失敗", + "fileSharingdescription": "分享錄影給會議參與者", "live": "直播", "loggedIn": "以 {{userName}} 登入", - "off": "錄製作業已經停止", - "on": "錄製作業中", - "pending": "準備錄影此會議…", + "off": "錄影已經停止", + "offBy": "{{name}} 停止了錄影", + "on": "錄影中", + "onBy": "{{name}} 啟動了錄影", + "pending": "準備錄影此會議...", "rec": "REC 錄影", - "serviceDescription": "", - "serviceName": "錄製作業服務", - "signIn": "jde bp ", + "serviceDescription": "您的錄影會被存在錄影伺服器中", + "serviceName": "錄影伺服", + "signIn": "登入", "signOut": "登出", "unavailable": "喔哦!{{serviceName}} 目前無法使用。我們正在解決此問題,請稍後再試。", - "unavailableTitle": "錄製作業無法使用" + "unavailableTitle": "錄影無法使用" }, "sectionList": { - "pullToRefresh": "下滑以重新整理" + "pullToRefresh": "拉動以重新整理" }, "settings": { "calendar": { - "about": "此 {{appName}} 行事曆整合是安全存取你的行事曆,所以可以讀取即將發生的事件。", + "about": "此 {{appName}} 行事曆整合是安全存取您的行事曆,所以可以讀取即將發生的事件。", "disconnect": "中斷連接", "microsoftSignIn": "使用 Microsoft 帳戶登入", "signedIn": "目前是以 {{email}} 來存取行事曆事件。點按下方取消連接鈕可以停止存取行事曆事件。", - "title": "日曆" + "title": "行事曆" }, "devices": "裝置", "followMe": "全部人跟隨仿照我", @@ -494,34 +532,40 @@ "selectCamera": "攝影裝置", "selectMic": "麥克風", "startAudioMuted": "全部人啟動時處於靜音", - "startVideoMuted": "全部人啟動時隱藏視訊畫面", - "title": "設置" + "startVideoMuted": "全部人啟動時處於隱藏", + "title": "設置", + "speakers": "揚聲器", + "microphones": "麥克風" }, "settingsView": { - "alertOk": "確認", + "advanced": "進階", + "alertOk": "確定", "alertTitle": "警告", "alertURLText": "所輸入的伺服器 URL 是無效的", - "buildInfoSection": "", + "buildInfoSection": "建立資訊", "conferenceSection": "會議", + "disableCallIntegration": "停用原生電話整合", + "disableP2P": "停用端對端模式", "displayName": "顯示名稱", "email": "電子郵件", "header": "設置", "profileSection": "簡介", "serverURL": "伺服器 URL", - "startWithAudioMuted": "啟動並音訊靜音", - "startWithVideoMuted": "啟動並視訊靜音", - "version": "" + "showAdvanced": "顯示進階設定", + "startWithAudioMuted": "啟動並靜音", + "startWithVideoMuted": "啟動並關閉影像", + "version": "版本" }, "share": { - "dialInfoText": "", - "mainText": "點按以下連結參加會議:{{roomUrl}}\n" + "dialInfoText": "\n\n=====\n\n正要撥入您的會議電話?\n\n{{defaultDialInNumber}} 點按此連結來查看此會議的電話撥入號碼\n{{dialInfoPageUrl}}", + "mainText": "按一下下方連結加入會議:\n{{roomUrl}}" }, "speaker": "發言者", "speakerStats": { - "hours": "{{count}}h", - "minutes": "{{count}}m", + "hours": "{{count}}時", + "minutes": "{{count}}分", "name": "名稱", - "seconds": "{{count}}s", + "seconds": "{{count}}秒", "speakerStats": "發言者數據", "speakerTime": "發言者時間" }, @@ -538,170 +582,207 @@ "accessibilityLabel": { "audioOnly": "切換僅有聲音", "audioRoute": "選擇聲音裝置", - "callQuality": "", + "callQuality": "管理影像品質", "cc": "切換字幕", - "chat": "切換聊天視窗", + "chat": "切換交談視窗", "document": "切換分享的文件", + "download": "下載我們的 APPs", "feedback": "留言回報", "fullScreen": "切換全螢幕", "hangup": "離開來電", + "help": "說明", "invite": "邀請人員", - "kick": "", + "kick": "踢出參與者", "localRecording": "切換本地端錄影控制", - "lockRoom": "", + "lockRoom": "切換會議密碼", "moreActions": "切換更多動作功能表", "moreActionsMenu": "更多動作功能表", "mute": "切換靜音", "pip": "切換子母畫面模式", + "privateMessage": "發送私人訊息", "profile": "編輯您的簡介", "raiseHand": "切換舉手", "recording": "切換錄影", - "remoteMute": "", - "Settings": "切換設置", + "remoteMute": "靜音參與者", + "Settings": "切換設定", "sharedvideo": "切換 Youtube 影片分享", "shareRoom": "邀請某人", "shareYourScreen": "切換螢幕分享", "shortcuts": "切換快捷鍵", - "show": "", + "show": "顯示在台上", "speakerStats": "切換發言人統計", "tileView": "切換平鋪檢視", "toggleCamera": "切換攝影機", - "videomute": "切換靜音視訊", - "videoblur": "" + "videomute": "切換無影像", + "videoblur": "切換影像模糊", + "toggleFilmstrip": "切換幻燈片", + "muteEveryone": "靜音所有人", + "moreOptions": "顯示更多選項" }, "addPeople": "新增人員到您的通話中", - "audioOnlyOff": "關閉僅用音訊模式", - "audioOnlyOn": "關閉僅用音訊模式", + "audioOnlyOff": "停用低頻寬模式", + "audioOnlyOn": "啟用低頻寬模式", "audioRoute": "選擇聲音裝置", - "authenticate": "驗證", - "callQuality": "管理通話品質", - "chat": "開啟/關閉 聊天", - "closeChat": "", + "authenticate": "認證", + "callQuality": "管理影像品質", + "chat": "開啟/關閉 交談", + "closeChat": "關閉交談", "documentClose": "關閉分享的文件檔案", "documentOpen": "開啟分享的文件檔案", + "download": "下載我們的 APPs", "enterFullScreen": "觀看全螢幕", - "enterTileView": "", + "enterTileView": "進入平鋪檢視", "exitFullScreen": "跳出全螢幕", - "exitTileView": "", + "exitTileView": "跳出平鋪檢視", "feedback": "留言回報", "hangup": "留言", + "help": "說明", "invite": "邀請人員", "login": "登入", "logout": "登出", - "lowerYourHand": "", + "lowerYourHand": "放下舉手", "moreActions": "更多動作", "mute": "靜音 / 解除靜音", - "openChat": "", - "pip": "進入子母畫模式", + "noAudioSignalTitle": "您的麥克風沒有輸入訊號!", + "noAudioSignalDesc": "如果您沒有特別從系統設定或硬體靜音,請考慮更換裝置。", + "noAudioSignalDescSuggestion": "如果您沒有特別從系統設定或硬體靜音,請考慮切換至建議裝置。", + "openChat": "開啟交談", + "pip": "進入子母畫面模式", + "privateMessage": "發送私人訊息", "profile": "編輯您的簡介", "raiseHand": "舉手/取消 請求發言", - "raiseYourHand": "", + "raiseYourHand": "舉手發言", "Settings": "設置", - "sharedvideo": "分享 YouTube 視訊", + "sharedvideo": "分享 YouTube 影片", "shareRoom": "邀請某人", "shortcuts": "查看快捷鍵", "speakerStats": "發言者數據", - "startScreenSharing": "", - "startSubtitles": "", - "stopScreenSharing": "", - "stopSubtitles": "", - "stopSharedVideo": "停止 YouTube 視訊", + "startScreenSharing": "啟動螢幕分享", + "startSubtitles": "啟動字幕", + "stopScreenSharing": "停止螢幕分享", + "stopSubtitles": "停止字幕", + "stopSharedVideo": "停止 YouTube 影片", "talkWhileMutedPopup": "您要發言嗎? 目前您處於靜音。", "tileViewToggle": "切換平鋪檢視", "toggleCamera": "切換攝影機", "videomute": "啟動/停止 攝影裝置", - "startvideoblur": "", - "stopvideoblur": "" + "startvideoblur": "模糊我的背景畫面", + "stopvideoblur": "停用背景模糊畫面", + "noisyAudioInputDesc": "噪音聽起來是從麥克風傳來的,請考慮靜音或更換裝置。", + "noisyAudioInputTitle": "您的麥克風疑似有雜音!", + "noAudioSignalDialInLinkDesc": "撥入號碼", + "noAudioSignalDialInDesc": "您亦可使用下述方式撥入:", + "muteEveryone": "靜音所有人", + "moreOptions": "更多選項" }, "transcribing": { - "ccButtonTooltip": "", - "error": "錄影作業失敗。請重試。", - "expandedLabel": "轉錄目前開啟", + "ccButtonTooltip": "啟動/停止 字幕", + "error": "轉錄失敗。請重試。", + "expandedLabel": "目前轉錄開啟", "failedToStart": "轉錄啟動失敗", - "labelToolTip": "此會議正被轉錄", + "labelToolTip": "此會議正在轉錄", "off": "轉錄已停止", - "pending": "正在準備轉錄會議…", + "pending": "準備轉錄會議...", "start": "啟動顯示字幕", "stop": "停止顯示字幕", "tr": "TR 轉錄" }, "userMedia": { - "androidGrantPermissions": "當瀏覽器要求權限允許時,請選擇 允許", - "chromeGrantPermissions": "當瀏覽器要求權限允許時,請選擇 允許", - "edgeGrantPermissions": "當瀏覽器要求權限允許時,請選擇 是的", + "androidGrantPermissions": "當瀏覽器要求權限時,請選擇 允許。", + "chromeGrantPermissions": "當瀏覽器要求權限時,請選擇 允許。", + "edgeGrantPermissions": "當瀏覽器要求權限時,請選擇 是的。", "electronGrantPermissions": "請允許權限使用您的攝影裝置和麥克風", - "firefoxGrantPermissions": "當瀏覽器要求權限允許時,請選擇分享設備 ", - "iexplorerGrantPermissions": "當瀏覽器要求權限允許時,請選擇 OK", + "firefoxGrantPermissions": "當瀏覽器請求權限時,請選擇分享選取裝置。", + "iexplorerGrantPermissions": "當瀏覽器要求權限時,請選擇 確定。", "nwjsGrantPermissions": "請允許權限使用您的攝影裝置和麥克風", - "operaGrantPermissions": "當瀏覽器要求權限允許時,請選擇 允許", - "react-nativeGrantPermissions": "當瀏覽器要求權限允許時,請選擇 允許", - "safariGrantPermissions": "當瀏覽器要求權限允許時,請選擇 OK" + "operaGrantPermissions": "當瀏覽器要求權限時,請選擇 允許。", + "react-nativeGrantPermissions": "當瀏覽器要求權限時,請選擇 允許。", + "safariGrantPermissions": "當瀏覽器要求權限時,請選擇 確定。" }, "videoSIPGW": { "busy": "我們正在清理釋放資源。請過幾分鐘後再試。", "busyTitle": "會議室服務正處於忙碌中", - "errorAlreadyInvited": "{{displayName}} 已受邀請", - "errorInvite": "會議尚未開始,請稍後再來。", + "errorAlreadyInvited": "{{displayName}} 已經邀請", + "errorInvite": "會議尚未開始,請稍後再試。", "errorInviteFailed": "我們正在解決問題。請稍後再試。", "errorInviteFailedTitle": "邀請 {{displayName}} 失敗", "errorInviteTitle": "錯誤邀請會議室", - "pending": "{{displayName}} 已經邀請" + "pending": "{{displayName}} 已受邀請" }, "videoStatus": { "audioOnly": "AUD 聲音", - "audioOnlyExpanded": "你處於僅用音訊模式。這個模式節省頻寬,但無法看見他人影像。", - "callQuality": "", - "hd": "HD 高清", - "highDefinition": "高清品質 HD", - "labelTooiltipNoVideo": "沒有視訊", - "labelTooltipAudioOnly": "僅有音訊模式已經啟用", - "ld": "LD 低清", - "lowDefinition": "低清品質 LD", + "audioOnlyExpanded": "您目前處於低頻寬模式。在此模式下您僅會收到語音及螢幕分享。", + "callQuality": "影像品質", + "hd": "HD", + "hdTooltip": "觀看高解析度影像 HD", + "highDefinition": "高解析度 HD", + "labelTooiltipNoVideo": "無影像", + "labelTooltipAudioOnly": "低頻寬模式已啟用", + "ld": "LD", + "ldTooltip": "觀看低解析度影像 LD", + "lowDefinition": "低解析度 LD", "onlyAudioAvailable": "僅有音訊可以使用", "onlyAudioSupported": "在此瀏覽器我們僅支援音訊功能。", "p2pEnabled": "點對點功能已經啟用", - "p2pVideoQualityDescription": "", - "recHighDefinitionOnly": "將會偏好使用高清模式 HD。", - "sd": "SD 標清", - "standardDefinition": "標清品質 SD" + "p2pVideoQualityDescription": "在點對點模式下收到的影像品質只能在高檔及僅有語音間切換。其他的設定必須在點對點退出後才會生效。", + "recHighDefinitionOnly": "將會偏好使用高解析度 HD。", + "sd": "SD", + "sdTooltip": "觀看標準解析度影像 SD", + "standardDefinition": "標準解析度 SD" }, "videothumbnail": { "domute": "靜音", "flip": "翻轉", "kick": "踢出", "moderator": "主持人", - "mute": "", + "mute": "參與者處於靜音", "muted": "處於靜音", "remoteControl": "遠端控制", - "show": "", - "videomute": "" + "show": "顯示在台上", + "videomute": "參與者已經停止攝影裝置", + "domuteOthers": "靜音其他所有人" }, "welcomepage": { "accessibilityLabel": { - "join": "輕觸即可參加", + "join": "點按即可加入", "roomname": "輸入會議室名稱" }, - "appDescription": "快來使用吧,團隊全部成員使用視訊通話,可以邀請任何您所認識的人。 {{app}} 是一套完全加密、100% 開放源碼的視訊會議解決方案。無需註冊帳號,無時無刻不分日夜均可免費使用。", + "appDescription": "快來使用吧,團隊全部成員都來使用視訊通話。事實上,任何認識的人都可以邀請。 {{app}} 是一套完全加密、100% 開放源碼的視訊會議解決方案。無需註冊帳號,無時無刻不分日夜均可免費使用。", "audioVideoSwitch": { "audio": "語音", - "video": "視訊" + "video": "影像" }, - "calendar": "日曆", - "connectCalendarButton": "連接你的行事曆", - "connectCalendarText": "", + "calendar": "行事曆", + "connectCalendarButton": "連接自己的行事曆", + "connectCalendarText": "連接自己的行事曆來查看在 {{app}} 中的會議。此外,增加 {{provider}} 的會議至自己的行事曆,只要點按一下即可啟動。", "enterRoomTitle": "啟動新的會議", + "roomNameAllowedChars": "會議的名稱不可包含這些字元: ?, &, :, ', \", %, #.", "go": "開始", - "join": "加入", - "info": "", + "goSmall": "開始", + "join": "建立 / 加入", + "info": "資訊", "privacy": "隱私", "recentList": "最近使用", "recentListDelete": "刪除", - "recentListEmpty": "目前最近使用是空白的。與你的團隊成員聊天,即會在此處找到最近的會議。", - "reducedUIText": "", + "recentListEmpty": "目前最近使用是空白的。與您的團隊成員交談,即會在此處找到最近使用會議。", + "reducedUIText": "歡迎使用 {{app}}!", "roomname": "輸入會議室名稱", - "roomnameHint": "請輸入您想加入的會議室 URL 網址或名稱。您可以用個名稱來建立會議室,只要其他人輸入相同的名稱就能加入會議室喔。", + "roomnameHint": "請輸入您想加入的會議室名稱或 URL 網址。您可以用個名稱來建立會議室,只要其他人輸入相同的名稱就能加入會議室喔。", "sendFeedback": "發送回報", "terms": "條款", - "title": "安全、全功能、完全免費的視訊會議" + "title": "安全、全功能、完全免費的視訊會議", + "getHelp": "取得協助" + }, + "chromeExtensionBanner": { + "dontShowAgain": "不再顯示此訊息", + "buttonText": "安裝 Chrome 擴充套件", + "installExtensionText": "安裝適用於 Google 行事曆及 Office 365 整合的擴充套件" + }, + "helpView": { + "header": "說明中心" + }, + "lonelyMeetingExperience": { + "youAreAlone": "您是會議中的唯一一個人", + "button": "邀請其他人" } -} \ No newline at end of file +} diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main.json b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main.json index 84f11c5bc8..3caa544ea2 100644 --- a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main.json +++ b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/lang/main.json @@ -47,8 +47,10 @@ }, "chat": { "error": "Error: your message was not sent. Reason: {{error}}", + "fieldPlaceHolder": "Type your message here", "messagebox": "Type a message", "messageTo": "Private message to {{recipient}}", + "noMessagesMessage": "There are no messages in the meeting yet. Start a conversation here!", "nickname": { "popover": "Choose a nickname", "title": "Enter a nickname to use chat" @@ -57,6 +59,11 @@ "title": "Chat", "you": "you" }, + "chromeExtensionBanner": { + "installExtensionText": "Install the extension for Google Calendar and Office 365 integration", + "buttonText": "Install Chrome Extension", + "dontShowAgain": "Don’t show me this again" + }, "connectingOverlay": { "joiningRoom": "Connecting you to your meeting..." }, @@ -73,9 +80,7 @@ "FETCH_SESSION_ID": "Obtaining session-id...", "GET_SESSION_ID_ERROR": "Get session-id error: {{code}}", "GOT_SESSION_ID": "Obtaining session-id... Done", - "LOW_BANDWIDTH": "Video for {{displayName}} has been turned off to save bandwidth", - "RECONNECTING": "A network problem occurred. Reconnecting...", - "USER_CONNECTION_INTERRUPTED": "{{displayName}} is having connectivity issues..." + "LOW_BANDWIDTH": "Video for {{displayName}} has been turned off to save bandwidth" }, "connectionindicator": { "address": "Address:", @@ -204,12 +209,18 @@ "micNotSendingDataTitle": "Your mic is muted by your system settings", "micPermissionDeniedError": "You have not granted permission to use your microphone. You can still join the conference but others won't hear you. Use the camera button in the address bar to fix this.", "micUnknownError": "Cannot use microphone for an unknown reason.", + "muteEveryoneElseDialog": "Once muted, you won't be able to unmute them, but they can unmute themselves at any time.", + "muteEveryoneElseTitle": "Mute everyone except {{whom}}?", + "muteEveryoneDialog": "Are you sure you want to mute everyone? You won't be able to unmute them, but they can unmute themselves at any time.", + "muteEveryoneTitle": "Mute everyone?", + "muteEveryoneSelf": "yourself", + "muteEveryoneStartMuted": "Everyone starts muted from now on", "muteParticipantBody": "You won't be able to unmute them, but they can unmute themselves at any time.", "muteParticipantButton": "Mute", "muteParticipantDialog": "Are you sure you want to mute this participant? You won't be able to unmute them, but they can unmute themselves at any time.", "muteParticipantTitle": "Mute this participant?", "Ok": "Ok", - "passwordLabel": "$t(lockRoomPasswordUppercase)", + "passwordLabel": "The meeting has been locked by a participant. Please enter the $t(lockRoomPassword) to join.", "passwordNotSupported": "Setting a meeting $t(lockRoomPassword) is not supported.", "passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) not supported", "passwordRequired": "$t(lockRoomPasswordUppercase) required", @@ -233,6 +244,7 @@ "reservationError": "Reservation system error", "reservationErrorMsg": "Error code: {{code}}, message: {{msg}}", "retry": "Retry", + "screenSharingAudio": "Share audio", "screenSharingFailedToInstall": "Oops! Your screen sharing extension failed to install.", "screenSharingFailedToInstallTitle": "Screen sharing extension failed to install", "screenSharingFirefoxPermissionDeniedError": "Something went wrong while we were trying to share your screen. Please make sure that you have given us permission to do so. ", @@ -275,7 +287,7 @@ "dialOut": { "statusMessage": "is now {{status}}" }, - "documentSharing" : { + "documentSharing": { "title": "Shared Document" }, "feedback": { @@ -383,7 +395,9 @@ "signOut": "Sign out", "start": "Start a live stream", "streamIdHelp": "What's this?", - "unavailableTitle": "Live Streaming unavailable" + "unavailableTitle": "Live Streaming unavailable", + "youtubeTerms": "YouTube terms of services", + "googlePrivacyPolicy": "Google Privacy Policy" }, "localRecording": { "clientState": { @@ -446,7 +460,11 @@ "unmute": "Unmute", "newDeviceCameraTitle": "New camera detected", "newDeviceAudioTitle": "New audio device detected", - "newDeviceAction": "Use" + "newDeviceAction": "Use", + "OldElectronAPPTitle": "Security vulnerability!", + "oldElectronClientDescription1": "You appear to be using an old verion of the Jitsi Meet client which has known security vulnerabilities. Please make sure you update to our ", + "oldElectronClientDescription2": "latest build", + "oldElectronClientDescription3": " now!" }, "passwordSetRemotely": "set by another participant", "passwordDigitsOnly": "Up to {{number}} digits", @@ -514,6 +532,7 @@ "followMe": "Everyone follows me", "language": "Language", "loggedIn": "Logged in as {{name}}", + "microphones": "Microphones", "moderator": "Moderator", "more": "More", "name": "Name", @@ -521,6 +540,7 @@ "selectAudioOutput": "Audio output", "selectCamera": "Camera", "selectMic": "Microphone", + "speakers": "Speakers", "startAudioMuted": "Everyone starts muted", "startVideoMuted": "Everyone starts hidden", "title": "Settings" @@ -585,7 +605,9 @@ "lockRoom": "Toggle meeting password", "moreActions": "Toggle more actions menu", "moreActionsMenu": "More actions menu", + "moreOptions": "Show more options", "mute": "Toggle mute audio", + "muteEveryone": "Mute everyone", "pip": "Toggle Picture-in-Picture mode", "privateMessage": "Send private message", "profile": "Edit your profile", @@ -601,6 +623,7 @@ "speakerStats": "Toggle speaker statistics", "tileView": "Toggle tile view", "toggleCamera": "Toggle camera", + "toggleFilmstrip": "Toggle filmstrip", "videomute": "Toggle mute video", "videoblur": "Toggle video blur" }, @@ -627,7 +650,16 @@ "logout": "Logout", "lowerYourHand": "Lower your hand", "moreActions": "More actions", + "moreOptions": "More options", "mute": "Mute / Unmute", + "muteEveryone": "Mute everyone", + "noAudioSignalTitle": "There is no input coming from your mic!", + "noAudioSignalDesc": "If you did not purposely mute it from system settings or hardware, consider switching the device.", + "noAudioSignalDescSuggestion": "If you did not purposely mute it from system settings or hardware, consider switching to the suggested device.", + "noAudioSignalDialInDesc": "You can also dial-in using:", + "noAudioSignalDialInLinkDesc": "Dial-in numbers", + "noisyAudioInputTitle": "Your microphone appears to be noisy!", + "noisyAudioInputDesc": "It sounds like your microphone is making noise, please consider muting or changing the device.", "openChat": "Open chat", "pip": "Enter Picture-in-Picture mode", "privateMessage": "Send private message", @@ -708,12 +740,13 @@ }, "videothumbnail": { "domute": "Mute", + "domuteOthers": "Mute everyone else", "flip": "Flip", "kick": "Kick out", "moderator": "Moderator", "mute": "Participant is muted", "muted": "Muted", - "remoteControl": "Remote control", + "remoteControl": "Start / Stop remote control", "show": "Show on stage", "videomute": "Participant has stopped the camera" }, @@ -731,10 +764,11 @@ "connectCalendarButton": "Connect your calendar", "connectCalendarText": "Connect your calendar to view all your meetings in {{app}}. Plus, add {{provider}} meetings to your calendar and start them with one click.", "enterRoomTitle": "Start a new meeting", + "getHelp": "Get help", "roomNameAllowedChars": "Meeting name should not contain any of these characters: ?, &, :, ', \", %, #.", "go": "GO", "goSmall": "GO", - "join": "JOIN", + "join": "CREATE / JOIN", "info": "Info", "privacy": "Privacy", "recentList": "Recent", @@ -746,5 +780,12 @@ "sendFeedback": "Send feedback", "terms": "Terms", "title": "Secure, fully featured, and completely free video conferencing" + }, + "lonelyMeetingExperience": { + "button": "Invite others", + "youAreAlone": "You are the only one in the meeting" + }, + "helpView": { + "header": "Help centre" } } diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/node_modules/react-native/package.json b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/node_modules/react-native/package.json index 0668a023be..eed0e17d41 100644 --- a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/node_modules/react-native/package.json +++ b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/assets/node_modules/react-native/package.json @@ -1,25 +1,24 @@ { "_args": [ [ - "react-native@0.61.3", - "/usr/local/var/jenkins/workspace/jitsi-meet-ios-sdk/jitsi-meet" + "github:jitsi/react-native#efd2aff5661d75a230e36406b698cfe0ee545be2", + "/Users/toxa/Downloads/jitsi-meet-master" ] ], - "_from": "react-native@0.61.3", - "_id": "react-native@0.61.3", + "_from": "github:jitsi/react-native#efd2aff5661d75a230e36406b698cfe0ee545be2", + "_id": "react-native@github:jitsi/react-native#efd2aff5661d75a230e36406b698cfe0ee545be2", "_inBundle": false, - "_integrity": "sha512-7p89m62+Wsc93tYEy010LZMZtQMOQjUC8nOiVF+XPBn4Fa3WUt7IlQjKs9tO9rcByZ4ilzeMp+W2kr1/U2lPLw==", + "_integrity": "", "_location": "/react-native", "_phantomChildren": { "@hapi/joi": "15.1.1", - "@react-native-community/cli-platform-android": "3.0.0-alpha.7", - "@react-native-community/cli-platform-ios": "3.0.0-alpha.7", - "@react-native-community/cli-tools": "3.0.0-alpha.7", - "@react-native-community/cli-types": "3.0.0-alpha.7", - "@types/mkdirp": "0.5.2", - "@types/node-notifier": "5.4.0", - "@types/semver": "6.2.0", - "@types/ws": "6.0.3", + "@react-native-community/cli-debugger-ui": "3.0.0", + "@react-native-community/cli-tools": "3.0.0", + "@react-native-community/cli-types": "3.0.0", + "@types/color-name": "1.1.1", + "@types/istanbul-lib-coverage": "2.0.1", + "@types/istanbul-reports": "1.1.1", + "@types/yargs-parser": "15.0.0", "color-convert": "1.9.1", "command-exists": "1.2.8", "commander": "2.20.0", @@ -28,7 +27,8 @@ "core-js": "2.5.3", "cosmiconfig": "5.2.0", "deepmerge": "3.3.0", - "envinfo": "7.4.0", + "didyoumean": "1.2.1", + "envinfo": "7.5.0", "errorhandler": "1.5.1", "escape-string-regexp": "1.0.5", "execa": "1.0.0", @@ -41,10 +41,10 @@ "js-tokens": "3.0.2", "lodash": "4.17.13", "loose-envify": "1.3.1", - "metro": "0.56.3", - "metro-config": "0.56.3", - "metro-core": "0.56.3", - "metro-react-native-babel-transformer": "0.56.3", + "metro": "0.56.4", + "metro-config": "0.56.4", + "metro-core": "0.56.4", + "metro-react-native-babel-transformer": "0.56.4", "minimist": "1.2.0", "mkdirp": "0.5.1", "morgan": "1.9.1", @@ -57,37 +57,35 @@ "serve-static": "1.13.2", "setimmediate": "1.0.5", "shell-quote": "1.6.1", - "sudo-prompt": "9.0.0", + "sudo-prompt": "9.1.1", "wcwidth": "1.0.1", "ws": "1.1.5" }, "_requested": { - "type": "version", - "registry": true, - "raw": "react-native@0.61.3", - "name": "react-native", - "escapedName": "react-native", - "rawSpec": "0.61.3", - "saveSpec": null, - "fetchSpec": "0.61.3" + "type": "git", + "raw": "github:jitsi/react-native#efd2aff5661d75a230e36406b698cfe0ee545be2", + "rawSpec": "github:jitsi/react-native#efd2aff5661d75a230e36406b698cfe0ee545be2", + "saveSpec": "github:jitsi/react-native#efd2aff5661d75a230e36406b698cfe0ee545be2", + "fetchSpec": null, + "gitCommittish": "efd2aff5661d75a230e36406b698cfe0ee545be2" }, "_requiredBy": [ "/" ], - "_resolved": "https://registry.npmjs.org/react-native/-/react-native-0.61.3.tgz", - "_spec": "0.61.3", - "_where": "/usr/local/var/jenkins/workspace/jitsi-meet-ios-sdk/jitsi-meet", + "_resolved": "github:jitsi/react-native#efd2aff5661d75a230e36406b698cfe0ee545be2", + "_spec": "github:jitsi/react-native#efd2aff5661d75a230e36406b698cfe0ee545be2", + "_where": "/Users/toxa/Downloads/jitsi-meet-master", "bin": { - "react-native": "./cli.js" + "react-native": "cli.js" }, "bugs": { "url": "https://github.com/facebook/react-native/issues" }, "dependencies": { "@babel/runtime": "^7.0.0", - "@react-native-community/cli": "^3.0.0-alpha.1", - "@react-native-community/cli-platform-android": "^3.0.0-alpha.1", - "@react-native-community/cli-platform-ios": "^3.0.0-alpha.1", + "@react-native-community/cli": "^3.0.0", + "@react-native-community/cli-platform-android": "^3.0.0", + "@react-native-community/cli-platform-ios": "^3.0.0", "abort-controller": "^3.0.0", "art": "^0.10.0", "base64-js": "^1.1.2", @@ -253,5 +251,5 @@ "test-ios": "./scripts/objc-test.sh test", "test-ios-e2e": "detox test -c ios.sim.release RNTester/e2e" }, - "version": "0.61.3" + "version": "0.61.5-jitsi.1" } diff --git a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/main.jsbundle b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/main.jsbundle index 653426edb7..16b46fd17b 100644 --- a/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/main.jsbundle +++ b/Pods/JitsiMeetSDK/Frameworks/JitsiMeet.framework/main.jsbundle @@ -1,10 +1,10 @@ var __BUNDLE_START_TIME__=this.nativePerformanceNow?nativePerformanceNow():Date.now(),__DEV__=false,process=this.process||{};process.env=process.env||{};process.env.NODE_ENV=process.env.NODE_ENV||"production"; !(function(r){"use strict";r.__r=o,r.__d=function(r,i,n){if(null!=e[i])return;var o={dependencyMap:n,factory:r,hasError:!1,importedAll:t,importedDefault:t,isInitialized:!1,publicModule:{exports:{}}};e[i]=o},r.__c=n,r.__registerSegment=function(r,e){s[r]=e};var e=n(),t={},i={}.hasOwnProperty;function n(){return e=Object.create(null)}function o(r){var t=r,i=e[t];return i&&i.isInitialized?i.publicModule.exports:d(t,i)}function l(r){var i=r;if(e[i]&&e[i].importedDefault!==t)return e[i].importedDefault;var n=o(i),l=n&&n.__esModule?n.default:n;return e[i].importedDefault=l}function u(r){var n=r;if(e[n]&&e[n].importedAll!==t)return e[n].importedAll;var l,u=o(n);if(u&&u.__esModule)l=u;else{if(l={},u)for(var a in u)i.call(u,a)&&(l[a]=u[a]);l.default=u}return e[n].importedAll=l}o.importDefault=l,o.importAll=u;var a=!1;function d(e,t){if(!a&&r.ErrorUtils){var i;a=!0;try{i=v(e,t)}catch(e){r.ErrorUtils.reportFatalError(e)}return a=!1,i}return v(e,t)}var c=16,f=65535;function p(r){return{segmentId:r>>>c,localId:r&f}}o.unpackModuleId=p,o.packModuleId=function(r){return(r.segmentId<0){var n=p(t),a=n.segmentId,d=n.localId,c=s[a];null!=c&&(c(d),i=e[t])}var f=r.nativeRequire;if(!i&&f){var v=p(t),h=v.segmentId;f(v.localId,h),i=e[t]}if(!i)throw Error('Requiring unknown module "'+t+'".');if(i.hasError)throw m(t,i.error);i.isInitialized=!0;var I=i,g=I.factory,y=I.dependencyMap;try{var _=i.publicModule;return _.id=t,g(r,o,l,u,_,_.exports,y),i.factory=void 0,i.dependencyMap=void 0,_.exports}catch(r){throw i.hasError=!0,i.error=r,i.isInitialized=!1,i.publicModule.exports=void 0,r}}function m(r,e){return Error('Requiring module "'+r+'", which threw an exception: '+e)}})('undefined'!=typeof globalThis?globalThis:'undefined'!=typeof global?global:'undefined'!=typeof window?window:this); -!(function(n){var e=(function(){function n(n,e){return n}function e(n){var e={};return n.forEach(function(n,r){e[n]=!0}),e}function r(n,r,l){if(n.formatValueCalls++,n.formatValueCalls>200)return"[TOO BIG formatValueCalls "+n.formatValueCalls+" exceeded limit of 200]";var f=t(n,r);if(f)return f;var c=Object.keys(r),g=e(c);if(d(r)&&(c.indexOf('message')>=0||c.indexOf('description')>=0))return o(r);if(0===c.length){if(h(r)){var p=r.name?': '+r.name:'';return n.stylize('[Function'+p+']','special')}if(s(r))return n.stylize(RegExp.prototype.toString.call(r),'regexp');if(y(r))return n.stylize(Date.prototype.toString.call(r),'date');if(d(r))return o(r)}var v,b,m='',j=!1,z=['{','}'];(v=r,Array.isArray(v)&&(j=!0,z=['[',']']),h(r))&&(m=' [Function'+(r.name?': '+r.name:'')+']');return s(r)&&(m=' '+RegExp.prototype.toString.call(r)),y(r)&&(m=' '+Date.prototype.toUTCString.call(r)),d(r)&&(m=' '+o(r)),0!==c.length||j&&0!=r.length?l<0?s(r)?n.stylize(RegExp.prototype.toString.call(r),'regexp'):n.stylize('[Object]','special'):(n.seen.push(r),b=j?i(n,r,l,g,c):c.map(function(e){return a(n,r,l,g,e,j)}),n.seen.pop(),u(b,m,z)):z[0]+m+z[1]}function t(n,e){if(g(e))return n.stylize('undefined','undefined');if('string'==typeof e){var r="'"+JSON.stringify(e).replace(/^"|"$/g,'').replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return n.stylize(r,'string')}return c(e)?n.stylize(''+e,'number'):l(e)?n.stylize(''+e,'boolean'):f(e)?n.stylize('null','null'):void 0}function o(n){return'['+Error.prototype.toString.call(n)+']'}function i(n,e,r,t,o){for(var i=[],u=0,l=e.length;u-1&&(l=a?l.split('\n').map(function(n){return' '+n}).join('\n').substr(2):'\n'+l.split('\n').map(function(n){return' '+n}).join('\n')):l=n.stylize('[Circular]','special')),g(u)){if(a&&i.match(/^\d+$/))return l;(u=JSON.stringify(''+i)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(u=u.substr(1,u.length-2),u=n.stylize(u,'name')):(u=u.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),u=n.stylize(u,'string'))}return u+': '+l}function u(n,e,r){return n.reduce(function(n,e){return 0,e.indexOf('\n')>=0&&0,n+e.replace(/\u001b\[\d\d?m/g,'').length+1},0)>60?r[0]+(''===e?'':e+'\n ')+' '+n.join(',\n ')+' '+r[1]:r[0]+e+' '+n.join(', ')+' '+r[1]}function l(n){return'boolean'==typeof n}function f(n){return null===n}function c(n){return'number'==typeof n}function g(n){return void 0===n}function s(n){return p(n)&&'[object RegExp]'===v(n)}function p(n){return'object'==typeof n&&null!==n}function y(n){return p(n)&&'[object Date]'===v(n)}function d(n){return p(n)&&('[object Error]'===v(n)||n instanceof Error)}function h(n){return'function'==typeof n}function v(n){return Object.prototype.toString.call(n)}function b(n,e){return Object.prototype.hasOwnProperty.call(n,e)}return function(e,t){return r({seen:[],formatValueCalls:0,stylize:n},e,t.depth)}})(),r='(index)',t={trace:0,info:1,warn:2,error:3},o=[];o[t.trace]='debug',o[t.info]='log',o[t.warn]='warning',o[t.error]='error';var i=1;function a(r){return function(){var a;a=1===arguments.length&&'string'==typeof arguments[0]?arguments[0]:Array.prototype.map.call(arguments,function(n){return e(n,{depth:10})}).join(', ');var u=r;'Warning: '===a.slice(0,9)&&u>=t.error&&(u=t.warn),n.__inspectorLog&&n.__inspectorLog(o[u],a,[].slice.call(arguments),i),g.length&&(a=s('',a)),n.nativeLoggingHook(a,u)}}function u(n,e){return Array.apply(null,Array(e)).map(function(){return n})}var l="\u2502",f="\u2510",c="\u2518",g=[];function s(n,e){return g.join('')+n+' '+(e||'')}if(n.nativeLoggingHook){n.console;n.console={error:a(t.error),info:a(t.info),log:a(t.info),warn:a(t.warn),trace:a(t.trace),debug:a(t.trace),table:function(e){if(!Array.isArray(e)){var o=e;for(var i in e=[],o)if(o.hasOwnProperty(i)){var a=o[i];a[r]=i,e.push(a)}}if(0!==e.length){var l=Object.keys(e[0]).sort(),f=[],c=[];l.forEach(function(n,r){c[r]=n.length;for(var t=0;t200)return"[TOO BIG formatValueCalls "+n.formatValueCalls+" exceeded limit of 200]";var f=t(n,r);if(f)return f;var c=Object.keys(r),s=e(c);if(d(r)&&(c.indexOf('message')>=0||c.indexOf('description')>=0))return o(r);if(0===c.length){if(v(r)){var p=r.name?': '+r.name:'';return n.stylize('[Function'+p+']','special')}if(g(r))return n.stylize(RegExp.prototype.toString.call(r),'regexp');if(y(r))return n.stylize(Date.prototype.toString.call(r),'date');if(d(r))return o(r)}var h,b,m='',j=!1,O=['{','}'];(h=r,Array.isArray(h)&&(j=!0,O=['[',']']),v(r))&&(m=' [Function'+(r.name?': '+r.name:'')+']');return g(r)&&(m=' '+RegExp.prototype.toString.call(r)),y(r)&&(m=' '+Date.prototype.toUTCString.call(r)),d(r)&&(m=' '+o(r)),0!==c.length||j&&0!=r.length?u<0?g(r)?n.stylize(RegExp.prototype.toString.call(r),'regexp'):n.stylize('[Object]','special'):(n.seen.push(r),b=j?i(n,r,u,s,c):c.map(function(e){return a(n,r,u,s,e,j)}),n.seen.pop(),l(b,m,O)):O[0]+m+O[1]}function t(n,e){if(s(e))return n.stylize('undefined','undefined');if('string'==typeof e){var r="'"+JSON.stringify(e).replace(/^"|"$/g,'').replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return n.stylize(r,'string')}return c(e)?n.stylize(''+e,'number'):u(e)?n.stylize(''+e,'boolean'):f(e)?n.stylize('null','null'):void 0}function o(n){return'['+Error.prototype.toString.call(n)+']'}function i(n,e,r,t,o){for(var i=[],l=0,u=e.length;l-1&&(u=a?u.split('\n').map(function(n){return' '+n}).join('\n').substr(2):'\n'+u.split('\n').map(function(n){return' '+n}).join('\n')):u=n.stylize('[Circular]','special')),s(l)){if(a&&i.match(/^\d+$/))return u;(l=JSON.stringify(''+i)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(l=l.substr(1,l.length-2),l=n.stylize(l,'name')):(l=l.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),l=n.stylize(l,'string'))}return l+': '+u}function l(n,e,r){return n.reduce(function(n,e){return 0,e.indexOf('\n')>=0&&0,n+e.replace(/\u001b\[\d\d?m/g,'').length+1},0)>60?r[0]+(''===e?'':e+'\n ')+' '+n.join(',\n ')+' '+r[1]:r[0]+e+' '+n.join(', ')+' '+r[1]}function u(n){return'boolean'==typeof n}function f(n){return null===n}function c(n){return'number'==typeof n}function s(n){return void 0===n}function g(n){return p(n)&&'[object RegExp]'===h(n)}function p(n){return'object'==typeof n&&null!==n}function y(n){return p(n)&&'[object Date]'===h(n)}function d(n){return p(n)&&('[object Error]'===h(n)||n instanceof Error)}function v(n){return'function'==typeof n}function h(n){return Object.prototype.toString.call(n)}function b(n,e){return Object.prototype.hasOwnProperty.call(n,e)}return function(e,t){return r({seen:[],formatValueCalls:0,stylize:n},e,t.depth)}})(),r='(index)',t={trace:0,info:1,warn:2,error:3},o=[];o[t.trace]='debug',o[t.info]='log',o[t.warn]='warning',o[t.error]='error';var i=1;function a(r){return function(){var a;a=1===arguments.length&&'string'==typeof arguments[0]?arguments[0]:Array.prototype.map.call(arguments,function(n){return e(n,{depth:10})}).join(', ');var l=r;'Warning: '===a.slice(0,9)&&l>=t.error&&(l=t.warn),n.__inspectorLog&&n.__inspectorLog(o[l],a,[].slice.call(arguments),i),s.length&&(a=g('',a)),n.nativeLoggingHook(a,l)}}function l(n,e){return Array.apply(null,Array(e)).map(function(){return n})}var u="\u2502",f="\u2510",c="\u2518",s=[];function g(n,e){return s.join('')+n+' '+(e||'')}if(n.nativeLoggingHook){n.console;n.console={error:a(t.error),info:a(t.info),log:a(t.info),warn:a(t.warn),trace:a(t.trace),debug:a(t.trace),table:function(e){if(!Array.isArray(e)){var o=e;for(var i in e=[],o)if(o.hasOwnProperty(i)){var a=o[i];a[r]=i,e.push(a)}}if(0!==e.length){var u=Object.keys(e[0]).sort(),f=[],c=[];u.forEach(function(n,r){c[r]=n.length;for(var t=0;t';return function(){for(var r,u=arguments.length,o=new Array(u),a=0;a|\/).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,t=/\((\S*)(?::(\d+))(?::(\d+))\)/;function o(n){var o=u.exec(n);if(!o)return null;var c=o[2]&&0===o[2].indexOf('native'),s=o[2]&&0===o[2].indexOf('eval'),f=t.exec(o[2]);return s&&null!=f&&(o[2]=f[1],o[3]=f[2],o[4]=f[3]),{file:c?null:o[2],methodName:o[1]||l,arguments:c?[o[2]]:[],lineNumber:o[3]?+o[3]:null,column:o[4]?+o[4]:null}}var c=/^\s*at (?:((?:\[object object\])?.+) )?\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\d+)(?::(\d+))?\)?\s*$/i;function s(n){var u=c.exec(n);return u?{file:u[2],methodName:u[1]||l,arguments:[],lineNumber:+u[3],column:u[4]?+u[4]:null}:null}var f=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|\[native).*?|[^@]*bundle)(?::(\d+))?(?::(\d+))?\s*$/i,v=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i;function b(n){var u=f.exec(n);if(!u)return null;var t=u[3]&&u[3].indexOf(' > eval')>-1,o=v.exec(u[3]);return t&&null!=o&&(u[3]=o[1],u[4]=o[2],u[5]=null),{file:u[3],methodName:u[1]||l,arguments:u[2]?u[2].split(','):[],lineNumber:u[4]?+u[4]:null,column:u[5]?+u[5]:null}}var p=/^\s*(?:([^@]*)(?:\((.*?)\))?@)?(\S.*?):(\d+)(?::(\d+))?\s*$/i;function x(n){var u=p.exec(n);return u?{file:u[3],methodName:u[1]||l,arguments:[],lineNumber:+u[4],column:u[5]?+u[5]:null}:null}var h=/^\s*at (?:((?:\[object object\])?.+(?: \[as \S+\])?) )?\(?(.*?):(\d+)(?::(\d+))?\)?\s*$/i;function N(n){var u=h.exec(n);return u?{file:u[2],methodName:u[1]||l,arguments:[],lineNumber:+u[3],column:u[4]?+u[4]:null}:null}n.parse=function(n){return n.split('\n').reduce(function(n,l){var u=o(l)||s(l)||b(l)||N(l)||x(l);return u&&n.push(u),n},[])},Object.defineProperty(n,'__esModule',{value:!0})},'object'==typeof e&&void 0!==m?l(e):'function'==typeof define&&define.amd?define(['exports'],l):l((n=n||self).stackTraceParser={})},103,[]); +__d(function(g,r,i,a,m,e,d){var n,l;n=this,l=function(n){'use strict';var l='';var u=/^\s*at (.*?) ?\(((?:file|https?|blob|chrome-extension|native|eval|webpack||\/).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,t=/\((\S*)(?::(\d+))(?::(\d+))\)/;function o(n){var o=u.exec(n);if(!o)return null;var c=o[2]&&0===o[2].indexOf('native'),s=o[2]&&0===o[2].indexOf('eval'),f=t.exec(o[2]);return s&&null!=f&&(o[2]=f[1],o[3]=f[2],o[4]=f[3]),{file:c?null:o[2],methodName:o[1]||l,arguments:c?[o[2]]:[],lineNumber:o[3]?+o[3]:null,column:o[4]?+o[4]:null}}var c=/^\s*at (?:((?:\[object object\])?.+) )?\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\d+)(?::(\d+))?\)?\s*$/i;function s(n){var u=c.exec(n);return u?{file:u[2],methodName:u[1]||l,arguments:[],lineNumber:+u[3],column:u[4]?+u[4]:null}:null}var f=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|\[native).*?|[^@]*bundle)(?::(\d+))?(?::(\d+))?\s*$/i,v=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i;function b(n){var u=f.exec(n);if(!u)return null;var t=u[3]&&u[3].indexOf(' > eval')>-1,o=v.exec(u[3]);return t&&null!=o&&(u[3]=o[1],u[4]=o[2],u[5]=null),{file:u[3],methodName:u[1]||l,arguments:u[2]?u[2].split(','):[],lineNumber:u[4]?+u[4]:null,column:u[5]?+u[5]:null}}var p=/^\s*(?:([^@]*)(?:\((.*?)\))?@)?(\S.*?):(\d+)(?::(\d+))?\s*$/i;function x(n){var u=p.exec(n);return u?{file:u[3],methodName:u[1]||l,arguments:[],lineNumber:+u[4],column:u[5]?+u[5]:null}:null}var h=/^\s*at (?:((?:\[object object\])?[^\\/]+(?: \[as \S+\])?) )?\(?(.*?):(\d+)(?::(\d+))?\)?\s*$/i;function N(n){var u=h.exec(n);return u?{file:u[2],methodName:u[1]||l,arguments:[],lineNumber:+u[3],column:u[4]?+u[4]:null}:null}n.parse=function(n){return n.split('\n').reduce(function(n,l){var u=o(l)||s(l)||b(l)||N(l)||x(l);return u&&n.push(u),n},[])},Object.defineProperty(n,'__esModule',{value:!0})},'object'==typeof e&&void 0!==m?l(e):'function'==typeof define&&define.amd?define(['exports'],l):l((n=n||self).stackTraceParser={})},103,[]); __d(function(g,r,i,a,m,e,d){'use strict';(0,r(d[0]).polyfillGlobal)('Promise',function(){return r(d[1])})},104,[105,41]); __d(function(g,r,i,a,m,e,d){'use strict';var l=r(d[0]);function o(o,t,n){var c=Object.getOwnPropertyDescriptor(o,t),b=c||{},f=b.enumerable,u=b.writable,p=b.configurable;!c||p?l(o,t,{get:n,enumerable:!1!==f,writable:!1!==u}):console.error('Failed to set polyfill. '+t+' is not configurable.')}m.exports={polyfillObjectProperty:o,polyfillGlobal:function(l,t){o(g,l,t)}}},105,[40]); __d(function(g,r,i,a,m,e,d){'use strict';(0,r(d[0]).polyfillGlobal)('regeneratorRuntime',function(){return delete g.regeneratorRuntime,r(d[1])})},106,[105,107]); @@ -384,28 +384,28 @@ __d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0])(r(d[1])),n=(r(d[2]),!1),o __d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])).getEnforcing('Vibration');e.default=n},378,[2,24]); __d(function(g,r,i,a,m,e,d){'use strict';var n,t=r(d[0]),u=r(d[1]),l=r(d[2]),o=r(d[3]),s=r(d[4]);n=(function(n){function c(){return t(this,c),l(this,o(c).apply(this,arguments))}return s(c,n),u(c,[{key:"render",value:function(){return null}}],[{key:"ignoreWarnings",value:function(n){}},{key:"install",value:function(){}},{key:"uninstall",value:function(){}}]),c})(r(d[5]).Component),m.exports=n},379,[4,5,6,9,10,13]); __d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]),s=n.shape({x:n.number,y:n.number});m.exports=s},380,[69]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})});var u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}})}),r(d[3])},381,[382,1141,1139,1475]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.appNavigate=b,e.redirectWithStoredParams=R,e.redirectToStaticPage=L,e.reloadNow=function(){return function(t,o){t((0,h.setFatalError)(void 0));var n=o()['features/base/connection'].locationURL;w.default.info("Reloading the conference using URL: "+n),'ReactNative'===navigator.product?t(b((0,l.toURLString)(n))):t(k())}},e.reloadWithStoredParams=k,e.maybeRedirectToWelcomePage=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return function(o,n){var c=n()['features/base/config'].enableClosePage;if(c){var s=n()['features/base/jwt'].isGuest;return window.sessionStorage.setItem('guest',s),void o(L("static/"+(t.feedbackSubmitted?'close.html':'close2.html')))}t.showThankYou&&o((0,p.showNotification)({titleArguments:{appName:(0,v.getName)()},titleKey:'dialog.thankYou'})),n()['features/base/config'].enableWelcomePage&&setTimeout(function(){o(R('/'))},t.showThankYou?3e3:500)}};var o=t(r(d[1])),n=r(d[2]),c=r(d[3]),s=r(d[4]),u=r(d[5]),f=r(d[6]),l=r(d[7]),p=r(d[8]),h=r(d[9]),v=r(d[10]),w=t(r(d[11]));function b(t){return function(p,h){var b,R,L,k,C,S,U,x,N,P,W;return o.default.async(function(T){for(;;)switch(T.prev=T.next){case 0:if((b=(0,l.parseURIString)(t))&&b.host||(R=(0,l.parseURIString)((0,v.getDefaultURL)(h)),b?(b.host=R.host,b.hostname=R.hostname,b.pathname=R.pathname+b.pathname.substr(1),b.port=R.port,b.protocol=R.protocol):b=R),b.protocol||(b.protocol='https:'),k=(L=b).contextRoot,C=L.host,S=L.room,U=new URL(b.toString()),'ReactNative'===navigator.product&&p((0,s.disconnect)()),p((0,c.configWillLoad)(U,S)),'http:'!==(x=b.protocol.toLowerCase())&&'https:'!==x&&(x='https:'),P=(N=x+"//"+C+(k||'/'))+"config.js",S&&(P+="?room="+(0,l.getBackendSafeRoomName)(S)),S||(W=(0,c.restoreConfig)(N)),W){T.next=30;break}return T.prev=14,T.next=17,o.default.awrap((0,u.loadConfig)(P));case 17:W=T.sent,p((0,c.storeConfig)(N,W)),T.next=30;break;case 21:if(T.prev=21,T.t0=T.catch(14),W=(0,c.restoreConfig)(N)){T.next=30;break}if(!S){T.next=28;break}return p((0,c.loadConfigError)(T.t0,U)),T.abrupt("return");case 28:w.default.warn('Failed to load config but there is no room, applying a fake one'),W=(0,c.createFakeConfig)(N);case 30:if(h()['features/base/config'].locationURL===U){T.next=33;break}return p((0,c.loadConfigError)(new Error('Config no longer needed!'),U)),T.abrupt("return");case 33:p((0,s.setLocationURL)(U)),p((0,c.setConfig)(W)),p((0,n.setRoom)(S)),S&&'ReactNative'===navigator.product&&(p((0,f.createDesiredLocalTracks)()),p((0,s.connect)()));case 37:case"end":return T.stop()}},null,this,[[14,21]])}}function R(t){return function(o,n){var c=n()['features/base/connection'].locationURL,s=new URL(c.href);s.pathname=t,window.location.assign(s.toString())}}function L(t){return function(){var o=window.location,n=t;n.startsWith('/')||(n.startsWith('./')&&(n=n.substring(2)),n=(0,l.getLocationContextRoot)(o)+n),o.pathname=n}}function k(){return function(t,o){var n=o()['features/base/connection'].locationURL,c=window.location,s=c.search;c.replace(n.toString()),window.self!==window.top&&n.search===s&&c.reload()}}},382,[3,268,383,850,1066,388,800,808,592,1121,1139,1140]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})});var u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}})});var o=r(d[3]);Object.keys(o).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return o[t]}})}),r(d[4]),r(d[5])},383,[384,1073,1074,1075,1077,1111]); -__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.authStatusChanged=function(n,t){return{type:l.AUTH_STATUS_CHANGED,authEnabled:n,authLogin:t}},e.conferenceFailed=T,e.conferenceJoined=R,e.conferenceLeft=D,e.conferenceSubjectChanged=y,e.conferenceWillJoin=I,e.conferenceWillLeave=function(n){return{type:l.CONFERENCE_WILL_LEAVE,conference:n}},e.createConference=function(){return function(n,o){var u=o(),f=u['features/base/connection'],s=f.connection,C=f.locationURL;if(!s)throw new Error('Cannot create a conference without a connection!');var p=u['features/base/conference'],l=p.password,v=p.room;if(!v)throw new Error('Cannot join a conference without a room name!');var T=s.initJitsiConference((0,_.getBackendSafeRoomName)(v),(0,t.default)({},u['features/base/config'],{applicationName:(0,c.getName)(),getWiFiStatsMethod:(0,_.getJitsiMeetGlobalNS)().getWiFiStats,confID:""+C.host+C.pathname}));s[E.JITSI_CONNECTION_CONFERENCE_KEY]=T,T[N.JITSI_CONFERENCE_URL_KEY]=C,n(O(T)),S(T,n),(0,A.sendLocalParticipant)(u,T),T.join(l)}},e.checkIfCanJoin=function(){return function(n,t){var o=t()['features/base/conference'],c=o.authRequired,u=o.password;c&&n(O(c)),c&&c.join(u)}},e.dataChannelOpened=function(){return{type:l.DATA_CHANNEL_OPENED}},e.kickedOut=L,e.lockStateChanged=h,e.onStartMutedPolicyChanged=J,e.p2pStatusChanged=function(n){return{type:l.P2P_STATUS_CHANGED,p2p:n}},e.sendTones=function(n,t,o){return{type:l.SEND_TONES,tones:n,duration:t,pause:o}},e.setDesktopSharingEnabled=function(n){return{type:l.SET_DESKTOP_SHARING_ENABLED,desktopSharingEnabled:n}},e.setFollowMe=function(n){return{type:l.SET_FOLLOW_ME,enabled:n}},e.setMaxReceiverVideoQuality=function(n){return{type:l.SET_MAX_RECEIVER_VIDEO_QUALITY,maxReceiverVideoQuality:n}},e.setPassword=function(n,t,o){return function(c,u){switch(t){case n.join:var E=u()['features/base/conference'];E.passwordRequired===n&&(c({type:l.SET_PASSWORD,conference:n,method:t,password:o}),(E=u()['features/base/conference']).password!==o||E.passwordRequired||E.conference||t.call(n,o));break;case n.lock:var f=u()['features/base/conference'];return f.conference===n?t.call(n,o).then(function(){return c({type:l.SET_PASSWORD,conference:n,method:t,password:o})}).catch(function(n){return c({type:l.SET_PASSWORD_FAILED,error:n})}):Promise.reject()}}},e.setPreferredReceiverVideoQuality=function(n){return{type:l.SET_PREFERRED_RECEIVER_VIDEO_QUALITY,preferredReceiverVideoQuality:n}},e.setRoom=function(n){return{type:l.SET_ROOM,room:n}},e.setStartMutedPolicy=function(n,t){return function(o,c){var u=(0,A.getCurrentConference)(c());return u&&u.setStartMutedPolicy({audio:n,video:t}),o(J(n,t))}},e.setSubject=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:'';return function(t,o){var c=o()['features/base/conference'].conference;c?c.setSubject(n):t({type:l.SET_PENDING_SUBJECT_CHANGE,subject:n})}};var t=n(r(d[1])),o=r(d[2]),c=r(d[3]),u=r(d[4]),E=r(d[5]),f=r(d[6]),s=r(d[7]),C=r(d[8]),p=r(d[9]),_=r(d[10]),l=r(d[11]),N=r(d[12]),A=r(d[13]),v=n(r(d[14]));function S(n,t){n.on(f.JitsiConferenceEvents.CONFERENCE_ERROR,function(n){return v.default.error('Conference error.',n)}),n.on(f.JitsiConferenceEvents.CONFERENCE_FAILED,function(){for(var o=arguments.length,c=new Array(o),u=0;u1&&void 0!==arguments[1]?arguments[1]:{};return{action:t,attributes:n,source:'jitsi-meet-api'}},e.createAudioOnlyChangedEvent=function(t){return{action:"audio.only."+(t?'enabled':'disabled')}},e.createConnectionEvent=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return{action:t,actionSubject:'connection',attributes:n}},e.createCalendarClickedEvent=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return{action:'clicked',actionSubject:t,attributes:n,source:'calendar',type:o}},e.createCalendarSelectedEvent=function(){return{action:'selected',actionSubject:'calendar.selected',attributes:arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},source:'calendar',type:o}},e.createCalendarConnectedEvent=function(){return{action:'calendar.connected',actionSubject:'calendar.connected',attributes:arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}}},e.createRecentClickedEvent=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return{action:'clicked',actionSubject:t,attributes:n,source:'recent.list',type:o}},e.createRecentSelectedEvent=function(){return{action:'selected',actionSubject:'recent.list.selected',attributes:arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},source:'recent.list',type:o}},e.createDeepLinkingPageEvent=function(t,n){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return{action:t,actionSubject:n,source:'deepLinkingPage',attributes:c}},e.createDeviceChangedEvent=function(t,n){return{action:'device.changed',attributes:{device_type:n,media_type:t}}},e.createFeedbackOpenEvent=function(){return{action:'feedback.opened'}},e.createInviteDialogEvent=function(t,n){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return{action:t,actionSubject:n,attributes:c,source:'inviteDialog'}},e.createNetworkInfoEvent=function(t){var n=t.isOnline,c=t.networkType,o=t.details,u={isOnline:n};return c&&(u.networkType=c),o&&(u.details=o),{action:'network.info',attributes:u}},e.createOfferAnswerFailedEvent=function(){return{action:'offer.answer.failure'}},e.createPageReloadScheduledEvent=function(t,c,o){return{action:'page.reload.scheduled',attributes:(0,n.default)({reason:t,timeout:c},o)}},e.createPinnedEvent=function(t,n,o){return{type:c,action:t,actionSubject:'participant',objectType:'participant',objectId:n,attributes:o}},e.createProfilePanelButtonEvent=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return{action:'clicked',actionSubject:t,attributes:n,source:'profile.panel',type:o}},e.createRecordingDialogEvent=function(t,n){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return{action:'clicked',actionSubject:n,attributes:c,source:t+".recording.dialog",type:o}},e.createLiveStreamingDialogEvent=function(t,n){return{action:'clicked',actionSubject:n,source:t+".liveStreaming.dialog",type:o}},e.createLocalTracksDurationEvent=function(t){var n=t.audio,c=t.video,o=t.conference,u=c.camera,l=c.desktop;return{action:'local.tracks.durations',attributes:{audio:n.value,camera:u.value,conference:o.value,desktop:l.value}}},e.createRecordingEvent=function(t,n,c){return{action:t,actionSubject:"recording."+n,attributes:{value:c}}},e.createRejoinedEvent=function(t){var n=t.url,c=t.lastConferenceDuration,o=t.timeSinceLeft;return{action:'rejoined',attributes:{lastConferenceDuration:c,timeSinceLeft:o,url:n}}},e.createRemoteMuteConfirmedEvent=function(t){return{action:'clicked',actionSubject:'remote.mute.dialog.confirm.button',attributes:{participant_id:t},source:'remote.mute.dialog',type:o}},e.createRemoteVideoMenuButtonEvent=function(t,n){return{action:'clicked',actionSubject:t,attributes:n,source:'remote.video.menu',type:o}},e.createVideoBlurEvent=function(t){return{action:t,actionSubject:'video.blur'}},e.createScreenSharingEvent=function(t){return{action:t,actionSubject:'screen.sharing'}},e.createSelectParticipantFailedEvent=function(t){var n={action:'select.participant.failed'};t&&(n.error=t.toString());return n},e.createSharedVideoEvent=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return{action:t,attributes:n,actionSubject:'shared.video'}},e.createShortcutEvent=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:u,c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return{action:n,actionSubject:'keyboard.shortcut',actionSubjectId:t,attributes:c,source:'keyboard.shortcut',type:o}},e.createStartAudioOnlyEvent=function(t){return{action:'start.audio.only',attributes:{enabled:t}}},e.createStartSilentEvent=function(){return{action:'start.silent'}},e.createStartMutedConfigurationEvent=function(t,n,c){return{action:'start.muted.configuration',attributes:{source:t,audio_mute:n,video_mute:c}}},e.createStreamSwitchDelayEvent=function(t){return{action:'stream.switch.delay',attributes:t}},e.createSyncTrackStateEvent=function(t,n){return{action:'sync.track.state',attributes:{media_type:t,muted:n}}},e.createThumbnailOffsetParentIsNullEvent=function(t){return{action:'OffsetParentIsNull',attributes:{id:t}}},e.createToolbarEvent=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return{action:'clicked',actionSubject:t,attributes:n,source:'toolbar.button',type:o}},e.createTrackMutedEvent=function(t,n){var c=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return{action:'track.muted',attributes:{media_type:t,muted:c,reason:n}}},e.createWelcomePageEvent=function(t,n){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return{action:t,actionSubject:n,attributes:c,source:'welcomePage'}},e.VIDEO_MUTE=e.AUDIO_MUTE=e.ACTION_SHORTCUT_TRIGGERED=e.ACTION_SHORTCUT_RELEASED=e.ACTION_SHORTCUT_PRESSED=e.ACTION_UNPINNED=e.ACTION_PINNED=void 0;var n=t(r(d[1])),c='track',o='ui';e.ACTION_PINNED='pinned';e.ACTION_UNPINNED='unpinned';e.ACTION_SHORTCUT_PRESSED='pressed';e.ACTION_SHORTCUT_RELEASED='released';var u='triggered';e.ACTION_SHORTCUT_TRIGGERED=u;e.AUDIO_MUTE='audio.mute';e.VIDEO_MUTE='video.mute'},386,[3,54]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.sendAnalytics=function(t){try{s.analytics.sendEvent(t)}catch(t){u.default.warn("Error sending analytics event: "+t)}},e.resetAnalytics=function(){s.analytics.reset()},e.initAnalytics=function(t){var n=t.getState;if((0,l.getJitsiMeetGlobalNS)().analyticsHandlers=[],window.analyticsHandlers=[],!s.analytics||!(0,s.isAnalyticsEnabled)(n))return;var o=n(),c=o['features/base/config'],y=o['features/base/connection'].locationURL,v=y?y.host:'',p=c.analytics,b=void 0===p?{}:p,h=c.deploymentInfo,A=b.amplitudeAPPKey,w=b.blackListedEvents,k=b.scriptURLs,S=b.googleAnalyticsTrackingId,P=b.whiteListedEvents,E=o['features/base/jwt'],L=E.group,H=E.server,T=E.user,_={amplitudeAPPKey:A,blackListedEvents:w,envType:h&&h.envType||'dev',googleAnalyticsTrackingId:S,group:L,host:v,product:h&&h.product,subproduct:h&&h.environment,user:T&&T.id,version:s.default.version,whiteListedEvents:P};f(k,_).then(function(t){var n=o['features/base/conference'].room,l={};if(H&&(l.server=H),L&&(l.group=L),h)for(var c in h)h.hasOwnProperty(c)&&(l[c]=h[c]);s.analytics.addPermanentProperties(l),s.analytics.setConferenceName(n),s.analytics.setAnalyticsHandlers(t)}).catch(function(t){s.analytics.dispose(),u.default.error(t)})};var o=n(r(d[2])),s=t(r(d[3])),l=r(d[4]),c=r(d[5]),u=n(r(d[6]));function f(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1?arguments[1]:void 0,s=[],f=function(t){s.push((0,l.loadScript)(t).then(function(){return{type:'success'}},function(n){return{type:'error',error:n,url:t}}))},y=t,v=Array.isArray(y),p=0;for(y=v?y:y["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var b;if(v){if(p>=y.length)break;b=y[p++]}else{if((p=y.next()).done)break;b=p.value}f(b)}return Promise.all(s).then(function(t){var s=t,f=Array.isArray(s),y=0;for(s=f?s:s["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var v;if(f){if(y>=s.length)break;v=s[y++]}else{if((y=s.next()).done)break;v=y.value}var p=v;'error'===p.type&&u.default.warn("Failed to load "+p.url+": "+p.error)}var b=[],h=(0,o.default)((0,l.getJitsiMeetGlobalNS)().analyticsHandlers).concat((0,o.default)(window.analyticsHandlers),[c.AmplitudeHandler]),A=Array.isArray(h),w=0;for(h=A?h:h["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var k;if(A){if(w>=h.length)break;k=h[w++]}else{if((w=h.next()).done)break;k=w.value}var S=k;try{b.push(new S(n))}catch(t){u.default.warn("Error creating analytics handler: "+t)}}return u.default.debug("Loaded "+b.length+" analytics handlers"),b})}},387,[2,3,32,388,808,1026,1031]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0});var n={analytics:!0,browser:!0,JitsiConferenceErrors:!0,JitsiConferenceEvents:!0,JitsiConnectionErrors:!0,JitsiConnectionEvents:!0,JitsiConnectionQualityEvents:!0,JitsiE2ePingEvents:!0,JitsiMediaDevicesEvents:!0,JitsiParticipantConnectionStatus:!0,JitsiRecordingConstants:!0,JitsiSIPVideoGWStatus:!0,JitsiTrackErrors:!0,JitsiTrackEvents:!0};Object.defineProperty(e,"default",{enumerable:!0,get:function(){return s.default}}),e.JitsiTrackEvents=e.JitsiTrackErrors=e.JitsiSIPVideoGWStatus=e.JitsiRecordingConstants=e.JitsiParticipantConnectionStatus=e.JitsiMediaDevicesEvents=e.JitsiE2ePingEvents=e.JitsiConnectionQualityEvents=e.JitsiConnectionEvents=e.JitsiConnectionErrors=e.JitsiConferenceEvents=e.JitsiConferenceErrors=e.browser=e.analytics=void 0;var s=t(r(d[1])),o=r(d[2]);Object.keys(o).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(n,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return o[t]}}))});var c=r(d[3]);Object.keys(c).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(n,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return c[t]}}))});var u=r(d[4]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(n,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}}))}),r(d[5]),r(d[6]);var v=s.default.analytics;e.analytics=v;var f=s.default.util.browser;e.browser=f;var l=s.default.errors.conference;e.JitsiConferenceErrors=l;var J=s.default.events.conference;e.JitsiConferenceEvents=J;var E=s.default.errors.connection;e.JitsiConnectionErrors=E;var y=s.default.events.connection;e.JitsiConnectionEvents=y;var C=s.default.events.connectionQuality;e.JitsiConnectionQualityEvents=C;var p=s.default.events.e2eping;e.JitsiE2ePingEvents=p;var b=s.default.events.mediaDevices;e.JitsiMediaDevicesEvents=b;var P=s.default.constants.participantConnectionStatus;e.JitsiParticipantConnectionStatus=P;var O=s.default.constants.recording;e.JitsiRecordingConstants=O;var j=s.default.constants.sipVideoGW;e.JitsiSIPVideoGWStatus=j;var k=s.default.errors.track;e.JitsiTrackErrors=k;var S=s.default.events.track;e.JitsiTrackEvents=S},388,[3,389,1006,1007,1008,1010,1025]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return n.default}}),r(d[1]);var n=t(r(d[2]));!(function(t){if(void 0===t.$){var n=r(d[3]);n(t),t.$=n}})(g||window||this)},389,[3,390,1004,1005]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})});var u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}})}),r(d[3])},381,[382,1160,1158,1503]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.appNavigate=b,e.redirectWithStoredParams=R,e.redirectToStaticPage=L,e.reloadNow=function(){return function(t,o){t((0,p.setFatalError)(void 0));var n=o()['features/base/connection'].locationURL;w.default.info("Reloading the conference using URL: "+n),'ReactNative'===navigator.product?t(b((0,l.toURLString)(n))):t(C())}},e.reloadWithStoredParams=C,e.maybeRedirectToWelcomePage=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return function(o,n){var c=n()['features/base/config'].enableClosePage;if(c){var s=n()['features/base/jwt'].isGuest;window.sessionStorage.setItem('guest',s);var u='close.html';return interfaceConfig.SHOW_PROMOTIONAL_CLOSE_PAGE?u='close3.html':t.feedbackSubmitted||(u='close2.html'),void o(L("static/"+u))}t.showThankYou&&o((0,h.showNotification)({titleArguments:{appName:(0,v.getName)()},titleKey:'dialog.thankYou'})),n()['features/base/config'].enableWelcomePage&&setTimeout(function(){o(R('/'))},t.showThankYou?3e3:500)}};var o=t(r(d[1])),n=r(d[2]),c=r(d[3]),s=r(d[4]),u=r(d[5]),f=r(d[6]),l=r(d[7]),h=r(d[8]),p=r(d[9]),v=r(d[10]),w=t(r(d[11]));function b(t){return function(h,p){var b,R,L,C,S,k,U,N,x,P,W;return o.default.async(function(T){for(;;)switch(T.prev=T.next){case 0:if((b=(0,l.parseURIString)(t))&&b.host||(R=(0,l.parseURIString)((0,v.getDefaultURL)(p)),b?(b.host=R.host,b.hostname=R.hostname,b.pathname=R.pathname+b.pathname.substr(1),b.port=R.port,b.protocol=R.protocol):b=R),b.protocol||(b.protocol='https:'),C=(L=b).contextRoot,S=L.host,k=L.room,U=new URL(b.toString()),'ReactNative'===navigator.product&&h((0,s.disconnect)()),h((0,c.configWillLoad)(U,k)),'http:'!==(N=b.protocol.toLowerCase())&&'https:'!==N&&(N='https:'),P=(x=N+"//"+S+(C||'/'))+"config.js",k&&(P+="?room="+(0,l.getBackendSafeRoomName)(k)),k||(W=(0,c.restoreConfig)(x)),W){T.next=30;break}return T.prev=14,T.next=17,o.default.awrap((0,u.loadConfig)(P));case 17:W=T.sent,h((0,c.storeConfig)(x,W)),T.next=30;break;case 21:if(T.prev=21,T.t0=T.catch(14),W=(0,c.restoreConfig)(x)){T.next=30;break}if(!k){T.next=28;break}return h((0,c.loadConfigError)(T.t0,U)),T.abrupt("return");case 28:w.default.warn('Failed to load config but there is no room, applying a fake one'),W=(0,c.createFakeConfig)(x);case 30:if(p()['features/base/config'].locationURL===U){T.next=33;break}return h((0,c.loadConfigError)(new Error('Config no longer needed!'),U)),T.abrupt("return");case 33:h((0,s.setLocationURL)(U)),h((0,c.setConfig)(W)),h((0,n.setRoom)(k)),k&&'ReactNative'===navigator.product&&(h((0,f.createDesiredLocalTracks)()),h((0,s.connect)()));case 37:case"end":return T.stop()}},null,this,[[14,21]])}}function R(t){return function(o,n){var c=n()['features/base/connection'].locationURL,s=new URL(c.href);s.pathname=t,window.location.assign(s.toString())}}function L(t){return function(){var o=window.location,n=t;n.startsWith('/')||(n.startsWith('./')&&(n=n.substring(2)),n=(0,l.getLocationContextRoot)(o)+n),o.pathname=n}}function C(){return function(t,o){var n=o()['features/base/connection'].locationURL,c=window.location,s=c.search;c.replace(n.toString()),window.self!==window.top&&n.search===s&&c.reload()}}},382,[3,268,383,824,1086,388,814,860,602,1140,1158,1159]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})});var u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}})});var o=r(d[3]);Object.keys(o).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return o[t]}})}),r(d[4]),r(d[5])},383,[384,1092,1093,1094,1096,1130]); +__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.authStatusChanged=function(n,t){return{type:l.AUTH_STATUS_CHANGED,authEnabled:n,authLogin:t}},e.conferenceFailed=S,e.conferenceJoined=R,e.conferenceLeft=D,e.conferenceSubjectChanged=y,e.conferenceTimestampChanged=O,e.conferenceWillJoin=L,e.conferenceWillLeave=function(n){return{type:l.CONFERENCE_WILL_LEAVE,conference:n}},e.createConference=function(){return function(n,o){var u=o(),f=u['features/base/connection'],s=f.connection,p=f.locationURL;if(!s)throw new Error('Cannot create a conference without a connection!');var l=u['features/base/conference'],v=l.password,S=l.room;if(!S)throw new Error('Cannot join a conference without a room name!');var R=u['features/base/config'],D=(0,C.getLocalParticipant)(u),y=D.email,O=D.name,L=s.initJitsiConference((0,_.getBackendSafeRoomName)(S),(0,t.default)({},R,{applicationName:(0,c.getName)(),getWiFiStatsMethod:(0,_.getJitsiMeetGlobalNS)().getWiFiStats,confID:""+p.host+p.pathname,statisticsDisplayName:R.enableDisplayNameInStats?O:void 0,statisticsId:R.enableEmailInStats?y:void 0}));s[E.JITSI_CONNECTION_CONFERENCE_KEY]=L,L[N.JITSI_CONFERENCE_URL_KEY]=p,n(I(L)),T(L,n),(0,A.sendLocalParticipant)(u,L),L.join(v)}},e.checkIfCanJoin=function(){return function(n,t){var o=t()['features/base/conference'],c=o.authRequired,u=o.password;c&&n(I(c)),c&&c.join(u)}},e.dataChannelOpened=function(){return{type:l.DATA_CHANNEL_OPENED}},e.kickedOut=h,e.lockStateChanged=M,e.onStartMutedPolicyChanged=J,e.p2pStatusChanged=function(n){return{type:l.P2P_STATUS_CHANGED,p2p:n}},e.sendTones=function(n,t,o){return{type:l.SEND_TONES,tones:n,duration:t,pause:o}},e.setDesktopSharingEnabled=function(n){return{type:l.SET_DESKTOP_SHARING_ENABLED,desktopSharingEnabled:n}},e.setFollowMe=function(n){return{type:l.SET_FOLLOW_ME,enabled:n}},e.setMaxReceiverVideoQuality=function(n){return{type:l.SET_MAX_RECEIVER_VIDEO_QUALITY,maxReceiverVideoQuality:n}},e.setPassword=function(n,t,o){return function(c,u){switch(t){case n.join:var E=u()['features/base/conference'];E.passwordRequired===n&&(c({type:l.SET_PASSWORD,conference:n,method:t,password:o}),(E=u()['features/base/conference']).password!==o||E.passwordRequired||E.conference||t.call(n,o));break;case n.lock:var f=u()['features/base/conference'];return f.conference===n?t.call(n,o).then(function(){return c({type:l.SET_PASSWORD,conference:n,method:t,password:o})}).catch(function(n){return c({type:l.SET_PASSWORD_FAILED,error:n})}):Promise.reject()}}},e.setPreferredReceiverVideoQuality=function(n){return{type:l.SET_PREFERRED_RECEIVER_VIDEO_QUALITY,preferredReceiverVideoQuality:n}},e.setRoom=function(n){return{type:l.SET_ROOM,room:n}},e.setStartMutedPolicy=function(n,t){return function(o,c){var u=(0,A.getCurrentConference)(c());return u&&u.setStartMutedPolicy({audio:n,video:t}),o(J(n,t))}},e.setSubject=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:'';return function(t,o){var c=o()['features/base/conference'].conference;c?c.setSubject(n):t({type:l.SET_PENDING_SUBJECT_CHANGE,subject:n})}};var t=n(r(d[1])),o=r(d[2]),c=r(d[3]),u=r(d[4]),E=r(d[5]),f=r(d[6]),s=r(d[7]),C=r(d[8]),p=r(d[9]),_=r(d[10]),l=r(d[11]),N=r(d[12]),A=r(d[13]),v=n(r(d[14]));function T(n,t){n.on(f.JitsiConferenceEvents.CONFERENCE_ERROR,function(n){return v.default.error('Conference error.',n)}),n.on(f.JitsiConferenceEvents.CONFERENCE_FAILED,function(){for(var o=arguments.length,c=new Array(o),u=0;u1&&void 0!==arguments[1]?arguments[1]:{};return{action:t,attributes:n,source:'jitsi-meet-api'}},e.createAudioOnlyChangedEvent=function(t){return{action:"audio.only."+(t?'enabled':'disabled')}},e.createConnectionEvent=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return{action:t,actionSubject:'connection',attributes:n}},e.createCalendarClickedEvent=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return{action:'clicked',actionSubject:t,attributes:n,source:'calendar',type:o}},e.createCalendarSelectedEvent=function(){return{action:'selected',actionSubject:'calendar.selected',attributes:arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},source:'calendar',type:o}},e.createCalendarConnectedEvent=function(){return{action:'calendar.connected',actionSubject:'calendar.connected',attributes:arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}}},e.createRecentClickedEvent=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return{action:'clicked',actionSubject:t,attributes:n,source:'recent.list',type:o}},e.createChromeExtensionBannerEvent=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return{action:t?'install':'cancel',attributes:n,source:'chrome.extension.banner',type:o}},e.createRecentSelectedEvent=function(){return{action:'selected',actionSubject:'recent.list.selected',attributes:arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},source:'recent.list',type:o}},e.createDeepLinkingPageEvent=function(t,n){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return{action:t,actionSubject:n,source:'deepLinkingPage',attributes:c}},e.createDeviceChangedEvent=function(t,n){return{action:'device.changed',attributes:{device_type:n,media_type:t}}},e.createFeedbackOpenEvent=function(){return{action:'feedback.opened'}},e.createInviteDialogEvent=function(t,n){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return{action:t,actionSubject:n,attributes:c,source:'inviteDialog'}},e.createNetworkInfoEvent=function(t){var n=t.isOnline,c=t.networkType,o=t.details,u={isOnline:n};return c&&(u.networkType=c),o&&(u.details=o),{action:'network.info',attributes:u}},e.createOfferAnswerFailedEvent=function(){return{action:'offer.answer.failure'}},e.createPageReloadScheduledEvent=function(t,c,o){return{action:'page.reload.scheduled',attributes:(0,n.default)({reason:t,timeout:c},o)}},e.createPinnedEvent=function(t,n,o){return{type:c,action:t,actionSubject:'participant',objectType:'participant',objectId:n,attributes:o}},e.createProfilePanelButtonEvent=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return{action:'clicked',actionSubject:t,attributes:n,source:'profile.panel',type:o}},e.createRecordingDialogEvent=function(t,n){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return{action:'clicked',actionSubject:n,attributes:c,source:t+".recording.dialog",type:o}},e.createLiveStreamingDialogEvent=function(t,n){return{action:'clicked',actionSubject:n,source:t+".liveStreaming.dialog",type:o}},e.createLocalTracksDurationEvent=function(t){var n=t.audio,c=t.video,o=t.conference,u=c.camera,l=c.desktop;return{action:'local.tracks.durations',attributes:{audio:n.value,camera:u.value,conference:o.value,desktop:l.value}}},e.createRecordingEvent=function(t,n,c){return{action:t,actionSubject:"recording."+n,attributes:{value:c}}},e.createRejoinedEvent=function(t){var n=t.url,c=t.lastConferenceDuration,o=t.timeSinceLeft;return{action:'rejoined',attributes:{lastConferenceDuration:c,timeSinceLeft:o,url:n}}},e.createRemoteMuteConfirmedEvent=function(t){return{action:'clicked',actionSubject:'remote.mute.dialog.confirm.button',attributes:{participant_id:t},source:'remote.mute.dialog',type:o}},e.createRemoteVideoMenuButtonEvent=function(t,n){return{action:'clicked',actionSubject:t,attributes:n,source:'remote.video.menu',type:o}},e.createVideoBlurEvent=function(t){return{action:t,actionSubject:'video.blur'}},e.createScreenSharingEvent=function(t){return{action:t,actionSubject:'screen.sharing'}},e.createSelectParticipantFailedEvent=function(t){var n={action:'select.participant.failed'};t&&(n.error=t.toString());return n},e.createSharedVideoEvent=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return{action:t,attributes:n,actionSubject:'shared.video'}},e.createShortcutEvent=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:u,c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return{action:n,actionSubject:'keyboard.shortcut',actionSubjectId:t,attributes:c,source:'keyboard.shortcut',type:o}},e.createStartAudioOnlyEvent=function(t){return{action:'start.audio.only',attributes:{enabled:t}}},e.createStartSilentEvent=function(){return{action:'start.silent'}},e.createStartMutedConfigurationEvent=function(t,n,c){return{action:'start.muted.configuration',attributes:{source:t,audio_mute:n,video_mute:c}}},e.createStreamSwitchDelayEvent=function(t){return{action:'stream.switch.delay',attributes:t}},e.createSyncTrackStateEvent=function(t,n){return{action:'sync.track.state',attributes:{media_type:t,muted:n}}},e.createToolbarEvent=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return{action:'clicked',actionSubject:t,attributes:n,source:'toolbar.button',type:o}},e.createTrackMutedEvent=function(t,n){var c=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return{action:'track.muted',attributes:{media_type:t,muted:c,reason:n}}},e.createWelcomePageEvent=function(t,n){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return{action:t,actionSubject:n,attributes:c,source:'welcomePage'}},e.VIDEO_MUTE=e.AUDIO_MUTE=e.ACTION_SHORTCUT_TRIGGERED=e.ACTION_SHORTCUT_RELEASED=e.ACTION_SHORTCUT_PRESSED=e.ACTION_UNPINNED=e.ACTION_PINNED=void 0;var n=t(r(d[1])),c='track',o='ui';e.ACTION_PINNED='pinned';e.ACTION_UNPINNED='unpinned';e.ACTION_SHORTCUT_PRESSED='pressed';e.ACTION_SHORTCUT_RELEASED='released';var u='triggered';e.ACTION_SHORTCUT_TRIGGERED=u;e.AUDIO_MUTE='audio.mute';e.VIDEO_MUTE='video.mute'},386,[3,54]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.sendAnalytics=function(t){try{s.analytics.sendEvent(t)}catch(t){f.default.warn("Error sending analytics event: "+t)}},e.resetAnalytics=function(){s.analytics.reset()},e.createHandlers=function(t){var n=t.getState;if((0,l.getJitsiMeetGlobalNS)().analyticsHandlers=[],window.analyticsHandlers=[],!(0,s.isAnalyticsEnabled)(n))return Promise.resolve([]);var c=n(),v=c['features/base/config'],h=c['features/base/connection'].locationURL,p=h?h.host:'',b=v.analytics,w=void 0===b?{}:b,A=v.deploymentInfo,k=w.amplitudeAPPKey,E=w.blackListedEvents,P=w.scriptURLs,S=w.googleAnalyticsTrackingId,H=w.whiteListedEvents,L=c['features/base/jwt'],x=L.group,I=L.user,N={amplitudeAPPKey:k,blackListedEvents:E,envType:A&&A.envType||'dev',googleAnalyticsTrackingId:S,group:x,host:p,product:A&&A.product,subproduct:A&&A.environment,user:I&&I.id,version:s.default.version,whiteListedEvents:H},C=[];try{var M=new u.AmplitudeHandler(N);C.push(M)}catch(t){}return y(P,N).then(function(t){if(C.push.apply(C,(0,o.default)(t)),0===C.length)throw new Error('No analytics handlers created!');return C}).catch(function(t){return s.analytics.dispose(),f.default.error(t),[]})},e.initAnalytics=function(t,n){var o=t.getState;if(!(0,s.isAnalyticsEnabled)(o)||0===n.length)return;var l=o(),u=l['features/base/config'],f=u.deploymentInfo,y=l['features/base/jwt'],v=y.group,h=y.server,p=l['features/base/conference'].room,b={};h&&(b.server=h);v&&(b.group=v);if(b.websocket='ReactNative'!==navigator.product&&'string'==typeof u.websocket,f)for(var w in f)f.hasOwnProperty(w)&&(b[w]=f[w]);if(s.analytics.addPermanentProperties(b),s.analytics.setConferenceName(p),s.analytics.setAnalyticsHandlers(n),!(0,c.isMobileBrowser)()&&s.browser.isChrome()){var A=l['features/base/config'].chromeExtensionBanner;(0,c.checkChromeExtensionsInstalled)(A).then(function(t){(null==t?void 0:t.length)&&s.analytics.addPermanentProperties({hasChromeExtension:t.some(function(t){return t})})})}};var o=n(r(d[2])),s=t(r(d[3])),l=r(d[4]),c=r(d[5]),u=r(d[6]),f=n(r(d[7]));function y(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1?arguments[1]:void 0,s=[],c=function(t){s.push((0,l.loadScript)(t).then(function(){return{type:'success'}},function(n){return{type:'error',error:n,url:t}}))},u=t,y=Array.isArray(u),v=0;for(u=y?u:u["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var h;if(y){if(v>=u.length)break;h=u[v++]}else{if((v=u.next()).done)break;h=v.value}c(h)}return Promise.all(s).then(function(t){var s=t,c=Array.isArray(s),u=0;for(s=c?s:s["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var y;if(c){if(u>=s.length)break;y=s[u++]}else{if((u=s.next()).done)break;y=u.value}var v=y;'error'===v.type&&f.default.warn("Failed to load "+v.url+": "+v.error)}var h=[],p=(0,o.default)((0,l.getJitsiMeetGlobalNS)().analyticsHandlers).concat((0,o.default)(window.analyticsHandlers)),b=Array.isArray(p),w=0;for(p=b?p:p["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var A;if(b){if(w>=p.length)break;A=p[w++]}else{if((w=p.next()).done)break;A=w.value}var k=A;try{h.push(new k(n))}catch(t){f.default.warn("Error creating analytics handler: "+t)}}return f.default.debug("Loaded "+h.length+" analytics handlers"),h})}},387,[2,3,32,388,860,1027,1028,1034]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0});var n={analytics:!0,browser:!0,JitsiConferenceErrors:!0,JitsiConferenceEvents:!0,JitsiConnectionErrors:!0,JitsiConnectionEvents:!0,JitsiConnectionQualityEvents:!0,JitsiDetectionEvents:!0,JitsiE2ePingEvents:!0,JitsiMediaDevicesEvents:!0,JitsiParticipantConnectionStatus:!0,JitsiRecordingConstants:!0,JitsiSIPVideoGWStatus:!0,JitsiTrackErrors:!0,JitsiTrackEvents:!0};Object.defineProperty(e,"default",{enumerable:!0,get:function(){return s.default}}),e.JitsiTrackEvents=e.JitsiTrackErrors=e.JitsiSIPVideoGWStatus=e.JitsiRecordingConstants=e.JitsiParticipantConnectionStatus=e.JitsiMediaDevicesEvents=e.JitsiE2ePingEvents=e.JitsiDetectionEvents=e.JitsiConnectionQualityEvents=e.JitsiConnectionEvents=e.JitsiConnectionErrors=e.JitsiConferenceEvents=e.JitsiConferenceErrors=e.browser=e.analytics=void 0;var s=t(r(d[1])),o=r(d[2]);Object.keys(o).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(n,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return o[t]}}))});var c=r(d[3]);Object.keys(c).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(n,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return c[t]}}))});var v=r(d[4]);Object.keys(v).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(n,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return v[t]}}))}),r(d[5]),r(d[6]);var u=s.default.analytics;e.analytics=u;var f=s.default.util.browser;e.browser=f;var l=s.default.errors.conference;e.JitsiConferenceErrors=l;var J=s.default.events.conference;e.JitsiConferenceEvents=J;var E=s.default.errors.connection;e.JitsiConnectionErrors=E;var y=s.default.events.connection;e.JitsiConnectionEvents=y;var C=s.default.events.connectionQuality;e.JitsiConnectionQualityEvents=C;var p=s.default.events.detection;e.JitsiDetectionEvents=p;var b=s.default.events.e2eping;e.JitsiE2ePingEvents=b;var P=s.default.events.mediaDevices;e.JitsiMediaDevicesEvents=P;var O=s.default.constants.participantConnectionStatus;e.JitsiParticipantConnectionStatus=O;var j=s.default.constants.recording;e.JitsiRecordingConstants=j;var k=s.default.constants.sipVideoGW;e.JitsiSIPVideoGWStatus=k;var S=s.default.errors.track;e.JitsiTrackErrors=S;var _=s.default.events.track;e.JitsiTrackEvents=_},388,[3,389,1007,1008,1009,1011,1026]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return n.default}}),r(d[1]);var n=t(r(d[2]));!(function(t){if(void 0===t.$){var n=r(d[3]);n(t),t.$=n}})(g||window||this)},389,[3,390,1004,1006]); __d(function(g,r,i,a,m,e,d){r(d[0]),r(d[1])},390,[391,1003]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0])(r(d[1]));r(d[2]);var n=r(d[3]);function o(t,n){return t===n?t:(l=Object.getPrototypeOf(t))&&(l=o(n,l))||(l=Object.getPrototypeOf(n))&&(l=o(t,l))?l:void 0;var l}function l(t,n){var o=null;return t&&f(t,function(t){return 1===t.nodeType&&t.nodeName===n&&(o=t,!0)}),o}function f(t,n){if(n(t))return!0;if(t=t.firstChild)do{if(f(t,n))return!0}while(t=t.nextSibling);return!1}r(d[4]),(function(f){var u=r(d[5]).DOMParser;if(f.DOMParser=u,void 0===f.addEventListener&&(f.addEventListener=function(){}),void 0===f.removeEventListener&&(f.removeEventListener=function(){}),void 0===f.document){var c=(new u).parseFromString('','text/xml');void 0===c.addEventListener&&(c.addEventListener=function(){}),void 0===c.cookie&&(c.cookie=''),void 0===c.implementation.createHTMLDocument&&(c.implementation.createHTMLDocument=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:'',n=(new u).parseFromString("\n "+t+"\n \n ",'text/xml');return Object.defineProperty(n,'body',{get:function(){return n.getElementsByTagName('body')[0]}}),n});var s=Object.getPrototypeOf(c.documentElement);s&&(void 0===s.querySelector&&(s.querySelector=function(t){return l(this,t)}),void 0===s.remove&&(s.remove=function(){null!==this.parentNode&&this.parentNode.removeChild(this)}),s.hasOwnProperty('innerHTML')||Object.defineProperty(s,'innerHTML',{get:function(){return this.childNodes.toString()},set:function(t){this.textContent='';for(var n,o=(new u).parseFromString("
    "+t+"
    ",'text/xml').documentElement;n=o.firstChild;)this.appendChild(n)}}),s.hasOwnProperty('children')||Object.defineProperty(s,'children',{get:function(){for(var t=this.childNodes,n=[],o=0,l=t[o];l;)1===l.nodeType&&n.push(l),l=t[o+=1];return n}}));var v=o(Object.getPrototypeOf(c),s);if(v&&v!==Object.getPrototypeOf({})){var h=f.console;if(h){var p=r(d[6]).levels;Object.keys(p).forEach(function(t){var n=p[t],o=h[n];'function'==typeof o&&(h[n]=function(){for(var t=arguments.length,l=new Array(t),f=0;f1&&void 0!==arguments[1]?arguments[1]:0;return t.default.setTimeout(n,o)}})(g||window||this)},391,[3,392,393,394,832,992,582,995,996,999,1002]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0])(r(d[1]));r(d[2]);var n=r(d[3]);function o(t,n){return t===n?t:(l=Object.getPrototypeOf(t))&&(l=o(n,l))||(l=Object.getPrototypeOf(n))&&(l=o(t,l))?l:void 0;var l}function l(t,n){var o=null;return t&&f(t,function(t){return 1===t.nodeType&&t.nodeName===n&&(o=t,!0)}),o}function f(t,n){if(n(t))return!0;if(t=t.firstChild)do{if(f(t,n))return!0}while(t=t.nextSibling);return!1}r(d[4]),(function(f){var u=r(d[5]).DOMParser;if(f.DOMParser=u,void 0===f.addEventListener&&(f.addEventListener=function(){}),void 0===f.removeEventListener&&(f.removeEventListener=function(){}),void 0===f.document){var c=(new u).parseFromString('','text/xml');void 0===c.addEventListener&&(c.addEventListener=function(){}),void 0===c.cookie&&(c.cookie=''),void 0===c.implementation.createHTMLDocument&&(c.implementation.createHTMLDocument=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:'',n=(new u).parseFromString("\n "+t+"\n \n ",'text/xml');return Object.defineProperty(n,'body',{get:function(){return n.getElementsByTagName('body')[0]}}),n});var s=Object.getPrototypeOf(c.documentElement);s&&(void 0===s.querySelector&&(s.querySelector=function(t){return l(this,t)}),void 0===s.remove&&(s.remove=function(){null!==this.parentNode&&this.parentNode.removeChild(this)}),s.hasOwnProperty('innerHTML')||Object.defineProperty(s,'innerHTML',{get:function(){return this.childNodes.toString()},set:function(t){this.textContent='';for(var n,o=(new u).parseFromString("
    "+t+"
    ",'text/xml').documentElement;n=o.firstChild;)this.appendChild(n)}}),s.hasOwnProperty('children')||Object.defineProperty(s,'children',{get:function(){for(var t=this.childNodes,n=[],o=0,l=t[o];l;)1===l.nodeType&&n.push(l),l=t[o+=1];return n}}));var v=o(Object.getPrototypeOf(c),s);if(v&&v!==Object.getPrototypeOf({})){var h=f.console;if(h){var p=r(d[6]).levels;Object.keys(p).forEach(function(t){var n=p[t],o=h[n];'function'==typeof o&&(h[n]=function(){for(var t=arguments.length,l=new Array(t),f=0;f1&&void 0!==arguments[1]?arguments[1]:0;return t.default.setTimeout(n,o)}})(g||window||this)},391,[3,392,393,394,845,992,592,995,996,999,1002]); __d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),u=t(r(d[2])),c=r(d[3]),l=c.NativeModules.RNBackgroundTimer,o=new c.NativeEventEmitter(l),s=new((function(){function t(){var u=this;(0,n.default)(this,t),this.uniqueId=0,this.callbacks={},o.addListener('backgroundTimer.timeout',function(t){if(u.callbacks[t]){var n=u.callbacks[t].callback;u.callbacks[t].interval?l.setTimeout(t,u.callbacks[t].timeout):delete u.callbacks[t],n()}})}return(0,u.default)(t,[{key:"start",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return l.start(t)}},{key:"stop",value:function(){return l.stop()}},{key:"runBackgroundTimer",value:function(t,n){var u=this,l=c.Platform.select({ios:function(){return c.NativeAppEventEmitter},android:function(){return c.DeviceEventEmitter}})();this.start(0),this.backgroundListener=l.addListener('backgroundTimer',function(){u.backgroundListener.remove(),u.backgroundClockMethod(t,n)})}},{key:"backgroundClockMethod",value:function(t,n){var u=this;this.backgroundTimer=this.setTimeout(function(){t(),u.backgroundClockMethod(t,n)},n)}},{key:"stopBackgroundTimer",value:function(){this.stop(),this.clearTimeout(this.backgroundTimer)}},{key:"setTimeout",value:function(t,n){this.uniqueId+=1;var u=this.uniqueId;return this.callbacks[u]={callback:t,interval:!1,timeout:n},l.setTimeout(u,n),u}},{key:"clearTimeout",value:function(t){this.callbacks[t]&&delete this.callbacks[t]}},{key:"setInterval",value:function(t,n){this.uniqueId+=1;var u=this.uniqueId;return this.callbacks[u]={callback:t,interval:!0,timeout:n},l.setTimeout(u,n),u}},{key:"clearInterval",value:function(t){this.callbacks[t]&&delete this.callbacks[t]}}]),t})());e.default=s},392,[3,4,5,17]); __d(function(g,r,i,a,m,e,d){!(function(t){'use strict';var s=!1;if(!t.forceJURL)try{var h=new URL('b','http://a');h.pathname='c%20d',s='http://a/c%20d'===h.href}catch(t){}if(!s){var n=Object.create(null);n.ftp=21,n.file=0,n.gopher=70,n.http=80,n.https=443,n.ws=80,n.wss=443;var o=Object.create(null);o['%2e']='.',o['.%2e']='..',o['%2e.']='..',o['%2e%2e']='..';var l=void 0,_=/[a-zA-Z]/,c=/[a-zA-Z0-9\+\-\.]/;I.prototype={toString:function(){return this.href},get href(){if(this._isInvalid)return this._url;var t='';return''==this._username&&null==this._password||(t=this._username+(null!=this._password?':'+this._password:'')+'@'),this.protocol+(this._isRelative?'//'+t+this.host:'')+this.pathname+this._query+this._fragment},set href(t){k.call(this),b.call(this,t)},get protocol(){return this._scheme+':'},set protocol(t){this._isInvalid||b.call(this,t+':','scheme start')},get host(){return this._isInvalid?'':this._port?this._host+':'+this._port:this._host},set host(t){!this._isInvalid&&this._isRelative&&b.call(this,t,'host')},get hostname(){return this._host},set hostname(t){!this._isInvalid&&this._isRelative&&b.call(this,t,'hostname')},get port(){return this._port},set port(t){!this._isInvalid&&this._isRelative&&b.call(this,t,'port')},get pathname(){return this._isInvalid?'':this._isRelative?'/'+this._path.join('/'):this._schemeData},set pathname(t){!this._isInvalid&&this._isRelative&&(this._path=[],b.call(this,t,'relative path start'))},get search(){return this._isInvalid||!this._query||'?'==this._query?'':this._query},set search(t){!this._isInvalid&&this._isRelative&&(this._query='?','?'==t[0]&&(t=t.slice(1)),b.call(this,t,'query'))},get hash(){return this._isInvalid||!this._fragment||'#'==this._fragment?'':this._fragment},set hash(t){this._isInvalid||(this._fragment='#','#'==t[0]&&(t=t.slice(1)),b.call(this,t,'fragment'))},get origin(){var t;if(this._isInvalid||!this._scheme)return'';switch(this._scheme){case'data':case'file':case'javascript':case'mailto':return'null'}return(t=this.host)?this._scheme+'://'+t:''}};var p=t.URL;p&&(I.createObjectURL=function(t){return p.createObjectURL.apply(p,arguments)},I.revokeObjectURL=function(t){p.revokeObjectURL(t)}),t.URL=I}function u(t){return void 0!==n[t]}function f(){k.call(this),this._isInvalid=!0}function v(t){return''==t&&f.call(this),t.toLowerCase()}function y(t){var s=t.charCodeAt(0);return s>32&&s<127&&-1==[34,35,60,62,63,96].indexOf(s)?t:encodeURIComponent(t)}function w(t){var s=t.charCodeAt(0);return s>32&&s<127&&-1==[34,35,60,62,96].indexOf(s)?t:encodeURIComponent(t)}function b(t,s,h){function p(t){L.push(t)}var b=s||'scheme start',k=0,I='',R=!1,q=!1,L=[];t:for(;(t[k-1]!=l||0==k)&&!this._isInvalid;){var U=t[k];switch(b){case'scheme start':if(!U||!_.test(U)){if(s){p('Invalid scheme.');break t}I='',b='no scheme';continue}I+=U.toLowerCase(),b='scheme';break;case'scheme':if(U&&c.test(U))I+=U.toLowerCase();else{if(':'!=U){if(s){if(l==U)break t;p('Code point not allowed in scheme: '+U);break t}I='',k=0,b='no scheme';continue}if(this._scheme=I,I='',s)break t;u(this._scheme)&&(this._isRelative=!0),b='file'==this._scheme?'relative':this._isRelative&&h&&h._scheme==this._scheme?'relative or authority':this._isRelative?'authority first slash':'scheme data'}break;case'scheme data':'?'==U?(this._query='?',b='query'):'#'==U?(this._fragment='#',b='fragment'):l!=U&&'\t'!=U&&'\n'!=U&&'\r'!=U&&(this._schemeData+=y(U));break;case'no scheme':if(h&&u(h._scheme)){b='relative';continue}p('Missing scheme.'),f.call(this);break;case'relative or authority':if('/'!=U||'/'!=t[k+1]){p('Expected /, got: '+U),b='relative';continue}b='authority ignore slashes';break;case'relative':if(this._isRelative=!0,'file'!=this._scheme&&(this._scheme=h._scheme),l==U){this._host=h._host,this._port=h._port,this._path=h._path.slice(),this._query=h._query,this._username=h._username,this._password=h._password;break t}if('/'==U||'\\'==U)'\\'==U&&p('\\ is an invalid code point.'),b='relative slash';else if('?'==U)this._host=h._host,this._port=h._port,this._path=h._path.slice(),this._query='?',this._username=h._username,this._password=h._password,b='query';else{if('#'!=U){var C=t[k+1],j=t[k+2];('file'!=this._scheme||!_.test(U)||':'!=C&&'|'!=C||l!=j&&'/'!=j&&'\\'!=j&&'?'!=j&&'#'!=j)&&(this._host=h._host,this._port=h._port,this._username=h._username,this._password=h._password,this._path=h._path.slice(),this._path.pop()),b='relative path';continue}this._host=h._host,this._port=h._port,this._path=h._path.slice(),this._query=h._query,this._fragment='#',this._username=h._username,this._password=h._password,b='fragment'}break;case'relative slash':if('/'!=U&&'\\'!=U){'file'!=this._scheme&&(this._host=h._host,this._port=h._port,this._username=h._username,this._password=h._password),b='relative path';continue}'\\'==U&&p('\\ is an invalid code point.'),b='file'==this._scheme?'file host':'authority ignore slashes';break;case'authority first slash':if('/'!=U){p("Expected '/', got: "+U),b='authority ignore slashes';continue}b='authority second slash';break;case'authority second slash':if(b='authority ignore slashes','/'!=U){p("Expected '/', got: "+U);continue}break;case'authority ignore slashes':if('/'!=U&&'\\'!=U){b='authority';continue}p('Expected authority, got: '+U);break;case'authority':if('@'==U){R&&(p('@ already seen.'),I+='%40'),R=!0;for(var O=0;O=c)){var s=t.slice(0,n).replace(/^\t+/,W),p=/(^|\n).*$/.exec(s)[0],v=t.slice(n);return{line:f,column:o,snippet:""+p+/.*(\n|$)/.exec(v)[0]+"\n"+Q(' ',p.length)+"^"}}o-=c}}var ee=/[a-zA-Z0-9:_-]/,te=/[\s\t\r\n]/,re=/['"]/;function ne(t){var n=t.length,u=null,l=function(){for(;U+1'!==t[U]&&s('Expected >'),D||(u=b,o=b.children,c.push(b)),p}function h(){var n=t.indexOf('--\x3e',U);return~n||s('expected --\x3e'),U=n+2,p}function x(){var n=t.indexOf(']]>',U);return~n||s('expected ]]>'),U=n+2,p}function y(){var n=S();(n||s('Expected tag name'),n!==u.tag&&s("Expected closing tag to match opening tag <"+u.tag+">"),'>'!==t[U]&&s('Expected >'),c.pop(),u=c[c.length-1])&&(o=u.children);return p}function S(){for(var u,l='';U'===l||'/'===l)return u;u+=l,U+=1}while(U0&&void 0!==arguments[0]?arguments[0]:65;return{alignItems:'center',borderRadius:t/2,height:t,justifyContent:'center',overflow:'hidden',width:t}},avatarContent:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:65;return{height:t,width:t}},initialsContainer:{alignItems:'center',alignSelf:'stretch',flex:1,justifyContent:'center'},initialsText:function(){return{color:'rgba(255, 255, 255, 0.6)',fontSize:.45*(arguments.length>0&&void 0!==arguments[0]?arguments[0]:65),fontWeight:'100'}},staticAvatar:{backgroundColor:r(d[0]).ColorPalette.lightGrey,opacity:.4}};e.default=t},534,[406]); -__d(function(g,r,i,a,m,e,d){m.exports=r(d[0]).registerAsset({__packager_asset:!0,httpServerLocation:"/assets/images",width:200,height:200,scales:[1],hash:"d424259cf27ba5c430d387e32c8cca56",name:"avatar",type:"png"})},535,[178]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]),o=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e._mapStateToProps=S,e.default=e.DEFAULT_SIZE=void 0;var l=o(r(d[2])),n=o(r(d[3])),s=o(r(d[4])),u=o(r(d[5])),v=o(r(d[6])),c=o(r(d[7])),f=t(r(d[8])),p=r(d[9]),_=r(d[10]),A=r(d[11]),h=r(d[12]),E=r(d[13]);e.DEFAULT_SIZE=65;var L=(function(t){function o(t){var n;return(0,l.default)(this,o),(n=(0,s.default)(this,(0,u.default)(o).call(this,t))).state={avatarFailed:!1},n._onAvatarLoadError=n._onAvatarLoadError.bind((0,c.default)((0,c.default)(n))),n}return(0,v.default)(o,t),(0,n.default)(o,[{key:"componentDidUpdate",value:function(t){t.url!==this.props.url&&this.setState({avatarFailed:!1})}},{key:"render",value:function(){var t=this.props,o=t._initialsBase,l=t._loadableAvatarUrl,n=t.className,s=t.colorBase,u=t.id,v=t.size,c=t.url,p={className:n,color:void 0,id:u,initials:void 0,onAvatarLoadError:void 0,size:v,url:void 0},_=!this.state.avatarFailed&&c||l;_&&(p.onAvatarLoadError=this._onAvatarLoadError,p.url=_);var A=(0,h.getInitials)(o);return A&&(p.color=(0,h.getAvatarColor)(s||o),p.initials=A),f.default.createElement(E.StatelessAvatar,p)}},{key:"_onAvatarLoadError",value:function(){this.setState({avatarFailed:!0})}}]),o})(f.PureComponent);function S(t,o){var l,n=o.colorBase,s=o.displayName,u=o.participantId,v=u&&(0,_.getParticipantById)(t,u),c=null!=(l=null==v?void 0:v.name)?l:s,f=t['features/video-layout'].screenShares||[],A=null==v?void 0:v.loadableAvatarUrl;return u&&f.includes(u)&&(A=p.IconShareDesktop),{_initialsBase:c,_loadableAvatarUrl:A,colorBase:!n&&v?v.id:n}}var y=(0,A.connect)(S)(L);e.default=y},536,[2,3,4,5,6,9,10,8,13,403,537,539,934,400]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})});var u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}})});var o=r(d[3]);Object.keys(o).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return o[t]}})});var c=r(d[4]);Object.keys(c).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return c[t]}})}),r(d[5]),r(d[6])},537,[538,747,911,909,748,927,933]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.dominantSpeakerChanged=function(t,n){return{type:p.DOMINANT_SPEAKER_CHANGED,participant:{conference:n,id:t}}},e.kickParticipant=function(t){return{type:p.KICK_PARTICIPANT,id:t}},e.localParticipantConnectionStatusChanged=function(t){return function(n,c){var o=(0,u.getLocalParticipant)(c);if(o)return n(f(o.id,t))}},e.localParticipantIdChanged=function(t){return function(n,c){var o=(0,u.getLocalParticipant)(c);if(o)return n({type:p.PARTICIPANT_ID_CHANGED,conference:void 0,newValue:t,oldValue:o.id})}},e.localParticipantJoined=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return l((0,c.set)(t,'local',!0))},e.localParticipantLeft=function(){return function(t,n){var c=(0,u.getLocalParticipant)(n);if(c)return t(P(c.id,void 0))}},e.localParticipantRoleChanged=function(t){return function(n,c){var o=(0,u.getLocalParticipant)(c);if(o)return n(I(o.id,t))}},e.muteRemoteParticipant=function(t){return{type:p.MUTE_REMOTE_PARTICIPANT,id:t}},e.participantConnectionStatusChanged=f,e.participantJoined=l,e.hiddenParticipantJoined=function(t,n){return{type:p.HIDDEN_PARTICIPANT_JOINED,id:t,displayName:n}},e.hiddenParticipantLeft=function(t){return{type:p.HIDDEN_PARTICIPANT_LEFT,id:t}},e.participantLeft=P,e.participantPresenceChanged=function(t,n){return A({id:t,presence:n})},e.participantRoleChanged=I,e.participantUpdated=A,e.participantMutedUs=function(t){return function(n,c){t&&n((0,o.showNotification)({descriptionKey:'notify.mutedRemotelyDescription',titleKey:'notify.mutedRemotelyTitle',titleArguments:{participantDisplayName:(0,u.getParticipantDisplayName)(c,t.getId())}}))}},e.participantKicked=function(t,n){return function(c,f){c({type:p.PARTICIPANT_KICKED,kicked:n.getId(),kicker:t.getId()}),c((0,o.showNotification)({titleArguments:{kicked:(0,u.getParticipantDisplayName)(f,n.getId()),kicker:(0,u.getParticipantDisplayName)(f,t.getId())},titleKey:'notify.kickParticipant'},2*o.NOTIFICATION_TIMEOUT))}},e.pinParticipant=function(t){return{type:p.PIN_PARTICIPANT,participant:{id:t}}},e.setLoadableAvatarUrl=function(t,n){return{type:p.SET_LOADABLE_AVATAR_URL,participant:{id:t,loadableAvatarUrl:n}}};var n=t(r(d[1])),c=r(d[2]),o=r(d[3]),p=r(d[4]),u=r(d[5]);function f(t,n){return{type:p.PARTICIPANT_UPDATED,participant:{connectionStatus:n,id:t}}}function l(t){if(t.local)return{type:p.PARTICIPANT_JOINED,participant:t};var n=t.conference;if(!n)throw Error('A remote participant must be associated with a JitsiConference!');return function(c,o){var u=o()['features/base/conference'];if(n===u.conference||n===u.joining)return c({type:p.PARTICIPANT_JOINED,participant:t})}}function P(t,n){return{type:p.PARTICIPANT_LEFT,participant:{conference:n,id:t}}}function I(t,n){return A({id:t,role:n})}function A(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},c=(0,n.default)({},t);return t.name&&(c.name=(0,u.getNormalizedDisplayName)(t.name)),{type:p.PARTICIPANT_UPDATED,participant:c}}},538,[3,54,539,592,747,748]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0});var n={MiddlewareRegistry:!0,ReducerRegistry:!0,StateListenerRegistry:!0};Object.defineProperty(e,"MiddlewareRegistry",{enumerable:!0,get:function(){return c.default}}),Object.defineProperty(e,"ReducerRegistry",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(e,"StateListenerRegistry",{enumerable:!0,get:function(){return f.default}});var u=r(d[1]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(n,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}}))});var c=t(r(d[2])),o=t(r(d[3])),f=t(r(d[4]))},539,[3,540,577,578,579]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.assign=function(t,n){var u=t;for(var f in n)u=c(u,f,n[f],u===t);return u},e.connect=function(t,n){return(0,o.connect)(t,n)},e.equals=function(t,n){return f.default.isEqual(t,n)},e.set=function(t,n,u){return c(t,n,u,!0)},e.toState=function(t){if(t){if('function'==typeof t)return t();var n=t.getState;if('function'==typeof n)return n()}return t};var n=t(r(d[1])),u=t(r(d[2])),f=t(r(d[3])),o=r(d[4]);function c(t,f,o,c){if(void 0===o&&Object.prototype.hasOwnProperty.call(t,f)){var l=c?(0,u.default)({},t):t;if(delete l[f])return l}if(t[f]!==o){if(c)return(0,u.default)({},t,(0,n.default)({},f,o));t[f]=o}return t}},540,[3,55,54,541,542]); -__d(function(n,t,r,e,u,i,o){(function(){var t,r=200,e='Unsupported core-js use. Try https://npms.io/search?q=ponyfill.',o='Expected a function',f='__lodash_hash_undefined__',a=500,c='__lodash_placeholder__',l=1,s=2,h=4,p=1,v=2,_=1,g=2,d=4,y=8,x=16,b=32,w=64,m=128,j=256,A=512,k=30,z='...',O=800,I=16,R=1,E=2,S=1/0,L=9007199254740991,W=1.7976931348623157e308,C=NaN,T=4294967295,U=4294967294,B=2147483647,$=[['ary',m],['bind',_],['bindKey',g],['curry',y],['curryRight',x],['flip',A],['partial',b],['partialRight',w],['rearg',j]],D='[object Arguments]',M='[object Array]',F='[object AsyncFunction]',N='[object Boolean]',P='[object Date]',Z='[object DOMException]',q='[object Error]',K='[object Function]',V='[object GeneratorFunction]',G='[object Map]',H='[object Number]',J='[object Null]',Y='[object Object]',Q='[object Proxy]',X='[object RegExp]',nn='[object Set]',tn='[object String]',rn='[object Symbol]',en='[object Undefined]',un='[object WeakMap]',on='[object WeakSet]',fn='[object ArrayBuffer]',an='[object DataView]',cn='[object Float32Array]',ln='[object Float64Array]',sn='[object Int8Array]',hn='[object Int16Array]',pn='[object Int32Array]',vn='[object Uint8Array]',_n='[object Uint8ClampedArray]',gn='[object Uint16Array]',dn='[object Uint32Array]',yn=/\b__p \+= '';/g,xn=/\b(__p \+=) '' \+/g,bn=/(__e\(.*?\)|\b__t\)) \+\n'';/g,wn=/&(?:amp|lt|gt|quot|#39);/g,mn=/[&<>"']/g,jn=RegExp(wn.source),An=RegExp(mn.source),kn=/<%-([\s\S]+?)%>/g,zn=/<%([\s\S]+?)%>/g,On=/<%=([\s\S]+?)%>/g,In=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Rn=/^\w*$/,En=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Sn=/[\\^$.*+?()[\]{}|]/g,Ln=RegExp(Sn.source),Wn=/^\s+|\s+$/g,Cn=/^\s+/,Tn=/\s+$/,Un=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Bn=/\{\n\/\* \[wrapped with (.+)\] \*/,$n=/,? & /,Dn=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Mn=/\\(\\)?/g,Fn=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Nn=/\w*$/,Pn=/^[-+]0x[0-9a-f]+$/i,Zn=/^0b[01]+$/i,qn=/^\[object .+?Constructor\]$/,Kn=/^0o[0-7]+$/i,Vn=/^(?:0|[1-9]\d*)$/,Gn=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Hn=/($^)/,Jn=/['\n\r\u2028\u2029\\]/g,Yn="[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]",Qn="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",Xn="(?:\\ud83c[\\udde6-\\uddff]){2}",nt="[\\ud800-\\udbff][\\udc00-\\udfff]",tt="[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?"+("(?:\\u200d(?:"+["[^\\ud800-\\udfff]",Xn,nt].join('|')+")[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?)*"),rt='(?:'+["[\\u2700-\\u27bf]",Xn,nt].join('|')+')'+tt,et='(?:'+["[^\\ud800-\\udfff][\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]?",Qn,Xn,nt,"[\\ud800-\\udfff]"].join('|')+')',ut=RegExp("['\u2019]",'g'),it=RegExp(Qn,'g'),ot=RegExp("\\ud83c[\\udffb-\\udfff](?=\\ud83c[\\udffb-\\udfff])|"+et+tt,'g'),ft=RegExp(["[A-Z\\xc0-\\xd6\\xd8-\\xde]?[a-z\\xdf-\\xf6\\xf8-\\xff]+(?:['\u2019](?:d|ll|m|re|s|t|ve))?(?="+[Yn,"[A-Z\\xc0-\\xd6\\xd8-\\xde]",'$'].join('|')+')',"(?:[A-Z\\xc0-\\xd6\\xd8-\\xde]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?(?="+[Yn,"[A-Z\\xc0-\\xd6\\xd8-\\xde](?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])",'$'].join('|')+')',"[A-Z\\xc0-\\xd6\\xd8-\\xde]?(?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['\u2019](?:d|ll|m|re|s|t|ve))?","[A-Z\\xc0-\\xd6\\xd8-\\xde]+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?",'\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])','\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])','\\d+',rt].join('|'),'g'),at=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]"),ct=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,lt=['Array','Buffer','DataView','Date','Error','Float32Array','Float64Array','Function','Int8Array','Int16Array','Int32Array','Map','Math','Object','Promise','RegExp','Set','String','Symbol','TypeError','Uint8Array','Uint8ClampedArray','Uint16Array','Uint32Array','WeakMap','_','clearTimeout','isFinite','parseInt','setTimeout'],st=-1,ht={};ht[cn]=ht[ln]=ht[sn]=ht[hn]=ht[pn]=ht[vn]=ht[_n]=ht[gn]=ht[dn]=!0,ht[D]=ht[M]=ht[fn]=ht[N]=ht[an]=ht[P]=ht[q]=ht[K]=ht[G]=ht[H]=ht[Y]=ht[X]=ht[nn]=ht[tn]=ht[un]=!1;var pt={};pt[D]=pt[M]=pt[fn]=pt[an]=pt[N]=pt[P]=pt[cn]=pt[ln]=pt[sn]=pt[hn]=pt[pn]=pt[G]=pt[H]=pt[Y]=pt[X]=pt[nn]=pt[tn]=pt[rn]=pt[vn]=pt[_n]=pt[gn]=pt[dn]=!0,pt[q]=pt[K]=pt[un]=!1;var vt={'\\':'\\',"'":"'",'\n':'n','\r':'r',"\u2028":'u2028',"\u2029":'u2029'},_t=parseFloat,gt=parseInt,dt='object'==typeof n&&n&&n.Object===Object&&n,yt='object'==typeof self&&self&&self.Object===Object&&self,xt=dt||yt||Function('return this')(),bt='object'==typeof i&&i&&!i.nodeType&&i,wt=bt&&'object'==typeof u&&u&&!u.nodeType&&u,mt=wt&&wt.exports===bt,jt=mt&&dt.process,At=(function(){try{var n=wt&&wt.require&&wt.require('util').types;return n||jt&&jt.binding&&jt.binding('util')}catch(n){}})(),kt=At&&At.isArrayBuffer,zt=At&&At.isDate,Ot=At&&At.isMap,It=At&&At.isRegExp,Rt=At&&At.isSet,Et=At&&At.isTypedArray;function St(n,t,r){switch(r.length){case 0:return n.call(t);case 1:return n.call(t,r[0]);case 2:return n.call(t,r[0],r[1]);case 3:return n.call(t,r[0],r[1],r[2])}return n.apply(t,r)}function Lt(n,t,r,e){for(var u=-1,i=null==n?0:n.length;++u-1}function $t(n,t,r){for(var e=-1,u=null==n?0:n.length;++e-1;);return r}function lr(n,t){for(var r=n.length;r--&&Ht(t,n[r],0)>-1;);return r}function sr(n,t){for(var r=n.length,e=0;r--;)n[r]===t&&++e;return e}var hr=nr({'\xc0':'A','\xc1':'A','\xc2':'A','\xc3':'A','\xc4':'A','\xc5':'A','\xe0':'a','\xe1':'a','\xe2':'a','\xe3':'a','\xe4':'a','\xe5':'a','\xc7':'C','\xe7':'c','\xd0':'D','\xf0':'d','\xc8':'E','\xc9':'E','\xca':'E','\xcb':'E','\xe8':'e','\xe9':'e','\xea':'e','\xeb':'e','\xcc':'I','\xcd':'I','\xce':'I','\xcf':'I','\xec':'i','\xed':'i','\xee':'i','\xef':'i','\xd1':'N','\xf1':'n','\xd2':'O','\xd3':'O','\xd4':'O','\xd5':'O','\xd6':'O','\xd8':'O','\xf2':'o','\xf3':'o','\xf4':'o','\xf5':'o','\xf6':'o','\xf8':'o','\xd9':'U','\xda':'U','\xdb':'U','\xdc':'U','\xf9':'u','\xfa':'u','\xfb':'u','\xfc':'u','\xdd':'Y','\xfd':'y','\xff':'y','\xc6':'Ae','\xe6':'ae','\xde':'Th','\xfe':'th','\xdf':'ss',"\u0100":'A',"\u0102":'A',"\u0104":'A',"\u0101":'a',"\u0103":'a',"\u0105":'a',"\u0106":'C',"\u0108":'C',"\u010a":'C',"\u010c":'C',"\u0107":'c',"\u0109":'c',"\u010b":'c',"\u010d":'c',"\u010e":'D',"\u0110":'D',"\u010f":'d',"\u0111":'d',"\u0112":'E',"\u0114":'E',"\u0116":'E',"\u0118":'E',"\u011a":'E',"\u0113":'e',"\u0115":'e',"\u0117":'e',"\u0119":'e',"\u011b":'e',"\u011c":'G',"\u011e":'G',"\u0120":'G',"\u0122":'G',"\u011d":'g',"\u011f":'g',"\u0121":'g',"\u0123":'g',"\u0124":'H',"\u0126":'H',"\u0125":'h',"\u0127":'h',"\u0128":'I',"\u012a":'I',"\u012c":'I',"\u012e":'I',"\u0130":'I',"\u0129":'i',"\u012b":'i',"\u012d":'i',"\u012f":'i',"\u0131":'i',"\u0134":'J',"\u0135":'j',"\u0136":'K',"\u0137":'k',"\u0138":'k',"\u0139":'L',"\u013b":'L',"\u013d":'L',"\u013f":'L',"\u0141":'L',"\u013a":'l',"\u013c":'l',"\u013e":'l',"\u0140":'l',"\u0142":'l',"\u0143":'N',"\u0145":'N',"\u0147":'N',"\u014a":'N',"\u0144":'n',"\u0146":'n',"\u0148":'n',"\u014b":'n',"\u014c":'O',"\u014e":'O',"\u0150":'O',"\u014d":'o',"\u014f":'o',"\u0151":'o',"\u0154":'R',"\u0156":'R',"\u0158":'R',"\u0155":'r',"\u0157":'r',"\u0159":'r',"\u015a":'S',"\u015c":'S',"\u015e":'S',"\u0160":'S',"\u015b":'s',"\u015d":'s',"\u015f":'s',"\u0161":'s',"\u0162":'T',"\u0164":'T',"\u0166":'T',"\u0163":'t',"\u0165":'t',"\u0167":'t',"\u0168":'U',"\u016a":'U',"\u016c":'U',"\u016e":'U',"\u0170":'U',"\u0172":'U',"\u0169":'u',"\u016b":'u',"\u016d":'u',"\u016f":'u',"\u0171":'u',"\u0173":'u',"\u0174":'W',"\u0175":'w',"\u0176":'Y',"\u0177":'y',"\u0178":'Y',"\u0179":'Z',"\u017b":'Z',"\u017d":'Z',"\u017a":'z',"\u017c":'z',"\u017e":'z',"\u0132":'IJ',"\u0133":'ij',"\u0152":'Oe',"\u0153":'oe',"\u0149":"'n","\u017f":'s'}),pr=nr({'&':'&','<':'<','>':'>','"':'"',"'":'''});function vr(n){return'\\'+vt[n]}function _r(n,r){return null==n?t:n[r]}function gr(n){return at.test(n)}function dr(n){return ct.test(n)}function yr(n){for(var t,r=[];!(t=n.next()).done;)r.push(t.value);return r}function xr(n){var t=-1,r=Array(n.size);return n.forEach(function(n,e){r[++t]=[e,n]}),r}function br(n,t){return function(r){return n(t(r))}}function wr(n,t){for(var r=-1,e=n.length,u=0,i=[];++r','"':'"',''':"'"});function Rr(n){for(var t=ot.lastIndex=0;ot.test(n);)++t;return t}function Er(n){return n.match(ot)||[]}function Sr(n){return n.match(ft)||[]}var Lr=(function n(u){var i,Dn=(u=null==u?xt:Lr.defaults(xt.Object(),u,Lr.pick(xt,lt))).Array,Yn=u.Date,Qn=u.Error,Xn=u.Function,nt=u.Math,tt=u.Object,rt=u.RegExp,et=u.String,ot=u.TypeError,ft=Dn.prototype,at=Xn.prototype,ct=tt.prototype,vt=u['__core-js_shared__'],dt=at.toString,yt=ct.hasOwnProperty,bt=0,wt=(i=/[^.]+$/.exec(vt&&vt.keys&&vt.keys.IE_PROTO||''))?'Symbol(src)_1.'+i:'',jt=ct.toString,At=dt.call(tt),Zt=xt._,qt=rt('^'+dt.call(yt).replace(Sn,'\\$&').replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,'$1.*?')+'$'),nr=mt?u.Buffer:t,Ar=u.Symbol,Rr=u.Uint8Array,Er=nr?nr.allocUnsafe:t,Wr=br(tt.getPrototypeOf,tt),Cr=tt.create,Tr=ct.propertyIsEnumerable,Ur=ft.splice,Br=Ar?"function"==typeof Ar?Ar.isConcatSpreadable:"@@isConcatSpreadable":t,$r=Ar?"function"==typeof Ar?Ar.iterator:"@@iterator":t,Dr=Ar?"function"==typeof Ar?Ar.toStringTag:"@@toStringTag":t,Mr=(function(){try{var n=co(tt,'defineProperty');return n({},'',{}),n}catch(n){}})(),Fr=u.clearTimeout!==xt.clearTimeout&&u.clearTimeout,Nr=Yn&&Yn.now!==xt.Date.now&&Yn.now,Pr=u.setTimeout!==xt.setTimeout&&u.setTimeout,Zr=nt.ceil,qr=nt.floor,Kr=tt.getOwnPropertySymbols,Vr=nr?nr.isBuffer:t,Gr=u.isFinite,Hr=ft.join,Jr=br(tt.keys,tt),Yr=nt.max,Qr=nt.min,Xr=Yn.now,ne=u.parseInt,te=nt.random,re=ft.reverse,ee=co(u,'DataView'),ue=co(u,'Map'),ie=co(u,'Promise'),oe=co(u,'Set'),fe=co(u,'WeakMap'),ae=co(tt,'create'),ce=fe&&new fe,le={},se=Ko(ee),he=Ko(ue),pe=Ko(ie),ve=Ko(oe),_e=Ko(fe),ge=Ar?"function"==typeof Ar?Ar.prototype:"@@prototype":t,de=ge?ge.valueOf:t,ye=ge?ge.toString:t;function xe(n){if(sa(n)&&!na(n)&&!(n instanceof je)){if(n instanceof me)return n;if(yt.call(n,'__wrapped__'))return Go(n)}return new me(n)}var be=(function(){function n(){}return function(r){if(!la(r))return{};if(Cr)return Cr(r);n.prototype=r;var e=new n;return n.prototype=t,e}})();function we(){}function me(n,r){this.__wrapped__=n,this.__actions__=[],this.__chain__=!!r,this.__index__=0,this.__values__=t}function je(n){this.__wrapped__=n,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=T,this.__views__=[]}function Ae(n){var t=-1,r=null==n?0:n.length;for(this.clear();++t=r?n:r)),n}function Ne(n,r,e,u,i,o){var f,a=r&l,c=r&s,p=r&h;if(e&&(f=i?e(n,u,i,o):e(n)),f!==t)return f;if(!la(n))return n;var v=na(n);if(v){if(f=yo(n),!a)return bi(n,f)}else{var _=po(n),g=_==K||_==V;if(ua(n))return hi(n,a);if(_==Y||_==D||g&&!i){if(f=c||g?{}:xo(n),!a)return c?ji(n,$e(f,n)):mi(n,Be(f,n))}else{if(!pt[_])return i?n:{};f=bo(n,_,a)}}o||(o=new Ie);var d=o.get(n);if(d)return d;o.set(n,f),ga(n)?n.forEach(function(t){f.add(Ne(t,r,e,t,n,o))}):ha(n)&&n.forEach(function(t,u){f.set(u,Ne(t,r,e,u,n,o))});var y=v?t:(p?c?ro:to:c?Na:Fa)(n);return Wt(y||n,function(t,u){y&&(t=n[u=t]),Ce(f,u,Ne(t,r,e,u,n,o))}),f}function Pe(n){var t=Fa(n);return function(r){return Ze(r,n,t)}}function Ze(n,r,e){var u=e.length;if(null==n)return!u;for(n=tt(n);u--;){var i=e[u],o=r[i],f=n[i];if(f===t&&!(i in n)||!o(f))return!1}return!0}function qe(n,r,e){if('function'!=typeof n)throw new ot(o);return Do(function(){n.apply(t,e)},r)}function Ke(n,t,e,u){var i=-1,o=Bt,f=!0,a=n.length,c=[],l=t.length;if(!a)return c;e&&(t=Dt(t,or(e))),u?(o=$t,f=!1):t.length>=r&&(o=ar,f=!1,t=new Oe(t));n:for(;++i-1},ke.prototype.set=function(n,t){var r=this.__data__,e=Te(r,n);return e<0?(++this.size,r.push([n,t])):r[e][1]=t,this},ze.prototype.clear=function(){this.size=0,this.__data__={hash:new Ae,map:new(ue||ke),string:new Ae}},ze.prototype.delete=function(n){var t=fo(this,n).delete(n);return this.size-=t?1:0,t},ze.prototype.get=function(n){return fo(this,n).get(n)},ze.prototype.has=function(n){return fo(this,n).has(n)},ze.prototype.set=function(n,t){var r=fo(this,n),e=r.size;return r.set(n,t),this.size+=r.size==e?0:1,this},Oe.prototype.add=Oe.prototype.push=function(n){return this.__data__.set(n,f),this},Oe.prototype.has=function(n){return this.__data__.has(n)},Ie.prototype.clear=function(){this.__data__=new ke,this.size=0},Ie.prototype.delete=function(n){var t=this.__data__,r=t.delete(n);return this.size=t.size,r},Ie.prototype.get=function(n){return this.__data__.get(n)},Ie.prototype.has=function(n){return this.__data__.has(n)},Ie.prototype.set=function(n,t){var r=this.__data__;if(r instanceof ke){var e=r.__data__;if(!ue||e.length<199)return e.push([n,t]),this.size=++r.size,this;r=this.__data__=new ze(e)}return r.set(n,t),this.size=r.size,this};var Ve=zi(ru),Ge=zi(eu,!0);function He(n,t){var r=!0;return Ve(n,function(n,e,u){return r=!!t(n,e,u)}),r}function Je(n,r,e){for(var u=-1,i=n.length;++ui?0:i+e),(u=u===t||u>i?i:Aa(u))<0&&(u+=i),u=e>u?0:ka(u);e0&&r(f)?t>1?Xe(f,t-1,r,e,u):Mt(u,f):e||(u[u.length]=f)}return u}var nu=Oi(),tu=Oi(!0);function ru(n,t){return n&&nu(n,t,Fa)}function eu(n,t){return n&&tu(n,t,Fa)}function uu(n,t){return Ut(t,function(t){return fa(n[t])})}function iu(n,r){for(var e=0,u=(r=ai(r,n)).length;null!=n&&et}function cu(n,t){return null!=n&&yt.call(n,t)}function lu(n,t){return null!=n&&t in tt(n)}function su(n,t,r){return n>=Qr(t,r)&&n=120&&s.length>=120)?new Oe(f&&s):t}s=n[0];var h=-1,p=a[0];n:for(;++h-1;)f!==n&&Ur.call(f,a,1),Ur.call(n,a,1);return n}function Tu(n,t){for(var r=n?t.length:0,e=r-1;r--;){var u=t[r];if(r==e||u!==i){var i=u;jo(u)?Ur.call(n,u,1):ni(n,u)}}return n}function Uu(n,t){return n+qr(te()*(t-n+1))}function Bu(n,t,r,e){for(var u=-1,i=Yr(Zr((t-n)/(r||1)),0),o=Dn(i);i--;)o[e?i:++u]=n,n+=r;return o}function $u(n,t){var r='';if(!n||t<1||t>L)return r;do{t%2&&(r+=n),(t=qr(t/2))&&(n+=n)}while(t);return r}function Du(n,t){return Mo(Co(n,t,pc),n+'')}function Mu(n){return Ee(Ja(n))}function Fu(n,t){var r=Ja(n);return Po(r,Fe(t,0,r.length))}function Nu(n,r,e,u){if(!la(n))return n;for(var i=-1,o=(r=ai(r,n)).length,f=o-1,a=n;null!=a&&++iu?0:u+t),(r=r>u?u:r)<0&&(r+=u),u=t>r?0:r-t>>>0,t>>>=0;for(var i=Dn(u);++e>>1,o=n[i];null!==o&&!ya(o)&&(r?o<=t:o=r){var l=t?null:qi(n);if(l)return mr(l);f=!1,i=ar,c=new Oe}else c=t?[]:a;n:for(;++u=u?n:Ku(n,r,e)}var si=Fr||function(n){return xt.clearTimeout(n)};function hi(n,t){if(t)return n.slice();var r=n.length,e=Er?Er(r):new n.constructor(r);return n.copy(e),e}function pi(n){var t=new n.constructor(n.byteLength);return new Rr(t).set(new Rr(n)),t}function vi(n,t){var r=t?pi(n.buffer):n.buffer;return new n.constructor(r,n.byteOffset,n.byteLength)}function _i(n,t){var r=t?pi(n.buffer):n.buffer;return new n.constructor(r,n.byteOffset,n.length)}function gi(n,r){if(n!==r){var e=n!==t,u=null===n,i=n==n,o=ya(n),f=r!==t,a=null===r,c=r==r,l=ya(r);if(!a&&!l&&!o&&n>r||o&&f&&c&&!a&&!l||u&&f&&c||!e&&c||!i)return 1;if(!u&&!o&&!l&&n=f?a:a*('desc'==r[e]?-1:1)}return n.index-t.index}function yi(n,t,r,e){for(var u=-1,i=n.length,o=r.length,f=-1,a=t.length,c=Yr(i-o,0),l=Dn(a+c),s=!e;++f1?e[i-1]:t,f=i>2?e[2]:t;for(o=n.length>3&&'function'==typeof o?(i--,o):t,f&&Ao(e[0],e[1],f)&&(o=i<3?t:o,i=1),r=tt(r);++u-1?i[o?r[f]:f]:t}}function Ci(n){return no(function(r){var e=r.length,u=e,i=me.prototype.thru;for(n&&r.reverse();u--;){var f=r[u];if('function'!=typeof f)throw new ot(o);if(i&&!a&&'wrapper'==uo(f))var a=new me([],!0)}for(u=a?u:e;++u1&&g.reverse(),s&&c<_&&(g.length=c),this&&this!==xt&&this instanceof t&&(A=y||Si(A)),A.apply(j,g)}}function Ui(n,t){return function(r,e){return pu(r,n,t(e),{})}}function Bi(n,r){return function(e,u){var i;if(e===t&&u===t)return r;if(e!==t&&(i=e),u!==t){if(i===t)return u;'string'==typeof e||'string'==typeof u?(e=Qu(e),u=Qu(u)):(e=Yu(e),u=Yu(u)),i=n(e,u)}return i}}function $i(n){return no(function(t){return t=Dt(t,or(oo())),Du(function(r){var e=this;return n(t,function(n){return St(n,e,r)})})})}function Di(n,r){var e=(r=r===t?' ':Qu(r)).length;if(e<2)return e?$u(r,n):r;var u=$u(r,Zr(n/zr(r)));return gr(r)?li(Or(u),0,n).join(''):u.slice(0,n)}function Mi(n,t,r,e){var u=t&_,i=Si(n);return function t(){for(var o=-1,f=arguments.length,a=-1,c=e.length,l=Dn(c+f),s=this&&this!==xt&&this instanceof t?i:n;++aa))return!1;var l=o.get(n);if(l&&o.get(r))return l==r;var s=-1,h=!0,_=e&v?new Oe:t;for(o.set(n,r),o.set(r,n);++s1?'& ':'')+t[e],t=t.join(r>2?', ':' '),n.replace(Un,'{\n/* [wrapped with '+t+'] */\n')}function mo(n){return na(n)||Xf(n)||!!(Br&&n&&n[Br])}function jo(n,t){var r=typeof n;return!!(t=null==t?L:t)&&('number'==r||'symbol'!=r&&Vn.test(n))&&n>-1&&n%1==0&&n0){if(++r>=O)return arguments[0]}else r=0;return n.apply(t,arguments)}}function Po(n,r){var e=-1,u=n.length,i=u-1;for(r=r===t?u:r;++e1?n[r-1]:t;return _f(n,e='function'==typeof e?(n.pop(),e):t)});function mf(n){var t=xe(n);return t.__chain__=!0,t}function jf(n,t){return t(n)}var Af=no(function(n){var r=n.length,e=r?n[0]:0,u=this.__wrapped__,i=function(t){return Me(t,n)};return!(r>1||this.__actions__.length)&&u instanceof je&&jo(e)?((u=u.slice(e,+e+(r?1:0))).__actions__.push({func:jf,args:[i],thisArg:t}),new me(u,this.__chain__).thru(function(n){return r&&!n.length&&n.push(t),n})):this.thru(i)});var kf=Ai(function(n,t,r){yt.call(n,r)?++n[r]:De(n,r,1)});var zf=Wi(Qo),Of=Wi(Xo);function If(n,t){return(na(n)?Wt:Ve)(n,oo(t,3))}function Rf(n,t){return(na(n)?Ct:Ge)(n,oo(t,3))}var Ef=Ai(function(n,t,r){yt.call(n,r)?n[r].push(t):De(n,r,[t])});var Sf=Du(function(n,t,r){var e=-1,u='function'==typeof t,i=ra(n)?Dn(n.length):[];return Ve(n,function(n){i[++e]=u?St(t,n,r):vu(n,t,r)}),i}),Lf=Ai(function(n,t,r){De(n,r,t)});function Wf(n,t){return(na(n)?Dt:Au)(n,oo(t,3))}var Cf=Ai(function(n,t,r){n[r?0:1].push(t)},function(){return[[],[]]});var Tf=Du(function(n,t){if(null==n)return[];var r=t.length;return r>1&&Ao(n,t[0],t[1])?t=[]:r>2&&Ao(t[0],t[1],t[2])&&(t=[t[0]]),Eu(n,Xe(t,1),[])}),Uf=Nr||function(){return xt.Date.now()};function Bf(n,r,e){return r=e?t:r,r=n&&null==r?n.length:r,Vi(n,m,t,t,t,t,r)}function $f(n,r){var e;if('function'!=typeof r)throw new ot(o);return n=Aa(n),function(){return--n>0&&(e=r.apply(this,arguments)),n<=1&&(r=t),e}}var Df=Du(function(n,t,r){var e=_;if(r.length){var u=wr(r,io(Df));e|=b}return Vi(n,e,t,r,u)}),Mf=Du(function(n,t,r){var e=3;if(r.length){var u=wr(r,io(Mf));e|=b}return Vi(t,e,n,r,u)});function Ff(n,r,e){var u,i,f,a,c,l,s=0,h=!1,p=!1,v=!0;if('function'!=typeof n)throw new ot(o);function _(r){var e=u,o=i;return u=i=t,s=r,a=n.apply(o,e)}function g(n){return s=n,c=Do(x,r),h?_(n):a}function d(n){var t=r-(n-l);return p?Qr(t,f-(n-s)):t}function y(n){var e=n-l;return l===t||e>=r||e<0||p&&n-s>=f}function x(){var n=Uf();if(y(n))return b(n);c=Do(x,d(n))}function b(n){return c=t,v&&u?_(n):(u=i=t,a)}function w(){var n=Uf(),e=y(n);if(u=arguments,i=this,l=n,e){if(c===t)return g(l);if(p)return si(c),c=Do(x,r),_(l)}return c===t&&(c=Do(x,r)),a}return r=za(r)||0,la(e)&&(h=!!e.leading,f=(p='maxWait'in e)?Yr(za(e.maxWait)||0,r):f,v='trailing'in e?!!e.trailing:v),w.cancel=function(){c!==t&&si(c),s=0,u=l=i=c=t},w.flush=function(){return c===t?a:b(Uf())},w}var Nf=Du(function(n,t){return qe(n,1,t)}),Pf=Du(function(n,t,r){return qe(n,za(t)||0,r)});function Zf(n,t){if('function'!=typeof n||null!=t&&'function'!=typeof t)throw new ot(o);var r=function r(){var e=arguments,u=t?t.apply(this,e):e[0],i=r.cache;if(i.has(u))return i.get(u);var o=n.apply(this,e);return r.cache=i.set(u,o)||i,o};return r.cache=new(Zf.Cache||ze),r}function qf(n){if('function'!=typeof n)throw new ot(o);return function(){var t=arguments;switch(t.length){case 0:return!n.call(this);case 1:return!n.call(this,t[0]);case 2:return!n.call(this,t[0],t[1]);case 3:return!n.call(this,t[0],t[1],t[2])}return!n.apply(this,t)}}Zf.Cache=ze;var Kf=ci(function(n,t){var r=(t=1==t.length&&na(t[0])?Dt(t[0],or(oo())):Dt(Xe(t,1),or(oo()))).length;return Du(function(e){for(var u=-1,i=Qr(e.length,r);++u=t}),Xf=_u((function(){return arguments})())?_u:function(n){return sa(n)&&yt.call(n,'callee')&&!Tr.call(n,'callee')},na=Dn.isArray,ta=kt?or(kt):function(n){return sa(n)&&fu(n)==fn};function ra(n){return null!=n&&ca(n.length)&&!fa(n)}function ea(n){return sa(n)&&ra(n)}var ua=Vr||zc,ia=zt?or(zt):function(n){return sa(n)&&fu(n)==P};function oa(n){if(!sa(n))return!1;var t=fu(n);return t==q||t==Z||'string'==typeof n.message&&'string'==typeof n.name&&!va(n)}function fa(n){if(!la(n))return!1;var t=fu(n);return t==K||t==V||t==F||t==Q}function aa(n){return'number'==typeof n&&n==Aa(n)}function ca(n){return'number'==typeof n&&n>-1&&n%1==0&&n<=L}function la(n){var t=typeof n;return null!=n&&('object'==t||'function'==t)}function sa(n){return null!=n&&'object'==typeof n}var ha=Ot?or(Ot):function(n){return sa(n)&&po(n)==G};function pa(n){return'number'==typeof n||sa(n)&&fu(n)==H}function va(n){if(!sa(n)||fu(n)!=Y)return!1;var t=Wr(n);if(null===t)return!0;var r=yt.call(t,'constructor')&&t.constructor;return'function'==typeof r&&r instanceof r&&dt.call(r)==At}var _a=It?or(It):function(n){return sa(n)&&fu(n)==X};var ga=Rt?or(Rt):function(n){return sa(n)&&po(n)==nn};function da(n){return'string'==typeof n||!na(n)&&sa(n)&&fu(n)==tn}function ya(n){return'symbol'==typeof n||sa(n)&&fu(n)==rn}var xa=Et?or(Et):function(n){return sa(n)&&ca(n.length)&&!!ht[fu(n)]};var ba=Ni(ju),wa=Ni(function(n,t){return n<=t});function ma(n){if(!n)return[];if(ra(n))return da(n)?Or(n):bi(n);if($r&&n[$r])return yr(n[$r]());var t=po(n);return(t==G?xr:t==nn?mr:Ja)(n)}function ja(n){return n?(n=za(n))===S||n===-1/0?(n<0?-1:1)*W:n==n?n:0:0===n?n:0}function Aa(n){var t=ja(n),r=t%1;return t==t?r?t-r:t:0}function ka(n){return n?Fe(Aa(n),0,T):0}function za(n){if('number'==typeof n)return n;if(ya(n))return C;if(la(n)){var t='function'==typeof n.valueOf?n.valueOf():n;n=la(t)?t+'':t}if('string'!=typeof n)return 0===n?n:+n;n=n.replace(Wn,'');var r=Zn.test(n);return r||Kn.test(n)?gt(n.slice(2),r?2:8):Pn.test(n)?C:+n}function Oa(n){return wi(n,Na(n))}function Ia(n){return null==n?'':Qu(n)}var Ra=ki(function(n,t){if(Io(t)||ra(t))wi(t,Fa(t),n);else for(var r in t)yt.call(t,r)&&Ce(n,r,t[r])}),Ea=ki(function(n,t){wi(t,Na(t),n)}),Sa=ki(function(n,t,r,e){wi(t,Na(t),n,e)}),La=ki(function(n,t,r,e){wi(t,Fa(t),n,e)}),Wa=no(Me);var Ca=Du(function(n,r){n=tt(n);var e=-1,u=r.length,i=u>2?r[2]:t;for(i&&Ao(r[0],r[1],i)&&(u=1);++e1),t}),wi(n,ro(n),r),e&&(r=Ne(r,7,Ji));for(var u=t.length;u--;)ni(r,t[u]);return r});var Ka=no(function(n,t){return null==n?{}:Su(n,t)});function Va(n,t){if(null==n)return{};var r=Dt(ro(n),function(n){return[n]});return t=oo(t),Lu(n,r,function(n,r){return t(n,r[0])})}var Ga=Ki(Fa),Ha=Ki(Na);function Ja(n){return null==n?[]:fr(n,Fa(n))}var Ya=Ei(function(n,t,r){return t=t.toLowerCase(),n+(r?Qa(t):t)});function Qa(n){return oc(Ia(n).toLowerCase())}function Xa(n){return(n=Ia(n))&&n.replace(Gn,hr).replace(it,'')}var nc=Ei(function(n,t,r){return n+(r?'-':'')+t.toLowerCase()}),tc=Ei(function(n,t,r){return n+(r?' ':'')+t.toLowerCase()}),rc=Ri('toLowerCase');var ec=Ei(function(n,t,r){return n+(r?'_':'')+t.toLowerCase()});var uc=Ei(function(n,t,r){return n+(r?' ':'')+oc(t)});var ic=Ei(function(n,t,r){return n+(r?' ':'')+t.toUpperCase()}),oc=Ri('toUpperCase');function fc(n,r,e){return n=Ia(n),(r=e?t:r)===t?dr(n)?Sr(n):Kt(n):n.match(r)||[]}var ac=Du(function(n,r){try{return St(n,t,r)}catch(n){return oa(n)?n:new Qn(n)}}),cc=no(function(n,t){return Wt(t,function(t){t=qo(t),De(n,t,Df(n[t],n))}),n});function lc(n){return function(){return n}}var sc=Ci(),hc=Ci(!0);function pc(n){return n}function vc(n){return bu('function'==typeof n?n:Ne(n,l))}var _c=Du(function(n,t){return function(r){return vu(r,n,t)}}),gc=Du(function(n,t){return function(r){return vu(n,r,t)}});function dc(n,t,r){var e=Fa(t),u=uu(t,e);null!=r||la(t)&&(u.length||!e.length)||(r=t,t=n,n=this,u=uu(t,Fa(t)));var i=!(la(r)&&'chain'in r&&!r.chain),o=fa(n);return Wt(u,function(r){var e=t[r];n[r]=e,o&&(n.prototype[r]=function(){var t=this.__chain__;if(i||t){var r=n(this.__wrapped__);return(r.__actions__=bi(this.__actions__)).push({func:e,args:arguments,thisArg:n}),r.__chain__=t,r}return e.apply(n,Mt([this.value()],arguments))})}),n}function yc(){}var xc=$i(Dt),bc=$i(Tt),wc=$i(Pt);function mc(n){return ko(n)?Xt(qo(n)):Wu(n)}var jc=Fi(),Ac=Fi(!0);function kc(){return[]}function zc(){return!1}var Oc=Bi(function(n,t){return n+t},0),Ic=Zi('ceil'),Rc=Bi(function(n,t){return n/t},1),Ec=Zi('floor');var Sc,Lc=Bi(function(n,t){return n*t},1),Wc=Zi('round'),Cc=Bi(function(n,t){return n-t},0);return xe.after=function(n,t){if('function'!=typeof t)throw new ot(o);return n=Aa(n),function(){if(--n<1)return t.apply(this,arguments)}},xe.ary=Bf,xe.assign=Ra,xe.assignIn=Ea,xe.assignInWith=Sa,xe.assignWith=La,xe.at=Wa,xe.before=$f,xe.bind=Df,xe.bindAll=cc,xe.bindKey=Mf,xe.castArray=function(){if(!arguments.length)return[];var n=arguments[0];return na(n)?n:[n]},xe.chain=mf,xe.chunk=function(n,r,e){r=(e?Ao(n,r,e):r===t)?1:Yr(Aa(r),0);var u=null==n?0:n.length;if(!u||r<1)return[];for(var i=0,o=0,f=Dn(Zr(u/r));i>>0)?(n=Ia(n))&&('string'==typeof r||null!=r&&!_a(r))&&!(r=Qu(r))&&gr(n)?li(Or(n),0,e):n.split(r,e):[]},xe.spread=function(n,t){if('function'!=typeof n)throw new ot(o);return t=null==t?0:Yr(Aa(t),0),Du(function(r){var e=r[t],u=li(r,0,t);return e&&Mt(u,e),St(n,this,u)})},xe.tail=function(n){var t=null==n?0:n.length;return t?Ku(n,1,t):[]},xe.take=function(n,r,e){return n&&n.length?Ku(n,0,(r=e||r===t?1:Aa(r))<0?0:r):[]},xe.takeRight=function(n,r,e){var u=null==n?0:n.length;return u?Ku(n,(r=u-(r=e||r===t?1:Aa(r)))<0?0:r,u):[]},xe.takeRightWhile=function(n,t){return n&&n.length?ri(n,oo(t,3),!1,!0):[]},xe.takeWhile=function(n,t){return n&&n.length?ri(n,oo(t,3)):[]},xe.tap=function(n,t){return t(n),n},xe.throttle=function(n,t,r){var e=!0,u=!0;if('function'!=typeof n)throw new ot(o);return la(r)&&(e='leading'in r?!!r.leading:e,u='trailing'in r?!!r.trailing:u),Ff(n,t,{leading:e,maxWait:t,trailing:u})},xe.thru=jf,xe.toArray=ma,xe.toPairs=Ga,xe.toPairsIn=Ha,xe.toPath=function(n){return na(n)?Dt(n,qo):ya(n)?[n]:bi(Zo(Ia(n)))},xe.toPlainObject=Oa,xe.transform=function(n,t,r){var e=na(n),u=e||ua(n)||xa(n);if(t=oo(t,4),null==r){var i=n&&n.constructor;r=u?e?new i:[]:la(n)&&fa(i)?be(Wr(n)):{}}return(u?Wt:ru)(n,function(n,e,u){return t(r,n,e,u)}),r},xe.unary=function(n){return Bf(n,1)},xe.union=sf,xe.unionBy=hf,xe.unionWith=pf,xe.uniq=function(n){return n&&n.length?Xu(n):[]},xe.uniqBy=function(n,t){return n&&n.length?Xu(n,oo(t,2)):[]},xe.uniqWith=function(n,r){return r='function'==typeof r?r:t,n&&n.length?Xu(n,t,r):[]},xe.unset=function(n,t){return null==n||ni(n,t)},xe.unzip=vf,xe.unzipWith=_f,xe.update=function(n,t,r){return null==n?n:ti(n,t,fi(r))},xe.updateWith=function(n,r,e,u){return u='function'==typeof u?u:t,null==n?n:ti(n,r,fi(e),u)},xe.values=Ja,xe.valuesIn=function(n){return null==n?[]:fr(n,Na(n))},xe.without=gf,xe.words=fc,xe.wrap=function(n,t){return Vf(fi(t),n)},xe.xor=df,xe.xorBy=yf,xe.xorWith=xf,xe.zip=bf,xe.zipObject=function(n,t){return ii(n||[],t||[],Ce)},xe.zipObjectDeep=function(n,t){return ii(n||[],t||[],Nu)},xe.zipWith=wf,xe.entries=Ga,xe.entriesIn=Ha,xe.extend=Ea,xe.extendWith=Sa,dc(xe,xe),xe.add=Oc,xe.attempt=ac,xe.camelCase=Ya,xe.capitalize=Qa,xe.ceil=Ic,xe.clamp=function(n,r,e){return e===t&&(e=r,r=t),e!==t&&(e=(e=za(e))==e?e:0),r!==t&&(r=(r=za(r))==r?r:0),Fe(za(n),r,e)},xe.clone=function(n){return Ne(n,h)},xe.cloneDeep=function(n){return Ne(n,5)},xe.cloneDeepWith=function(n,r){return Ne(n,5,r='function'==typeof r?r:t)},xe.cloneWith=function(n,r){return Ne(n,h,r='function'==typeof r?r:t)},xe.conformsTo=function(n,t){return null==t||Ze(n,t,Fa(t))},xe.deburr=Xa,xe.defaultTo=function(n,t){return null==n||n!=n?t:n},xe.divide=Rc,xe.endsWith=function(n,r,e){n=Ia(n),r=Qu(r);var u=n.length,i=e=e===t?u:Fe(Aa(e),0,u);return(e-=r.length)>=0&&n.slice(e,i)==r},xe.eq=Jf,xe.escape=function(n){return(n=Ia(n))&&An.test(n)?n.replace(mn,pr):n},xe.escapeRegExp=function(n){return(n=Ia(n))&&Ln.test(n)?n.replace(Sn,'\\$&'):n},xe.every=function(n,r,e){var u=na(n)?Tt:He;return e&&Ao(n,r,e)&&(r=t),u(n,oo(r,3))},xe.find=zf,xe.findIndex=Qo,xe.findKey=function(n,t){return Vt(n,oo(t,3),ru)},xe.findLast=Of,xe.findLastIndex=Xo,xe.findLastKey=function(n,t){return Vt(n,oo(t,3),eu)},xe.floor=Ec,xe.forEach=If,xe.forEachRight=Rf,xe.forIn=function(n,t){return null==n?n:nu(n,oo(t,3),Na)},xe.forInRight=function(n,t){return null==n?n:tu(n,oo(t,3),Na)},xe.forOwn=function(n,t){return n&&ru(n,oo(t,3))},xe.forOwnRight=function(n,t){return n&&eu(n,oo(t,3))},xe.get=Ua,xe.gt=Yf,xe.gte=Qf,xe.has=function(n,t){return null!=n&&go(n,t,cu)},xe.hasIn=Ba,xe.head=tf,xe.identity=pc,xe.includes=function(n,t,r,e){n=ra(n)?n:Ja(n),r=r&&!e?Aa(r):0;var u=n.length;return r<0&&(r=Yr(u+r,0)),da(n)?r<=u&&n.indexOf(t,r)>-1:!!u&&Ht(n,t,r)>-1},xe.indexOf=function(n,t,r){var e=null==n?0:n.length;if(!e)return-1;var u=null==r?0:Aa(r);return u<0&&(u=Yr(e+u,0)),Ht(n,t,u)},xe.inRange=function(n,r,e){return r=ja(r),e===t?(e=r,r=0):e=ja(e),su(n=za(n),r,e)},xe.invoke=Ma,xe.isArguments=Xf,xe.isArray=na,xe.isArrayBuffer=ta,xe.isArrayLike=ra,xe.isArrayLikeObject=ea,xe.isBoolean=function(n){return!0===n||!1===n||sa(n)&&fu(n)==N},xe.isBuffer=ua,xe.isDate=ia,xe.isElement=function(n){return sa(n)&&1===n.nodeType&&!va(n)},xe.isEmpty=function(n){if(null==n)return!0;if(ra(n)&&(na(n)||'string'==typeof n||'function'==typeof n.splice||ua(n)||xa(n)||Xf(n)))return!n.length;var t=po(n);if(t==G||t==nn)return!n.size;if(Io(n))return!wu(n).length;for(var r in n)if(yt.call(n,r))return!1;return!0},xe.isEqual=function(n,t){return gu(n,t)},xe.isEqualWith=function(n,r,e){var u=(e='function'==typeof e?e:t)?e(n,r):t;return u===t?gu(n,r,t,e):!!u},xe.isError=oa,xe.isFinite=function(n){return'number'==typeof n&&Gr(n)},xe.isFunction=fa,xe.isInteger=aa,xe.isLength=ca,xe.isMap=ha,xe.isMatch=function(n,t){return n===t||yu(n,t,ao(t))},xe.isMatchWith=function(n,r,e){return e='function'==typeof e?e:t,yu(n,r,ao(r),e)},xe.isNaN=function(n){return pa(n)&&n!=+n},xe.isNative=function(n){if(Oo(n))throw new Qn(e);return xu(n)},xe.isNil=function(n){return null==n},xe.isNull=function(n){return null===n},xe.isNumber=pa,xe.isObject=la,xe.isObjectLike=sa,xe.isPlainObject=va,xe.isRegExp=_a,xe.isSafeInteger=function(n){return aa(n)&&n>=-9007199254740991&&n<=L},xe.isSet=ga,xe.isString=da,xe.isSymbol=ya,xe.isTypedArray=xa,xe.isUndefined=function(n){return n===t},xe.isWeakMap=function(n){return sa(n)&&po(n)==un},xe.isWeakSet=function(n){return sa(n)&&fu(n)==on},xe.join=function(n,t){return null==n?'':Hr.call(n,t)},xe.kebabCase=nc,xe.last=of,xe.lastIndexOf=function(n,r,e){var u=null==n?0:n.length;if(!u)return-1;var i=u;return e!==t&&(i=(i=Aa(e))<0?Yr(u+i,0):Qr(i,u-1)),r==r?kr(n,r,i):Gt(n,Yt,i,!0)},xe.lowerCase=tc,xe.lowerFirst=rc,xe.lt=ba,xe.lte=wa,xe.max=function(n){return n&&n.length?Je(n,pc,au):t},xe.maxBy=function(n,r){return n&&n.length?Je(n,oo(r,2),au):t},xe.mean=function(n){return Qt(n,pc)},xe.meanBy=function(n,t){return Qt(n,oo(t,2))},xe.min=function(n){return n&&n.length?Je(n,pc,ju):t},xe.minBy=function(n,r){return n&&n.length?Je(n,oo(r,2),ju):t},xe.stubArray=kc,xe.stubFalse=zc,xe.stubObject=function(){return{}},xe.stubString=function(){return''},xe.stubTrue=function(){return!0},xe.multiply=Lc,xe.nth=function(n,r){return n&&n.length?Ru(n,Aa(r)):t},xe.noConflict=function(){return xt._===this&&(xt._=Zt),this},xe.noop=yc,xe.now=Uf,xe.pad=function(n,t,r){n=Ia(n);var e=(t=Aa(t))?zr(n):0;if(!t||e>=t)return n;var u=(t-e)/2;return Di(qr(u),r)+n+Di(Zr(u),r)},xe.padEnd=function(n,t,r){n=Ia(n);var e=(t=Aa(t))?zr(n):0;return t&&er){var u=n;n=r,r=u}if(e||n%1||r%1){var i=te();return Qr(n+i*(r-n+_t('1e-'+((i+'').length-1))),r)}return Uu(n,r)},xe.reduce=function(n,t,r){var e=na(n)?Ft:tr,u=arguments.length<3;return e(n,oo(t,4),r,u,Ve)},xe.reduceRight=function(n,t,r){var e=na(n)?Nt:tr,u=arguments.length<3;return e(n,oo(t,4),r,u,Ge)},xe.repeat=function(n,r,e){return r=(e?Ao(n,r,e):r===t)?1:Aa(r),$u(Ia(n),r)},xe.replace=function(){var n=arguments,t=Ia(n[0]);return n.length<3?t:t.replace(n[1],n[2])},xe.result=function(n,r,e){var u=-1,i=(r=ai(r,n)).length;for(i||(i=1,n=t);++uL)return[];var r=T,e=Qr(n,T);t=oo(t),n-=T;for(var u=ur(e,t);++r=o)return n;var a=e-zr(u);if(a<1)return u;var c=f?li(f,0,a).join(''):n.slice(0,a);if(i===t)return c+u;if(f&&(a+=c.length-a),_a(i)){if(n.slice(a).search(i)){var l,s=c;for(i.global||(i=rt(i.source,Ia(Nn.exec(i))+'g')),i.lastIndex=0;l=i.exec(s);)var h=l.index;c=c.slice(0,h===t?a:h)}}else if(n.indexOf(Qu(i),a)!=a){var p=c.lastIndexOf(i);p>-1&&(c=c.slice(0,p))}return c+u},xe.unescape=function(n){return(n=Ia(n))&&jn.test(n)?n.replace(wn,Ir):n},xe.uniqueId=function(n){var t=++bt;return Ia(n)+t},xe.upperCase=ic,xe.upperFirst=oc,xe.each=If,xe.eachRight=Rf,xe.first=tf,dc(xe,(Sc={},ru(xe,function(n,t){yt.call(xe.prototype,t)||(Sc[t]=n)}),Sc),{chain:!1}),xe.VERSION="4.17.13",Wt(['bind','bindKey','curry','curryRight','partial','partialRight'],function(n){xe[n].placeholder=xe}),Wt(['drop','take'],function(n,r){je.prototype[n]=function(e){e=e===t?1:Yr(Aa(e),0);var u=this.__filtered__&&!r?new je(this):this.clone();return u.__filtered__?u.__takeCount__=Qr(e,u.__takeCount__):u.__views__.push({size:Qr(e,T),type:n+(u.__dir__<0?'Right':'')}),u},je.prototype[n+'Right']=function(t){return this.reverse()[n](t).reverse()}}),Wt(['filter','map','takeWhile'],function(n,t){var r=t+1,e=r==R||3==r;je.prototype[n]=function(n){var t=this.clone();return t.__iteratees__.push({iteratee:oo(n,3),type:r}),t.__filtered__=t.__filtered__||e,t}}),Wt(['head','last'],function(n,t){var r='take'+(t?'Right':'');je.prototype[n]=function(){return this[r](1).value()[0]}}),Wt(['initial','tail'],function(n,t){var r='drop'+(t?'':'Right');je.prototype[n]=function(){return this.__filtered__?new je(this):this[r](1)}}),je.prototype.compact=function(){return this.filter(pc)},je.prototype.find=function(n){return this.filter(n).head()},je.prototype.findLast=function(n){return this.reverse().find(n)},je.prototype.invokeMap=Du(function(n,t){return'function'==typeof n?new je(this):this.map(function(r){return vu(r,n,t)})}),je.prototype.reject=function(n){return this.filter(qf(oo(n)))},je.prototype.slice=function(n,r){n=Aa(n);var e=this;return e.__filtered__&&(n>0||r<0)?new je(e):(n<0?e=e.takeRight(-n):n&&(e=e.drop(n)),r!==t&&(e=(r=Aa(r))<0?e.dropRight(-r):e.take(r-n)),e)},je.prototype.takeRightWhile=function(n){return this.reverse().takeWhile(n).reverse()},je.prototype.toArray=function(){return this.take(T)},ru(je.prototype,function(n,r){var e=/^(?:filter|find|map|reject)|While$/.test(r),u=/^(?:head|last)$/.test(r),i=xe[u?'take'+('last'==r?'Right':''):r],o=u||/^find/.test(r);i&&(xe.prototype[r]=function(){var r=this.__wrapped__,f=u?[1]:arguments,a=r instanceof je,c=f[0],l=a||na(r),s=function(n){var t=i.apply(xe,Mt([n],f));return u&&h?t[0]:t};l&&e&&'function'==typeof c&&1!=c.length&&(a=l=!1);var h=this.__chain__,p=!!this.__actions__.length,v=o&&!h,_=a&&!p;if(!o&&l){r=_?r:new je(this);var g=n.apply(r,f);return g.__actions__.push({func:jf,args:[s],thisArg:t}),new me(g,h)}return v&&_?n.apply(this,f):(g=this.thru(s),v?u?g.value()[0]:g.value():g)})}),Wt(['pop','push','shift','sort','splice','unshift'],function(n){var t=ft[n],r=/^(?:push|sort|unshift)$/.test(n)?'tap':'thru',e=/^(?:pop|shift)$/.test(n);xe.prototype[n]=function(){var n=arguments;if(e&&!this.__chain__){var u=this.value();return t.apply(na(u)?u:[],n)}return this[r](function(r){return t.apply(na(r)?r:[],n)})}}),ru(je.prototype,function(n,t){var r=xe[t];if(r){var e=r.name+'';yt.call(le,e)||(le[e]=[]),le[e].push({name:t,func:r})}}),le[Ti(t,g).name]=[{name:'wrapper',func:t}],je.prototype.clone=function(){var n=new je(this.__wrapped__);return n.__actions__=bi(this.__actions__),n.__dir__=this.__dir__,n.__filtered__=this.__filtered__,n.__iteratees__=bi(this.__iteratees__),n.__takeCount__=this.__takeCount__,n.__views__=bi(this.__views__),n},je.prototype.reverse=function(){if(this.__filtered__){var n=new je(this);n.__dir__=-1,n.__filtered__=!0}else(n=this.clone()).__dir__*=-1;return n},je.prototype.value=function(){var n=this.__wrapped__.value(),t=this.__dir__,r=na(n),e=t<0,u=r?n.length:0,i=vo(0,u,this.__views__),o=i.start,f=i.end,a=f-o,c=e?f:o-1,l=this.__iteratees__,s=l.length,h=0,p=Qr(a,this.__takeCount__);if(!r||!e&&u==a&&p==a)return ei(n,this.__actions__);var v=[];n:for(;a--&&h=this.__values__.length;return{done:n,value:n?t:this.__values__[this.__index__++]}},xe.prototype.plant=function(n){for(var r,e=this;e instanceof we;){var u=Go(e);u.__index__=0,u.__values__=t,r?i.__wrapped__=u:r=u;var i=u;e=e.__wrapped__}return i.__wrapped__=n,r},xe.prototype.reverse=function(){var n=this.__wrapped__;if(n instanceof je){var r=n;return this.__actions__.length&&(r=new je(this)),(r=r.reverse()).__actions__.push({func:jf,args:[lf],thisArg:t}),new me(r,this.__chain__)}return this.thru(lf)},xe.prototype.toJSON=xe.prototype.valueOf=xe.prototype.value=function(){return ei(this.__wrapped__,this.__actions__)},xe.prototype.first=xe.prototype.head,$r&&(xe.prototype[$r]=function(){return this}),xe})();'function'==typeof define&&'object'==typeof define.amd&&define.amd?(xt._=Lr,define(function(){return Lr})):wt?((wt.exports=Lr)._=Lr,bt._=Lr):xt._=Lr}).call(this)},541,[]); -__d(function(g,r,i,a,m,e,d){"use strict";var t=r(d[0]);e.__esModule=!0;var u=t(r(d[1]));e.Provider=u.default;var c=t(r(d[2]));e.connectAdvanced=c.default;var s=r(d[3]);e.ReactReduxContext=s.ReactReduxContext;var l=t(r(d[4]));e.connect=l.default;var o=r(d[5]);e.useDispatch=o.useDispatch;var v=r(d[6]);e.useSelector=v.useSelector;var n=r(d[7]);e.useStore=n.useStore;var h=r(d[8]),_=r(d[9]);e.batch=_.unstable_batchedUpdates;var b=t(r(d[10]));e.shallowEqual=b.default,(0,h.setBatch)(_.unstable_batchedUpdates)},542,[3,543,551,548,558,572,575,573,550,576,559]); -__d(function(g,r,i,a,m,e,d){"use strict";var t=r(d[0]),s=r(d[1]);e.__esModule=!0,e.default=void 0;var n=s(r(d[2])),o=s(r(d[3])),u=t(r(d[4])),c=s(r(d[5])),b=r(d[6]),p=s(r(d[7])),f=(function(t){function s(s){var o;o=t.call(this,s)||this;var u=s.store;o.notifySubscribers=o.notifySubscribers.bind((0,n.default)(o));var c=new p.default(u);return c.onStateChange=o.notifySubscribers,o.state={store:u,subscription:c},o.previousState=u.getState(),o}(0,o.default)(s,t);var c=s.prototype;return c.componentDidMount=function(){this._isMounted=!0,this.state.subscription.trySubscribe(),this.previousState!==this.props.store.getState()&&this.state.subscription.notifyNestedSubs()},c.componentWillUnmount=function(){this.unsubscribe&&this.unsubscribe(),this.state.subscription.tryUnsubscribe(),this._isMounted=!1},c.componentDidUpdate=function(t){if(this.props.store!==t.store){this.state.subscription.tryUnsubscribe();var s=new p.default(this.props.store);s.onStateChange=this.notifySubscribers,this.setState({store:this.props.store,subscription:s})}},c.notifySubscribers=function(){this.state.subscription.notifyNestedSubs()},c.render=function(){var t=this.props.context||b.ReactReduxContext;return u.default.createElement(t.Provider,{value:this.state},this.props.children)},s})(u.Component);f.propTypes={store:c.default.shape({subscribe:c.default.func.isRequired,dispatch:c.default.func.isRequired,getState:c.default.func.isRequired}),context:c.default.object,children:c.default.any};var h=f;e.default=h},543,[2,3,8,544,13,545,548,549]); -__d(function(g,r,i,a,m,e,d){m.exports=function(t,o){t.prototype=Object.create(o.prototype),t.prototype.constructor=t,t.__proto__=o}},544,[]); -__d(function(g,r,i,a,m,e,d){m.exports=r(d[0])()},545,[546]); -__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]);function t(){}function o(){}o.resetWarningCache=t,m.exports=function(){function p(t,o,p,c,s,y){if(y!==n){var f=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw f.name='Invariant Violation',f}}function c(){return p}p.isRequired=p;var s={array:p,bool:p,func:p,number:p,object:p,string:p,symbol:p,any:p,arrayOf:c,element:p,elementType:p,instanceOf:c,node:p,objectOf:c,oneOf:c,oneOfType:c,shape:c,exact:c,checkPropTypes:o,resetWarningCache:t};return s.PropTypes=s,s}},546,[547]); -__d(function(g,r,i,a,m,e,d){'use strict';m.exports='SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'},547,[]); -__d(function(g,r,i,a,m,e,d){"use strict";var t=r(d[0]);e.__esModule=!0,e.default=e.ReactReduxContext=void 0;var u=t(r(d[1])).default.createContext(null);e.ReactReduxContext=u;var l=u;e.default=l},548,[3,13]); -__d(function(g,r,i,a,m,e,d){"use strict";e.__esModule=!0,e.default=void 0;var t=r(d[0]),n=null,s={notify:function(){}};var u=(function(){function u(t,n){this.store=t,this.parentSub=n,this.unsubscribe=null,this.listeners=s,this.handleChangeWrapper=this.handleChangeWrapper.bind(this)}var h=u.prototype;return h.addNestedSub=function(t){return this.trySubscribe(),this.listeners.subscribe(t)},h.notifyNestedSubs=function(){this.listeners.notify()},h.handleChangeWrapper=function(){this.onStateChange&&this.onStateChange()},h.isSubscribed=function(){return Boolean(this.unsubscribe)},h.trySubscribe=function(){var s,u,h;this.unsubscribe||(this.unsubscribe=this.parentSub?this.parentSub.addNestedSub(this.handleChangeWrapper):this.store.subscribe(this.handleChangeWrapper),this.listeners=(s=(0,t.getBatch)(),u=[],h=[],{clear:function(){h=n,u=n},notify:function(){var t=u=h;s(function(){for(var n=0;n. You may also pass a {context : MyContext} option to connect");var L=j;return function(n){var v=n.displayName||n.name||'Component',x=N(v),M=(0,o.default)({},k,{getDisplayName:N,methodName:P,renderCountProp:E,shouldHandleStateChanges:T,storeKey:K,displayName:x,wrappedComponentName:v,WrappedComponent:n}),b=k.pure;function S(n){return t(n.dispatch,M)}var D=b?f.useMemo:function(t){return t()};function _(t){var c=(0,f.useMemo)(function(){var n=t.forwardedRef,o=(0,u.default)(t,["forwardedRef"]);return[t.context,n,o]},[t]),v=c[0],M=c[1],N=c[2],b=(0,f.useMemo)(function(){return v&&v.Consumer&&(0,l.isContextConsumer)(f.default.createElement(v.Consumer,null))?v:L},[v,L]),P=(0,f.useContext)(b),E=Boolean(t.store),_=Boolean(P)&&Boolean(P.store);(0,s.default)(E||_,"Could not find \"store\" in the context of \""+x+"\". Either wrap the root component in a , or pass a custom React context provider to and the corresponding React context consumer to "+x+" in connect options.");var K=t.store||P.store,A=(0,f.useMemo)(function(){return S(K)},[K]),B=(0,f.useMemo)(function(){if(!T)return C;var t=new p.default(K,E?null:P.subscription),n=t.notifyNestedSubs.bind(t);return[t,n]},[K,E,P]),H=B[0],W=B[1],U=(0,f.useMemo)(function(){return E?P:(0,o.default)({},P,{subscription:H})},[E,P,H]),j=(0,f.useReducer)(y,h,R),k=j[0],O=k[0],Y=j[1];if(O&&O.error)throw O.error;var q=(0,f.useRef)(),z=(0,f.useRef)(N),F=(0,f.useRef)(),G=(0,f.useRef)(!1),I=D(function(){return F.current&&N===z.current?F.current:A(K.getState(),N)},[K,O,N]);w(function(){z.current=N,q.current=I,G.current=!1,F.current&&(F.current=null,W())}),w(function(){if(T){var t=!1,n=null,o=function(){if(!t){var o,u,c=K.getState();try{o=A(c,z.current)}catch(t){u=t,n=t}u||(n=null),o===q.current?G.current||W():(q.current=o,F.current=o,G.current=!0,Y({type:'STORE_UPDATED',payload:{latestStoreState:c,error:u}}))}};H.onStateChange=o,H.trySubscribe(),o();return function(){if(t=!0,H.tryUnsubscribe(),n)throw n}}},[K,H,A]);var J=(0,f.useMemo)(function(){return f.default.createElement(n,(0,o.default)({},I,{ref:M}))},[M,n,I]),Q=(0,f.useMemo)(function(){return T?f.default.createElement(b.Provider,{value:U},J):J},[b,J,U]);return Q}var A=b?f.default.memo(_):_;if(A.WrappedComponent=n,A.displayName=x,W){var B=f.default.forwardRef(function(t,n){return f.default.createElement(A,(0,o.default)({},t,{forwardedRef:n}))});return B.displayName=x,B.WrappedComponent=n,(0,c.default)(B,n)}return(0,c.default)(A,n)}};var o=n(r(d[2])),u=n(r(d[3])),c=n(r(d[4])),s=n(r(d[5])),f=t(r(d[6])),l=r(d[7]),p=n(r(d[8])),v=r(d[9]),h=[],C=[null,null];function y(t,n){var o=t[1];return[n.payload,o+1]}var R=function(){return[null,0]},w='undefined'!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement?f.useLayoutEffect:f.useEffect},551,[2,3,16,57,552,555,13,556,549,548]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},p={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},y={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},n={};function s(p){return t.isMemo(p)?y:n[p.$$typeof]||o}n[t.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0};var c=Object.defineProperty,f=Object.getOwnPropertyNames,l=Object.getOwnPropertySymbols,u=Object.getOwnPropertyDescriptor,O=Object.getPrototypeOf,P=Object.prototype;m.exports=function t(o,y,n){if('string'!=typeof y){if(P){var v=O(y);v&&v!==P&&t(o,v,n)}var b=f(y);l&&(b=b.concat(l(y)));for(var j=s(o),T=s(y),$=0;$=0;u--){var p=o[u](t);if(p)return p}return function(o,u){throw new Error("Invalid value of type "+typeof t+" for "+n+" argument when connecting component "+u.wrappedComponentName+".")}}function P(t,o){return t===o}function E(t){var E=void 0===t?{}:t,q=E.connectHOC,S=void 0===q?u.default:q,h=E.mapStateToPropsFactories,w=void 0===h?l.default:h,M=E.mapDispatchToPropsFactories,T=void 0===M?s.default:M,C=E.mergePropsFactories,y=void 0===C?c.default:C,D=E.selectorFactory,F=void 0===D?f.default:D;return function(t,u,s,l){void 0===l&&(l={});var c=l,f=c.pure,E=void 0===f||f,q=c.areStatesEqual,h=void 0===q?P:q,M=c.areOwnPropsEqual,C=void 0===M?p.default:M,D=c.areStatePropsEqual,O=void 0===D?p.default:D,_=c.areMergedPropsEqual,N=void 0===_?p.default:_,H=(0,n.default)(c,["pure","areStatesEqual","areOwnPropsEqual","areStatePropsEqual","areMergedPropsEqual"]),B=v(t,w,'mapStateToProps'),I=v(u,T,'mapDispatchToProps'),b=v(s,y,'mergeProps');return S(F,(0,o.default)({methodName:'connect',getDisplayName:function(t){return"Connect("+t+")"},shouldHandleStateChanges:Boolean(t),initMapStateToProps:B,initMapDispatchToProps:I,initMergeProps:b,pure:E,areStatesEqual:h,areOwnPropsEqual:C,areStatePropsEqual:O,areMergedPropsEqual:N},H))}}var q=E();e.default=q},558,[3,16,57,551,559,560,568,569,570]); -__d(function(g,r,i,a,m,e,d){"use strict";e.__esModule=!0,e.default=function(u,o){if(n(u,o))return!0;if('object'!=typeof u||null===u||'object'!=typeof o||null===o)return!1;var f=Object.keys(u),l=Object.keys(o);if(f.length!==l.length)return!1;for(var c=0;c'),t};var n=r(d[1]),u=t(r(d[2])),o=r(d[3])},574,[3,13,555,548]); -__d(function(g,r,i,a,m,e,d){"use strict";var t=r(d[0]);e.__esModule=!0,e.useSelector=function(t,l){void 0===l&&(l=f);(0,u.default)(t,"You must pass a selector to useSelectors");var h,v=(0,c.useReduxContext)(),w=v.store,y=v.subscription,b=(0,n.useReducer)(function(t){return t+1},0)[1],S=(0,n.useMemo)(function(){return new o.default(w,y)},[w,y]),R=(0,n.useRef)(),p=(0,n.useRef)(),_=(0,n.useRef)();try{h=t!==p.current||R.current?t(w.getState()):_.current}catch(t){var E="An error occured while selecting the store state: "+t.message+".";throw R.current&&(E+="\nThe error may be correlated with this previous error:\n"+R.current.stack+"\n\nOriginal stack trace:"),new Error(E)}return s(function(){p.current=t,_.current=h,R.current=void 0}),s(function(){function t(){try{var t=p.current(w.getState());if(l(t,_.current))return;_.current=t}catch(t){R.current=t}b({})}return S.onStateChange=t,S.trySubscribe(),t(),function(){return S.tryUnsubscribe()}},[w,S]),h};var n=r(d[1]),u=t(r(d[2])),c=r(d[3]),o=t(r(d[4])),s='undefined'!=typeof window?n.useLayoutEffect:n.useEffect,f=function(t,n){return t===n}},575,[3,13,555,574,549]); -__d(function(g,r,i,a,m,e,d){"use strict";e.__esModule=!0;var t=r(d[0]);e.unstable_batchedUpdates=t.unstable_batchedUpdates},576,[17]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),l=t(r(d[2])),u=t(r(d[3])),f=r(d[4]),o=new((function(){function t(){(0,l.default)(this,t),this._elements=[]}return(0,u.default)(t,[{key:"applyMiddleware",value:function(){for(var t=arguments.length,l=new Array(t),u=0;u0&&void 0!==arguments[0]?arguments[0]:{};return(0,f.combineReducers)((0,n.default)({},this._elements,t))}},{key:"register",value:function(t,n){this._elements[t]=n}}]),t})());e.default=o},578,[3,54,4,5,561]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var s=t(r(d[1])),n=t(r(d[2])),o=t(r(d[3])),l=new((function(){function t(){(0,s.default)(this,t),this._selectorListeners=new Set}return(0,n.default)(t,[{key:"_listener",value:function(t){var s=t.prevSelections,n=t.store,l=this._selectorListeners,u=Array.isArray(l),c=0;for(l=u?l:l["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var f;if(u){if(c>=l.length)break;f=l[c++]}else{if((c=l.next()).done)break;f=c.value}var v=f,b=s.get(v);try{var y=v.selector(n.getState(),b);b!==y&&(s.set(v,y),v.listener(y,n,b))}catch(t){o.default.error(t)}}}},{key:"register",value:function(t,s){this._selectorListeners.add({listener:s,selector:t})}},{key:"subscribe",value:function(t){this._selectorListeners.size&&t.subscribe(this._listener.bind(this,{prevSelections:new Map,store:t}))}}]),t})());e.default=l},579,[3,4,5,580]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=(0,r(d[0]).getLogger)('features/base/redux');e.default=t},580,[581]); -__d(function(g,r,i,a,m,e,d){var o=r(d[0]),t=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.getLogger=function(o){var t='ReactNative'===navigator.product?f:v;return(0,n.getLogger)(o,void 0,t)},e._initLogging=void 0;var l=t(r(d[2])),n=o(r(d[3])),u=t(r(d[4])),v={},f={disableCallerInfo:!0};var s=l.default.once(function(){if('ReactNative'===navigator.product){var o=r(d[5]).default;n.default.setGlobalOptions(f),o.setGlobalLogOptions(f),n.default.removeGlobalTransport(console),o.removeGlobalLogTransport(console),n.default.addGlobalTransport(u.default),o.addGlobalLogTransport(u.default)}});e._initLogging=s},581,[2,3,541,582,585,389]); -__d(function(g,r,i,a,m,e,d){var o=r(d[0]),l=r(d[1]),t={},n=[],s=o.levels.TRACE;m.exports={addGlobalTransport:function(l){o.addGlobalTransport(l)},removeGlobalTransport:function(l){o.removeGlobalTransport(l)},setGlobalOptions:function(l){o.setGlobalOptions(l)},getLogger:function(l,v,f){var u=new o(s,l,v,f);return l?(t[l]=t[l]||[],t[l].push(u)):n.push(u),u},setLogLevelById:function(o,l){for(var s=l?t[l]||[]:n,v=0;v1&&O.push("<"+h.methodName+">: ");var N=O.concat(f);b.bind(v).apply(v,N)}}}function c(n,o,l,c){this.id=o,this.options=c||{},this.transports=l,this.transports||(this.transports=[]),this.level=t[n];for(var f=Object.keys(t),h=0;h=this.maxEntryLength&&this._flush(!0,!0)},s.prototype.start=function(){this._reschedulePublishInterval()},s.prototype._reschedulePublishInterval=function(){this.storeLogsIntervalID&&(window.clearTimeout(this.storeLogsIntervalID),this.storeLogsIntervalID=null),this.storeLogsIntervalID=window.setTimeout(this._flush.bind(this,!1,!0),this.storeInterval)},s.prototype.flush=function(){this._flush(!1,!0)},s.prototype._flush=function(t,s){this.totalLen>0&&(this.logStorage.isReady()||t)&&(this.logStorage.isReady()?(this.outputCache.length&&(this.outputCache.forEach(function(t){this.logStorage.storeLogs(t)}.bind(this)),this.outputCache=[]),this.logStorage.storeLogs(this.queue)):this.outputCache.push(this.queue),this.queue=[],this.totalLen=0),s&&this._reschedulePublishInterval()},s.prototype.stop=function(){this._flush(!1,!1)},m.exports=s},584,[583]); -__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=n(r(d[1])),o=r(d[2]),u=r(d[3]),f=o.NativeModules.LogBridge;function c(n){var t,o=n.stack;return'function'==typeof n.cause&&(t=n.cause())&&(o+="\nCaused by: "+c(t)),o}var s=['trace','debug','info','log','warn','error'].reduce(function(n,o){return n[o]=function(n){for(var s=arguments.length,v=new Array(s>1?s-1:0),l=1;l=l)return t;switch(t){case'%s':return String(c[u++]);case'%d':return Number(c[u++]);case'%j':try{return JSON.stringify(c[u++])}catch(t){return'[Circular]'}default:return t}}),f=c[u];u=3&&(o.depth=arguments[2]),arguments.length>=4&&(o.colors=arguments[3]),E(n)?o.showHidden=n:n&&e._extend(o,n),D(o.showHidden)&&(o.showHidden=!1),D(o.depth)&&(o.depth=2),D(o.colors)&&(o.colors=!1),D(o.customInspect)&&(o.customInspect=!0),o.colors&&(o.stylize=l),y(o,t,o.depth)}function l(t,n){var o=s.styles[n];return o?"\x1b["+s.colors[o][0]+'m'+t+"\x1b["+s.colors[o][1]+'m':t}function p(t,n){return t}function f(t){var n={};return t.forEach(function(t,o){n[t]=!0}),n}function y(t,n,o){if(t.customInspect&&n&&F(n.inspect)&&n.inspect!==e.inspect&&(!n.constructor||n.constructor.prototype!==n)){var u=n.inspect(o,t);return x(u)||(u=y(t,u,o)),u}var c=b(t,n);if(c)return c;var s=Object.keys(n),l=f(s);if(t.showHidden&&(s=Object.getOwnPropertyNames(n)),$(n)&&(s.indexOf('message')>=0||s.indexOf('description')>=0))return h(n);if(0===s.length){if(F(n)){var p=n.name?': '+n.name:'';return t.stylize('[Function'+p+']','special')}if(P(n))return t.stylize(RegExp.prototype.toString.call(n),'regexp');if(T(n))return t.stylize(Date.prototype.toString.call(n),'date');if($(n))return h(n)}var E,S='',z=!1,D=['{','}'];(w(n)&&(z=!0,D=['[',']']),F(n))&&(S=' [Function'+(n.name?': '+n.name:'')+']');return P(n)&&(S=' '+RegExp.prototype.toString.call(n)),T(n)&&(S=' '+Date.prototype.toUTCString.call(n)),$(n)&&(S=' '+h(n)),0!==s.length||z&&0!=n.length?o<0?P(n)?t.stylize(RegExp.prototype.toString.call(n),'regexp'):t.stylize('[Object]','special'):(t.seen.push(n),E=z?v(t,n,o,l,s):s.map(function(u){return O(t,n,o,l,u,z)}),t.seen.pop(),j(E,S,D)):D[0]+S+D[1]}function b(t,n){if(D(n))return t.stylize('undefined','undefined');if(x(n)){var o='\''+JSON.stringify(n).replace(/^"|"$/g,'').replace(/'/g,"\\'").replace(/\\"/g,'"')+'\'';return t.stylize(o,'string')}return z(n)?t.stylize(''+n,'number'):E(n)?t.stylize(''+n,'boolean'):S(n)?t.stylize('null','null'):void 0}function h(t){return'['+Error.prototype.toString.call(t)+']'}function v(t,n,o,u,c){for(var s=[],l=0,p=n.length;l-1&&(p=s?p.split('\n').map(function(t){return' '+t}).join('\n').substr(2):'\n'+p.split('\n').map(function(t){return' '+t}).join('\n')):p=t.stylize('[Circular]','special')),D(l)){if(s&&c.match(/^\d+$/))return p;(l=JSON.stringify(''+c)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(l=l.substr(1,l.length-2),l=t.stylize(l,'name')):(l=l.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),l=t.stylize(l,'string'))}return l+': '+p}function j(t,n,o){return t.reduce(function(t,n){return 0,n.indexOf('\n')>=0&&0,t+n.replace(/\u001b\[\d\d?m/g,'').length+1},0)>60?o[0]+(''===n?'':n+'\n ')+' '+t.join(',\n ')+' '+o[1]:o[0]+n+' '+t.join(', ')+' '+o[1]}function w(t){return Array.isArray(t)}function E(t){return'boolean'==typeof t}function S(t){return null===t}function z(t){return'number'==typeof t}function x(t){return'string'==typeof t}function D(t){return void 0===t}function P(t){return N(t)&&'[object RegExp]'===_(t)}function N(t){return'object'==typeof t&&null!==t}function T(t){return N(t)&&'[object Date]'===_(t)}function $(t){return N(t)&&('[object Error]'===_(t)||t instanceof Error)}function F(t){return'function'==typeof t}function _(t){return Object.prototype.toString.call(t)}function k(t){return t<10?'0'+t.toString(10):t.toString(10)}e.debuglog=function(t){if(t=t.toUpperCase(),!o[t])if(u.test(t)){var n=process.pid;o[t]=function(){var o=e.format.apply(e,arguments);console.error('%s %d: %s',t,n,o)}}else o[t]=function(){};return o[t]},e.inspect=s,s.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]},s.styles={special:'cyan',number:'yellow',boolean:'yellow',undefined:'grey',null:'bold',string:'green',date:'magenta',regexp:'red'},e.types=r(d[0]),e.isArray=w,e.isBoolean=E,e.isNull=S,e.isNullOrUndefined=function(t){return null==t},e.isNumber=z,e.isString=x,e.isSymbol=function(t){return'symbol'==typeof t},e.isUndefined=D,e.isRegExp=P,e.types.isRegExp=P,e.isObject=N,e.isDate=T,e.types.isDate=T,e.isError=$,e.types.isNativeError=$,e.isFunction=F,e.isPrimitive=function(t){return null===t||'boolean'==typeof t||'number'==typeof t||'string'==typeof t||'symbol'==typeof t||void 0===t},e.isBuffer=r(d[1]);var A=['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];function R(t,n){return Object.prototype.hasOwnProperty.call(t,n)}e.log=function(){var t,n;console.log('%s - %s',(t=new Date,n=[k(t.getHours()),k(t.getMinutes()),k(t.getSeconds())].join(':'),[t.getDate(),A[t.getMonth()],n].join(' ')),e.format.apply(e,arguments))},e.inherits=r(d[2]),e._extend=function(t,n){if(!n||!N(n))return t;for(var o=Object.keys(n),u=o.length;u--;)t[o[u]]=n[o[u]];return t};var U='undefined'!=typeof Symbol?Symbol('util.promisify.custom'):void 0;function J(t,n){if(!t){var o=new Error('Promise was rejected with a falsy value');o.reason=t,t=o}return n(t)}e.promisify=function(n){if('function'!=typeof n)throw new TypeError('The "original" argument must be of type Function');if(U&&n[U]){var o;if('function'!=typeof(o=n[U]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(o,U,{value:o,enumerable:!1,writable:!1,configurable:!0}),o}function o(){for(var t,o,u=new Promise(function(n,u){t=n,o=u}),c=[],s=0;s=0&&'[object Array]'!==o.call(t)&&'[object Function]'===o.call(t.callee)},l=(function(){return n(arguments)})();n.isLegacyArguments=c,m.exports=l?n:c},589,[]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=Object.prototype.toString,o=Function.prototype.toString,n=/^\s*(?:function)?\*/,c='function'==typeof Symbol&&'symbol'==typeof("function"==typeof Symbol?Symbol.toStringTag:"@@toStringTag"),u=Object.getPrototypeOf,f=(function(){if(!c)return!1;try{return Function('return function*() {}')()}catch(t){}})(),y=f?u(f):{};m.exports=function(f){return'function'==typeof f&&(!!n.test(o.call(f))||(c?u(f)===y:'[object GeneratorFunction]'===t.call(f)))}},590,[]); -__d(function(g,r,i,a,m,e,d){'function'==typeof Object.create?m.exports=function(t,o){t.super_=o,t.prototype=Object.create(o.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}})}:m.exports=function(t,o){t.super_=o;var p=function(){};p.prototype=o.prototype,t.prototype=new p,t.prototype.constructor=t}},591,[]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})});var u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}})});var o=r(d[3]);Object.keys(o).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return o[t]}})});var c=r(d[4]);Object.keys(c).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return c[t]}})}),r(d[5]),r(d[6])},592,[593,607,609,608,744,745,746]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.clearNotifications=function(){return{type:u.CLEAR_NOTIFICATIONS}},e.hideNotification=function(t){return{type:u.HIDE_NOTIFICATION,uid:t}},e.setNotificationsEnabled=function(t){return{type:u.SET_NOTIFICATIONS_ENABLED,enabled:t}},e.showErrorNotification=function(t){return f((0,n.default)({},t,{appearance:c.NOTIFICATION_TYPE.ERROR}))},e.showNotification=f,e.showWarningNotification=function(t){return f((0,n.default)({},t,{appearance:c.NOTIFICATION_TYPE.WARNING}))},e.showParticipantJoinedNotification=function(t){return I.push(t),function(t){return N(t)}};var n=t(r(d[1])),o=t(r(d[2])),u=r(d[3]),c=r(d[4]);function f(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;return{type:u.SHOW_NOTIFICATION,props:t,timeout:n,uid:window.Date.now()}}var I=[],N=(0,o.default)(function(t){var n,o=I.length;o>=3?n={titleArguments:{name:I[0],count:o-1},titleKey:'notify.connectedThreePlusMembers'}:2===o?n={titleArguments:{first:I[0],second:I[1]},titleKey:'notify.connectedTwoMembers'}:o&&(n={titleArguments:{name:I[0]},titleKey:'notify.connectedOneMember'}),n&&t(f(n,c.NOTIFICATION_TIMEOUT)),I=[]},500,{leading:!1})},593,[3,54,594,607,608]); -__d(function(g,r,i,a,m,e,d){var n=r(d[0]),t=r(d[1]),o='Expected a function';m.exports=function(f,l,c){var u=!0,p=!0;if('function'!=typeof f)throw new TypeError(o);return t(c)&&(u='leading'in c?!!c.leading:u,p='trailing'in c?!!c.trailing:p),n(f,l,{leading:u,maxWait:l,trailing:p})}},594,[595,596]); -__d(function(g,r,i,a,m,e,d){var n=r(d[0]),t=r(d[1]),o=r(d[2]),u='Expected a function',f=Math.max,c=Math.min;m.exports=function(v,l,s){var T,p,h,x,y,w,E=0,M=!1,W=!1,_=!0;if('function'!=typeof v)throw new TypeError(u);function b(n){var t=T,o=p;return T=p=void 0,E=n,x=v.apply(o,t)}function j(n){return E=n,y=setTimeout(z,l),M?b(n):x}function k(n){var t=l-(n-w);return W?c(t,h-(n-E)):t}function q(n){var t=n-w;return void 0===w||t>=l||t<0||W&&n-E>=h}function z(){var n=t();if(q(n))return A(n);y=setTimeout(z,k(n))}function A(n){return y=void 0,_&&T?b(n):(T=p=void 0,x)}function B(){var n=t(),o=q(n);if(T=arguments,p=this,w=n,o){if(void 0===y)return j(w);if(W)return clearTimeout(y),y=setTimeout(z,l),b(w)}return void 0===y&&(y=setTimeout(z,l)),x}return l=o(l)||0,n(s)&&(M=!!s.leading,h=(W='maxWait'in s)?f(o(s.maxWait)||0,l):h,_='trailing'in s?!!s.trailing:_),B.cancel=function(){void 0!==y&&clearTimeout(y),E=0,T=w=p=y=void 0},B.flush=function(){return void 0===y?x:A(t())},B}},595,[596,597,600]); -__d(function(g,r,i,a,m,e,d){m.exports=function(n){var t=typeof n;return null!=n&&('object'==t||'function'==t)}},596,[]); -__d(function(g,r,i,a,m,e,d){var n=r(d[0]);m.exports=function(){return n.Date.now()}},597,[598]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]),f='object'==typeof self&&self&&self.Object===Object&&self,s=t||f||Function('return this')();m.exports=s},598,[599]); -__d(function(g,r,i,a,m,e,d){var t='object'==typeof g&&g&&g.Object===Object&&g;m.exports=t},599,[]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]),f=r(d[1]),n=NaN,u=/^\s+|\s+$/g,s=/^[-+]0x[0-9a-f]+$/i,o=/^0b[01]+$/i,p=/^0o[0-7]+$/i,c=parseInt;m.exports=function(v){if('number'==typeof v)return v;if(f(v))return n;if(t(v)){var l='function'==typeof v.valueOf?v.valueOf():v;v=t(l)?l+'':l}if('string'!=typeof v)return 0===v?v:+v;v=v.replace(u,'');var $=o.test(v);return $||p.test(v)?c(v.slice(2),$?2:8):s.test(v)?n:+v}},600,[596,601]); -__d(function(g,r,i,a,m,e,d){var o=r(d[0]),t=r(d[1]),n='[object Symbol]';m.exports=function(b){return'symbol'==typeof b||t(b)&&o(b)==n}},601,[602,606]); -__d(function(g,r,i,a,m,e,d){var n=r(d[0]),t=r(d[1]),o=r(d[2]),c='[object Null]',u='[object Undefined]',f=n?"function"==typeof n?n.toStringTag:"@@toStringTag":void 0;m.exports=function(n){return null==n?void 0===n?u:c:f&&f in Object(n)?t(n):o(n)}},602,[603,604,605]); -__d(function(g,r,i,a,m,e,d){var o=r(d[0]).Symbol;m.exports=o},603,[598]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]),o=Object.prototype,n=o.hasOwnProperty,c=o.toString,l=t?"function"==typeof t?t.toStringTag:"@@toStringTag":void 0;m.exports=function(t){var o=n.call(t,l),p=t[l];try{t[l]=void 0}catch(t){}var v=c.call(t);return o?t[l]=p:delete t[l],v}},604,[603]); -__d(function(g,r,i,a,m,e,d){var t=Object.prototype.toString;m.exports=function(n){return t.call(n)}},605,[]); -__d(function(g,r,i,a,m,e,d){m.exports=function(n){return null!=n&&'object'==typeof n}},606,[]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.SET_NOTIFICATIONS_ENABLED=e.SHOW_NOTIFICATION=e.HIDE_NOTIFICATION=e.CLEAR_NOTIFICATIONS=void 0;e.CLEAR_NOTIFICATIONS='CLEAR_NOTIFICATIONS';e.HIDE_NOTIFICATION='HIDE_NOTIFICATION';e.SHOW_NOTIFICATION='SHOW_NOTIFICATION';e.SET_NOTIFICATIONS_ENABLED='SET_NOTIFICATIONS_ENABLED'},607,[]); -__d(function(g,r,i,a,m,e,d){var I=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.NOTIFICATION_TYPE_PRIORITIES=e.NOTIFICATION_TYPE=e.NOTIFICATION_TIMEOUT=void 0;var O,T=I(r(d[1]));e.NOTIFICATION_TIMEOUT=2500;var N={ERROR:'error',INFO:'info',NORMAL:'normal',SUCCESS:'success',WARNING:'warning'};e.NOTIFICATION_TYPE=N;var R=(O={},(0,T.default)(O,N.ERROR,5),(0,T.default)(O,N.INFO,3),(0,T.default)(O,N.NORMAL,3),(0,T.default)(O,N.SUCCESS,3),(0,T.default)(O,N.WARNING,4),O);e.NOTIFICATION_TYPE_PRIORITIES=R},608,[3,55]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},609,[610]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"Notification",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(e,"NotificationsContainer",{enumerable:!0,get:function(){return o.default}});var n=t(r(d[1])),o=t(r(d[2]))},610,[3,611,742]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),l=t(r(d[2])),u=t(r(d[3])),s=t(r(d[4])),o=t(r(d[5])),f=t(r(d[6])),c=r(d[7]),y=r(d[8]),p=r(d[9]),h=t(r(d[10])),v=t(r(d[11])),E=(function(t){function y(){return(0,n.default)(this,y),(0,u.default)(this,(0,s.default)(y).apply(this,arguments))}return(0,o.default)(y,t),(0,l.default)(y,[{key:"render",value:function(){var t=this.props.isDismissAllowed;return f.default.createElement(c.View,{pointerEvents:"box-none",style:v.default.notification},f.default.createElement(c.View,{style:v.default.contentColumn},f.default.createElement(c.View,{pointerEvents:"box-none",style:v.default.notificationContent},this._renderContent())),t&&f.default.createElement(c.TouchableOpacity,{onPress:this._onDismissed},f.default.createElement(p.Icon,{src:p.IconClose,style:v.default.dismissIcon})))}},{key:"_renderContent",value:function(){var t=this.props,n=t.t,l=t.title,u=t.titleArguments,s=t.titleKey,o=l||s&&n(s,u),y=this._getDescription();return y&&y.length?y.map(function(t,n){return f.default.createElement(c.Text,{key:n,numberOfLines:1,style:v.default.contentText},t)}):f.default.createElement(c.Text,{numberOfLines:1,style:v.default.contentText},o)}}]),y})(h.default),_=(0,y.translate)(E);e.default=_},611,[3,4,5,6,9,10,13,17,612,403,740,741]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0});var n={i18next:!0,DEFAULT_LANGUAGE:!0,LANGUAGES:!0};Object.defineProperty(e,"i18next",{enumerable:!0,get:function(){return c.default}}),Object.defineProperty(e,"DEFAULT_LANGUAGE",{enumerable:!0,get:function(){return c.DEFAULT_LANGUAGE}}),Object.defineProperty(e,"LANGUAGES",{enumerable:!0,get:function(){return c.LANGUAGES}});var o=r(d[1]);Object.keys(o).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(n,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return o[t]}}))});var u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(n,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}}))});var c=t(r(d[3]))},612,[2,613,710,615]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.getLocalizedDateFormatter=function(t){return(0,n.default)(t).locale(o())},e.getLocalizedDurationFormatter=function(t){if('0'!==n.default.duration(t).format('h'))return n.default.duration(t).format('h:mm:ss');return n.default.duration(t).format('mm:ss',{trim:!1})};var n=t(r(d[1])),u=t(r(d[2]));function o(){var t,o=u.default.language;if(o){var f=new RegExp('^([a-z]{2,2})(-)*([a-z]{2,2})*$').exec(o.toLowerCase());if(f){var l=new RegExp("^"+f[1]+"(-)*"+("("+f[3]+")*"||''));t=n.default.locales().find(function(t){return l.exec(t)})}}return t||'en'}r(d[3]),r(d[4]),r(d[5]),r(d[6]),r(d[7]),r(d[8]),r(d[9]),r(d[10]),r(d[11]),r(d[12]),r(d[13]),r(d[14]),r(d[15]),r(d[16]),r(d[17]),r(d[18]),r(d[19]),r(d[20])},613,[3,614,615,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709]); -__d(function(g,r,i,a,m,e,d){var t,n;t=this,n=function(){'use strict';var t,n;function s(){return t.apply(null,arguments)}function o(t){return t instanceof Array||'[object Array]'===Object.prototype.toString.call(t)}function u(t){return null!=t&&'[object Object]'===Object.prototype.toString.call(t)}function l(t){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(t).length;var n;for(n in t)if(t.hasOwnProperty(n))return!1;return!0}function h(t){return void 0===t}function c(t){return'number'==typeof t||'[object Number]'===Object.prototype.toString.call(t)}function f(t){return t instanceof Date||'[object Date]'===Object.prototype.toString.call(t)}function _(t,n){var s,o=[];for(s=0;s>>0,o=0;o0)for(s=0;s=0?s?'+':'':'-')+Math.pow(10,Math.max(0,u)).toString().substr(1)+o}var $=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,J=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,q={},B={};function Q(t,n,s,o){var u=o;'string'==typeof o&&(u=function(){return this[o]()}),t&&(B[t]=u),n&&(B[n[0]]=function(){return Z(u.apply(this,arguments),n[1],n[2])}),s&&(B[s]=function(){return this.localeData().ordinal(u.apply(this,arguments),t)})}function X(t){var n,s,o,u=t.match($);for(n=0,s=u.length;n=0&&J.test(t);)t=t.replace(J,o),J.lastIndex=0,s-=1;return t}var te=/\d/,ne=/\d\d/,se=/\d{3}/,ie=/\d{4}/,re=/[+-]?\d{6}/,ae=/\d\d?/,oe=/\d\d\d\d?/,ue=/\d\d\d\d\d\d?/,le=/\d{1,3}/,de=/\d{1,4}/,he=/[+-]?\d{1,6}/,ce=/\d+/,fe=/[+-]?\d+/,me=/Z|[+-]\d\d:?\d\d/gi,_e=/Z|[+-]\d\d(?::?\d\d)?/gi,ye=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,ge={};function ve(t,n,s){ge[t]=N(n)?n:function(t,o){return t&&s?s:n}}function pe(t,n){return y(ge,t)?ge[t](n._strict,n._locale):new RegExp(we(t.replace('\\','').replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,n,s,o,u){return n||s||o||u})))}function we(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,'\\$&')}var Me={};function ke(t,n){var s,o=n;for('string'==typeof t&&(t=[t]),c(n)&&(o=function(t,s){s[n]=b(t)}),s=0;s68?1900:2e3)};var Ne,He=Le('FullYear',!0);function Le(t,n){return function(o){return null!=o?(Ve(this,t,o),s.updateOffset(this,n),this):Ge(this,t)}}function Ge(t,n){return t.isValid()?t._d['get'+(t._isUTC?'UTC':'')+n]():NaN}function Ve(t,n,s){t.isValid()&&!isNaN(s)&&('FullYear'===n&&Ue(t.year())&&1===t.month()&&29===t.date()?t._d['set'+(t._isUTC?'UTC':'')+n](s,t.month(),je(s,t.month())):t._d['set'+(t._isUTC?'UTC':'')+n](s))}function je(t,n){if(isNaN(t)||isNaN(n))return NaN;var s,o=(n%(s=12)+s)%s;return t+=(n-o)/12,1===o?Ue(t)?29:28:31-o%7%2}Ne=Array.prototype.indexOf?Array.prototype.indexOf:function(t){var n;for(n=0;n=0&&isFinite(c.getFullYear())&&c.setFullYear(t),c}function Xe(t){var n=new Date(Date.UTC.apply(null,arguments));return t<100&&t>=0&&isFinite(n.getUTCFullYear())&&n.setUTCFullYear(t),n}function Ke(t,n,s){var o=7+n-s;return-((7+Xe(t,0,o).getUTCDay()-n)%7)+o-1}function et(t,n,s,o,u){var l,h,c=1+7*(n-1)+(7+s-o)%7+Ke(t,o,u);return c<=0?h=Fe(l=t-1)+c:c>Fe(t)?(l=t+1,h=c-Fe(t)):(l=t,h=c),{year:l,dayOfYear:h}}function tt(t,n,s){var o,u,l=Ke(t.year(),n,s),h=Math.floor((t.dayOfYear()-l-1)/7)+1;return h<1?o=h+nt(u=t.year()-1,n,s):h>nt(t.year(),n,s)?(o=h-nt(t.year(),n,s),u=t.year()+1):(u=t.year(),o=h),{week:o,year:u}}function nt(t,n,s){var o=Ke(t,n,s),u=Ke(t+1,n,s);return(Fe(t)-o+u)/7}Q('w',['ww',2],'wo','week'),Q('W',['WW',2],'Wo','isoWeek'),V('week','w'),V('isoWeek','W'),A('week',5),A('isoWeek',5),ve('w',ae),ve('ww',ae,ne),ve('W',ae),ve('WW',ae,ne),Se(['w','ww','W','WW'],function(t,n,s,o){n[o.substr(0,1)]=b(t)});function st(t,n){return'string'!=typeof t?t:isNaN(t)?'number'==typeof(t=n.weekdaysParse(t))?t:null:parseInt(t,10)}function it(t,n){return'string'==typeof t?n.weekdaysParse(t)%7||7:isNaN(t)?null:t}Q('d',0,'do','day'),Q('dd',0,0,function(t){return this.localeData().weekdaysMin(this,t)}),Q('ddd',0,0,function(t){return this.localeData().weekdaysShort(this,t)}),Q('dddd',0,0,function(t){return this.localeData().weekdays(this,t)}),Q('e',0,0,'weekday'),Q('E',0,0,'isoWeekday'),V('day','d'),V('weekday','e'),V('isoWeekday','E'),A('day',11),A('weekday',11),A('isoWeekday',11),ve('d',ae),ve('e',ae),ve('E',ae),ve('dd',function(t,n){return n.weekdaysMinRegex(t)}),ve('ddd',function(t,n){return n.weekdaysShortRegex(t)}),ve('dddd',function(t,n){return n.weekdaysRegex(t)}),Se(['dd','ddd','dddd'],function(t,n,s,o){var u=s._locale.weekdaysParse(t,o,s._strict);null!=u?n.d=u:w(s).invalidWeekday=t}),Se(['d','e','E'],function(t,n,s,o){n[o]=b(t)});var rt='Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_');var at='Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_');var ot='Su_Mo_Tu_We_Th_Fr_Sa'.split('_');function ut(t,n,s){var o,u,l,h=t.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],o=0;o<7;++o)l=p([2e3,1]).day(o),this._minWeekdaysParse[o]=this.weekdaysMin(l,'').toLocaleLowerCase(),this._shortWeekdaysParse[o]=this.weekdaysShort(l,'').toLocaleLowerCase(),this._weekdaysParse[o]=this.weekdays(l,'').toLocaleLowerCase();return s?'dddd'===n?-1!==(u=Ne.call(this._weekdaysParse,h))?u:null:'ddd'===n?-1!==(u=Ne.call(this._shortWeekdaysParse,h))?u:null:-1!==(u=Ne.call(this._minWeekdaysParse,h))?u:null:'dddd'===n?-1!==(u=Ne.call(this._weekdaysParse,h))?u:-1!==(u=Ne.call(this._shortWeekdaysParse,h))?u:-1!==(u=Ne.call(this._minWeekdaysParse,h))?u:null:'ddd'===n?-1!==(u=Ne.call(this._shortWeekdaysParse,h))?u:-1!==(u=Ne.call(this._weekdaysParse,h))?u:-1!==(u=Ne.call(this._minWeekdaysParse,h))?u:null:-1!==(u=Ne.call(this._minWeekdaysParse,h))?u:-1!==(u=Ne.call(this._weekdaysParse,h))?u:-1!==(u=Ne.call(this._shortWeekdaysParse,h))?u:null}var lt=ye;var dt=ye;var ht=ye;function ct(){function t(t,n){return n.length-t.length}var n,s,o,u,l,h=[],c=[],f=[],_=[];for(n=0;n<7;n++)s=p([2e3,1]).day(n),o=this.weekdaysMin(s,''),u=this.weekdaysShort(s,''),l=this.weekdays(s,''),h.push(o),c.push(u),f.push(l),_.push(o),_.push(u),_.push(l);for(h.sort(t),c.sort(t),f.sort(t),_.sort(t),n=0;n<7;n++)c[n]=we(c[n]),f[n]=we(f[n]),_[n]=we(_[n]);this._weekdaysRegex=new RegExp('^('+_.join('|')+')','i'),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp('^('+f.join('|')+')','i'),this._weekdaysShortStrictRegex=new RegExp('^('+c.join('|')+')','i'),this._weekdaysMinStrictRegex=new RegExp('^('+h.join('|')+')','i')}function ft(){return this.hours()%12||12}function mt(t,n){Q(t,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),n)})}function _t(t,n){return n._meridiemParse}Q('H',['HH',2],0,'hour'),Q('h',['hh',2],0,ft),Q('k',['kk',2],0,function(){return this.hours()||24}),Q('hmm',0,0,function(){return''+ft.apply(this)+Z(this.minutes(),2)}),Q('hmmss',0,0,function(){return''+ft.apply(this)+Z(this.minutes(),2)+Z(this.seconds(),2)}),Q('Hmm',0,0,function(){return''+this.hours()+Z(this.minutes(),2)}),Q('Hmmss',0,0,function(){return''+this.hours()+Z(this.minutes(),2)+Z(this.seconds(),2)}),mt('a',!0),mt('A',!1),V('hour','h'),A('hour',13),ve('a',_t),ve('A',_t),ve('H',ae),ve('h',ae),ve('k',ae),ve('HH',ae,ne),ve('hh',ae,ne),ve('kk',ae,ne),ve('hmm',oe),ve('hmmss',ue),ve('Hmm',oe),ve('Hmmss',ue),ke(['H','HH'],xe),ke(['k','kk'],function(t,n,s){var o=b(t);n[xe]=24===o?0:o}),ke(['a','A'],function(t,n,s){s._isPm=s._locale.isPM(t),s._meridiem=t}),ke(['h','hh'],function(t,n,s){n[xe]=b(t),w(s).bigHour=!0}),ke('hmm',function(t,n,s){var o=t.length-2;n[xe]=b(t.substr(0,o)),n[be]=b(t.substr(o)),w(s).bigHour=!0}),ke('hmmss',function(t,n,s){var o=t.length-4,u=t.length-2;n[xe]=b(t.substr(0,o)),n[be]=b(t.substr(o,2)),n[Pe]=b(t.substr(u)),w(s).bigHour=!0}),ke('Hmm',function(t,n,s){var o=t.length-2;n[xe]=b(t.substr(0,o)),n[be]=b(t.substr(o))}),ke('Hmmss',function(t,n,s){var o=t.length-4,u=t.length-2;n[xe]=b(t.substr(0,o)),n[be]=b(t.substr(o,2)),n[Pe]=b(t.substr(u))});var yt,gt=Le('Hours',!0),vt={calendar:{sameDay:'[Today at] LT',nextDay:'[Tomorrow at] LT',nextWeek:'dddd [at] LT',lastDay:'[Yesterday at] LT',lastWeek:'[Last] dddd [at] LT',sameElse:'L'},longDateFormat:{LTS:'h:mm:ss A',LT:'h:mm A',L:'MM/DD/YYYY',LL:'MMMM D, YYYY',LLL:'MMMM D, YYYY h:mm A',LLLL:'dddd, MMMM D, YYYY h:mm A'},invalidDate:'Invalid date',ordinal:'%d',dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:'in %s',past:'%s ago',s:'a few seconds',ss:'%d seconds',m:'a minute',mm:'%d minutes',h:'an hour',hh:'%d hours',d:'a day',dd:'%d days',M:'a month',MM:'%d months',y:'a year',yy:'%d years'},months:Ee,monthsShort:Ae,week:{dow:0,doy:6},weekdays:rt,weekdaysMin:ot,weekdaysShort:at,meridiemParse:/[ap]\.?m?\.?/i},pt={},wt={};function Mt(t){return t?t.toLowerCase().replace('_','-'):t}function kt(t){for(var n,s,o,u,l=0;l0;){if(o=St(u.slice(0,n).join('-')))return o;if(s&&s.length>=n&&P(u,s,!0)>=n-1)break;n--}l++}return null}function St(t){var n=null;if(!pt[t]&&void 0!==m&&m&&m.exports)try{n=yt._abbr,r('./locale/'+t),Dt(n)}catch(t){}return pt[t]}function Dt(t,n){var s;return t&&(s=h(n)?Ot(t):Yt(t,n))&&(yt=s),yt._abbr}function Yt(t,n){if(null!==n){var s=vt;if(n.abbr=t,null!=pt[t])U('defineLocaleOverride',"use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),s=pt[t]._config;else if(null!=n.parentLocale){if(null==pt[n.parentLocale])return wt[n.parentLocale]||(wt[n.parentLocale]=[]),wt[n.parentLocale].push({name:t,config:n}),null;s=pt[n.parentLocale]._config}return pt[t]=new L(H(s,n)),wt[t]&&wt[t].forEach(function(t){Yt(t.name,t.config)}),Dt(t),pt[t]}return delete pt[t],null}function Ot(t){var n;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return yt;if(!o(t)){if(n=St(t))return n;t=[t]}return kt(t)}function Tt(t){var n,s=t._a;return s&&-2===w(t).overflow&&(n=s[Oe]<0||s[Oe]>11?Oe:s[Te]<1||s[Te]>je(s[Ye],s[Oe])?Te:s[xe]<0||s[xe]>24||24===s[xe]&&(0!==s[be]||0!==s[Pe]||0!==s[We])?xe:s[be]<0||s[be]>59?be:s[Pe]<0||s[Pe]>59?Pe:s[We]<0||s[We]>999?We:-1,w(t)._overflowDayOfYear&&(nTe)&&(n=Te),w(t)._overflowWeeks&&-1===n&&(n=Re),w(t)._overflowWeekday&&-1===n&&(n=Ce),w(t).overflow=n),t}function xt(t,n,s){return null!=t?t:null!=n?n:s}function bt(t){var n=new Date(s.now());return t._useUTC?[n.getUTCFullYear(),n.getUTCMonth(),n.getUTCDate()]:[n.getFullYear(),n.getMonth(),n.getDate()]}function Pt(t){var n,s,o,u,l,h=[];if(!t._d){for(o=bt(t),t._w&&null==t._a[Te]&&null==t._a[Oe]&&Wt(t),null!=t._dayOfYear&&(l=xt(t._a[Ye],o[Ye]),(t._dayOfYear>Fe(l)||0===t._dayOfYear)&&(w(t)._overflowDayOfYear=!0),s=Xe(l,0,t._dayOfYear),t._a[Oe]=s.getUTCMonth(),t._a[Te]=s.getUTCDate()),n=0;n<3&&null==t._a[n];++n)t._a[n]=h[n]=o[n];for(;n<7;n++)t._a[n]=h[n]=null==t._a[n]?2===n?1:0:t._a[n];24===t._a[xe]&&0===t._a[be]&&0===t._a[Pe]&&0===t._a[We]&&(t._nextDay=!0,t._a[xe]=0),t._d=(t._useUTC?Xe:Qe).apply(null,h),u=t._useUTC?t._d.getUTCDay():t._d.getDay(),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[xe]=24),t._w&&void 0!==t._w.d&&t._w.d!==u&&(w(t).weekdayMismatch=!0)}}function Wt(t){var n,s,o,u,l,h,c,f;if(null!=(n=t._w).GG||null!=n.W||null!=n.E)l=1,h=4,s=xt(n.GG,t._a[Ye],tt(Kt(),1,4).year),o=xt(n.W,1),((u=xt(n.E,1))<1||u>7)&&(f=!0);else{l=t._locale._week.dow,h=t._locale._week.doy;var _=tt(Kt(),l,h);s=xt(n.gg,t._a[Ye],_.year),o=xt(n.w,_.week),null!=n.d?((u=n.d)<0||u>6)&&(f=!0):null!=n.e?(u=n.e+l,(n.e<0||n.e>6)&&(f=!0)):u=l}o<1||o>nt(s,l,h)?w(t)._overflowWeeks=!0:null!=f?w(t)._overflowWeekday=!0:(c=et(s,o,u,l,h),t._a[Ye]=c.year,t._dayOfYear=c.dayOfYear)}var Rt=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Ct=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Ft=/Z|[+-]\d\d(?::?\d\d)?/,Ut=[['YYYYYY-MM-DD',/[+-]\d{6}-\d\d-\d\d/],['YYYY-MM-DD',/\d{4}-\d\d-\d\d/],['GGGG-[W]WW-E',/\d{4}-W\d\d-\d/],['GGGG-[W]WW',/\d{4}-W\d\d/,!1],['YYYY-DDD',/\d{4}-\d{3}/],['YYYY-MM',/\d{4}-\d\d/,!1],['YYYYYYMMDD',/[+-]\d{10}/],['YYYYMMDD',/\d{8}/],['GGGG[W]WWE',/\d{4}W\d{3}/],['GGGG[W]WW',/\d{4}W\d{2}/,!1],['YYYYDDD',/\d{7}/]],Nt=[['HH:mm:ss.SSSS',/\d\d:\d\d:\d\d\.\d+/],['HH:mm:ss,SSSS',/\d\d:\d\d:\d\d,\d+/],['HH:mm:ss',/\d\d:\d\d:\d\d/],['HH:mm',/\d\d:\d\d/],['HHmmss.SSSS',/\d\d\d\d\d\d\.\d+/],['HHmmss,SSSS',/\d\d\d\d\d\d,\d+/],['HHmmss',/\d\d\d\d\d\d/],['HHmm',/\d\d\d\d/],['HH',/\d\d/]],Ht=/^\/?Date\((\-?\d+)/i;function Lt(t){var n,s,o,u,l,h,c=t._i,f=Rt.exec(c)||Ct.exec(c);if(f){for(w(t).iso=!0,n=0,s=Ut.length;n0&&w(t).unusedInput.push(h),c=c.slice(c.indexOf(o)+o.length),_+=o.length),B[l]?(o?w(t).empty=!1:w(t).unusedTokens.push(l),De(l,o,t)):t._strict&&!o&&w(t).unusedTokens.push(l);w(t).charsLeftOver=f-_,c.length>0&&w(t).unusedInput.push(c),t._a[xe]<=12&&!0===w(t).bigHour&&t._a[xe]>0&&(w(t).bigHour=void 0),w(t).parsedDateParts=t._a.slice(0),w(t).meridiem=t._meridiem,t._a[xe]=$t(t._locale,t._a[xe],t._meridiem),Pt(t),Tt(t)}else At(t);else Lt(t)}function $t(t,n,s){var o;return null==s?n:null!=t.meridiemHour?t.meridiemHour(n,s):null!=t.isPM?((o=t.isPM(s))&&n<12&&(n+=12),o||12!==n||(n=0),n):n}function Jt(t){var n,s,o,u,l;if(0===t._f.length)return w(t).invalidFormat=!0,void(t._d=new Date(NaN));for(u=0;uthis?this:t:k()});function nn(t,n){var s,u;if(1===n.length&&o(n[0])&&(n=n[0]),!n.length)return Kt();for(s=n[0],u=1;u(l=nt(t,o,u))&&(n=l),Wn.call(this,t,n,s,o,u))}function Wn(t,n,s,o,u){var l=et(t,n,s,o,u),h=Xe(l.year,0,l.dayOfYear);return this.year(h.getUTCFullYear()),this.month(h.getUTCMonth()),this.date(h.getUTCDate()),this}Q(0,['gg',2],0,function(){return this.weekYear()%100}),Q(0,['GG',2],0,function(){return this.isoWeekYear()%100}),bn('gggg','weekYear'),bn('ggggg','weekYear'),bn('GGGG','isoWeekYear'),bn('GGGGG','isoWeekYear'),V('weekYear','gg'),V('isoWeekYear','GG'),A('weekYear',1),A('isoWeekYear',1),ve('G',fe),ve('g',fe),ve('GG',ae,ne),ve('gg',ae,ne),ve('GGGG',de,ie),ve('gggg',de,ie),ve('GGGGG',he,re),ve('ggggg',he,re),Se(['gggg','ggggg','GGGG','GGGGG'],function(t,n,s,o){n[o.substr(0,2)]=b(t)}),Se(['gg','GG'],function(t,n,o,u){n[u]=s.parseTwoDigitYear(t)}),Q('Q',0,'Qo','quarter'),V('quarter','Q'),A('quarter',7),ve('Q',te),ke('Q',function(t,n){n[Oe]=3*(b(t)-1)}),Q('D',['DD',2],'Do','date'),V('date','D'),A('date',9),ve('D',ae),ve('DD',ae,ne),ve('Do',function(t,n){return t?n._dayOfMonthOrdinalParse||n._ordinalParse:n._dayOfMonthOrdinalParseLenient}),ke(['D','DD'],Te),ke('Do',function(t,n){n[Te]=b(t.match(ae)[0])});var Rn=Le('Date',!0);Q('DDD',['DDDD',3],'DDDo','dayOfYear'),V('dayOfYear','DDD'),A('dayOfYear',4),ve('DDD',le),ve('DDDD',se),ke(['DDD','DDDD'],function(t,n,s){s._dayOfYear=b(t)}),Q('m',['mm',2],0,'minute'),V('minute','m'),A('minute',14),ve('m',ae),ve('mm',ae,ne),ke(['m','mm'],be);var Cn=Le('Minutes',!1);Q('s',['ss',2],0,'second'),V('second','s'),A('second',15),ve('s',ae),ve('ss',ae,ne),ke(['s','ss'],Pe);var Fn,Un=Le('Seconds',!1);for(Q('S',0,0,function(){return~~(this.millisecond()/100)}),Q(0,['SS',2],0,function(){return~~(this.millisecond()/10)}),Q(0,['SSS',3],0,'millisecond'),Q(0,['SSSS',4],0,function(){return 10*this.millisecond()}),Q(0,['SSSSS',5],0,function(){return 100*this.millisecond()}),Q(0,['SSSSSS',6],0,function(){return 1e3*this.millisecond()}),Q(0,['SSSSSSS',7],0,function(){return 1e4*this.millisecond()}),Q(0,['SSSSSSSS',8],0,function(){return 1e5*this.millisecond()}),Q(0,['SSSSSSSSS',9],0,function(){return 1e6*this.millisecond()}),V('millisecond','ms'),A('millisecond',16),ve('S',le,te),ve('SS',le,ne),ve('SSS',le,se),Fn='SSSS';Fn.length<=9;Fn+='S')ve(Fn,ce);function Nn(t,n){n[We]=b(1e3*('0.'+t))}for(Fn='S';Fn.length<=9;Fn+='S')ke(Fn,Nn);var Hn=Le('Milliseconds',!1);Q('z',0,0,'zoneAbbr'),Q('zz',0,0,'zoneName');var Ln=O.prototype;function Gn(t){return t}Ln.add=Sn,Ln.calendar=function(t,n){var o=t||Kt(),u=cn(o,this).startOf('day'),l=s.calendarFormat(this,u)||'sameElse',h=n&&(N(n[l])?n[l].call(this,o):n[l]);return this.format(h||this.localeData().calendar(l,this,Kt(o)))},Ln.clone=function(){return new O(this)},Ln.diff=function(t,n,s){var o,u,l;if(!this.isValid())return NaN;if(!(o=cn(t,this)).isValid())return NaN;switch(u=6e4*(o.utcOffset()-this.utcOffset()),n=j(n)){case'year':l=Yn(this,o)/12;break;case'month':l=Yn(this,o);break;case'quarter':l=Yn(this,o)/3;break;case'second':l=(this-o)/1e3;break;case'minute':l=(this-o)/6e4;break;case'hour':l=(this-o)/36e5;break;case'day':l=(this-o-u)/864e5;break;case'week':l=(this-o-u)/6048e5;break;default:l=this-o}return s?l:x(l)},Ln.endOf=function(t){return void 0===(t=j(t))||'millisecond'===t?this:('date'===t&&(t='day'),this.startOf(t).add(1,'isoWeek'===t?'week':t).subtract(1,'ms'))},Ln.format=function(t){t||(t=this.isUtc()?s.defaultFormatUtc:s.defaultFormat);var n=K(this,t);return this.localeData().postformat(n)},Ln.from=function(t,n){return this.isValid()&&(T(t)&&t.isValid()||Kt(t).isValid())?gn({to:this,from:t}).locale(this.locale()).humanize(!n):this.localeData().invalidDate()},Ln.fromNow=function(t){return this.from(Kt(),t)},Ln.to=function(t,n){return this.isValid()&&(T(t)&&t.isValid()||Kt(t).isValid())?gn({from:this,to:t}).locale(this.locale()).humanize(!n):this.localeData().invalidDate()},Ln.toNow=function(t){return this.to(Kt(),t)},Ln.get=function(t){return N(this[t=j(t)])?this[t]():this},Ln.invalidAt=function(){return w(this).overflow},Ln.isAfter=function(t,n){var s=T(t)?t:Kt(t);return!(!this.isValid()||!s.isValid())&&('millisecond'===(n=j(h(n)?'millisecond':n))?this.valueOf()>s.valueOf():s.valueOf()9999?K(t,'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'):N(Date.prototype.toISOString)?this.toDate().toISOString():K(t,'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]')},Ln.inspect=function(){if(!this.isValid())return'moment.invalid(/* '+this._i+' */)';var t='moment',n='';this.isLocal()||(t=0===this.utcOffset()?'moment.utc':'moment.parseZone',n='Z');var s='['+t+'("]',o=0<=this.year()&&this.year()<=9999?'YYYY':'YYYYYY',u=n+'[")]';return this.format(s+o+'-MM-DD[T]HH:mm:ss.SSS'+u)},Ln.toJSON=function(){return this.isValid()?this.toISOString():null},Ln.toString=function(){return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ')},Ln.unix=function(){return Math.floor(this.valueOf()/1e3)},Ln.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},Ln.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},Ln.year=He,Ln.isLeapYear=function(){return Ue(this.year())},Ln.weekYear=function(t){return Pn.call(this,t,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},Ln.isoWeekYear=function(t){return Pn.call(this,t,this.isoWeek(),this.isoWeekday(),1,4)},Ln.quarter=Ln.quarters=function(t){return null==t?Math.ceil((this.month()+1)/3):this.month(3*(t-1)+this.month()%3)},Ln.month=$e,Ln.daysInMonth=function(){return je(this.year(),this.month())},Ln.week=Ln.weeks=function(t){var n=this.localeData().week(this);return null==t?n:this.add(7*(t-n),'d')},Ln.isoWeek=Ln.isoWeeks=function(t){var n=tt(this,1,4).week;return null==t?n:this.add(7*(t-n),'d')},Ln.weeksInYear=function(){var t=this.localeData()._week;return nt(this.year(),t.dow,t.doy)},Ln.isoWeeksInYear=function(){return nt(this.year(),1,4)},Ln.date=Rn,Ln.day=Ln.days=function(t){if(!this.isValid())return null!=t?this:NaN;var n=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(t=st(t,this.localeData()),this.add(t-n,'d')):n},Ln.weekday=function(t){if(!this.isValid())return null!=t?this:NaN;var n=(this.day()+7-this.localeData()._week.dow)%7;return null==t?n:this.add(t-n,'d')},Ln.isoWeekday=function(t){if(!this.isValid())return null!=t?this:NaN;if(null!=t){var n=it(t,this.localeData());return this.day(this.day()%7?n:n-7)}return this.day()||7},Ln.dayOfYear=function(t){var n=Math.round((this.clone().startOf('day')-this.clone().startOf('year'))/864e5)+1;return null==t?n:this.add(t-n,'d')},Ln.hour=Ln.hours=gt,Ln.minute=Ln.minutes=Cn,Ln.second=Ln.seconds=Un,Ln.millisecond=Ln.milliseconds=Hn,Ln.utcOffset=function(t,n,o){var u,l=this._offset||0;if(!this.isValid())return null!=t?this:NaN;if(null!=t){if('string'==typeof t){if(null===(t=hn(_e,t)))return this}else Math.abs(t)<16&&!o&&(t*=60);return!this._isUTC&&n&&(u=fn(this)),this._offset=t,this._isUTC=!0,null!=u&&this.add(u,'m'),l!==t&&(!n||this._changeInProgress?kn(this,gn(t-l,'m'),1,!1):this._changeInProgress||(this._changeInProgress=!0,s.updateOffset(this,!0),this._changeInProgress=null)),this}return this._isUTC?l:fn(this)},Ln.utc=function(t){return this.utcOffset(0,t)},Ln.local=function(t){return this._isUTC&&(this.utcOffset(0,t),this._isUTC=!1,t&&this.subtract(fn(this),'m')),this},Ln.parseZone=function(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if('string'==typeof this._i){var t=hn(me,this._i);null!=t?this.utcOffset(t):this.utcOffset(0,!0)}return this},Ln.hasAlignedHourOffset=function(t){return!!this.isValid()&&(t=t?Kt(t).utcOffset():0,(this.utcOffset()-t)%60==0)},Ln.isDST=function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},Ln.isLocal=function(){return!!this.isValid()&&!this._isUTC},Ln.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},Ln.isUtc=mn,Ln.isUTC=mn,Ln.zoneAbbr=function(){return this._isUTC?'UTC':''},Ln.zoneName=function(){return this._isUTC?'Coordinated Universal Time':''},Ln.dates=R('dates accessor is deprecated. Use date instead.',Rn),Ln.months=R('months accessor is deprecated. Use month instead',$e),Ln.years=R('years accessor is deprecated. Use year instead',He),Ln.zone=R('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',function(t,n){return null!=t?('string'!=typeof t&&(t=-t),this.utcOffset(t,n),this):-this.utcOffset()}),Ln.isDSTShifted=R('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',function(){if(!h(this._isDSTShifted))return this._isDSTShifted;var t={};if(D(t,this),(t=Bt(t))._a){var n=t._isUTC?p(t._a):Kt(t._a);this._isDSTShifted=this.isValid()&&P(t._a,n.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted});var Vn=L.prototype;function jn(t,n,s,o){var u=Ot(),l=p().set(o,n);return u[s](l,t)}function In(t,n,s){if(c(t)&&(n=t,t=void 0),t=t||'',null!=n)return jn(t,n,s,'month');var o,u=[];for(o=0;o<12;o++)u[o]=jn(t,o,s,'month');return u}function En(t,n,s,o){'boolean'==typeof t?(c(n)&&(s=n,n=void 0),n=n||''):(s=n=t,t=!1,c(n)&&(s=n,n=void 0),n=n||'');var u,l=Ot(),h=t?l._week.dow:0;if(null!=s)return jn(n,(s+h)%7,o,'day');var f=[];for(u=0;u<7;u++)f[u]=jn(n,(u+h)%7,o,'day');return f}Vn.calendar=function(t,n,s){var o=this._calendar[t]||this._calendar.sameElse;return N(o)?o.call(n,s):o},Vn.longDateFormat=function(t){var n=this._longDateFormat[t],s=this._longDateFormat[t.toUpperCase()];return n||!s?n:(this._longDateFormat[t]=s.replace(/MMMM|MM|DD|dddd/g,function(t){return t.slice(1)}),this._longDateFormat[t])},Vn.invalidDate=function(){return this._invalidDate},Vn.ordinal=function(t){return this._ordinal.replace('%d',t)},Vn.preparse=Gn,Vn.postformat=Gn,Vn.relativeTime=function(t,n,s,o){var u=this._relativeTime[s];return N(u)?u(t,n,s,o):u.replace(/%d/i,t)},Vn.pastFuture=function(t,n){var s=this._relativeTime[t>0?'future':'past'];return N(s)?s(n):s.replace(/%s/i,n)},Vn.set=function(t){var n,s;for(s in t)N(n=t[s])?this[s]=n:this['_'+s]=n;this._config=t,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+'|'+/\d{1,2}/.source)},Vn.months=function(t,n){return t?o(this._months)?this._months[t.month()]:this._months[(this._months.isFormat||Ie).test(n)?'format':'standalone'][t.month()]:o(this._months)?this._months:this._months.standalone},Vn.monthsShort=function(t,n){return t?o(this._monthsShort)?this._monthsShort[t.month()]:this._monthsShort[Ie.test(n)?'format':'standalone'][t.month()]:o(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},Vn.monthsParse=function(t,n,s){var o,u,l;if(this._monthsParseExact)return ze.call(this,t,n,s);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),o=0;o<12;o++){if(u=p([2e3,o]),s&&!this._longMonthsParse[o]&&(this._longMonthsParse[o]=new RegExp('^'+this.months(u,'').replace('.','')+'$','i'),this._shortMonthsParse[o]=new RegExp('^'+this.monthsShort(u,'').replace('.','')+'$','i')),s||this._monthsParse[o]||(l='^'+this.months(u,'')+'|^'+this.monthsShort(u,''),this._monthsParse[o]=new RegExp(l.replace('.',''),'i')),s&&'MMMM'===n&&this._longMonthsParse[o].test(t))return o;if(s&&'MMM'===n&&this._shortMonthsParse[o].test(t))return o;if(!s&&this._monthsParse[o].test(t))return o}},Vn.monthsRegex=function(t){return this._monthsParseExact?(y(this,'_monthsRegex')||Be.call(this),t?this._monthsStrictRegex:this._monthsRegex):(y(this,'_monthsRegex')||(this._monthsRegex=qe),this._monthsStrictRegex&&t?this._monthsStrictRegex:this._monthsRegex)},Vn.monthsShortRegex=function(t){return this._monthsParseExact?(y(this,'_monthsRegex')||Be.call(this),t?this._monthsShortStrictRegex:this._monthsShortRegex):(y(this,'_monthsShortRegex')||(this._monthsShortRegex=Je),this._monthsShortStrictRegex&&t?this._monthsShortStrictRegex:this._monthsShortRegex)},Vn.week=function(t){return tt(t,this._week.dow,this._week.doy).week},Vn.firstDayOfYear=function(){return this._week.doy},Vn.firstDayOfWeek=function(){return this._week.dow},Vn.weekdays=function(t,n){return t?o(this._weekdays)?this._weekdays[t.day()]:this._weekdays[this._weekdays.isFormat.test(n)?'format':'standalone'][t.day()]:o(this._weekdays)?this._weekdays:this._weekdays.standalone},Vn.weekdaysMin=function(t){return t?this._weekdaysMin[t.day()]:this._weekdaysMin},Vn.weekdaysShort=function(t){return t?this._weekdaysShort[t.day()]:this._weekdaysShort},Vn.weekdaysParse=function(t,n,s){var o,u,l;if(this._weekdaysParseExact)return ut.call(this,t,n,s);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),o=0;o<7;o++){if(u=p([2e3,1]).day(o),s&&!this._fullWeekdaysParse[o]&&(this._fullWeekdaysParse[o]=new RegExp('^'+this.weekdays(u,'').replace('.','.?')+'$','i'),this._shortWeekdaysParse[o]=new RegExp('^'+this.weekdaysShort(u,'').replace('.','.?')+'$','i'),this._minWeekdaysParse[o]=new RegExp('^'+this.weekdaysMin(u,'').replace('.','.?')+'$','i')),this._weekdaysParse[o]||(l='^'+this.weekdays(u,'')+'|^'+this.weekdaysShort(u,'')+'|^'+this.weekdaysMin(u,''),this._weekdaysParse[o]=new RegExp(l.replace('.',''),'i')),s&&'dddd'===n&&this._fullWeekdaysParse[o].test(t))return o;if(s&&'ddd'===n&&this._shortWeekdaysParse[o].test(t))return o;if(s&&'dd'===n&&this._minWeekdaysParse[o].test(t))return o;if(!s&&this._weekdaysParse[o].test(t))return o}},Vn.weekdaysRegex=function(t){return this._weekdaysParseExact?(y(this,'_weekdaysRegex')||ct.call(this),t?this._weekdaysStrictRegex:this._weekdaysRegex):(y(this,'_weekdaysRegex')||(this._weekdaysRegex=lt),this._weekdaysStrictRegex&&t?this._weekdaysStrictRegex:this._weekdaysRegex)},Vn.weekdaysShortRegex=function(t){return this._weekdaysParseExact?(y(this,'_weekdaysRegex')||ct.call(this),t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(y(this,'_weekdaysShortRegex')||(this._weekdaysShortRegex=dt),this._weekdaysShortStrictRegex&&t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},Vn.weekdaysMinRegex=function(t){return this._weekdaysParseExact?(y(this,'_weekdaysRegex')||ct.call(this),t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(y(this,'_weekdaysMinRegex')||(this._weekdaysMinRegex=ht),this._weekdaysMinStrictRegex&&t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},Vn.isPM=function(t){return'p'===(t+'').toLowerCase().charAt(0)},Vn.meridiem=function(t,n,s){return t>11?s?'pm':'PM':s?'am':'AM'},Dt('en',{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var n=t%10;return t+(1===b(t%100/10)?'th':1===n?'st':2===n?'nd':3===n?'rd':'th')}}),s.lang=R('moment.lang is deprecated. Use moment.locale instead.',Dt),s.langData=R('moment.langData is deprecated. Use moment.localeData instead.',Ot);var An=Math.abs;function zn(t,n,s,o){var u=gn(n,s);return t._milliseconds+=o*u._milliseconds,t._days+=o*u._days,t._months+=o*u._months,t._bubble()}function Zn(t){return t<0?Math.floor(t):Math.ceil(t)}function $n(t){return 4800*t/146097}function Jn(t){return 146097*t/4800}function qn(t){return function(){return this.as(t)}}var Bn=qn('ms'),Qn=qn('s'),Xn=qn('m'),Kn=qn('h'),es=qn('d'),ts=qn('w'),ns=qn('M'),ss=qn('y');function is(t){return function(){return this.isValid()?this._data[t]:NaN}}var rs=is('milliseconds'),as=is('seconds'),os=is('minutes'),us=is('hours'),ls=is('days'),ds=is('months'),hs=is('years');var cs=Math.round,fs={ss:44,s:45,m:45,h:22,d:26,M:11};function ms(t,n,s,o,u){return u.relativeTime(n||1,!!s,t,o)}function _s(t,n,s){var o=gn(t).abs(),u=cs(o.as('s')),l=cs(o.as('m')),h=cs(o.as('h')),c=cs(o.as('d')),f=cs(o.as('M')),_=cs(o.as('y')),y=u<=fs.ss&&['s',u]||u0,y[4]=s,ms.apply(null,y)}var ys=Math.abs;function gs(t){return(t>0)-(t<0)||+t}function vs(){if(!this.isValid())return this.localeData().invalidDate();var t,n,s=ys(this._milliseconds)/1e3,o=ys(this._days),u=ys(this._months);n=x((t=x(s/60))/60),s%=60,t%=60;var l=x(u/12),h=u%=12,c=o,f=n,_=t,y=s?s.toFixed(3).replace(/\.?0+$/,''):'',v=this.asSeconds();if(!v)return'P0D';var p=v<0?'-':'',w=gs(this._months)!==gs(v)?'-':'',M=gs(this._days)!==gs(v)?'-':'',k=gs(this._milliseconds)!==gs(v)?'-':'';return p+'P'+(l?w+l+'Y':'')+(h?w+h+'M':'')+(c?M+c+'D':'')+(f||_||y?'T':'')+(f?k+f+'H':'')+(_?k+_+'M':'')+(y?k+y+'S':'')}var ps=an.prototype;return ps.isValid=function(){return this._isValid},ps.abs=function(){var t=this._data;return this._milliseconds=An(this._milliseconds),this._days=An(this._days),this._months=An(this._months),t.milliseconds=An(t.milliseconds),t.seconds=An(t.seconds),t.minutes=An(t.minutes),t.hours=An(t.hours),t.months=An(t.months),t.years=An(t.years),this},ps.add=function(t,n){return zn(this,t,n,1)},ps.subtract=function(t,n){return zn(this,t,n,-1)},ps.as=function(t){if(!this.isValid())return NaN;var n,s,o=this._milliseconds;if('month'===(t=j(t))||'year'===t)return n=this._days+o/864e5,s=this._months+$n(n),'month'===t?s:s/12;switch(n=this._days+Math.round(Jn(this._months)),t){case'week':return n/7+o/6048e5;case'day':return n+o/864e5;case'hour':return 24*n+o/36e5;case'minute':return 1440*n+o/6e4;case'second':return 86400*n+o/1e3;case'millisecond':return Math.floor(864e5*n)+o;default:throw new Error('Unknown unit '+t)}},ps.asMilliseconds=Bn,ps.asSeconds=Qn,ps.asMinutes=Xn,ps.asHours=Kn,ps.asDays=es,ps.asWeeks=ts,ps.asMonths=ns,ps.asYears=ss,ps.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*b(this._months/12):NaN},ps._bubble=function(){var t,n,s,o,u,l=this._milliseconds,h=this._days,c=this._months,f=this._data;return l>=0&&h>=0&&c>=0||l<=0&&h<=0&&c<=0||(l+=864e5*Zn(Jn(c)+h),h=0,c=0),f.milliseconds=l%1e3,t=x(l/1e3),f.seconds=t%60,n=x(t/60),f.minutes=n%60,s=x(n/60),f.hours=s%24,c+=u=x($n(h+=x(s/24))),h-=Zn(Jn(u)),o=x(c/12),c%=12,f.days=h,f.months=c,f.years=o,this},ps.clone=function(){return gn(this)},ps.get=function(t){return t=j(t),this.isValid()?this[t+'s']():NaN},ps.milliseconds=rs,ps.seconds=as,ps.minutes=os,ps.hours=us,ps.days=ls,ps.weeks=function(){return x(this.days()/7)},ps.months=ds,ps.years=hs,ps.humanize=function(t){if(!this.isValid())return this.localeData().invalidDate();var n=this.localeData(),s=_s(this,!t,n);return t&&(s=n.pastFuture(+this,s)),n.postformat(s)},ps.toISOString=vs,ps.toString=vs,ps.toJSON=vs,ps.locale=On,ps.localeData=xn,ps.toIsoString=R('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',vs),ps.lang=Tn,Q('X',0,0,'unix'),Q('x',0,0,'valueOf'),ve('x',fe),ve('X',/[+-]?\d+(\.\d{1,3})?/),ke('X',function(t,n,s){s._d=new Date(1e3*parseFloat(t,10))}),ke('x',function(t,n,s){s._d=new Date(b(t))}),s.version='2.19.4',t=Kt,s.fn=Ln,s.min=function(){return nn('isBefore',[].slice.call(arguments,0))},s.max=function(){return nn('isAfter',[].slice.call(arguments,0))},s.now=function(){return Date.now?Date.now():+new Date},s.utc=p,s.unix=function(t){return Kt(1e3*t)},s.months=function(t,n){return In(t,n,'months')},s.isDate=f,s.locale=Dt,s.invalid=k,s.duration=gn,s.isMoment=T,s.weekdays=function(t,n,s){return En(t,n,s,'weekdays')},s.parseZone=function(){return Kt.apply(null,arguments).parseZone()},s.localeData=Ot,s.isDuration=on,s.monthsShort=function(t,n){return In(t,n,'monthsShort')},s.weekdaysMin=function(t,n,s){return En(t,n,s,'weekdaysMin')},s.defineLocale=Yt,s.updateLocale=function(t,n){if(null!=n){var s,o,u=vt;null!=(o=St(t))&&(u=o._config),(s=new L(n=H(u,n))).parentLocale=pt[t],pt[t]=s,Dt(t)}else null!=pt[t]&&(null!=pt[t].parentLocale?pt[t]=pt[t].parentLocale:null!=pt[t]&&delete pt[t]);return pt[t]},s.locales=function(){return C(pt)},s.weekdaysShort=function(t,n,s){return En(t,n,s,'weekdaysShort')},s.normalizeUnits=j,s.relativeTimeRounding=function(t){return void 0===t?cs:'function'==typeof t&&(cs=t,!0)},s.relativeTimeThreshold=function(t,n){return void 0!==fs[t]&&(void 0===n?fs[t]:(fs[t]=n,'s'===t&&(fs.ss=n-1),!0))},s.calendarFormat=function(t,n){var s=t.diff(n,'days',!0);return s<-6?'sameElse':s<-1?'lastWeek':s<0?'lastDay':s<1?'sameDay':s<2?'nextDay':s<7?'nextWeek':'sameElse'},s.prototype=Ln,s},'object'==typeof e&&void 0!==m?m.exports=n():'function'==typeof define&&define.amd?define(n):t.moment=n()},614,[]); -__d(function(g,r,i,a,m,e,d){var u=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.DEFAULT_LANGUAGE=e.LANGUAGES=void 0;var l=u(r(d[1])),t=u(r(d[2])),n=u(r(d[3])),s=u(r(d[4])),f=u(r(d[5])),o=u(r(d[6])),c=Object.keys(s.default);e.LANGUAGES=c;var A=c[0];e.DEFAULT_LANGUAGE=A;var v={backend:{loadPath:'lang/{{ns}}-{{lng}}.json'},defaultNS:'main',fallbackLng:A,interpolation:{escapeValue:!1},load:'languageOnly',ns:['main','languages','countries'],react:{useSuspense:!1},returnEmptyString:!1,returnNull:!1,whitelist:c.slice()};l.default.use('ReactNative'===navigator.product?{}:t.default).use(o.default).init(v),l.default.addResourceBundle(A,'countries',n.default,!0,!0),l.default.addResourceBundle(A,'languages',s.default,!0,!0),l.default.addResourceBundle(A,'main',f.default,!0,!0),r(d[7]);var G=l.default;e.default=G},615,[3,616,635,639,640,641,642,643]); -__d(function(g,r,i,a,m,e,d){'use strict';function t(t){return t&&'object'==typeof t&&'default'in t?t.default:t}var n=t(r(d[0])),o=t(r(d[1])),s=t(r(d[2])),u=t(r(d[3])),l=t(r(d[4])),c=t(r(d[5])),f=t(r(d[6])),p=t(r(d[7])),h=t(r(d[8])),v=t(r(d[9])),y={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,n){var o;console&&console[t]&&(o=console)[t].apply(o,h(n))}},b=new((function(){function t(n){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};s(this,t),this.init(n,o)}return u(t,[{key:"init",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.prefix=n.prefix||'i18next:',this.logger=t||y,this.options=n,this.debug=n.debug}},{key:"setDebug",value:function(t){this.debug=t}},{key:"log",value:function(){for(var t=arguments.length,n=new Array(t),o=0;o-1&&o.observers[t].splice(s,1)}else delete o.observers[t]})}},{key:"emit",value:function(t){for(var n=arguments.length,o=new Array(n>1?n-1:0),s=1;s-1?t.replace(/###/g,'.'):t}function u(){return!t||'string'==typeof t}for(var l='string'!=typeof n?[].concat(n):n.split('.');l.length>1;){if(u())return{};var c=s(l.shift());!t[c]&&o&&(t[c]=new o),t=t[c]}return u()?{}:{obj:t,k:s(l.shift())}}function R(t,n,o){var s=w(t,n,Object);s.obj[s.k]=o}function O(t,n){var o=w(t,n),s=o.obj,u=o.k;if(s)return s[u]}function L(t,n,o){for(var s in n)s in t?'string'==typeof t[s]||t[s]instanceof String||'string'==typeof n[s]||n[s]instanceof String?o&&(t[s]=n[s]):L(t[s],n[s],o):t[s]=n[s];return t}function N(t){return t.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,'\\$&')}var C={'&':'&','<':'<','>':'>','"':'"',"'":''','/':'/'};function j(t){return'string'==typeof t?t.replace(/[&<>"'\/]/g,function(t){return C[t]}):t}var E=(function(t){function n(t){var o,u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{ns:['translation'],defaultNS:'translation'};return s(this,n),o=l(this,c(n).call(this)),k.call(f(o)),o.data=t||{},o.options=u,void 0===o.options.keySeparator&&(o.options.keySeparator='.'),o}return p(n,k),u(n,[{key:"addNamespaces",value:function(t){this.options.ns.indexOf(t)<0&&this.options.ns.push(t)}},{key:"removeNamespaces",value:function(t){var n=this.options.ns.indexOf(t);n>-1&&this.options.ns.splice(n,1)}},{key:"getResource",value:function(t,n,o){var s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},u=void 0!==s.keySeparator?s.keySeparator:this.options.keySeparator,l=[t,n];return o&&'string'!=typeof o&&(l=l.concat(o)),o&&'string'==typeof o&&(l=l.concat(u?o.split(u):o)),t.indexOf('.')>-1&&(l=t.split('.')),O(this.data,l)}},{key:"addResource",value:function(t,n,o,s){var u=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{silent:!1},l=this.options.keySeparator;void 0===l&&(l='.');var c=[t,n];o&&(c=c.concat(l?o.split(l):o)),t.indexOf('.')>-1&&(s=n,n=(c=t.split('.'))[1]),this.addNamespaces(n),R(this.data,c,s),u.silent||this.emit('added',t,n,o,s)}},{key:"addResources",value:function(t,n,o){var s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{silent:!1};for(var u in o)'string'!=typeof o[u]&&'[object Array]'!==Object.prototype.toString.apply(o[u])||this.addResource(t,n,u,o[u],{silent:!0});s.silent||this.emit('added',t,n,o)}},{key:"addResourceBundle",value:function(t,n,s,u,l){var c=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{silent:!1},f=[t,n];t.indexOf('.')>-1&&(u=s,s=n,n=(f=t.split('.'))[1]),this.addNamespaces(n);var p=O(this.data,f)||{};u?L(p,s,l):p=o({},p,s),R(this.data,f,p),c.silent||this.emit('added',t,n,s)}},{key:"removeResourceBundle",value:function(t,n){this.hasResourceBundle(t,n)&&delete this.data[t][n],this.removeNamespaces(n),this.emit('removed',t,n)}},{key:"hasResourceBundle",value:function(t,n){return void 0!==this.getResource(t,n)}},{key:"getResourceBundle",value:function(t,n){return n||(n=this.options.defaultNS),'v1'===this.options.compatibilityAPI?o({},{},this.getResource(t,n)):this.getResource(t,n)}},{key:"getDataByLanguage",value:function(t){return this.data[t]}},{key:"toJSON",value:function(){return this.data}}]),n})(),P={processors:{},addPostProcessor:function(t){this.processors[t.name]=t},handle:function(t,n,o,s,u){var l=this;return t.forEach(function(t){l.processors[t]&&(n=l.processors[t].process(n,o,s,u))}),n}},F=(function(t){function h(t){var n,o,u,p,v=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return s(this,h),n=l(this,c(h).call(this)),k.call(f(n)),o=['resourceStore','languageUtils','pluralResolver','interpolator','backendConnector','i18nFormat'],u=t,p=f(n),o.forEach(function(t){u[t]&&(p[t]=u[t])}),n.options=v,void 0===n.options.keySeparator&&(n.options.keySeparator='.'),n.logger=b.create('translator'),n}return p(h,k),u(h,[{key:"changeLanguage",value:function(t){t&&(this.language=t)}},{key:"exists",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{interpolation:{}},o=this.resolve(t,n);return o&&void 0!==o.res}},{key:"extractFromKey",value:function(t,n){var o=n.nsSeparator||this.options.nsSeparator;void 0===o&&(o=':');var s=void 0!==n.keySeparator?n.keySeparator:this.options.keySeparator,u=n.ns||this.options.defaultNS;if(o&&t.indexOf(o)>-1){var l=t.split(o);(o!==s||o===s&&this.options.ns.indexOf(l[0])>-1)&&(u=l.shift()),t=l.join(s)}return'string'==typeof u&&(u=[u]),{key:t,namespaces:u}}},{key:"translate",value:function(t,s){var u=this;if('object'!==n(s)&&this.options.overloadTranslationOptionHandler&&(s=this.options.overloadTranslationOptionHandler(arguments)),s||(s={}),void 0===t||null===t)return'';Array.isArray(t)||(t=[String(t)]);var l=void 0!==s.keySeparator?s.keySeparator:this.options.keySeparator,c=this.extractFromKey(t[t.length-1],s),f=c.key,p=c.namespaces,h=p[p.length-1],v=s.lng||this.language,y=s.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(v&&'cimode'===v.toLowerCase()){if(y){var b=s.nsSeparator||this.options.nsSeparator;return h+b+f}return f}var k=this.resolve(t,s),x=k&&k.res,S=k&&k.usedKey||f,w=k&&k.exactUsedKey||f,R=Object.prototype.toString.apply(x),O=void 0!==s.joinArrays?s.joinArrays:this.options.joinArrays,L=!this.i18nFormat||this.i18nFormat.handleAsObject;if(L&&x&&('string'!=typeof x&&'boolean'!=typeof x&&'number'!=typeof x)&&['[object Number]','[object Function]','[object RegExp]'].indexOf(R)<0&&('string'!=typeof O||'[object Array]'!==R)){if(!s.returnObjects&&!this.options.returnObjects)return this.logger.warn('accessing an object - but returnObjects options is not enabled!'),this.options.returnedObjectHandler?this.options.returnedObjectHandler(S,x,s):"key '".concat(f," (").concat(this.language,")' returned an object instead of string.");if(l){var N='[object Array]'===R,C=N?[]:{},j=N?w:S;for(var E in x)if(Object.prototype.hasOwnProperty.call(x,E)){var P="".concat(j).concat(l).concat(E);C[E]=this.translate(P,o({},s,{joinArrays:!1,ns:p})),C[E]===P&&(C[E]=x[E])}x=C}}else if(L&&'string'==typeof O&&'[object Array]'===R)(x=x.join(O))&&(x=this.extendTranslation(x,t,s));else{var F=!1,V=!1;if(!this.isValidLookup(x)&&void 0!==s.defaultValue){if(F=!0,void 0!==s.count){var A=this.pluralResolver.getSuffix(v,s.count);x=s["defaultValue".concat(A)]}x||(x=s.defaultValue)}this.isValidLookup(x)||(V=!0,x=f);var U=s.defaultValue&&s.defaultValue!==x&&this.options.updateMissing;if(V||F||U){this.logger.log(U?'updateKey':'missingKey',v,h,f,U?s.defaultValue:x);var T=[],K=this.languageUtils.getFallbackCodes(this.options.fallbackLng,s.lng||this.language);if('fallback'===this.options.saveMissingTo&&K&&K[0])for(var H=0;H1&&void 0!==arguments[1]?arguments[1]:{};return'string'==typeof t&&(t=[t]),t.forEach(function(t){if(!c.isValidLookup(n)){var p=c.extractFromKey(t,f),h=p.key;o=h;var v=p.namespaces;c.options.fallbackNS&&(v=v.concat(c.options.fallbackNS));var y=void 0!==f.count&&'string'!=typeof f.count,b=void 0!==f.context&&'string'==typeof f.context&&''!==f.context,k=f.lngs?f.lngs:c.languageUtils.toResolveHierarchy(f.lng||c.language,f.fallbackLng);v.forEach(function(t){c.isValidLookup(n)||(l=t,k.forEach(function(o){if(!c.isValidLookup(n)){u=o;var l,p,v=h,k=[v];if(c.i18nFormat&&c.i18nFormat.addLookupKeys)c.i18nFormat.addLookupKeys(k,h,o,t,f);else y&&(l=c.pluralResolver.getSuffix(o,f.count)),y&&b&&k.push(v+l),b&&k.push(v+="".concat(c.options.contextSeparator).concat(f.context)),y&&k.push(v+=l);for(;p=k.pop();)c.isValidLookup(n)||(s=p,n=c.getResource(o,t,p,f))}}))})}}),{res:n,usedKey:o,exactUsedKey:s,usedLng:u,usedNS:l}}},{key:"isValidLookup",value:function(t){return!(void 0===t||!this.options.returnNull&&null===t||!this.options.returnEmptyString&&''===t)}},{key:"getResource",value:function(t,n,o){var s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.i18nFormat&&this.i18nFormat.getResource?this.i18nFormat.getResource(t,n,o,s):this.resourceStore.getResource(t,n,o,s)}}]),h})();function V(t){return t.charAt(0).toUpperCase()+t.slice(1)}var A=(function(){function t(n){s(this,t),this.options=n,this.whitelist=this.options.whitelist||!1,this.logger=b.create('languageUtils')}return u(t,[{key:"getScriptPartFromCode",value:function(t){if(!t||t.indexOf('-')<0)return null;var n=t.split('-');return 2===n.length?null:(n.pop(),this.formatLanguageCode(n.join('-')))}},{key:"getLanguagePartFromCode",value:function(t){if(!t||t.indexOf('-')<0)return t;var n=t.split('-');return this.formatLanguageCode(n[0])}},{key:"formatLanguageCode",value:function(t){if('string'==typeof t&&t.indexOf('-')>-1){var n=['hans','hant','latn','cyrl','cans','mong','arab'],o=t.split('-');return this.options.lowerCaseLng?o=o.map(function(t){return t.toLowerCase()}):2===o.length?(o[0]=o[0].toLowerCase(),o[1]=o[1].toUpperCase(),n.indexOf(o[1].toLowerCase())>-1&&(o[1]=V(o[1].toLowerCase()))):3===o.length&&(o[0]=o[0].toLowerCase(),2===o[1].length&&(o[1]=o[1].toUpperCase()),'sgn'!==o[0]&&2===o[2].length&&(o[2]=o[2].toUpperCase()),n.indexOf(o[1].toLowerCase())>-1&&(o[1]=V(o[1].toLowerCase())),n.indexOf(o[2].toLowerCase())>-1&&(o[2]=V(o[2].toLowerCase()))),o.join('-')}return this.options.cleanCode||this.options.lowerCaseLng?t.toLowerCase():t}},{key:"isWhitelisted",value:function(t){return('languageOnly'===this.options.load||this.options.nonExplicitWhitelist)&&(t=this.getLanguagePartFromCode(t)),!this.whitelist||!this.whitelist.length||this.whitelist.indexOf(t)>-1}},{key:"getFallbackCodes",value:function(t,n){if(!t)return[];if('string'==typeof t&&(t=[t]),'[object Array]'===Object.prototype.toString.apply(t))return t;if(!n)return t.default||[];var o=t[n];return o||(o=t[this.getScriptPartFromCode(n)]),o||(o=t[this.formatLanguageCode(n)]),o||(o=t.default),o||[]}},{key:"toResolveHierarchy",value:function(t,n){var o=this,s=this.getFallbackCodes(n||this.options.fallbackLng||[],t),u=[],l=function(t){t&&(o.isWhitelisted(t)?u.push(t):o.logger.warn("rejecting non-whitelisted language code: ".concat(t)))};return'string'==typeof t&&t.indexOf('-')>-1?('languageOnly'!==this.options.load&&l(this.formatLanguageCode(t)),'languageOnly'!==this.options.load&&'currentOnly'!==this.options.load&&l(this.getScriptPartFromCode(t)),'currentOnly'!==this.options.load&&l(this.getLanguagePartFromCode(t))):'string'==typeof t&&l(this.formatLanguageCode(t)),s.forEach(function(t){u.indexOf(t)<0&&l(o.formatLanguageCode(t))}),u}}]),t})(),U=[{lngs:['ach','ak','am','arn','br','fil','gun','ln','mfe','mg','mi','oc','pt','pt-BR','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','et','eu','fi','fo','fur','fy','gl','gu','ha','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','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','cnr','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},{lngs:['he'],nr:[1,2,20,21],fc:22}],T={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)},22:function(t){return Number(1===t?0:2===t?1:(t<0||t>10)&&t%10==0?2:3)}};var K=(function(){function t(n){var o,u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};s(this,t),this.languageUtils=n,this.options=u,this.logger=b.create('pluralResolver'),this.rules=(o={},U.forEach(function(t){t.lngs.forEach(function(n){o[n]={numbers:t.nr,plurals:T[t.fc]}})}),o)}return u(t,[{key:"addRule",value:function(t,n){this.rules[t]=n}},{key:"getRule",value:function(t){return this.rules[t]||this.rules[this.languageUtils.getLanguagePartFromCode(t)]}},{key:"needsPlural",value:function(t){var n=this.getRule(t);return n&&n.numbers.length>1}},{key:"getPluralFormsOfKey",value:function(t,n){var o=this,s=[],u=this.getRule(t);return u?(u.numbers.forEach(function(u){var l=o.getSuffix(t,u);s.push("".concat(n).concat(l))}),s):s}},{key:"getSuffix",value:function(t,n){var o=this,s=this.getRule(t);if(s){var u=s.noAbs?s.plurals(n):s.plurals(Math.abs(n)),l=s.numbers[u];this.options.simplifyPluralSuffix&&2===s.numbers.length&&1===s.numbers[0]&&(2===l?l='plural':1===l&&(l=''));var c=function(){return o.options.prepend&&l.toString()?o.options.prepend+l.toString():l.toString()};return'v1'===this.options.compatibilityJSON?1===l?'':'number'==typeof l?"_plural_".concat(l.toString()):c():'v2'===this.options.compatibilityJSON?c():this.options.simplifyPluralSuffix&&2===s.numbers.length&&1===s.numbers[0]?c():this.options.prepend&&u.toString()?this.options.prepend+u.toString():u.toString()}return this.logger.warn("no plural rule found for: ".concat(t)),''}}]),t})(),H=(function(){function t(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};s(this,t),this.logger=b.create('interpolator'),this.init(n,!0)}return u(t,[{key:"init",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(arguments.length>1?arguments[1]:void 0)&&(this.options=t,this.format=t.interpolation&&t.interpolation.format||function(t){return t}),t.interpolation||(t.interpolation={escapeValue:!0});var n=t.interpolation;this.escape=void 0!==n.escape?n.escape:j,this.escapeValue=void 0===n.escapeValue||n.escapeValue,this.useRawValueToEscape=void 0!==n.useRawValueToEscape&&n.useRawValueToEscape,this.prefix=n.prefix?N(n.prefix):n.prefixEscaped||'{{',this.suffix=n.suffix?N(n.suffix):n.suffixEscaped||'}}',this.formatSeparator=n.formatSeparator?n.formatSeparator:n.formatSeparator||',',this.unescapePrefix=n.unescapeSuffix?'':n.unescapePrefix||'-',this.unescapeSuffix=this.unescapePrefix?'':n.unescapeSuffix||'',this.nestingPrefix=n.nestingPrefix?N(n.nestingPrefix):n.nestingPrefixEscaped||N('$t('),this.nestingSuffix=n.nestingSuffix?N(n.nestingSuffix):n.nestingSuffixEscaped||N(')'),this.maxReplaces=n.maxReplaces?n.maxReplaces:1e3,this.resetRegExp()}},{key:"reset",value:function(){this.options&&this.init(this.options)}},{key:"resetRegExp",value:function(){var t="".concat(this.prefix,"(.+?)").concat(this.suffix);this.regexp=new RegExp(t,'g');var n="".concat(this.prefix).concat(this.unescapePrefix,"(.+?)").concat(this.unescapeSuffix).concat(this.suffix);this.regexpUnescape=new RegExp(n,'g');var o="".concat(this.nestingPrefix,"(.+?)").concat(this.nestingSuffix);this.nestingRegexp=new RegExp(o,'g')}},{key:"interpolate",value:function(t,n,o,s){var u,l,c,f=this;function p(t){return t.replace(/\$/g,'$$$$')}var h=function(t){if(t.indexOf(f.formatSeparator)<0)return O(n,t);var s=t.split(f.formatSeparator),u=s.shift().trim(),l=s.join(f.formatSeparator).trim();return f.format(O(n,u),l,o)};this.resetRegExp();var v=s&&s.missingInterpolationHandler||this.options.missingInterpolationHandler;for(c=0;(u=this.regexpUnescape.exec(t))&&(l=h(u[1].trim()),t=t.replace(u[0],l),this.regexpUnescape.lastIndex=0,!(++c>=this.maxReplaces)););for(c=0;u=this.regexp.exec(t);){if(void 0===(l=h(u[1].trim())))if('function'==typeof v){var y=v(t,u,s);l='string'==typeof y?y:''}else this.logger.warn("missed to pass in variable ".concat(u[1]," for interpolating ").concat(t)),l='';else'string'==typeof l||this.useRawValueToEscape||(l=S(l));if(l=this.escapeValue?p(this.escape(l)):p(l),t=t.replace(u[0],l),this.regexp.lastIndex=0,++c>=this.maxReplaces)break}return t}},{key:"nest",value:function(t,n){var s,u,l=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},c=o({},l);function f(t,n){if(t.indexOf(',')<0)return t;var s=t.split(',');t=s.shift();var u=s.join(',');u=(u=this.interpolate(u,c)).replace(/'/g,'"');try{c=JSON.parse(u),n&&(c=o({},n,c))}catch(n){this.logger.error("failed parsing options string in nesting for key ".concat(t),n)}return t}for(c.applyPostProcessor=!1;s=this.nestingRegexp.exec(t);){if((u=n(f.call(this,s[1].trim(),c),c))&&s[0]===t&&'string'!=typeof u)return u;'string'!=typeof u&&(u=S(u)),u||(this.logger.warn("missed to resolve ".concat(s[1]," for nesting ").concat(t)),u=''),t=t.replace(s[0],u),this.regexp.lastIndex=0}return t}}]),t})();function D(t,n){for(var o=t.indexOf(n);-1!==o;)t.splice(o,1),o=t.indexOf(n)}var M=(function(t){function n(t,o,u){var p,h=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return s(this,n),p=l(this,c(n).call(this)),k.call(f(p)),p.backend=t,p.store=o,p.languageUtils=u.languageUtils,p.options=h,p.logger=b.create('backendConnector'),p.state={},p.queue=[],p.backend&&p.backend.init&&p.backend.init(u,h.backend,h),p}return p(n,k),u(n,[{key:"queueLoad",value:function(t,n,o,s){var u=this,l=[],c=[],f=[],p=[];return t.forEach(function(t){var s=!0;n.forEach(function(n){var f="".concat(t,"|").concat(n);!o.reload&&u.store.hasResourceBundle(t,n)?u.state[f]=2:u.state[f]<0||(1===u.state[f]?c.indexOf(f)<0&&c.push(f):(u.state[f]=1,s=!1,c.indexOf(f)<0&&c.push(f),l.indexOf(f)<0&&l.push(f),p.indexOf(n)<0&&p.push(n)))}),s||f.push(t)}),(l.length||c.length)&&this.queue.push({pending:c,loaded:{},errors:[],callback:s}),{toLoad:l,pending:c,toLoadLanguages:f,toLoadNamespaces:p}}},{key:"loaded",value:function(t,n,o){var s=t.split('|'),u=v(s,2),l=u[0],c=u[1];n&&this.emit('failedLoading',l,c,n),o&&this.store.addResourceBundle(l,c,o),this.state[t]=n?-1:2;var f={};this.queue.forEach(function(o){var s,u,p,h,v,y;s=o.loaded,u=c,h=w(s,[l],Object),v=h.obj,y=h.k,v[y]=v[y]||[],p&&(v[y]=v[y].concat(u)),p||v[y].push(u),D(o.pending,t),n&&o.errors.push(n),0!==o.pending.length||o.done||(Object.keys(o.loaded).forEach(function(t){f[t]||(f[t]=[]),o.loaded[t].length&&o.loaded[t].forEach(function(n){f[t].indexOf(n)<0&&f[t].push(n)})}),o.done=!0,o.errors.length?o.callback(o.errors):o.callback())}),this.emit('loaded',f),this.queue=this.queue.filter(function(t){return!t.done})}},{key:"read",value:function(t,n,o){var s=this,u=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,l=arguments.length>4&&void 0!==arguments[4]?arguments[4]:250,c=arguments.length>5?arguments[5]:void 0;return t.length?this.backend[o](t,n,function(f,p){f&&p&&u<5?setTimeout(function(){s.read.call(s,t,n,o,u+1,2*l,c)},l):c(f,p)}):c(null,{})}},{key:"prepareLoading",value:function(t,n){var o=this,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},u=arguments.length>3?arguments[3]:void 0;if(!this.backend)return this.logger.warn('No backend was added via i18next.use. Will not load resources.'),u&&u();'string'==typeof t&&(t=this.languageUtils.toResolveHierarchy(t)),'string'==typeof n&&(n=[n]);var l=this.queueLoad(t,n,s,u);if(!l.toLoad.length)return l.pending.length||u(),null;l.toLoad.forEach(function(t){o.loadOne(t)})}},{key:"load",value:function(t,n,o){this.prepareLoading(t,n,{},o)}},{key:"reload",value:function(t,n,o){this.prepareLoading(t,n,{reload:!0},o)}},{key:"loadOne",value:function(t){var n=this,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:'',s=t.split('|'),u=v(s,2),l=u[0],c=u[1];this.read(l,c,'read',null,null,function(s,u){s&&n.logger.warn("".concat(o,"loading namespace ").concat(c," for language ").concat(l," failed"),s),!s&&u&&n.logger.log("".concat(o,"loaded namespace ").concat(c," for language ").concat(l),u),n.loaded(t,s,u)})}},{key:"saveMissing",value:function(t,n,s,u,l){var c=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};this.backend&&this.backend.create&&this.backend.create(t,n,s,u,null,o({},c,{isUpdate:l})),t&&t[0]&&this.store.addResource(t[0],n,s,u)}}]),n})();function I(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=t.whitelist.concat(['cimode'])),t}function B(){}var q=new((function(t){function h(){var t,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=arguments.length>1?arguments[1]:void 0;if(s(this,h),t=l(this,c(h).call(this)),k.call(f(t)),t.options=I(n),t.services={},t.logger=b,t.modules={external:[]},o&&!t.isInitialized&&!n.isClone){if(!t.options.initImmediate)return t.init(n,o),l(t,f(t));setTimeout(function(){t.init(n,o)},0)}return t}return p(h,k),u(h,[{key:"init",value:function(){var t=this,s=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},u=arguments.length>1?arguments[1]:void 0;function l(t){return t?'function'==typeof t?new t:t:null}if('function'==typeof s&&(u=s,s={}),this.options=o({},{debug:!1,initImmediate:!0,ns:['translation'],defaultNS:['translation'],fallbackLng:['dev'],fallbackNS:!1,whitelist:!1,nonExplicitWhitelist:!1,load:'all',preload:!1,simplifyPluralSuffix:!0,keySeparator:'.',nsSeparator:':',pluralSeparator:'_',contextSeparator:'_',partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:'fallback',saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,returnNull:!0,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:function(){},parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:function(t){var o={};if('object'===n(t[1])&&(o=t[1]),'string'==typeof t[1]&&(o.defaultValue=t[1]),'string'==typeof t[2]&&(o.tDescription=t[2]),'object'===n(t[2])||'object'===n(t[3])){var s=t[3]||t[2];Object.keys(s).forEach(function(t){o[t]=s[t]})}return o},interpolation:{escapeValue:!0,format:function(t,n,o){return t},prefix:'{{',suffix:'}}',formatSeparator:',',unescapePrefix:'-',nestingPrefix:'$t(',nestingSuffix:')',maxReplaces:1e3}},this.options,I(s)),this.format=this.options.interpolation.format,u||(u=B),!this.options.isClone){this.modules.logger?b.init(l(this.modules.logger),this.options):b.init(null,this.options);var c=new A(this.options);this.store=new E(this.options.resources,this.options);var f=this.services;f.logger=b,f.resourceStore=this.store,f.languageUtils=c,f.pluralResolver=new K(c,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),f.interpolator=new H(this.options),f.backendConnector=new M(l(this.modules.backend),f.resourceStore,f,this.options),f.backendConnector.on('*',function(n){for(var o=arguments.length,s=new Array(o>1?o-1:0),u=1;u1?o-1:0),u=1;u0&&void 0!==arguments[0]?arguments[0]:B;if(!this.options.resources||this.options.partialBundledLanguages){if(this.language&&'cimode'===this.language.toLowerCase())return n();var o=[],s=function(n){n&&t.services.languageUtils.toResolveHierarchy(n).forEach(function(t){o.indexOf(t)<0&&o.push(t)})};if(this.language)s(this.language);else this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(function(t){return s(t)});this.options.preload&&this.options.preload.forEach(function(t){return s(t)}),this.services.backendConnector.load(o,this.options.ns,n)}else n(null)}},{key:"reloadResources",value:function(t,n,o){var s=x();return t||(t=this.languages),n||(n=this.options.ns),o||(o=B),this.services.backendConnector.reload(t,n,function(t){s.resolve(),o(t)}),s}},{key:"use",value:function(t){return'backend'===t.type&&(this.modules.backend=t),('logger'===t.type||t.log&&t.warn&&t.error)&&(this.modules.logger=t),'languageDetector'===t.type&&(this.modules.languageDetector=t),'i18nFormat'===t.type&&(this.modules.i18nFormat=t),'postProcessor'===t.type&&P.addPostProcessor(t),'3rdParty'===t.type&&this.modules.external.push(t),this}},{key:"changeLanguage",value:function(t,n){var o=this,s=x();this.emit('languageChanging',t);var u=function(t,u){o.translator.changeLanguage(u),u&&(o.emit('languageChanged',u),o.logger.log('languageChanged',u)),s.resolve(function(){return o.t.apply(o,arguments)}),n&&n(t,function(){return o.t.apply(o,arguments)})},l=function(t){t&&(o.language=t,o.languages=o.services.languageUtils.toResolveHierarchy(t),o.translator.language||o.translator.changeLanguage(t),o.services.languageDetector&&o.services.languageDetector.cacheUserLanguage(t)),o.loadResources(function(n){u(n,t)})};return t||!this.services.languageDetector||this.services.languageDetector.async?!t&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect(l):l(t):l(this.services.languageDetector.detect()),s}},{key:"getFixedT",value:function(t,s){var u=this,l=function t(s,l){var c=o({},l);if('object'!==n(l)){for(var f=arguments.length,p=new Array(f>2?f-2:0),h=2;h0?this.languages[0]:this.language),!t)return'rtl';return['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'].indexOf(this.services.languageUtils.getLanguagePartFromCode(t))>=0?'rtl':'ltr'}},{key:"createInstance",value:function(){return new h(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},arguments.length>1?arguments[1]:void 0)}},{key:"cloneInstance",value:function(){var t=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:B,u=o({},this.options,n,{isClone:!0}),l=new h(u);return['store','services','language'].forEach(function(n){l[n]=t[n]}),l.translator=new F(l.services,l.options),l.translator.on('*',function(t){for(var n=arguments.length,o=new Array(n>1?n-1:0),s=1;s3&&o&&o(u.responseText,u)},u.send(l)}catch(t){console&&console.log(t)}}var v=(function(){function t(o){var s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};n(this,t),this.init(o,s),this.type='backend'}return o(t,[{key:"init",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.services=t,this.options=p(n,this.options||{},{loadPath:'/locales/{{lng}}/{{ns}}.json',addPath:'/locales/add/{{lng}}/{{ns}}',allowMultiLoading:!1,parse:JSON.parse,crossDomain:!1,ajax:h})}},{key:"readMulti",value:function(t,n,o){var s=this.options.loadPath;'function'==typeof this.options.loadPath&&(s=this.options.loadPath(t,n));var l=this.services.interpolator.interpolate(s,{lng:t.join('+'),ns:n.join('+')});this.loadUrl(l,o)}},{key:"read",value:function(t,n,o){var s=this.options.loadPath;'function'==typeof this.options.loadPath&&(s=this.options.loadPath([t],[n]));var l=this.services.interpolator.interpolate(s,{lng:t,ns:n});this.loadUrl(l,o)}},{key:"loadUrl",value:function(t,n){var o=this;this.options.ajax(t,this.options,function(s,l){if(l.status>=500&&l.status<600)return n('failed loading '+t,!0);if(l.status>=400&&l.status<500)return n('failed loading '+t,!1);var c,u;try{c=o.options.parse(s,t)}catch(n){u='failed parsing '+t+' to json'}if(u)return n(u,!1);n(null,c)})}},{key:"create",value:function(t,n,o,s){var l=this;'string'==typeof t&&(t=[t]);var c={};c[o]=s||'',t.forEach(function(t){var o=l.services.interpolator.interpolate(l.options.addPath,{lng:t,ns:n});l.options.ajax(o,l.options,function(t,n){},c)})}}]),t})();v.type='backend',m.exports=v},635,[636,637,638]); -__d(function(g,r,i,a,m,e,d){m.exports=function(n,o){if(!(n instanceof o))throw new TypeError("Cannot call a class as a function")}},636,[]); -__d(function(g,r,i,a,m,e,d){function n(n,t){for(var o=0;o{{room}} has not yet started. If you are the host then please authenticate. Otherwise, please wait for the host to arrive.",WaitForHostMsgWOk:"The conference {{room}} has not yet started. If you are the host then please press Ok to authenticate. Otherwise, please wait for the host to arrive.",WaitingForHost:"Waiting for the host ...",Yes:"Yes",yourEntireScreen:"Your entire screen"},dialOut:{statusMessage:"is now {{status}}"},documentSharing:{title:"Shared Document"},feedback:{average:"Average",bad:"Bad",detailsLabel:"Tell us more about it.",good:"Good",rateExperience:"Rate your meeting experience",veryBad:"Very Bad",veryGood:"Very Good"},incomingCall:{answer:"Answer",audioCallTitle:"Incoming call",decline:"Dismiss",productLabel:"from Jitsi Meet",videoCallTitle:"Incoming video call"},info:{accessibilityLabel:"Show info",addPassword:"Add $t(lockRoomPassword)",cancelPassword:"Cancel $t(lockRoomPassword)",conferenceURL:"Link:",country:"Country",dialANumber:"To join your meeting, dial one of these numbers and then enter the pin.",dialInConferenceID:"PIN:",dialInNotSupported:"Sorry, dialing in is currently not supported.",dialInNumber:"Dial-in:",dialInSummaryError:"Error fetching dial-in info now. Please try again later.",dialInTollFree:"Toll Free",genericError:"Whoops, something went wrong.",inviteLiveStream:"To view the live stream of this meeting, click this link: {{url}}",invitePhone:"To join by phone instead, tap this: {{number}},,{{conferenceID}}#\n",invitePhoneAlternatives:"Looking for a different dial-in number?\nSee meeting dial-in numbers: {{url}}\n\n\nIf also dialing-in through a room phone, join without connecting to audio: {{silentUrl}}",inviteURLFirstPartGeneral:"You are invited to join a meeting.",inviteURLFirstPartPersonal:"{{name}} is inviting you to a meeting.\n",inviteURLSecondPart:"\nJoin the meeting:\n{{url}}\n",liveStreamURL:"Live stream:",moreNumbers:"More numbers",noNumbers:"No dial-in numbers.",noPassword:"None",noRoom:"No room was specified to dial-in into.",numbers:"Dial-in Numbers",password:"$t(lockRoomPasswordUppercase):",title:"Share",tooltip:"Share link and dial-in info for this meeting",label:"Meeting info"},inviteDialog:{alertText:"Failed to invite some participants.",header:"Invite",searchCallOnlyPlaceholder:"Enter phone number",searchPeopleOnlyPlaceholder:"Search for participants",searchPlaceholder:"Participant or phone number",send:"Send"},inlineDialogFailure:{msg:"We stumbled a bit.",retry:"Try again",support:"Support",supportMsg:"If this keeps happening, reach out to"},keyboardShortcuts:{focusLocal:"Focus on your video",focusRemote:"Focus on another person's video",fullScreen:"View or exit full screen",keyboardShortcuts:"Keyboard shortcuts",localRecording:"Show or hide local recording controls",mute:"Mute or unmute your microphone",pushToTalk:"Push to talk",raiseHand:"Raise or lower your hand",showSpeakerStats:"Show speaker stats",toggleChat:"Open or close the chat",toggleFilmstrip:"Show or hide video thumbnails",toggleScreensharing:"Switch between camera and screen sharing",toggleShortcuts:"Show or hide keyboard shortcuts",videoMute:"Start or stop your camera",videoQuality:"Manage call quality"},liveStreaming:{busy:"We're working on freeing streaming resources. Please try again in a few minutes.",busyTitle:"All streamers are currently busy",changeSignIn:"Switch accounts.",choose:"Choose a live stream",chooseCTA:"Choose a streaming option. You're currently logged in as {{email}}.",enterStreamKey:"Enter your YouTube live stream key here.",error:"Live Streaming failed. Please try again.",errorAPI:"An error occurred while accessing your YouTube broadcasts. Please try logging in again.",errorLiveStreamNotEnabled:"Live Streaming is not enabled on {{email}}. Please enable live streaming or log into an account with live streaming enabled.",expandedOff:"The live streaming has stopped",expandedOn:"The meeting is currently being streamed to YouTube.",expandedPending:"The live streaming is being started...",failedToStart:"Live Streaming failed to start",getStreamKeyManually:"We weren\u2019t able to fetch any live streams. Try getting your live stream key from YouTube.",invalidStreamKey:"Live stream key may be incorrect.",off:"Live Streaming stopped",offBy:"{{name}} stopped the live streaming",on:"Live Streaming",onBy:"{{name}} started the live streaming",pending:"Starting Live Stream...",serviceName:"Live Streaming service",signedInAs:"You are currently signed in as:",signIn:"Sign in with Google",signInCTA:"Sign in or enter your live stream key from YouTube.",signOut:"Sign out",start:"Start a live stream",streamIdHelp:"What's this?",unavailableTitle:"Live Streaming unavailable"},localRecording:{clientState:{off:"Off",on:"On",unknown:"Unknown"},dialogTitle:"Local Recording Controls",duration:"Duration",durationNA:"N/A",encoding:"Encoding",label:"LOR",labelToolTip:"Local recording is engaged",localRecording:"Local Recording",me:"Me",messages:{engaged:"Local recording engaged.",finished:"Recording session {{token}} finished. Please send the recorded file to the moderator.",finishedModerator:"Recording session {{token}} finished. The recording of the local track has been saved. Please ask the other participants to submit their recordings.",notModerator:"You are not the moderator. You cannot start or stop local recording."},moderator:"Moderator",no:"No",participant:"Participant",participantStats:"Participant Stats",sessionToken:"Session Token",start:"Start Recording",stop:"Stop Recording",yes:"Yes"},lockRoomPassword:"password",lockRoomPasswordUppercase:"Password",me:"me",notify:{connectedOneMember:"{{name}} joined the meeting",connectedThreePlusMembers:"{{name}} and {{count}} others joined the meeting",connectedTwoMembers:"{{first}} and {{second}} joined the meeting",disconnected:"disconnected",focus:"Conference focus",focusFail:"{{component}} not available - retry in {{ms}} sec",grantedTo:"Moderator rights granted to {{to}}!",invitedOneMember:"{{name}} has been invited",invitedThreePlusMembers:"{{name}} and {{count}} others have been invited",invitedTwoMembers:"{{first}} and {{second}} have been invited",kickParticipant:"{{kicked}} was kicked by {{kicker}}",me:"Me",moderator:"Moderator rights granted!",muted:"You have started the conversation muted.",mutedTitle:"You're muted!",mutedRemotelyTitle:"You have been muted by {{participantDisplayName}}!",mutedRemotelyDescription:"You can always unmute when you're ready to speak. Mute back when you're done to keep noise away from the meeting.",passwordRemovedRemotely:"$t(lockRoomPasswordUppercase) removed by another participant",passwordSetRemotely:"$t(lockRoomPasswordUppercase) set by another participant",raisedHand:"{{name}} would like to speak.",somebody:"Somebody",startSilentTitle:"You joined with no audio output!",startSilentDescription:"Rejoin the meeting to enable audio",suboptimalBrowserWarning:"We are afraid your meeting experience isn't going to be that great here. We are looking for ways to improve this, but until then please try using one of the fully supported browsers.",suboptimalExperienceTitle:"Browser Warning",unmute:"Unmute",newDeviceCameraTitle:"New camera detected",newDeviceAudioTitle:"New audio device detected",newDeviceAction:"Use"},passwordSetRemotely:"set by another participant",passwordDigitsOnly:"Up to {{number}} digits",poweredby:"powered by",presenceStatus:{busy:"Busy",calling:"Calling...",connected:"Connected",connecting:"Connecting...",connecting2:"Connecting*...",disconnected:"Disconnected",expired:"Expired",ignored:"Ignored",initializingCall:"Initializing Call...",invited:"Invited",rejected:"Rejected",ringing:"Ringing..."},profile:{setDisplayNameLabel:"Set your display name",setEmailInput:"Enter e-mail",setEmailLabel:"Set your gravatar email",title:"Profile"},raisedHand:"Would like to speak",recording:{authDropboxText:"Upload to Dropbox",availableSpace:"Available space: {{spaceLeft}} MB (approximately {{duration}} minutes of recording)",beta:"BETA",busy:"We're working on freeing recording resources. Please try again in a few minutes.",busyTitle:"All recorders are currently busy",error:"Recording failed. Please try again.",expandedOff:"Recording has stopped",expandedOn:"The meeting is currently being recorded.",expandedPending:"Recording is being started...",failedToStart:"Recording failed to start",fileSharingdescription:"Share recording with meeting participants",live:"LIVE",loggedIn:"Logged in as {{userName}}",off:"Recording stopped",offBy:"{{name}} stopped the recording",on:"Recording",onBy:"{{name}} started the recording",pending:"Preparing to record the meeting...",rec:"REC",serviceDescription:"Your recording will be saved by the recording service",serviceName:"Recording service",signIn:"Sign in",signOut:"Sign out",unavailable:"Oops! The {{serviceName}} is currently unavailable. We're working on resolving the issue. Please try again later.",unavailableTitle:"Recording unavailable"},sectionList:{pullToRefresh:"Pull to refresh"},settings:{calendar:{about:"The {{appName}} calendar integration is used to securely access your calendar so it can read upcoming events.",disconnect:"Disconnect",microsoftSignIn:"Sign in with Microsoft",signedIn:"Currently accessing calendar events for {{email}}. Click the Disconnect button below to stop accessing calendar events.",title:"Calendar"},devices:"Devices",followMe:"Everyone follows me",language:"Language",loggedIn:"Logged in as {{name}}",moderator:"Moderator",more:"More",name:"Name",noDevice:"None",selectAudioOutput:"Audio output",selectCamera:"Camera",selectMic:"Microphone",startAudioMuted:"Everyone starts muted",startVideoMuted:"Everyone starts hidden",title:"Settings"},settingsView:{advanced:"Advanced",alertOk:"OK",alertTitle:"Warning",alertURLText:"The entered server URL is invalid",buildInfoSection:"Build Information",conferenceSection:"Conference",disableCallIntegration:"Disable native call integration",disableP2P:"Disable Peer-To-Peer mode",displayName:"Display name",email:"Email",header:"Settings",profileSection:"Profile",serverURL:"Server URL",showAdvanced:"Show advanced settings",startWithAudioMuted:"Start with audio muted",startWithVideoMuted:"Start with video muted",version:"Version"},share:{dialInfoText:"\n\n=====\n\nJust want to dial in on your phone?\n\n{{defaultDialInNumber}}Click this link to see the dial in phone numbers for this meeting\n{{dialInfoPageUrl}}",mainText:"Click the following link to join the meeting:\n{{roomUrl}}"},speaker:"Speaker",speakerStats:{hours:"{{count}}h",minutes:"{{count}}m",name:"Name",seconds:"{{count}}s",speakerStats:"Speaker Stats",speakerTime:"Speaker Time"},startupoverlay:{policyText:" ",title:"{{app}} needs to use your microphone and camera."},suspendedoverlay:{rejoinKeyTitle:"Rejoin",text:"Press the Rejoin button to reconnect.",title:"Your video call was interrupted because this computer went to sleep."},toolbar:{accessibilityLabel:{audioOnly:"Toggle audio only",audioRoute:"Select the sound device",callQuality:"Manage video quality",cc:"Toggle subtitles",chat:"Toggle chat window",document:"Toggle shared document",download:"Download our apps",feedback:"Leave feedback",fullScreen:"Toggle full screen",hangup:"Leave the call",help:"Help",invite:"Invite people",kick:"Kick participant",localRecording:"Toggle local recording controls",lockRoom:"Toggle meeting password",moreActions:"Toggle more actions menu",moreActionsMenu:"More actions menu",mute:"Toggle mute audio",pip:"Toggle Picture-in-Picture mode",privateMessage:"Send private message",profile:"Edit your profile",raiseHand:"Toggle raise hand",recording:"Toggle recording",remoteMute:"Mute participant",Settings:"Toggle settings",sharedvideo:"Toggle Youtube video sharing",shareRoom:"Invite someone",shareYourScreen:"Toggle screenshare",shortcuts:"Toggle shortcuts",show:"Show on stage",speakerStats:"Toggle speaker statistics",tileView:"Toggle tile view",toggleCamera:"Toggle camera",videomute:"Toggle mute video",videoblur:"Toggle video blur"},addPeople:"Add people to your call",audioOnlyOff:"Disable low bandwidth mode",audioOnlyOn:"Enable low bandwidth mode",audioRoute:"Select the sound device",authenticate:"Authenticate",callQuality:"Manage video quality",chat:"Open / Close chat",closeChat:"Close chat",documentClose:"Close shared document",documentOpen:"Open shared document",download:"Download our apps",enterFullScreen:"View full screen",enterTileView:"Enter tile view",exitFullScreen:"Exit full screen",exitTileView:"Exit tile view",feedback:"Leave feedback",hangup:"Leave",help:"Help",invite:"Invite people",login:"Login",logout:"Logout",lowerYourHand:"Lower your hand",moreActions:"More actions",mute:"Mute / Unmute",openChat:"Open chat",pip:"Enter Picture-in-Picture mode",privateMessage:"Send private message",profile:"Edit your profile",raiseHand:"Raise / Lower your hand",raiseYourHand:"Raise your hand",Settings:"Settings",sharedvideo:"Share a YouTube video",shareRoom:"Invite someone",shortcuts:"View shortcuts",speakerStats:"Speaker stats",startScreenSharing:"Start screen sharing",startSubtitles:"Start subtitles",stopScreenSharing:"Stop screen sharing",stopSubtitles:"Stop subtitles",stopSharedVideo:"Stop YouTube video",talkWhileMutedPopup:"Trying to speak? You are muted.",tileViewToggle:"Toggle tile view",toggleCamera:"Toggle camera",videomute:"Start / Stop camera",startvideoblur:"Blur my background",stopvideoblur:"Disable background blur"},transcribing:{ccButtonTooltip:"Start / Stop subtitles",error:"Transcribing failed. Please try again.",expandedLabel:"Transcribing is currently on",failedToStart:"Transcribing failed to start",labelToolTip:"The meeting is being transcribed",off:"Transcribing stopped",pending:"Preparing to transcribe the meeting...",start:"Start showing subtitles",stop:"Stop showing subtitles",tr:"TR"},userMedia:{androidGrantPermissions:"Select Allow when your browser asks for permissions.",chromeGrantPermissions:"Select Allow when your browser asks for permissions.",edgeGrantPermissions:"Select Yes when your browser asks for permissions.",electronGrantPermissions:"Please grant permissions to use your camera and microphone",firefoxGrantPermissions:"Select Share Selected Device when your browser asks for permissions.",iexplorerGrantPermissions:"Select OK when your browser asks for permissions.",nwjsGrantPermissions:"Please grant permissions to use your camera and microphone",operaGrantPermissions:"Select Allow when your browser asks for permissions.","react-nativeGrantPermissions":"Select Allow when your browser asks for permissions.",safariGrantPermissions:"Select OK when your browser asks for permissions."},videoSIPGW:{busy:"We're working on freeing resources. Please try again in a few minutes.",busyTitle:"The Room service is currently busy",errorAlreadyInvited:"{{displayName}} already invited",errorInvite:"Conference not established yet. Please try again later.",errorInviteFailed:"We're working on resolving the issue. Please try again later.",errorInviteFailedTitle:"Inviting {{displayName}} failed",errorInviteTitle:"Error inviting room",pending:"{{displayName}} has been invited"},videoStatus:{audioOnly:"AUD",audioOnlyExpanded:"You are in low bandwidth mode. In this mode you will receive only audio and screen sharing.",callQuality:"Video Quality",hd:"HD",hdTooltip:"Viewing high definition video",highDefinition:"High definition",labelTooiltipNoVideo:"No video",labelTooltipAudioOnly:"Low bandwidth mode enabled",ld:"LD",ldTooltip:"Viewing low definition video",lowDefinition:"Low definition",onlyAudioAvailable:"Only audio is available",onlyAudioSupported:"We only support audio in this browser.",p2pEnabled:"Peer to Peer Enabled",p2pVideoQualityDescription:"In peer to peer mode, received video quality can only be toggled between high and audio only. Other settings will not be honored until peer to peer is exited.",recHighDefinitionOnly:"Will prefer high definition.",sd:"SD",sdTooltip:"Viewing standard definition video",standardDefinition:"Standard definition"},videothumbnail:{domute:"Mute",flip:"Flip",kick:"Kick out",moderator:"Moderator",mute:"Participant is muted",muted:"Muted",remoteControl:"Remote control",show:"Show on stage",videomute:"Participant has stopped the camera"},welcomepage:{accessibilityLabel:{join:"Tap to join",roomname:"Enter room name"},appDescription:"Go ahead, video chat with the whole team. In fact, invite everyone you know. {{app}} is a fully encrypted, 100% open source video conferencing solution that you can use all day, every day, for free \u2014 with no account needed.",audioVideoSwitch:{audio:"Voice",video:"Video"},calendar:"Calendar",connectCalendarButton:"Connect your calendar",connectCalendarText:"Connect your calendar to view all your meetings in {{app}}. Plus, add {{provider}} meetings to your calendar and start them with one click.",enterRoomTitle:"Start a new meeting",roomNameAllowedChars:"Meeting name should not contain any of these characters: ?, &, :, ', \", %, #.",go:"GO",goSmall:"GO",join:"JOIN",info:"Info",privacy:"Privacy",recentList:"Recent",recentListDelete:"Delete",recentListEmpty:"Your recent list is currently empty. Chat with your team and you will find all your recent meetings here.",reducedUIText:"Welcome to {{app}}!",roomname:"Enter room name",roomnameHint:"Enter the name or URL of the room you want to join. You may make a name up, just let the people you are meeting know it so that they enter the same name.",sendFeedback:"Send feedback",terms:"Terms",title:"Secure, fully featured, and completely free video conferencing"}}},641,[]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=r(d[0]),o={cacheUserLanguage:Function.prototype,detect:function(){return t.NativeModules.LocaleDetector.locale.replace(/_/,'-')},init:Function.prototype,type:'languageDetector'};e.default=o},642,[17]); -__d(function(g,r,i,a,m,e,d){var n=r(d[0])(r(d[1])),u={af:{languages:r(d[2]),main:r(d[3])},bg:{languages:r(d[4]),main:r(d[5])},de:{languages:r(d[6]),main:r(d[7])},enGB:{languages:r(d[8]),main:r(d[9])},eo:{languages:r(d[10]),main:r(d[11])},es:{languages:r(d[12]),main:r(d[13])},esUS:{languages:r(d[14]),main:r(d[15])},fi:{languages:r(d[16]),main:r(d[17])},fr:{languages:r(d[18]),main:r(d[19])},frCA:{languages:r(d[20]),main:r(d[21])},hr:{languages:r(d[22]),main:r(d[23])},hu:{languages:r(d[24]),main:r(d[25])},it:{languages:r(d[26]),main:r(d[27])},ja:{languages:r(d[28]),main:r(d[29])},ko:{languages:r(d[30]),main:r(d[31])},nl:{languages:r(d[32]),main:r(d[33])},oc:{languages:r(d[34]),main:r(d[35])},pl:{languages:r(d[36]),main:r(d[37])},ptBR:{languages:r(d[38]),main:r(d[39])},ru:{languages:r(d[40]),main:r(d[41])},sv:{languages:r(d[42]),main:r(d[43])},vi:{languages:r(d[44]),main:r(d[45])},zhCN:{languages:r(d[46]),main:r(d[47])},zhTW:{languages:r(d[48]),main:r(d[49])}};for(var l in u){var s=u[l],f=s.languages,o=s.main;n.default.addResourceBundle(l,'languages',f,!0,!0),n.default.addResourceBundle(l,'main',o,!0,!0)}},643,[3,616,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691]); -__d(function(s,e,a,n,i,o,r){i.exports={en:"Engels",af:"",az:"Azerbeidjans",bg:"Bulgaars",cs:"Tsjeggies",de:"Duits",el:"Grieks",eo:"Esperanto",es:"Spaans",fr:"Frans",hy:"Armeens",it:"Italiaans",ja:"Japannees",ko:"Koreaans",nb:"Bokmal-Noorweegs",oc:"Oksitaans",pl:"Pools",ptBR:"Portugees (Brasili\xeb)",ru:"Russies",sk:"Slowaaks",sl:"Sloweens",sv:"Sweeds",tr:"Turks",vi:"Vi\xebtnamees",zhCN:"Sjinees (Sjina)"}},644,[]); -__d(function(e,i,n,o,r,a,t){r.exports={addPeople:{add:"Nooi uit",countryNotSupported:"Ons ondersteun nog nie di\xe9 bestemming nie.",countryReminder:"",disabled:"U kan nie mense nooi nie.",failedToAdd:"",footerText:"",loading:"",loadingNumber:"Valideer tans foonnommer",loadingPeople:"",noResults:"Geen soekresultate wat pas nie",noValidNumbers:"Gee asseblief \u2019n foonnommer",searchNumbers:"Voeg foonnommers by",searchPeople:"Soek mense",searchPeopleAndNumbers:"Soek mense of voeg hulle foonnommers by",telephone:"Telefoon: {{number}}",title:"Nooi mense na di\xe9 vergadering"},audioDevices:{bluetooth:"Bluetooth",headphones:"Oorfone",phone:"Foon",speaker:"Luidspreker"},audioOnly:{audioOnly:"Net klank"},calendarSync:{addMeetingURL:"Voeg \u2019n vergaderingskakel by",confirmAddLink:"Wil u \u2019n Jitsi-skakel by di\xe9 geleentheid voeg?",error:{appConfiguration:"",generic:"",notSignedIn:""},join:"Sluit aan",joinTooltip:"Sluit aan by die vergadering",nextMeeting:"volgende vergadering",noEvents:"Geen komende geleenthede is geskeduleer nie.",ongoingMeeting:"vergadering onderweg",permissionButton:"Open instellings",permissionMessage:"",refresh:"Verfris kalender",today:"Vandag"},chat:{error:"",messagebox:"",nickname:{popover:"Kies \u2019n bynaam",title:""},title:""},connectingOverlay:{joiningRoom:""},connection:{ATTACHED:"",AUTHENTICATING:"Verifieer",AUTHFAIL:"",CONNECTED:"Gekoppel",CONNECTING:"Koppel tans",CONNFAIL:"Koppeling het misluk",DISCONNECTED:"Ontkoppeld",DISCONNECTING:"Ontkoppel tans",ERROR:"Fout",RECONNECTING:"\u2019n Netwerkprobleem het voorgekom. Herkoppel tans..."},connectionindicator:{address:"Adres:",bandwidth:"Geraamde bandwydte:",bitrate:"Bistempo:",bridgeCount:"Aantal bedieners: ",connectedTo:"Gekoppel aan:",framerate:"Raampietempo:",less:"Wys minder",localaddress:"Plaaslike adres:",localaddress_plural:"Plaaslike adresse:",localport:"Plaaslike poort:",localport_plural:"Plaaslike poorte:",more:"Wys meer",packetloss:"Pakkies verloor:",quality:{good:"Goed",inactive:"Onaktief",lost:"",nonoptimal:"",poor:"Swak"},remoteaddress:"Afgele\xeb adres:",remoteaddress_plural:"Afgele\xeb adresse:",remoteport:"Afgele\xeb poort:",remoteport_plural:"Afgele\xeb poorte:",resolution:"Resolusie:",status:"Verbinding:",transport:"",transport_plural:"",turn:""},dateUtils:{earlier:"Vroe\xebr",today:"Vandag",yesterday:"Gister"},deepLinking:{appNotInstalled:"",description:"",descriptionWithoutWeb:"",downloadApp:"",launchWebButton:"",openApp:"",title:"",tryAgainButton:""},defaultLink:"bv. {{url}}",deviceError:{cameraError:"Toegang na u kamera het misluk",cameraPermission:"Fout met verkryging van kameratoestemming",microphoneError:"Toegang na u mikrofoon het misluk",microphonePermission:"Fout met verkryging van mikrofoontoestemming"},deviceSelection:{noPermission:"Toestemming nie gegee nie",previewUnavailable:"Voorskou nie beskikbaar nie",selectADevice:"Kies 'n toestel",testAudio:"Speel \u2019n toetsklank"},dialog:{accessibilityLabel:{liveStreaming:"Regstreekse stroom"},allow:"Laat toe",alreadySharedVideoMsg:"",alreadySharedVideoTitle:"Slegs een gedeelde video op \u2019n slag word toegelaat",applicationWindow:"Toepassingsvenster",Back:"Terug",cameraConstraintFailedError:"Die kamera voldoen nie aan sekere van die vereistes nie.",cameraNotFoundError:"Kamera is nie gevind nie.",cameraNotSendingData:"Ons kry nie toegang tot u kamera nie. Kontroleer of \u2019n ander toepassing di\xe9 toestel gebruik, kies asb. \u2019n ander toestel by die instellingskieslys of probeer om die toepassing op nuut te laai.",cameraNotSendingDataTitle:"Kan nie toegang tot kamera kry nie",cameraPermissionDeniedError:"U het nie toestemming gegee om u kamera te gebruik nie. U kan steeds by die konferensie aansluit, maar ander sal u nie kan sien nie. Gebruik die kameraknoppie in die adresbalk om dit reg te stel.",cameraUnknownError:"Kan weens onbekende rede nie die kamera gebruik nie.",cameraUnsupportedResolutionError:"Die kamera ondersteun nie die nodige videoresolusie nie.",Cancel:"Kanselleer",close:"Sluit",conferenceDisconnectMsg:"Kontroleer dalk die netwerkverbinding. Gaan oor {{seconds}} sekondes weer koppel...",conferenceDisconnectTitle:"Die verbinding is verbreek.",conferenceReloadMsg:"Ons probeer om dit reg te stel. Gaan herkoppel oor {{seconds}} sekondes...",conferenceReloadTitle:"Iets het ongelukkig skeefgeloop.",confirm:"Bevestig",confirmNo:"Nee",confirmYes:"Ja",connectError:"Oeps! Iets het skeefgeloop en ons kon nie aan die konferensie koppel nie.",connectErrorWithMsg:"Oeps! Iets het skeefgeloop en ons kon nie aan die konferensie koppel nie: {{msg}}",connecting:"Koppel tans",contactSupport:"Kontak ondersteuning",copy:"Kopieer",dismiss:"Weier",displayNameRequired:"",done:"Klaar",enterDisplayName:"",error:"Fout",externalInstallationMsg:"U moet ons uitbreiding vir werkskermdeling installeer.",externalInstallationTitle:"Uitbreiding is nodig",goToStore:"Gaan na die webwinkel",gracefulShutdown:"Ons diens is tans buite werking t.w.v. onderhoud. Probeer gerus weer later.",IamHost:"Ek is die gasheer",incorrectRoomLockPassword:"",incorrectPassword:"Verkeerde gebruikernaam of wagwoord",inlineInstallationMsg:"U moet ons uitbreiding vir werkskermdeling installeer.",inlineInstallExtension:"Installeer nou",internalError:"Oeps! Iets het skeefgeloop. Die volgende fout het voorgekom: {{error}}",internalErrorTitle:"Interne fout",kickMessage:"",kickParticipantButton:"",kickParticipantDialog:"",kickParticipantTitle:"",kickTitle:"",liveStreaming:"Regstreekse stroom",liveStreamingDisabledForGuestTooltip:"Gaste kan nie regstreekse strome begin nie.",liveStreamingDisabledTooltip:"Begin van regstreekse stroom gedeaktiveer.",lockMessage:"Kon nie die konferensie sluit nie.",lockRoom:"",lockTitle:"Sluit het misluk",logoutQuestion:"Wil u definitief afmeld en die konferensie stop?",logoutTitle:"Meld af",maxUsersLimitReached:"",maxUsersLimitReachedTitle:"",micConstraintFailedError:"Die mikrofoon voldoen nie aan sekere van die vereistes nie.",micNotFoundError:"Mikrofoon is nie gevind nie.",micNotSendingData:"",micNotSendingDataTitle:"",micPermissionDeniedError:"U het nie toestemming gegee om u mikrofoon te gebruik nie. U kan steeds by die konferensie aansluit, maar ander sal u nie kan hoor nie. Gebruik die kameraknoppie in die adresbalk om dit reg te stel.",micUnknownError:"Kan weens onbekende rede nie die mikrofoon gebruik nie.",muteParticipantBody:"U sal hulle nie kan ontdemp nie, maar hulle sal hulself enige tyd kan ontdemp.",muteParticipantButton:"Demp",muteParticipantDialog:"",muteParticipantTitle:"",Ok:"Regso",passwordLabel:"",passwordNotSupported:"Die instel van \u2019n vergaderingwagwoord word nie ondersteun nie.",passwordNotSupportedTitle:"",passwordRequired:"",popupError:"U blaaier blokkeer opspringers vanaf hierdie werf. Aktiveer opspringers in die blaaier se sekuriteitopsies en probeer weer.",popupErrorTitle:"Opspringer geblok",recording:"Neem tans op",recordingDisabledForGuestTooltip:"Gaste kan nie opnames begin nie.",recordingDisabledTooltip:"Begin van opname gedeaktiveer.",rejoinNow:"Sluit nou weer aan",remoteControlAllowedMessage:"",remoteControlDeniedMessage:"",remoteControlErrorMessage:"",remoteControlRequestMessage:"",remoteControlShareScreenWarning:"",remoteControlStopMessage:"",remoteControlTitle:"",Remove:"Verwyder",removePassword:"",removeSharedVideoMsg:"Wil u definitief u gedeelde video verwyder?",removeSharedVideoTitle:"Verwyder gedeelde video",reservationError:"",reservationErrorMsg:"Foutkode: {{code}}, boodskap: {{msg}}",retry:"Herprobeer",screenSharingFailedToInstall:"Oeps! Die uitbreiding vir skermdeling kon nie installeer nie.",screenSharingFailedToInstallTitle:"Uitbreiding vir skermdeling kon nie installeer nie",screenSharingFirefoxPermissionDeniedError:"Iets het skeefgeloop toe ons die skerm probeer deel het. Maak seker dat ons dei toestemming gegee word om dit te doen. ",screenSharingFirefoxPermissionDeniedTitle:"Oeps! Ons kon nie skermdeling begin nie!",screenSharingPermissionDeniedError:"",serviceUnavailable:"Diens nie beskikbaar nie",sessTerminated:"Oproep gestaak",Share:"Deel",shareVideoLinkError:"Gee asb. \u2019n korrekte YouTube-skakel.",shareVideoTitle:"Deel \u2019n video",shareYourScreen:"Deel u skerm",shareYourScreenDisabled:"Skermdeling gedeaktiveer.",shareYourScreenDisabledForGuest:"Gaste kan nie skerms deel nie.",startLiveStreaming:"Begin regstreekse stroom",startRecording:"Begin opname",startRemoteControlErrorMessage:"",stopLiveStreaming:"Stop regstreekse stroom",stopRecording:"Stop opname",stopRecordingWarning:"Wil u definitief die opname stop?",stopStreamingWarning:"Wil u definitief die regstreekse stroom stop?",streamKey:"Sleutel vir regstreekse stroom",Submit:"Dien in",thankYou:"Dankie dat u {{appName}} gebruik!",token:"",tokenAuthFailed:"Jammer! U mag nie by di\xe9 oproep aansluit nie.",tokenAuthFailedTitle:"",transcribing:"Transkribering",unlockRoom:"",userPassword:"gebruikerwagwoord",WaitForHostMsg:"",WaitForHostMsgWOk:"",WaitingForHost:"Wag tans vir die gasheer ...",Yes:"Ja",yourEntireScreen:"U hele skerm"},dialOut:{statusMessage:"is nou {{status}}"},feedback:{average:"Gemiddeld",bad:"Sleg",detailsLabel:"Vertel ons meer.",good:"Goed",rateExperience:"",veryBad:"Baie sleg",veryGood:"Baie goed"},incomingCall:{answer:"Antwoord",audioCallTitle:"Inkomende oproep",decline:"Weier",productLabel:"vanaf Jitsi Meet",videoCallTitle:"Inkomende video-oproep"},info:{accessibilityLabel:"Wys inligting",addPassword:"",cancelPassword:"",conferenceURL:"Skakel:",country:"Land",dialANumber:"",dialInConferenceID:"PIN:",dialInNotSupported:"Jammer. Inbel word nie tans ondersteun nie.",dialInNumber:"Inbel:",dialInSummaryError:"",dialInTollFree:"",genericError:"Oeps! Iets het skeefgeloop.",inviteLiveStream:"Om die regstreekse stroom van di\xe9 vergadering te sien, klik di\xe9 skakel: {{url}}",invitePhone:"",invitePhoneAlternatives:"",inviteURLFirstPartGeneral:"",inviteURLFirstPartPersonal:"",inviteURLSecondPart:"",liveStreamURL:"Regstreekse stroom:",moreNumbers:"Meer nommers",noNumbers:"Geen inbelnommers.",noPassword:"Geen",noRoom:"Geen kamer is gegee om na in te bel nie.",numbers:"Inbelnommers",password:"",title:"Deel",tooltip:"Deelskakel en inbelinligting vir di\xe9 vergadering",label:""},inviteDialog:{alertText:"",header:"Nooi uit",searchCallOnlyPlaceholder:"",searchPeopleOnlyPlaceholder:"",searchPlaceholder:"",send:""},inlineDialogFailure:{msg:"Ons het gestruikel.",retry:"Probeer weer",support:"Ondersteuning",supportMsg:"Indien dit aanhou, maak kontak met"},keyboardShortcuts:{focusLocal:"Fokus op u video",focusRemote:"Fokus op \u2019n ander persoon se video",fullScreen:"Bekyk of verlaat volskerm",keyboardShortcuts:"Sleutelbordkortpaaie",localRecording:"Wys of versteek kontroles vir plaaslike opname",mute:"Demp of ontdemp jou mikrofoon",pushToTalk:"Druk om te praat",raiseHand:"Steek hand op of laat sak hom",showSpeakerStats:"Wys sprekerstatistiek",toggleChat:"Maak gesels oop of toe",toggleFilmstrip:"Wys of versteek duimnaels vir video\u2019s",toggleScreensharing:"Wissel tussen kamera- en skermdeling",toggleShortcuts:"Wys of versteek sleutelbordkortpaaie",videoMute:"Begin of stop u kamera"},liveStreaming:{busy:"",busyTitle:"Alle opnemers is tans besig",changeSignIn:"Wissel rekeninge.",choose:"Kies \u2019n regstreekse stroom",chooseCTA:"Kies \u2019n stroomopsie. U is tans aangemeld as {{email}}.",enterStreamKey:"Gee u sleutel vir regstreekse stroom by YouTube hier.",error:"Kon nie regstreeks stroom nie. Probeer gerus weer.",errorAPI:"\u2019n Fout het voorgekom tydens toegang tot u YouTube-uitsendings. Probeer om weer aan te meld.",errorLiveStreamNotEnabled:"Regstreekse stroom is nie geaktiveer op {{email}} nie. Aktiveer asb. regstreekse strome of meld aan met \u2019n rekening met regstreekse strome geaktiveer.",expandedOff:"Die regstreekse stroom het gestop",expandedOn:"Die vergadering word tans gestroom na YouTube.",expandedPending:"Die regstreekse stroom begin tans...",failedToStart:"Regstreekse stroom kon nie begin nie",getStreamKeyManually:"",invalidStreamKey:"",off:"Regstreekse stroom het gestop",on:"Regstreekse stroom",pending:"Begin tans regstreekse stroom...",serviceName:"Regstreekse stroomdiens",signedInAs:"U is tans aangemeld as:",signIn:"Meld aan met Google",signInCTA:"Meld aan of gee u sleutel vir regstreekse stroom vanaf YouTube.",signOut:"Meld af",start:"Begin \u2019n regstreekse stroom",streamIdHelp:"Wat\u2019s di\xe9?",unavailableTitle:"Regstreekse strome nie beskikbaar nie"},localRecording:{clientState:{off:"Af",on:"Aan",unknown:"Onbekend"},dialogTitle:"Kontroles vir plaaslike opname",duration:"Duur",durationNA:"",encoding:"Enkodering",label:"",labelToolTip:"",localRecording:"Plaaslike opname",me:"Ek",messages:{engaged:"",finished:"",finishedModerator:"",notModerator:"U is nie die moderator nie. U kan nie \u2019n plaaslike opname begin of stop nie."},moderator:"Moderator",no:"Nee",participant:"Deelnemer",participantStats:"Deelnemerstatistiek",sessionToken:"",start:"Begin opname",stop:"Stop opname",yes:"Ja"},lockRoomPassword:"Wagwoord",lockRoomPasswordUppercase:"Wagwoord",me:"ek",notify:{connectedOneMember:"",connectedThreePlusMembers:"",connectedTwoMembers:"",disconnected:"ontkoppel",focus:"",focusFail:"",grantedTo:"{{to}} is nou moderator!",invitedOneMember:"",invitedThreePlusMembers:"",invitedTwoMembers:"",kickParticipant:"",me:"Ek",moderator:"U is ou moderator!",muted:"U het die gesprek gedemp begin.",mutedTitle:"U is gedemp!",mutedRemotelyTitle:"",mutedRemotelyDescription:"",passwordRemovedRemotely:"",passwordSetRemotely:"",raisedHand:"",somebody:"Iemand",startSilentTitle:"",startSilentDescription:"",suboptimalExperienceDescription:"Gits... ons is bevrees u ervaring met {{appName}} gaan nie so goed wees hier nie. Ons soek maniere om dit die hoof te bied, maar probeer intussen een van die volledig ondersteunde blaaiers.",suboptimalExperienceTitle:"Blaaierwaarskuwing",unmute:"",newDeviceCameraTitle:"",newDeviceAudioTitle:"",newDeviceAction:""},passwordSetRemotely:"",passwordDigitsOnly:"",poweredby:"aangedryf deur",presenceStatus:{busy:"Besig",calling:"Bel tans...",connected:"Gekoppel",connecting:"Koppel tans...",connecting2:"Koppel tans*...",disconnected:"Ontkoppeld",expired:"Verval",ignored:"Ge\xefgnoreer",initializingCall:"Inisialiseer tans oproep...",invited:"Uitgenooi",rejected:"Geweier",ringing:"Lui tans..."},profile:{setDisplayNameLabel:"Stel u vertoonnaam",setEmailInput:"Gee e-posadres",setEmailLabel:"Stel u gravatar-e-posadres",title:"Profiel"},recording:{authDropboxText:"Laai op na Dropbox",availableSpace:"Beskikbare spasie: {{spaceLeft}} MB (ongeveer {{duration}} minute se opname)",beta:"",busy:"",busyTitle:"Alle opnemers is tans besig",error:"Opname het misluk. Probeer gerus weer.",expandedOff:"Opname het gestop",expandedOn:"Die vergadering word tans opgeneem.",expandedPending:"Opname word begin...",failedToStart:"Kon nie begin opneem nie",fileSharingdescription:"",live:"",loggedIn:"Aangemeld as {{name}}",off:"Opname gestop",on:"Neem tans op",pending:"Berei voor om vergadering op te neem...",rec:"",serviceDescription:"",serviceName:"Opneemdiens",signIn:"meld aan",signOut:"Meld af",unavailable:"",unavailableTitle:""},sectionList:{pullToRefresh:""},settings:{calendar:{about:"",disconnect:"Ontkoppel",microsoftSignIn:"Meld aan met Microsoft",signedIn:"",title:"Kalender"},devices:"Toestelle",followMe:"Almal volg my",language:"Taal",loggedIn:"Aangemeld as {{name}}",moderator:"Moderator",more:"Meer",name:"Naam",noDevice:"Geen",selectAudioOutput:"Klankafvoer",selectCamera:"Kamera",selectMic:"Mikrofoon",startAudioMuted:"Almal begin gedemp",startVideoMuted:"Almal begin versteek",title:"Instellings"},settingsView:{alertOk:"Regso",alertTitle:"Waarskuwing",alertURLText:"Die gegewe bediener-URL is ongeldig",buildInfoSection:"",conferenceSection:"Konferensie",displayName:"Vertoonnaam",email:"E-pos",header:"Instellings",profileSection:"Profiel",serverURL:"Bediener-URL",startWithAudioMuted:"Begin met klank gedemp",startWithVideoMuted:"Begin met video gedemp",version:""},share:{dialInfoText:"",mainText:"Klik die volgende skakel om by die vergadering aan te sluit:\n{{roomUrl}}"},speaker:"Luidspreker",speakerStats:{hours:"{{count}}h",minutes:"{{count}}m",name:"Naam",seconds:"{{count}}s",speakerStats:"Sprekerstatistiek",speakerTime:"Sprekertyd"},startupoverlay:{policyText:"",title:"{{app}} benodig u mikrofoon en kamera."},suspendedoverlay:{rejoinKeyTitle:"Sluit weer aan",text:"Druk die Sluit weer aan-knoppie om te herkoppel.",title:"U video-oproep is onderbreek omdat die rekenaar gaan slaap het."},toolbar:{accessibilityLabel:{audioOnly:"Wissel Net klank",audioRoute:"Kies die klanktoestel",callQuality:"",cc:"Wissel onderskrifte",chat:"Wissel geselsvenster",document:"Wissel gedeelde dokument",feedback:"Laat terugvoer",fullScreen:"Wissel volskerm",hangup:"Verlaat die oproep",invite:"Nooi mense",kick:"",localRecording:"Wissel kontroles vir plaaslike opname",lockRoom:"",moreActions:"Wissel kieslys vir meer aksies",moreActionsMenu:"Kieslys vir meer aksies",mute:"",pip:"Wissel Prent-in-Prent-modus",profile:"Redigeer u profiel",raiseHand:"Wissel handopsteek",recording:"Wissel opname",remoteMute:"",Settings:"Wissel instellings",sharedvideo:"Wissel Youtube-videodeling",shareRoom:"Nooi iemand",shareYourScreen:"Wissel skermdeling",shortcuts:"Wissel kortpaaie",show:"",speakerStats:"Wissel sprekerstatistiek",tileView:"Wissel te\xeblaansig",toggleCamera:"Wissel kamera",videomute:"",videoblur:""},addPeople:"Voeg mense by die oproep",audioOnlyOff:"Deaktiveer Net klank-modus",audioOnlyOn:"Deaktiveer Net klank-modus",audioRoute:"Kies die klanktoestel",authenticate:"Verifieer",callQuality:"Bestuur oproepkwaliteit",chat:"Open / sluit gesels",closeChat:"",documentClose:"Sluit gedeelde dokument",documentOpen:"Open gedeelde dokument",enterFullScreen:"Volskermaansig",enterTileView:"",exitFullScreen:"Verlaat volskerm",exitTileView:"",feedback:"Laat terugvoer",hangup:"Verlaat",invite:"Nooi mense",login:"Meld aan",logout:"Meld af",lowerYourHand:"",moreActions:"Meer aksies",mute:"Demp / ontdemp",openChat:"",pip:"Betree Prent-in-Prent-modus",profile:"Redigeer u profiel",raiseHand:"Lig / laat sak u hand",raiseYourHand:"",Settings:"Instellings",sharedvideo:"Deel \u2019n YouTube-video",shareRoom:"Nooi iemand",shortcuts:"Sien kortpaaie",speakerStats:"Sprekerstatistiek",startScreenSharing:"",startSubtitles:"",stopScreenSharing:"",stopSubtitles:"",stopSharedVideo:"Stop YouTube-video",talkWhileMutedPopup:"Besig om te praat? U is gedemp.",tileViewToggle:"Wissel te\xeblaansig",toggleCamera:"Wissel kamera",videomute:"Begin / stop kamera",startvideoblur:"",stopvideoblur:""},transcribing:{ccButtonTooltip:"",error:"Opname het misluk. Probeer gerus weer.",expandedLabel:"",failedToStart:"",labelToolTip:"Die vergadering word getranskribeer",off:"",pending:"Berei tans voor om die vergadering te transkribeer...",start:"",stop:"",tr:""},userMedia:{androidGrantPermissions:"Kies Allow wanneer die blaaier vir toestemming vra.",chromeGrantPermissions:"Kies Allow wanneer die blaaier vir toestemming vra.",edgeGrantPermissions:"Kies Yes wanneer die blaaier vir toestemming vra.",electronGrantPermissions:"Gee asb. toestemming vir die gebruik van u kamera en mikrofoon",firefoxGrantPermissions:"Kies Deel gekose toestel wanneer die blaaier vir toestemming vra.",iexplorerGrantPermissions:"Kies OK wanneer die blaaier vir toestemming vra.",nwjsGrantPermissions:"Gee asb. toestemming vir die gebruik van u kamera en mikrofoon",operaGrantPermissions:"Kies Allow wanneer die blaaier vir toestemming vra.","react-nativeGrantPermissions":"Kies Allow wanneer die blaaier vir toestemming vra.",safariGrantPermissions:"Kies OK wanneer die blaaier vir toestemming vra."},videoSIPGW:{busy:"Ons probeer tans hulpbronne vry te stel. Probeer gerus weer oor \u2019n paar minute.",busyTitle:"Die Kamerdiens is tans besig",errorAlreadyInvited:"{{displayName}} is reeds genooi",errorInvite:"Konferensie is nog nie gestig nie. Probeer gerus weer later.",errorInviteFailed:"Ons werk aan \u2019n oplossing vir die probleem. Probeer gerus weer later.",errorInviteFailedTitle:"Kon nie {{displayName}} nooi nie",errorInviteTitle:"",pending:"{{displayName}} is genooi"},videoStatus:{audioOnly:"",audioOnlyExpanded:"U is in Net klank-modus. Di\xe9 modus spaar bandwydte maar u sal nie video\u2019s van ander sien nie.",callQuality:"",hd:"HD",highDefinition:"Ho\xebdefinisie",labelTooiltipNoVideo:"Geen video",labelTooltipAudioOnly:"Net klank-modus geaktiveer",ld:"LD",lowDefinition:"Laedefinisie",onlyAudioAvailable:"Net klank is beskikbaar",onlyAudioSupported:"Op di\xe9 blaaier ondersteun ons slegs klank.",p2pEnabled:"",p2pVideoQualityDescription:"",recHighDefinitionOnly:"",sd:"SD",standardDefinition:"Standaarddefinisie"},videothumbnail:{domute:"Demp",flip:"Swaai om",kick:"Skop uit",moderator:"Moderator",mute:"",muted:"Gedemp",remoteControl:"",show:"",videomute:""},welcomepage:{accessibilityLabel:{join:"Raak om aan te sluit",roomname:"Gee kamernaam"},appDescription:"Hou gerus \u2019n videogesprek met die hele span. Om die waarheid te s\xea, nooi sommer almal. {{app}} is \u2019n 100% oopbronoplossing vir ge\xebnkripteerde videokonferensies wat mens heeldag, elke dag gratis kan geniet \u2014 geen rekening nodig nie.",audioVideoSwitch:{audio:"Stem",video:"Video"},calendar:"Kalender",connectCalendarButton:"Koppel u kalender",connectCalendarText:"",enterRoomTitle:"Begin \u2019n nuwe vergadering",go:"GAAN",join:"SLUIT AAN",info:"",privacy:"Privaatheid",recentList:"Onlangs",recentListDelete:"Skrap",recentListEmpty:"Die lys van onlangse gesprekke is leeg. Gesels met u span en al u onlangse gesprekke sal hier wys.",reducedUIText:"",roomname:"Gee kamernaam",roomnameHint:"Gee die naam of URL van die kamer waar u wil aansluit. Dink gerus enige naam uit. Laat weet net die mense wat u ontmoet wat dit is sodat hulle die selfde naam gee.",sendFeedback:"Stuur terugvoer",terms:"Voorwaardes",title:"Veilige en volledig gratis videokonferensies propvol funksionaliteit"}}},645,[]); -__d(function(e,r,f,n,o,s,t){o.exports={en:"\u0410\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438",af:"\u0410\u0444\u0440\u0438\u043a\u0430\u043d\u0441",bg:"\u0411\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438",ca:"\u041a\u0430\u0442\u0430\u043b\u043e\u043d\u0441\u043a\u0438",cs:"\u0427\u0435\u0448\u043a\u0438",de:"\u041d\u0435\u043c\u0441\u043a\u0438",el:"\u0413\u0440\u044a\u0446\u043a\u0438",enGB:"\u0410\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438 (\u0412\u0435\u043b\u0438\u043a\u043e\u0431\u0440\u0438\u0442\u0430\u043d\u0438\u044f)",eo:"\u0415\u0441\u043f\u0435\u0440\u0430\u043d\u0442\u043e",es:"\u0418\u0441\u043f\u0430\u043d\u0441\u043a\u0438",esUS:"\u0418\u0441\u043f\u0430\u043d\u0441\u043a\u0438 (\u041b\u0430\u0442\u0438\u043d\u0441\u043a\u0430 \u0410\u043c\u0435\u0440\u0438\u043a\u0430)",fi:"\u0424\u0438\u043d\u0441\u043a\u0438",fr:"\u0424\u0440\u0435\u043d\u0441\u043a\u0438",frCA:"\u0424\u0440\u0435\u043d\u0441\u043a\u0438 (\u041a\u0430\u043d\u0430\u0434\u0430)",hr:"\u0425\u044a\u0440\u0432\u0430\u0442\u0441\u043a\u0438",hy:"\u0410\u0440\u043c\u0435\u043d\u0441\u043a\u0438",it:"\u0418\u0442\u0430\u043b\u0438\u0430\u043d\u0441\u043a\u0438",ja:"\u042f\u043f\u043e\u043d\u0441\u043a\u0438",ko:"\u041a\u043e\u0440\u0435\u0439\u0441\u043a\u0438",nl:"\u041d\u0438\u0434\u0435\u0440\u043b\u0430\u043d\u0434\u0441\u043a\u0438",oc:"\u041e\u043a\u0441\u0438\u0442\u0430\u043d\u0441\u043a\u0438",pl:"\u041f\u043e\u043b\u0441\u043a\u0438",ptBR:"\u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u0441\u043a\u0438 (\u0411\u0440\u0430\u0437\u0438\u043b\u0438\u044f)",ru:"\u0420\u0443\u0441\u043a\u0438",sv:"\u0428\u0432\u0435\u0434\u0441\u043a\u0438",tr:"\u0422\u0443\u0440\u0441\u043a\u0438",vi:"\u0412\u0438\u0435\u0442\u043d\u0430\u043c\u0441\u043a\u0438",zhCN:"\u041a\u0438\u0442\u0430\u0439\u0441\u043a\u0438 (\u041a\u0438\u0442\u0430\u0439)",zhTW:"\u0422\u0430\u0439\u0432\u0430\u043d\u0441\u043a\u0438"}},646,[]); -__d(function(e,o,i,r,t,a,n){t.exports={addPeople:{add:"\u041f\u043e\u043a\u0430\u043d\u0438",countryNotSupported:"\u0416\u0435\u043b\u0430\u043d\u0430\u0442\u0430 \u0434\u0435\u0441\u0442\u0438\u043d\u0430\u0446\u0438\u044f \u043d\u0435 \u0441\u0435 \u043f\u043e\u0434\u0434\u044a\u0440\u0436\u0430.",countryReminder:"\u041c\u0435\u0436\u0434\u0443\u043d\u0430\u0440\u043e\u0434\u043d\u043e \u043e\u0431\u0430\u0436\u0434\u0430\u043d\u0435? \u0417\u0430\u043f\u043e\u0447\u043d\u0435\u0442\u0435 \u043d\u043e\u043c\u0435\u0440\u0430 \u0441 \u043c\u0435\u0436\u0434\u0443\u043d\u0430\u0440\u043e\u0434\u043d\u0438\u044f\u0442 \u043a\u043e\u0434!",disabled:"\u041d\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0434\u0430 \u043a\u0430\u043d\u0438\u0442\u0435 \u0445\u043e\u0440\u0430.",failedToAdd:"\u041d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u0446\u0438",footerText:"\u0418\u0437\u0445\u043e\u0434\u044f\u0449\u0438\u0442\u0435 \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440\u0438 \u043d\u0435 \u0441\u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438.",loading:"\u0422\u044a\u0440\u0441\u0435\u043d\u0435 \u043d\u0430 \u0445\u043e\u0440\u0430 \u0438 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u043d\u0438 \u043d\u043e\u043c\u0435\u0440\u0430.",loadingNumber:"\u0412\u0430\u043b\u0438\u0434\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043d\u043e\u043c\u0435\u0440\u0430",loadingPeople:"\u0422\u044a\u0440\u0441\u0435\u043d\u0435 \u043d\u0430 \u0445\u043e\u0440\u0430",noResults:"\u041d\u044f\u043c\u0430 \u0440\u0435\u0437\u0443\u043b\u0442\u0430\u0442\u0438",noValidNumbers:"\u041c\u043e\u043b\u044f \u0432\u044a\u0432\u0435\u0434\u0435\u0442\u0435 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0435\u043d \u043d\u043e\u043c\u0435\u0440",searchNumbers:"\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u043d\u043e\u043c\u0435\u0440\u0430",searchPeople:"\u0422\u044a\u0440\u0441\u0435\u043d\u0435 \u043d\u0430 \u0445\u043e\u0440\u0430",searchPeopleAndNumbers:"\u0422\u044a\u0440\u0441\u0435\u043d\u0435 \u043d\u0430 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u0446\u0438 \u0438\u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u0441 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0438 \u043d\u043e\u043c\u0435\u0440\u0430",telephone:"\u0422\u0435\u043b\u0435\u0444\u043e\u043d: {{number}}",title:"\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u0446\u0438 \u0432 \u0441\u0440\u0435\u0449\u0430\u0442\u0430"},audioDevices:{bluetooth:"Bluetooth",headphones:"\u0421\u043b\u0443\u0448\u0430\u043b\u043a\u0438",phone:"\u0422\u0435\u043b\u0435\u0444\u043e\u043d",speaker:"\u0413\u043e\u0432\u043e\u0440\u0435\u0449",none:"\u041d\u044f\u043c\u0430 \u043d\u0430\u043b\u0438\u0447\u043d\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0437\u0430 \u0437\u0432\u0443\u043a"},audioOnly:{audioOnly:"\u041d\u0438\u0441\u044a\u043a \u0434\u0435\u0431\u0438\u0442"},calendarSync:{addMeetingURL:"\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u0432\u0440\u044a\u0437\u043a\u0430 \u0437\u0430 \u0441\u0440\u0435\u0449\u0430",confirmAddLink:"\u0418\u0441\u043a\u0430\u0442\u0435 \u043b\u0438 \u0434\u0430 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u0435 \u0432\u0440\u044a\u0437\u043a\u0430 \u043a\u044a\u043c \u0442\u043e\u0432\u0430 \u0441\u044a\u0431\u0438\u0442\u0438\u0435?",error:{appConfiguration:"\u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f\u0442\u0430 \u0441 \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u0430 \u043d\u0435 \u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u0430.",generic:"\u0413\u0440\u0435\u0448\u043a\u0430, \u043c\u043e\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0442\u0430 \u0437\u0430 \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u0430 \u0438\u043b\u0438 \u0433\u043e \u043e\u0431\u043d\u043e\u0432\u0435\u0442\u0435.",notSignedIn:"\u0413\u0440\u0435\u0448\u043a\u0430 \u043f\u0440\u0438 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0437\u0430 \u0438\u0437\u0442\u0435\u0433\u043b\u044f\u043d\u0435 \u043d\u0430 \u0441\u044a\u0431\u0438\u0442\u0438\u044f. \u041c\u043e\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438\u0442\u0435 \u043d\u0430 \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u0430 \u0438 \u043e\u043f\u0438\u0442\u0430\u0439\u0442\u0435 \u043e\u0442\u043d\u043e\u0432\u043e."},join:"\u0412\u043b\u0438\u0437\u0430\u043d\u0435",joinTooltip:"\u0412\u043b\u0438\u0437\u0430\u043d\u0435 \u0432 \u0441\u0440\u0435\u0449\u0430\u0442\u0430",nextMeeting:"\u0441\u043b\u0435\u0434\u0432\u0430\u0449\u0430 \u0441\u0440\u0435\u0449\u0430",noEvents:"\u041d\u044f\u043c\u0430 \u043d\u0430\u0441\u0440\u043e\u0447\u0435\u043d\u0438 \u0431\u044a\u0434\u0435\u0449\u0438 \u0441\u044a\u0431\u0438\u0442\u0438\u044f.",ongoingMeeting:"\u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0430 \u0441\u0440\u0435\u0449\u0430",permissionButton:"\u041e\u0442\u0432\u0430\u0440\u044f\u043d\u0435 \u043d\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438",permissionMessage:"\u0417\u0430 \u043f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0441\u0440\u0435\u0449\u0438\u0442\u0435 \u0432\u0438 \u0435 \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0435\u043d\u0438\u0435 \u0437\u0430 \u043f\u043e\u043b\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u0430.",refresh:"\u041e\u0431\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u0430",today:"\u0414\u043d\u0435\u0441"},chat:{error:"\u0413\u0440\u0435\u0448\u043a\u0430: \u0432\u0430\u0448\u0435\u0442\u043e \u0441\u044a\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \"{{originalText}}\" \u043d\u0435 \u0435 \u0431\u0435 \u0438\u0437\u043f\u0440\u0430\u0442\u0435\u043d\u043e. \u041f\u043e\u0440\u0430\u0434\u0438: {{error}}",messagebox:"\u0412\u044a\u0432\u0435\u0434\u0435\u0442\u0435 \u0441\u044a\u043e\u0431\u0449\u0435\u043d\u0438\u0435",nickname:{popover:"\u0418\u0437\u0431\u043e\u0440 \u043d\u0430 \u0438\u043c\u0435",title:"\u0412\u044a\u0432\u0435\u0434\u0435\u0442\u0435 \u0438\u043c\u0435 \u0437\u0430 \u0434\u0430 \u043e\u0431\u043c\u0435\u043d\u044f\u0442\u0435 \u0441\u044a\u043e\u0431\u0449\u0435\u043d\u0438\u044f"},title:"\u0422\u0435\u043a\u0441\u0442\u043e\u0432\u0438 \u0441\u044a\u043e\u0431\u0449\u0435\u043d\u0438\u044f"},connectingOverlay:{joiningRoom:"\u0421\u0432\u044a\u0440\u0437\u0432\u0430\u043d\u0435 \u0441 \u0432\u0430\u0448\u0430\u0442\u0430 \u0441\u0440\u0435\u0449\u0430..."},connection:{ATTACHED:"\u041f\u0440\u0438\u043a\u0440\u0435\u043f\u0435\u043d",AUTHENTICATING:"\u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f",AUTHFAIL:"\u041d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u0430 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f",CONNECTED:"\u0421\u0432\u044a\u0440\u0437\u0430\u043d",CONNECTING:"\u0421\u0432\u044a\u0440\u0437\u0432\u0430\u043d\u0435",CONNFAIL:"\u0412\u0440\u044a\u0437\u043a\u0430\u0442\u0430 \u0435 \u043d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u0430",DISCONNECTED:"\u0418\u0437\u043a\u043b\u044e\u0447\u0435\u043d",DISCONNECTING:"\u041f\u0440\u0435\u043a\u044a\u0441\u0432\u0430\u043d\u0435 \u043d\u0430 \u0432\u0440\u044a\u0437\u043a\u0430\u0442\u0430",ERROR:"\u0413\u0440\u0435\u0448\u043a\u0430",RECONNECTING:"\u041f\u043e\u044f\u0432\u0438 \u0441\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 \u043c\u0440\u0435\u0436\u0430\u0442\u0430. \u0412\u0440\u044a\u0437\u0432\u0430\u043c\u0435 \u0441\u0435 \u043d\u0430\u043d\u043e\u0432\u043e..."},connectionindicator:{address:"\u0410\u0434\u0440\u0435\u0441:",bandwidth:"\u041f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u043c\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442:",bitrate:"\u0421\u043a\u043e\u0440\u043e\u0441\u0442:",bridgeCount:"\u0411\u0440\u043e\u0439 \u0441\u044a\u0440\u0432\u044a\u0440\u0438:",connectedTo:"\u0421\u0432\u044a\u0440\u0437\u0430\u043d \u043a\u044a\u043c:",framerate:"\u041a\u0430\u0434\u0440\u0438 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0430:",less:"\u0421\u043a\u0440\u0438\u0432\u0430\u043d\u0435",localaddress:"\u041b\u043e\u043a\u0430\u043b\u0435\u043d \u0430\u0434\u0440\u0435\u0441:",localaddress_plural:"\u041b\u043e\u043a\u0430\u043b\u043d\u0438 \u0430\u0434\u0440\u0435\u0441\u0438:",localport:"\u041b\u043e\u043a\u0430\u043b\u0435\u043d \u043f\u043e\u0440\u0442:",localport_plural:"\u041b\u043e\u043a\u0430\u043b\u043d\u0438 \u043f\u043e\u0440\u0442\u043e\u0432\u0435:",more:"\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435",packetloss:"\u0417\u0430\u0433\u0443\u0431\u0430 \u043d\u0430 \u043f\u0430\u043a\u0435\u0442\u0438:",quality:{good:"\u0414\u043e\u0431\u0440\u0430",inactive:"\u041d\u044f\u043c\u0430",lost:"\u0420\u0430\u0437\u043a\u0430\u0447\u0435\u043d\u0430",nonoptimal:"\u041d\u0435\u043e\u043f\u0442\u0438\u043c\u0430\u043b\u043d\u0430",poor:"\u041b\u043e\u0448\u0430"},remoteaddress:"\u041e\u0442\u0434\u0430\u043b\u0435\u0447\u0435\u043d \u0430\u0434\u0440\u0435\u0441:",remoteaddress_plural:"\u041e\u0442\u0434\u0430\u043b\u0435\u0447\u0435\u043d\u0438 \u0430\u0434\u0440\u0435\u0441\u0438:",remoteport:"\u041e\u0442\u0434\u0430\u043b\u0435\u0447\u0435\u043d \u043f\u043e\u0440\u0442:",remoteport_plural:"\u041e\u0442\u0434\u0430\u043b\u0435\u0447\u0435\u043d\u0438 \u043f\u043e\u0440\u0442\u043e\u0432\u0435:",resolution:"\u0420\u0435\u0437\u043e\u043b\u044e\u0446\u0438\u044f:",status:"\u0412\u0440\u044a\u0437\u043a\u0430:",transport:"\u0422\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442:",transport_plural:"\u0422\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u0438:"},dateUtils:{earlier:"\u041f\u043e-\u0440\u0430\u043d\u043e",today:"\u0414\u043d\u0435\u0441",yesterday:"\u0412\u0447\u0435\u0440\u0430"},deepLinking:{appNotInstalled:"\u0418\u043c\u0430\u0442\u0435 \u043d\u0443\u0436\u0434\u0430 \u043e\u0442 \u043c\u043e\u0431\u0438\u043b\u043d\u043e\u0442\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 {{app}} \u0437\u0430 \u0432\u043b\u0438\u0437\u0430\u043d\u0435 \u0432 \u0442\u0430\u0437\u0438 \u0441\u0440\u0435\u0449\u0430 \u043e\u0442 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430.",description:"\u041d\u0438\u0449\u043e \u043d\u0435 \u0441\u0435 \u0441\u043b\u0443\u0447\u0432\u0430? \u041e\u043f\u0438\u0442\u0430\u0445\u043c\u0435 \u0441\u0435 \u0434\u0430 \u0437\u0430\u0440\u0435\u0434\u0438\u043c \u0441\u0440\u0435\u0449\u0430\u0442\u0430 \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u0442\u043e {{app}}. \u041f\u0440\u043e\u0431\u0432\u0430\u0439\u0442\u0435 \u043e\u0442\u043d\u043e\u0432\u043e \u0438\u043b\u0438 \u0432\u043b\u0435\u0437\u0442\u0435 \u0447\u0440\u0435\u0437 \u0443\u0435\u0431 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u0442\u043e {{app}}.",descriptionWithoutWeb:"\u041d\u0438\u0449\u043e \u043d\u0435 \u0441\u0435 \u0441\u043b\u0443\u0447\u0432\u0430? \u041e\u043f\u0438\u0442\u0430\u0445\u043c\u0435 \u0441\u0435 \u0434\u0430 \u0437\u0430\u0440\u0435\u0434\u0438\u043c \u0441\u0440\u0435\u0449\u0430\u0442\u0430 \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u0442\u043e {{app}}.",downloadApp:"\u0421\u0432\u0430\u043b\u0435\u0442\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u0442\u043e",launchWebButton:"\u0417\u0430\u0440\u0435\u0434\u0435\u0442\u0435 \u0443\u0435\u0431 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u0442\u0430",openApp:"\u041f\u0440\u043e\u0434\u044a\u043b\u0436\u0435\u0442\u0435 \u043a\u044a\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u0442\u043e",title:"\u0417\u0430\u0440\u0435\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u0441\u0440\u0435\u0449\u0430\u0442\u0430 \u0432 {{app}}...",tryAgainButton:"\u041f\u0440\u043e\u0431\u0432\u0430\u0439\u0442\u0435 \u043e\u0442\u043d\u043e\u0432\u043e"},defaultLink:"\u043d\u0430\u043f\u0440. {{url}}",defaultNickname:"\u043d\u0430\u043f\u0440. \u0418\u0432\u0430\u043d \u0418\u0432\u0430\u043d\u043e\u0432",deviceError:{cameraError:"\u041a\u0430\u043c\u0435\u0440\u0430\u0442\u0430 \u0435 \u043d\u0435\u0434\u043e\u0441\u0442\u044a\u043f\u043d\u0430",cameraPermission:"\u0413\u0440\u0435\u0448\u043a\u0430 \u043f\u0440\u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0437\u0430 \u0434\u043e\u0441\u0442\u044a\u043f \u0434\u043e \u043a\u0430\u043c\u0435\u0440\u0430\u0442\u0430",microphoneError:"\u041c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u044a\u0442 \u0435 \u043d\u0435\u0434\u043e\u0441\u0442\u044a\u043f\u0435\u043d",microphonePermission:"\u0413\u0440\u0435\u0448\u043a\u0430 \u043f\u0440\u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0437\u0430 \u0434\u043e\u0441\u0442\u044a\u043f \u0434\u043e \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u0430"},deviceSelection:{noPermission:"\u041d\u0435 \u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043e \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435",previewUnavailable:"\u041d\u044f\u043c\u0430 \u0432\u044a\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442 \u0437\u0430 \u043f\u0440\u0435\u0433\u043b\u0435\u0434",selectADevice:"\u0418\u0437\u0431\u0435\u0440\u0435\u0442\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e",testAudio:"\u041f\u0443\u0441\u043d\u0438 \u043f\u0440\u043e\u0431\u0435\u043d \u0437\u0432\u0443\u043a"},dialog:{accessibilityLabel:{liveStreaming:"\u0418\u0437\u043b\u044a\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u0436\u0438\u0432\u043e"},allow:"\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0432\u0430\u043d\u0435",alreadySharedVideoMsg:"\u0414\u0440\u0443\u0433 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a \u0432\u0435\u0447\u0435 \u0435 \u0441\u043f\u043e\u0434\u0435\u043b\u0438\u043b \u0432\u0438\u0434\u0435\u043e. \u0422\u0430\u0437\u0438 \u0441\u0440\u0435\u0449\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0432\u0430 \u0441\u0430\u043c\u043e \u0435\u0434\u043d\u043e \u0441\u043f\u043e\u0434\u0435\u043b\u0435\u043d\u043e \u0432\u0438\u0434\u0435\u043e.",alreadySharedVideoTitle:"\u0420\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u043e \u0435 \u0441\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435\u0442\u043e \u0441\u0430\u043c\u043e \u043d\u0430 \u0435\u0434\u043d\u043e \u0432\u0438\u0434\u0435\u043e \u0432 \u0434\u0430\u0434\u0435\u043d \u043c\u043e\u043c\u0435\u043d\u0442",applicationWindow:"\u041f\u0440\u043e\u0437\u043e\u0440\u0435\u0446\u0430 \u043d\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u0430\u0442\u0430",Back:"\u041d\u0430\u0437\u0430\u0434",cameraConstraintFailedError:"\u041a\u0430\u043c\u0435\u0440\u0430\u0442\u0430 \u0412\u0438 \u043d\u0435 \u043f\u043e\u043a\u0440\u0438\u0432\u0430 \u043d\u044f\u043a\u043e\u0438 \u043e\u0442 \u0438\u0437\u0438\u0441\u043a\u0432\u0430\u043d\u0438\u044f\u0442\u0430.",cameraNotFoundError:"\u041d\u0435 \u0435 \u043e\u0442\u043a\u0440\u0438\u0442\u0430 \u043a\u0430\u043c\u0435\u0440\u0430.",cameraNotSendingData:"\u041a\u0430\u043c\u0435\u0440\u0430\u0442\u0430 \u0435 \u043d\u0435\u0434\u043e\u0441\u0442\u044a\u043f\u043d\u0430. \u041c\u043e\u043b\u044f, \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u0442\u0435 \u0434\u0430\u043b\u0438 \u0434\u0440\u0443\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0435 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430 \u0442\u043e\u0432\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e, \u0438\u0437\u0431\u0435\u0440\u0435\u0442\u0435 \u0434\u0440\u0443\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043e\u0442 \u043c\u0435\u043d\u044e\u0442\u043e \u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438\u0442\u0435, \u0438\u043b\u0438 \u043f\u0440\u0435\u0437\u0430\u0440\u0435\u0434\u0435\u0442\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u0442\u043e.",cameraNotSendingDataTitle:"\u041a\u0430\u043c\u0435\u0440\u0430\u0442\u0430 \u0435 \u043d\u0435\u0434\u043e\u0441\u0442\u044a\u043f\u043d\u0430",cameraPermissionDeniedError:"\u041d\u0435 \u0441\u0442\u0435 \u0434\u0430\u043b\u0438 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0437\u0430 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u043a\u0430\u043c\u0435\u0440\u0430\u0442\u0430. \u0429\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0434\u0430 \u0441\u0435 \u043f\u0440\u0438\u0441\u044a\u0435\u0434\u0438\u043d\u0438\u0442\u0435 \u0432 \u0431\u0435\u0441\u0435\u0434\u0430\u0442\u0430, \u043d\u043e \u0434\u0440\u0443\u0433\u0438\u0442\u0435 \u043d\u044f\u043c\u0430 \u0434\u0430 \u0412\u0438 \u0432\u0438\u0436\u0434\u0430\u0442. \u0418\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u0439\u0442\u0435 \u0431\u0443\u0442\u043e\u043d\u0430 \u0441 \u043a\u0430\u043c\u0435\u0440\u0430\u0442\u0430 \u0432 \u0430\u0434\u0440\u0435\u0441\u043d\u0430\u0442\u0430 \u043b\u0435\u043d\u0442\u0430, \u0437\u0430 \u0434\u0430 \u043e\u043f\u0440\u0430\u0432\u0438\u0442\u0435 \u0442\u043e\u0432\u0430.",cameraUnknownError:"\u041d\u0435\u0432\u044a\u0437\u043c\u043e\u0436\u0435\u043d \u0434\u043e\u0441\u0442\u044a\u043f \u0434\u043e \u043a\u0430\u043c\u0435\u0440\u0430\u0442\u0430 \u043f\u043e \u043d\u0435\u044f\u0441\u043d\u0430 \u043f\u0440\u0438\u0447\u0438\u043d\u0430.",cameraUnsupportedResolutionError:"\u041a\u0430\u043c\u0435\u0440\u0430\u0442\u0430 \u0412\u0438 \u043d\u0435 \u043f\u043e\u0434\u0434\u044a\u0440\u0436\u0430 \u043d\u0443\u0436\u043d\u0430\u0442\u0430 \u0440\u0435\u0437\u043e\u043b\u044e\u0446\u0438\u044f.",Cancel:"\u041e\u0442\u043a\u0430\u0437",close:"\u0417\u0430\u0442\u0432\u0430\u0440\u044f\u043d\u0435",conferenceDisconnectMsg:"\u041c\u043e\u0436\u0435 \u0431\u0438 \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u0435 \u043c\u0440\u0435\u0436\u043e\u0432\u0430\u0442\u0430 \u0441\u0438 \u0432\u0440\u044a\u0437\u043a\u0430. \u041f\u043e\u0432\u0442\u043e\u0440\u043d\u043e \u0441\u0432\u044a\u0440\u0437\u0432\u0430\u043d\u0435 \u0441\u043b\u0435\u0434 {{seconds}} \u0441\u0435\u043a\u2026",conferenceDisconnectTitle:"\u0412\u0440\u044a\u0437\u043a\u0430\u0442\u0430 \u0441\u0435 \u0440\u0430\u0437\u043f\u0430\u0434\u043d\u0430.",conferenceReloadMsg:"\u041e\u043f\u0438\u0442\u0432\u0430\u043c\u0435 \u0441\u0435 \u0434\u0430 \u043e\u043f\u0440\u0430\u0432\u0438\u043c \u043d\u0435\u0449\u0430\u0442\u0430. \u041f\u043e\u0432\u0442\u043e\u0440\u043d\u043e \u0441\u0432\u044a\u0440\u0437\u0432\u0430\u043d\u0435 \u0441\u043b\u0435\u0434 {{seconds}} \u0441\u0435\u043a\u2026",conferenceReloadTitle:"\u0417\u0430 \u0441\u044a\u0436\u0430\u043b\u0435\u043d\u0438\u0435, \u043d\u0435\u0449\u043e \u0441\u0435 \u043e\u0431\u044a\u0440\u043a\u0430.",confirm:"\u041f\u043e\u0442\u0432\u044a\u0440\u0436\u0434\u0435\u043d\u0438\u0435",confirmNo:"\u041d\u0435",confirmYes:"\u0414\u0430",connectError:"\u041e\u043f\u0430! \u041d\u0435\u0449\u043e \u0441\u0435 \u043e\u0431\u044a\u0440\u043a\u0430 \u0438 \u043d\u0435 \u0443\u0441\u043f\u044f\u0445\u043c\u0435 \u0434\u0430 \u0441\u0435 \u0441\u0432\u044a\u0440\u0436\u0435\u043c \u0441 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f\u0442\u0430.",connectErrorWithMsg:"\u041e\u043f\u0430! \u041d\u0435\u0449\u043e \u0441\u0435 \u043e\u0431\u044a\u0440\u043a\u0430 \u0438 \u043d\u0435 \u0443\u0441\u043f\u044f\u0445\u043c\u0435 \u0434\u0430 \u0441\u0435 \u0441\u0432\u044a\u0440\u0436\u0435\u043c \u0441 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f\u0442\u0430: {{msg}}",connecting:"\u0421\u0432\u044a\u0440\u0437\u0432\u0430\u043d\u0435",contactSupport:"\u0412\u0440\u044a\u0437\u043a\u0430 \u0441 \u043e\u0442\u0434\u0435\u043b\u0430 \u043f\u043e \u043f\u043e\u0434\u0434\u0440\u044a\u0436\u043a\u0430",copy:"\u041a\u043e\u043f\u0438\u0440\u0430\u043d\u0435",dismiss:"\u041e\u0442\u0445\u0432\u044a\u0440\u043b\u044f\u043d\u0435",displayNameRequired:"\u0417\u0434\u0440\u0430\u0432\u0435\u0439! \u041a\u0430\u043a \u0441\u0435 \u043a\u0430\u0437\u0432\u0430\u0448?",done:"\u0413\u043e\u0442\u043e\u0432\u043e",enterDisplayName:"\u041c\u043e\u043b\u044f \u0432\u044a\u0432\u0435\u0434\u0435\u0442\u0435 \u0432\u0430\u0448\u0435\u0442\u043e \u0438\u043c\u0435",error:"\u0413\u0440\u0435\u0448\u043a\u0430",externalInstallationMsg:"\u0422\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u0442\u0435 \u0440\u0430\u0437\u0448\u0438\u0440\u0435\u043d\u0438\u0435\u0442\u043e \u0437\u0430 \u0441\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435 \u043d\u0430 \u0435\u043a\u0440\u0430\u043d\u0430.",externalInstallationTitle:"\u041d\u0443\u0436\u043d\u043e \u0435 \u0440\u0430\u0437\u0448\u0438\u0440\u0435\u043d\u0438\u0435",goToStore:"\u041a\u044a\u043c \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0430 \u0432 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442",gracefulShutdown:"\u0423\u0441\u043b\u0443\u0433\u0430\u0442\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u043d\u0435 \u0435 \u0434\u043e\u0441\u0442\u044a\u043f\u043d\u0430 \u043f\u043e\u0440\u0430\u0434\u0438 \u043f\u0440\u043e\u0444\u0438\u043b\u0430\u043a\u0442\u0438\u043a\u0430. \u041c\u043e\u043b\u044f \u043e\u043f\u0438\u0442\u0430\u0439\u0442\u0435 \u043f\u043e-\u043a\u044a\u0441\u043d\u043e.",IamHost:"\u0410\u0437 \u0441\u044a\u043c \u0434\u043e\u043c\u0430\u043a\u0438\u043d\u0430",incorrectRoomLockPassword:"\u0413\u0440\u0435\u0448\u043d\u0430 \u043f\u0430\u0440\u043e\u043b\u0430",incorrectPassword:"\u041d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u043d\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0441\u043a\u043e \u0438\u043c\u0435 \u0438\u043b\u0438 \u043f\u0430\u0440\u043e\u043b\u0430",inlineInstallationMsg:"\u0422\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u0442\u0435 \u0440\u0430\u0437\u0448\u0438\u0440\u0435\u043d\u0438\u0435\u0442\u043e \u0437\u0430 \u0441\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435 \u043d\u0430 \u0435\u043a\u0440\u0430\u043d\u0430.",inlineInstallExtension:"\u0418\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0435 \u0441\u0435\u0433\u0430",internalError:"\u041e\u043f\u0430! \u041d\u0435\u0449\u043e \u0441\u0435 \u043e\u0431\u044a\u0440\u043a\u0430. \u0412\u044a\u0437\u043d\u0438\u043a\u043d\u0430 \u0441\u043b\u0435\u0434\u043d\u0430\u0442\u0430 \u0433\u0440\u0435\u0448\u043a\u0430: {{error}}",internalErrorTitle:"\u0412\u044a\u0442\u0440\u0435\u0448\u043d\u0430 \u0433\u0440\u0435\u0448\u043a\u0430",kickMessage:"\u041c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0441\u0432\u044a\u0440\u0436\u0435\u0442\u0435 \u0441 {{participantDisplayName}} \u0437\u0430 \u043f\u043e\u0432\u0435\u0447\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438.",kickParticipantButton:"\u0418\u0437\u0433\u043e\u043d\u0438",kickParticipantDialog:"\u0421\u0438\u0433\u0443\u0440\u043d\u0438 \u043b\u0438 \u0441\u0442\u0435 \u0447\u0435 \u0438\u0441\u043a\u0430\u0442\u0435 \u0434\u0430 \u0438\u0437\u0433\u043e\u043d\u0438\u0442\u0435 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0430?",kickParticipantTitle:"\u0418\u0437\u0433\u043e\u043d\u0432\u0430\u043d\u0435 \u043d\u0430 \u0442\u043e\u0437\u0438 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a?",kickTitle:"\u0410\u0443\u0447! {{participantDisplayName}} \u0432\u0438 \u0438\u0437\u0433\u043e\u043d\u0438 \u043e\u0442 \u0442\u0430\u0437\u0438 \u0441\u0440\u0435\u0449\u0430",liveStreaming:"\u0418\u0437\u043b\u044a\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u0436\u0438\u0432\u043e",liveStreamingDisabledForGuestTooltip:"\u0413\u043e\u0441\u0442\u0438\u0442\u0435 \u043d\u0435 \u043c\u043e\u0433\u0430\u0442 \u0434\u0430 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u0442 \u0438\u0437\u043b\u044a\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u0436\u0438\u0432\u043e.",liveStreamingDisabledTooltip:"\u0418\u0437\u043b\u044a\u0447\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0436\u0438\u0432\u043e \u0435 \u0434\u0435\u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0430\u043d\u043e.",lockMessage:"\u041d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0437\u0430\u043a\u043b\u044e\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f\u0442\u0430.",lockRoom:"\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 $t(lockRoomPasswordUppercase) \u0437\u0430 \u0441\u0440\u0435\u0449\u0430\u0442\u0430",lockTitle:"\u041d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0437\u0430\u043a\u043b\u044e\u0447\u0432\u0430\u043d\u0435",logoutQuestion:"\u0421\u0438\u0433\u0443\u0440\u043d\u0438 \u043b\u0438 \u0441\u0442\u0435, \u0447\u0435 \u0438\u0441\u043a\u0430\u0442\u0435 \u0434\u0430 \u0438\u0437\u043b\u0435\u0437\u0435\u0442\u0435 \u0438 \u0434\u0430 \u043f\u0440\u0435\u043a\u044a\u0441\u043d\u0435\u0442\u0435 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f\u0442\u0430?",logoutTitle:"\u0418\u0437\u0445\u043e\u0434",maxUsersLimitReached:"\u041b\u0438\u043c\u0438\u0442\u044a\u0442 \u0437\u0430 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u0435\u043d \u0431\u0440\u043e\u0439 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u0446\u0438 \u0431\u0435 \u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0430\u0442. \u041a\u0430\u043f\u0430\u0446\u0438\u0442\u0435\u0442\u0430 \u043d\u0430 \u0441\u0440\u0435\u0449\u0430\u0442\u0430 \u0435 \u0437\u0430\u043f\u044a\u043b\u043d\u0435\u043d. \u041c\u043e\u043b\u044f \u0441\u0432\u044a\u0440\u0436\u0435\u0442\u0435 \u0441\u0435 \u0441 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0442\u043e\u0440\u0430 \u0438\u043b\u0438 \u043e\u043f\u0438\u0442\u0430\u0439\u0442\u0435 \u043f\u043e-\u043a\u044a\u0441\u043d\u043e!",maxUsersLimitReachedTitle:"\u0414\u043e\u0441\u0442\u0438\u0433\u043d\u0430\u0442 \u0435 \u043b\u0438\u043c\u0438\u0442\u0430 \u0437\u0430 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u0435\u043d \u0431\u0440\u043e\u0439 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u0446\u0438",micConstraintFailedError:"\u041c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u044a\u0442 \u0412\u0438 \u043d\u0435 \u043f\u043e\u043a\u0440\u0438\u0432\u0430 \u043d\u044f\u043a\u043e\u0438 \u043e\u0442 \u0438\u0437\u0438\u0441\u043a\u0432\u0430\u043d\u0438\u044f\u0442\u0430.",micNotFoundError:"\u041d\u0435 \u0435 \u043e\u0442\u043a\u0440\u0438\u0442 \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d.",micNotSendingData:"\u041f\u0443\u0441\u043d\u0435\u0442\u0435 \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u0430 \u0441\u0438 \u043e\u0442 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u0438\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043d\u0430 \u043a\u043e\u043c\u043f\u044e\u0442\u044a\u0440\u0430 \u0432\u0438.",micNotSendingDataTitle:"\u041c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u0430 \u0432\u0438 \u0435 \u0441\u043f\u0440\u044f\u043d \u043e\u0442 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u0438\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438",micPermissionDeniedError:"\u041d\u0435 \u0441\u0442\u0435 \u0434\u0430\u043b\u0438 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0437\u0430 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u0430. \u0429\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0434\u0430 \u0441\u0435 \u043f\u0440\u0438\u0441\u044a\u0435\u0434\u0438\u043d\u0438\u0442\u0435 \u0432 \u0431\u0435\u0441\u0435\u0434\u0430\u0442\u0430, \u043d\u043e \u0434\u0440\u0443\u0433\u0438\u0442\u0435 \u043d\u044f\u043c\u0430 \u0434\u0430 \u0412\u0438 \u0447\u0443\u0432\u0430\u0442. \u0418\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u0439\u0442\u0435 \u0431\u0443\u0442\u043e\u043d\u0430 \u0441 \u043a\u0430\u043c\u0435\u0440\u0430\u0442\u0430 \u0432 \u0430\u0434\u0440\u0435\u0441\u043d\u0430\u0442\u0430 \u043b\u0435\u043d\u0442\u0430, \u0437\u0430 \u0434\u0430 \u043e\u043f\u0440\u0430\u0432\u0438\u0442\u0435 \u0442\u043e\u0432\u0430.",micUnknownError:"\u041d\u0435\u0432\u044a\u0437\u043c\u043e\u0436\u0435\u043d \u0434\u043e\u0441\u0442\u044a\u043f \u0434\u043e \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u0430 \u043f\u043e \u043d\u0435\u044f\u0441\u043d\u0430 \u043f\u0440\u0438\u0447\u0438\u043d\u0430.",muteParticipantBody:"\u0412\u0438\u0435 \u043d\u044f\u043c\u0430 \u0434\u0430 \u043c\u043e\u0436\u0435\u0442\u0435 \u0434\u0430 \u0441\u043f\u0440\u0435\u0442\u0435 \u0437\u0430\u0433\u043b\u0443\u0448\u0430\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0430, \u043d\u043e \u0442\u043e\u0439 \u0449\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0433\u043e \u043d\u0430\u043f\u0440\u0430\u0432\u0438 \u043f\u043e \u0432\u0441\u044f\u043a\u043e \u0432\u0440\u0435\u043c\u0435.",muteParticipantButton:"\u0418\u0437\u043a\u043b\u044e\u0447\u0438 \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u0430",muteParticipantDialog:"\u0421\u0438\u0433\u0443\u0440\u043d\u0438 \u043b\u0438 \u0441\u0442\u0435 \u0447\u0435 \u0438\u0441\u043a\u0430\u0442\u0435 \u0434\u0430 \u0437\u0430\u0433\u043b\u0443\u0448\u0438\u0442\u0435 \u0442\u043e\u0437\u0438 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a? \u041d\u044f\u043c\u0430 \u0434\u0430 \u043c\u043e\u0436\u0435\u0442\u0435 \u0434\u0430 \u043f\u0443\u0441\u043d\u0435\u0442\u0435 \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0437\u0432\u0443\u043a\u0430 \u043c\u0443, \u043d\u043e \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0430 \u0449\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u043d\u0430\u043f\u0440\u0430\u0432\u0438 \u0442\u043e\u0432\u0430 \u0441\u0430\u043c.",muteParticipantTitle:"\u0421\u043f\u0438\u0440\u0430\u043d\u0435 \u0437\u0432\u0443\u043a\u0430 \u043d\u0430 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a?",Ok:"\u0413\u043e\u0442\u043e\u0432\u043e",passwordLabel:"\u041f\u0430\u0440\u043e\u043b\u0430",passwordNotSupported:"\u0417\u0430\u0434\u0430\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 $t(lockRoomPassword) \u0437\u0430 \u0441\u0440\u0435\u0449\u0430\u0442\u0430 \u043d\u0435 \u0441\u0435 \u043f\u043e\u0434\u0434\u044a\u0440\u0436\u0430.",passwordNotSupportedTitle:"$t(lockRoomPasswordUppercase) \u043d\u0435 \u0441\u0435 \u043f\u043e\u0434\u0434\u044a\u0440\u0436\u0430",passwordRequired:"\u0418\u0437\u0438\u0441\u043a\u0432\u0430 \u0441\u0435 $t(lockRoomPassword) ",popupError:"\u0411\u0440\u0430\u0443\u0437\u044a\u0440\u044a\u0442 \u0412\u0438 \u0431\u043b\u043e\u043a\u0438\u0440\u0430 \u0438\u0437\u0441\u043a\u0430\u0447\u0430\u0449\u0438\u0442\u0435 \u043f\u0440\u043e\u0437\u043e\u0440\u0446\u0438 \u043e\u0442 \u0442\u043e\u0437\u0438 \u0443\u0435\u0431 \u0441\u0430\u0439\u0442. \u041c\u043e\u043b\u044f, \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u0442\u0435 \u0438\u0437\u0441\u043a\u0430\u0447\u0430\u0449\u0438\u0442\u0435 \u043f\u0440\u043e\u0437\u043e\u0440\u0446\u0438 \u043e\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438\u0442\u0435 \u0437\u0430 \u0441\u0438\u0433\u0443\u0440\u043d\u043e\u0441\u0442 \u043d\u0430 \u0431\u0440\u0430\u0443\u0437\u044a\u0440\u0430 \u0441\u0438 \u0438 \u0441\u043b\u0435\u0434 \u0442\u043e\u0432\u0430 \u043e\u043f\u0438\u0442\u0430\u0439\u0442\u0435 \u043e\u0442\u043d\u043e\u0432\u043e.",popupErrorTitle:"\u0411\u043b\u043e\u043a\u0438\u0440\u0430\u043d \u0438\u0437\u0441\u043a\u0430\u0447\u0430\u0449 \u043f\u0440\u043e\u0437\u043e\u0440\u0435\u0446",recording:"\u0417\u0430\u043f\u0438\u0441",recordingDisabledForGuestTooltip:"\u0413\u043e\u0441\u0442\u0438\u0442\u0435 \u043d\u0435 \u043c\u043e\u0433\u0430\u0442 \u0434\u0430 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u0442 \u0437\u0430\u043f\u0438\u0441",recordingDisabledTooltip:"\u0421\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0437\u0430\u043f\u0438\u0441 \u0435 \u0441\u043f\u0440\u044f\u043d\u043e",rejoinNow:"\u041f\u043e\u0432\u0442\u043e\u0440\u043d\u043e \u043f\u0440\u0438\u0441\u044a\u0435\u0434\u0438\u043d\u044f\u0432\u0430\u043d\u0435 \u0441\u0435\u0433\u0430",remoteControlAllowedMessage:"{{user}} \u043f\u0440\u0438\u0435 \u0437\u0430\u044f\u0432\u043a\u0430\u0442\u0430 \u0412\u0438 \u0437\u0430 \u043e\u0442\u0434\u0430\u043b\u0435\u0447\u0435\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435!",remoteControlDeniedMessage:"{{user}} \u043e\u0442\u043a\u0430\u0437\u0430 \u0437\u0430\u044f\u0432\u043a\u0430\u0442\u0430 \u0412\u0438 \u0437\u0430 \u043e\u0442\u0434\u0430\u043b\u0435\u0447\u0435\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435!",remoteControlErrorMessage:"\u0412\u044a\u0437\u043d\u0438\u043a\u043d\u0430 \u0433\u0440\u0435\u0448\u043a\u0430 \u043f\u0440\u0438 \u043e\u043f\u0438\u0442\u0430 \u0437\u0430 \u0438\u0441\u043a\u0430\u043d\u0435 \u043d\u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0437\u0430 \u043e\u0442\u0434\u0430\u043b\u0435\u0447\u0435\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e\u0442 {{user}}!",remoteControlRequestMessage:"\u0429\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442\u0435 \u043b\u0438 \u043d\u0430 {{user}} \u0434\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0432\u0430 \u043e\u0442\u0434\u0430\u043b\u0435\u0447\u0435\u043d\u043e \u043a\u043e\u043c\u043f\u044e\u0442\u044a\u0440\u0430 \u0412\u0438?",remoteControlShareScreenWarning:"\u0410\u043a\u043e \u043d\u0430\u0442\u0438\u0441\u043d\u0435\u0442\u0435 \u201e\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0432\u0430\u043d\u0435\u201c, \u0449\u0435 \u0441\u043f\u043e\u0434\u0435\u043b\u0438\u0442\u0435 \u0435\u043a\u0440\u0430\u043d\u0430 \u0441\u0438!",remoteControlStopMessage:"\u0421\u0435\u0441\u0438\u044f\u0442\u0430 \u0437\u0430 \u043e\u0442\u0434\u0430\u043b\u0435\u0447\u0435\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u043a\u043b\u044e\u0447\u0438!",remoteControlTitle:"\u041e\u0442\u0434\u0430\u043b\u0435\u0447\u0435\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 \u043a\u043e\u043c\u043f\u044e\u0442\u044a\u0440\u0430",Remove:"\u041f\u0440\u0435\u043c\u0430\u0445\u0432\u0430\u043d\u0435",removePassword:"\u041f\u0440\u0435\u043c\u0430\u0445\u0432\u0430\u043d\u0435 \u043d\u0430 $t(lockRoomPassword)",removeSharedVideoMsg:"\u041d\u0430\u0438\u0441\u0442\u0438\u043d\u0430 \u043b\u0438 \u0438\u0441\u043a\u0430\u0442\u0435 \u0434\u0430 \u043f\u0440\u0435\u043c\u0430\u0445\u043d\u0435\u0442\u0435 \u0441\u043f\u043e\u0434\u0435\u043b\u0435\u043d\u043e\u0442\u043e \u0441\u0438 \u0432\u0438\u0434\u0435\u043e?",removeSharedVideoTitle:"\u041a\u0440\u0430\u0439 \u043d\u0430 \u0441\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435\u0442\u043e \u043d\u0430 \u0432\u0438\u0434\u0435\u043e",reservationError:"\u0413\u0440\u0435\u0448\u043a\u0430 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0442\u0430 \u0437\u0430 \u0440\u0435\u0437\u0435\u0440\u0432\u0430\u0446\u0438\u0438",reservationErrorMsg:"\u0413\u0440\u0435\u0448\u043a\u0430 \u043d\u043e\u043c\u0435\u0440: {{code}}, \u0441\u044a\u043e\u0431\u0449\u0435\u043d\u0438\u0435: {{msg}}",retry:"\u041f\u043e\u0432\u0442\u043e\u0440\u0435\u043d \u043e\u043f\u0438\u0442",screenSharingFailedToInstall:"\u041e\u043f\u0430! \u0420\u0430\u0437\u0448\u0438\u0440\u0435\u043d\u0438\u0435\u0442\u043e \u0437\u0430 \u0441\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435 \u043d\u0430 \u0435\u043a\u0440\u0430\u043d\u0430 \u043d\u0435 \u0443\u0441\u043f\u044f \u0434\u0430 \u0441\u0435 \u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430.",screenSharingFailedToInstallTitle:"\u0420\u0430\u0437\u0448\u0438\u0440\u0435\u043d\u0438\u0435\u0442\u043e \u0437\u0430 \u0441\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435 \u043d\u0430 \u0435\u043a\u0440\u0430\u043d\u0430 \u043d\u0435 \u0443\u0441\u043f\u044f \u0434\u0430 \u0441\u0435 \u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430",screenSharingFirefoxPermissionDeniedError:"\u041d\u0435\u0449\u043e \u0441\u0435 \u043e\u0431\u044a\u0440\u043a\u0430 \u0434\u043e\u043a\u0430\u0442\u043e \u0441\u0435 \u043e\u043f\u0438\u0442\u0432\u0430\u0445\u043c\u0435 \u0434\u0430 \u0441\u043f\u043e\u0434\u0435\u043b\u0438\u043c \u0435\u043a\u0440\u0430\u043d\u0430. \u041c\u043e\u043b\u044f \u0443\u0432\u0435\u0440\u0435\u0442\u0435 \u0441\u0435 \u0447\u0435 \u0441\u0442\u0435 \u0434\u0430\u043b\u0438 \u043f\u0440\u0430\u0432\u0430 \u0437\u0430 \u0442\u043e\u0432\u0430.",screenSharingFirefoxPermissionDeniedTitle:"\u0423\u043f\u0441! \u041d\u0435 \u0443\u0441\u043f\u044f\u0445\u043c\u0435 \u0434\u0430 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043c\u0435 \u0441\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435\u0442\u043e \u043d\u0430 \u0435\u043a\u0440\u0430\u043d\u0430!",screenSharingPermissionDeniedError:"\u041e\u043f\u0430! \u041d\u0435\u0449\u043e \u0441\u0435 \u043e\u0431\u044a\u0440\u043a\u0430 \u0441 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f\u0442\u0430 \u043d\u0430 \u0440\u0430\u0437\u0448\u0438\u0440\u0435\u043d\u0438\u0435\u0442\u043e \u0437\u0430 \u0441\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435 \u043d\u0430 \u0435\u043a\u0440\u0430\u043d\u0430. \u041c\u043e\u043b\u044f, \u043f\u0440\u0435\u0437\u0430\u0440\u0435\u0434\u0435\u0442\u0435 \u0438 \u043e\u043f\u0438\u0442\u0430\u0439\u0442\u0435 \u043e\u0442\u043d\u043e\u0432\u043e.",serviceUnavailable:"\u0423\u0441\u043b\u0443\u0433\u0430\u0442\u0430 \u043d\u0435 \u0435 \u043d\u0430\u043b\u0438\u0447\u043d\u0430",sessTerminated:"\u0420\u0430\u0437\u0433\u043e\u0432\u043e\u0440\u044a\u0442 \u043f\u0440\u0438\u043a\u043b\u044e\u0447\u0438",Share:"\u0421\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435",shareVideoLinkError:"\u041c\u043e\u043b\u044f \u0432\u044a\u0432\u0435\u0434\u0435\u0442\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043d\u0430 \u0432\u0440\u044a\u0437\u043a\u0430 \u043a\u044a\u043c YouTube.",shareVideoTitle:"\u0421\u043f\u043e\u0434\u0435\u043b\u0438 \u0432\u0438\u0434\u0435\u043e",shareYourScreen:"\u0421\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435 \u043d\u0430 \u0435\u043a\u0440\u0430\u043d\u0430",shareYourScreenDisabled:"\u0421\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435\u0442\u043e \u043d\u0430 \u0435\u043a\u0440\u0430\u043d\u0430 \u043d\u0435 \u0441\u0435 \u043f\u043e\u0434\u0434\u044a\u0440\u0436\u0430.",shareYourScreenDisabledForGuest:"\u0413\u043e\u0441\u0442\u0438\u0442\u0435 \u043d\u0435 \u043c\u043e\u0433\u0430\u0442 \u0434\u0430 \u0441\u043f\u043e\u0434\u0435\u043b\u044f\u0442 \u0435\u043a\u0440\u0430\u043d\u0430.",startLiveStreaming:"\u0417\u0430\u043f\u043e\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u0438\u0437\u043b\u044a\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u0436\u0438\u0432\u043e",startRecording:"\u0421\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0437\u0430\u043f\u0438\u0441",startRemoteControlErrorMessage:"\u0412\u044a\u0437\u043d\u0438\u043a\u043d\u0430 \u0433\u0440\u0435\u0448\u043a\u0430 \u043f\u0440\u0438 \u043e\u043f\u0438\u0442\u0430 \u0437\u0430 \u0437\u0430\u043f\u043e\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u0441\u0435\u0441\u0438\u044f\u0442\u0430 \u0437\u0430 \u043e\u0442\u0434\u0430\u043b\u0435\u0447\u0435\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435!",stopLiveStreaming:"\u0421\u043f\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0438\u0437\u043b\u044a\u0447\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0436\u0438\u0432\u043e",stopRecording:"\u041a\u0440\u0430\u0439 \u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u0430",stopRecordingWarning:"\u041d\u0430\u0438\u0441\u0442\u0438\u043d\u0430 \u043b\u0438 \u0438\u0441\u043a\u0430\u0442\u0435 \u0434\u0430 \u0441\u043f\u0440\u0435\u043c \u0437\u0430\u043f\u0438\u0441\u0430?",stopStreamingWarning:"\u041d\u0430\u0438\u0441\u0442\u0438\u043d\u0430 \u043b\u0438 \u0438\u0441\u043a\u0430\u0442\u0435 \u0434\u0430 \u0441\u043f\u0440\u0435\u0442\u0435 \u0438\u0437\u043b\u044a\u0447\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0436\u0438\u0432\u043e?",streamKey:"\u041a\u043b\u044e\u0447 \u0437\u0430 \u0438\u0437\u043b\u044a\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u0436\u0438\u0432\u043e",Submit:"\u0418\u0437\u043f\u0440\u0430\u0449\u0430\u043d\u0435",thankYou:"\u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u0438\u043c, \u0447\u0435 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u0445\u0442\u0435 {{appName}}!",token:"\u043a\u043e\u0434 \u0437\u0430 \u0434\u043e\u0441\u0442\u044a\u043f",tokenAuthFailed:"\u0421\u044a\u0436\u0430\u043b\u044f\u0432\u0430\u043c\u0435, \u043d\u043e \u043d\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0434\u0430 \u0441\u0435 \u043f\u0440\u0438\u0441\u044a\u0435\u0434\u0438\u043d\u0438\u0442\u0435 \u043a\u044a\u043c \u0442\u043e\u0437\u0438 \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440.",tokenAuthFailedTitle:"\u041d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u0430 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f",transcribing:"\u0422\u0440\u0430\u043d\u0441\u043a\u0440\u0438\u043f\u0446\u0438\u044f",unlockRoom:"\u041f\u0440\u0435\u043c\u0430\u0445\u0432\u0430\u043d\u0435 $t(lockRoomPassword) \u043e\u0442 \u0441\u0440\u0435\u0449\u0430\u0442\u0430",userPassword:"\u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0441\u043a\u0430 \u043f\u0430\u0440\u043e\u043b\u0430",WaitForHostMsg:"\u041a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f\u0442\u0430 {{room}} \u0432\u0441\u0435 \u043e\u0449\u0435 \u043d\u0435 \u0435 \u0437\u0430\u043f\u043e\u0447\u043d\u0430\u043b\u0430. \u0410\u043a\u043e \u0441\u0442\u0435 \u0434\u043e\u043c\u0430\u043a\u0438\u043d\u044a\u0442 \u0442\u043e\u0433\u0430\u0432\u0430 \u0441\u0435 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u0430\u0439\u0442\u0435. \u0412 \u043f\u0440\u043e\u0442\u0438\u0432\u0435\u043d \u0441\u043b\u0443\u0447\u0430\u0439 \u0438\u0437\u0447\u0430\u043a\u0430\u0439\u0442\u0435 \u0434\u043e\u043a\u0430\u0442\u043e \u0434\u043e\u043c\u0430\u043a\u0438\u043d\u044a\u0442 \u043f\u0440\u0438\u0441\u0442\u0438\u0433\u043d\u0435.",WaitForHostMsgWOk:"\u041a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f\u0442\u0430 {{room}} \u0432\u0441\u0435 \u043e\u0449\u0435 \u043d\u0435 \u0435 \u0437\u0430\u043f\u043e\u0447\u043d\u0430\u043b\u0430. \u0410\u043a\u043e \u0441\u0442\u0435 \u0434\u043e\u043c\u0430\u043a\u0438\u043d\u044a\u0442 \u0442\u043e\u0433\u0430\u0432\u0430 \u043d\u0430\u0442\u0438\u0441\u043d\u0435\u0442\u0435 \u0431\u0443\u0442\u043e\u043d\u0430 \u0437\u0430 \u0434\u0430 \u0441\u0435 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u0430\u0442\u0435. \u0412 \u043f\u0440\u043e\u0442\u0438\u0432\u0435\u043d \u0441\u043b\u0443\u0447\u0430\u0439 \u0438\u0437\u0447\u0430\u043a\u0430\u0439\u0442\u0435 \u0434\u043e\u043a\u0430\u0442\u043e \u0434\u043e\u043c\u0430\u043a\u0438\u043d\u044a\u0442 \u043f\u0440\u0438\u0441\u0442\u0438\u0433\u043d\u0435.",WaitingForHost:"\u0427\u0430\u043a\u0430\u043c\u0435 \u0434\u043e\u043c\u0430\u043a\u0438\u043d\u0430 ...",Yes:"\u0414\u0430",yourEntireScreen:"\u0426\u0435\u043b\u0438\u044f \u0435\u043a\u0440\u0430\u043d"},dialOut:{statusMessage:"\u0432 \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u0435 {{status}}"},feedback:{average:"\u0421\u0440\u0435\u0434\u043d\u043e",bad:"\u041b\u043e\u0448\u043e",detailsLabel:"\u0420\u0430\u0437\u043a\u0430\u0436\u0435\u0442\u0435 \u043d\u0438 \u043f\u043e\u0432\u0435\u0447\u0435.",good:"\u0414\u043e\u0431\u0440\u0430",rateExperience:"\u041c\u043e\u043b\u044f, \u043e\u0446\u0435\u043d\u0435\u0442\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e\u0442\u043e \u043d\u0430 \u0441\u0440\u0435\u0449\u0430\u0442\u0430.",veryBad:"\u041c\u043d\u043e\u0433\u043e \u043b\u043e\u0448\u043e",veryGood:"\u041c\u043d\u043e\u0433\u043e \u0434\u043e\u0431\u0440\u0430"},incomingCall:{answer:"\u0412\u0434\u0438\u0433\u043d\u0438",audioCallTitle:"\u0412\u0445\u043e\u0434\u044f\u0449 \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440",decline:"\u041e\u0442\u0445\u0432\u044a\u0440\u043b\u044f\u043d\u0435",productLabel:"\u043e\u0442 Jitsi Meet",videoCallTitle:"\u0412\u0445\u043e\u0434\u044f\u0449 \u0432\u0438\u0434\u0435\u043e \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440"},info:{accessibilityLabel:"\u041f\u043e\u043a\u0430\u0436\u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f",addPassword:"\u0414\u043e\u0431\u0430\u0432\u0438 $t(lockRoomPassword)",cancelPassword:"\u041f\u0440\u0435\u043c\u0430\u0445\u043d\u0438 $t(lockRoomPassword)",conferenceURL:"\u0412\u0440\u044a\u0437\u043a\u0430:",country:"\u0421\u0442\u0440\u0430\u043d\u0430",dialANumber:"\u0417\u0430 \u0432\u043b\u0438\u0437\u0430\u043d\u0435 \u0432 \u0441\u0440\u0435\u0449\u0430\u0442\u0430, \u043d\u0430\u0431\u0435\u0440\u0435\u0442\u0435 \u0435\u0434\u0438\u043d \u043e\u0442 \u0438\u0437\u0431\u0440\u043e\u0435\u043d\u0438\u0442\u0435 \u043d\u043e\u043c\u0435\u0440\u0430 \u0438 \u0432\u044a\u0432\u0435\u0434\u0435\u0442\u0435 \u043a\u043e\u0434\u0430.",dialInConferenceID:"\u041a\u043e\u0434:",dialInNotSupported:"\u0421\u044a\u0436\u0430\u043b\u044f\u0432\u0430\u043c\u0435, \u043e\u0431\u0430\u0436\u0434\u0430\u043d\u0435\u0442\u043e \u0432 \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u043d\u0435 \u0441\u0435 \u043f\u043e\u0434\u0434\u044a\u0440\u0436\u0430. ",dialInNumber:"\u0422\u0435\u043b:",dialInSummaryError:"\u041f\u0440\u043e\u0431\u043b\u0435\u043c \u043f\u0440\u0438 \u0434\u043e\u0441\u0442\u044a\u043f\u0430 \u043d\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0437\u0430 \u043e\u043f\u0446\u0438\u0438\u0442\u0435 \u0437\u0430 \u0432\u043b\u0438\u0437\u0430\u043d\u0435 \u043f\u0440\u0435\u0437 \u0442\u0435\u043b\u0435\u0444\u043e\u043d. \u041c\u043e\u043b\u044f \u043e\u043f\u0438\u0442\u0430\u0439\u0442\u0435 \u043e\u0442\u043d\u043e\u0432\u043e \u043f\u043e-\u043a\u044a\u0441\u043d\u043e.",dialInTollFree:"\u0411\u0435\u0437\u043f\u043b\u0430\u0442\u0435\u043d",genericError:"\u0423\u043f\u0441, \u043d\u0435\u0449\u043e \u0441\u0435 \u0441\u043b\u0443\u0447\u0438.",inviteLiveStream:"\u0417\u0430 \u0434\u0430 \u0432\u0438\u0434\u0438\u0442\u0435 \u043f\u0440\u0435\u0434\u0430\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0436\u0438\u0432\u043e \u043d\u0430 \u0441\u0440\u0435\u0449\u0430\u0442\u0430, \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0439\u0442\u0435 \u0442\u0430\u0437\u0438 \u0432\u0440\u044a\u0437\u043a\u0430: {{url}}",invitePhone:"\u0417\u0430 \u0432\u043b\u0438\u0437\u0430\u043d\u0435 \u043f\u0440\u0435\u0437 \u0442\u0435\u043b\u0435\u0444\u043e\u043d, \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u0439\u0442\u0435: {{number}},,{{conferenceID}}#\n",invitePhoneAlternatives:"\u0422\u044a\u0440\u0441\u0435\u043d\u0435 \u043d\u0430 \u0434\u0440\u0443\u0433 \u043d\u043e\u043c\u0435\u0440 \u0437\u0430 \u043d\u0430\u0431\u0438\u0440\u0430\u043d\u0435?\n\u0412\u0438\u0436\u0442\u0435 \u043e\u0449\u0435 \u043d\u043e\u043c\u0435\u0440\u0430: : {{url}}\n\n\n\u0410\u043a\u043e \u0432\u0435\u0447\u0435 \u0441\u0442\u0435 \u043d\u0430\u0431\u0440\u0430\u043b\u0438 \u043e\u0442 \u0442\u0435\u043b\u0435\u0444\u043e\u043d \u0432 \u0441\u0442\u0430\u044f\u0442\u0430, \u0432\u043b\u0435\u0437\u0442\u0435 \u0431\u0435\u0437 \u0434\u0430 \u0435 \u043f\u0443\u0441\u043d\u0430\u0442 \u0437\u0432\u0443\u043a\u0430: {{silentUrl}}",inviteURLFirstPartGeneral:"\u041f\u043e\u043a\u0430\u043d\u0435\u043d\u0438 \u0441\u0442\u0435 \u0434\u0430 \u0441\u0435 \u043f\u0440\u0438\u0441\u044a\u0435\u0434\u0438\u043d\u0438\u0442\u0435 \u043a\u044a\u043c \u0441\u0440\u0435\u0449\u0430.",inviteURLFirstPartPersonal:"{{name}} \u0432\u0438 \u043a\u0430\u043d\u0438 \u0437\u0430 \u0441\u0440\u0435\u0449\u0430.\n",inviteURLSecondPart:"\n\u0412\u043b\u0435\u0437\u0442\u0435 \u0432 \u0441\u0440\u0435\u0449\u0430\u0442\u0430:\n{{url}}\n",liveStreamURL:"\u0418\u0437\u043b\u044a\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u0436\u0438\u0432\u043e:",moreNumbers:"\u041f\u043e\u0432\u0435\u0447\u0435 \u043d\u043e\u043c\u0435\u0440\u0430",noNumbers:"\u041d\u044f\u043c\u0430 \u043d\u043e\u043c\u0435\u0440\u0430 \u0437\u0430 \u043d\u0430\u0431\u0438\u0440\u0430\u043d\u0435.",noPassword:"\u041d\u044f\u043c\u0430",noRoom:"\u041d\u044f\u043c\u0430 \u043f\u043e\u0441\u043e\u0447\u0435\u043d\u0430 \u0441\u0442\u0430\u044f \u0437\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0437\u0430 \u043d\u043e\u043c\u0435\u0440\u0430 \u0437\u0430 \u043d\u0430\u0431\u0438\u0440\u0430\u043d\u0435.",numbers:"\u041d\u043e\u043c\u0435\u0440\u0430",password:"$t(lockRoomPasswordUppercase):",title:"\u0421\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435",tooltip:"\u0421\u043f\u043e\u0434\u0435\u043b\u0435\u0442\u0435 \u0432\u0440\u044a\u0437\u043a\u0430\u0442\u0430 \u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f\u0442\u0430 \u0437\u0430 \u043d\u043e\u043c\u0435\u0440\u0430 \u0441\u0432\u044a\u0440\u0437\u0430\u043d\u0438 \u0441\u044a\u0441 \u0441\u0440\u0435\u0449\u0430\u0442\u0430",label:"\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0437\u0430 \u0441\u0440\u0435\u0449\u0430\u0442\u0430"},inviteDialog:{alertText:"\u041d\u0435 \u0443\u0441\u043f\u044f\u0445 \u0434\u0430 \u043f\u043e\u043a\u0430\u043d\u044f \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u0446\u0438\u0442\u0435.",header:"\u041f\u043e\u043a\u0430\u043d\u0438",searchCallOnlyPlaceholder:"\u0412\u044a\u0432\u0435\u0434\u0435\u0442\u0435 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0435\u043d \u043d\u043e\u043c\u0435\u0440",searchPeopleOnlyPlaceholder:"\u0422\u044a\u0440\u0441\u0435\u043d\u0435 \u043d\u0430 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u0446\u0438",searchPlaceholder:"\u0423\u0447\u0430\u0441\u0442\u043d\u0438\u043a \u0438\u043b\u0438 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0435\u043d \u043d\u043e\u043c\u0435\u0440",send:"\u0418\u0437\u043f\u0440\u0430\u0442\u0438"},inlineDialogFailure:{msg:"\u0418\u043c\u0430\u0448\u0435 \u0433\u0440\u0435\u0448\u043a\u0430.",retry:"\u041e\u043f\u0438\u0442\u0430\u0439\u0442\u0435 \u043e\u0442\u043d\u043e\u0432\u043e",support:"\u041f\u043e\u0434\u0434\u0440\u044a\u0436\u043a\u0430",supportMsg:"\u0410\u043a\u043e \u0442\u043e\u0432\u0430 \u0441\u0435 \u0441\u043b\u0443\u0447\u0432\u0430 \u0447\u0435\u0441\u0442\u043e, \u0441\u0432\u044a\u0440\u0436\u0435\u0442\u0435 \u0441\u0435 \u0441 \u043d\u0430\u0448\u0430\u0442\u0430"},keyboardShortcuts:{focusLocal:"\u0424\u043e\u043a\u0443\u0441\u0438\u0440\u0430\u043d\u0435 \u0432\u044a\u0440\u0445\u0443 \u0412\u0430\u0448\u0435\u0442\u043e \u0432\u0438\u0434\u0435\u043e",focusRemote:"\u0424\u043e\u043a\u0443\u0441\u0438\u0440\u0430\u0439 \u0432\u0438\u0434\u0435\u043e\u0442\u043e \u043d\u0430 \u0434\u0440\u0443\u0433 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a",fullScreen:"\u0412\u043b\u0438\u0437\u0430\u043d\u0435/\u0438\u0437\u043b\u0438\u0437\u0430\u043d\u0435 \u043e\u0442 \u0440\u0435\u0436\u0438\u043c \u043d\u0430 \u0446\u044f\u043b \u0435\u043a\u0440\u0430\u043d",keyboardShortcuts:"\u041a\u043b\u0430\u0432\u0438\u0448\u043d\u0438 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0438",localRecording:"\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u0438\u043b\u0438 \u0441\u043a\u0440\u0438\u0432\u0430\u043d\u0435 \u043d\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0442\u0435 \u0437\u0430 \u043b\u043e\u043a\u0430\u043b\u0435\u043d \u0437\u0430\u043f\u0438\u0441",mute:"\u0421\u043f\u0438\u0440\u0430\u043d\u0435/\u043f\u0443\u0441\u043a\u0430\u043d\u0435 \u043d\u0430 \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u0430",pushToTalk:"\u041d\u0430\u0442\u0438\u0441\u043d\u0435\u0442\u0435, \u0437\u0430 \u0434\u0430 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0435",raiseHand:"\u0412\u0434\u0438\u0433\u043d\u0435\u0442\u0435 \u0438\u043b\u0438 \u0441\u0432\u0430\u043b\u0435\u0442\u0435 \u0440\u044a\u043a\u0430",showSpeakerStats:"\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u0437\u0430 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0435\u043b\u044f",toggleChat:"\u041e\u0442\u0432\u0430\u0440\u044f\u043d\u0435/\u0441\u043a\u0440\u0438\u0432\u0430\u043d\u0435 \u043d\u0430 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u0438\u0442\u0435 \u0441\u044a\u043e\u0431\u0449\u0435\u043d\u0438\u044f",toggleFilmstrip:"\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u0438\u043b\u0438 \u0441\u043a\u0440\u0438\u0432\u0430\u043d\u0435 \u043d\u0430 \u0432\u0438\u0434\u0435\u043e \u043c\u0438\u043d\u0438\u0430\u0442\u044e\u0440\u0438\u0442\u0435",toggleScreensharing:"\u0421\u043c\u044f\u043d\u0430 \u043c\u0435\u0436\u0434\u0443 \u043a\u0430\u043c\u0435\u0440\u0430 \u0438 \u0441\u043f\u043e\u0434\u0435\u043b\u0435\u043d \u0435\u043a\u0440\u0430\u043d",toggleShortcuts:"\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u0438\u043b\u0438 \u0441\u043a\u0440\u0438\u0432\u0430\u043d\u0435 \u043d\u0430 \u043a\u043b\u0430\u0432\u0438\u0448\u043d\u0438\u0442\u0435 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0438",videoMute:"\u041f\u0443\u0441\u043a\u0430\u043d\u0435/\u0441\u043f\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043a\u0430\u043c\u0435\u0440\u0430\u0442\u0430",videoQuality:"\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u043d\u0430 \u043e\u0431\u0430\u0436\u0434\u0430\u043d\u0435\u0442\u043e"},liveStreaming:{busy:"\u0420\u0430\u0431\u043e\u0442\u0438\u043c \u0432\u044a\u0440\u0445\u0443 \u0442\u043e\u0432\u0430 \u0434\u0430 \u043e\u0441\u0432\u043e\u0431\u043e\u0434\u0438\u043c \u0440\u0435\u0441\u0443\u0440\u0441\u0438 \u0437\u0430 \u0438\u0437\u043b\u044a\u0447\u0432\u0430\u043d\u0435. \u041c\u043e\u043b\u044f, \u043e\u043f\u0438\u0442\u0430\u0439\u0442\u0435 \u043e\u0442\u043d\u043e\u0432\u043e \u0441\u043b\u0435\u0434 \u043d\u044f\u043a\u043e\u043b\u043a\u043e \u043c\u0438\u043d\u0443\u0442\u0438.",busyTitle:"\u0412\u0441\u0438\u0447\u043a\u0438 \u0438\u0437\u043b\u044a\u0447\u0432\u0430\u0442\u0435\u043b\u0438 \u0432 \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u0441\u0430 \u0437\u0430\u0435\u0442\u0438.",changeSignIn:"\u0421\u043c\u044f\u043d\u0430 \u043d\u0430 \u0430\u043a\u0430\u0443\u043d\u0442\u0438.",choose:"\u0418\u0437\u0431\u0435\u0440\u0435\u0442\u0435 \u043f\u0440\u0435\u0434\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u0436\u0438\u0432\u043e",chooseCTA:"\u0418\u0437\u0431\u0435\u0440\u0435\u0442\u0435 \u043e\u043f\u0446\u0438\u044f \u0437\u0430 \u043f\u0440\u0435\u0434\u0430\u0432\u0430\u043d\u0435. \u0412\u043b\u0435\u0437\u043b\u0438 \u0441\u0442\u0435 \u043a\u0430\u0442\u043e {{email}}.",enterStreamKey:"\u0412\u044a\u0432\u0435\u0434\u0435\u0442\u0435 \u043a\u043b\u044e\u0447\u0430 \u043e\u0442 YouTube \u0437\u0430 \u043f\u0440\u0435\u0434\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u0436\u0438\u0432\u043e.",error:"\u0418\u0437\u043b\u044a\u0447\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0436\u0438\u0432\u043e \u0431\u0435\u0448\u0435 \u043d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e. \u041c\u043e\u043b\u044f, \u043e\u043f\u0438\u0442\u0430\u0439\u0442\u0435 \u043e\u0442\u043d\u043e\u0432\u043e.",errorAPI:"\u0418\u0437\u043d\u0438\u043a\u043d\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 \u0432\u0440\u044a\u0437\u043a\u0430\u0442\u0430 \u043a\u044a\u043c YouTube. \u041c\u043e\u043b\u044f \u043e\u043f\u0438\u0442\u0430\u0439\u0442\u0435 \u043e\u0442\u043d\u043e\u0432\u043e.",errorLiveStreamNotEnabled:"\u041f\u0440\u0435\u0434\u0430\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0436\u0438\u0432\u043e \u043d\u0435 \u0435 \u043f\u0443\u0441\u043d\u0430\u0442\u043e \u0437\u0430 {{email}}. \u041c\u043e\u043b\u044f \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0430\u0439\u0442\u0435 \u0433\u043e \u0438\u043b\u0438 \u0441\u043c\u0435\u043d\u0435\u0442\u0435 \u0430\u043a\u0430\u0443\u043d\u0442\u0430.",expandedOff:"\u041f\u0440\u0435\u0434\u0430\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0436\u0438\u0432\u043e \u0431\u0435 \u0441\u043f\u0440\u044f\u043d\u043e",expandedOn:"\u0421\u0440\u0435\u0449\u0430\u0442\u0430 \u0441\u0435 \u0438\u0437\u043b\u044a\u0447\u0432\u0430 \u043d\u0430 \u0436\u0438\u0432\u043e \u0432 YouTube.",expandedPending:"\u0418\u0437\u043b\u044a\u0447\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0436\u0438\u0432\u043e \u0441\u0435 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430...",failedToStart:"\u0418\u0437\u043b\u044a\u0447\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0436\u0438\u0432\u043e \u043d\u0435 \u0443\u0441\u043f\u044f \u0434\u0430 \u0437\u0430\u043f\u043e\u0447\u043d\u0435",getStreamKeyManually:"\u041d\u0435 \u0443\u0441\u043f\u044f\u0445\u043c\u0435 \u0434\u0430 \u043e\u0442\u043a\u0440\u0438\u0435\u043c \u043d\u0438\u043a\u0430\u043a\u0432\u043e \u043f\u0440\u0435\u0434\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u0436\u0438\u0432\u043e. \u041e\u043f\u0438\u0442\u0430\u0439\u0442\u0435 \u0434\u0430 \u0432\u0437\u0435\u043c\u0435\u0442\u0435 \u043a\u043b\u044e\u0447\u0430 \u0437\u0430 \u0442\u0430\u043a\u043e\u0432\u0430 \u043e\u0442 YouTube.",invalidStreamKey:"\u041a\u043b\u044e\u0447\u044a\u0442 \u0437\u0430 \u043f\u0440\u0435\u0434\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u0436\u0438\u0432\u043e \u0435 \u0433\u0440\u0435\u0448\u0435\u043d.",off:"\u041a\u0440\u0430\u0439 \u043d\u0430 \u0438\u0437\u043b\u044a\u0447\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0436\u0438\u0432\u043e",offBy:"{{name}} \u0441\u043f\u0440\u044f \u0438\u0437\u043b\u044a\u0447\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0436\u0438\u0432\u043e",on:"\u0418\u0437\u043b\u044a\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u0436\u0438\u0432\u043e",onBy:"{{name}} \u043f\u0443\u0441\u043d\u0430 \u0438\u0437\u043b\u044a\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u0436\u0438\u0432\u043e",pending:"\u0417\u0430\u043f\u043e\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u0438\u0437\u043b\u044a\u0447\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0436\u0438\u0432\u043e\u2026",serviceName:"\u041f\u0440\u0435\u0434\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u0436\u0438\u0432\u043e",signedInAs:"\u0412 \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u0441\u0442\u0435 \u0432\u043b\u0435\u0437\u043b\u0438 \u043a\u0430\u0442\u043e:",signIn:"\u0412\u043b\u0435\u0437\u0442\u0435 \u0441 \u0413\u0443\u0433\u044a\u043b",signInCTA:"\u0412\u043b\u0435\u0437\u0442\u0435 \u0438\u043b\u0438 \u0432\u044a\u0432\u0435\u0434\u0435\u0442\u0435 \u043a\u043b\u044e\u0447\u044a\u0442 \u0437\u0430 \u0438\u0437\u043b\u044a\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u0436\u0438\u0432\u043e \u043e\u0442 YouTube.",signOut:"",start:"\u0417\u0430\u043f\u043e\u0447\u043d\u0438 \u0438\u0437\u043b\u044a\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u0436\u0438\u0432\u043e",streamIdHelp:"\u041a\u0430\u043a\u0432\u043e \u0435 \u0442\u043e\u0432\u0430?",unavailableTitle:"\u0418\u0437\u043b\u044a\u0447\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0436\u0438\u0432\u043e \u0435 \u043d\u0435\u0434\u043e\u0441\u0442\u044a\u043f\u043d\u043e"},localRecording:{clientState:{off:"\u0418\u0437\u043a\u043b\u044e\u0447\u0435\u043d\u043e",on:"\u0412\u043a\u043b\u044e\u0447\u0435\u043d\u043e",unknown:"\u041d\u0435\u043f\u043e\u0437\u043d\u0430\u0442"},dialogTitle:"\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 \u043b\u043e\u043a\u0430\u043b\u0435\u043d \u0437\u0430\u043f\u0438\u0441",duration:"\u041f\u0440\u043e\u0434\u044a\u043b\u0436\u0438\u0442\u0435\u043b\u043d\u043e\u0441\u0442",durationNA:"\u041d\u044f\u043c\u0430",encoding:"\u041a\u043e\u0434\u0435\u043a",label:"\u0415\u0442\u0438\u043a\u0435\u0442",labelToolTip:"\u041b\u043e\u043a\u0430\u043b\u043d\u0438\u044f \u0437\u0430\u043f\u0438\u0441 \u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d",localRecording:"\u041b\u043e\u043a\u0430\u043b\u0435\u043d \u0437\u0430\u043f\u0438\u0441",me:"\u0410\u0437",messages:{engaged:"\u041b\u043e\u043a\u0430\u043b\u043d\u0438\u044f \u0437\u0430\u043f\u0438\u0441 \u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d.",finished:"\u0417\u0430\u043f\u0438\u0441\u0430 \u043d\u0430 \u0441\u0435\u0441\u0438\u044f\u0442\u0430 {{token}} \u043f\u0440\u0438\u043a\u043b\u044e\u0447\u0438. \u041c\u043e\u043b\u044f \u0438\u0437\u043f\u0440\u0430\u0442\u0435\u0442\u0435 \u0437\u0430\u043f\u0438\u0441\u0430 \u043d\u0430 \u0432\u0430\u0448\u0438\u044f\u0442 \u0434\u043e\u043c\u0430\u043a\u0438\u043d.",finishedModerator:"\u0421\u0435\u0441\u0438\u044f\u0442\u0430 {{token}} \u0437\u0430 \u0437\u0430\u043f\u0438\u0441 \u043f\u0440\u0438\u043a\u043b\u044e\u0447\u0438. \u041b\u043e\u043a\u0430\u043b\u043d\u0438\u044f\u0442 \u0437\u0430\u043f\u0438\u0441 \u0431\u0435\u0448\u0435 \u0437\u0430\u043f\u0430\u0437\u0435\u043d. \u041c\u043e\u043b\u044f \u043f\u043e\u043a\u0430\u043d\u0435\u0442\u0435 \u043e\u0441\u0442\u0430\u043d\u0430\u043b\u0438\u0442\u0435 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u0446\u0438 \u0434\u0430 \u0432\u0438 \u0438\u0437\u043f\u0440\u0430\u0442\u044f\u0442 \u0442\u0435\u0445\u043d\u0438\u0442\u0435 \u0437\u0430\u043f\u0438\u0441\u0438.",notModerator:"\u041d\u044f\u043c\u0430\u0442\u0435 \u043f\u0440\u0430\u0432\u0430 \u0434\u0430 \u043f\u0443\u0441\u043a\u0430\u0442\u0435 \u0441\u043f\u0438\u0440\u0430\u0442\u0435 \u043b\u043e\u043a\u0430\u043b\u0435\u043d \u0437\u0430\u043f\u0438\u0441."},moderator:"\u041c\u043e\u0434\u0435\u0440\u0430\u0442\u043e\u0440",no:"\u041d\u0435",participant:"\u0423\u0447\u0430\u0441\u0442\u043d\u0438\u043a",participantStats:"\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u043d\u0430 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a",sessionToken:"\u0422\u043e\u0443\u043a\u044a\u043d \u0437\u0430 \u0441\u0435\u0441\u0438\u044f\u0442\u0430",start:"\u0417\u0430\u043f\u043e\u0447\u043d\u0438 \u0437\u0430\u043f\u0438\u0441",stop:"\u0421\u043f\u0440\u0438 \u0437\u0430\u043f\u0438\u0441\u0430",yes:"\u0414\u0430"},lockRoomPassword:"\u043f\u0430\u0440\u043e\u043b\u0430",lockRoomPasswordUppercase:"\u041f\u0430\u0440\u043e\u043b\u0430",me:"\u0430\u0437",notify:{connectedOneMember:"{{name}} \u0432\u043b\u0435\u0437\u043d\u0430 \u0432 \u0441\u0440\u0435\u0449\u0430\u0442\u0430",connectedThreePlusMembers:"{{name}} \u0438 \u043e\u0449\u0435 {{count}} \u0432\u043b\u0435\u0437\u043d\u0430\u0445\u0430 \u0432 \u0441\u0440\u0435\u0449\u0430\u0442\u0430",connectedTwoMembers:"{{first}} \u0438 {{second}} \u0432\u043b\u0435\u0437\u043d\u0430\u0445\u0430 \u0432 \u0441\u0440\u0435\u0449\u0430\u0442\u0430",disconnected:"\u041d\u0430\u043f\u0443\u0441\u043d\u0430 \u0441\u0440\u0435\u0449\u0430\u0442\u0430",focus:"\u041a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0442\u0435\u043d \u0444\u043e\u043a\u0443\u0441",focusFail:"{{component}} \u043d\u0435 \u0435 \u043d\u0430 \u0440\u0430\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 - \u0441\u043b\u0435\u0434\u0432\u0430\u0449 \u043e\u043f\u0438\u0442 \u0441\u043b\u0435\u0434 {{ms}} \u0441\u0435\u043a\u0443\u043d\u0434\u0438",grantedTo:"\u0414\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u0440\u043e\u043b\u044f \u043c\u043e\u0434\u0435\u0440\u0430\u0442\u043e\u0440 \u043d\u0430 {{to}}!",invitedOneMember:"{{name}} \u0431\u0435 \u043f\u043e\u043a\u0430\u043d\u0435\u043d",invitedThreePlusMembers:"{{name}} \u0438 \u043e\u0449\u0435 {{count}} \u0431\u044f\u0445\u0430 \u043f\u043e\u043a\u0430\u043d\u0435\u043d\u0438",invitedTwoMembers:"{{first}} \u0438 {{second}} \u0431\u044f\u0445\u0430 \u043f\u043e\u043a\u0430\u043d\u0435\u043d\u0438",kickParticipant:"{{kicked}} \u0431\u0435\u0448\u0435 \u0438\u0437\u0433\u043e\u043d\u0435\u043d \u043e\u0442 {{kicker}}",me:"\u0410\u0437",moderator:"\u041f\u0440\u0438\u0434\u043e\u0431\u0438\u0445\u0442\u0435 \u043f\u0440\u0430\u0432\u0430 \u043d\u0430 \u043c\u043e\u0434\u0435\u0440\u0430\u0442\u043e\u0440!",muted:"\u0417\u0430\u043f\u043e\u0447\u0432\u0430\u0442\u0435 \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440\u0430 \u0431\u0435\u0437 \u0437\u0432\u0443\u043a.",mutedTitle:"\u0417\u0432\u0443\u043a\u044a\u0442 \u0432\u0438 \u0435 \u0441\u043f\u0440\u044f\u043d!",mutedRemotelyTitle:"\u041c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u044a\u0442 \u0432\u0438 \u0431\u0435 \u0441\u043f\u0440\u044f\u043d \u043e\u0442 {{participantDisplayName}}!",mutedRemotelyDescription:"\u0412\u0438\u043d\u0430\u0433\u0438 \u043c\u043e\u0436\u0435\u0442\u0435 \u0434\u0430 \u043f\u0443\u0441\u043d\u0435\u0442\u0435 \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u0430 \u0441\u0438 \u043a\u043e\u0433\u0430\u0442\u043e \u0441\u0442\u0435 \u0433\u043e\u0442\u043e\u0432\u0438 \u0434\u0430 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0435. \u0417\u0430\u0433\u043b\u0443\u0448\u0435\u0442\u0435 \u0433\u043e \u043e\u0442\u043d\u043e\u0432\u043e \u0437\u0430 \u0434\u0430 \u043d\u0435 \u0438\u0437\u043f\u0440\u0430\u0449\u0430\u0442\u0435 \u0448\u0443\u043c \u0432 \u0441\u0440\u0435\u0449\u0430\u0442\u0430.",passwordRemovedRemotely:"$t(lockRoomPasswordUppercase) \u0435 \u043f\u0440\u0435\u043c\u0430\u0445\u043d\u0430\u0442\u0430 \u043e\u0442 \u0434\u0440\u0443\u0433 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b",passwordSetRemotely:"$t(lockRoomPasswordUppercase) \u0441\u044a\u0437\u0434\u0430\u0434\u0435\u043d\u0430 \u043e\u0442 \u0434\u0440\u0443\u0433 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b",raisedHand:"{{name}} \u0438\u0441\u043a\u0430 \u0434\u0443\u043c\u0430\u0442\u0430.",somebody:"\u041d\u044f\u043a\u043e\u0439",startSilentTitle:"\u0412\u043b\u044f\u0437\u043e\u0445\u0442\u0435 \u0441 \u043e\u043f\u0446\u0438\u044f \u0434\u0430 \u043d\u0435 \u0447\u0443\u0432\u0430\u0442\u0435 \u0430\u0443\u0434\u0438\u043e!",startSilentDescription:"\u0412\u043b\u0435\u0437\u0442\u0435 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e \u0437\u0430 \u0434\u0430 \u043f\u0443\u0441\u043d\u0435\u0442\u0435 \u0437\u0432\u0443\u043a\u0430",suboptimalBrowserWarning:"\u041e\u043f\u0430\u0441\u044f\u0432\u0430\u043c\u0435 \u0441\u0435, \u0447\u0435 \u043d\u044f\u043c\u0430 \u0434\u0430 \u043c\u043e\u0436\u0435\u0442\u0435 \u0434\u0430 \u0441\u0435 \u043d\u0430\u0441\u043b\u0430\u0434\u0438\u0442\u0435 \u043d\u0430 \u0441\u0440\u0435\u0449\u0430\u0442\u0430. \u0420\u0430\u0431\u043e\u0442\u0438\u043c \u043f\u043e \u0432\u044a\u043f\u0440\u043e\u0441\u0430, \u043c\u0435\u0436\u0434\u0443\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u0439\u0442\u0435 \u043d\u044f\u043a\u043e\u0439 \u043e\u0442 \u043d\u0430\u043f\u044a\u043b\u043d\u043e \u043f\u043e\u0434\u0434\u044a\u0440\u0436\u0430\u043d\u0438\u0442\u0435 \u0431\u0440\u0430\u0443\u0437\u044a\u0440\u0438.",suboptimalExperienceTitle:"\u0412\u043d\u0438\u043c\u0430\u043d\u0438\u0435",unmute:"\u041f\u0443\u0441\u043a\u0430\u043d\u0435 \u043d\u0430 \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u0430",newDeviceCameraTitle:"\u0417\u0430\u0441\u0435\u0447\u0435\u043d\u0430 \u0435 \u043d\u043e\u0432\u0430 \u043a\u0430\u043c\u0435\u0440\u0430",newDeviceAudioTitle:"\u041d\u043e\u0432\u043e \u0430\u0443\u0434\u0438\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0435 \u0437\u0430\u0441\u0435\u0447\u0435\u043d\u043e",newDeviceAction:"\u0418\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u0439"},passwordSetRemotely:"\u0437\u0430\u0434\u0430\u0434\u0435\u043d\u0430 \u043e\u0442 \u0434\u0440\u0443\u0433 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a",passwordDigitsOnly:"\u0414\u043e {{number}} \u0446\u0438\u0444\u0440\u0438",poweredby:"\u0441 \u043f\u043e\u0434\u043a\u0440\u0435\u043f\u0430\u0442\u0430 \u043d\u0430",presenceStatus:{busy:"\u0417\u0430\u0435\u0442",calling:"\u041e\u0431\u0430\u0436\u0434\u0430\u043d\u0435...",connected:"\u0421\u0432\u044a\u0440\u0437\u0430\u043d",connecting:"\u0421\u0432\u044a\u0440\u0437\u0432\u0430\u043d\u0435...",connecting2:"\u0421\u0432\u044a\u0440\u0437\u0432\u0430\u043d\u0435*...",disconnected:"\u0418\u0437\u043a\u043b\u044e\u0447\u0435\u043d",expired:"\u0418\u0437\u0442\u0435\u043a\u044a\u043b",ignored:"\u041f\u0440\u0435\u043d\u0435\u0431\u0440\u0435\u0433\u043d\u0430\u0442",initializingCall:"\u0421\u0432\u044a\u0440\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u043e\u0431\u0430\u0436\u0434\u0430\u043d\u0435\u0442\u043e...",invited:"\u041f\u043e\u043a\u0430\u043d\u0435\u043d",rejected:"\u041e\u0442\u0445\u0432\u044a\u0440\u043b\u0435\u043d",ringing:"\u0417\u0432\u044a\u043d\u0438..."},profile:{setDisplayNameLabel:"\u0417\u0430\u0434\u0430\u0439\u0442\u0435 \u0435\u043a\u0440\u0430\u043d\u043d\u043e\u0442\u043e \u0441\u0438 \u0438\u043c\u0435",setEmailInput:"\u0412\u044a\u0432\u0435\u0434\u0435\u0442\u0435 \u0435-\u043f\u043e\u0449\u0430",setEmailLabel:"\u0417\u0430\u0434\u0430\u0439\u0442\u0435 \u0435-\u043f\u043e\u0449\u0430\u0442\u0430 \u0441\u0438 \u0432 \u201egravatar\u201c",title:"\u041f\u0440\u043e\u0444\u0438\u043b"},raisedHand:"\u0418\u0441\u043a\u0430 \u0434\u0443\u043c\u0430\u0442\u0430",recording:{authDropboxText:"\u041a\u0430\u0447\u0435\u0442\u0435 \u0432 Dropbox",availableSpace:"\u041d\u0430\u043b\u0438\u0447\u043d\u043e \u043c\u044f\u0441\u0442\u043e: {{spaceLeft}} MB (\u043f\u0440\u0438\u0431\u043b\u0438\u0437\u0438\u0442\u0435\u043b\u043d\u043e {{duration}} \u043c\u0438\u043d\u0443\u0442\u0438 \u0437\u0430\u043f\u0438\u0441)",beta:"\u0411\u0415\u0422\u0410",busy:"\u0420\u0430\u0431\u043e\u0442\u0438\u043c \u0432\u044a\u0440\u0445\u0443 \u0442\u043e\u0432\u0430 \u0434\u0430 \u043e\u0441\u0432\u043e\u0431\u043e\u0434\u0438\u043c \u0440\u0435\u0441\u0443\u0440\u0441\u0438 \u0437\u0430 \u0437\u0430\u043f\u0438\u0441. \u041c\u043e\u043b\u044f, \u043e\u043f\u0438\u0442\u0430\u0439\u0442\u0435 \u043e\u0442\u043d\u043e\u0432\u043e \u0441\u043b\u0435\u0434 \u043d\u044f\u043a\u043e\u043b\u043a\u043e \u043c\u0438\u043d\u0443\u0442\u0438.",busyTitle:"\u0412\u0441\u0438\u0447\u043a\u0438 \u0432\u044a\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0437\u0430 \u0437\u0430\u043f\u0438\u0441 \u0432 \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u0441\u0430 \u0437\u0430\u0435\u0442\u0438",error:"\u0413\u0440\u0435\u0448\u043a\u0430 \u043f\u0440\u0438 \u043e\u043f\u0438\u0442 \u0437\u0430 \u0437\u0430\u043f\u0438\u0441. \u041c\u043e\u043b\u044f \u043e\u043f\u0438\u0442\u0430\u0439\u0442\u0435 \u043e\u0442\u043d\u043e\u0432\u043e.",expandedOff:"\u0417\u0430\u043f\u0438\u0441\u044a\u0442 \u0441\u043f\u0440\u044f",expandedOn:"\u0421\u0440\u0435\u0449\u0430\u0442\u0430 \u0441\u0435 \u0437\u0430\u043f\u0438\u0441\u0432\u0430 \u0432 \u043c\u043e\u043c\u0435\u043d\u0442\u0430",expandedPending:"\u0417\u0430\u043f\u0438\u0441\u044a\u0442 \u0437\u0430\u043f\u043e\u0447\u0432\u0430...",failedToStart:"\u041d\u0435\u0443\u0441\u043f\u0435\u0448\u0435\u043d \u043e\u043f\u0438\u0442 \u0437\u0430 \u0437\u0430\u043f\u0438\u0441\u0432\u0430\u043d\u0435",fileSharingdescription:"\u0421\u043f\u043e\u0434\u0435\u043b\u0435\u0442\u0435 \u0437\u0430\u043f\u0438\u0441\u0430 \u0441 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u0446\u0438\u0442\u0435 \u0432 \u0441\u0440\u0435\u0449\u0430\u0442\u0430",live:"\u041d\u0430 \u0416\u0438\u0432\u043e",loggedIn:"\u0412\u043b\u0435\u0437\u043b\u0438 \u0441\u0442\u0435 \u043a\u0430\u0442\u043e {{userName}}",off:"\u0417\u0430\u043f\u0438\u0441\u044a\u0442 \u0441\u043f\u0440\u044f\u043d",offBy:"{{name}} \u0441\u043f\u0440\u044f \u0437\u0430\u043f\u0438\u0441\u044a\u0442",on:"\u0417\u0430\u043f\u0438\u0441",onBy:"{{name}} \u043f\u0443\u0441\u043d\u0430 \u0437\u0430\u043f\u0438\u0441",pending:"\u0421\u0442\u0430\u0440\u0442\u0438\u0440\u0430 \u0437\u0430\u043f\u0438\u0441 \u043d\u0430 \u0441\u0440\u0435\u0449\u0430\u0442\u0430...",rec:"\u0417\u0410\u041f\u0418\u0421",serviceDescription:"\u0417\u0430\u043f\u0438\u0441\u044a\u0442 \u0432\u0438 \u0449\u0435 \u0441\u0435 \u0437\u0430\u043f\u0438\u0448\u0435 \u043e\u0442 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u0432\u0430\u0449\u0430 \u0443\u0441\u043b\u0443\u0433\u0430",serviceName:"\u0417\u0430\u043f\u0438\u0441\u0432\u0430\u0449\u0430 \u0443\u0441\u043b\u0443\u0433\u0430",signIn:"\u0412\u043b\u0438\u0437\u0430\u043d\u0435",signOut:"\u0418\u0437\u043b\u0438\u0437\u0430\u043d\u0435",unavailable:"\u0423\u043f\u0441! \u0412 \u043c\u043e\u043c\u0435\u043d\u0442 {{serviceName}} \u0435 \u043d\u0435\u0434\u043e\u0441\u0442\u044a\u043f\u043d\u0430. \u0412 \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u0441\u0435 \u043e\u043f\u0438\u0442\u0432\u0430\u043c\u0435 \u0434\u0430 \u0440\u0435\u0448\u0438\u043c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430. \u041c\u043e\u043b\u044f \u043e\u043f\u0438\u0442\u0430\u0439\u0442\u0435 \u043e\u0442\u043d\u043e\u0432\u043e \u043c\u0430\u043b\u043a\u043e \u043f\u043e-\u043a\u044a\u0441\u043d\u043e.",unavailableTitle:"\u0417\u0430\u043f\u0438\u0441\u044a\u0442 \u0435 \u043d\u0435\u0432\u044a\u0437\u043c\u043e\u0436\u0435\u043d"},sectionList:{pullToRefresh:"\u0418\u0437\u0434\u044a\u0440\u043f\u0430\u0439 \u0437\u0430 \u0434\u0430 \u0441\u0435 \u043e\u0431\u043d\u043e\u0432\u0438"},settings:{calendar:{about:"\u041a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u043d\u0430\u0442\u0430 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u043d\u0430 {{appName}} \u0441\u0438\u0433\u0443\u0440\u043d\u043e \u0434\u043e\u0441\u0442\u044a\u043f\u0432\u0430 \u0432\u0430\u0448\u0438\u044f \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440 \u0437\u0430 \u0434\u0430 \u043f\u043e\u043a\u0430\u0436\u0435 \u043d\u0430\u0441\u0442\u044a\u043f\u0432\u0430\u0449\u0438\u0442\u0435 \u0441\u044a\u0431\u0438\u0442\u0438\u044f.",disconnect:"\u0420\u0430\u0437\u043a\u0430\u0447\u0438",microsoftSignIn:"\u0412\u043b\u0435\u0437 \u0441 Microsoft \u0430\u043a\u0430\u0443\u043d\u0442",signedIn:"\u0412 \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u0434\u043e\u0441\u0442\u044a\u043f\u0432\u0430 \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u0430 \u0441 {{email}}. \u041d\u0430\u0442\u0438\u0441\u043d\u0435\u0442\u0435 \u0431\u0443\u0442\u043e\u043d\u0430 \u0420\u0430\u0437\u043a\u0430\u0447\u0438 \u0437\u0430 \u0434\u0430 \u0441\u043f\u0440\u0435\u0442\u0435 \u0434\u043e\u0441\u0442\u044a\u043f\u0430.",title:""},devices:"\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430",followMe:"\u0412\u0441\u0438\u0447\u043a\u0438 \u043c\u0435 \u0441\u043b\u0435\u0434\u0432\u0430\u0442",language:"\u0415\u0437\u0438\u043a",loggedIn:"\u0412\u043b\u0435\u0437\u043b\u0438 \u0441\u0442\u0435 \u043a\u0430\u0442\u043e {{name}}",moderator:"\u041c\u043e\u0434\u0435\u0440\u0430\u0442\u043e\u0440",more:"\u041f\u043e\u0432\u0435\u0447\u0435",name:"\u0418\u043c\u0435",noDevice:"\u041d\u044f\u043c\u0430",selectAudioOutput:"\u0417\u0432\u0443\u043a\u043e\u0432 \u0438\u0437\u0445\u043e\u0434",selectCamera:"\u041a\u0430\u043c\u0435\u0440\u0430",selectMic:"\u041c\u0438\u043a\u0440\u043e\u0444\u043e\u043d",startAudioMuted:"\u0412\u0441\u0438\u0447\u043a\u0438 \u0437\u0430\u043f\u043e\u0447\u0432\u0430\u0442 \u0437\u0430\u0433\u043b\u0443\u0448\u0435\u043d\u0438",startVideoMuted:"\u0412\u0441\u0438\u0447\u043a\u0438 \u0437\u0430\u043f\u043e\u0447\u0432\u0430\u0442 \u0441\u043a\u0440\u0438\u0442\u0438",title:"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438"},settingsView:{alertOk:"\u041f\u043e\u0442\u0432\u044a\u0440\u0434\u0438",alertTitle:"\u0412\u043d\u0438\u043c\u0430\u043d\u0438\u0435",alertURLText:"\u0412\u044a\u0432\u0435\u0434\u0435\u043d\u0430\u0442\u0430 \u0432\u0440\u044a\u0437\u043a\u0430 \u0437\u0430 \u0441\u044a\u0440\u0432\u044a\u0440 \u0435 \u043d\u0435\u0432\u0430\u043b\u0438\u0434\u043d\u0430",buildInfoSection:"\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0437\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u0430\u0442\u0430",conferenceSection:"\u041a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f",displayName:"\u0418\u043c\u0435",email:"\u041f\u043e\u0449\u0430",header:"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438",profileSection:"\u041f\u0440\u043e\u0444\u0438\u043b",serverURL:"\u041b\u0438\u043d\u043a \u043d\u0430 \u0441\u044a\u0440\u0432\u044a\u0440\u0430",startWithAudioMuted:"\u0417\u0430\u043f\u043e\u0447\u043d\u0438 \u0441\u044a\u0441 \u0441\u043f\u0440\u044f\u043d \u0437\u0432\u0443\u043a",startWithVideoMuted:"\u0417\u0430\u043f\u043e\u0447\u043d\u0438 \u0441\u044a\u0441 \u0441\u043f\u0440\u044f\u043d\u043e \u0432\u0438\u0434\u0435\u043e",version:"\u0412\u0435\u0440\u0441\u0438\u044f"},share:{dialInfoText:"\n\n=====\n\n\u0418\u0441\u043a\u0430\u0442\u0435 \u0434\u0430 \u043d\u0430\u0431\u0435\u0440\u0435\u0442\u0435 \u043e\u0442 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430?\n\n{{defaultDialInNumber}}\u0418\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u0439\u0442\u0435 \u0442\u043e\u0437\u0438 \u043b\u0438\u043d\u043a \u0437\u0430 \u043f\u043e\u0432\u0435\u0447\u0435 \u043d\u043e\u043c\u0435\u0440\u0430\n{{dialInfoPageUrl}}",mainText:"\u0418\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u0439\u0442\u0435 \u043b\u0438\u043d\u043a\u0430 \u0437\u0430 \u0434\u0430 \u0432\u043b\u0435\u0437\u0435\u0442\u0435 \u0432 \u0441\u0440\u0435\u0449\u0430\u0442\u0430:\n{{roomUrl}}"},speaker:"\u0413\u043e\u0432\u043e\u0440\u0435\u0449",speakerStats:{hours:"{{count}}\u0447",minutes:"{{count}}\u043c\u0438\u043d",name:"\u0418\u043c\u0435",seconds:"{{count}}\u0441\u0435\u043a",speakerStats:"\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u043d\u0430 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0435\u043b\u044f",speakerTime:"\u0412\u0440\u0435\u043c\u0435 \u043d\u0430 \u0433\u043e\u0432\u043e\u0440\u0435\u043d\u0435"},startupoverlay:{policyText:" ",title:"\u201e{{app}}\u201c \u0441\u0435 \u043d\u0443\u0436\u0434\u0430\u0435 \u043e\u0442 \u0434\u043e\u0441\u0442\u044a\u043f \u0434\u043e \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u0430 \u0438 \u043a\u0430\u043c\u0435\u0440\u0430\u0442\u0430."},suspendedoverlay:{rejoinKeyTitle:"\u041f\u043e\u0432\u0442\u043e\u0440\u043d\u043e \u043f\u0440\u0438\u0441\u044a\u0435\u0434\u0438\u043d\u044f\u0432\u0430\u043d\u0435",text:"\u041d\u0430\u0442\u0438\u0441\u043d\u0435\u0442\u0435 \u0431\u0443\u0442\u043e\u043d\u0430 \u041f\u043e\u0432\u0442\u043e\u0440\u043d\u043e \u043f\u0440\u0438\u0441\u044a\u0435\u0434\u0438\u043d\u044f\u0432\u0430\u043d\u0435, \u0437\u0430 \u0434\u0430 \u0441\u0435 \u0441\u0432\u044a\u0440\u0436\u0435\u0442\u0435 \u043e\u0442\u043d\u043e\u0432\u043e.",title:"\u0412\u0430\u0448\u0438\u044f\u0442 \u0432\u0438\u0434\u0435\u043e \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440 \u0431\u0435\u0448\u0435 \u043f\u0440\u0435\u043a\u044a\u0441\u043d\u0430\u0442, \u0442\u044a\u0439 \u043a\u0430\u0442\u043e \u043a\u043e\u043c\u043f\u044e\u0442\u044a\u0440\u044a\u0442 \u0412\u0438 \u0437\u0430\u0441\u043f\u0430."},toolbar:{accessibilityLabel:{audioOnly:"\u041f\u0443\u0441\u043a\u0430\u043d\u0435 \u043d\u0430 \u0440\u0435\u0436\u0438\u043c \u0441\u0430\u043c\u043e \u0441 \u0437\u0432\u0443\u043a",audioRoute:"",callQuality:"\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 \u043a\u0430\u0447\u0435\u0441\u0442\u043e\u0442\u043e \u043d\u0430 \u043e\u0431\u0430\u0436\u0434\u0430\u043d\u0435\u0442\u043e",cc:"\u041f\u0443\u0441\u043a\u0430\u043d\u0435 \u043d\u0430 \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u0438",chat:"\u0410\u043a\u0442\u0438\u0432\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043f\u0440\u043e\u0437\u043e\u0440\u0435\u0446 \u0437\u0430 \u0441\u044a\u043e\u0431\u0449\u0435\u043d\u0438\u044f",document:"\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0441\u043f\u043e\u0434\u0435\u043b\u0435\u043d \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442",feedback:"",fullScreen:"\u041f\u0443\u0441\u043a\u0430\u043d\u0435/\u0421\u043f\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0438\u0437\u0433\u043b\u0435\u0434 \u0432 \u0446\u044f\u043b \u0435\u043a\u0440\u0430\u043d",hangup:"\u041d\u0430\u043f\u0443\u0441\u043a\u0430\u043d\u0435 \u043d\u0430 \u0441\u0440\u0435\u0449\u0430\u0442\u0430",invite:"\u041f\u043e\u043a\u0430\u043d\u0435\u0442\u0435 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u0446\u0438",kick:"\u0418\u0437\u0433\u043e\u043d\u0438 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a",localRecording:"\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438 \u0437\u0430 \u043b\u043e\u043a\u0430\u043b\u0435\u043d \u0437\u0430\u043f\u0438\u0441",lockRoom:"\u0421\u043c\u044f\u043d\u0430 \u043f\u0430\u0440\u043e\u043b\u0430 \u043d\u0430 \u0441\u0440\u0435\u0449\u0430",moreActions:"\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u043c\u0435\u043d\u044e \u0441 \u043f\u043e\u0432\u0435\u0447\u0435 \u043e\u043f\u0446\u0438\u0438",moreActionsMenu:"\u041c\u0435\u043d\u044e \u0441 \u043f\u043e\u0432\u0435\u0447\u0435 \u043e\u043f\u0446\u0438\u0438",mute:"\u041f\u0443\u0441\u043a\u0430\u043d\u0435/\u0441\u043f\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0432\u0438\u0434\u0435\u043e\u0442\u043e",pip:"\u041f\u0443\u0441\u043a\u0430\u043d\u0435 \u043d\u0430 \u041a\u0430\u0440\u0442\u0438\u043d\u0430-\u0432-\u041a\u0430\u0440\u0442\u0438\u043d\u0430",profile:"\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043f\u0440\u043e\u0444\u0438\u043b\u0430",raiseHand:"\u0421\u043c\u044f\u043d\u0430 \u0438\u0441\u043a\u0430\u043d\u0435 \u043d\u0430 \u0434\u0443\u043c\u0430\u0442\u0430",recording:"\u041f\u0443\u0441\u043a\u0430\u043d\u0435/\u0441\u043f\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0437\u0430\u043f\u0438\u0441",remoteMute:"\u0417\u0430\u0433\u043b\u0443\u0448\u0438 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a",Settings:"\u041f\u0440\u043e\u043c\u044f\u043d\u0430 \u043d\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438",sharedvideo:"\u0421\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435 \u043d\u0430 YouTube \u0432\u0438\u0434\u0435\u043e",shareRoom:"",shareYourScreen:"\u0421\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435 \u043d\u0430 \u0435\u043a\u0440\u0430\u043d\u0430",shortcuts:"\u0411\u044a\u0440\u0437\u0438 \u043a\u043b\u0430\u0432\u0438\u0448\u0438",show:"",speakerStats:"\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438 \u0437\u0430 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u0446\u0438\u0442\u0435",tileView:"",toggleCamera:"",videomute:"\u041f\u0443\u0441\u043a\u0430\u043d\u0435/\u0441\u043f\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0432\u0438\u0434\u0435\u043e\u0442\u043e",videoblur:"\u041f\u0443\u0441\u043a\u0430\u043d\u0435/\u0441\u043f\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0437\u0430\u043c\u044a\u0433\u043b\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u0432\u0438\u0434\u0435\u043e\u0442\u043e"},addPeople:"\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u0446\u0438 \u0432 \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440\u0430",audioOnlyOff:"\u0421\u043f\u0438\u0440\u0430\u043d\u0435 \u0440\u0435\u0436\u0438\u043c\u0430 \u0441 \u043d\u0438\u0441\u044a\u043a \u0442\u0440\u0430\u0444\u0438\u043a",audioOnlyOn:"\u041f\u0443\u0441\u043a\u0430\u043d\u0435 \u0440\u0435\u0436\u0438\u043c\u0430 \u0441 \u043d\u0438\u0441\u044a\u043a \u0442\u0440\u0430\u0444\u0438\u043a",audioRoute:"\u0418\u0437\u0431\u0435\u0440\u0435\u0442\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0437\u0430 \u0437\u0432\u0443\u043a",authenticate:"\u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f",callQuality:"\u041f\u0440\u043e\u043c\u044f\u043d\u0430 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e\u0442\u043e \u043d\u0430 \u0432\u0438\u0434\u0435\u043e\u0442\u043e",chat:"\u041e\u0442\u0432\u0430\u0440\u044f\u043d\u0435/\u0437\u0430\u0442\u0432\u0430\u0440\u044f\u043d\u0435 \u043d\u0430 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u0438\u0442\u0435 \u0441\u044a\u043e\u0431\u0449\u0435\u043d\u0438\u044f",closeChat:"\u0417\u0430\u0442\u0432\u0430\u0440\u044f\u043d\u0435 \u043d\u0430 \u0441\u044a\u043e\u0431\u0449\u0435\u043d\u0438\u044f\u0442\u0430",documentClose:"\u0417\u0430\u0442\u0432\u0430\u0440\u044f\u043d\u0435 \u043d\u0430 \u0441\u043f\u043e\u0434\u0435\u043b\u0435\u043d\u0438\u044f\u0442 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442",documentOpen:"\u041e\u0442\u0432\u0430\u0440\u044f\u043d\u0435 \u043d\u0430 \u0441\u043f\u043e\u0434\u0435\u043b\u0435\u043d \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442",enterFullScreen:"\u0412\u0438\u0436\u0442\u0435 \u043d\u0430 \u0446\u044f\u043b \u0435\u043a\u0440\u0430\u043d",enterTileView:"\u0412\u043b\u0438\u0437\u0430\u043d\u0435 \u0432 \u0438\u0437\u0433\u043b\u0435\u0434 \u0433\u0430\u043b\u0435\u0440\u0438\u044f",exitFullScreen:"\u0418\u0437\u0445\u043e\u0434 \u043e\u0442 \u0446\u044f\u043b \u0435\u043a\u0440\u0430\u043d",exitTileView:"\u0421\u043f\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0438\u0437\u0433\u043b\u0435\u0434 \u0433\u0430\u043b\u0435\u0440\u0438\u044f",feedback:"\u041e\u0442\u0437\u0438\u0432\u0438",hangup:"\u041d\u0430\u043f\u0443\u0441\u043a\u0430\u043d\u0435",invite:"\u041f\u043e\u043a\u0430\u043d\u0435\u0442\u0435 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u0446\u0438",login:"\u0412\u043b\u0435\u0437",logout:"\u0418\u0437\u0445\u043e\u0434",lowerYourHand:"\u041c\u0430\u0445\u043d\u0438 \u0438\u0441\u043a\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0434\u0443\u043c\u0430\u0442\u0430",moreActions:"\u041e\u0449\u0435 \u043e\u043f\u0446\u0438\u0438",mute:"\u0421\u043f\u0438\u0440\u0430\u043d\u0435/\u043f\u0443\u0441\u043a\u0430\u043d\u0435 \u043d\u0430 \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u0430",openChat:"\u041e\u0442\u0432\u043e\u0440\u0438 \u0441\u044a\u043e\u0431\u0449\u0435\u043d\u0438\u044f\u0442\u0430",pip:"\u041f\u0443\u0441\u043d\u0438 \u041a\u0430\u0440\u0442\u0438\u043d\u0430-\u0432-\u041a\u0430\u0440\u0442\u0438\u043d\u0430",profile:"\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043f\u0440\u043e\u0444\u0438\u043b\u0430",raiseHand:"\u0412\u0434\u0438\u0433\u0430\u043d\u0435/\u0441\u0432\u0430\u043b\u044f\u043d\u0435 \u043d\u0430 \u0440\u044a\u043a\u0430",raiseYourHand:"\u041f\u043e\u0438\u0441\u043a\u0430\u0439 \u0434\u0443\u043c\u0430\u0442\u0430",Settings:"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438",sharedvideo:"\u041f\u0443\u0441\u043a\u0430\u043d\u0435/\u0441\u043f\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0441\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435\u0442\u043e \u043d\u0430 \u0435\u043a\u0440\u0430\u043d\u0430",shareRoom:"\u0414\u043e\u0431\u0430\u0432\u0435\u0442\u0435 \u043d\u044f\u043a\u043e\u0433\u043e",shortcuts:"\u0412\u0438\u0436 \u0431\u044a\u0440\u0437\u0438\u0442\u0435 \u043a\u043b\u0430\u0432\u0438\u0448\u0438",speakerStats:"\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u0437\u0430 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0435\u043b\u0438\u0442\u0435",startScreenSharing:"\u0417\u0430\u043f\u043e\u0447\u043d\u0438 \u0441\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435 \u043d\u0430 \u0435\u043a\u0440\u0430\u043d\u0430",startSubtitles:"\u041f\u0443\u0441\u043a\u0430\u043d\u0435 \u043d\u0430 \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u0438",stopScreenSharing:"\u0421\u043f\u0438\u0440\u0430\u043d\u0435 \u0441\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435 \u043d\u0430 \u0435\u043a\u0440\u0430\u043d\u0430",stopSubtitles:"\u0421\u043f\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u0438",stopSharedVideo:"\u0421\u043f\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 YouTube \u0432\u0438\u0434\u0435\u043e",talkWhileMutedPopup:"\u041e\u043f\u0438\u0442\u0432\u0430\u0442\u0435 \u0441\u0435 \u0434\u0430 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0435? \u0412 \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u044a\u0442 \u0412\u0438 \u0435 \u0437\u0430\u0433\u043b\u0443\u0448\u0435\u043d.",tileViewToggle:"\u041f\u0440\u0435\u0432\u043a\u043b\u044e\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u0438\u0437\u0433\u043b\u0435\u0434 \u0433\u0430\u043b\u0435\u0440\u0438\u044f",toggleCamera:"\u041f\u0443\u0441\u043a\u0430\u043d\u0435/\u0441\u043f\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043a\u0430\u043c\u0435\u0440\u0430",videomute:"\u041f\u0443\u0441\u043a\u0430\u043d\u0435/\u0441\u043f\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043a\u0430\u043c\u0435\u0440\u0430\u0442\u0430",startvideoblur:"\u0417\u0430\u043c\u044a\u0433\u043b\u0438 \u0444\u043e\u043d\u0430 \u043c\u0438",stopvideoblur:"\u0421\u043f\u0438\u0440\u0430\u043d\u0435 \u0437\u0430\u043c\u044a\u0433\u043b\u044f\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0444\u043e\u043d\u0430"},transcribing:{ccButtonTooltip:"\u041f\u0443\u0441\u043a\u0430\u043d\u0435 / \u0421\u043f\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u0438",error:"\u0413\u0440\u0435\u0448\u043a\u0430 \u043f\u0440\u0438 \u043e\u043f\u0438\u0442 \u0437\u0430 \u0442\u0440\u0430\u043d\u0441\u043a\u0440\u0438\u0431\u0438\u0440\u0430\u043d\u0435. \u041c\u043e\u043b\u044f \u043e\u043f\u0438\u0442\u0430\u0439\u0442\u0435 \u043e\u0442\u043d\u043e\u0432\u043e.",expandedLabel:"\u0422\u0440\u0430\u043d\u0441\u043a\u0440\u0438\u0431\u0438\u0440\u0430\u043d\u0435\u0442\u043e \u0435 \u043f\u0443\u0441\u043d\u0430\u0442\u043e",failedToStart:"\u0422\u0440\u0430\u043d\u0441\u043a\u0440\u0438\u0431\u0438\u0440\u0430\u043d\u0435\u0442\u043e \u043d\u0435 \u0443\u0441\u043f\u044f \u043f\u0440\u0438 \u043f\u0443\u0441\u043a\u0430\u043d\u0435",labelToolTip:"\u0422\u0430\u0437\u0438 \u0441\u0440\u0435\u0449\u0430 \u0441\u0435 \u0442\u0440\u0430\u043d\u0441\u043a\u0440\u0438\u0431\u0438\u0440\u0430",off:"\u0422\u0440\u0430\u043d\u0441\u043a\u0440\u0438\u0431\u0438\u0440\u0430\u043d\u0435\u0442\u043e \u0441\u043f\u0440\u044f",pending:"\u0421\u0442\u0430\u0440\u0442\u0438\u0440\u0430 \u0441\u0435 \u0442\u0440\u0430\u043d\u0441\u043a\u0440\u0438\u0431\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0441\u0440\u0435\u0449\u0430\u0442\u0430...",start:"\u0417\u0430\u043f\u043e\u0447\u0432\u0430 \u043f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u0438",stop:"\u0421\u043f\u0438\u0440\u0430 \u043f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u0438",tr:"\u0421\u0423\u0411"},userMedia:{androidGrantPermissions:"\u0418\u0437\u0431\u0435\u0440\u0435\u0442\u0435 \u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0432\u0430\u043d\u0435, \u043a\u043e\u0433\u0430\u0442\u043e \u0431\u0440\u0430\u0443\u0437\u044a\u0440\u044a\u0442 \u0412\u0438 \u043f\u043e\u043c\u043e\u043b\u0438 \u0437\u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435.",chromeGrantPermissions:"\u0418\u0437\u0431\u0435\u0440\u0435\u0442\u0435 \u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0432\u0430\u043d\u0435, \u043a\u043e\u0433\u0430\u0442\u043e \u0431\u0440\u0430\u0443\u0437\u044a\u0440\u044a\u0442 \u0412\u0438 \u043f\u043e\u043c\u043e\u043b\u0438 \u0437\u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435.",edgeGrantPermissions:"\u0418\u0437\u0431\u0435\u0440\u0435\u0442\u0435 \u0414\u0430, \u043a\u043e\u0433\u0430\u0442\u043e \u0431\u0440\u0430\u0443\u0437\u044a\u0440\u044a\u0442 \u0412\u0438 \u043f\u043e\u043c\u043e\u043b\u0438 \u0437\u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435.",electronGrantPermissions:"\u041c\u043e\u043b\u044f, \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u0442\u0435 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u043a\u0430\u043c\u0435\u0440\u0430\u0442\u0430 \u0438 \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u0430",firefoxGrantPermissions:"\u0418\u0437\u0431\u0435\u0440\u0435\u0442\u0435 \u0421\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435 \u043d\u0430 \u0438\u0437\u0431\u0440\u0430\u043d\u043e\u0442\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e, \u043a\u043e\u0433\u0430\u0442\u043e \u0431\u0440\u0430\u0443\u0437\u044a\u0440\u044a\u0442 \u0412\u0438 \u043f\u043e\u043c\u043e\u043b\u0438 \u0437\u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435.",iexplorerGrantPermissions:"\u0418\u0437\u0431\u0435\u0440\u0435\u0442\u0435 \u0414\u043e\u0431\u0440\u0435, \u043a\u043e\u0433\u0430\u0442\u043e \u0431\u0440\u0430\u0443\u0437\u044a\u0440\u044a\u0442 \u0412\u0438 \u043f\u043e\u043c\u043e\u043b\u0438 \u0437\u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435.",nwjsGrantPermissions:"\u041c\u043e\u043b\u044f, \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u0442\u0435 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u043a\u0430\u043c\u0435\u0440\u0430\u0442\u0430 \u0438 \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u0430",operaGrantPermissions:"\u0418\u0437\u0431\u0435\u0440\u0435\u0442\u0435 \u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0432\u0430\u043d\u0435, \u043a\u043e\u0433\u0430\u0442\u043e \u0431\u0440\u0430\u0443\u0437\u044a\u0440\u044a\u0442 \u0412\u0438 \u043f\u043e\u043c\u043e\u043b\u0438 \u0437\u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435.","react-nativeGrantPermissions":"\u0418\u0437\u0431\u0435\u0440\u0435\u0442\u0435 \u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0432\u0430\u043d\u0435, \u043a\u043e\u0433\u0430\u0442\u043e \u0431\u0440\u0430\u0443\u0437\u044a\u0440\u044a\u0442 \u0412\u0438 \u043f\u043e\u043c\u043e\u043b\u0438 \u0437\u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435.",safariGrantPermissions:"\u0418\u0437\u0431\u0435\u0440\u0435\u0442\u0435 \u0414\u043e\u0431\u0440\u0435, \u043a\u043e\u0433\u0430\u0442\u043e \u0431\u0440\u0430\u0443\u0437\u044a\u0440\u044a\u0442 \u0412\u0438 \u043f\u043e\u043c\u043e\u043b\u0438 \u0437\u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435."},videoSIPGW:{busy:"\u0420\u0430\u0431\u043e\u0442\u0438\u043c \u043f\u043e \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u0440\u0435\u0441\u0443\u0440\u0441\u0438. \u041c\u043e\u043b\u044f, \u043e\u043f\u0438\u0442\u0430\u0439\u0442\u0435 \u0441\u043b\u0435\u0434 \u043d\u044f\u043a\u043e\u043b\u043a\u043e \u043c\u0438\u043d\u0443\u0442\u0438.",busyTitle:"\u0423\u0441\u043b\u0443\u0433\u0430\u0442\u0430 \u0437\u0430 \u0441\u0442\u0430\u0438 \u0432 \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u0435 \u0437\u0430\u0435\u0442\u0430",errorAlreadyInvited:"{{displayName}} \u0432\u0435\u0447\u0435 \u0435 \u043f\u043e\u043a\u0430\u043d\u0435\u043d",errorInvite:"\u041a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f\u0442\u0430 \u043d\u0435 \u0435 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0430. \u041c\u043e\u043b\u044f, \u043e\u043f\u0438\u0442\u0430\u0439\u0442\u0435 \u043f\u043e-\u043a\u044a\u0441\u043d\u043e.",errorInviteFailed:"\u0420\u0430\u0431\u043e\u0442\u0438\u043c \u043f\u043e \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c. \u041c\u043e\u043b\u044f, \u043e\u043f\u0438\u0442\u0430\u0439\u0442\u0435 \u043f\u043e-\u043a\u044a\u0441\u043d\u043e.",errorInviteFailedTitle:"\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435\u0442\u043e \u043d\u0430 {{displayName}} \u043d\u0435 \u0443\u0441\u043f\u044f",errorInviteTitle:"\u0413\u0440\u0435\u0448\u043a\u0430 \u043f\u0440\u0438 \u0434\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u0441\u0442\u0430\u044f",pending:"{{displayName}} \u0431\u0435 \u043f\u043e\u043a\u0430\u043d\u0435\u043d"},videoStatus:{audioOnly:"\u0410\u0423\u0414\u0418\u041e",audioOnlyExpanded:"\u0412\u0438\u0435 \u0441\u0442\u0435 \u0432 \u0440\u0435\u0436\u0438\u043c \u043d\u0430 \u043d\u0438\u0441\u044a\u043a \u0442\u0440\u0430\u0444\u0438\u043a. \u0412 \u0442\u043e\u0437\u0438 \u0440\u0435\u0436\u0438\u043c \u0449\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0432\u0430\u0442\u0435 \u0441\u0430\u043c\u043e \u0430\u0443\u0434\u0438\u043e \u0438\u043b\u0438 \u0441\u043f\u043e\u0434\u0435\u043b\u0435\u043d\u0438 \u0435\u043a\u0440\u0430\u043d\u0438.",callQuality:"\u041a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u043d\u0430 \u0432\u0438\u0434\u0435\u043e\u0442\u043e",hd:"\u0412\u041a",hdTooltip:"\u0413\u043b\u0435\u0434\u0430\u0442\u0435 \u0432\u0438\u0441\u043e\u043a\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u043d\u0430 \u0432\u0438\u0434\u0435\u043e\u0442\u043e",highDefinition:"\u0412\u0438\u0441\u043e\u043a\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e",labelTooiltipNoVideo:"\u041d\u044f\u043c\u0430 \u0432\u0438\u0434\u0435\u043e",labelTooltipAudioOnly:"\u041f\u0443\u0441\u043d\u0430\u0442 \u0440\u0435\u0436\u0438\u043c \u043d\u0430 \u043d\u0438\u0441\u044a\u043a \u0442\u0440\u0430\u0444\u0438\u043a",ld:"\u041d\u041a",ldTooltip:"\u0412\u0438\u0436\u0434\u0430\u0442\u0435 \u043d\u0438\u0441\u043a\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u043d\u0430 \u0432\u0438\u0434\u0435\u043e\u0442\u043e",lowDefinition:"\u041d\u0438\u0441\u043a\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e",onlyAudioAvailable:"\u0421\u0430\u043c\u043e \u0430\u0443\u0434\u0438\u043e \u0435 \u043d\u0430\u043b\u0438\u0447\u043d\u043e",onlyAudioSupported:"\u0422\u043e\u0437\u0438 \u0431\u0440\u0430\u0443\u0437\u044a\u0440 \u043f\u043e\u0434\u0434\u044a\u0440\u0436\u0430 \u0441\u0430\u043c\u043e \u0430\u0443\u0434\u0438\u043e.",p2pEnabled:"\u0412\u043a\u043b. \u0434\u0438\u0440\u0435\u043a\u0442\u043d\u043e \u0441\u0432\u044a\u0440\u0437\u0432\u0430\u043d\u0435",p2pVideoQualityDescription:"\u0412 \u0434\u0438\u0440\u0435\u043a\u0442\u043d\u0430 \u0432\u0440\u044a\u0437\u043a\u0430, \u043f\u043e\u043b\u0443\u0447\u0430\u0432\u0430\u043d\u043e\u0442\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0441\u043c\u0435\u043d\u044f \u043c\u0435\u0436\u0434\u0443 \u0432\u0438\u0441\u043e\u043a\u043e \u0438 \u0441\u0430\u043c\u043e \u0430\u0443\u0434\u0438\u043e. \u041e\u0441\u0442\u0430\u043d\u0430\u043b\u0438\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0449\u0435 \u0441\u0430 \u0434\u043e\u0441\u0442\u044a\u043f\u043d\u0438 \u043a\u043e\u0433\u0430\u0442\u043e \u0432\u0440\u044a\u0437\u043a\u0430\u0442\u0430 \u043d\u0435 \u0435 \u0434\u0438\u0440\u0435\u043a\u0442\u043d\u0430.",recHighDefinitionOnly:"\u0429\u0435 \u0441\u0435 \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0438\u0442\u0430 \u0432\u0438\u0441\u043e\u043a\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e.",sd:"\u0421\u041a",sdTooltip:"\u0413\u043b\u0435\u0434\u0430\u0442\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u043d\u0430 \u0432\u0438\u0434\u0435\u043e\u0442\u043e",standardDefinition:"\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e"},videothumbnail:{domute:"\u0418\u0437\u043a\u043b\u044e\u0447\u0438 \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u0430",flip:"\u041e\u0433\u043b\u0435\u0434\u0430\u043b\u043d\u043e",kick:"\u0418\u0437\u0433\u043e\u043d\u0438",moderator:"\u041c\u043e\u0434\u0435\u0440\u0430\u0442\u043e\u0440",mute:"\u0423\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0430 \u0435 \u0441 \u0438\u0437\u043a\u043b\u044e\u0447\u0435\u043d \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d",muted:"\u0418\u0437\u043a\u043b\u044e\u0447\u0435\u043d \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d",remoteControl:"\u041e\u0442\u0434\u0430\u043b\u0435\u0447\u0435\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435",show:"\u041f\u043e\u043a\u0430\u0436\u0438 \u043d\u0430 \u0433\u043b\u0430\u0432\u043d\u0438\u044f \u0435\u043a\u0440\u0430\u043d",videomute:"\u0423\u0447\u0430\u0441\u0442\u043d\u0438\u043a \u0435 \u0441\u043f\u0440\u044f\u043b \u043a\u0430\u043c\u0435\u0440\u0430\u0442\u0430 \u0441\u0438"},welcomepage:{accessibilityLabel:{join:"\u041d\u0430\u0442\u0438\u0441\u043d\u0435\u0442\u0435 \u0437\u0430 \u0434\u0430 \u0432\u043b\u0435\u0437\u0435\u0442\u0435",roomname:"\u0412\u044a\u0432\u0435\u0434\u0435\u0442\u0435 \u0438\u043c\u0435 \u043d\u0430 \u0441\u0442\u0430\u044f\u0442\u0430"},appDescription:"\u0425\u0430\u0439\u0434\u0435 \u043d\u0430 \u0432\u0438\u0434\u0435\u043e \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0435 \u0441 \u0446\u0435\u043b\u0438\u044f\u0442 \u0432\u0438 \u0435\u043a\u0438\u043f. \u0412\u0441\u044a\u0449\u043d\u043e\u0441\u0442, \u043f\u043e\u043a\u0430\u043d\u0435\u0442\u0435 \u0432\u0441\u0438\u0447\u043a\u0438 \u043f\u043e\u0437\u043d\u0430\u0442\u0438. {{app}} \u0435 \u043d\u0430\u043f\u044a\u043b\u043d\u043e \u0437\u0430\u0449\u0438\u0442\u0435\u043d\u043e, 100% \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0437\u0430 \u0432\u0438\u0434\u0435\u043e\u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438 \u0441 \u043e\u0442\u0432\u043e\u0440\u0435\u043d \u043a\u043e\u0434 \u043a\u043e\u0435\u0442\u043e \u043c\u043e\u0436\u0435 \u0434\u0430 \u043f\u043e\u043b\u0437\u0432\u0430\u0442\u0435 \u043f\u043e \u0446\u044f\u043b \u0434\u0435\u043d, \u0432\u0441\u0435\u043a\u0438 \u0434\u0435\u043d, \u0431\u0435\u0437\u043f\u043b\u0430\u0442\u043d\u043e - \u0431\u0435\u0437 \u0434\u0430 \u0432\u0438 \u0435 \u043d\u0443\u0436\u043d\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f.",audioVideoSwitch:{audio:"\u0413\u043b\u0430\u0441",video:"\u0412\u0438\u0434\u0435\u043e"},calendar:"\u041a\u0430\u043b\u0435\u043d\u0434\u0430\u0440",connectCalendarButton:"\u0421\u0432\u044a\u0440\u0436\u0435\u0442\u0435 \u0432\u0430\u0448\u0438\u044f \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440",connectCalendarText:"\u0421\u0432\u044a\u0440\u0436\u0435\u0442\u0435 \u0432\u0430\u0448\u0438\u044f \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440 \u0437\u0430 \u0434\u0430 \u0432\u0438\u0434\u0438\u0442\u0435 \u0441\u0440\u0435\u0449\u0438\u0442\u0435 \u0441\u0438 \u0432 {{app}}. \u0414\u043e\u0431\u0430\u0432\u044f\u0439\u043a\u0438 {{provider}} \u0441\u0440\u0435\u0449\u0438\u0442\u0435 \u0432 \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u0430 \u0441\u0438 \u0449\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0434\u0430 \u0433\u0438 \u0441\u0442\u0430\u0440\u0438\u0440\u0430\u0442\u0435 \u0441 \u0435\u0434\u043d\u043e \u0434\u043e\u043a\u043e\u0441\u0432\u0430\u043d\u0435.",enterRoomTitle:"\u0417\u0430\u043f\u043e\u0447\u043d\u0438 \u043d\u043e\u0432\u0430 \u0441\u0440\u0435\u0449\u0430",onlyAsciiAllowed:"\u0418\u043c\u0435\u0442\u043e \u043d\u0430 \u0441\u0440\u0435\u0449\u0430\u0442\u0430 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u044a\u0434\u044a\u0440\u0436\u0430 \u0441\u0430\u043c\u043e \u043b\u0430\u0442\u0438\u043d\u0441\u043a\u0438 \u0431\u0443\u043a\u0432\u0438 \u0438 \u0446\u0438\u0444\u0440\u0438.",go:"\u041d\u0410\u041f\u0420\u0415\u0414",join:"\u041f\u0420\u0418\u0421\u042a\u0415\u0414\u0418\u041d\u042f\u0412\u0410\u041d\u0415",info:"\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f",privacy:"\u041f\u043e\u0432\u0435\u0440\u0438\u0442\u0435\u043b\u043d\u043e\u0441\u0442",recentList:"\u0421\u043a\u043e\u0440\u043e\u0448\u043d\u0438 \u0441\u0440\u0435\u0449\u0438",recentListDelete:"\u0418\u0437\u0442\u0440\u0438\u0439",recentListEmpty:"\u0421\u043f\u0438\u0441\u044a\u043a\u0430 \u0441 \u0441\u043a\u043e\u0440\u043e\u0448\u043d\u0438 \u0441\u0440\u0435\u0449\u0438 \u0435 \u043f\u0440\u0430\u0437\u0435\u043d. \u0421\u043b\u0435\u0434 \u043a\u0430\u0442\u043e \u0443\u0447\u0430\u0441\u0442\u0432\u0430\u0442\u0435 \u0432 \u043d\u044f\u043a\u043e\u044f \u0441\u0440\u0435\u0449\u0430, \u0449\u0435 \u044f \u043d\u0430\u043c\u0435\u0440\u0438\u0442\u0435 \u0442\u0443\u043a.",reducedUIText:"\u0414\u043e\u0431\u0440\u0435 \u0434\u043e\u0448\u043b\u0438 \u0432 {{app}}!",roomname:"\u0412\u044a\u0432\u0435\u0434\u0435\u0442\u0435 \u0438\u043c\u0435 \u043d\u0430 \u0441\u0442\u0430\u044f\u0442\u0430",roomnameHint:"\u0412\u044a\u0432\u0435\u0434\u0435\u0442\u0435 \u0438\u043c\u0435\u0442\u043e \u0438\u043b\u0438 \u0432\u0440\u044a\u0437\u043a\u0430\u0442\u0430 \u043d\u0430 \u0441\u0442\u0430\u044f\u0442\u0430 \u0432 \u043a\u043e\u044f\u0442\u043e \u0438\u0441\u043a\u0430\u0442\u0435 \u0434\u0430 \u0432\u043b\u0435\u0437\u0435\u0442\u0435. \u0421\u044a\u0449\u043e \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0438 \u0438\u0437\u043c\u0438\u0441\u043b\u0438\u0442\u0435 \u0438\u043c\u0435. \u0421\u0430\u043c\u043e \u0433\u043e \u0441\u043f\u043e\u0434\u0435\u043b\u0435\u0442\u0435 \u0441 \u043d\u044f\u043a\u043e\u0439, \u0437\u0430 \u0434\u0430 \u043c\u043e\u0436\u0435 \u0438 \u0442\u043e\u0439 \u0434\u0430 \u0432\u044a\u0432\u0435\u0434\u0435 \u0441\u044a\u0449\u043e\u0442\u043e \u0438\u043c\u0435 \u0437\u0430 \u0434\u0430 \u0441\u0435 \u0441\u0440\u0435\u0449\u043d\u0435\u0442\u0435.",sendFeedback:"\u0418\u0437\u043f\u0440\u0430\u0449\u0430\u043d\u0435 \u043d\u0430 \u043e\u0442\u0437\u0438\u0432\u0438",terms:"\u0423\u0441\u043b\u043e\u0432\u0438\u044f",title:"\u0421\u0438\u0433\u0443\u0440\u043d\u0430, \u0441 \u043c\u043d\u043e\u0433\u043e \u0432\u044a\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438, \u0438 \u043d\u0430\u043f\u044a\u043b\u043d\u043e \u0431\u0435\u0437\u043f\u043b\u0430\u0442\u043d\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u0437\u0430 \u0432\u0438\u0434\u0435\u043e \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438"}}},647,[]); -__d(function(s,i,h,c,e,n,a){e.exports={en:"Englisch",af:"",az:"",bg:"Bulgarisch",cs:"",de:"Deutsch",el:"",eo:"Esperanto",es:"Spanisch",fr:"Franz\xf6sisch",hy:"Armenisch",it:"Italienisch",ja:"",ko:"",nb:"Norwegisch (Bokmal)",oc:"Okzitanisch",pl:"Polnisch",ptBR:"Portugiesisch (Brasilien)",ru:"Russisch",sk:"Slowakisch",sl:"Slowenisch",sv:"Schwedisch",tr:"T\xfcrkisch",vi:"",zhCN:"Chinesisch (China)"}},648,[]); -__d(function(e,n,i,r,t,a,s){t.exports={addPeople:{add:"Einladen",countryNotSupported:"Wir unterst\xfctzen dieses Land noch nicht.",countryReminder:"Telefonnummer nicht in den USA? Bitte sicherstellen, dass die Telefonnummer mit dem L\xe4ndercode beginnt.",disabled:"Sie k\xf6nnen keine Teilnehmer einladen.",failedToAdd:"Fehler beim Hinzuf\xfcgen von Teilnehmern",footerText:"Abgehender Ruf ist deaktiviert.",loading:"Suche nach Teilnehmern und Telefonnummern",loadingNumber:"Telefonnummer wird \xfcberpr\xfcft",loadingPeople:"Suche nach einzuladenden Teilnehmern",noResults:"Keine passenden Ergebnisse",noValidNumbers:"Telefonnummer eingeben",searchNumbers:"Telefonnummern hinzuf\xfcgen",searchPeople:"Nach Teilnehmern suchen",searchPeopleAndNumbers:"Nach Teilnehmen suchen oder deren Telefonnummern hinzuf\xfcgen",telephone:"Telefon: {{number}}",title:"Teilnehmer zu dieser Konferenz einladen"},audioDevices:{bluetooth:"Bluetooth",headphones:"Kopfh\xf6rer",phone:"Telefon",speaker:"Sprecher"},audioOnly:{audioOnly:"Nur Audio"},calendarSync:{addMeetingURL:"Meeting-Link hinzuf\xfcgen",confirmAddLink:"Wollen Sie einen Jitsi-Link zu dieser Veranstaltung hinzuf\xfcgen?",error:{appConfiguration:"Kalenderintegration ist nicht richtig konfiguriert.",generic:"Ein Fehler ist aufgetreten. Pr\xfcfen Sie Ihre Kalendereinstellungen oder versuchen Sie, den Kalender zu aktualisieren.",notSignedIn:"Ein Fehler ist w\xe4hrend der Authentifizierung zur Anzeige von Kalendererveranstaltungen aufgetreten. Pr\xfcfen Sie Ihre Kalendereinstellungen oder versuchen Sie, sich erneut anzumelden."},join:"Teilnehmen",joinTooltip:"Am Meeting teilnehmen",nextMeeting:"N\xe4chste Konferenz",noEvents:"Es sind keine bevorstehenden Veranstaltungen geplant.",ongoingMeeting:"Laufendes Meeting",permissionButton:"Einstellungen \xf6ffnen",permissionMessage:"Die App ben\xf6tigt Zugriff auf den Kalender um die Termine und Konferenzen anzuzeigen.",refresh:"Kalender aktualisieren",today:"Heute"},"\x05calendarSync":{},chat:{error:"",messagebox:"Nachricht eingeben",nickname:{popover:"Name",title:"Geben Sie einen Alias zum Chatten ein"},title:"Chatten"},connectingOverlay:{joiningRoom:"Eine Verbindung zu Ihrem Meeting wird hergestellt\u2026"},connection:{ATTACHED:"Angeh\xe4ngt",AUTHENTICATING:"Anmeldung l\xe4uft",AUTHFAIL:"Authentifizierung fehlgeschlagen",CONNECTED:"Verbunden",CONNECTING:"Verbindung wird hergestellt",CONNFAIL:"Verbindungsaufbau gescheitert",DISCONNECTED:"Getrennt",DISCONNECTING:"Verbindung wird getrennt",ERROR:"Fehler",RECONNECTING:"Es ist ein Netzwerkproblem aufgetreten. Verbinde..."},connectionindicator:{address:"Adresse:",bandwidth:"Gesch\xe4tzte Bandbreite:",bitrate:"Bitrate:",bridgeCount:"Serverzahl: ",connectedTo:"Verbunden mit:",framerate:"Bildwiederholrate:",less:"Weniger anzeigen",localaddress:"Lokale Adresse:",localaddress_plural:"Lokale Adressen:",localport:"Lokaler Port:",localport_plural:"Lokale Ports:",more:"Mehr anzeigen",packetloss:"Paketverlust:",quality:{good:"Gut",inactive:"Inaktiv",lost:"Verloren",nonoptimal:"Nicht optimal",poor:"D\xfcrftig"},remoteaddress:"Entfernte Adresse:",remoteaddress_plural:"Entfernte Adressen:",remoteport:"Entfernter Port:",remoteport_plural:"Entfernte Ports:",resolution:"Aufl\xf6sung:",status:"Verbindung:",transport:"Protokoll:",turn:" (TURN)"},dateUtils:{earlier:"Fr\xfcher",today:"Heute",yesterday:"Gestern"},deepLinking:{appNotInstalled:"Sie ben\xf6tigen die {{app}} App um der Konferenz auf dem Smartphone beizutreten.",description:"Nichts passiert? Wir haben versucht die Konferenz in {{app}} zu \xf6ffnen. Versuchen Sie es erneut oder treten Sie der Konferenz in {{app}} im Web bei.",descriptionWithoutWeb:"",downloadApp:"App herunterladen",launchWebButton:"Im Web \xf6ffnen",openApp:"In der App fortfahren",title:"Die Konferenz wird in {{app}} ge\xf6ffnet...",tryAgainButton:"Erneut mit der nativen Applikation versuchen"},defaultLink:"Bsp.: {{url}}",deviceError:{cameraError:"Fehler beim Zugriff auf die Kamera",cameraPermission:"Fehler beim Bezug der Kamera-Zugriffsberechtigungen",microphoneError:"Fehler beim Zugriff auf das Mikrofon",microphonePermission:"Fehler beim Bezug der Mikrofon-Zugriffsberechtigungen"},deviceSelection:{noPermission:"Berechtigungen nicht erteilt",previewUnavailable:"Keine Vorschau verf\xfcgbar",selectADevice:"Ein Ger\xe4t w\xe4hlen",testAudio:"Pr\xfcfton wiedergeben"},dialog:{accessibilityLabel:{liveStreaming:"Livestream:"},allow:"Erlauben",alreadySharedVideoMsg:"",alreadySharedVideoTitle:"Nur ein geteiltes Video gleichzeitig",applicationWindow:"Anwendungsfenster",Back:"Zur\xfcck",cameraConstraintFailedError:"Ihre Kamera erf\xfcllt die notwendigen Anforderungen nicht.",cameraNotFoundError:"Kamera nicht gefunden.",cameraNotSendingData:"Die Kamera ist nicht verf\xfcgbar. Bitte pr\xfcfen ob eine andere Applikation die Kamera verwendet, eine andere Kamera vom Einstellungs-Menu ausw\xe4hlen oder die Applikation neu laden.",cameraNotSendingDataTitle:"Zugriff auf Kamera nicht m\xf6glich",cameraPermissionDeniedError:"Die Berechtigung zur Verwendung der Kamera wurde nicht erteilt. Sie k\xf6nnen trotzdem an der Konferenz teilnehmen, aber die anderen Teilnehmer k\xf6nnen Sie nicht sehen. Verwenden Sie die Kamera-Schaltfl\xe4che in der Adressleiste um die Berechtigungen zu erteilen.",cameraUnknownError:"Die Kamera kann aus einem unbekannten Grund nicht verwendet werden.",cameraUnsupportedResolutionError:"Die Kamera unterst\xfctzt die erforderliche Aufl\xf6sung nicht.",Cancel:"Abbrechen",close:"Schliessen",conferenceDisconnectMsg:"Pr\xfcfen Sie allenfalls Ihre Netzwerkverbindung. Verbinde in {{seconds}} Sekunden...",conferenceDisconnectTitle:"Ihre Verbindung ist getrennt worden.",conferenceReloadMsg:"Wir versuchen das zu beheben. Verbinde in {{seconds}} Sekunden...",conferenceReloadTitle:"Leider ist etwas schiefgegangen.",confirm:"Best\xe4tigen",confirmNo:"Nein",confirmYes:"Ja",connectError:"Oh! Es hat etwas nicht geklappt und der Konferenz konnte nicht beigetreten werden.",connectErrorWithMsg:"Oh! Es hat etwas nicht geklappt und der Konferenz konnte nicht beigetreten werden: {{msg}}",connecting:"Verbindung wird hergestellt",contactSupport:"Support kontaktieren",copy:"Kopieren",dismiss:"OK",displayNameRequired:"",done:"Fertig",enterDisplayName:"",error:"Fehler",externalInstallationMsg:"Die Bildschirmfreigabeerweiterung muss installiert werden.",externalInstallationTitle:"Erweiterung erforderlich",goToStore:"Zum Store",gracefulShutdown:"Der Dienst steht momentan wegen Wartungsarbeiten nicht zur Verf\xfcgung. Bitte versuchen Sie es sp\xe4ter noch einmal.",IamHost:"Ich bin der Organisator",incorrectRoomLockPassword:"",incorrectPassword:"Benutzername oder Passwort ung\xfcltig",inlineInstallationMsg:"Die Bildschirmfreigabeerweiterung muss installiert werden.",inlineInstallExtension:"Jetzt installieren",internalError:"Oh! Es hat etwas nicht funktioniert. Der folgende Fehler ist aufgetreten: {{error}}",internalErrorTitle:"Interner Fehler",kickMessage:"",kickParticipantButton:"Entfernen",kickParticipantDialog:"Wollen Sie diesen Teilnehmer wirklich entfernen?",kickParticipantTitle:"Teilnehmer stummschalten?",kickTitle:"",liveStreaming:"Live-Streaming",liveStreamingDisabledForGuestTooltip:"G\xe4ste k\xf6nnen kein Live-Streaming starten.",liveStreamingDisabledTooltip:"Starten des Live-Streams deaktiviert.",lockMessage:"Die Konferenz konnte nicht gesperrt werden.",lockRoom:"",lockTitle:"Sperren fehlgeschlagen",logoutQuestion:"Sind Sie sicher, dass Sie sich abmelden und die Konferenz verlassen m\xf6chten?",logoutTitle:"Abmelden",maxUsersLimitReached:"",maxUsersLimitReachedTitle:"",micConstraintFailedError:"Ihr Mikrofon erf\xfcllt die notwendigen Anforderungen nicht.",micNotFoundError:"Mikrofon nicht gefunden.",micNotSendingData:"",micNotSendingDataTitle:"",micPermissionDeniedError:"Die Berechtigung zur Verwendung des Mikrofons wurde nicht erteilt. Sie k\xf6nnen trotzdem an der Konferenz teilnehmen, aber die anderen Teilnehmer k\xf6nnen Sie nicht h\xf6ren. Verwenden Sie die Kamera-Schaltfl\xe4che in der Adressleiste um die Berechtigungen zu erteilen.",micUnknownError:"Das Mikrofon kann aus einem unbekannten Grund nicht verwendet werden.",muteParticipantBody:"Sie k\xf6nnen die Stummschaltung anderer Teilnehmer nicht aufheben, aber ein Teilnehmer kann seine eigene Stummschaltung jederzeit beenden.",muteParticipantButton:"Stummschalten",muteParticipantDialog:"Wollen Sie diesen Teilnehmer wirklich stummschalten? Sie k\xf6nnen die Stummschaltung nicht wieder aufheben, der Teilnehmer kann dies aber jederzeit selbst tun.",muteParticipantTitle:"Teilnehmer stummschalten?",Ok:"OK",passwordLabel:"",passwordNotSupported:"Setzen eines Konferenz-Passworts ist nicht unterst\xfctzt",passwordNotSupportedTitle:"",passwordRequired:"",popupError:"Ihr Browser blockiert Popups von dieser Website. Bitte aktivieren Sie Popups in den Sicherheitseinstellungen des Browsers und versuchen Sie es erneut.",popupErrorTitle:"Popup blockiert",recording:"Aufnahme",recordingDisabledForGuestTooltip:"G\xe4ste k\xf6nnen kein Aufzeichnungen starten.",recordingDisabledTooltip:"Start der Aufzeichnung deaktiviert.",rejoinNow:"Jetzt erneut beitreten",remoteControlAllowedMessage:"{{user}} hat die Anfrage zur Fernsteuerung angenommen.",remoteControlDeniedMessage:"{{user}} hat die Anfrage zur Fernsteuerung verweigert.",remoteControlErrorMessage:"Beim Anfordern der Fernsteuerungsberechtigung von {{user}} ist ein Fehler aufgetreten.",remoteControlRequestMessage:"M\xf6chten Sie {{user}} erlauben den Computer fernzusteuern?",remoteControlShareScreenWarning:"Achtung, wenn Sie die Anfrage genehmigen starten Sie die Bildschirmfreigabe!",remoteControlStopMessage:"Die Fernsteuerung wurde beendet.",remoteControlTitle:"Fernsteuerung",Remove:"Entfernen",removePassword:"",removeSharedVideoMsg:"Sind Sie sicher dass Sie das geteilte Video entfernen m\xf6chten?",removeSharedVideoTitle:"Freigegebenes Video entfernen",reservationError:"Fehler im Reservationssystem",reservationErrorMsg:"Fehler, Nummer: {{code}}, Nachricht: {{msg}}",retry:"Wiederholen",screenSharingFailedToInstall:"Oh! Die Erweiterung f\xfcr die Bildschirmfreigabe konnte nicht installiert werden.",screenSharingFailedToInstallTitle:"Bildschirmfreigabe-Erweiterung konnte nicht installiert werden",screenSharingFirefoxPermissionDeniedError:"Die Bildschirmfreigabe ist leider fehlgeschlagen. Bitte stellen Sie sicher, dass die Berechtigung f\xfcr die Bildschirmfreigabe im Browser erteilt wurde.",screenSharingFirefoxPermissionDeniedTitle:"Die Bildschirmfreigabe konnte nicht gestartet werden.",screenSharingPermissionDeniedError:"Oh! Beim Anfordern der Bildschirmfreigabe-Berechtigungen hat etwas nicht funktioniert. Bitte aktualisieren und erneut versuchen.",serviceUnavailable:"Dienst nicht verf\xfcgbar",sessTerminated:"Konferenz beendet",Share:"Teilen",shareVideoLinkError:"Bitte einen g\xfcltigen YouTube-Link angeben.",shareVideoTitle:"Video teilen",shareYourScreen:"Bildschirm freigeben",shareYourScreenDisabled:"Bildschirmfreigabe deaktiviert.",shareYourScreenDisabledForGuest:"G\xe4ste k\xf6nnen den Bildschirm nicht freigeben.",startLiveStreaming:"Einen Livestream starten",startRecording:"Aufnahme starten",startRemoteControlErrorMessage:"Beim Versuch die Fernsteuerung zu starten ist ein Fehler aufgetreten.",stopLiveStreaming:"Live-Streaming stoppen",stopRecording:"Aufnahme stoppen",stopRecordingWarning:"Sind Sie sicher dass Sie die Aufnahme stoppen m\xf6chten?",stopStreamingWarning:"Sind Sie sicher dass Sie das Live-Streaming stoppen m\xf6chten?",streamKey:"Name/Schl\xfcssel f\xfcr den Stream",Submit:"OK",thankYou:"Danke f\xfcr die Verwendung von {{appName}}!",token:"Token",tokenAuthFailed:"Sie sind nicht berechtigt dieser Konferenz beizutreten.",tokenAuthFailedTitle:"Authentifizierung fehlgeschlagen",transcribing:"Wird transkribiert",unlockRoom:"",userPassword:"Benutzerpasswort",WaitForHostMsg:"Die Konferenz {{room}} wurde noch nicht gestartet. Wenn Sie der Veranstalter sind, authentifizieren Sie sich. Warten Sie andernfalls, bis der Veranstalter erscheint.",WaitForHostMsgWOk:"Die Konferenz {{room}} wurde noch nicht gestartet. Wenn Sie der Veranstalter sind, dr\xfccken Sie zum Authentifizieren auf OK. Warten Sie andernfalls, bis der Veranstalter erscheint.",WaitingForHost:"Warten auf den Organisator...",Yes:"Ja",yourEntireScreen:"Ganzer Bildschirm"},"\x05dialog":{accessibilityLabel:{}},dialOut:{statusMessage:"ist jetzt {{status}}"},feedback:{average:"Durschnittlich",bad:"Schlecht",detailsLabel:"Sagen Sie uns mehr dazu.",good:"Gut",rateExperience:"Bitte bewerten Sie diese Konferenz",veryBad:"Sehr schlecht",veryGood:"Sehr gut"},incomingCall:{answer:"Antworten",audioCallTitle:"Eingehender Anruf",decline:"OK",productLabel:"von Jitsi Meet",videoCallTitle:"Eingehender Videoanruf"},info:{accessibilityLabel:"Informationen anzeigen",addPassword:"",cancelPassword:"",conferenceURL:"Link:",country:"Land",dialANumber:"Um am Metting teilzunehmen, m\xfcssen Sie eine dieser Nummern w\xe4hlen und dann die PIN eingeben.",dialInConferenceID:"PIN:",dialInNotSupported:"Entschuldigung, leider wird das Einw\xe4hlen derzeit nicht unterst\xfctzt.",dialInNumber:"Einw\xe4hlen:",dialInSummaryError:"Fehler beim Abrufen der Einw\xe4hlinformationen. Versuchen Sie es sp\xe4ter erneut.",dialInTollFree:"Geb\xfchrenfrei",genericError:"Es ist leider etwas schiefgegangen.",inviteLiveStream:"Klicken Sie auf {{url}} um den Livestream dieser Konferenz zu \xf6ffnen",invitePhone:"",invitePhoneAlternatives:"",inviteURLFirstPartGeneral:"Sie wurden zur Teilnahme an einem Meeting eingeladen.",inviteURLFirstPartPersonal:"",inviteURLSecondPart:"",liveStreamURL:"Livestream:",moreNumbers:"Weitere Telefonnummern",noNumbers:"Keine Telefonnummern verf\xfcgbar.",noPassword:"Kein",noRoom:"Keine Konferenz f\xfcr die Einw\xe4hl-Informationen angegeben.",numbers:"Einw\xe4hlnummern",password:"",title:"Teilen",tooltip:"Freigabe-Link und Einw\xe4hlinformationen f\xfcr dieses Meeting",label:"Meeting-Informationen"},inviteDialog:{alertText:"Die Einladung einiger Teilnehmer ist fehlgeschlagen.",header:"Einladen",searchCallOnlyPlaceholder:"Telefonnummer eingeben",searchPeopleOnlyPlaceholder:"Nach Teilnehmern suchen",searchPlaceholder:"Teilnehmer oder Telefonnummer",send:"Senden"},inlineDialogFailure:{msg:"Es ist ein Fehler aufgetreten.",retry:"Erneut versuchen",support:"Support",supportMsg:"Wenn der Fehler erneut auftritt, bitte kontaktieren sie"},keyboardShortcuts:{focusLocal:"Lokales Video fokussieren",focusRemote:"Auf das Video eines anderen Teilnehmers fokussieren",fullScreen:"Vollbildmodus aktivieren / deaktivieren",keyboardShortcuts:"Tastenk\xfcrzel",localRecording:"Lokale Aufzeichnungssteuerelemente ein- oder ausblenden",mute:"Stummschaltung aktivieren oder deaktivieren",pushToTalk:"Dr\xfccken um zu sprechen",raiseHand:"Hand erheben",showSpeakerStats:"Statistiken f\xfcr Sprecher anzeigen",toggleChat:"Chat \xf6ffnen oder schliessen",toggleFilmstrip:"Video-Miniaturansichten ein- oder ausblenden",toggleScreensharing:"Zwischen Kamera und Bildschirmfreigabe wechseln",toggleShortcuts:"Tastenkombinationen ein- oder ausblenden",videoMute:"Kamera starten oder stoppen"},"\x05keyboardShortcuts":{},liveStreaming:{busy:"Es werden Resourcen zum Streamen bereitgestellt. Bitte in ein paar Minuten erneut versuchen.",busyTitle:"Alle Streaming-Instanzen sind in Gebrauch",changeSignIn:"Konten wechseln.",choose:"Live stream ausw\xe4hlen",chooseCTA:"Streaming-Option ausw\xe4hlen. Sie sind aktuell als {{email}} angemeldet.",enterStreamKey:"Name/Schl\xfcssel f\xfcr den YouTube Livestream hier eingeben.",error:"Das Live-Streaming ist fehlgeschlagen. Bitte versuchen Sie es erneut.",errorAPI:"Beim abrufen der YouTube Livestreams ist ein Fehler aufgetreten. Bitte versuchen Sie sich erneut anzumelden.",errorLiveStreamNotEnabled:"Live-Streaming ist f\xfcr {{email}} nicht aktiviert. Aktivieren Sie das Live-Streaming oder melden Sie sich bei einem Konto mit aktiviertem Live-Streaming an.",expandedOff:"Live-Streaming wurde angehalten",expandedOn:"Das Meeting wird momentan an YouTube gestreamt.",expandedPending:"Live-Streaming wird gestartet...",failedToStart:"Live-Streaming konnte nicht gestartet werden",getStreamKeyManually:"",invalidStreamKey:"Der Live-Stream-Schl\xfcssel ist u. U. falsch.",off:"Live-Streaming gestoppt",on:"Live-Streaming",pending:"Live-Stream wird gestartet...",serviceName:"Live Streaming-Dienst",signedInAs:"Sie sind derzeit angemeldet als:",signIn:"Mit Google anmelden",signInCTA:"Anmelden oder den Name/Schl\xfcssel des YouTube Livestreams eingeben.",signOut:"Abmelden",start:"Einen Livestream starten",streamIdHelp:"Was ist das?",unavailableTitle:"Live-Streaming nicht verf\xfcgbar"},"\x05liveStreaming":{},localRecording:{clientState:{off:"Aus",on:"Ein",unknown:"Unbekannt"},dialogTitle:"Lokale Aufzeichnungssteuerelemente",duration:"Dauer",durationNA:"N. v.",encoding:"Codierung",label:"LOR",labelToolTip:"Lokale Aufzeichnung ist aktiviert",localRecording:"Lokale Aufzeichnung",me:"Ich",messages:{engaged:"Lokale Aufzeichnung ist aktiviert",finished:"Aufzeichnung der Sitzung {{token}} ist beendet. Senden Sie die aufgezeichnete Datei an den Moderator.",finishedModerator:"Aufzeichnung der Sitzung {{token}} ist beendet. Die Aufzeichnung der lokalen Verlaufs wurde gespeichert. Bitten Sie die anderen Teilnehmer, ihre Aufzeichnungen zu \xfcbermitteln.",notModerator:"Sie sind nicht der Moderator. Sie k\xf6nnen die lokale Aufzeichnung nicht starten oder stoppen."},moderator:"Moderator",no:"Nein",participant:"Teilnehmer",participantStats:"Teilnehmerstatistik",sessionToken:"Sitzungs-Token",start:"Aufnahme starten",stop:"Aufnahme stoppen",yes:"Ja"},"\x05localRecording":{},lockRoomPassword:"Passwort",lockRoomPasswordUppercase:"Passwort",me:"ich",notify:{connectedOneMember:"{{name}} nimmt am Meeting teil",connectedThreePlusMembers:"{{name}} und {{count}} andere Personen nehmen am Meeting teil",connectedTwoMembers:"{{first}} und {{second}} nehmen am Meeting teil",disconnected:"getrennt",focus:"Konferenz-Organisator",focusFail:"{{component}} ist im Moment nicht verf\xfcgbar - wiederholen in {{ms}} Sekunden",grantedTo:"Moderatorenrechte an {{to}} vergeben.",invitedOneMember:"{{displayName}} wurde eingeladen",invitedThreePlusMembers:"",invitedTwoMembers:"",kickParticipant:"",me:"Ich",moderator:"Moderatorenrechte vergeben",muted:"Der Konferenz wurde stumm beigetreten.",mutedTitle:"Stummschaltung aktiv!",mutedRemotelyTitle:"",mutedRemotelyDescription:"",passwordRemovedRemotely:"",passwordSetRemotely:"",raisedHand:"{{name}} m\xf6chte sprechen.",somebody:"Jemand",startSilentTitle:"",startSilentDescription:"",suboptimalExperienceDescription:"Tut uns leid, aber die Konferenz wird mit {{appName}} kein grossartiges Erlebnis. Wir versuchen immer die Situation zu verbessern, bis dahin empfehlen wir aber die Verwendung einer der vollst\xe4ndig unterst\xfctzen Browser.",suboptimalExperienceTitle:"Browserwarnung",unmute:"",newDeviceCameraTitle:"Neue Kamera erkannt",newDeviceAudioTitle:"Neues Audioger\xe4t erkannt",newDeviceAction:"Verwenden"},passwordSetRemotely:"von einem anderen Teilnehmer gesetzt",passwordDigitsOnly:"",poweredby:"Betrieben von",presenceStatus:{busy:"Besch\xe4ftigt",calling:"Wird angerufen\u2026",connected:"Verbunden",connecting:"Verbindung wird hergestellt",connecting2:"Wird verbunden*\u2026",disconnected:"Getrennt",expired:"Abgelaufen",ignored:"Ignoriert",initializingCall:"Anruf wird initialisiert\u2026",invited:"Einladen",rejected:"Abgelehnt",ringing:"Es klingelt\u2026"},"\x05presenceStatus":{},profile:{setDisplayNameLabel:"Anzeigename festlegen",setEmailInput:"E-Mail eingeben",setEmailLabel:"E-Mail Adresse f\xfcr Gravatar",title:"Profil"},recording:{authDropboxText:"In Dropbox hochladen",availableSpace:"Verf\xfcgbarer Speicherplatz: {{spaceLeft}} MB (ca. {{duration}} Minuten Aufzeichnung)",beta:"BETA",busy:"Es werden Resourcen f\xfcr eine Aufnahme bereitgestellt. Bitte in ein paar Minuten erneut versuchen.",busyTitle:"Alle Aufnahme-Instanzen sind in Gebrauch",error:"Die Aufzeichnung ist fehlgeschlagen. Bitte versuchen Sie es erneut.",expandedOff:"Aufzeichnung wurde gestoppt",expandedOn:"Das Meeting wird momentan aufgezeichnet.",expandedPending:"Aufzeichnung wird gestartet\u2026",failedToStart:"Die Aufnahme konnte nicht gestartet werden",fileSharingdescription:"Aufzeichnung mit Meeting-Teilnehmer teilen",live:"LIVE",loggedIn:"Als {{userName}} angemeldet",off:"Aufnahme gestoppt",on:"Aufnahme",pending:"Aufzeichnung des Meetings wird vorbereitet\u2026",rec:"AUFZ",serviceDescription:"Ihre Aufzeichnung wird vom Aufzeichnungsdienst gespeichert",serviceName:"Aufnahmedienst",signIn:"Anmelden",signOut:"Abmelden",unavailable:"Oh! Der {{serviceName}} ist aktuell nicht verf\xfcgbar. Wir arbeiten an der Behebung des Problems. Bitte versuchen Sie es sp\xe4ter noch einmal.",unavailableTitle:"Aufnahme nicht verf\xfcgbar"},sectionList:{pullToRefresh:"Ziehen um zu aktualisieren"},settings:{calendar:{about:"Die Kalenderintegration von {{appName}} wird verwendet, um ein sicheres Zugreifen auf Ihren Kalender und Auslesen der bevorstehenden Veranstaltungen zu erm\xf6glichen.",disconnect:"Getrennt",microsoftSignIn:"Mit Microsoft anmelden",signedIn:"Momentan wird auf Kalenderveranstaltungen von {{email}} zugegriffen. Klicken Sie auf die folgende Schaltfl\xe4che \u201eTrennen\u201c, um den Zugriff auf die Kalenderveranstaltungen zu stoppen.",title:"Kalender"},devices:"Ger\xe4te",followMe:"Follow-me f\xfcr alle Teilnehmer",language:"Sprache",loggedIn:"Als {{name}} angemeldet",moderator:"Moderator",more:"Mehr",name:"Name",noDevice:"Kein",selectAudioOutput:"Audioausgabe",selectCamera:"Kamera",selectMic:"Mikrofon",startAudioMuted:"Alle Teilnehmer treten stumm geschaltet bei",startVideoMuted:"Alle Teilnehmer treten ohne Video bei",title:"Einstellungen"},"\x05settings":{calendar:{}},settingsView:{alertOk:"OK",alertTitle:"Warnung",alertURLText:"Die angegebene Server URL ist ung\xfcltig",buildInfoSection:"Build-Informationen",conferenceSection:"Konferenz",displayName:"Anzeigename",email:"E-Mail",header:"Einstellungen",profileSection:"Profil",serverURL:"Server URL",startWithAudioMuted:"Stumm beitreten",startWithVideoMuted:"Ohne Video beitreten",version:"Version"},share:{dialInfoText:"",mainText:""},speaker:"Sprecher",speakerStats:{hours:"{{count}}h",minutes:"{{count}}m",name:"Name",seconds:"{{count}}s",speakerStats:"Sprecher-Statistiken",speakerTime:"Sprecher-Zeit"},startupoverlay:{policyText:" ",title:"{{app}} ben\xf6tigt Kamera und Mikrofon."},suspendedoverlay:{rejoinKeyTitle:"Erneut teilnehmen",text:"Erneut teilnehmen Schaltfl\xe4che bet\xe4tigen um erneut zu verbinden.",title:"Die Konferenz wurde unterbrochen weil der Standbymodus aktiviert wurde."},toolbar:{accessibilityLabel:{audioOnly:"Nur Audio ein-/ausschalten",audioRoute:"Audioger\xe4t ausw\xe4hlen",callQuality:"Qualit\xe4tseinstellungen",cc:"Untertitel ein-/ausschalten",chat:"Chatfenster ein-/ausblenden",document:"Geteiltes Dokument schliessen",feedback:"Feedback hinterlasen",fullScreen:"Vollbildschirm ein-/ausblenden",hangup:"Anruf beenden",invite:"Teilnehmer einladen",kick:"Teilnehmer entfernen",localRecording:"Lokale Aufzeichnungssteuerelemente ein-/ausschalten",lockRoom:"Meeting-Passwort ein-/auschalten",moreActions:"Men\xfc \u201eWeitere Aktionen\u201c ein-/ausschalten",moreActionsMenu:"Men\xfc \u201eWeitere Aktionen\u201c",mute:"\u201eAudio stummschalten\u201c ein-/ausschalten",pip:"Bild-in-Bild-Modus ein-/ausschalten",profile:"Profil bearbeiten",raiseHand:"\u201eMelden\u201c ein-/ausschalten",recording:"Aufzeichnung ein-/ausschalten",remoteMute:"Teilnehmer stummschalten",Settings:"Einstellungen ein-/ausschalten",sharedvideo:"YouTube-Videofreigabe ein-/ausschalten",shareRoom:"Person einladen",shareYourScreen:"Bildschirmfreigabe ein-/ausschalten",shortcuts:"Tastenkombinationen ein-/ausblenden",show:"",speakerStats:"Sprecherstatistik ein-/ausblenden",tileView:"Kachelansicht ein-/ausschalten",toggleCamera:"Kamera ein-/ausschalten",videomute:"\u201eVideo stummschalten\u201c ein-/ausschalten",videoblur:""},addPeople:"Teilnehmer zur Konferenz hinzuf\xfcgen",audioOnlyOff:"Modus \u201eNur Audio\u201c deaktivieren",audioOnlyOn:"Modus \u201eNur Audio\u201c aktivieren",audioRoute:"Audioger\xe4t ausw\xe4hlen",authenticate:"Anmelden",callQuality:"Qualit\xe4tseinstellungen",chat:"Chat \xf6ffnen / schliessen",closeChat:"Chat schlie\xdfen",documentClose:"Geteiltes Dokument schliessen",documentOpen:"Geteiltes Dokument \xf6ffnen",enterFullScreen:"Vollbildmodus",enterTileView:"Kachelansicht einschalten",exitFullScreen:"Vollbildmodus verlassen",exitTileView:"Kachelansicht ausschalten",feedback:"Feedback hinterlasen",hangup:"Verlassen",invite:"Teilnehmer einladen",login:"Anmelden",logout:"Abmelden",lowerYourHand:"Hand senken",moreActions:"Weitere Einstellungen",mute:"Stummschaltung aktivieren / deaktivieren",openChat:"Chat \xf6ffnen",pip:"Bild-in-Bild-Modus einschalten",profile:"Profil bearbeiten",raiseHand:"Hand erheben",raiseYourHand:"Melden",Settings:"Einstellungen",sharedvideo:"YouTube-Video teilen",shareRoom:"Person einladen",shortcuts:"Tastenk\xfcrzel anzeigen",speakerStats:"Sprecher-Statistiken",startScreenSharing:"Bildschirmfreigabe starten",startSubtitles:"Untertitel einschalten",stopScreenSharing:"Bildschirmfreigabe stoppen",stopSubtitles:"Untertitel ausschalten",stopSharedVideo:"YouTube Video stoppen",talkWhileMutedPopup:"Versuchen sie zu sprechen? Ihr Mikrofon ist stummgeschaltet.",tileViewToggle:"Kachelansicht ein-/ausschalten",toggleCamera:"Kamera ein-/ausschalten",videomute:"Kamera starten / stoppen",startvideoblur:"",stopvideoblur:""},"\x05toolbar":{accessibilityLabel:{}},transcribing:{ccButtonTooltip:"Untertitel ein-/ausschalten",error:"Die Aufzeichnung ist fehlgeschlagen. Bitte versuchen Sie es erneut.",expandedLabel:"Transkribieren ist derzeit eingeschaltet",failedToStart:"Transkribieren konnte nicht gestartet werden",labelToolTip:"Das Meeting wird transkribiert",off:"Transkribieren gestoppt",pending:"Transkribieren des Meetings wird vorbereitet\u2026",start:"Anzeige der Untertitel starten",stop:"Anzeige der Untertitel stoppen",tr:"TR"},"\x05transcribing":{},userMedia:{androidGrantPermissions:"W\xe4hlen Sie Erlauben wenn der Browser um Berechtigungen bittet.",chromeGrantPermissions:"W\xe4hlen Sie Erlauben wenn der Browser um Berechtigungen bittet.",edgeGrantPermissions:"W\xe4hlen Sie Ja wenn der Browser um Berechtigungen bittet.",electronGrantPermissions:"Bitte Berechtigungen zur Verwendung der Kamera und des Mikrofons erteilen",firefoxGrantPermissions:"W\xe4hlen Sie Markiertes Ger\xe4t teilen wenn der Browser um Berechtigungen bittet.",iexplorerGrantPermissions:"W\xe4hlen Sie OK wenn der Browser um Berechtigungen bittet.",nwjsGrantPermissions:"Bitte Berechtigungen zur Verwendung der Kamera und des Mikrofons erteilen",operaGrantPermissions:"W\xe4hlen Sie Erlauben wenn der Browser um Berechtigungen bittet.","react-nativeGrantPermissions":"W\xe4hlen Sie Erlauben wenn der Browser um Berechtigungen bittet.",safariGrantPermissions:"W\xe4hlen Sie OK wenn der Browser um Berechtigungen bittet."},videoSIPGW:{busy:"Es stehen keine freien Ressourcen zur Verf\xfcgung. Bitte versuchen Sie es sp\xe4ter noch einmal.",busyTitle:"Keine freien Ressourcen",errorAlreadyInvited:"{{displayName}} ist bereits eingeladen",errorInvite:"Die Konferenz konnte nicht gestartet werden. Bitte versuchen Sie es sp\xe4ter noch einmal.",errorInviteFailed:"Wir arbeiten an der Behebung des Problems. Bitte versuchen Sie es sp\xe4ter noch einmal.",errorInviteFailedTitle:"{{displayName}} konnte nicht eingeladen werden",errorInviteTitle:"Fehler beim Erstellen der Konferenz",pending:"{{displayName}} wurde eingeladen"},videoStatus:{audioOnly:"AUD",audioOnlyExpanded:"Sie befinden sich im Modus \u201eNur Audio\u201c. Dieser Modus ben\xf6tigt weniger Bandbreite, Sie sehen jedoch nicht die Videos der anderen.",callQuality:"",hd:"HD",highDefinition:"Hohe Aufl\xf6sung",labelTooiltipNoVideo:"Kein Video",labelTooltipAudioOnly:"Nur-Audio Modus aktiv",ld:"LD",lowDefinition:"Niedrige Aufl\xf6sung",onlyAudioAvailable:"Nur Ton",onlyAudioSupported:"In diesem Browser wird nur Audio unterst\xfctzt.",p2pEnabled:"Ende-zu-Ende aktiviert",p2pVideoQualityDescription:"",recHighDefinitionOnly:"Hohe Qualit\xe4t wird bevorzugt.",sd:"SD",standardDefinition:"Standardaufl\xf6sung"},videothumbnail:{domute:"Stummschalten",flip:"Spiegeln",kick:"Hinauswerfen",moderator:"Moderator",mute:"Teilnehmer ist stumm geschaltet",muted:"Stummgeschaltet",remoteControl:"Fernsteuerung",show:"",videomute:""},welcomepage:{accessibilityLabel:{join:"Zum Teilnehmen tippen",roomname:"Konferenzname eingeben"},appDescription:"Auf geht's! Beginne eine Videokonferenz mit dem ganzen Team. Oder eigentlich, lade alle ein die du kennst. {{app}} ist eine vollst\xe4ndig verschl\xfcsselte, aus 100% Open-Source-Software bestehende Videokonferenzl\xf6sung die du den ganzen Tag kostenlos verwenden kannst \u2014 ohne Registrierung.",audioVideoSwitch:{audio:"Sprache",video:"Video"},calendar:"Kalender",connectCalendarButton:"Kalender verbinden",connectCalendarText:"Verbinden Sie Ihren Kalender, um all Ihre Meetings in {{app}} anzuzeigen. F\xfcgen Sie zudem {{provider}}-Meetings in Ihren Kalender ein und starten Sie sie mit nur einem Klick.",enterRoomTitle:"Neues Meeting starten",go:"Los",join:"Beitreten",info:"Informationen",privacy:"Privatsph\xe4re",recentList:"Letzte\"",recentListDelete:"L\xf6schen",recentListEmpty:"Die Liste \u201eLetzte\u201c ist momentan leer. Chatten Sie mit Ihrem Team. Sie finden all Ihre letzten Meetings hier.",reducedUIText:"",roomname:"Konferenzname eingeben",roomnameHint:"Name oder URL der Konferenz der Sie beitreten m\xf6chten. Sie k\xf6nnen einen Namen erfinden, er muss nur den anderen Teilnehmern \xfcbermittelt werden damit sie der gleichen Konferenz beitreten.",sendFeedback:"Senden Sie uns Ihr Feedback",terms:"Bedingungen",title:"Sichere, mit umfassenden Funktionen ausgestattete und vollkommen kostenlose Videokonferenzen"}}},649,[]); -__d(function(e,s,o,t,n,r,a){n.exports={en:"",af:"",az:"",bg:"",cs:"",de:"",el:"",eo:"",es:"",fr:"",hy:"",it:"",ja:"",ko:"",nb:"",oc:"",pl:"",ptBR:"",ru:"",sk:"",sl:"",sv:"",tr:"",vi:"",zhCN:""}},650,[]); -__d(function(e,o,t,r,n,i,a){n.exports={addPeople:{add:"Invite",countryNotSupported:"We do not support this destination yet.",countryReminder:"Calling outside the US? Please make sure you start with the country code!",disabled:"You can't invite people.",failedToAdd:"Failed to add members",footerText:"Dialling out is disabled.",loading:"Searching for people and phone numbers",loadingNumber:"Validating phone number",loadingPeople:"Searching for people to invite",noResults:"No matching search results",noValidNumbers:"Please enter a phone number",searchNumbers:"Add phone numbers",searchPeople:"Search for people",searchPeopleAndNumbers:"Search for people or add their phone numbers",telephone:"Telephone: {{number}}",title:"Invite people to this meeting"},audioDevices:{bluetooth:"Bluetooth",headphones:"Headphones",phone:"Phone",speaker:"Speaker"},audioOnly:{audioOnly:"Audio only"},calendarSync:{addMeetingURL:"Add a meeting link",confirmAddLink:"Do you want to add a Jitsi link to this event?",error:{appConfiguration:"Calendar integration is not properly configured.",generic:"An error has occurred. Please check your calendar settings or try refreshing the calendar.",notSignedIn:"An error occurred while authenticating to see calendar events. Please check your calendar settings and try logging in again."},join:"Join",joinTooltip:"Join the meeting",nextMeeting:"next meeting",noEvents:"There are no upcoming events scheduled.",ongoingMeeting:"ongoing meeting",permissionButton:"Open settings",permissionMessage:"The Calendar permission is required to see your meetings in the app.",refresh:"Refresh calendar",today:"Today"},chat:{error:"Error: your message \"{{originalText}}\" was not sent. Reason: {{error}}",messagebox:"Type a message",nickname:{popover:"Choose a nickname",title:"Enter a nickname to use chat"},title:"Chat"},connectingOverlay:{joiningRoom:"Connecting you to your meeting..."},connection:{ATTACHED:"Attached",AUTHENTICATING:"Authenticating",AUTHFAIL:"Authentication failed",CONNECTED:"Connected",CONNECTING:"Connecting",CONNFAIL:"Connection failed",DISCONNECTED:"Disconnected",DISCONNECTING:"Disconnecting",ERROR:"Error",RECONNECTING:"A network problem occurred. Reconnecting..."},connectionindicator:{address:"Address:",bandwidth:"Estimated bandwidth:",bitrate:"Bitrate:",bridgeCount:"Server count: ",connectedTo:"Connected to:",framerate:"Frame rate:",less:"Show less",localaddress:"Local address:",localaddress_plural:"Local addresses:",localport:"Local port:",localport_plural:"Local ports:",more:"Show more",packetloss:"Packet loss:",quality:{good:"Good",inactive:"Inactive",lost:"Lost",nonoptimal:"Nonoptimal",poor:"Poor"},remoteaddress:"Remote address:",remoteaddress_plural:"Remote addresses:",remoteport:"Remote port:",remoteport_plural:"Remote ports:",resolution:"Resolution:",status:"Connection:",transport:"Transport:",transport_plural:"Transports:",turn:" (turn)"},dateUtils:{earlier:"Earlier",today:"Today",yesterday:"Yesterday"},deepLinking:{appNotInstalled:"You need the {{app}} mobile app to join this meeting on your phone.",description:"Nothing happened? We tried launching your meeting in the {{app}} desktop app. Try again or launch it in the {{app}} web app.",descriptionWithoutWeb:"",downloadApp:"Download the app",launchWebButton:"Launch in web",openApp:"Continue to the app",title:"Launching your meeting in {{app}}...",tryAgainButton:"Try again in desktop"},defaultLink:"e.g. {{url}}",deviceError:{cameraError:"Failed to access your camera",cameraPermission:"Error obtaining camera permission",microphoneError:"Failed to access your microphone",microphonePermission:"Error obtaining microphone permission"},deviceSelection:{noPermission:"Permission not granted",previewUnavailable:"Preview unavailable",selectADevice:"Select a device",testAudio:"Play a test sound"},dialog:{accessibilityLabel:{liveStreaming:"Live Stream"},allow:"Allow",alreadySharedVideoMsg:"Another member is already sharing a video. This conference allows only one shared video at a time.",alreadySharedVideoTitle:"Only one shared video is allowed at a time",applicationWindow:"Application window",Back:"Back",cameraConstraintFailedError:"Your camera does not satisfy some of the required constraints.",cameraNotFoundError:"Camera was not found.",cameraNotSendingData:"We are unable to access your camera. Please check if another application is using this device, select another device from the settings menu or try to reload the application.",cameraNotSendingDataTitle:"Unable to access camera",cameraPermissionDeniedError:"You have not granted permission to use your camera. You can still join the conference but others won't see you. Use the camera button in the address bar to fix this.",cameraUnknownError:"Cannot use camera for an unknown reason.",cameraUnsupportedResolutionError:"Your camera does not support required video resolution.",Cancel:"Cancel",close:"Close",conferenceDisconnectMsg:"You may want to check your network connection. Reconnecting in {{seconds}} sec...",conferenceDisconnectTitle:"You have been disconnected.",conferenceReloadMsg:"We're trying to fix this. Reconnecting in {{seconds}} sec...",conferenceReloadTitle:"Unfortunately, something went wrong.",confirm:"Confirm",confirmNo:"No",confirmYes:"Yes",connectError:"Oops! Something went wrong and we couldn't connect to the conference.",connectErrorWithMsg:"Oops! Something went wrong and we couldn't connect to the conference: {{msg}}",connecting:"Connecting",contactSupport:"Contact support",copy:"Copy",dismiss:"Dismiss",displayNameRequired:"Display name is required",done:"Done",enterDisplayName:"Please enter your display name",error:"Error",externalInstallationMsg:"You need to install our desktop sharing extension.",externalInstallationTitle:"Extension required",goToStore:"Go to the webstore",gracefulShutdown:"Our service is currently down for maintenance. Please try again later.",IamHost:"I am the host",incorrectRoomLockPassword:"",incorrectPassword:"Incorrect username or password",inlineInstallationMsg:"You need to install our desktop sharing extension.",inlineInstallExtension:"Install now",internalError:"Oops! Something went wrong. The following error occurred: {{error}}",internalErrorTitle:"Internal error",kickMessage:"Ouch! You have been kicked out of the meet!",kickParticipantButton:"Kick",kickParticipantDialog:"Are you sure you want to kick this participant?",kickParticipantTitle:"Kick this member?",kickTitle:"Kicked from meeting",liveStreaming:"Live Streaming",liveStreamingDisabledForGuestTooltip:"Guests can't start live streaming.",liveStreamingDisabledTooltip:"Start live stream disabled.",lockMessage:"Failed to lock the conference.",lockRoom:"Add meeting password",lockTitle:"Lock failed",logoutQuestion:"Are you sure you want to logout and stop the conference?",logoutTitle:"Log out",maxUsersLimitReached:"The limit for maximum number of members has been reached. The conference is full. Please contact the meeting owner or try again later!",maxUsersLimitReachedTitle:"Maximum members limit reached",micConstraintFailedError:"Your microphone does not satisfy some of the required constraints.",micNotFoundError:"Microphone was not found.",micNotSendingData:"We are unable to access your microphone. Please select another device from the settings menu or try to reload the application.",micNotSendingDataTitle:"Unable to access microphone",micPermissionDeniedError:"You have not granted permission to use your microphone. You can still join the conference but others won't hear you. Use the camera button in the address bar to fix this.",micUnknownError:"Cannot use microphone for an unknown reason.",muteParticipantBody:"You won't be able to unmute them, but they can unmute themselves at any time.",muteParticipantButton:"Mute",muteParticipantDialog:"Are you sure you want to mute this participant? You won't be able to unmute them, but they can unmute themselves at any time.",muteParticipantTitle:"Mute this member?",Ok:"Ok",passwordLabel:"Password",passwordNotSupported:"Setting a meeting password is not supported.",passwordNotSupportedTitle:"Password not supported",passwordRequired:"Password required",popupError:"Your browser is blocking pop-up windows from this site. Please enable pop-ups in your browser's security settings and try again.",popupErrorTitle:"Pop-up blocked",recording:"Recording",recordingDisabledForGuestTooltip:"Guests can't start recordings.",recordingDisabledTooltip:"Start recording disabled.",rejoinNow:"Rejoin now",remoteControlAllowedMessage:"{{user}} accepted your remote control request!",remoteControlDeniedMessage:"{{user}} rejected your remote control request!",remoteControlErrorMessage:"An error occurred while trying to request remote control permissions from {{user}}!",remoteControlRequestMessage:"Will you allow {{user}} to remotely control your desktop?",remoteControlShareScreenWarning:"Note that if you press \"Allow\" you will share your screen!",remoteControlStopMessage:"The remote control session ended!",remoteControlTitle:"Remote desktop control",Remove:"Remove",removePassword:"Remove password",removeSharedVideoMsg:"Are you sure you would like to remove your shared video?",removeSharedVideoTitle:"Remove shared video",reservationError:"Reservation system error",reservationErrorMsg:"Error code: {{code}}, message: {{msg}}",retry:"Retry",screenSharingFailedToInstall:"Oops! Your screen sharing extension failed to install.",screenSharingFailedToInstallTitle:"Screen sharing extension failed to install",screenSharingFirefoxPermissionDeniedError:"Something went wrong while we were trying to share your screen. Please make sure that you have given us permission to do so. ",screenSharingFirefoxPermissionDeniedTitle:"Oops! We weren\u2019t able to start screen sharing!",screenSharingPermissionDeniedError:"Oops! Something went wrong with your screen sharing extension permissions. Please reload and try again.",serviceUnavailable:"Service unavailable",sessTerminated:"Call terminated",Share:"Share",shareVideoLinkError:"Please provide a correct youtube link.",shareVideoTitle:"Share a video",shareYourScreen:"Share your screen",shareYourScreenDisabled:"Screen sharing disabled.",shareYourScreenDisabledForGuest:"Guests can't screen share.",startLiveStreaming:"Start live stream",startRecording:"Start recording",startRemoteControlErrorMessage:"An error occurred while trying to start the remote control session!",stopLiveStreaming:"Stop live stream",stopRecording:"Stop recording",stopRecordingWarning:"Are you sure you would like to stop the recording?",stopStreamingWarning:"Are you sure you would like to stop the live streaming?",streamKey:"Live stream key",Submit:"Submit",thankYou:"Thank you for using {{appName}}!",token:"token",tokenAuthFailed:"Sorry, you're not allowed to join this call.",tokenAuthFailedTitle:"Authentication failed",transcribing:"Transcribing",unlockRoom:"Remove meeting password",userPassword:"user password",WaitForHostMsg:"The conference {{room}} has not yet started. If you are the host then please authenticate. Otherwise, please wait for the host to arrive.",WaitForHostMsgWOk:"The conference {{room}} has not yet started. If you are the host then please press Ok to authenticate. Otherwise, please wait for the host to arrive.",WaitingForHost:"Waiting for the host ...",Yes:"Yes",yourEntireScreen:"Your entire screen"},dialOut:{statusMessage:"is now {{status}}"},feedback:{average:"Average",bad:"Bad",detailsLabel:"Tell us more about it.",good:"Good",rateExperience:"Rate your meeting experience",veryBad:"Very Bad",veryGood:"Very Good"},incomingCall:{answer:"Answer",audioCallTitle:"Incoming call",decline:"Dismiss",productLabel:"from Jitsi Meet",videoCallTitle:"Incoming video call"},info:{accessibilityLabel:"Show info",addPassword:"Add password",cancelPassword:"Cancel password",conferenceURL:"Link:",country:"Country",dialANumber:"To join your meeting, dial one of these numbers and then enter the pin.",dialInConferenceID:"PIN:",dialInNotSupported:"Sorry, dialling in is currently not supported.",dialInNumber:"Dial-in:",dialInSummaryError:"Error fetching dial-in info now. Please try again later.",dialInTollFree:"Toll Free",genericError:"Whoops, something went wrong.",inviteLiveStream:"To view the live stream of this meeting, click this link: {{url}}",invitePhone:"One tap audio Dial In: {{number}},,{{conferenceID}}#",invitePhoneAlternatives:"",inviteURLFirstPartGeneral:"You are invited to join a meeting.",inviteURLFirstPartPersonal:"{{name}} is inviting you to a meeting.\n",inviteURLSecondPart:"\nJoin the meeting:\n{{url}}\n",liveStreamURL:"Live stream:",moreNumbers:"More numbers",noNumbers:"No dial-in numbers.",noPassword:"None",noRoom:"No room was specified to dial-in into.",numbers:"Dial-in Numbers",password:"Password:",title:"Share",tooltip:"Share link and dial-in info for this meeting",label:"Meeting info"},inviteDialog:{alertText:"Failed to invite some participants.",header:"Invite",searchCallOnlyPlaceholder:"Enter phone number",searchPeopleOnlyPlaceholder:"Search for participants",searchPlaceholder:"Participant or phone number",send:"Send"},inlineDialogFailure:{msg:"We stumbled a bit.",retry:"Try again",support:"Support",supportMsg:"If this keeps happening, reach out to"},keyboardShortcuts:{focusLocal:"Focus on your video",focusRemote:"Focus on another person's video",fullScreen:"View or exit full screen",keyboardShortcuts:"Keyboard shortcuts",localRecording:"Show or hide local recording controls",mute:"Mute or unmute your microphone",pushToTalk:"Push to talk",raiseHand:"Raise or lower your hand",showSpeakerStats:"Show speaker stats",toggleChat:"Open or close the chat",toggleFilmstrip:"Show or hide video thumbnails",toggleScreensharing:"Switch between camera and screen sharing",toggleShortcuts:"Show or hide keyboard shortcuts",videoMute:"Start or stop your camera"},liveStreaming:{busy:"We're working on freeing streaming resources. Please try again in a few minutes.",busyTitle:"All streamers are currently busy",changeSignIn:"Switch accounts.",choose:"Choose a live stream",chooseCTA:"Choose a streaming option. You're currently logged in as {{email}}.",enterStreamKey:"Enter your YouTube live stream key here.",error:"Live Streaming failed. Please try again.",errorAPI:"An error occurred while accessing your YouTube broadcasts. Please try logging in again.",errorLiveStreamNotEnabled:"Live Streaming is not enabled on {{email}}. Please enable live streaming or log into an account with live streaming enabled.",expandedOff:"The live streaming has stopped",expandedOn:"The meeting is currently being streamed to YouTube.",expandedPending:"The live streaming is being started...",failedToStart:"Live Streaming failed to start",getStreamKeyManually:"We weren\u2019t able to fetch any live streams. Try getting your live stream key from YouTube.",invalidStreamKey:"Live stream key may be incorrect.",off:"Live Streaming stopped",on:"Live Streaming",pending:"Starting Live Stream...",serviceName:"Live Streaming service",signedInAs:"You are currently signed in as:",signIn:"Sign in with Google",signInCTA:"Sign in or enter your live stream key from YouTube.",signOut:"Sign out",start:"Start a live stream",streamIdHelp:"What's this?",unavailableTitle:"Live Streaming unavailable"},localRecording:{clientState:{off:"Off",on:"On",unknown:"Unknown"},dialogTitle:"Local Recording Controls",duration:"Duration",durationNA:"N/A",encoding:"Encoding",label:"LOR",labelToolTip:"Local recording is engaged",localRecording:"Local Recording",me:"Me",messages:{engaged:"Local recording engaged.",finished:"Recording session {{token}} finished. Please send the recorded file to the moderator.",finishedModerator:"Recording session {{token}} finished. The recording of the local track has been saved. Please ask the other participants to submit their recordings.",notModerator:"You are not the moderator. You cannot start or stop local recording."},moderator:"Moderator",no:"No",participant:"Participant",participantStats:"Participant Stats",sessionToken:"Session Token",start:"Start Recording",stop:"Stop Recording",yes:"Yes"},lockRoomPassword:"password",lockRoomPasswordUppercase:"Password",me:"me",notify:{connectedOneMember:"{{name}} joined the meeting",connectedThreePlusMembers:"{{name}} and {{count}} others joined the meeting",connectedTwoMembers:"{{first}} and {{second}} joined the meeting",disconnected:"disconnected",focus:"Conference focus",focusFail:"{{component}} not available - retry in {{ms}} sec",grantedTo:"Moderator rights granted to {{to}}!",invitedOneMember:"{{name}} has been invited",invitedThreePlusMembers:"{{name}} and {{count}} others have been invited",invitedTwoMembers:"{{first}} and {{second}} have been invited",kickParticipant:"{{kicked}} was kicked by {{kicker}}",me:"Me",moderator:"Moderator rights granted!",muted:"You have started the conversation muted.",mutedTitle:"You're muted!",mutedRemotelyTitle:"You have been muted by {{participantDisplayName}}!",mutedRemotelyDescription:"",passwordRemovedRemotely:"",passwordSetRemotely:"",raisedHand:"{{name}} would like to speak.",somebody:"Somebody",startSilentTitle:"",startSilentDescription:"",suboptimalExperienceDescription:"Eer... we are afraid your experience with {{appName}} isn't going to be that great here. We are looking for ways to improve this but, until then, please try using one of the fully supported browsers.",suboptimalExperienceTitle:"Browser Warning",unmute:"",newDeviceCameraTitle:"New camera detected",newDeviceAudioTitle:"New audio device detected",newDeviceAction:"Use"},passwordSetRemotely:"set by another member",passwordDigitsOnly:"Up to {{number}} digits",poweredby:"powered by",presenceStatus:{busy:"Busy",calling:"Calling...",connected:"Connected",connecting:"Connecting...",connecting2:"Connecting*...",disconnected:"Disconnected",expired:"Expired",ignored:"Ignored",initializingCall:"Initialising Call...",invited:"Invited",rejected:"Rejected",ringing:"Ringing..."},profile:{setDisplayNameLabel:"Set your display name",setEmailInput:"Enter e-mail",setEmailLabel:"Set your gravatar email",title:"Profile"},recording:{authDropboxText:"Upload to Dropbox",availableSpace:"Available space: {{spaceLeft}} MB (approximately {{duration}} minutes of recording)",beta:"BETA",busy:"We're working on freeing recording resources. Please try again in a few minutes.",busyTitle:"All recorders are currently busy",error:"Recording failed. Please try again.",expandedOff:"Recording has stopped",expandedOn:"The meeting is currently being recorded.",expandedPending:"Recording is being started...",failedToStart:"Recording failed to start",fileSharingdescription:"Share recording with meeting participants",live:"LIVE",loggedIn:"Logged in as {{userName}}",off:"Recording stopped",on:"Recording",pending:"Preparing to record the meeting...",rec:"REC",serviceDescription:"Your recording will be saved by the recording service",serviceName:"Recording service",signIn:"Sign in",signOut:"Sign out",unavailable:"Oops! The {{serviceName}} is currently unavailable. We're working on resolving the issue. Please try again later.",unavailableTitle:"Recording unavailable"},sectionList:{pullToRefresh:"Pull to refresh"},settings:{calendar:{about:"The {{appName}} calendar integration is used to securely access your calendar so it can read upcoming events.",disconnect:"Disconnect",microsoftSignIn:"Sign in with Microsoft",signedIn:"Currently accessing calendar events for {{email}}. Click the Disconnect button below to stop accessing calendar events.",title:"Calendar"},devices:"Devices",followMe:"Everyone follows me",language:"Language",loggedIn:"Logged in as {{name}}",moderator:"Moderator",more:"More",name:"Name",noDevice:"None",selectAudioOutput:"Audio output",selectCamera:"Camera",selectMic:"Microphone",startAudioMuted:"Everyone starts muted",startVideoMuted:"Everyone starts hidden",title:"Settings"},settingsView:{alertOk:"OK",alertTitle:"Warning",alertURLText:"The entered server URL is invalid",buildInfoSection:"Build Information",conferenceSection:"Conference",displayName:"Display name",email:"Email",header:"Settings",profileSection:"Profile",serverURL:"Server URL",startWithAudioMuted:"Start with audio muted",startWithVideoMuted:"Start with video muted",version:"Version"},share:{dialInfoText:"\n\n=====\n\nJust want to dial in on your phone?\n\n{{defaultDialInNumber}}Click this link to see the dial in phone numbers for this meeting\n{{dialInfoPageUrl}}",mainText:"Click the following link to join the meeting:\n{{roomUrl}}"},speaker:"Speaker",speakerStats:{hours:"{{count}}h",minutes:"{{count}}m",name:"Name",seconds:"{{count}}s",speakerStats:"Speaker Stats",speakerTime:"Speaker Time"},startupoverlay:{policyText:" ",title:"{{app}} needs to use your microphone and camera."},suspendedoverlay:{rejoinKeyTitle:"Rejoin",text:"Press the Rejoin button to reconnect.",title:"Your video call was interrupted because this computer went to sleep."},toolbar:{accessibilityLabel:{audioOnly:"Toggle audio only",audioRoute:"Select the sound device",callQuality:"Manage call quality",cc:"Toggle subtitles",chat:"Toggle chat window",document:"Toggle shared document",feedback:"Leave feedback",fullScreen:"Toggle full screen",hangup:"Leave the call",invite:"Invite people",kick:"Kick participant",localRecording:"Toggle local recording controls",lockRoom:"Toggle meeting password",moreActions:"Toggle more actions menu",moreActionsMenu:"More actions menu",mute:"Toggle mute audio",pip:"Toggle Picture-in-Picture mode",profile:"Edit your profile",raiseHand:"Toggle raise hand",recording:"Toggle recording",remoteMute:"Mute participant",Settings:"Toggle settings",sharedvideo:"Toggle Youtube video sharing",shareRoom:"Invite someone",shareYourScreen:"Toggle screenshare",shortcuts:"Toggle shortcuts",show:"",speakerStats:"Toggle speaker statistics",tileView:"Toggle tile view",toggleCamera:"Toggle camera",videomute:"Toggle mute video",videoblur:""},addPeople:"Add people to your call",audioOnlyOff:"Disable audio only mode",audioOnlyOn:"Enable audio only mode",audioRoute:"Select the sound device",authenticate:"Authenticate",callQuality:"Manage call quality",chat:"Open / Close chat",closeChat:"Close chat",documentClose:"Close shared document",documentOpen:"Open shared document",enterFullScreen:"View full screen",enterTileView:"Enter tile view",exitFullScreen:"Exit full screen",exitTileView:"Exit tile view",feedback:"Leave feedback",hangup:"Leave",invite:"Invite people",login:"Log in",logout:"Log out",lowerYourHand:"Lower your hand",moreActions:"More actions",mute:"Mute / Unmute",openChat:"Open chat",pip:"Enter Picture-in-Picture mode",profile:"Edit your profile",raiseHand:"Raise / Lower your hand",raiseYourHand:"Raise your hand",Settings:"Settings",sharedvideo:"Share a YouTube video",shareRoom:"Invite someone",shortcuts:"View shortcuts",speakerStats:"Speaker stats",startScreenSharing:"Start screen sharing",startSubtitles:"Start subtitles",stopScreenSharing:"Stop screen sharing",stopSubtitles:"Stop subtitles",stopSharedVideo:"Stop YouTube video",talkWhileMutedPopup:"Trying to speak? You are muted.",tileViewToggle:"Toggle tile view",toggleCamera:"Toggle camera",videomute:"Start / Stop camera",startvideoblur:"",stopvideoblur:""},transcribing:{ccButtonTooltip:"Start / Stop subtitles",error:"Transcribing failed. Please try again.",expandedLabel:"Transcribing is currently on",failedToStart:"Transcribing failed to start",labelToolTip:"The meeting is being transcribed",off:"Transcribing stopped",pending:"Preparing to transcribe the meeting...",start:"Start showing subtitles",stop:"Stop showing subtitles",tr:"TR"},userMedia:{androidGrantPermissions:"Select Allow when your browser asks for permissions.",chromeGrantPermissions:"Select Allow when your browser asks for permissions.",edgeGrantPermissions:"Select Yes when your browser asks for permissions.",electronGrantPermissions:"Please grant permissions to use your camera and microphone",firefoxGrantPermissions:"Select Share Selected Device when your browser asks for permissions.",iexplorerGrantPermissions:"Select OK when your browser asks for permissions.",nwjsGrantPermissions:"Please grant permissions to use your camera and microphone",operaGrantPermissions:"Select Allow when your browser asks for permissions.","react-nativeGrantPermissions":"Select Allow when your browser asks for permissions.",safariGrantPermissions:"Select OK when your browser asks for permissions."},videoSIPGW:{busy:"We're working on freeing resources. Please try again in a few minutes.",busyTitle:"The Room service is currently busy",errorAlreadyInvited:"{{displayName}} already invited",errorInvite:"Conference not established yet. Please try again later.",errorInviteFailed:"We're working on resolving the issue. Please try again later.",errorInviteFailedTitle:"Inviting {{displayName}} failed",errorInviteTitle:"Error inviting room",pending:"{{displayName}} has been invited"},videoStatus:{audioOnly:"AUD",audioOnlyExpanded:"You are in audio only mode. This mode saves bandwidth but you won't see videos of others.",callQuality:"Call Quality",hd:"HD",highDefinition:"High definition",labelTooiltipNoVideo:"No video",labelTooltipAudioOnly:"Audio-only mode enabled",ld:"LD",lowDefinition:"Low definition",onlyAudioAvailable:"Only audio is available",onlyAudioSupported:"We only support audio in this browser.",p2pEnabled:"Peer to Peer Enabled",p2pVideoQualityDescription:"In peer to peer mode, received call quality can only be toggled between high and audio only. Other settings will not be honoured until peer to peer is exited.",recHighDefinitionOnly:"Will prefer high definition.",sd:"SD",standardDefinition:"Standard definition"},videothumbnail:{domute:"Mute",flip:"Flip",kick:"Kick out",moderator:"Moderator",mute:"Member is muted",muted:"Muted",remoteControl:"Remote control",show:"",videomute:"Member has stopped the camera"},welcomepage:{accessibilityLabel:{join:"Tap to join",roomname:"Enter room name"},appDescription:"Go ahead, video chat with the whole team. In fact, invite everyone you know. {{app}} is a fully encrypted, 100% open source video conferencing solution that you can use all day, every day, for free \u2014 with no account needed.",audioVideoSwitch:{audio:"Voice",video:"Video"},calendar:"Calendar",connectCalendarButton:"Connect your calendar",connectCalendarText:"",enterRoomTitle:"Start a new meeting",go:"GO",join:"JOIN",info:"Info",privacy:"Privacy",recentList:"Recent",recentListDelete:"Delete",recentListEmpty:"Your recent list is currently empty. Chat with your team and you will find all your recent meetings here.",reducedUIText:"",roomname:"Enter room name",roomnameHint:"Enter the name or URL of the room you want to join. You may make a name up, just let the people you are meeting know it so that they enter the same name.",sendFeedback:"Send feedback",terms:"Terms",title:"Secure, fully featured, and completely free video conferencing"}}},651,[]); -__d(function(a,n,r,e,l,o,s){l.exports={en:"Angla",af:"",az:"",bg:"Bulgara",cs:"",de:"Germana",el:"",eo:"Esperanto",es:"Hispana",fr:"Franca",hy:"Armena",it:"Itala",ja:"",ko:"",nb:"Norvega (Bukmola)",oc:"Okcitana",pl:"Pola",ptBR:"Portugala (Brazila)",ru:"Rusa",sk:"Slovaka",sl:"Slovena",sv:"Sveda",tr:"Turka",vi:"",zhCN:"\u0108ina (\u0108inuja)"}},652,[]); -__d(function(e,o,i,a,n,r,t){n.exports={addPeople:{add:"",countryNotSupported:"",countryReminder:"",disabled:"",failedToAdd:"",footerText:"",loading:"",loadingNumber:"",loadingPeople:"",noResults:"Nenio trovita",noValidNumbers:"",searchNumbers:"",searchPeople:"",searchPeopleAndNumbers:"",telephone:"",title:""},audioDevices:{bluetooth:"Bludento",headphones:"Kapa\u016dskultiloj",phone:"Telefono",speaker:"Parolanto"},audioOnly:{audioOnly:"Nur sono"},calendarSync:{addMeetingURL:"",confirmAddLink:"",error:{appConfiguration:"",generic:"",notSignedIn:""},join:"",joinTooltip:"",nextMeeting:"",noEvents:"",ongoingMeeting:"",permissionButton:"",permissionMessage:"",refresh:"",today:""},chat:{error:"",messagebox:"",nickname:{popover:"Elektu ka\u015dnomon",title:""},title:""},connectingOverlay:{joiningRoom:""},connection:{ATTACHED:"Kunligita",AUTHENTICATING:"A\u016dtentiganta",AUTHFAIL:"A\u016dtentigo malsukcesis",CONNECTED:"Konektita",CONNECTING:"Konektanta",CONNFAIL:"Konekto malsukcesis",DISCONNECTED:"Malkonektita",DISCONNECTING:"Malkonektanta",ERROR:"Eraro",RECONNECTING:"Reta eraro okazis. Rekonektanta..."},connectionindicator:{address:"Adreso:",bandwidth:"Anta\u016dkalkulita kapacito:",bitrate:"Bitrapido:",bridgeCount:"",connectedTo:"",framerate:"Bildrapido:",less:"Montri malpli",localaddress:"Loka adreso:",localaddress_plural:"Lokaj adresoj:",localport:"Loka pordo:",localport_plural:"Lokaj pordoj:",more:"Motri pli",packetloss:"Paketperdo:",quality:{good:"Bona",inactive:"Neaktiva",lost:"Perdita",nonoptimal:"Neideala",poor:"Malbona"},remoteaddress:"Fora adreso:",remoteaddress_plural:"Foraj adresoj:",remoteport:"Fora pordo:",remoteport_plural:"Foraj pordoj:",resolution:"Distingivo:",status:"Konekto:",transport:"Transporto:",turn:" (truni)"},dateUtils:{earlier:"",today:"",yesterday:""},deepLinking:{appNotInstalled:"",description:"",descriptionWithoutWeb:"",downloadApp:"El\u015duti la aplika\u0135on",launchWebButton:"",openApp:"",title:"",tryAgainButton:""},defaultLink:"ekz. {{url}}",deviceError:{cameraError:"Atingo de via kamerao malsukcesis",cameraPermission:"Eraro akirante permeson por kamerao",microphoneError:"Atingo de via mikrofono malsukcesis",microphonePermission:"Eraro akirante permeson por mikrofono"},deviceSelection:{noPermission:"Permeso ne estis donita",previewUnavailable:"Anta\u016drigardo ne disponeblas",selectADevice:"Elektu aparaton",testAudio:""},dialog:{accessibilityLabel:{liveStreaming:"Tuja Elsendfluo"},allow:"Permesi",alreadySharedVideoMsg:"",alreadySharedVideoTitle:"Nur unu video estas permesata samtempe.",applicationWindow:"Programa fenestro",Back:"Reen",cameraConstraintFailedError:"Via kamerao ne observas kelkajn neprajn limigojn.",cameraNotFoundError:"Kamerao ne trovita.",cameraNotSendingData:"Via kamerao ne atingeblas al ni. Bonvolu kontroli, \u0109u alia programo jam uzas la aparaton, elekti alian de la agorda menuo, a\u016d provu \u011disdatigi la programon.",cameraNotSendingDataTitle:"Kamerao ne atingeblas",cameraPermissionDeniedError:"Vi ne permesis uzi vian kameraon. Vi povas ali\u011di al la kunveno, sed aliaj ne povos vin vidi. Vi povas tion \u015dan\u011di per la kameraa butono en la adresbreto.",cameraUnknownError:"Ne eblas uzi la kameraon, pro kialo nekonata.",cameraUnsupportedResolutionError:"Via kamerao ne subtenas la bezonatan distingivon.",Cancel:"Rezigni",close:"Fermi",conferenceDisconnectMsg:"Eble kontrolu vian retkonekton. Rekonekto post {{seconds}} sekundoj\u2026",conferenceDisconnectTitle:"Vi malkonekti\u011dis.",conferenceReloadMsg:"Ni penas funkciigi \u0109i tion. Rekonekto post {{seconds}} sekundoj\u2026",conferenceReloadTitle:"Malfeli\u0109e, io misokazis.",confirm:"",confirmNo:"",confirmYes:"Jes",connectError:"Oj! Io misokazis kaj ni ne povis vin konekti al la kunveno.",connectErrorWithMsg:"Oj! Io misokazis kaj ni ne povis vin konekti al la kunveno: {{msg}}",connecting:"Konektanta",contactSupport:"Kontakti helpon",copy:"Kopii",dismiss:"Formeti",displayNameRequired:"",done:"Finita",enterDisplayName:"",error:"Eraro",externalInstallationMsg:"Vi devas instali nian ekranvidadan kromprogramon.",externalInstallationTitle:"Kromprogramo bezonata",goToStore:"Iri al la retvendejo",gracefulShutdown:"Nia servo nun estas eksterreta pro prizorgado. Bonvolu reprovi poste.",IamHost:"Mi estas la gastiganto",incorrectRoomLockPassword:"",incorrectPassword:"Mal\u011dusta pasvorto a\u016d uzantnomo",inlineInstallationMsg:"Vi devas instali nian ekranvidadan kromprogramon.",inlineInstallExtension:"Instali nun",internalError:"Oj! La jena eraro okazis: {{error}}",internalErrorTitle:"Interna eraro",kickMessage:"",kickParticipantButton:"",kickParticipantDialog:"",kickParticipantTitle:"",kickTitle:"",liveStreaming:"Tuja Elsendfluo",liveStreamingDisabledForGuestTooltip:"",liveStreamingDisabledTooltip:"",lockMessage:"\u015closo de la kunveno malsukcesis.",lockRoom:"",lockTitle:"\u015closo malsukcesis",logoutQuestion:"\u0108u vi certe volas adia\u016di kaj fini la kunvenon?",logoutTitle:"Adia\u016di",maxUsersLimitReached:"",maxUsersLimitReachedTitle:"",micConstraintFailedError:"Via mikrofono ne observas kelkajn neprajn limigojn.",micNotFoundError:"Mikrofono ne trovita.",micNotSendingData:"",micNotSendingDataTitle:"",micPermissionDeniedError:"Vi ne permesis uzi vian mikrofonon. Vi povas ali\u011di al la kunveno, sed aliaj ne povos vin a\u016ddi. Vi povas tion \u015dan\u011di per la kameraa butono en la adresbreto.",micUnknownError:"Ne eblas uzi mikrofonon pro kialo nekonata.",muteParticipantBody:"Vi ne povos \u011din malsilentigi, sed \u011di povas sin malsilentigi kiam ajn.",muteParticipantButton:"Silentigi",muteParticipantDialog:"",muteParticipantTitle:"\u0108u silentigi \u0109i tiun partoprenanton?",Ok:"Bone",passwordLabel:"",passwordNotSupported:"Agordo de kunvena pasvorto ne estas subtenata",passwordNotSupportedTitle:"",passwordRequired:"",popupError:"Via foliumilo forbaras \u015dprucfenestrojn de tiu \u0109i retejo. Bonvolu permesi \u015dprucfenestrojn en la prisekuraj agordoj de via fenestro kaj reprovi.",popupErrorTitle:"\u015cprucfenestro barita",recording:"Registranta",recordingDisabledForGuestTooltip:"",recordingDisabledTooltip:"",rejoinNow:"Reali\u011di nun",remoteControlAllowedMessage:"{{user}} akceptis vian teleregan peton!",remoteControlDeniedMessage:"{{user}} rifuzis vian teleregan peton!",remoteControlErrorMessage:"Eraro petante teleregajn permesojn de {{user}}!",remoteControlRequestMessage:"\u0108u vi permesos al {{user}} teleregi vian komputilon?",remoteControlShareScreenWarning:"Sciu, ke se vi premos \xabPermesi\xbb, vi kunhavigos vian ekranon!",remoteControlStopMessage:"Telerega seanco finita!",remoteControlTitle:"Labortabla telerego",Remove:"Forigi",removePassword:"",removeSharedVideoMsg:"\u0108u vi vere volas forigi vian kunhavatan videon?",removeSharedVideoTitle:"Forigi kunhavatan videon",reservationError:"Rezerva sistema eraro",reservationErrorMsg:"Kodo de eraro: {{code}}, mesa\u011do: {{msg}}",retry:"Reprovi",screenSharingFailedToInstall:"Oj! Via ekranvidada kromprogramo malsukcesis instalon.",screenSharingFailedToInstallTitle:"Ekranvidada kromprogramo malsukcesis instalon",screenSharingFirefoxPermissionDeniedError:"",screenSharingFirefoxPermissionDeniedTitle:"",screenSharingPermissionDeniedError:"Oj! Io misokazis pri la permesoj al via ekranvidada kromprogramo. Bonvolu reviziti kaj reprovi.",serviceUnavailable:"Servo ne disponeblas",sessTerminated:"Voko finita",Share:"Kunhavi",shareVideoLinkError:"Bonvolu doni \u011dustan ligilon de YouTube",shareVideoTitle:"Kunhavi videon",shareYourScreen:"Kunhavigi vian ekranon",shareYourScreenDisabled:"",shareYourScreenDisabledForGuest:"",startLiveStreaming:"Fini tujan elsendfluon",startRecording:"Fini registradon",startRemoteControlErrorMessage:"Eraro okazis dum komenco de la telerega seanco!",stopLiveStreaming:"Fini tujan elsendfluon",stopRecording:"Fini registradon",stopRecordingWarning:"\u0108u vi certe volas fini la registradon?",stopStreamingWarning:"\u0108u vi certe volas fini la tujan elsendfluon?",streamKey:"",Submit:"Sendi",thankYou:"Dankon \u0109ar vi uzas {{appName}}!",token:"\u0135etono",tokenAuthFailed:"Pardonu, vi ne rajtas ali\u011di al \u0109i tiu voko.",tokenAuthFailedTitle:"A\u016dtentigo malsukcesis",transcribing:"",unlockRoom:"",userPassword:"uzantopasvorto",WaitForHostMsg:"",WaitForHostMsgWOk:"",WaitingForHost:"Atendanta la gastigan komputilon ...",Yes:"Jes",yourEntireScreen:"Via tuta ekrano"},"\x05dialog":{accessibilityLabel:{}},dialOut:{statusMessage:"nun estas {{status}}"},feedback:{average:"Mezbona",bad:"Malbona",detailsLabel:"",good:"Bona",rateExperience:"Bonvolu priskribi vian sperton.",veryBad:"Tre malbona",veryGood:"Tre bona"},"\x05feedback":{},incomingCall:{answer:"",audioCallTitle:"",decline:"Formeti",productLabel:"",videoCallTitle:""},info:{accessibilityLabel:"",addPassword:"",cancelPassword:"",conferenceURL:"",country:"",dialANumber:"",dialInConferenceID:"",dialInNotSupported:"",dialInNumber:"",dialInSummaryError:"",dialInTollFree:"",genericError:"",inviteLiveStream:"",invitePhone:"",invitePhoneAlternatives:"",inviteURLFirstPartGeneral:"",inviteURLFirstPartPersonal:"",inviteURLSecondPart:"",liveStreamURL:"Tuja Elsendfluo",moreNumbers:"",noNumbers:"",noPassword:"Neniu",noRoom:"",numbers:"",password:"",title:"Kunhavi",tooltip:"",label:""},"\x05info":{},inviteDialog:{alertText:"",header:"",searchCallOnlyPlaceholder:"Enigu telefonnumeron",searchPeopleOnlyPlaceholder:"",searchPlaceholder:"",send:""},inlineDialogFailure:{msg:"Ni iom faletis.",retry:"Bonvolu reprovi",support:"Helpo",supportMsg:"Se tio \u0109i ripeti\u011dos, kontakti\u011du kun"},keyboardShortcuts:{focusLocal:"Fokusi vian propran videon",focusRemote:"Fokusi videon de alia vokano",fullScreen:"\u015calti / Mal\u015dalti tutekranan re\u011dimon",keyboardShortcuts:"Fulmoklavoj",localRecording:"",mute:"Silentigi a\u016d malsilentigi vian mikrofonon",pushToTalk:"Premi por paroli",raiseHand:"Levi a\u016d mallevi manon",showSpeakerStats:"Montri statistikon pri parolintoj",toggleChat:"Malfermi a\u016d fermi la babilon",toggleFilmstrip:"",toggleScreensharing:"Komuti inter kameraa kaj ekrana vidado",toggleShortcuts:"",videoMute:"\u015calti a\u016d mal\u015dalti vian kameraon"},"\x05keyboardShortcuts":{},liveStreaming:{busy:"Ni penas liberigi tujajn elsendilojn. Bonvolu reprovi post kelkaj minutoj.",busyTitle:"\u0108iuj elsendiloj nun okupi\u011das",changeSignIn:"",choose:"",chooseCTA:"",enterStreamKey:"",error:"Tuja elsendfluo malsukcesis. Bonvolu provi denove.",errorAPI:"",errorLiveStreamNotEnabled:"",expandedOff:"",expandedOn:"",expandedPending:"",failedToStart:"Tuja elsendfluo malsukcesis komenci",getStreamKeyManually:"",invalidStreamKey:"",off:"Tuja elsendfluo fini\u011dis",on:"Tuja Elsendfluo",pending:"Komencanta Tujan Elsendfluon...",serviceName:"",signedInAs:"",signIn:"",signInCTA:"",signOut:"",start:"Fini tujan elsendfluon",streamIdHelp:"",unavailableTitle:"Tuja elsendfluo ne disponeblas"},"\x05liveStreaming":{},localRecording:{clientState:{off:"",on:"",unknown:""},dialogTitle:"",duration:"",durationNA:"",encoding:"",label:"",labelToolTip:"",localRecording:"",me:"Mi",messages:{engaged:"",finished:"",finishedModerator:"",notModerator:""},moderator:"Kunvenestro",no:"",participant:"",participantStats:"",sessionToken:"",start:"Fini registradon",stop:"Fini registradon",yes:"Jes"},"\x05localRecording":{},lockRoomPassword:"Pasvorto",lockRoomPasswordUppercase:"Pasvorto",me:"mi",notify:{connectedOneMember:"",connectedThreePlusMembers:"",connectedTwoMembers:"",disconnected:"malkonektita",focus:"Kunvena atento",focusFail:"{{component}} ne atingelbas - reprovo post {{ms}} sekundoj",grantedTo:"Kunvenestraj rajtoj donitaj al {{to}}!",invitedOneMember:"",invitedThreePlusMembers:"",invitedTwoMembers:"",kickParticipant:"",me:"Mi",moderator:"Kunvenestraj rajtoj donitaj!",muted:"Vi komencis la interparolon silente.",mutedTitle:"Vi estas silentigita!",mutedRemotelyTitle:"",mutedRemotelyDescription:"",passwordRemovedRemotely:"",passwordSetRemotely:"",raisedHand:"",somebody:"Iu",startSilentTitle:"",startSilentDescription:"",suboptimalExperienceDescription:"",suboptimalExperienceTitle:"",unmute:"",newDeviceCameraTitle:"",newDeviceAudioTitle:"",newDeviceAction:""},passwordSetRemotely:"agordita de alia partoprenanto",passwordDigitsOnly:"",poweredby:"povigita de",presenceStatus:{busy:"",calling:"",connected:"Konektita",connecting:"Konektanta",connecting2:"Konektanta",disconnected:"Malkonektita",expired:"",ignored:"",initializingCall:"",invited:"",rejected:"",ringing:""},"\x05presenceStatus":{},profile:{setDisplayNameLabel:"Agordi vian videblan nomon",setEmailInput:"Enigu retpo\u015dtadreson",setEmailLabel:"Retpo\u015dtadreso ligita al Gravatar",title:"Profilo"},recording:{authDropboxText:"",availableSpace:"",beta:"",busy:"Ni penas liberigi registrilojn. Bonvolu reprovi post kelkaj minutoj.",busyTitle:"\u0108iuj registriloj nun okupi\u011das",error:"Registrado malsukcesis. Bonvolu provi denove.",expandedOff:"Registrado finita",expandedOn:"",expandedPending:"",failedToStart:"Registrado malsukcesis komenci",fileSharingdescription:"",live:"",loggedIn:"",off:"Registrado finita",on:"Registranta",pending:"",rec:"",serviceDescription:"",serviceName:"",signIn:"",signOut:"",unavailable:"",unavailableTitle:"Registrado ne disponeblas"},"\x05recording":{},sectionList:{pullToRefresh:""},settings:{calendar:{about:"",disconnect:"Malkonektita",microsoftSignIn:"",signedIn:"",title:""},devices:"",followMe:"\u0108iuj sekvas min",language:"",loggedIn:"",moderator:"Kunvenestro",more:"",name:"Nomo",noDevice:"Neniu",selectAudioOutput:"Sona eligo",selectCamera:"Kamerao",selectMic:"Mikrofono",startAudioMuted:"\u0108iuj komenci\u011das silentaj",startVideoMuted:"\u0108iuj komenci\u011das ka\u015ditaj",title:"Agordoj"},"\x05settings":{calendar:{}},settingsView:{alertOk:"",alertTitle:"Averto",alertURLText:"",buildInfoSection:"",conferenceSection:"",displayName:"",email:"",header:"Agordoj",profileSection:"Profilo",serverURL:"",startWithAudioMuted:"",startWithVideoMuted:"",version:""},share:{dialInfoText:"",mainText:""},speaker:"Parolanto",speakerStats:{hours:"{{count}}h",minutes:"{{count}}m",name:"Nomo",seconds:"{{count}}s",speakerStats:"Statistikoj pri parolintoj",speakerTime:"Tempoj de parolintoj"},startupoverlay:{policyText:" ",title:"{{app}} bezonas viajn mikrofonon kaj kameraon."},suspendedoverlay:{rejoinKeyTitle:"Reali\u011di",text:"Premu la butonon Reali\u011di por rekonekti\u011di.",title:"Via vidvoko estis interrompita, \u0109ar la komputilo ekdormis."},toolbar:{accessibilityLabel:{audioOnly:"",audioRoute:"",callQuality:"",cc:"",chat:"",document:"Malfermi / Fermi komunan dokumenton",feedback:"",fullScreen:"",hangup:"",invite:"Inviti homojn",kick:"",localRecording:"",lockRoom:"",moreActions:"",moreActionsMenu:"",mute:"",pip:"",profile:"Redakti vian profilon",raiseHand:"",recording:"",remoteMute:"",Settings:"",sharedvideo:"",shareRoom:"",shareYourScreen:"",shortcuts:"",show:"",speakerStats:"",tileView:"",toggleCamera:"",videomute:"",videoblur:""},addPeople:"Aldoni homojn al via voko",audioOnlyOff:"",audioOnlyOn:"",audioRoute:"",authenticate:"A\u016dtentigi",callQuality:"",chat:"Malfermi / Fermi babilon",closeChat:"",documentClose:"Malfermi / Fermi komunan dokumenton",documentOpen:"Malfermi / Fermi komunan dokumenton",enterFullScreen:"",enterTileView:"",exitFullScreen:"",exitTileView:"",feedback:"",hangup:"Foriri",invite:"Inviti homojn",login:"Saluti",logout:"Adia\u016di",lowerYourHand:"",moreActions:"",mute:"Siletnigi / Malsilentigi",openChat:"",pip:"",profile:"Redakti vian profilon",raiseHand:"Levi / Mallevi vian manon",raiseYourHand:"",Settings:"Agordoj",sharedvideo:"Kunhavi videon de YouTube",shareRoom:"",shortcuts:"",speakerStats:"Statistikoj pri parolintoj",startScreenSharing:"",startSubtitles:"",stopScreenSharing:"",stopSubtitles:"",stopSharedVideo:"",talkWhileMutedPopup:"\u0108u vi klopodas paroli? Vi estas silentigita.",tileViewToggle:"",toggleCamera:"",videomute:"\u015calti / Mal\u015dalti kameraon",startvideoblur:"",stopvideoblur:""},"\x05toolbar":{accessibilityLabel:{}},transcribing:{ccButtonTooltip:"",error:"Registrado malsukcesis. Bonvolu provi denove.",expandedLabel:"",failedToStart:"",labelToolTip:"",off:"",pending:"",start:"",stop:"",tr:""},"\x05transcribing":{},userMedia:{androidGrantPermissions:"Elektu Permesi kiam via foliumilo petos permesojn.",chromeGrantPermissions:"Elektu Permesi kiam via foliumilo petos permesojn.",edgeGrantPermissions:"Elektu Jes kiam via foliumilo petos permesojn.",electronGrantPermissions:"Bonvolu doni la permeson uzi viajn kameraon kaj mikrofonon",firefoxGrantPermissions:"Elektu Havigi elektitan aparaton kiam via foliumilo petos permesojn.",iexplorerGrantPermissions:"Elektu Bone kiam via foliumilo petos permesojn.",nwjsGrantPermissions:"Bonvolu doni la permeson uzi viajn kameraon kaj mikrofonon",operaGrantPermissions:"Elektu Permesi kiam via foliumilo petos permesojn.","react-nativeGrantPermissions":"Elektu Permesi kiam via foliumilo petos permesojn.",safariGrantPermissions:"Elektu Bone kiam via foliumilo petos permesojn."},videoSIPGW:{busy:"",busyTitle:"",errorAlreadyInvited:"",errorInvite:"",errorInviteFailed:"",errorInviteFailedTitle:"",errorInviteTitle:"",pending:""},videoStatus:{audioOnly:"",audioOnlyExpanded:"",callQuality:"",hd:"AD",highDefinition:"Altkvalita distingivo",labelTooiltipNoVideo:"",labelTooltipAudioOnly:"Nure sona re\u011dimo \u015daltita",ld:"MD",lowDefinition:"Malaltkvalito distingivo",onlyAudioAvailable:"",onlyAudioSupported:"",p2pEnabled:"Samtavola re\u011dimo \u015daltita",p2pVideoQualityDescription:"",recHighDefinitionOnly:"Preferos altkvalitan distingivon.",sd:"ND",standardDefinition:"Normalkvalita distingivo"},videothumbnail:{domute:"Silentigi",flip:"Renversi",kick:"Forpeli",moderator:"Kunvenestro",mute:"Partoprenanto silentigita",muted:"Silentigita",remoteControl:"Defora rego",show:"",videomute:""},welcomepage:{accessibilityLabel:{join:"",roomname:"Enigu nomon de \u0109ambro"},appDescription:"",audioVideoSwitch:{audio:"",video:""},calendar:"",connectCalendarButton:"",connectCalendarText:"",enterRoomTitle:"",go:"IRI",join:"ALI\u011cI",info:"",privacy:"Privateco",recentList:"",recentListDelete:"",recentListEmpty:"",reducedUIText:"",roomname:"Enigu nomon de \u0109ambro",roomnameHint:"",sendFeedback:"Sendi rimarkojn",terms:"Kondi\u0109oj",title:""}}},653,[]); -__d(function(o,a,n,e,r,s,i){r.exports={en:"Ingl\xe9s",af:"Africano",az:"Azerbaijani",bg:"B\xfalgaro",cs:"Czech",de:"Alem\xe1n",el:"Griego",eo:"Esperanto",es:"Espa\xf1ol",fr:"Franc\xe9s",hy:"Armenio",it:"Italiano",ja:"Jopones",ko:"Coreano",nb:"Noruego (bokmal)",oc:"Occitano",pl:"Polaco",ptBR:"Portugu\xe9s (Brasil)",ru:"Ruso",sk:"Eslovaco",sl:"Esloveno",sv:"Sueco",tr:"Turco",vi:"Vietnamita",zhCN:"Chino (China)"}},654,[]); -__d(function(e,a,o,r,i,n,t){i.exports={addPeople:{add:"Invitar",countryNotSupported:"Aun no contamos con soporte a este destino.",countryReminder:"\xbfLlamando fuera de los Estados Unidos? \xa1Por favor, aseg\xfarese de empezar con el c\xf3digo de pa\xeds!",disabled:"No puede invitar a otras personas.",failedToAdd:"Error al agregar participantes",footerText:"La marcaci\xf3n est\xe1 desactivada.",loading:"B\xfasqueda de personas y n\xfameros de tel\xe9fono",loadingNumber:"Validando el n\xfamero de tel\xe9fono",loadingPeople:"Buscando contactos a invitar",noResults:"No se encontraron coincidencias",noValidNumbers:"Por favor ingrese un n\xfamero de tel\xe9fono",searchNumbers:"Agregar n\xfameros de tel\xe9fono",searchPeople:"B\xfasqueda de personas",searchPeopleAndNumbers:"Buscar personas o a\xf1adir sus n\xfameros de tel\xe9fono",telephone:"Tel\xe9fono: {{number}}",title:"Invitar a otras personas a esta reuni\xf3n"},audioDevices:{bluetooth:"Bluetooth",headphones:"Aud\xedfonos",phone:"Tel\xe9fono",speaker:"Orador"},audioOnly:{audioOnly:"Solo audio"},calendarSync:{addMeetingURL:"Agregar un v\xednculo a la reuni\xf3n",confirmAddLink:"\xbfQuiere a\xf1adir un enlace de Jitsi a este evento?",error:{appConfiguration:"La integraci\xf3n del calendario no se est\xe1 configurada correctamente",generic:"Se ha producido un error. Compruebe la configuraci\xf3n del calendario o pruebe a recargarlo",notSignedIn:"Se ha producido un error de autenticaci\xf3n para ver los eventos del calendario. Compruebe la configuraci\xf3n del calendario e intente iniciar sesi\xf3n de nuevo"},join:"Unir",joinTooltip:"Unirse a la reuni\xf3n",nextMeeting:"pr\xf3xima reuni\xf3n",noEvents:"No hay eventos pr\xf3ximos programados.",ongoingMeeting:"reuni\xf3n en proceso",permissionButton:"Abrir ajustes",permissionMessage:"Los permisos al calendario son necesarios para ver sus reuniones en la aplicaci\xf3n.",refresh:"Actualizar calendario",today:"Hoy"},chat:{error:"Error: su mensaje \"{{originalText}}\" no fue enviado. Motivo: {{error}}",messagebox:"Escriba un mensaje",nickname:{popover:"Seleccione un apodo",title:"Introduzca un apodo para usar el chat"},title:"Chat"},connectingOverlay:{joiningRoom:"Conect\xe1ndose a su reuni\xf3n\u2026"},connection:{ATTACHED:"Adjunto",AUTHENTICATING:"Autenticando",AUTHFAIL:"Fallo\u0301 la autenticacio\u0301n",CONNECTED:"Conectado",CONNECTING:"Conectando",CONNFAIL:"Conexi\xf3n fallida",DISCONNECTED:"Desconectado",DISCONNECTING:"Desconectando",ERROR:"Error",RECONNECTING:"Ocurri\xf3 un problema en la red. Reconectando..."},connectionindicator:{address:"Direcci\xf3n:",bandwidth:"Ancho de banda estimado:",bitrate:"Tasa de bits:",bridgeCount:"Contador del servidor: ",connectedTo:"Conectado a:",framerate:"Tasa de cuadros:",less:"Mostrar menos",localaddress:"Direcci\xf3n local:",localaddress_plural:"Direcciones locales:",localport:"Puerto local:",localport_plural:"Puertos locales:",more:"Ver m\xe1s",packetloss:"P\xe9rdida de paquetes:",quality:{good:"Bueno",inactive:"Inactivo",lost:"Perdida",nonoptimal:"No \xf3ptima",poor:"Pobre"},remoteaddress:"Direcci\xf3n remota:",remoteaddress_plural:"Direcciones remotas:",remoteport:"Puerto remoto:",remoteport_plural:"Puertos remotos:",resolution:"Resolucio\u0301n:",status:"Conexi\xf3n:",transport:"Transporte:",transport_plural:"Transportes:",turn:" (turnar)"},dateUtils:{earlier:"Anterior",today:"Hoy",yesterday:"Ayer"},deepLinking:{appNotInstalled:"Usted necesita la aplicaci\xf3n m\xf3vil {{app}} para unirse a esta reuni\xf3n en su tel\xe9fono.",description:"\xbfNo pas\xf3 nada? Hemos intentado iniciar su reuni\xf3n en la aplicaci\xf3n de escritorio {{app}}. intente de nuevo o inicie en la aplicaci\xf3n web {{app}}.",descriptionWithoutWeb:"",downloadApp:"Descargar la app",launchWebButton:"Iniciar en web",openApp:"Continuar a la aplicaci\xf3n",title:"Iniciar su reuni\xf3n en {{app}}...",tryAgainButton:"Intentar de nuevo en el escritorio"},defaultLink:"ej. {{url}}",deviceError:{cameraError:"Error al acceder a su c\xe1mara",cameraPermission:"Error al obtener permiso de la c\xe1mara",microphoneError:"Error al acceder a tu micr\xf3fono",microphonePermission:"Error al obtener permiso del micr\xf3fono"},deviceSelection:{noPermission:"Permiso no concedido",previewUnavailable:"Vista previa no disponible",selectADevice:"Seleccionar un dispositivo",testAudio:"Reproducir un sonido de prueba"},dialog:{accessibilityLabel:{liveStreaming:"Transmisi\xf3n en Vivo"},allow:"Permitir",alreadySharedVideoMsg:"",alreadySharedVideoTitle:"Solo se permite un video compartido a la vez",applicationWindow:"Ventana de aplicaci\xf3n",Back:"Anterior",cameraConstraintFailedError:"Su c\xe1mara no satisface algunos de los requerimientos.",cameraNotFoundError:"No se encontr\xf3 la c\xe1mara.",cameraNotSendingData:"No podemos acceder a su c\xe1mara. Verifique si otra aplicaci\xf3n est\xe1 usando este dispositivo, seleccione otro dispositivo en el men\xfa de configuraci\xf3n o intente volver a cargar la aplicaci\xf3n.",cameraNotSendingDataTitle:"No se puede acceder a la c\xe1mara",cameraPermissionDeniedError:"No ha otorgado permisos para usar su c\xe1mara. Puede unirse a la conferencia, pero no lo podr\xe1n ver. Utilice el bot\xf3n en la barra de direcci\xf3n para solucionar esto.",cameraUnknownError:"No se puede usar su c\xe1mara por motivos desconocidos.",cameraUnsupportedResolutionError:"Su c\xe1mara no soporta la resoluci\xf3n de video.",Cancel:"Cancelar",close:"Cerrar",conferenceDisconnectMsg:"Es posible que desee comprobar la conexi\xf3n de red. Reconectando en {{seconds}} segundos...",conferenceDisconnectTitle:"Ha sido desconectado.",conferenceReloadMsg:"Estamos tratando de arreglar esto. Reconectando en {{seconds}} segundos...",conferenceReloadTitle:"Desafortunadamente, algo sali\xf3 mal.",confirm:"Confirmar",confirmNo:"No",confirmYes:"S\xed",connectError:"\xa1Oops! Algo salio mal y no fue posible conectarnos a la conferencia.",connectErrorWithMsg:"\xa1Oops! Algo salio mal y no fue posible conectarnos a la conferencia: {{msg}}",connecting:"Conectando",contactSupport:"Contacte al soporte t\xe9cnico",copy:"Copiar",dismiss:"Descartar",displayNameRequired:"",done:"Ninguno",enterDisplayName:"",error:"Error",externalInstallationMsg:"Necesita instalar nuestra extensi\xf3n para compartir escritorio.",externalInstallationTitle:"Extensi\xf3n requerida",goToStore:"Ir al webstore",gracefulShutdown:"Nuestro servicio se encuentra en mantenimiento. Por favor, intente m\xe1s tarde.",IamHost:"Yo soy el anfitri\xf3n",incorrectRoomLockPassword:"",incorrectPassword:"Nombre de usuario o contrase\xf1a incorrecta",inlineInstallationMsg:"Necesita instalar nuestra extensi\xf3n para compartir escritorio.",inlineInstallExtension:"Instalar ahora",internalError:"\xa1Oops! Algo sali\xf3 mal. El siguiente error ocurri\xf3: {{error}}",internalErrorTitle:"Error interno",kickMessage:"",kickParticipantButton:"Expulsar",kickParticipantDialog:"\xbfSeguro que quiere expulsar a este participante?",kickParticipantTitle:"\xbfSilenciar a este participante?",kickTitle:"",liveStreaming:"Emisi\xf3n en Directo",liveStreamingDisabledForGuestTooltip:"Los invitados no pueden iniciar transmisiones en vivo.",liveStreamingDisabledTooltip:"Iniciar transmisi\xf3n en vivo deshabilitado.",lockMessage:"No se pudo bloquear la conferencia.",lockRoom:"",lockTitle:"El bloqueo fall\xf3",logoutQuestion:"\xbfEst\xe1 seguro que desea salir y detener la conferencia?",logoutTitle:"Cerrar sesi\xf3n",maxUsersLimitReached:"",maxUsersLimitReachedTitle:"",micConstraintFailedError:"El micr\xf3fono no satisface algunos de los requerimientos.",micNotFoundError:"No se encontr\xf3 el micr\xf3fono.",micNotSendingData:"",micNotSendingDataTitle:"",micPermissionDeniedError:"No ha otorgado permisos para usar su micr\xf3fono. Puede unirse a la conferencia, pero no lo podr\xe1n escuchar. Utilice el bot\xf3n en la barra de direcci\xf3n para solucionar esto.",micUnknownError:"No se puede usar su micr\xf3fono por motivos desconocidos.",muteParticipantBody:"No podr\xe1s quitarles el modo en silencio, pero ellos pueden quit\xe1rselo en cualquier momento.",muteParticipantButton:"Control de escritorio remoto",muteParticipantDialog:"\xbfSeguro que quiere silenciar a este participante? No podr\xe1 revertir esta acci\xf3n, pero el participante podr\xe1 hacerlo en cualquier momento",muteParticipantTitle:"\xbfSilenciar a este participante?",Ok:"Aceptar",passwordLabel:"",passwordNotSupported:"No se soporta establecer contrase\xf1a para una reuni\xf3n.",passwordNotSupportedTitle:"",passwordRequired:"",popupError:"Su navegador est\xe1 bloqueando las ventanas emergentes de este sitio. Habilite las ventanas emergentes en la configuraci\xf3n de seguridad de su navegador y vuelva a intentarlo.",popupErrorTitle:"Ventana emergente bloqueada",recording:"Grabando",recordingDisabledForGuestTooltip:"Los hu\xe9spedes no pueden iniciar grabaciones.",recordingDisabledTooltip:"Inicio de grabaci\xf3n desactivado.",rejoinNow:"Reunirse ahora",remoteControlAllowedMessage:"{{user}} ha aceptado tu solicitud de control remoto!",remoteControlDeniedMessage:"{{user}} ha rechazado tu solicitud de control remoto!",remoteControlErrorMessage:"Ha ocurrido un error tratando de solicitar permiso de control remoto de {{user}}!",remoteControlRequestMessage:"\xbfPermitir\xe1 que {{user}} controle remotamente su escritorio?",remoteControlShareScreenWarning:"\xa1Tenga en cuenta que si presiona \"Permitir\" usted compartir\xe1 su pantalla!",remoteControlStopMessage:"La sesi\xf3n de control remoto ha finalizado!",remoteControlTitle:"Control de escritorio remoto",Remove:"Eliminar",removePassword:"",removeSharedVideoMsg:"\xbfEst\xe1 seguro que desea eliminar su v\xeddeo compartido?",removeSharedVideoTitle:"Eliminar video compartido",reservationError:"Error del sistema de reservaci\xf3n",reservationErrorMsg:"C\xf3digo de error: {{code}}, message: {{msg}}",retry:"Reintentar",screenSharingFailedToInstall:"Oops! Su extensi\xf3n de uso compartido de pantalla no se pudo instalar.",screenSharingFailedToInstallTitle:"La extensi\xf3n para compartir la pantalla no se pudo instalar",screenSharingFirefoxPermissionDeniedError:"Algo sali\xf3 mal mientras trat\xe1bamos de compartir la pantalla. Por favor, aseg\xfarese de que nos ha dado permiso para hacerlo. ",screenSharingFirefoxPermissionDeniedTitle:"OOPS! \xa1 No pudimos empezar a compartir la pantalla!",screenSharingPermissionDeniedError:"Oops! Algo sali\xf3 mal con sus permisos de extensi\xf3n para compartir pantalla. Por favor, vuelva a cargar e intente de nuevo.",serviceUnavailable:"Servicio no disponible",sessTerminated:"Llamada terminada",Share:"Compartir",shareVideoLinkError:"Por favor introduzca un enlace correcto de Youtube.",shareVideoTitle:"Compartir un v\xeddeo",shareYourScreen:"Compartir su pantalla",shareYourScreenDisabled:"Pantalla compartida desactivada.",shareYourScreenDisabledForGuest:"Los hu\xe9spedes no pueden compartir la pantalla.",startLiveStreaming:"Iniciar transmisi\xf3n en vivo",startRecording:"Iniciar la grabaci\xf3n",startRemoteControlErrorMessage:"\xa1Se ha producido un error al intentar iniciar la sesi\xf3n de control remoto!",stopLiveStreaming:"Detener transmisi\xf3n en vivo",stopRecording:"Parar grabaci\xf3n",stopRecordingWarning:"\xbfEst\xe1s seguro que quieres parar la grabaci\xf3n?",stopStreamingWarning:"\xbfEstas seguro que quieres parar la retransmisi\xf3n en directo?",streamKey:"Tecla de transmisi\xf3n en directo",Submit:"Enviar",thankYou:"\xa1Gracias por usar {{appName}}!",token:"token",tokenAuthFailed:"Lo siento, usted no tiene permiso para unirse a este llamada.",tokenAuthFailedTitle:"Fallo\u0301 la autenticacio\u0301n",transcribing:"Transcribiendo",unlockRoom:"",userPassword:"contrase\xf1a del usuario",WaitForHostMsg:"La conferencia {{room}} a\xfan no ha comenzado. Si usted es el anfitri\xf3n, por favor autent\xedquese. De lo contrario, espere a que llegue el anfitri\xf3n.",WaitForHostMsgWOk:"La conferencia {{room}} a\xfan no ha comenzado. Si usted es el anfitri\xf3n, presione Ok para autenticar. De lo contrario, espere a que llegue el anfitri\xf3n.",WaitingForHost:"Esperando al anfitri\xf3n ...",Yes:"S\xed",yourEntireScreen:"Su pantalla completa"},dialOut:{statusMessage:"esta {{status}}"},feedback:{average:"Promedio",bad:"Malo",detailsLabel:"Nos puede decir m\xe1s al respecto.",good:"Bueno",rateExperience:"Valore la experiencia de su reuni\xf3n.",veryBad:"Muy Mal",veryGood:"Muy Bien"},incomingCall:{answer:"Contestar",audioCallTitle:"Llamada entrante",decline:"Descartar",productLabel:"de Jitsi Meet",videoCallTitle:"Llamada de v\xeddeo"},info:{accessibilityLabel:"Mostrar Informaci\xf3n",addPassword:"",cancelPassword:"",conferenceURL:"Enlace:",country:"Pa\xeds",dialANumber:"Para unirse a su reuni\xf3n, marque uno de estos n\xfameros y luego ingrese el pin.",dialInConferenceID:"PIN:",dialInNotSupported:"Lo sentimos, actualmente no se admite la marcaci\xf3n.",dialInNumber:"Marcar:",dialInSummaryError:"Error al obtener informaci\xf3n de acceso telef\xf3nico ahora. Por favor, int\xe9ntelo de nuevo m\xe1s tarde.",dialInTollFree:"Llamada gratuita",genericError:"Ups, algo sali\xf3 mal.",inviteLiveStream:"Marcado de un solo toque: {{number}},,{{conferenceID}}#",invitePhone:"",invitePhoneAlternatives:"",inviteURLFirstPartGeneral:"Usted est\xe1 invitado a unirse a una reuni\xf3n.",inviteURLFirstPartPersonal:"{{name}} te esta invitando a una sesi\xf3n.\n",inviteURLSecondPart:"",liveStreamURL:"Transmisi\xf3n en vivo:",moreNumbers:"M\xe1s n\xfameros",noNumbers:"Sin n\xfameros a marcar.",noPassword:"Ninguno",noRoom:"No se especific\xf3 la sala a marcar.",numbers:"N\xfameros de marcado",password:"",title:"Compartir",tooltip:"Compartir el enlace y la informaci\xf3n de acceso telef\xf3nico para esta reuni\xf3n",label:"Informaci\xf3n de la sesi\xf3n"},inviteDialog:{alertText:"Error al invitar a algunos participantes ",header:"Invitar",searchCallOnlyPlaceholder:"Introduzca n\xfamero de t\xe9lefono",searchPeopleOnlyPlaceholder:"Buscar participantes ",searchPlaceholder:"Participante o n\xfamero de tel\xe9fono ",send:"Enviar"},inlineDialogFailure:{msg:"Tuvimos un peque\xf1o tropiezo.",retry:"Intentar de nuevo",support:"Soporte",supportMsg:"Si esto sigue ocurriendo, cont\xe1ctenos para"},keyboardShortcuts:{focusLocal:"Enf\xf3cate en tu video",focusRemote:"Centrarse en el v\xeddeo de otra persona",fullScreen:"Ver o salir de pantalla completa",keyboardShortcuts:"Atajos de teclado",localRecording:"Mostrar u ocultar controles de grabaci\xf3n locales",mute:"Activar o desactivar micr\xf3fono",pushToTalk:"Presione para hablar",raiseHand:"Levantar o bajar la mano",showSpeakerStats:"Mostrar estad\xedsticas del locutor",toggleChat:"Abrir o cerrar panel de chat",toggleFilmstrip:"Mostrar/Ocultar miniaturas de video",toggleScreensharing:"Cambiar entre c\xe1mara y compartir pantalla",toggleShortcuts:"Mostrar/ocultar atajos del teclado",videoMute:"Activar o desactivar tu c\xe1mara"},liveStreaming:{busy:"Estamos trabajando para liberar recursos de transmisi\xf3n. Por favor, int\xe9ntelo de nuevo en unos minutos.",busyTitle:"Todos los streamers est\xe1n ocupados actualmente",changeSignIn:"Cambiar cuentas.",choose:"Elija una secuencia en directo",chooseCTA:"Elija una opci\xf3n de streaming. Actualmente est\xe1 registrado como {{email}}.",enterStreamKey:"Ingrese su clave de YouTube live stream aqu\xed.",error:"La transmisi\xf3n en vivo fall\xf3. Por favor, int\xe9ntelo de nuevo.",errorAPI:"Se produjo un error al acceder a las transmisiones de YouTube. Por favor intente iniciando sesi\xf3n nuevamente.",errorLiveStreamNotEnabled:"La transmisi\xf3n en vivo no est\xe1 activada en {{email}}. Por favor, active la transmisi\xf3n en vivo o inicie sesi\xf3n en una cuenta con transmisi\xf3n en vivo activada.",expandedOff:"La transmisi\xf3n en vivo se ha detenido",expandedOn:"La reuni\xf3n se est\xe1 transmitiendo a YouTube.",expandedPending:"La transmisi\xf3n en vivo se est\xe1 iniciando ...",failedToStart:"La transmisi\xf3n en vivo no se puso iniciar",getStreamKeyManually:"No pudimos buscar ninguna transmisi\xf3n en vivo. Trate de obtener su clave de transmisi\xf3n en vivo de YouTube.",invalidStreamKey:"La clave de transmisi\xf3n en vivo puede ser incorrecta.",off:"Transmisi\xf3n en vivo detenida",on:"Emisi\xf3n en Directo",pending:"Iniciando Emisi\xf3n en Directo...",serviceName:"Servicio de streaming en vivo",signedInAs:"Actualmente est\xe1 conectado como:",signIn:"Iniciar sesi\xf3n con Google",signInCTA:"Iniciar sesi\xf3n o ingrese su clave de transmisi\xf3n en vivo de YouTube.",signOut:"Cerrar sesi\xf3n",start:"Iniciar una transmisi\xf3n en vivo",streamIdHelp:"\xbfQu\xe9 es esto?",unavailableTitle:"Transmisi\xf3n en vivo no disponible"},localRecording:{clientState:{off:"Apagado",on:"Encendido",unknown:"Desconocido"},dialogTitle:"Controles de grabaci\xf3n local",duration:"Duraci\xf3n",durationNA:"N/A",encoding:"Codificaci\xf3n",label:"GLO",labelToolTip:"Grabaci\xf3n local activada",localRecording:"Grabaci\xf3n local",me:"Yo",messages:{engaged:"Grabaci\xf3n local activada.",finished:"Sesi\xf3n de grabaci\xf3n {{token}} terminada. Por favor, env\xede el archivo grabado al moderador.",finishedModerator:"Sesi\xf3n de grabaci\xf3n {{token}} terminado. Se ha guardado la grabaci\xf3n de la pista local. Por favor pida a los dem\xe1s participantes que presenten sus grabaciones.",notModerator:"Usted no es el moderador. No puede iniciar o detener la grabaci\xf3n local."},moderator:"Moderador",no:"No",participant:"Participante",participantStats:"Estad\xedstica de participantes",sessionToken:"Token de sesi\xf3n",start:"Iniciar grabaci\xf3n",stop:"Detener grabaci\xf3n",yes:"S\xed"},lockRoomPassword:"contrase\xf1a",lockRoomPasswordUppercase:"Contrase\xf1a",me:"yo",notify:{connectedOneMember:"{{name}} se uni\xf3 a la sesi\xf3n ",connectedThreePlusMembers:"{{name}} and {{count}} otros se unieron a la sesi\xf3n",connectedTwoMembers:"{{first}} and {{second}} se han unido a la sesi\xf3n",disconnected:"desconectado",focus:"Enfocar conferencia",focusFail:"{{component}} no disponible - reintentar en {{ms}} seg",grantedTo:"\xa1Se otorgaron privilegios de moderador a {{to}}!",invitedOneMember:"{{displayName}} ha sido invitado",invitedThreePlusMembers:"",invitedTwoMembers:"",kickParticipant:"",me:"Yo",moderator:"\xa1Se otorgaron privilegios de moderador!",muted:"Has iniciado la conversaci\xf3n silenciado.",mutedTitle:"\xa1Est\xe1s silenciado!",mutedRemotelyTitle:"",mutedRemotelyDescription:"",passwordRemovedRemotely:"",passwordSetRemotely:"",raisedHand:"{{name}} quisiera hablar.",somebody:"Alguien",startSilentTitle:"",startSilentDescription:"",suboptimalExperienceDescription:"Eer... Al parecer su experiencia con {{appName}} no ser\xe1 tan buena aqu\xed. Estamos buscando formas de mejorar esto pero hasta entonces, intente utilizar uno de los navegadores compatibles.",suboptimalExperienceTitle:"Advertencia del Explorador",unmute:"",newDeviceCameraTitle:"Nueva c\xe1mara detectada ",newDeviceAudioTitle:"Nuevo dispositivo de audio detectado ",newDeviceAction:"Usar"},passwordSetRemotely:"definido por otro participante",passwordDigitsOnly:"",poweredby:"proporcionado por",presenceStatus:{busy:"Ocupado",calling:"Llamando...",connected:"Conectado",connecting:"Conectando\u2026",connecting2:"Conectando*\u2026",disconnected:"Desconectado",expired:"Expirado",ignored:"Ignorado",initializingCall:"Iniciando llamada...",invited:"Invitado",rejected:"Rechazado",ringing:"Timbrando..."},profile:{setDisplayNameLabel:"Establecer nombre a mostrar",setEmailInput:"Introducir e-mail",setEmailLabel:"Establecer su gravatar",title:"Perfil"},recording:{authDropboxText:"Subir a Dropbox",availableSpace:"Espacio disponible: {{spaceLeft}} MB (aproximadamente {{duration}} minutos de grabaci\xf3n)",beta:"BETA",busy:"Estamos trabajando para liberar recursos de grabaci\xf3n. Por favor, int\xe9ntelo de nuevo en unos minutos.",busyTitle:"Todas las grabadoras est\xe1n actualmente ocupadas",error:"Falla de grabaci\xf3n. Vuelva a intentarlo.",expandedOff:"Grabaci\xf3n detenida",expandedOn:"La reuni\xf3n est\xe1 siendo grabada.",expandedPending:"La grabaci\xf3n se est\xe1 inciando...",failedToStart:"No se pudo iniciar la grabaci\xf3n",fileSharingdescription:"Compartir grabaci\xf3n con los participantes de la sesi\xf3n ",live:"Directo",loggedIn:"Sesi\xf3n iniciada como {{userName}}",off:"Grabaci\xf3n detenida",on:"Grabando",pending:"Preparando para grabar la reuni\xf3n...",rec:"REC",serviceDescription:"Tu grabaci\xf3n sera guardada por el servicio de grabaci\xf3n ",serviceName:"Servicio de grabaci\xf3n",signIn:"Entrar",signOut:"Cerrar sesi\xf3n",unavailable:"Oops! El {{serviceName}} no est\xe1 disponible actualmente. Estamos trabajando para resolver la situaci\xf3n. Por favor intente m\xe1s tarde.",unavailableTitle:"Grabaci\xf3n no disponible"},sectionList:{pullToRefresh:"Actualizar"},settings:{calendar:{about:"La integraci\xf3n del calendario {{appName}} se utiliza para acceder de forma segura a su calendario para que pueda leer los pr\xf3ximos eventos.",disconnect:"Desconectar",microsoftSignIn:"Iniciar sesi\xf3n con Microsoft",signedIn:"Actualmente accediendo a eventos de calendario para {{email}}. Haga clic en el bot\xf3n desconectar de abajo para detener el acceso a eventos de calendario.",title:"Calendario"},devices:"Dispositivos",followMe:"Todos me siguen",language:"Idioma",loggedIn:"Sesi\xf3n iniciada como {{name}}",moderator:"Moderador",more:"M\xe1s",name:"Nombre",noDevice:"Ninguno",selectAudioOutput:"Salida de audio",selectCamera:"Ca\u0301mara",selectMic:"Micr\xf3fono",startAudioMuted:"Todos inician en silencio",startVideoMuted:"Todos inician ocultos",title:"Ajustes"},settingsView:{alertOk:"OK",alertTitle:"Aviso",alertURLText:"La direcci\xf3n URL del servidor no es v\xe1lida",buildInfoSection:"Generar informaci\xf3n ",conferenceSection:"Conferencia",displayName:"Nombre a mostrar",email:"Email",header:"Ajustes",profileSection:"Perfil",serverURL:"URL del servidor",startWithAudioMuted:"Inicio con audio en silencio",startWithVideoMuted:"Iniciar con el v\xeddeo en silencio",version:"Versi\xf3n "},share:{dialInfoText:"",mainText:"Pulse en el siguiente enlace para unirse a la reuni\xf3n:\n{{roomUrl}}"},speaker:"Orador",speakerStats:{hours:"{{count}}h",minutes:"{{count}}m",name:"Nombre",seconds:"{{count}}s",speakerStats:"Estad\xedsticas del locutor",speakerTime:"Tiempo del locutor"},startupoverlay:{policyText:" ",title:"La video llamada se interrumpi\xf3 porque se detuvo este equipo."},suspendedoverlay:{rejoinKeyTitle:"Volver",text:"Presione el bot\xf3n Reunir para reconectarse.",title:"La video llamada se interrumpi\xf3 porque se detuvo este equipo."},toolbar:{accessibilityLabel:{audioOnly:"Alternar s\xf3lo audio",audioRoute:"Seleccione el dispositivo de sonido",callQuality:"Administrar la calidad de llamadas",cc:"Alternar subt\xedtulos",chat:"Alternar ventana de chat",document:"Alternar documento compartido",feedback:"Dejar comentarios",fullScreen:"Alternar pantalla completa",hangup:"Dejar la llamada",invite:"Invitar personas",kick:"Expulsar participante ",localRecording:"Alternar controles de grabaci\xf3n locales",lockRoom:"Cambiar contrase\xf1a de sesi\xf3n ",moreActions:"Men\xfa alternar m\xe1s acciones",moreActionsMenu:"Men\xfa m\xe1s acciones",mute:"Alternar audio mudo",pip:"Alternar modo de Picture-in-Picture",profile:"Editar tu perfil",raiseHand:"Levantar / Bajar tu mano",recording:"Activar grabaci\xf3n",remoteMute:"Silenciar participante ",Settings:"Alternar configuraci\xf3n",sharedvideo:"Alternar compartir un v\xeddeo de YouTube",shareRoom:"Invitar a alguien",shareYourScreen:"Alternar compartir pantalla",shortcuts:"Alternar accesos directos",show:"",speakerStats:"Alternar estad\xedsticas del orador",tileView:"Alternar vista de mosaico",toggleCamera:"Alternar c\xe1mara",videomute:"Alternar silencio de video",videoblur:""},addPeople:"Agregar personas a su llamada",audioOnlyOff:"Habilitar el modo de solo audio",audioOnlyOn:"Habilitar el modo de solo audio",audioRoute:"Seleccione el dispositivo de sonido",authenticate:"Autenticar",callQuality:"Administrar la calidad de llamadas",chat:"Abrir / cerrar sala de charla",closeChat:"Cerrar chat ",documentClose:"Cerrar documento compartido",documentOpen:"Abrir documento compartido",enterFullScreen:"Ver pantalla completa",enterTileView:"Entrar en la vista de mosaico",exitFullScreen:"Salir de pantalla completa",exitTileView:"Salir de la vista de mosaico",feedback:"Dejar comentarios",hangup:"Salir",invite:"Invitar personas",login:"Inicio de sesi\xf3n",logout:"Cerrar sesi\xf3n",lowerYourHand:"Baja tu mano",moreActions:"M\xe1s acciones",mute:"Activar / Desactivar Silencio",openChat:"Abrir chat",pip:"Entra en el modo Picture-in-Picture",profile:"Editar tu perfil",raiseHand:"Levantar / Bajar tu mano",raiseYourHand:"Levanta tu mano",Settings:"Ajustes",sharedvideo:"Compartir un v\xeddeo de YouTube",shareRoom:"Invitar a alguien",shortcuts:"Ver accesos directos",speakerStats:"Estad\xedsticas del locutor",startScreenSharing:"Iniciar el uso compartido de pantalla",startSubtitles:"Iniciar subt\xedtulos",stopScreenSharing:"Detener el uso compartido de pantalla ",stopSubtitles:"Detener subt\xedtulos ",stopSharedVideo:"Detener v\xeddeo de YouTube",talkWhileMutedPopup:"Tratas de hablar? Est\xe1s silenciado.",tileViewToggle:"Alternar vista de mosaico",toggleCamera:"Alternar c\xe1mara",videomute:"Iniciar / detener c\xe1mara",startvideoblur:"",stopvideoblur:""},transcribing:{ccButtonTooltip:"Iniciar / Detener Subt\xedtulos",error:"La Transcripci\xf3n fall\xf3. Por favor, int\xe9ntelo nuevamente.",expandedLabel:"Transcripci\xf3n encendida",failedToStart:"No es posible iniciar la transcripci\xf3n",labelToolTip:"La reuni\xf3n se esta transcribiendo",off:"Transcripci\xf3n detenida",pending:"Preparando la transcripci\xf3n de la reuni\xf3n...",start:"Mostrar subt\xedtulos",stop:"Dejar de mostrar subt\xedtulos",tr:"TR"},userMedia:{androidGrantPermissions:"Seleccione Permitir cuando su navegador pida permisos.",chromeGrantPermissions:"Seleccione Permitir cuando su navegador pida permisos.",edgeGrantPermissions:"Seleccione S\xed cuando su navegador pida permisos.",electronGrantPermissions:"Por favor, conceda permisos para utilizar su c\xe1mara y micr\xf3fono",firefoxGrantPermissions:"Seleccione Compartir Dispositivo Seleccionado cuando su navegador pida permisos.",iexplorerGrantPermissions:"Seleccione OK cuando su navegador pida permisos.",nwjsGrantPermissions:"Por favor, conceda permisos para utilizar su c\xe1mara y micr\xf3fono",operaGrantPermissions:"Seleccione Permitir cuando su navegador pida permisos.","react-nativeGrantPermissions":"Seleccione Permitir cuando su navegador pida permisos.",safariGrantPermissions:"Seleccione OK cuando su navegador pida permisos."},videoSIPGW:{busy:"Estamos trabajando en liberar recursos. Por favor intente nuevamente en unos minutos.",busyTitle:"El servicio de las salas est\xe1 actualmente ocupado",errorAlreadyInvited:"{{displayName}} ya ha sido invitado",errorInvite:"La conferencia no se ha establecido aun. Por favor intente m\xe1s tarde.",errorInviteFailed:"Estamos trabajando en resolver la situaci\xf3n. Por favor intente de nuevo m\xe1s tarde.",errorInviteFailedTitle:"Invitar a {{displayName}} fall\xf3",errorInviteTitle:"Error al invitar a la sala",pending:"{{displayName}} ha sido invitado"},videoStatus:{audioOnly:"AUD",audioOnlyExpanded:"Se encuentra en modalidad solo audio. Esta modalidad ahorra ancho de banda sin embargo no ver\xe1 el video de otros.",callQuality:"",hd:"HD",highDefinition:"Alta definici\xf3n",labelTooiltipNoVideo:"No hay v\xeddeo",labelTooltipAudioOnly:"Modo de s\xf3lo audio activado",ld:"LD",lowDefinition:"Baja definici\xf3n",onlyAudioAvailable:"Solo hay audio disponible",onlyAudioSupported:"Solo soportamos audio en este navegador.",p2pEnabled:"Punto a Punto Activado",p2pVideoQualityDescription:"",recHighDefinitionOnly:"Preferir\xe1 alta definici\xf3n.",sd:"SD",standardDefinition:"Definici\xf3n est\xe1ndar"},videothumbnail:{domute:"Control de escritorio remoto",flip:"Voltear",kick:"Expulsar",moderator:"Moderador",mute:"Participante est\xe1 silenciado",muted:"Silenciado",remoteControl:"Control remoto",show:"",videomute:""},welcomepage:{accessibilityLabel:{join:"Toque para unirse",roomname:"Introduzca un nombre de sala"},appDescription:"Adelante, video chat con todo el equipo. De hecho, invita a todos los que conozcas. {{app}} es una soluci\xf3n de videoconferencia de c\xf3digo abierto de 100%, totalmente encriptada, que puede usar todo el d\xeda, todos los d\xedas, de forma gratuita, sin necesidad de contar con ninguna cuenta.",audioVideoSwitch:{audio:"Voz",video:"Video"},calendar:"Calendario",connectCalendarButton:"Conecte su calendario",connectCalendarText:"Conecte su calendario para ver todas sus reuniones en {{app}}. Plus, add {{provider}}reuniones a tu calendario e iniciarlas con un solo clic.",enterRoomTitle:"Comenzar una reuni\xf3n",go:"IR",join:"UNIRSE",info:"Informaci\xf3n",privacy:"Privacidad",recentList:"Reciente",recentListDelete:"Borrar",recentListEmpty:"Su lista de recientes est\xe1 actualmente vac\xeda. Chatea con tu equipo y encontrar\xe1s todas tus reuniones aqu\xed.",reducedUIText:"",roomname:"Introduzca un nombre de sala",roomnameHint:"Introduce el nombre o URL de la sala a la que quieres unirte. Puedes crear un nombre nuevo, s\xf3lo tienes que hacer llegar este nombre al resto de participantes para que puedan unirse a esta sala.",sendFeedback:"Enviar comentarios",terms:"T\xe9rminos",title:"Seguro, lleno de funcionalidades y videoconferencias completamente gratuitas"}}},655,[]); -__d(function(e,s,o,t,n,r,a){n.exports={en:"",af:"",az:"",bg:"",cs:"",de:"",el:"",eo:"",es:"",fr:"",hy:"",it:"",ja:"",ko:"",nb:"",oc:"",pl:"",ptBR:"",ru:"",sk:"",sl:"",sv:"",tr:"",vi:"",zhCN:""}},656,[]); -__d(function(e,a,o,r,n,i,t){n.exports={addPeople:{add:"Invitar",countryNotSupported:"Todav\xeda no admitimos este destino.",countryReminder:"\xbfLlamas fuera de los EE.\xa0UU.? Aseg\xfarate de comenzar con el c\xf3digo de pa\xeds.",disabled:"No puedes invitar personas.",failedToAdd:"",footerText:"La marcaci\xf3n externa est\xe1 deshabilitada.",loading:"Buscar personas y n\xfameros de tel\xe9fono",loadingNumber:"Validar n\xfamero de tel\xe9fono",loadingPeople:"Buscar personas para invitar",noResults:"No se encontraron resultados de b\xfasqueda que coincidan",noValidNumbers:"Introduce un n\xfamero de tel\xe9fono",searchNumbers:"Agregar n\xfameros de tel\xe9fono",searchPeople:"Buscar personas",searchPeopleAndNumbers:"Buscar personas o agregar sus n\xfameros de tel\xe9fono",telephone:"Tel\xe9fono: {{number}}",title:"Invitar personas a esta reuni\xf3n"},audioDevices:{bluetooth:"Bluetooth",headphones:"Aud\xedfonos",phone:"Tel\xe9fono",speaker:"Altavoz"},audioOnly:{audioOnly:"Solo audio"},calendarSync:{addMeetingURL:"Agregar un enlace de reuni\xf3n",confirmAddLink:"\xbfDeseas agregar un enlace de Jitsi a este evento?",error:{appConfiguration:"La integraci\xf3n del calendario no est\xe1 correctamente configurada.",generic:"Se produjo un error. Comprueba la configuraci\xf3n del calendario o intenta actualizarlo.",notSignedIn:"Se produjo un error al autenticar para ver eventos de calendario. Comprueba la configuraci\xf3n del calendario e intenta volver a iniciar sesi\xf3n."},join:"Unirse",joinTooltip:"Unir a la reuni\xf3n",nextMeeting:"reuni\xf3n siguiente",noEvents:"No hay pr\xf3ximos eventos programados.",ongoingMeeting:"reuni\xf3n en progreso",permissionButton:"Abrir configuraci\xf3n",permissionMessage:"Se requiere el permiso del calendario para ver las reuniones en la aplicaci\xf3n.",refresh:"Actualizar calendario",today:"Hoy"},chat:{error:"Error: el mensaje \"{{originalText}}\" no se envi\xf3. Motivo: {{error}}",messagebox:"Escribir un mensaje",nickname:{popover:"Elegir un apodo",title:"Introducir un apodo para usar el chat"},title:"Chat"},connectingOverlay:{joiningRoom:"Conect\xe1ndote a la reuni\xf3n..."},connection:{ATTACHED:"Adjunto",AUTHENTICATING:"Autenticaci\xf3n",AUTHFAIL:"Error de autenticaci\xf3n",CONNECTED:"Conectado",CONNECTING:"Conexi\xf3n",CONNFAIL:"Error de conexi\xf3n",DISCONNECTED:"Desconectado",DISCONNECTING:"Desconexi\xf3n",ERROR:"Error",RECONNECTING:"Se produjo un problema de red. Reconectando..."},connectionindicator:{address:"Direcci\xf3n:",bandwidth:"Ancho de banda estimado:",bitrate:"Velocidad de transferencia:",bridgeCount:"Recuento de servidor: ",connectedTo:"Conectado a:",framerate:"Velocidad de cuadro:",less:"Mostrar menos",localaddress:"Direcci\xf3n local:",localaddress_plural:"Direcciones locales:",localport:"Puerto local:",localport_plural:"Puertos locales:",more:"Mostrar m\xe1s",packetloss:"P\xe9rdida de paquetes:",quality:{good:"Bueno",inactive:"Inactivo",lost:"Perdido",nonoptimal:"No es \xf3ptimo",poor:"Deficiente"},remoteaddress:"Direcci\xf3n remota:",remoteaddress_plural:"Direcciones remotas:",remoteport:"Puerto remoto:",remoteport_plural:"Puertos remotos:",resolution:"Resoluci\xf3n:",status:"Conexi\xf3n:",transport:"Transporte:",transport_plural:"Transportes:",turn:" (activar/desactivar)"},dateUtils:{earlier:"M\xe1s temprano",today:"Hoy",yesterday:"Ayer"},deepLinking:{appNotInstalled:"Necesitas la aplicaci\xf3n m\xf3vil de {{app}} para unirte a esta reuni\xf3n en el tel\xe9fono.",description:"\xbfNo sucedi\xf3 nada? Intentamos iniciar la reuni\xf3n en la aplicaci\xf3n de escritorio de {{app}}. Vuelve a intentarlo o in\xedciala en la aplicaci\xf3n web de {{app}}.",descriptionWithoutWeb:"",downloadApp:"Descargar la aplicaci\xf3n",launchWebButton:"Iniciar en la Web",openApp:"Continuar a la aplicaci\xf3n",title:"Iniciando la reuni\xf3n en {{app}}...",tryAgainButton:"Volver a intentar en escritorio"},defaultLink:"por ejemplo, {{url}}",deviceError:{cameraError:"No se pudo acceder a la c\xe1mara",cameraPermission:"Error al obtener el permiso de la c\xe1mara",microphoneError:"No se pudo acceder al micr\xf3fono",microphonePermission:"Error al obtener el permiso del micr\xf3fono"},deviceSelection:{noPermission:"No se otorg\xf3 permiso",previewUnavailable:"Vista previa no disponible",selectADevice:"Seleccionar un dispositivo",testAudio:"Reproducir un sonido de prueba"},dialog:{accessibilityLabel:{liveStreaming:"Transmisi\xf3n en vivo"},allow:"Permitir",alreadySharedVideoMsg:"",alreadySharedVideoTitle:"Solo se permite un video compartido por vez",applicationWindow:"Ventana de aplicaci\xf3n",Back:"Volver",cameraConstraintFailedError:"La c\xe1mara no satisface algunas de las limitaciones requeridas.",cameraNotFoundError:"No se encontr\xf3 la c\xe1mara.",cameraNotSendingData:"No podemos acceder a la c\xe1mara. Comprueba si otra aplicaci\xf3n est\xe1 usando este dispositivo, selecciona otro dispositivo del men\xfa de configuraci\xf3n o intenta volver a cargar la aplicaci\xf3n.",cameraNotSendingDataTitle:"No es posible acceder a la c\xe1mara",cameraPermissionDeniedError:"No has otorgado permiso para usar la c\xe1mara. Puedes unirte a la conferencia de todos modos, pero los dem\xe1s asistentes no te podr\xe1n ver. Usa el bot\xf3n de la c\xe1mara en la barra de direcciones para solucionarlo.",cameraUnknownError:"No se puede usar la c\xe1mara por un motivo desconocido.",cameraUnsupportedResolutionError:"La c\xe1mara no admite la resoluci\xf3n de video requerida.",Cancel:"Cancelar",close:"Cerrar",conferenceDisconnectMsg:"Se recomienda que compruebes la conexi\xf3n de la red. Reconectando en {{seconds}} segundos...",conferenceDisconnectTitle:"Se te ha desconectado.",conferenceReloadMsg:"Estamos intentando solucionarlo. Reconectando en {{seconds}} segundos...",conferenceReloadTitle:"Lamentablemente, algo sali\xf3 mal.",confirm:"Confirmar",confirmNo:"No",confirmYes:"S\xed",connectError:"\xa1Uy! Algo sali\xf3 mal y no pudimos conectar con la conferencia.",connectErrorWithMsg:"\xa1Uy! Algo sali\xf3 mal y no pudimos conectar con la conferencia: {{msg}}",connecting:"Conexi\xf3n",contactSupport:"Contactar con soporte",copy:"Copiar",dismiss:"Descartar",displayNameRequired:"",done:"Listo",enterDisplayName:"",error:"Error",externalInstallationMsg:"Tienes que instalar nuestra extensi\xf3n de uso compartido del escritorio.",externalInstallationTitle:"Se requiere extensi\xf3n",goToStore:"Ir a la tienda web",gracefulShutdown:"Nuestro servicio est\xe1 actualmente interrumpido debido a tareas de mantenimiento. Vuelve a intentarlo m\xe1s tarde.",IamHost:"Soy el anfitri\xf3n",incorrectRoomLockPassword:"",incorrectPassword:"Nombre de usuario o contrase\xf1a incorrectos",inlineInstallationMsg:"Tienes que instalar nuestra extensi\xf3n de uso compartido del escritorio.",inlineInstallExtension:"Instalar ahora",internalError:"\xa1Uy! Algo sali\xf3 mal. Se produjo el siguiente error: {{error}}",internalErrorTitle:"Error interno",kickMessage:"",kickParticipantButton:"Echar",kickParticipantDialog:"\xbfEst\xe1s seguro de que deseas echar a este participante?",kickParticipantTitle:"",kickTitle:"",liveStreaming:"Transmisi\xf3n en vivo",liveStreamingDisabledForGuestTooltip:"Los invitados no pueden iniciar la transmisi\xf3n en vivo.",liveStreamingDisabledTooltip:"Inicio de transmisi\xf3n en vivo deshabilitado.",lockMessage:"No se pudo bloquear la conferencia.",lockRoom:"",lockTitle:"Error de bloqueo",logoutQuestion:"\xbfEst\xe1s seguro de que deseas cerrar la sesi\xf3n y detener la conferencia?",logoutTitle:"Cierre de sesi\xf3n",maxUsersLimitReached:"",maxUsersLimitReachedTitle:"",micConstraintFailedError:"El micr\xf3fono no cumple algunas de las restricciones requeridas.",micNotFoundError:"No se encontr\xf3 el micr\xf3fono.",micNotSendingData:"",micNotSendingDataTitle:"",micPermissionDeniedError:"No has otorgado permiso para usar el micr\xf3fono. Puedes unirte a la conferencia de todos modos, pero los dem\xe1s asistente no te podr\xe1n escuchar. Usa el bot\xf3n de la c\xe1mara en la barra de direcciones para solucionarlo.",micUnknownError:"No se puede usar el micr\xf3fono por un motivo desconocido.",muteParticipantBody:"No podr\xe1s anular el silencio, pero \xe9l/ella podr\xe1 hacerlo en cualquier momento.",muteParticipantButton:"Silenciar",muteParticipantDialog:"\xbfEst\xe1s seguro de que deseas silenciar a este participante? No podr\xe1s anular el silencio, pero \xe9l/ella podr\xe1 hacerlo en cualquier momento.",muteParticipantTitle:"",Ok:"Aceptar",passwordLabel:"",passwordNotSupported:"",passwordNotSupportedTitle:"",passwordRequired:"",popupError:"El navegador bloquea las ventanas emergentes de este sitio. Habil\xedtalas en la configuraci\xf3n de seguridad del navegador y vuelve a intentarlo.",popupErrorTitle:"Ventana emergente bloqueada",recording:"Grabaci\xf3n",recordingDisabledForGuestTooltip:"Los invitados no pueden iniciar grabaciones.",recordingDisabledTooltip:"Inicio de grabaci\xf3n deshabilitado.",rejoinNow:"Volver a unirse ahora",remoteControlAllowedMessage:"{{user}} acept\xf3 tu solicitud de control remoto.",remoteControlDeniedMessage:"{{user}} rechaz\xf3 tu solicitud de control remoto.",remoteControlErrorMessage:"Se produjo un error al intentar solicitar permisos de control remoto de {{user}}.",remoteControlRequestMessage:"\xbfPermites que {{user}} controle tu escritorio de manera remota?",remoteControlShareScreenWarning:"Ten en cuenta que si presionas \"Permitir\", compartir\xe1s tu pantalla.",remoteControlStopMessage:"La sesi\xf3n de control remoto finaliz\xf3.",remoteControlTitle:"Control de escritorio remoto",Remove:"Eliminar",removePassword:"",removeSharedVideoMsg:"\xbfEst\xe1s seguro de que deseas eliminar el video compartido?",removeSharedVideoTitle:"Eliminar video compartido",reservationError:"Error del sistema de reservaciones",reservationErrorMsg:"C\xf3digo de error: {{code}}, mensaje: {{msg}}",retry:"Volver a intentar",screenSharingFailedToInstall:"\xa1Uy! La extensi\xf3n de uso compartido de pantalla no se pudo instalar.",screenSharingFailedToInstallTitle:"La extensi\xf3n de uso compartido de pantalla no se pudo instalar",screenSharingFirefoxPermissionDeniedError:"Algo sali\xf3 mal cuando intentamos compartir tu pantalla. Aseg\xfarate de habernos dado permiso para hacerlo. ",screenSharingFirefoxPermissionDeniedTitle:"\xa1Uy! No pudimos iniciar el uso compartido de la pantalla.",screenSharingPermissionDeniedError:"\xa1Uy! Algo sali\xf3 mal con tus permisos de extensi\xf3n de uso compartido de pantalla. Vuelve a cargar e int\xe9ntalo nuevamente.",serviceUnavailable:"Servicio no disponible",sessTerminated:"Llamada finalizada",Share:"Compartir",shareVideoLinkError:"Proporciona un enlace de YouTube correcto.",shareVideoTitle:"Compartir un video",shareYourScreen:"Compartir tu pantalla",shareYourScreenDisabled:"Uso compartido de pantalla deshabilitado.",shareYourScreenDisabledForGuest:"Los invitados no pueden compartir la pantalla.",startLiveStreaming:"Iniciar transmisi\xf3n en vivo",startRecording:"Iniciar grabaci\xf3n",startRemoteControlErrorMessage:"Se produjo un error al intentar iniciar la sesi\xf3n de control remoto.",stopLiveStreaming:"Detener transmisi\xf3n en vivo",stopRecording:"Detener grabaci\xf3n",stopRecordingWarning:"\xbfEst\xe1s seguro de que deseas detener la grabaci\xf3n?",stopStreamingWarning:"\xbfEst\xe1s seguro de que deseas detener la transmisi\xf3n en vivo?",streamKey:"Clave de transmisi\xf3n en vivo",Submit:"Enviar",thankYou:"\xa1Gracias por usar {{appName}}!",token:"token",tokenAuthFailed:"Lo sentimos, no tienes permiso para unirte a esta llamada.",tokenAuthFailedTitle:"Error de autenticaci\xf3n",transcribing:"Transcripci\xf3n",unlockRoom:"",userPassword:"contrase\xf1a de usuario",WaitForHostMsg:"La conferencia {{room}} a\xfan no ha comenzado. Si eres el anfitri\xf3n, inicia la autenticaci\xf3n. De lo contrario, espera a que llegue el anfitri\xf3n.",WaitForHostMsgWOk:"La conferencia {{room}} a\xfan no ha comenzado. Si eres el anfitri\xf3n, presiona Aceptar para autenticar. De lo contrario, espera a que llegue el anfitri\xf3n.",WaitingForHost:"Esperando al anfitri\xf3n...",Yes:"S\xed",yourEntireScreen:"Toda tu pantalla"},dialOut:{statusMessage:"ahora est\xe1 {{status}}"},feedback:{average:"Promedio",bad:"Malo",detailsLabel:"Cu\xe9ntanos m\xe1s sobre eso.",good:"Bueno",rateExperience:"Califica tu experiencia con la reuni\xf3n",veryBad:"Muy malo",veryGood:"Muy bueno"},incomingCall:{answer:"Respuesta",audioCallTitle:"Llamada entrante",decline:"Descartar",productLabel:"de Jitsi Meet",videoCallTitle:"Llamada de video entrante"},info:{accessibilityLabel:"Mostrar informaci\xf3n",addPassword:"",cancelPassword:"",conferenceURL:"Enlace:",country:"Pa\xeds",dialANumber:"Para unirte a la reuni\xf3n, marca uno de estos n\xfameros y, luego introduce el PIN.",dialInConferenceID:"PIN:",dialInNotSupported:"Lo sentimos, la marcaci\xf3n interna actualmente no se admite.",dialInNumber:"Marcaci\xf3n interna:",dialInSummaryError:"Error al obtener informaci\xf3n de marcaci\xf3n interna ahora. Vuelve a intentarlo m\xe1s tarde.",dialInTollFree:"Sin cargo",genericError:"Epa, algo sali\xf3 mal.",inviteLiveStream:"Para ver la transmisi\xf3n en vivo de esta reuni\xf3n, haz clic en este enlace: {{url}}",invitePhone:"",invitePhoneAlternatives:"",inviteURLFirstPartGeneral:"Est\xe1s invitado a unirte a una reuni\xf3n.",inviteURLFirstPartPersonal:"",inviteURLSecondPart:"",liveStreamURL:"Transmisi\xf3n en vivo:",moreNumbers:"M\xe1s n\xfameros",noNumbers:"Sin n\xfameros de marcaci\xf3n interna.",noPassword:"Ninguno",noRoom:"No se especific\xf3 ninguna sala para la marcaci\xf3n interna.",numbers:"N\xfameros de marcaci\xf3n interna",password:"",title:"Compartir",tooltip:"Compartir enlace e informaci\xf3n de marcaci\xf3n interna para esta reuni\xf3n",label:"Informaci\xf3n de reuni\xf3n"},inviteDialog:{alertText:"No se pudieron invitar a algunos participantes.",header:"Invitar",searchCallOnlyPlaceholder:"Introducir n\xfamero de tel\xe9fono",searchPeopleOnlyPlaceholder:"Buscar participantes",searchPlaceholder:"Participante o n\xfamero de tel\xe9fono",send:"Enviar"},inlineDialogFailure:{msg:"Tartamudeamos un poco.",retry:"Volver a intentar",support:"Soporte",supportMsg:"Si esto sigue ocurriendo, contacta con"},keyboardShortcuts:{focusLocal:"Concentrar en tu video",focusRemote:"Concentrar en el video de otra persona",fullScreen:"Ver pantalla completa o salir de ella",keyboardShortcuts:"Accesos directos del teclado",localRecording:"Mostrar u ocultar controles de grabaci\xf3n local",mute:"Silenciar o anular silencio del micr\xf3fono",pushToTalk:"Presionar para hablar",raiseHand:"Levantar o bajar la mano",showSpeakerStats:"Mostrar estad\xedsticas del altavoz",toggleChat:"Abrir o cerrar el chat",toggleFilmstrip:"Mostrar u ocultar miniaturas de video",toggleScreensharing:"Cambiar entre el uso compartido de pantalla y de c\xe1mara",toggleShortcuts:"Mostrar u ocultar accesos directos del teclado",videoMute:"Iniciar o detener la c\xe1mara"},liveStreaming:{busy:"Estamos trabajando para liberar recursos de transmisi\xf3n. Vuelve a intentarlo en unos minutos.",busyTitle:"Todos los transmisores est\xe1n actualmente ocupados",changeSignIn:"Cambiar cuentas.",choose:"Elegir una transmisi\xf3n en vivo",chooseCTA:"Elegir una opci\xf3n de transmisi\xf3n. Actualmente, la sesi\xf3n est\xe1 iniciada como {{email}}.",enterStreamKey:"Introduce tu clave de transmisi\xf3n en vivo de YouTube aqu\xed.",error:"Error de transmisi\xf3n en vivo. Vuelve a intentarlo.",errorAPI:"Se produjo un error al acceder a tus difusiones de YouTube. Vuelve a intentar iniciar sesi\xf3n.",errorLiveStreamNotEnabled:"La transmisi\xf3n en vivo no est\xe1 habilitada en {{email}}. Habil\xedtala o inicia sesi\xf3n en una cuenta con la transmisi\xf3n en vivo habilitada.",expandedOff:"La transmisi\xf3n en vivo se ha detenido",expandedOn:"La reuni\xf3n se est\xe1 transmitiendo actualmente a YouTube.",expandedPending:"La transmisi\xf3n en vivo se est\xe1 iniciando...",failedToStart:"La transmisi\xf3n en vivo no se pudo iniciar",getStreamKeyManually:"No pudimos obtener ninguna transmisi\xf3n en vivo. Intenta obtener la clave de transmisi\xf3n en vivo de YouTube.",invalidStreamKey:"Es posible que la clave de transmisi\xf3n en vivo sea incorrecta.",off:"Transmisi\xf3n en vivo detenida",on:"Transmisi\xf3n en vivo",pending:"Iniciando transmisi\xf3n en vivo...",serviceName:"Servicio de transmisi\xf3n en vivo",signedInAs:"Actualmente, la sesi\xf3n est\xe1 iniciada como:",signIn:"Iniciar sesi\xf3n con Google",signInCTA:"Inicia sesi\xf3n o introduce la clave de transmisi\xf3n en vivo de YouTube.",signOut:"Cerrar sesi\xf3n",start:"Iniciar una transmisi\xf3n en vivo",streamIdHelp:"\xbfQu\xe9 es esto?",unavailableTitle:"Transmisi\xf3n en vivo no disponible"},localRecording:{clientState:{off:"Desactivado",on:"Activado",unknown:"Desconocido"},dialogTitle:"Controles de grabaci\xf3n local",duration:"Duraci\xf3n",durationNA:"N/d",encoding:"Codificaci\xf3n",label:"LOR",labelToolTip:"La grabaci\xf3n local est\xe1 activada",localRecording:"Grabaci\xf3n local",me:"Yo",messages:{engaged:"Grabaci\xf3n local activada.",finished:"Finaliz\xf3 la grabaci\xf3n del {{token}} de la sesi\xf3n. Env\xeda el archivo grabado al moderador.",finishedModerator:"Finaliz\xf3 la grabaci\xf3n del {{token}} de la sesi\xf3n. La grabaci\xf3n de la pista local se ha guardado. P\xeddeles a los otros participantes que env\xeden sus grabaciones.",notModerator:"No eres el moderador. No puedes iniciar o detener la grabaci\xf3n local."},moderator:"Moderador",no:"No",participant:"Participante",participantStats:"Estad\xedsticas del participante",sessionToken:"Token de la sesi\xf3n",start:"Iniciar grabaci\xf3n",stop:"Detener grabaci\xf3n",yes:"S\xed"},lockRoomPassword:"",lockRoomPasswordUppercase:"",me:"yo",notify:{connectedOneMember:"{{name}} se uni\xf3 a la reuni\xf3n",connectedThreePlusMembers:"{{name}} y {{count}} m\xe1s se unieron a la reuni\xf3n",connectedTwoMembers:"{{first}} y {{second}} se unieron a la reuni\xf3n",disconnected:"desconectado",focus:"Enfoque de la conferencia",focusFail:"{{component}} no disponible. Vuelve a intentar en {{ms}} segundos",grantedTo:"Se otorgaron derechos de moderador a {{to}}.",invitedOneMember:"",invitedThreePlusMembers:"",invitedTwoMembers:"",kickParticipant:"",me:"Yo",moderator:"Derechos de moderador otorgados.",muted:"Has iniciado la conversaci\xf3n con el silencio activado.",mutedTitle:"Tienes el silencio activado.",mutedRemotelyTitle:"",mutedRemotelyDescription:"",passwordRemovedRemotely:"",passwordSetRemotely:"",raisedHand:"{{name}} desea hablar.",somebody:"Alguien",startSilentTitle:"",startSilentDescription:"",suboptimalExperienceDescription:"Bueno... Lamentamos que tu experiencia con {{appName}} no sea tan buena aqu\xed. Estamos viendo la manera de mejorarlo, pero, hasta entonces, prueba con usar uno de los navegadores totalmente compatibles.",suboptimalExperienceTitle:"Advertencia del navegador",unmute:"",newDeviceCameraTitle:"Se detect\xf3 una c\xe1mara nueva",newDeviceAudioTitle:"Se detect\xf3 un dispositivo de audio nuevo",newDeviceAction:"Usar"},passwordSetRemotely:"",passwordDigitsOnly:"",poweredby:"con tecnolog\xeda de",presenceStatus:{busy:"Ocupado",calling:"Llamando...",connected:"Conectado",connecting:"Conectando...",connecting2:"Conectando*...",disconnected:"Desconectado",expired:"Vencido",ignored:"Omitido",initializingCall:"Inicializando llamada...",invited:"Invitado",rejected:"Rechazado",ringing:"Sonando..."},profile:{setDisplayNameLabel:"Configurar tu nombre para mostrar",setEmailInput:"Introducir correo electr\xf3nico",setEmailLabel:"Configurar tu correo electr\xf3nico de Gravatar",title:"Perfil"},recording:{authDropboxText:"Cargar a Dropbox",availableSpace:"Espacio disponible: {{spaceLeft}}\xa0MB (aproximadamente {{duration}} minutos de grabaci\xf3n)",beta:"BETA",busy:"Estamos trabajando para liberar recursos de grabaci\xf3n. Vuelve a intentarlo en unos minutos.",busyTitle:"Todas las grabadoras est\xe1n actualmente ocupadas",error:"Error de grabaci\xf3n. Vuelve a intentarlo.",expandedOff:"La grabaci\xf3n se ha detenido",expandedOn:"La reuni\xf3n se est\xe1 grabando en este momento.",expandedPending:"La grabaci\xf3n se est\xe1 iniciando...",failedToStart:"La grabaci\xf3n no se pudo iniciar",fileSharingdescription:"Compartir grabaci\xf3n con participantes de la reuni\xf3n",live:"EN VIVO",loggedIn:"Sesi\xf3n iniciada como {{userName}}",off:"Grabaci\xf3n detenida",on:"Grabaci\xf3n",pending:"Preparando para grabar la reuni\xf3n...",rec:"REC",serviceDescription:"El servicio de grabaci\xf3n guardar\xe1 la grabaci\xf3n",serviceName:"Servicio de grabaci\xf3n",signIn:"Iniciar sesi\xf3n",signOut:"Cerrar sesi\xf3n",unavailable:"\xa1Uy! {{serviceName}} actualmente no est\xe1 disponible. Estamos trabajando para resolver el problema. Vuelve a intentarlo m\xe1s tarde.",unavailableTitle:"Grabaci\xf3n no disponible"},sectionList:{pullToRefresh:"Tirar para actualizar"},settings:{calendar:{about:"La integraci\xf3n del calendario de {{appName}} se usa para acceder al calendario de manera segura para que puedas leer los pr\xf3ximos eventos.",disconnect:"Desconectar",microsoftSignIn:"Iniciar sesi\xf3n con Microsoft",signedIn:"Actualmente se accede a eventos del calendario para {{email}}. Haz clic en el bot\xf3n Desconectar m\xe1s abajo para detener el acceso a eventos del calendario.",title:"Calendario"},devices:"Dispositivos",followMe:"Todos me siguen",language:"Idioma",loggedIn:"Sesi\xf3n iniciada como {{name}}",moderator:"Moderador",more:"M\xe1s",name:"Nombre",noDevice:"Ninguno",selectAudioOutput:"Salida de audio",selectCamera:"C\xe1mara",selectMic:"Micr\xf3fono",startAudioMuted:"Todos comienzan con el silencio activado",startVideoMuted:"Todos comienzan ocultos",title:"Configuraci\xf3n"},settingsView:{alertOk:"Aceptar",alertTitle:"Advertencia",alertURLText:"La direcci\xf3n URL de servidor introducida no es v\xe1lida",buildInfoSection:"Informaci\xf3n de compilaci\xf3n",conferenceSection:"Conferencia",displayName:"Nombre para mostrar",email:"Correo electr\xf3nico",header:"Configuraci\xf3n",profileSection:"Perfil",serverURL:"Direcci\xf3n URL del servidor",startWithAudioMuted:"Iniciar con el audio en silencio",startWithVideoMuted:"Iniciar con el video en silencio",version:"Versi\xf3n"},share:{dialInfoText:"",mainText:"Haz clic en el enlace siguiente para unirte a la reuni\xf3n:\n{{roomUrl}}"},speaker:"Altavoz",speakerStats:{hours:"{{count}}\xa0h",minutes:"{{count}}\xa0min",name:"Nombre",seconds:"{{count}}\xa0s",speakerStats:"Estad\xedsticas del altavoz",speakerTime:"Hora del altavoz"},startupoverlay:{policyText:" ",title:"{{app}} tiene que usar el micr\xf3fono y la c\xe1mara."},suspendedoverlay:{rejoinKeyTitle:"Volver a unirme",text:"Presiona el bot\xf3n Volver a unirme para volver a conectarte.",title:"La llamada de video se interrumpi\xf3 porque el equipo entr\xf3 en modo nocturno."},toolbar:{accessibilityLabel:{audioOnly:"Alternar solo audio",audioRoute:"Seleccionar el dispositivo de sonido",callQuality:"",cc:"Alternar subt\xedtulos",chat:"Alternar ventana de chat",document:"Alternar documento compartido",feedback:"Dejar comentario",fullScreen:"Alternar pantalla completa",hangup:"Dejar la llamada",invite:"Invitar personas",kick:"Echar participante",localRecording:"Alternar controles de grabaci\xf3n local",lockRoom:"Alternar contrase\xf1a de reuni\xf3n",moreActions:"Alternar men\xfa de m\xe1s acciones",moreActionsMenu:"Men\xfa de m\xe1s acciones",mute:"Alternar silenciar audio",pip:"Alternar modo de imagen en imagen",profile:"Editar el perfil",raiseHand:"Alternar levantar la mano",recording:"Alternar grabaci\xf3n",remoteMute:"Silenciar participante",Settings:"Alternar configuraci\xf3n",sharedvideo:"Alternar uso compartido de video de YouTube",shareRoom:"Invitar a alguien",shareYourScreen:"Alternar uso compartido de pantalla",shortcuts:"Alternar accesos directos",show:"",speakerStats:"Alternar estad\xedsticas del altavoz",tileView:"Alternar vista de mosaico",toggleCamera:"Alternar c\xe1mara",videomute:"Alternar silenciar video",videoblur:""},addPeople:"Agregar personas a la llamada",audioOnlyOff:"Deshabilitar modo de solo audio",audioOnlyOn:"Habilitar modo de solo audio",audioRoute:"Seleccionar el dispositivo de sonido",authenticate:"Autenticar",callQuality:"",chat:"Abrir/cerrar chat",closeChat:"Cerrar chat",documentClose:"Cerrar documento compartido",documentOpen:"Abrir documento compartido",enterFullScreen:"Ver pantalla completa",enterTileView:"Introducir vista de mosaico",exitFullScreen:"Salir de pantalla completa",exitTileView:"Salir de vista de mosaico",feedback:"Dejar comentario",hangup:"Dejar",invite:"Invitar personas",login:"Inicio de sesi\xf3n",logout:"Cierre de sesi\xf3n",lowerYourHand:"Bajar la mano",moreActions:"M\xe1s acciones",mute:"Silenciar/anular silencio",openChat:"Abrir chat",pip:"Introducir modo de imagen en imagen",profile:"Editar el perfil",raiseHand:"Levantar/bajar la mano",raiseYourHand:"Levantar la mano",Settings:"Configuraci\xf3n",sharedvideo:"Compartir un video de YouTube",shareRoom:"Invitar a alguien",shortcuts:"Ver accesos directos",speakerStats:"Estad\xedsticas del altavoz",startScreenSharing:"Iniciar uso compartido de pantalla",startSubtitles:"Iniciar subt\xedtulos",stopScreenSharing:"Detener uso compartido de pantalla",stopSubtitles:"Detener subt\xedtulos",stopSharedVideo:"Detener video de YouTube",talkWhileMutedPopup:"\xbfIntentas hablar? Est\xe1s silenciado.",tileViewToggle:"Alternar vista de mosaico",toggleCamera:"Alternar c\xe1mara",videomute:"Iniciar/detener c\xe1mara",startvideoblur:"",stopvideoblur:""},transcribing:{ccButtonTooltip:"Iniciar/detener subt\xedtulos",error:"Error de transcripci\xf3n. Vuelve a intentarlo.",expandedLabel:"La transcripci\xf3n est\xe1 actualmente activada",failedToStart:"La transcripci\xf3n no se pudo iniciar",labelToolTip:"La reuni\xf3n se est\xe1 transcribiendo",off:"Transcripci\xf3n detenida",pending:"Preparando para transcribir la reuni\xf3n...",start:"Comenzar a mostrar subt\xedtulos",stop:"Dejar de mostrar subt\xedtulos",tr:"TR"},userMedia:{androidGrantPermissions:"Selecciona Permitir cuando el navegador solicite permisos.",chromeGrantPermissions:"Selecciona Permitir cuando el navegador solicite permisos.",edgeGrantPermissions:"Selecciona S\xed cuando el navegador solicite permisos.",electronGrantPermissions:"Otorga permisos para usar la c\xe1mara y el micr\xf3fono",firefoxGrantPermissions:"Selecciona Compartir dispositivo seleccionado cuando el navegador solicite permisos.",iexplorerGrantPermissions:"Selecciona Aceptar cuando el navegador solicite permisos.",nwjsGrantPermissions:"Otorga permisos para usar la c\xe1mara y el micr\xf3fono",operaGrantPermissions:"Selecciona Permitir cuando el navegador solicite permisos.","react-nativeGrantPermissions":"Selecciona Permitir cuando el navegador solicite permisos.",safariGrantPermissions:"Selecciona Aceptar cuando el navegador solicite permisos."},videoSIPGW:{busy:"Estamos trabajando para liberar recursos. Vuelve a intentarlo en unos minutos.",busyTitle:"El servicio de sala est\xe1 actualmente ocupado",errorAlreadyInvited:"{{displayName}} ya est\xe1 invitado",errorInvite:"Conferencia a\xfan no establecida. Vuelve a intentarlo m\xe1s tarde.",errorInviteFailed:"Estamos trabajando para resolver el problema. Vuelve a intentarlo m\xe1s tarde.",errorInviteFailedTitle:"No se pudo invitar a {{displayName}}",errorInviteTitle:"Error al invitar en la sala",pending:"{{displayName}} ha sido invitado"},videoStatus:{audioOnly:"AUD",audioOnlyExpanded:"Est\xe1s en modo de solo audio. Este modo ahorra ancho de banda, pero no podr\xe1s ver los videos de otras personas.",callQuality:"",hd:"HD",highDefinition:"Alta definici\xf3n",labelTooiltipNoVideo:"Sin video",labelTooltipAudioOnly:"Modo de solo audio habilitado",ld:"LD",lowDefinition:"Baja definici\xf3n",onlyAudioAvailable:"Modo de solo audio disponible",onlyAudioSupported:"Solo admitimos audio en este navegador.",p2pEnabled:"Punto a punto habilitado",p2pVideoQualityDescription:"",recHighDefinitionOnly:"Preferir\xe9 alta definici\xf3n.",sd:"SD",standardDefinition:"Definici\xf3n est\xe1ndar"},videothumbnail:{domute:"Silenciar",flip:"Dar vuelta",kick:"Echar",moderator:"Moderador",mute:"",muted:"Silenciado",remoteControl:"Control remoto",show:"",videomute:""},welcomepage:{accessibilityLabel:{join:"Toca para unirte",roomname:"Introducir nombre de sala"},appDescription:"Adelante, ten una sesi\xf3n de chat de video con todo el equipo. De hecho, invita a todas las personas que conozcas. {{app}} es una soluci\xf3n de conferencias en video en c\xf3digo abierto al 100% y completamente cifrada que puedes usar todo el d\xeda, todos los d\xedas y sin cargo, sin necesidad de tener una cuenta.",audioVideoSwitch:{audio:"Voz",video:"Video"},calendar:"Calendario",connectCalendarButton:"Conectar el calendario",connectCalendarText:"",enterRoomTitle:"Iniciar una nueva reuni\xf3n",go:"IR",join:"UNIRSE",info:"Informaci\xf3n",privacy:"Privacidad",recentList:"Reciente",recentListDelete:"Eliminar",recentListEmpty:"Tu lista reciente est\xe1 actualmente vac\xeda. Ten una sesi\xf3n de chat con tu equipo y encontrar\xe1s todas tus reuniones recientes aqu\xed.",reducedUIText:"",roomname:"Introducir nombre de sala",roomnameHint:"Introduce el nombre o la direcci\xf3n URL de la sala a la que deseas unirte. Puedes inventar un nombre, simplemente inf\xf3rmaselo a las personas con las que te reunir\xe1s para que introduzcan el mismo nombre.",sendFeedback:"Enviar comentario",terms:"T\xe9rminos",title:"Conferencias en video seguras, con gran variedad de funciones y completamente gratuitas"}}},657,[]); -__d(function(e,s,o,t,n,r,a){n.exports={en:"",af:"",az:"",bg:"",cs:"",de:"",el:"",eo:"",es:"",fr:"",hy:"",it:"",ja:"",ko:"",nb:"",oc:"",pl:"",ptBR:"",ru:"",sk:"",sl:"",sv:"",tr:"",vi:"",zhCN:""}},658,[]); -__d(function(t,e,i,a,o,n,s){o.exports={addPeople:{add:"Kutsu",countryNotSupported:"T\xe4t\xe4 maata ei viel\xe4 tueta.",countryReminder:"Soitatko ulkomaille? Muista lis\xe4t\xe4 alkuun maakoodi!",disabled:"Et voi l\xe4hett\xe4\xe4 kutsuja.",failedToAdd:"",footerText:"Soittaminen on estetty.",loading:"Etsit\xe4\xe4n henkil\xf6it\xe4 ja puhelinnumeroita",loadingNumber:"Tarkistetaan puhelinnumeroa",loadingPeople:"Etsit\xe4\xe4n kutsuttavia henkil\xf6it\xe4",noResults:"Ei hakua vastaavia tuloksia",noValidNumbers:"Anna puhelinnumero",searchNumbers:"Lis\xe4\xe4 puhelinnumeroita",searchPeople:"Etsi henkil\xf6it\xe4",searchPeopleAndNumbers:"Etsi henkil\xf6it\xe4 tai lis\xe4\xe4 heid\xe4n puhelinnumeronsa",telephone:"Puhelin: {{number}}",title:"Kutsu henkil\xf6it\xe4 t\xe4h\xe4n kokoukseen"},audioDevices:{bluetooth:"Bluetooth",headphones:"Kuulokkeet",phone:"Puhelin",speaker:"Puhuja"},audioOnly:{audioOnly:"Vain \xe4\xe4ni"},calendarSync:{addMeetingURL:"Lis\xe4\xe4 kokouslinkki",confirmAddLink:"Haluatko lis\xe4t\xe4 tapahtumaan Jitsi-linkin?",error:{appConfiguration:"Kalenterin integrointia ei ole m\xe4\xe4ritetty asianmukaisesti.",generic:"Tapahtui virhe. Tarkista kalenterin m\xe4\xe4ritykset tai p\xe4ivit\xe4 kalenterin\xe4kym\xe4.",notSignedIn:"Kalenterin tapahtumien tarkasteluun tarvittavassa todennuksessa tapahtui virhe. Tarkista kalenterin asetukset ja kirjaudu sis\xe4\xe4n uudelleen."},join:"Liity",joinTooltip:"Liity kokoukseen",nextMeeting:"seuraava kokous",noEvents:"Aikataulussa ei ole tulevia tapahtumia.",ongoingMeeting:"meneill\xe4\xe4n oleva kokous",permissionButton:"Avaa asetukset",permissionMessage:"Kalenterin k\xe4ytt\xf6oikeus vaaditaan, jotta kokouksesi n\xe4kyv\xe4t sovelluksessa.",refresh:"P\xe4ivit\xe4 kalenteri",today:"T\xe4n\xe4\xe4n"},chat:{error:"Virhe: viesti\xe4 \"{{originalText}}\" ei l\xe4hetetty. Syy: {{error}}",messagebox:"Kirjoita viesti",nickname:{popover:"Valitse lempinimi",title:"Anna chatiss\xe4 k\xe4ytett\xe4v\xe4 lempinimi"},title:"Chatti"},connectingOverlay:{joiningRoom:"Yhdistet\xe4\xe4n kokoukseen..."},connection:{ATTACHED:"Liitteen\xe4",AUTHENTICATING:"Todennetaan",AUTHFAIL:"Todennus ep\xe4onnistui",CONNECTED:"Yhdistetty",CONNECTING:"Yhdistet\xe4\xe4n",CONNFAIL:"Yhdist\xe4minen ep\xe4onnistui",DISCONNECTED:"Ei yhteytt\xe4",DISCONNECTING:"Yhteytt\xe4 katkaistaan",ERROR:"Virhe",RECONNECTING:"Tapahtui verkkovirhe. Yhdistet\xe4\xe4n uudelleen..."},connectionindicator:{address:"Osoite:",bandwidth:"Arvioitu kaistanleveys:",bitrate:"Bittinopeus:",bridgeCount:"Palvelimien m\xe4\xe4r\xe4: ",connectedTo:"Yhdistetty kohteeseen:",framerate:"Kuvataajuus:",less:"N\xe4yt\xe4 v\xe4hemm\xe4n",localaddress:"Paikallinen osoite:",localaddress_plural:"Paikalliset osoitteet:",localport:"Paikallinen portti:",localport_plural:"Paikalliset portit:",more:"N\xe4yt\xe4 lis\xe4\xe4",packetloss:"Pakettien menetys:",quality:{good:"Hyv\xe4",inactive:"Ep\xe4aktiivinen",lost:"Katkennut",nonoptimal:"Ei optimaalinen",poor:"Huono"},remoteaddress:"Et\xe4osoite:",remoteaddress_plural:"Et\xe4osoitteet:",remoteport:"Et\xe4portti:",remoteport_plural:"Et\xe4portit:",resolution:"Resoluutio:",status:"Yhteys:",transport:"Kuljetus:",transport_plural:"Kuljetukset:",turn:" (vuoro)"},dateUtils:{earlier:"Aikaisemmin",today:"T\xe4n\xe4\xe4n",yesterday:"Eilen"},deepLinking:{appNotInstalled:"Tarvitset mobiilisovelluksen {{app}}, jotta voit liitty\xe4 t\xe4h\xe4n kokoukseen puhelimellasi.",description:"Eik\xf6 mit\xe4\xe4n tapahtunut? Yritimme k\xe4ynnist\xe4\xe4 kokouksen ty\xf6p\xf6yt\xe4sovelluksessa {{app}}. Yrit\xe4 uudelleen tai k\xe4ynnist\xe4 se verkkosovelluksessa {{app}}.",descriptionWithoutWeb:"",downloadApp:"Lataa sovellus",launchWebButton:"K\xe4ynnist\xe4 verkossa",openApp:"Jatka sovellukseen",title:"K\xe4ynnistet\xe4\xe4n kokousta sovelluksessa {{app}}...",tryAgainButton:"Yrit\xe4 uudelleen ty\xf6p\xf6yt\xe4sovelluksella"},defaultLink:"esim. {{url}}",deviceError:{cameraError:"Kameran k\xe4ytt\xf6 ei onnistunut",cameraPermission:"Virhe kameran k\xe4ytt\xf6oikeuksien hankkimisessa",microphoneError:"Mikrofonin k\xe4ytt\xf6 ei onnistunut",microphonePermission:"Virhe mikrofonin k\xe4ytt\xf6oikeuksien hankkimisessa"},deviceSelection:{noPermission:"K\xe4ytt\xf6oikeuksia ei my\xf6nnetty",previewUnavailable:"Esikatselu ei k\xe4ytett\xe4viss\xe4",selectADevice:"Valitse laite",testAudio:"Soita testi\xe4\xe4ni"},dialog:{accessibilityLabel:{liveStreaming:"Suoratoisto"},allow:"Salli",alreadySharedVideoMsg:"",alreadySharedVideoTitle:"Vain yksi jaettu video kerrallaan",applicationWindow:"Sovellusikkuna",Back:"Takaisin",cameraConstraintFailedError:"Kamerasi ei t\xe4yt\xe4 joitain pakollisia vaatimuksia.",cameraNotFoundError:"Kameraa ei l\xf6ydy.",cameraNotSendingData:"Kameran k\xe4ytt\xf6 ei onnistu. Tarkista, k\xe4ytt\xe4\xe4k\xf6 jokin toinen sovellus t\xe4t\xe4 laitetta, valitse toinen laite asetusvalikosta tai yrit\xe4 k\xe4ynnist\xe4\xe4 sovellus uudelleen.",cameraNotSendingDataTitle:"Kameran k\xe4ytt\xf6 ei onnistu",cameraPermissionDeniedError:"Et ole my\xf6nt\xe4nyt lupaa kamerasi k\xe4ytt\xf6\xf6n. Voit liitty\xe4 kokoukseen, mutta muut eiv\xe4t n\xe4e sinua. Korjaa tilanne osoitekent\xe4n kamerapainikkeella.",cameraUnknownError:"Kameran k\xe4ytt\xf6 ei onnistu tuntemattomasta syyst\xe4.",cameraUnsupportedResolutionError:"Kamerasi ei tue vaadittua videoresoluutiota.",Cancel:"Peruuta",close:"Sulje",conferenceDisconnectMsg:"Tarkista verkkoyhteys. Yhdistet\xe4\xe4n uudelleen {{seconds}} sekunnin kuluttua...",conferenceDisconnectTitle:"Yhteys on katkennut.",conferenceReloadMsg:"Yrit\xe4mme korjata tilannetta. Yhdistet\xe4\xe4n uudelleen {{seconds}} sekunnin kuluttua...",conferenceReloadTitle:"Valitettavasti jokin meni vikaan.",confirm:"Vahvista",confirmNo:"Ei",confirmYes:"Kyll\xe4",connectError:"Hups! Jokin meni vikaan, ja kokoukseen yhdist\xe4minen ei onnistunut.",connectErrorWithMsg:"Hups! Jokin meni pieleen ja kokoukseen yhdist\xe4minen ei onnistunut: {{msg}}",connecting:"Yhdistet\xe4\xe4n",contactSupport:"Ota yhteytt\xe4 tukeen",copy:"Kopioi",dismiss:"Hylk\xe4\xe4",displayNameRequired:"",done:"Valmis",enterDisplayName:"",error:"Virhe",externalInstallationMsg:"Asenna ty\xf6p\xf6yd\xe4n jakolaajennuksemme.",externalInstallationTitle:"Laajennus vaaditaan",goToStore:"Siirry verkkokauppaan",gracefulShutdown:"Palvelu on keskeytetty huoltoa varten. Yrit\xe4 my\xf6hemmin uudelleen.",IamHost:"Olen vet\xe4j\xe4",incorrectRoomLockPassword:"",incorrectPassword:"Virheellinen k\xe4ytt\xe4j\xe4tunnus tai salasana",inlineInstallationMsg:"Asenna ty\xf6p\xf6yd\xe4n jakolaajennuksemme.",inlineInstallExtension:"Asenna nyt",internalError:"Hups! Jokin meni vikaan. Tapahtui seuraava virhe: {{error}}",internalErrorTitle:"Sis\xe4inen virhe",kickMessage:"",kickParticipantButton:"Poista",kickParticipantDialog:"Haluatko varmasti poistaa t\xe4m\xe4n osanottajan kokouksesta?",kickParticipantTitle:"",kickTitle:"",liveStreaming:"Suoratoisto",liveStreamingDisabledForGuestTooltip:"Vieraat eiv\xe4t voi aloittaa suoratoistol\xe4hetyst\xe4.",liveStreamingDisabledTooltip:"Suoratoiston aloitus ei ole k\xe4yt\xf6ss\xe4.",lockMessage:"Kokouksen lukitseminen ei onnistunut.",lockRoom:"",lockTitle:"Lukitus ep\xe4onnistui",logoutQuestion:"Haluatko varmasti kirjautua ulos ja lopettaa kokouksen?",logoutTitle:"Kirjaudu ulos",maxUsersLimitReached:"",maxUsersLimitReachedTitle:"",micConstraintFailedError:"Mikrofonisi ei t\xe4yt\xe4 joitain pakollisia vaatimuksia.",micNotFoundError:"Mikrofonia ei l\xf6ytynyt.",micNotSendingData:"",micNotSendingDataTitle:"",micPermissionDeniedError:"Et ole my\xf6nt\xe4nyt lupaa mikrofonisi k\xe4ytt\xf6\xf6n. Voit liitty\xe4 kokoukseen, mutta muut eiv\xe4t kuule sinua. Korjaa tilanne osoitekent\xe4n kamerapainikkeella.",micUnknownError:"Mikrofonin k\xe4ytt\xf6 ei onnistu tuntemattomasta syyst\xe4.",muteParticipantBody:"Et voi poistaa muiden mykistyst\xe4, mutta he voivat poistaa oman mykistyksens\xe4 milloin tahansa.",muteParticipantButton:"Mykist\xe4",muteParticipantDialog:"Haluatko varmasti mykist\xe4\xe4 t\xe4m\xe4n osanottajan? Et voi sen j\xe4lkeen poistaa mykistyst\xe4, mutta h\xe4n voi poistaa sen itse milloin tahansa.",muteParticipantTitle:"",Ok:"Ok",passwordLabel:"",passwordNotSupported:"",passwordNotSupportedTitle:"",passwordRequired:"",popupError:"Selaimesi est\xe4\xe4 t\xe4m\xe4 sivuston ponnahdusikkunat. Salli ponnahdusikkunat selaimen suojausasetuksista ja yrit\xe4 uudelleen.",popupErrorTitle:"Ponnahdusikkuna estetty",recording:"Nauhoitetaan",recordingDisabledForGuestTooltip:"Vieraat eiv\xe4t voi nauhoittaa.",recordingDisabledTooltip:"Nauhoitus ei ole k\xe4yt\xf6ss\xe4.",rejoinNow:"Liity nyt uudelleen",remoteControlAllowedMessage:"{{user}} hyv\xe4ksyi et\xe4k\xe4ytt\xf6pyynt\xf6si!",remoteControlDeniedMessage:"{{user}} hylk\xe4si et\xe4k\xe4ytt\xf6pyynt\xf6si!",remoteControlErrorMessage:"Tapahtui virhe, kun et\xe4k\xe4ytt\xf6oikeuksia pyydettiin henkil\xf6lt\xe4 {{user}}!",remoteControlRequestMessage:"Sallitko, ett\xe4 {{user}} et\xe4k\xe4ytt\xe4\xe4 tietokonettasi?",remoteControlShareScreenWarning:"Huomaa, ett\xe4 Salli-vaihtoehdon valitsemalla jaat n\xe4ytt\xf6si!",remoteControlStopMessage:"Et\xe4k\xe4ytt\xf6istunto p\xe4\xe4ttyi!",remoteControlTitle:"Tietokoneen et\xe4k\xe4ytt\xf6",Remove:"Poista",removePassword:"",removeSharedVideoMsg:"Haluatko varmasti poistaa jaetun videon?",removeSharedVideoTitle:"Poista jaettu video",reservationError:"Varausj\xe4rjestelm\xe4n virhe",reservationErrorMsg:"Virhekoodi: {{code}}, viesti: {{msg}}",retry:"Yrit\xe4 uudelleen",screenSharingFailedToInstall:"Hups! N\xe4yt\xf6njakolaajennuksen asennus ep\xe4onnistui.",screenSharingFailedToInstallTitle:"N\xe4yt\xf6njakolaajennuksen asennus ep\xe4onnistui",screenSharingFirefoxPermissionDeniedError:"Jokin meni vikaan, kun yritimme jakaa n\xe4ytt\xf6si. Tarkista, ett\xe4 annoit meille siihen luvan. ",screenSharingFirefoxPermissionDeniedTitle:"Hups! N\xe4yt\xf6njakoa ei voitu aloittaa!",screenSharingPermissionDeniedError:"Hups!Jokin meni vikaan n\xe4yt\xf6njakolaajennuksen k\xe4ytt\xf6oikeuksissa. K\xe4ynnist\xe4 uudelleen ja yrit\xe4 sitten uudelleen.",serviceUnavailable:"Palvelu ei k\xe4ytett\xe4viss\xe4",sessTerminated:"Puhelu lopetettu",Share:"Jaa",shareVideoLinkError:"Anna oikea YouTube-linkki.",shareVideoTitle:"Jaa video",shareYourScreen:"Jaa n\xe4ytt\xf6",shareYourScreenDisabled:"N\xe4yt\xf6njako ei ole k\xe4yt\xf6ss\xe4.",shareYourScreenDisabledForGuest:"Vieraat eiv\xe4t voi jakaa n\xe4ytt\xf6\xe4.",startLiveStreaming:"Aloita suoratoisto",startRecording:"Aloita nauhoitus",startRemoteControlErrorMessage:"Et\xe4k\xe4ytt\xf6istunnon aloittamisessa tapahtui virhe!",stopLiveStreaming:"Lopeta suoratoisto",stopRecording:"Lopeta nauhoitus",stopRecordingWarning:"Haluatko varmasti lopettaa nauhoituksen?",stopStreamingWarning:"Haluatko varmasti lopettaa suoratoiston?",streamKey:"Suoratoistokoodi",Submit:"L\xe4het\xe4",thankYou:"Kiitos sovelluksen {{appName}} k\xe4yt\xf6st\xe4!",token:"koodi",tokenAuthFailed:"Valitettavasti et saa osallistua t\xe4h\xe4n puheluun.",tokenAuthFailedTitle:"Todennus ep\xe4onnistui",transcribing:"Puhtaaksikirjoitus",unlockRoom:"",userPassword:"k\xe4ytt\xe4j\xe4n salasana",WaitForHostMsg:"Kokous {{room}} ei ole viel\xe4 alkanut. Jos olet vet\xe4j\xe4, todenna henkil\xf6llisyytesi. Muussa tapauksessa odota vet\xe4j\xe4n saapumista.",WaitForHostMsgWOk:"Kokous {{room}} ei ole viel\xe4 alkanut. Jos olet vet\xe4j\xe4, todenna henkil\xf6llisyytesi OK-painikkeella. Muussa tapauksessa odota vet\xe4j\xe4n saapumista.",WaitingForHost:"Odotetaan vet\xe4j\xe4\xe4...",Yes:"Kyll\xe4",yourEntireScreen:"Koko n\xe4ytt\xf6"},dialOut:{statusMessage:"on nyt tilassa {{status}}"},feedback:{average:"Keskiverto",bad:"Huono",detailsLabel:"Kerro lis\xe4\xe4.",good:"Hyv\xe4",rateExperience:"Arvioi kokouskokemus",veryBad:"Eritt\xe4in huono",veryGood:"Eritt\xe4in hyv\xe4"},incomingCall:{answer:"Vastaus",audioCallTitle:"Saapuva puhelu",decline:"Hylk\xe4\xe4",productLabel:"Jitsi Meetist\xe4",videoCallTitle:"Saapuva videopuhelu"},info:{accessibilityLabel:"N\xe4yt\xe4 tiedot",addPassword:"",cancelPassword:"",conferenceURL:"Linkki:",country:"Maa",dialANumber:"Liity kokoukseen soittamalla yhteen n\xe4ist\xe4 numeroista ja antamalla PIN-koodi.",dialInConferenceID:"PIN:",dialInNotSupported:"Valitettavasti soittoa ei t\xe4ll\xe4 hetkell\xe4 tueta.",dialInNumber:"Liittymissoitto:",dialInSummaryError:"Virhe soittotietojen noudossa. Yrit\xe4 my\xf6hemmin uudelleen.",dialInTollFree:"Maksuton",genericError:"Hupsista, jokin meni vikaan.",inviteLiveStream:"Katso suora kokousl\xe4hetys seuraavasta linkist\xe4: {{url}}",invitePhone:"",invitePhoneAlternatives:"",inviteURLFirstPartGeneral:"Olet saanut kokouskutsun.",inviteURLFirstPartPersonal:"",inviteURLSecondPart:"",liveStreamURL:"Suoratoisto:",moreNumbers:"Lis\xe4\xe4 numeroita",noNumbers:"Ei liittymispuhelinnumeroita.",noPassword:"Ei yht\xe4\xe4n",noRoom:"Liitytt\xe4v\xe4\xe4 huonetta ei valittu.",numbers:"Liittymispuhelinnumerot",password:"",title:"Jaa",tooltip:"Jaa kokouksen linkki ja liittymissoittotiedot",label:"Kokoustiedot"},inviteDialog:{alertText:"Osa kutsuista ep\xe4onnistui.",header:"Kutsu",searchCallOnlyPlaceholder:"Anna puhelinnumero",searchPeopleOnlyPlaceholder:"Etsi osanottajia",searchPlaceholder:"Osanottaja tai puhelinnumero",send:"L\xe4het\xe4"},inlineDialogFailure:{msg:"K\xf6mm\xe4hdimme.",retry:"Yrit\xe4 uudelleen",support:"Tuki",supportMsg:"Jos t\xe4m\xe4 jatkuu, ota yhteytt\xe4:"},keyboardShortcuts:{focusLocal:"Keskity omaan videoon",focusRemote:"Keskity jonkun muun videoon",fullScreen:"N\xe4yt\xe4 tai poista koko n\xe4ytt\xf6",keyboardShortcuts:"Pikan\xe4pp\xe4imet",localRecording:"N\xe4yt\xe4 tai piilota paikalliset nauhoitusohjaimet",mute:"S\xe4\xe4d\xe4 mikrofonin mykistyst\xe4",pushToTalk:"Paina ja puhu",raiseHand:"K\xe4den nosto tai lasku",showSpeakerStats:"N\xe4yt\xe4 puhujatilastot",toggleChat:"Avaa tai sulje chatti",toggleFilmstrip:"N\xe4yt\xe4 tai piilota videon pikkukuvat",toggleScreensharing:"Siirry kameran ja n\xe4yt\xf6n jakamisen v\xe4lill\xe4",toggleShortcuts:"N\xe4yt\xe4 tai piilota pikan\xe4pp\xe4imet",videoMute:"K\xe4ynnist\xe4 tai pys\xe4yt\xe4 kamera"},liveStreaming:{busy:"Yrit\xe4mme vapauttaa suoratoistoresursseja. Yrit\xe4 uudelleen muutaman minuutin kuluttua.",busyTitle:"Kaikki suoratoistokanavat ovat juuri nyt varattuja",changeSignIn:"Vaihda tili\xe4.",choose:"Valitse suoratoistol\xe4hetys",chooseCTA:"Valitse suoratoistovaihtoehto. Olet kirjautunut s\xe4hk\xf6postilla {{email}}.",enterStreamKey:"Kirjoita YouTube-suoratoistokoodi t\xe4h\xe4n.",error:"Suoratoisto ep\xe4onnistui. Yrit\xe4 uudelleen.",errorAPI:"YouTube-l\xe4hetykseen yhdist\xe4misess\xe4 tapahtui virhe. Yrit\xe4 kirjautua uudelleen sis\xe4\xe4n.",errorLiveStreamNotEnabled:"Suoratoisto ei ole k\xe4yt\xf6ss\xe4 tilill\xe4 {{email}}. Ota suoratoisto k\xe4ytt\xf6\xf6n tai kirjaudu tiliin, jossa se on k\xe4yt\xf6ss\xe4.",expandedOff:"Suoratoisto on p\xe4\xe4ttynyt",expandedOn:"Kokous n\xe4kyy parhaillaan YouTubessa suoratoistol\xe4hetyksen\xe4.",expandedPending:"Suoratoistol\xe4hetys on alkamassa...",failedToStart:"Suoratoiston aloitus ei onnistunut",getStreamKeyManually:"Suoratoistol\xe4hetysten nouto ep\xe4onnistui. Hanki suoratoistokoodi YouTubesta.",invalidStreamKey:"Suoratoistokoodi voi olla virheellinen.",off:"Suoratoisto p\xe4\xe4ttyi",on:"Suoratoisto",pending:"Suoratoisto alkamassa...",serviceName:"Suoratoistopalvelu",signedInAs:"Sis\xe4\xe4nkirjautunut k\xe4ytt\xe4j\xe4:",signIn:"Kirjaudu Googlella",signInCTA:"Kirjaudu sis\xe4\xe4n tai anna YouTube-suoratoistokoodi.",signOut:"Kirjaudu ulos",start:"Aloita suoratoisto",streamIdHelp:"Mik\xe4 t\xe4m\xe4 on?",unavailableTitle:"Suoratoisto ei k\xe4ytett\xe4viss\xe4"},localRecording:{clientState:{off:"Pois p\xe4\xe4lt\xe4",on:"P\xe4\xe4ll\xe4",unknown:"Tuntematon"},dialogTitle:"Paikalliset nauhoitusohjaimet",duration:"Kesto",durationNA:"\xad\u2013",encoding:"Koodaus",label:"LOR",labelToolTip:"Paikallinen nauhoitus k\xe4yt\xf6ss\xe4",localRecording:"Paikallinen nauhoitus",me:"Min\xe4",messages:{engaged:"Paikallinen nauhoitus k\xe4yt\xf6ss\xe4.",finished:"Nauhoitus {{token}} p\xe4\xe4ttyi. L\xe4het\xe4 nauhoite valvojalle.",finishedModerator:"Nauhoitus {{token}} p\xe4\xe4ttyi. Paikallisen raidan nauhoitus on tallennettu. Pyyd\xe4 muita osanottajia l\xe4hett\xe4m\xe4\xe4n omat nauhoituksensa.",notModerator:"Et ole valvoja. Et voi aloittaa tai lopettaa paikallista nauhoitusta."},moderator:"Valvoja",no:"Ei",participant:"Osanottaja",participantStats:"Osanottajatilastot",sessionToken:"Istuntokoodi",start:"Aloita nauhoitus",stop:"Lopeta nauhoitus",yes:"Kyll\xe4"},lockRoomPassword:"",lockRoomPasswordUppercase:"",me:"min\xe4",notify:{connectedOneMember:"{{name}} liittyi kokoukseen",connectedThreePlusMembers:"{{name}} ja {{count}} muuta liittyiv\xe4t kokoukseen",connectedTwoMembers:"{{first}} ja {{second}} liittyiv\xe4t kokoukseen",disconnected:"ei yhteytt\xe4",focus:"Kokouksen painopiste",focusFail:"{{component}} ei k\xe4ytett\xe4viss\xe4. Yrit\xe4 uudelleen {{ms}} sekunnin kuluttua",grantedTo:"Valvojan oikeudet my\xf6nnetty k\xe4ytt\xe4j\xe4lle {{to}}!",invitedOneMember:"{{name}} on kutsuttu",invitedThreePlusMembers:"",invitedTwoMembers:"",kickParticipant:"",me:"Min\xe4",moderator:"Valvojan oikeudet my\xf6nnetty!",muted:"Aloitit keskustelun mykistettyn\xe4.",mutedTitle:"Olet mykistetty!",mutedRemotelyTitle:"",mutedRemotelyDescription:"",passwordRemovedRemotely:"",passwordSetRemotely:"",raisedHand:"{{name}} pyyt\xe4\xe4 puheenvuoroa.",somebody:"Joku",startSilentTitle:"",startSilentDescription:"",suboptimalExperienceDescription:"Valitettavasti {{appName}} ei taida toimia kovin hyvin t\xe4\xe4ll\xe4. Yrit\xe4mme l\xf6yt\xe4\xe4 parannuskeinoja, mutta sill\xe4 v\xe4lin kannattaa k\xe4ytt\xe4\xe4 jotain t\xe4ysin tuettua selainta.",suboptimalExperienceTitle:"Selainvaroitus",unmute:"",newDeviceCameraTitle:"Uusi kamera havaittu",newDeviceAudioTitle:"Uusi \xe4\xe4nilaite havaittu",newDeviceAction:"K\xe4yt\xe4"},passwordSetRemotely:"",passwordDigitsOnly:"",poweredby:"tukija:",presenceStatus:{busy:"Varattu",calling:"Soitetaan...",connected:"Yhdistetty",connecting:"Yhdistet\xe4\xe4n...",connecting2:"Yhdistet\xe4\xe4n*...",disconnected:"Ei yhteytt\xe4",expired:"Vanhentunut",ignored:"Sivuutettu",initializingCall:"K\xe4ynnistet\xe4\xe4n puhelua...",invited:"Kutsuttu",rejected:"Hyl\xe4tty",ringing:"Soi..."},profile:{setDisplayNameLabel:"M\xe4\xe4rit\xe4 n\xe4ytt\xf6nimi",setEmailInput:"Anna s\xe4hk\xf6postiosoite",setEmailLabel:"M\xe4\xe4rit\xe4 Gravatar-s\xe4hk\xf6posti",title:"Profiili"},recording:{authDropboxText:"Lataa Dropboxiin",availableSpace:"Tilaa j\xe4ljell\xe4: {{spaceLeft}} Mt (noin {{duration}} minuuttia nauhoitetta)",beta:"BEETA",busy:"Yrit\xe4mme vapauttaa nauhoitusresursseja. Yrit\xe4 uudelleen muutaman minuutin kuluttua.",busyTitle:"Kaikki nauhoittimet ovat juuri nyt varattuja",error:"Nauhoitus ep\xe4onnistui. Yrit\xe4 uudelleen.",expandedOff:"Nauhoitus p\xe4\xe4ttyi",expandedOn:"T\xe4t\xe4 kokousta nauhoitetaan.",expandedPending:"Nauhoitus on alkamassa...",failedToStart:"Nauhoituksen aloitus ep\xe4onnistui",fileSharingdescription:"Jaa nauhoitus kokouksen osanottajille",live:"SUORA L\xc4HETYS",loggedIn:"Kirjautunut k\xe4ytt\xe4j\xe4n\xe4 {{userName}}",off:"Nauhoitus p\xe4\xe4ttyi",on:"Nauhoitetaan",pending:"Kokouksen nauhoitusta valmistellaan...",rec:"REC",serviceDescription:"Nauhoituspalvelu tallentaa nauhoituksen",serviceName:"Nauhoituspalvelu",signIn:"Kirjaudu sis\xe4\xe4n",signOut:"Kirjaudu ulos",unavailable:"Hups! {{serviceName}} ei ole k\xe4ytett\xe4viss\xe4. Yrit\xe4mme ratkaista ongelman. Yrit\xe4 my\xf6hemmin uudelleen.",unavailableTitle:"Nauhoitus ei k\xe4ytett\xe4viss\xe4"},sectionList:{pullToRefresh:"P\xe4ivit\xe4 vet\xe4m\xe4ll\xe4"},settings:{calendar:{about:"{{appName}} tarkistaa tulevat tapahtumat kalenteristasi turvallisesti kalenteri-integrointitoimintonsa avulla.",disconnect:"Katkaise yhteys",microsoftSignIn:"Kirjaudu Microsoftilla",signedIn:"Tarkastellaan k\xe4ytt\xe4j\xe4n {{email}} kalenteritapahtumia. Est\xe4 tarkastelu napsauttamalla Katkaise yhteys -painiketta.",title:"Kalenteri"},devices:"Laitteet",followMe:"Kaikki seuraavat minua",language:"Kieli",loggedIn:"Kirjautunut k\xe4ytt\xe4j\xe4n\xe4 {{name}}",moderator:"Valvoja",more:"Lis\xe4\xe4",name:"Nimi",noDevice:"Ei yht\xe4\xe4n",selectAudioOutput:"\xc4\xe4niulostulo",selectCamera:"Kamera",selectMic:"Mikrofoni",startAudioMuted:"Kaikki aluksi mykistettyin\xe4",startVideoMuted:"Kaikki aluksi piilotettuina",title:"Asetukset"},settingsView:{alertOk:"OK",alertTitle:"Varoitus",alertURLText:"Annettu palvelimen URL on virheellinen",buildInfoSection:"Koontiversion tiedot",conferenceSection:"Kokous",displayName:"N\xe4ytt\xf6nimi",email:"S\xe4hk\xf6posti",header:"Asetukset",profileSection:"Profiili",serverURL:"Palvelimen URL",startWithAudioMuted:"Aloita \xe4\xe4ni mykistettyn\xe4",startWithVideoMuted:"Aloita video mykistettyn\xe4",version:"Versio"},share:{dialInfoText:"",mainText:"Liity kokoukseen seuraavasta linkist\xe4:\n{{roomUrl}}"},speaker:"Puhuja",speakerStats:{hours:"{{count}} t",minutes:"{{count}} min",name:"Nimi",seconds:"{{count}} s",speakerStats:"Puhujatilastot",speakerTime:"Puhujan aika"},startupoverlay:{policyText:" ",title:"{{app}} tarvitsee mikrofoniasi ja kameraasi."},suspendedoverlay:{rejoinKeyTitle:"Liity uudelleen",text:"Yhdist\xe4 uudelleen napsauttamalla Liity uudelleen -painiketta.",title:"Videopuhelu keskeytyi, koska tietokone siirtyi lepotilaan."},toolbar:{accessibilityLabel:{audioOnly:"S\xe4\xe4d\xe4 Vain \xe4\xe4ni -tilaa",audioRoute:"Valitse \xe4\xe4nilaite",callQuality:"",cc:"S\xe4\xe4d\xe4 tekstityst\xe4",chat:"S\xe4\xe4d\xe4 chatti-ikkunaa",document:"S\xe4\xe4d\xe4 jaettua asiakirjaa",feedback:"Anna palautetta",fullScreen:"S\xe4\xe4d\xe4 koko n\xe4ytt\xf6\xe4",hangup:"Poistu puhelusta",invite:"L\xe4het\xe4 kutsuja",kick:"Poista osanottaja kokouksesta",localRecording:"S\xe4\xe4d\xe4 paikallisia nauhoitusohjaimia",lockRoom:"S\xe4\xe4d\xe4 kokouksen salasanaa",moreActions:"S\xe4\xe4d\xe4 Lis\xe4\xe4 toimintoja -valikkoa",moreActionsMenu:"Lis\xe4\xe4 toimintoja -valikko",mute:"S\xe4\xe4d\xe4 \xe4\xe4nen mykistyst\xe4",pip:"S\xe4\xe4d\xe4 Kuva kuvassa (PiP) -tilaa",profile:"Muokkaa profiilia",raiseHand:"S\xe4\xe4d\xe4 k\xe4den nostoa",recording:"S\xe4\xe4d\xe4 nauhoitusta",remoteMute:"Mykist\xe4 osanottaja",Settings:"S\xe4\xe4d\xe4 asetuksia",sharedvideo:"S\xe4\xe4d\xe4 YouTube-videon jakoa",shareRoom:"Kutsu joku",shareYourScreen:"S\xe4\xe4d\xe4 n\xe4yt\xf6n jakoa",shortcuts:"S\xe4\xe4d\xe4 pikan\xe4pp\xe4imi\xe4",show:"",speakerStats:"S\xe4\xe4d\xe4 puhujatilastoja",tileView:"S\xe4\xe4d\xe4 ruudukkon\xe4kym\xe4\xe4",toggleCamera:"S\xe4\xe4d\xe4 kameraa",videomute:"S\xe4\xe4d\xe4 videon mykistyst\xe4",videoblur:""},addPeople:"Lis\xe4\xe4 osanottajia puheluun",audioOnlyOff:"Poista Vain \xe4\xe4ni -tila k\xe4yt\xf6st\xe4",audioOnlyOn:"Ota Vain \xe4\xe4ni -tila k\xe4ytt\xf6\xf6n",audioRoute:"Valitse \xe4\xe4nilaite",authenticate:"Todenna",callQuality:"",chat:"Avaa/sulje chatti",closeChat:"Sulje chatti",documentClose:"Sulje jaettu asiakirja",documentOpen:"Avaa jaettu asiakirja",enterFullScreen:"N\xe4yt\xe4 koko n\xe4yt\xf6ss\xe4",enterTileView:"Siirry ruudukkon\xe4kym\xe4\xe4n",exitFullScreen:"Poisti koko n\xe4yt\xf6st\xe4",exitTileView:"Poistu ruudukkon\xe4kym\xe4st\xe4",feedback:"Anna palautetta",hangup:"Poistu",invite:"L\xe4het\xe4 kutsuja",login:"Kirjaudu sis\xe4\xe4n",logout:"Kirjaudu ulos",lowerYourHand:"Laske k\xe4si",moreActions:"Lis\xe4\xe4 toimintoja",mute:"Mykistys p\xe4\xe4ll\xe4/pois",openChat:"Avaa chatti",pip:"Siirry Kuva kuvassa (PiP) -tilaan",profile:"Muokkaa profiilia",raiseHand:"Nosta/laske k\xe4si",raiseYourHand:"Nosta k\xe4si",Settings:"Asetukset",sharedvideo:"Jaa YouTube-video",shareRoom:"Kutsu joku",shortcuts:"N\xe4yt\xe4 pikan\xe4pp\xe4imet",speakerStats:"Puhujatilastot",startScreenSharing:"Aloita n\xe4yt\xf6n jako",startSubtitles:"K\xe4ynnist\xe4 tekstitys",stopScreenSharing:"Lopeta n\xe4yt\xf6n jako",stopSubtitles:"Lopeta tekstitys",stopSharedVideo:"Pys\xe4yt\xe4 YouTube-video",talkWhileMutedPopup:"Yrit\xe4tk\xf6 puhua? Olet mykistettyn\xe4.",tileViewToggle:"S\xe4\xe4d\xe4 ruudukkon\xe4kym\xe4\xe4",toggleCamera:"S\xe4\xe4d\xe4 kameraa",videomute:"K\xe4ynnist\xe4/pys\xe4yt\xe4 kamera",startvideoblur:"",stopvideoblur:""},transcribing:{ccButtonTooltip:"Tekstitys p\xe4\xe4lle/pois",error:"Puhtaaksikirjoitus ep\xe4onnistui. Yrit\xe4 uudelleen.",expandedLabel:"Puhtaaksikirjoitus on k\xe4yt\xf6ss\xe4",failedToStart:"Puhtaaksikirjoituksen aloitus ep\xe4onnistui",labelToolTip:"Kokousta kirjoitetaan puhtaaksi",off:"Puhtaaksikirjoitus p\xe4\xe4ttyi",pending:"Kokouksen puhtaaksikirjoitusta valmistellaan...",start:"Aloita tekstitys",stop:"Lopeta tekstitys",tr:"TR"},userMedia:{androidGrantPermissions:"Valitse Salli, kun selain pyyt\xe4\xe4 k\xe4ytt\xf6oikeuksia.",chromeGrantPermissions:"Valitse Salli, kun selain pyyt\xe4\xe4 k\xe4ytt\xf6oikeuksia.",edgeGrantPermissions:"Valitse Kyll\xe4, kun selain pyyt\xe4\xe4 k\xe4ytt\xf6oikeuksia.",electronGrantPermissions:"My\xf6nn\xe4 k\xe4ytt\xf6oikeudet laitteesi kameran ja mikrofonin k\xe4ytt\xf6\xf6n.",firefoxGrantPermissions:"Valitse Jaa havaittu laite, kun selain pyyt\xe4\xe4 k\xe4ytt\xf6oikeuksia.",iexplorerGrantPermissions:"Valitse OK, kun selain pyyt\xe4\xe4 k\xe4ytt\xf6oikeuksia.",nwjsGrantPermissions:"My\xf6nn\xe4 k\xe4ytt\xf6oikeudet laitteesi kameran ja mikrofonin k\xe4ytt\xf6\xf6n.",operaGrantPermissions:"Valitse Salli, kun selain pyyt\xe4\xe4 k\xe4ytt\xf6oikeuksia.","react-nativeGrantPermissions":"Valitse Salli, kun selain pyyt\xe4\xe4 k\xe4ytt\xf6oikeuksia.",safariGrantPermissions:"Valitse OK, kun selain pyyt\xe4\xe4 k\xe4ytt\xf6oikeuksia."},videoSIPGW:{busy:"Yrit\xe4mme vapauttaa resursseja. Yrit\xe4 uudelleen muutaman minuutin kuluttua.",busyTitle:"Huonepalvelu on t\xe4ll\xe4 hetkell\xe4 varattu",errorAlreadyInvited:"{{displayName}} on jo kutsuttu",errorInvite:"Kokousta ei ole viel\xe4 luotu. Yrit\xe4 my\xf6hemmin uudelleen.",errorInviteFailed:"Ratkaisemme ongelmaa. Yrit\xe4 my\xf6hemmin uudelleen.",errorInviteFailedTitle:"Henkil\xf6n {{displayName}} kutsuminen ep\xe4onnistui",errorInviteTitle:"Virhe huoneen kutsumisessa",pending:"{{displayName}} on kutsuttu"},videoStatus:{audioOnly:"\xc4\xc4NI",audioOnlyExpanded:"K\xe4yt\xf6ss\xe4si on Vain \xe4\xe4ni -tila. Se s\xe4\xe4st\xe4\xe4 kaistanleveytt\xe4, mutta et n\xe4e muiden videoita.",callQuality:"",hd:"HD",highDefinition:"Ter\xe4v\xe4piirto",labelTooiltipNoVideo:"Ei videota",labelTooltipAudioOnly:"Vain \xe4\xe4ni -tila k\xe4yt\xf6ss\xe4",ld:"LD",lowDefinition:"Alhainen kuvanlaatu",onlyAudioAvailable:"Vain \xe4\xe4ni -tila on k\xe4ytett\xe4viss\xe4",onlyAudioSupported:"T\xe4ss\xe4 selaimessa tuemme vain \xe4\xe4nt\xe4.",p2pEnabled:"Vertaisverkko k\xe4yt\xf6ss\xe4",p2pVideoQualityDescription:"",recHighDefinitionOnly:"Suositaan ter\xe4v\xe4piirtoa.",sd:"SD",standardDefinition:"Vakiopiirto"},videothumbnail:{domute:"Mykist\xe4",flip:"K\xe4\xe4nn\xe4",kick:"Poista",moderator:"Valvoja",mute:"",muted:"Mykistetty",remoteControl:"Et\xe4k\xe4ytt\xf6",show:"",videomute:""},welcomepage:{accessibilityLabel:{join:"Liity napauttamalla",roomname:"Anna huoneen nimi"},appDescription:"Anna menn\xe4! Keskustele videochatiss\xe4 koko tiimin kanssa tai kutsu vaikka kaikki tutut. {{app}} on t\xe4ysin salattu, avoimen l\xe4hdekoodin videokokousratkaisu kokop\xe4iv\xe4iseen k\xe4ytt\xf6\xf6n joka p\xe4iv\xe4. Se on maksuton, eik\xe4 vaadi tili\xe4.",audioVideoSwitch:{audio:"\xc4\xe4ni",video:"Video"},calendar:"Kalenteri",connectCalendarButton:"Yhdist\xe4 oma kalenteri",connectCalendarText:"",enterRoomTitle:"Aloita uusi kokous",go:"ALOITA",join:"LIITY",info:"Tiedot",privacy:"Tietosuoja",recentList:"Viimeisimm\xe4t",recentListDelete:"Poista",recentListEmpty:"Viimeisimpien kokousten luettelo on tyhj\xe4. Kun pid\xe4t kokouksia tiimisi kanssa, niist\xe4 viimeisimm\xe4t n\xe4kyv\xe4t t\xe4\xe4ll\xe4.",reducedUIText:"",roomname:"Anna huoneen nimi",roomnameHint:"Kirjoita sen huoneen nimi tai URL-osoite, johon haluat liitty\xe4. Voit my\xf6s nimet\xe4 huoneen itse ja kertoa nimen muille, jotta he voivat l\xf6yt\xe4\xe4 sen.",sendFeedback:"L\xe4het\xe4 palautetta",terms:"Ehdot",title:"Turvallinen, t\xe4ysin varustettu ja maksuton videoneuvottelu"}}},659,[]); -__d(function(a,n,i,e,s,r,o){s.exports={en:"Anglais",af:"Afrikaans",bg:"Bulgare",ca:"Catalan",cs:"Tch\xe8que",de:"Allemand",el:"Grec",enGB:"Anglais (Royaume-Uni) ",eo:"Esp\xe9ranto",es:"Espagnol",esUS:"Espagnol (Am\xe9rique latine)",fi:"Finlandais",fr:"Fran\xe7ais",frCA:"Fran\xe7ais (Canadien)",hr:"Croate",hy:"Arm\xe9nien",it:"Italien",ja:"Japonais",ko:"Cor\xe9en",nl:"N\xe9erlandais",oc:"Occitan",pl:"Polonais",ptBR:"Portugais (Br\xe9sil)",ru:"Russe",sv:"Su\xe9dois",tr:"Turc",vi:"Vietnamien",zhCN:"Chinois (Chine)",zhTW:"Chinois (Taiwan)"}},660,[]); -__d(function(e,r,n,t,i,o,a){i.exports={addPeople:{add:"Inviter",countryNotSupported:"Nous ne supportons pas encore cette destination.",countryReminder:"Appel hors \xc9tats-Unis? Veuillez commencer avec le code du pays!",disabled:"Vous ne pouvez pas inviter quelqu'un.",failedToAdd:"Erreur lors de l'ajout des participants",footerText:"Appels sortants d\xe9sactiv\xe9s",loading:"Rechercher des personnes et des num\xe9ros de t\xe9l\xe9phone",loadingNumber:"Validation du num\xe9ro de t\xe9l\xe9phone",loadingPeople:"Recherche de personnes \xe0 inviter",noResults:"Aucun r\xe9sultat de recherche correspondant",noValidNumbers:"Veuillez entrer un num\xe9ro de t\xe9l\xe9phone",searchNumbers:"Ajouter des num\xe9ros de t\xe9l\xe9phone",searchPeople:"Rechercher une personne",searchPeopleAndNumbers:"Rechercher des personnes ou ajouter leurs num\xe9ros de t\xe9l\xe9phone",telephone:"T\xe9l\xe9phone: {{number}}",title:"Inviter une personne \xe0 cette r\xe9union"},audioDevices:{bluetooth:"Bluetooth",headphones:"\xc9couteurs",phone:"T\xe9l\xe9phone",speaker:"Haut-parleur",none:"Aucune source audio n'est disponible"},audioOnly:{audioOnly:"Bande passante faible"},calendarSync:{addMeetingURL:"Ajouter un lien de conf\xe9rence",confirmAddLink:"Voulez-vous ajouter un lien Jitsi \xe0 cet \xe9v\xe9nement?",error:{appConfiguration:"l'int\xe9gration du calendrier n'est pas correctement configur\xe9e",generic:"Une erreur s'est produite. Veuillez v\xe9rifier les param\xe8tres de votre calendrier ou tenter de l'actualiser.",notSignedIn:"Une erreur s'est produite lors de l'authentification permettant d'afficher les \xe9v\xe9nements du calendrier. Veuillez v\xe9rifier les param\xe8tres de votre calendrier et essayer de vous reconnecter."},join:"Joindre",joinTooltip:"Rejoindre la r\xe9union",nextMeeting:"prochaine r\xe9union",noEvents:"Il n'y a pas d\u2019\xe9v\xe9nement \xe0 venir.",ongoingMeeting:"La r\xe9union en cours",permissionButton:"Afficher les r\xe9glages",permissionMessage:"La permission du calendrier est requise pour afficher vos r\xe9unions dans l'application.",refresh:"Rafra\xeechir le calendrier",today:"Aujourd'hui"},chat:{error:"Erreur : votre message \"{{originalText}}\" n'a pas \xe9t\xe9 envoy\xe9. Raison : {{error}}",messagebox:"Saisissez un message",nickname:{popover:"Choisissez un pseudonyme",title:"Entrez un pseudonyme pour utiliser le chat"},title:"Chat"},connectingOverlay:{joiningRoom:"Connexion \xe0 la r\xe9union..."},connection:{ATTACHED:"Attach\xe9e",AUTHENTICATING:"Authentification en cours",AUTHFAIL:"\xc9chec de l'authentification",CONNECTED:"Connect\xe9",CONNECTING:"Connexion en cours",CONNFAIL:"\xc9chec de la connexion",DISCONNECTED:"D\xe9connect\xe9",DISCONNECTING:"D\xe9connexion en cours",ERROR:"Erreur",RECONNECTING:"Un probl\xe8me r\xe9seau est survenue. Reconnexion en cours..."},connectionindicator:{address:"Adresse :",bandwidth:"Bande passante estim\xe9e :",bitrate:"D\xe9bit\xa0:",bridgeCount:"Nombre de serveurs :",connectedTo:"Connect\xe9 \xe0 :",framerate:"Images par seconde",less:"Cacher le d\xe9tail",localaddress:"Adresse locale :",localaddress_plural:"Adresses locales :",localport:"Port local :",localport_plural:"Ports locaux :",more:"Montrer le d\xe9tail",packetloss:"Perte de paquets :",quality:{good:"Bien",inactive:"Inactif",lost:"Perdu",nonoptimal:"Non-optimale",poor:"Mauvaise"},remoteaddress:"Adresse distante :",remoteaddress_plural:"Adresses distantes :",remoteport:"Port distant:",remoteport_plural:"Ports distants:",resolution:"R\xe9solution\xa0:",status:"Connexion:",transport:"Transport :",transport_plural:"Transports :"},dateUtils:{earlier:"Plus t\xf4t",today:"Aujourd'hui",yesterday:"Hier"},deepLinking:{appNotInstalled:"Vous avez besoin de l'application mobile {{app}} pour participer \xe0 cette r\xe9union avec votre t\xe9l\xe9phone.",description:"Rien ne s'est pass\xe9? Nous avons essay\xe9 de lancer votre r\xe9union dans l'application de bureau {{app}}. Essayez \xe0 nouveau ou lancez-la dans l'application web {{app}}.",descriptionWithoutWeb:"Rien ne s'est pass\xe9? Nous avons essay\xe9 de d\xe9marrer votre r\xe9union dans l'application bureau {{app}}.",downloadApp:"T\xe9l\xe9charger l'application",launchWebButton:"Lancer dans le navigateur",openApp:"Continuer vers l'application",title:"Lancement de votre r\xe9union dans {{app}} en cours...",tryAgainButton:"R\xe9essayez sur le bureau"},defaultLink:"ex. {{url}}",defaultNickname:"ex. Jean Dupont",deviceError:{cameraError:"Impossible d'acc\xe9der \xe0 votre cam\xe9ra",cameraPermission:"Erreur lors de l'obtention de la permission de la cam\xe9ra ",microphoneError:"Impossible d'acc\xe9der \xe0 votre microphone",microphonePermission:"Erreur lors de l'obtention de la permission du microphone"},deviceSelection:{noPermission:"Permission non accord\xe9e",previewUnavailable:"Aper\xe7u non disponible",selectADevice:"S\xe9lectionner un p\xe9riph\xe9rique",testAudio:"Lire un audio de test"},dialog:{accessibilityLabel:{liveStreaming:"Diffusion en direct"},allow:"Autoriser",alreadySharedVideoMsg:"Un autre participant est en train de partager sa vid\xe9o. Cette conf\xe9rence ne permet de partager qu'une seule vid\xe9o \xe0 la fois.",alreadySharedVideoTitle:"Une seule vid\xe9o partag\xe9e est autoris\xe9e \xe0 la fois",applicationWindow:"Fen\xeatre d'application",Back:"Retour",cameraConstraintFailedError:"Votre cam\xe9ra ne satisfait pas certaines des contraintes n\xe9cessaires.",cameraNotFoundError:"La cam\xe9ra n'a pas \xe9t\xe9 trouv\xe9e",cameraNotSendingData:"Nous sommes incapables d'acc\xe9der \xe0 votre cam\xe9ra. Veuillez s\xe9lectionner un autre p\xe9riph\xe9rique dans les param\xe8tres ou rafra\xeechir la page",cameraNotSendingDataTitle:"Impossible d'acc\xe9der \xe0 votre cam\xe9ra",cameraPermissionDeniedError:"Vous n'avez pas autoris\xe9 l'utilisation de votre cam\xe9ra. Vous pouvez toujours participer \xe0 la conf\xe9rence, mais les autres ne vont pas vous voir. Utilisez le bouton de la cam\xe9ra dans la barre d'adresse pour r\xe9soudre ce probl\xe8me.",cameraUnknownError:"Vous ne pouvez pas utiliser la cam\xe9ra pour une raison inconnue.",cameraUnsupportedResolutionError:"Votre appareil ne prend pas en charge la r\xe9solution vid\xe9o requise.",Cancel:"Annuler",close:"Fermer",conferenceDisconnectMsg:"Veuillez v\xe9rifier votre connexion r\xe9seau. Reconnexion dans {{seconds}} sec...",conferenceDisconnectTitle:"Vous avez \xe9t\xe9 d\xe9connect\xe9.",conferenceReloadMsg:"Nous somme en train de r\xe9gler cela. Reconnexion dans {{seconds}} sec...",conferenceReloadTitle:"Malheureusement, un probl\xe8me est survenu",confirm:"Confirmer",confirmNo:"Non",confirmYes:"Oui",connectError:"Oups! Un probl\xe8me est survenu et la connexion \xe0 la conf\xe9rence est impossible.",connectErrorWithMsg:"Oups! Un probl\xe8me est survenu et la connexion \xe0 la conf\xe9rence est impossible: {{msg}}",connecting:"Connexion en cours",contactSupport:"Contacter le support",copy:"Copier",dismiss:"Rejeter",displayNameRequired:"Salut! Quel est votre nom?",done:"Termin\xe9",enterDisplayName:"Merci de saisir votre nom ici",error:"Erreur",externalInstallationMsg:"Vous devez installer notre extension de partage de bureau.",externalInstallationTitle:"Extension requise : ",goToStore:"Aller sur le webstore",gracefulShutdown:"Le service est actuellement en maintenance. R\xe9essayez plus tard.",IamHost:"Je suis l\u2019h\xf4te",incorrectRoomLockPassword:"Mot de passe incorrect",incorrectPassword:"Nom d'utilisateur ou mot de passe incorrect",inlineInstallationMsg:"Vous devez installer notre extension de partage de bureau.",inlineInstallExtension:"Installer maintenant",internalError:"Oups! Quelque chose s'est mal pass\xe9e. L'erreur suivante s'est produite: {{error}}",internalErrorTitle:"Erreur interne",kickMessage:"Vous pouvez contacter {{participantDisplayName}} pour plus de d\xe9tails.",kickParticipantButton:"Expulser",kickParticipantDialog:"\xcates-vous s\xfbr(e) de vouloir expulser ce participant ?",kickParticipantTitle:"Expulser ce participant?",kickTitle:"Oups! vous avez \xe9t\xe9 expuls\xe9(e) par {{participantDisplayName}}",liveStreaming:"Direct",liveStreamingDisabledForGuestTooltip:"Les invit\xe9s ne peuvent d\xe9marrer la diffusion en direct.",liveStreamingDisabledTooltip:"La diffusion en direct est d\xe9sactiv\xe9",lockMessage:"Impossible de verrouiller la conf\xe9rence.",lockRoom:"Ajouter la r\xe9union $t(lockRoomPasswordUppercase)",lockTitle:"\xc9chec du verrouillage",logoutQuestion:"Voulez-vous vraiment vous d\xe9connecter et arr\xeater la conf\xe9rence ?",logoutTitle:"D\xe9connexion",maxUsersLimitReached:"Le nombre maximal de participant est atteint. Le conf\xe9rence est compl\xe8te. Merci de contacter l'organisateur de la r\xe9union ou r\xe9essayer plus tard!",maxUsersLimitReachedTitle:"Le nombre maximal de participants est atteint",micConstraintFailedError:"Votre microphone ne satisfait pas certaines des contraintes n\xe9cessaires.",micNotFoundError:"Le microphone n'a pas \xe9t\xe9 d\xe9tect\xe9.",micNotSendingData:"Acc\xe9dez aux param\xe8tres de votre ordinateur pour r\xe9activer le micro et ajuster son niveau",micNotSendingDataTitle:"Votre micro est d\xe9sactiv\xe9 par les param\xe8tres de votre syst\xe8me",micPermissionDeniedError:"Vous n'avez pas autoris\xe9 l'utilisation de votre microphone. Vous pouvez toujours participer \xe0 la conf\xe9rence, mais les autres ne vont pas vous entendre. Utilisez le bouton du microphone dans la barre d'adresse pour r\xe9soudre ce probl\xe8me.",micUnknownError:"Vous ne pouvez pas utiliser le microphone pour une raison inconnue.",muteParticipantBody:"Vous ne pourrez plus r\xe9activer leurs micros, mais ils peuvent l'activer par eux-m\xeame \xe0 tout moment.",muteParticipantButton:"Couper le micro",muteParticipantDialog:"\xcates-vous s\xfbr(e) de vouloir couper le micro de ce participant ? Seul le participant pourra ensuite r\xe9activer son micro \xe0 tout moment.",muteParticipantTitle:"Couper le micro de ce participant?",Ok:"Ok",passwordLabel:"$t(lockRoomPasswordUppercase)",passwordNotSupported:"La d\xe9finition d'un $t(lockRoomPassword) de r\xe9union n'est pas prise en charge.",passwordNotSupportedTitle:"$t(lockRoomPasswordUppercase) n'est pas support\xe9",passwordRequired:"$t(lockRoomPasswordUppercase) requis",popupError:"Votre navigateur bloque les fen\xeatres pop-up. Veuillez autoriser les fen\xeatres pop-up dans les param\xe8tres de votre navigateur.",popupErrorTitle:"Pop-up bloqu\xe9e",recording:"Enregistrement",recordingDisabledForGuestTooltip:"Les invit\xe9s ne peuvent enregistrer.",recordingDisabledTooltip:"L'enregistrement est d\xe9sactiv\xe9.",rejoinNow:"Rejoindre maintenant",remoteControlAllowedMessage:"Une erreur s'est produite lors de la demande d\u2019autorisation de prise en main \xe0 distance avec {{user}}!",remoteControlDeniedMessage:"{{user}} a refus\xe9 votre demande de prise en main \xe0 distance!",remoteControlErrorMessage:"Une erreur s'est produite lors de la demande d\u2019autorisation de prise en main \xe0 distance avec {{user}}!",remoteControlRequestMessage:"Voulez-vous autoriser {{user}} \xe0 contr\xf4ler votre bureau?",remoteControlShareScreenWarning:"Si vous appuyez sur \"Autoriser\" vous allez partager votre \xe9cran!",remoteControlStopMessage:"La prise en main \xe0 distance est termin\xe9e!",remoteControlTitle:"Contr\xf4le de bureau \xe0 distance",Remove:"Supprimer",removePassword:"Supprimer $t(lockRoomPassword)",removeSharedVideoMsg:"Voulez-vous vraiment supprimer votre vid\xe9o partag\xe9e ?",removeSharedVideoTitle:"Supprimer la vid\xe9o partag\xe9e",reservationError:"Erreur du syst\xe8me de r\xe9servation",reservationErrorMsg:"Code d'erreur: {{code}}, message: {{msg}}",retry:"R\xe9essayer",screenSharingFailedToInstall:"Oups! Votre extension de partage d'\xe9cran n'a pas pu \xeatre install\xe9e.",screenSharingFailedToInstallTitle:"L'extension de partage d'\xe9cran n'a pas pu \xeatre install\xe9e",screenSharingFirefoxPermissionDeniedError:"Quelque chose s'est mal pass\xe9 pendant que nous essayions de partager votre \xe9cran. S'il vous pla\xeet assurez-vous que vous nous avez donn\xe9 la permission de le faire.",screenSharingFirefoxPermissionDeniedTitle:"Oups! Nous ne pouvions pas d\xe9marrer le partage d'\xe9cran!",screenSharingPermissionDeniedError:"Oups! Une erreur s'est produite avec vos autorisations d'extension de partage d'\xe9cran. Veuillez rafra\xeechir et r\xe9essayer.",serviceUnavailable:"Service indisponible",sessTerminated:"Appel termin\xe9",Share:"Partager",shareVideoLinkError:"Fournissez s'il vous pla\xeet un lien Youtube fonctionnel.",shareVideoTitle:"Partager une vid\xe9o",shareYourScreen:"Partagez votre \xe9cran",shareYourScreenDisabled:"Le partage d\u2019\xe9cran est d\xe9sactiv\xe9.",shareYourScreenDisabledForGuest:"Les invit\xe9s ne peuvent partager l'\xe9cran.",startLiveStreaming:"D\xe9marrer la diffusion en direct",startRecording:"Commencer l'enregistrement",startRemoteControlErrorMessage:"Une erreur est survenue lors de la tentative de d\xe9marrage de la session de contr\xf4le \xe0 distance!",stopLiveStreaming:"Arr\xeater la diffusion en direct",stopRecording:"Arr\xeater l'enregistrement",stopRecordingWarning:"D\xe9sirez-vous vraiment arr\xeater l'enregistrement?",stopStreamingWarning:"D\xe9sirez-vous vraiment arr\xeater le direct?",streamKey:"Cl\xe9 Live stream",Submit:"Soumettre",thankYou:"Merci d'avoir utilis\xe9 {{appName}} !",token:"jeton",tokenAuthFailed:"D\xe9sol\xe9, vous n'\xeates pas autoris\xe9 \xe0 rejoindre cette conversation.",tokenAuthFailedTitle:"\xc9chec de l'authentification",transcribing:"Transcription",unlockRoom:"Supprimer $t(lockRoomPassword) de la r\xe9union",userPassword:"mot de passe utilisateur",WaitForHostMsg:"La conf\xe9rence {{room}} n'a pas encore commenc\xe9. Si vous en \xeates l'h\xf4te, veuillez vous authentifier. Sinon, veuillez attendre son arriv\xe9e.",WaitForHostMsgWOk:"La conf\xe9rence {{room}} n'a pas encore commenc\xe9. Si vous en \xeates l'h\xf4te, veuillez appuyer sur Ok pour vous authentifier. Sinon, veuillez attendre son arriv\xe9e.",WaitingForHost:"En attente de l'h\xf4te ...",Yes:"Oui",yourEntireScreen:"Votre \xe9cran entier"},dialOut:{statusMessage:"est maintenant {{status}}"},feedback:{average:"Moyen",bad:"Mauvais",detailsLabel:"Dites nous en plus \xe0 ce sujet.",good:"Bien",rateExperience:"Veuillez \xe9valuer votre exp\xe9rience.",veryBad:"Tr\xe8s mauvais",veryGood:"Tr\xe8s bon"},incomingCall:{answer:"R\xe9pondre",audioCallTitle:"Appel entrant",decline:"Rejeter",productLabel:"de Jitsi Meet",videoCallTitle:"Appel vid\xe9o entrant"},info:{accessibilityLabel:"Afficher les informations",addPassword:"Ajouter $t(lockRoomPassword)",cancelPassword:"Annuler $t(lockRoomPassword)",conferenceURL:"Lien:",country:"Pays",dialANumber:"Pour rejoindre votre r\xe9union, composez l'un de ces num\xe9ros, puis saisissez le code confidentiel.",dialInConferenceID:"PIN:",dialInNotSupported:"D\xe9sol\xe9, l'acc\xe8s par t\xe9l\xe9phone n'est pas pris en charge pour l'instant.",dialInNumber:"Composer:",dialInSummaryError:"Erreur lors de la r\xe9cup\xe9ration des informations de num\xe9rotation. Veuillez r\xe9essayer plus tard.",dialInTollFree:"Num\xe9ro gratuit",genericError:"Oups, quelque chose a mal tourn\xe9.",inviteLiveStream:"Pour voir la diffusion en direct de cette r\xe9union, cliquez sur ce lien : {{url}}",invitePhone:"Pour rejoindre depuis un t\xe9l\xe9phone, saisissez : {{number}},,{{conferenceID}}#\n",invitePhoneAlternatives:"Vous cherchez un num\xe9ro d'appel diff\xe9rent?\nAfficher les num\xe9ros d'appel de la r\xe9union: {{url}}\n\n\nSi vous appelez \xe9galement via un t\xe9l\xe9phone de salle, vous pouvez vous connecter sans audio: {{silentUrl}}",inviteURLFirstPartGeneral:"Vous \xeates invit\xe9(e) \xe0 participer \xe0 une r\xe9union.",inviteURLFirstPartPersonal:"{{name}} vous invite \xe0 une r\xe9union.\n",inviteURLSecondPart:"\nRejoindre la r\xe9union:\n{{url}}\n",liveStreamURL:"Diffusion en direct :",moreNumbers:"Plus de num\xe9ros ",noNumbers:"Num\xe9ros \xe0 composer non trouv\xe9s",noPassword:"Aucun",noRoom:"Aucune r\xe9union n'a \xe9t\xe9 sp\xe9cifi\xe9e pour l'appel entrant.",numbers:"Num\xe9ros d'appel",password:"$t(lockRoomPasswordUppercase):",title:"Partager",tooltip:"Partager le lien et les informations de connexion pour cette conf\xe9rence",label:"Information de la r\xe9union"},inviteDialog:{alertText:"\xc9chec lors de l'invitation de certains participants.",header:"Inviter",searchCallOnlyPlaceholder:"Saisissez un num\xe9ro de t\xe9l\xe9phone",searchPeopleOnlyPlaceholder:"Rechercher des participants",searchPlaceholder:"Participant ou num\xe9ro de t\xe9l\xe9phone",send:"Envoyer"},inlineDialogFailure:{msg:"Nous avons tr\xe9buch\xe9 un peu.",retry:"R\xe9essayer",support:"Support",supportMsg:"Si cela continue, prenez contact avec"},keyboardShortcuts:{focusLocal:"\xc9pingler ma vid\xe9o",focusRemote:"\xc9pingler la vid\xe9o de quelqu'un d'autre",fullScreen:"Activer / D\xe9sactiver le mode plein \xe9cran",keyboardShortcuts:"Raccourcis clavier",localRecording:"Afficher ou masquer les commandes de l'enregistrement local",mute:"Activer ou d\xe9sactiver le microphone",pushToTalk:"Appuyer pour parler",raiseHand:"Lever ou baisser la main",showSpeakerStats:"Afficher les statistiques de l'interlocuteur",toggleChat:"Ouvrir ou fermer le panneau de conversation",toggleFilmstrip:"Afficher ou masquer les vignettes vid\xe9os",toggleScreensharing:"Basculer entre la cam\xe9ra et le partage d'\xe9cran",toggleShortcuts:"Afficher ou masquer les raccourcis clavier",videoMute:"D\xe9marrer ou arr\xeater votre cam\xe9ra",videoQuality:"Accorder la qualit\xe9 des appels"},liveStreaming:{busy:"Nous travaillons sur la lib\xe9ration des ressources de Streaming. Veuillez r\xe9essayez dans quelques minutes.",busyTitle:"Tous les streamers sont actuellement occup\xe9s",changeSignIn:"Changer de compte.",choose:"Choisir un flux live",chooseCTA:"Choisissez une option de diffusion. Vous \xeates actuellement connect\xe9 comme {{email}}.",enterStreamKey:"Entrez votre cl\xe9 de flux live Youtube ici",error:"Le Streaming a \xe9chou\xe9. Veuillez r\xe9essayer.",errorAPI:"Une erreur s'est produite lors de l'acc\xe8s \xe0 vos diffusions YouTube. Veuillez r\xe9essayer de vous connecter.",errorLiveStreamNotEnabled:"La diffusion en direct n'est pas activ\xe9e pour {{email}}. Merci de l'activer ou de vous connecter avec un compte o\xf9 elle est d\xe9j\xe0 activ\xe9e.",expandedOff:"La diffusion en direct a \xe9t\xe9 arr\xeat\xe9e",expandedOn:"La conf\xe9rence est en cours de diffusion sur YouTube.",expandedPending:"La diffusion en direct a commenc\xe9...",failedToStart:"Le Streaming n'as pas r\xe9ussi \xe0 d\xe9marrer",getStreamKeyManually:"Nous n'avons pu r\xe9cup\xe9rer aucun flux en direct. Essayez d\u2019obtenir votre cl\xe9 de diffusion en direct sur YouTube.",invalidStreamKey:"La cl\xe9 de diffusion en direct n'est peut-\xeatre pas correcte.",off:"Le Streaming a \xe9t\xe9 arr\xeat\xe9",on:"Direct",pending:"Commencer le direct...",serviceName:"Service de diffusion en direct",signedInAs:"Vous \xeates connect\xe9 en tant que :",signIn:"Se connecter avec Google",signInCTA:"Connectez vous ou entrez votre cl\xe9 de flux live provenant de Youtube.",signOut:"Se d\xe9connecter",start:"D\xe9marrer la diffusion en direct",streamIdHelp:"Qu'est-ce que c'est?",unavailableTitle:"Le Streaming est indisponible"},localRecording:{clientState:{off:"Inactif",on:"Actif",unknown:"Inconnu"},dialogTitle:"Commandes de l'enregistrement local",duration:"Dur\xe9e",durationNA:"N/A",encoding:"Encodage",label:"ENR-LOC",labelToolTip:"L'enregistrement local est engag\xe9",localRecording:"Enregistrement local",me:"Moi",messages:{engaged:"Enregistrement local engag\xe9.",finished:"L'enregistrement de la session {{token}} s'est termin\xe9. Merci d'envoyer le fichier au mod\xe9rateur.",finishedModerator:"L'enregistrement de la session {{token}} s'est termin\xe9. La piste a bien \xe9t\xe9 sauvegard\xe9e. Merci de demander aux autres participants de soumettre leurs enregistrements.",notModerator:"Vous n'\xeates pas le mod\xe9rateur. Vous ne pouvez pas d\xe9marrer ou arr\xeater un enregistrement local."},moderator:"Moderateur",no:"Non",participant:"Participant",participantStats:"Statistiques du participant",sessionToken:"Token de la session",start:"D\xe9marrer l'enregistrement",stop:"Arr\xeater l'enregistrement",yes:"Oui"},lockRoomPassword:"mot de passe",lockRoomPasswordUppercase:"Mot de passe",me:"moi",notify:{connectedOneMember:"{{name}} a rejoint la r\xe9union.",connectedThreePlusMembers:"{{name}} et {{count}} autres personnes ont rejoint la r\xe9union.",connectedTwoMembers:"{{first}} et {{second}} ont rejoint la r\xe9union.",disconnected:"d\xe9connect\xe9",focus:"Focus de conf\xe9rence",focusFail:"{{component}} n'est pas disponible - r\xe9essayez dans {{ms}} sec",grantedTo:"Droits mod\xe9rateur accord\xe9s \xe0 {{to}} !",invitedOneMember:"{{displayName}} a \xe9t\xe9 invit\xe9(e)",invitedThreePlusMembers:"{{name}} et {{count}} autres ont \xe9t\xe9 invit\xe9s",invitedTwoMembers:"{{first}} et {{second}} ont \xe9t\xe9 invit\xe9s",kickParticipant:"{{kicked}} a \xe9t\xe9 expuls\xe9 par {{kicker}}",me:"Moi",moderator:"Droits mod\xe9rateur accord\xe9s !",muted:"Vous avez commenc\xe9 la conversation en muet.",mutedTitle:"Vous \xeates en muet !",mutedRemotelyTitle:"Votre micro a \xe9t\xe9 coup\xe9 par {{participantDisplayName}}!",mutedRemotelyDescription:"Vous pouvez toujours activer votre micro pour prendre la parole. D\xe9sactivez votre micro quand vous terminez pour \xe9viter les bruits parasites.",passwordRemovedRemotely:"$t(lockRoomPasswordUppercase) a \xe9t\xe9 supprim\xe9 par un autre participant",passwordSetRemotely:"$t(lockRoomPasswordUppercase) d\xe9fini par un autre participant",raisedHand:"{{name}} aimerait prendre la parole.",somebody:"Quelqu'un",startSilentTitle:"Vous avez rejoint sans sortie audio!",startSilentDescription:"Rejoignez la r\xe9union de nouveau pour activer l'audio",suboptimalBrowserWarning:"Nous craignons que votre exp\xe9rience de r\xe9union en ligne ne soit bonne ici. Nous cherchons des moyens d\u2019am\xe9liorer cela, mais d\u2019ici-l\xe0, essayez d\u2019utiliser l\u2019un des navigateurs support\xe9s.",suboptimalExperienceTitle:"Avertissement du navigateur",unmute:"R\xe9tablir le son",newDeviceCameraTitle:"Nouvelle cam\xe9ra d\xe9tect\xe9e",newDeviceAudioTitle:"Nouveau p\xe9riph\xe9rique audio d\xe9tect\xe9",newDeviceAction:"Utiliser"},passwordSetRemotely:"d\xe9fini par un autre participant",passwordDigitsOnly:"Jusqu'\xe0 {{number}} chiffres",poweredby:"Produit par",presenceStatus:{busy:"Occup\xe9",calling:"Appel...",connected:"Connect\xe9",connecting:"Connexion en cours...",connecting2:"Connexion en cours*...",disconnected:"D\xe9connect\xe9",expired:"Expir\xe9",ignored:"Ignor\xe9",initializingCall:"Lancement de l'appel...",invited:"Invit\xe9(e)",rejected:"Rejet\xe9",ringing:"Appel en cours..."},profile:{setDisplayNameLabel:"Choisissez un pseudo",setEmailInput:"Entrez une adresse e-mail",setEmailLabel:"D\xe9finir votre courriel Gravatar",title:"Profil"},raisedHand:"Aimerait prendre la parole",recording:{authDropboxText:"T\xe9l\xe9chargement vers Dropbox",availableSpace:"Espace disponible: {{spaceLeft}} Mo (approximativement {{duration}} minutes d'enregistrement)",beta:"BETA",busy:"Nous sommes en train de lib\xe9rer les ressources d'enregistrement. R\xe9essayez dans quelques minutes.",busyTitle:"Tous les enregistreurs sont actuellement occup\xe9s",error:"\xc9chec de l'enregistrement. Veuillez r\xe9essayer.",expandedOff:"L'enregistrement a \xe9t\xe9 arr\xeat\xe9",expandedOn:"Cette conf\xe9rence est actuellement en cours d'enregistrement.",expandedPending:"D\xe9marrage de l'enregistrement...",failedToStart:"L'enregistrement n'as pas r\xe9ussi \xe0 d\xe9marrer",fileSharingdescription:"Partager l'enregistrement avec les participants de la r\xe9union",live:"DIRECT",loggedIn:"Connect\xe9 en tant que {{userName}}",off:"Enregistrement arr\xeat\xe9",on:"Enregistrement",pending:"Pr\xe9paration de l'enregistrement de la r\xe9union...",rec:"REC",serviceDescription:"Votre enregistrement sera enregistr\xe9 par le service d\xe9di\xe9.",serviceName:"Service d'enregistrement",signIn:"Se connecter",signOut:"Se d\xe9connecter",unavailable:"Oups! Le {{serviceName}} est actuellement indisponible. Nous travaillons sur la r\xe9solution du probl\xe8me. Veuillez r\xe9essayer plus tard.",unavailableTitle:"Enregistrement indisponible"},sectionList:{pullToRefresh:"Tirer pour recharger"},settings:{calendar:{about:"L'int\xe9gration de {{appName}} avec votre calendrier permet d\u2019acc\xe9der de mani\xe8re s\xe9curis\xe9e aux \xe9v\xe9nement \xe0 venir.",disconnect:"Se d\xe9connecter",microsoftSignIn:"Se connecter avec Microsoft",signedIn:"Acc\xe8s aux \xe9v\xe9nements du calendrier {{email}}. Cliquez sur le bouton se d\xe9connecter ci-dessous pour arr\xeater l'acc\xe8s aux \xe9v\xe9nements du calendrier.",title:"Calendrier"},devices:"P\xe9riph\xe9riques",followMe:"Tout le monde me suit",language:"Langue",loggedIn:"Connect\xe9 en tant que {{name}}",moderator:"Moderateur",more:"Plus",name:"Nom",noDevice:"Aucun",selectAudioOutput:"Sortie audio",selectCamera:"Cam\xe9ra",selectMic:"Microphone",startAudioMuted:"Tout le monde commence en muet",startVideoMuted:"Tout le monde commence sans vid\xe9o",title:"Param\xe8tres"},settingsView:{alertOk:"D'accord",alertTitle:"Avertissement",alertURLText:"L'URL du serveur est invalide",buildInfoSection:"Informations de build",conferenceSection:"Conf\xe9rence",displayName:"Pseudo",email:"Email",header:"Param\xe8tres",profileSection:"Profil",serverURL:"URL du serveur",startWithAudioMuted:"Commencez avec la vid\xe9o en sourdine",startWithVideoMuted:"Commencez avec la vid\xe9o en sourdine",version:"Version"},share:{dialInfoText:"\n\n=====\n\nVoulez-vous appeler depuis votre t\xe9l\xe9phone?\n\n{{defaultDialInNumber}}Cliquez sur ce lien pour afficher les num\xe9ros d'appels pour cette r\xe9union\n{{dialInfoPageUrl}}",mainText:"Cliquez sur le lien suivant pour rejoindre une conf\xe9rence :\n{{roomUrl}}"},speaker:"Haut-parleur",speakerStats:{hours:"{{count}}h",minutes:"{{count}}m",name:"Nom",seconds:"{{count}}s",speakerStats:"Statistiques de l'interlocuteur",speakerTime:"Temps de l'interlocuteur"},startupoverlay:{policyText:" ",title:" {{app}} a besoin d'acc\xe9der \xe0 votre microphone et votre cam\xe9ra."},suspendedoverlay:{rejoinKeyTitle:"Rejoindre",text:"Cliquez sur le bouton Rejoindre pour se reconnecter.",title:"Votre visioconf\xe9rence s'est interrompue parce que votre ordinateur s'est mis en veille."},toolbar:{accessibilityLabel:{audioOnly:"Activer/d\xe9sactiver le mode voix uniquement",audioRoute:"S\xe9lectionner la source audio",callQuality:"Ajuster la qualit\xe9 vid\xe9o",cc:"Activer/d\xe9sactiver les sous-titres",chat:"Afficher/masquer la discussion instantan\xe9e",document:"Activer/d\xe9sactiver le document partag\xe9",feedback:"Laisser des commentaires",fullScreen:"Activer/d\xe9sactiver le plein \xe9cran",hangup:"Quitter la conversation",invite:"Inviter des participants",kick:"Expulser le participant",localRecording:"Activer/d\xe9sactiver les contr\xf4les d'enregistrement local",lockRoom:"Activer/D\xe9sactiver le mot de passe de la r\xe9union",moreActions:"Activer/d\xe9sactiver le menu d'actions suppl\xe9mentaires",moreActionsMenu:"Menu d'actions suppl\xe9mentaires",mute:"Activer/d\xe9sactiver l'audio",pip:"Activer/d\xe9sactiver le mode Picture in Picture",profile:"\xc9diter votre profil",raiseHand:"Lever/baisser la main",recording:"Activer/d\xe9sactiver l'enregistrement",remoteMute:"D\xe9sactiver le micro du participant",Settings:"Afficher/masquer le menu des param\xe8tres",sharedvideo:"D\xe9marrer/arr\xeater le partage de vid\xe9o Youtube",shareRoom:"Inviter quelqu'un",shareYourScreen:"Activer/d\xe9sactiver le partage d\u2019\xe9cran",shortcuts:"Afficher/masquer les raccourcis",show:"Afficher en premier plan",speakerStats:"Afficher/cacher les statistiques de parole",tileView:"Activer/d\xe9sactiver la vue mosa\xefque",toggleCamera:"Activer/d\xe9sactiver la cam\xe9ra",videomute:"Activer/d\xe9sactiver la vid\xe9o",videoblur:"Activer/d\xe9sactiver le flou de la vid\xe9o"},addPeople:"Ajouter des personnes \xe0 votre appel",audioOnlyOff:"D\xe9sactiver le mode bande passante r\xe9duite",audioOnlyOn:"Activer le mode bande passante r\xe9duite",audioRoute:"S\xe9lectionner la source audio",authenticate:"Authentifiez-vous",callQuality:"Ajuster la qualit\xe9 vid\xe9o",chat:"Ouvrir / Fermer le chat",closeChat:"Fermer le chat",documentClose:"Fermer le document partag\xe9",documentOpen:"Ouvrir le document partag\xe9",enterFullScreen:"Afficher en plein \xe9cran",enterTileView:"Acc\xe9der au mode mosa\xefque",exitFullScreen:"Quitter le mode plein \xe9cran",exitTileView:"Quitter le mode mosa\xefque",feedback:"Laisser des commentaires",hangup:"Quitter",invite:"Inviter des participants",login:"Connexion",logout:"D\xe9connexion",lowerYourHand:"Baisser la main",moreActions:"Plus d'actions",mute:"Muet / Actif",openChat:"Ouvrir le chat",pip:"Entrer en mode Picture-in-Picture",profile:"\xc9diter votre profil",raiseHand:"Lever / Baisser la main",raiseYourHand:"Lever la main",Settings:"Param\xe8tres",sharedvideo:"Partager une vid\xe9o YouTube",shareRoom:"Inviter quelqu'un",shortcuts:"Afficher les raccourcis",speakerStats:"Statistiques de l'interlocuteur",startScreenSharing:"D\xe9marrer le partage d'\xe9cran",startSubtitles:"Activer les sous-titres",stopScreenSharing:"Arr\xeater le partage d'\xe9cran",stopSubtitles:"D\xe9sactiver les sous-titres",stopSharedVideo:"Arr\xeater la vid\xe9o YouTube",talkWhileMutedPopup:"Vous voulez parler? Vous \xeates en muet.",tileViewToggle:"Activer/d\xe9sactiver la vue mosa\xefque",toggleCamera:"Activer/d\xe9sactiver la cam\xe9ra",videomute:"D\xe9marrer / Arr\xeater la cam\xe9ra",startvideoblur:"Flouter mon arri\xe8re plan",stopvideoblur:"D\xe9sactiver le flou d'arri\xe8re-plan"},transcribing:{ccButtonTooltip:"Activer/D\xe9sactiver les sous-titres",error:"\xc9chec de la transcription. Veuillez r\xe9essayer.",expandedLabel:"La transcription est actuellement activ\xe9e",failedToStart:"\xc9chec de d\xe9marrage de la transcription",labelToolTip:"La transcription de la r\xe9union est en cours",off:"La transcription d\xe9sactiv\xe9e",pending:"Pr\xe9paration de la transcription de la r\xe9union...",start:"Afficher/masquer les sous-titres",stop:"D\xe9sactiver le sous-titrage",tr:"TR"},userMedia:{androidGrantPermissions:"S\xe9lectionnez Autoriser lorsque votre navigateur demande des autorisations.",chromeGrantPermissions:"S\xe9lectionnez Autoriser lorsque votre navigateur demande des autorisations.",edgeGrantPermissions:"S\xe9lectionnez Oui quand le navigateur demande les permissions.",electronGrantPermissions:"Merci d'autoriser le partage de votre camera et microphone",firefoxGrantPermissions:"S\xe9lectionnez Partager le p\xe9riph\xe9rique s\xe9lectionn\xe9 lorsque votre navigateur demande des autorisations.",iexplorerGrantPermissions:"S\xe9lectionnez OK quand le navigateur demande les permissions.",nwjsGrantPermissions:"Merci d'autoriser le partage de votre camera et microphone",operaGrantPermissions:"S\xe9lectionnez Autoriser lorsque votre navigateur demande des autorisations.","react-nativeGrantPermissions":"S\xe9lectionnez Autoriser lorsque votre navigateur demande des autorisations.",safariGrantPermissions:"S\xe9lectionnez OK quand le navigateur demande les permissions."},videoSIPGW:{busy:"Nous travaillons sur la lib\xe9ration des ressources. Veuillez r\xe9essayez dans quelques minutes.",busyTitle:"Le service du Salon est actuellement occup\xe9",errorAlreadyInvited:"{{displayName}} est d\xe9j\xe0 invit\xe9(e)",errorInvite:"La conf\xe9rence n'est pas encore \xe9tablie. Veuillez r\xe9essayer plus tard.",errorInviteFailed:"Nous travaillons sur la r\xe9solution du probl\xe8me. Veuillez r\xe9essayer plus tard.",errorInviteFailedTitle:"l'invitation de {{displayName}} a \xe9chou\xe9",errorInviteTitle:"Erreur lors de l'invitation",pending:"{{displayName}} a \xe9t\xe9 invit\xe9(e)"},videoStatus:{audioOnly:"VOIX",audioOnlyExpanded:"Vous \xeates en mode bande passante r\xe9duite. Dans ce mode, vous ne recevrez que le partage audio et le partage d\u2019\xe9cran.",callQuality:"Qualit\xe9 vid\xe9o",hd:"HD",hdTooltip:"Regardez la vid\xe9o en haute d\xe9finition",highDefinition:"Haute d\xe9finition",labelTooiltipNoVideo:"Aucune vid\xe9o",labelTooltipAudioOnly:"Mode bande passante r\xe9duite activ\xe9",ld:"BD",ldTooltip:"Regardez la vid\xe9o en basse d\xe9finition",lowDefinition:"Basse d\xe9finition",onlyAudioAvailable:"Seul l'audio est disponible",onlyAudioSupported:"Nous ne supportons que l'audio sur ce navigateur.",p2pEnabled:"Peer to Peer activ\xe9",p2pVideoQualityDescription:"En mode peer to peer, la qualit\xe9 vid\xe9o re\xe7ue ne peut \xeatre bascul\xe9e qu'entre haute et audio uniquement. Les autres param\xe8tres ne seront pas pris en compte jusqu'\xe0 ce que vous quittiez le mode peer to peer.",recHighDefinitionOnly:"Va pr\xe9f\xe9rer la haute d\xe9finition",sd:"MD",sdTooltip:"Regardez la vid\xe9o en d\xe9finition standard",standardDefinition:"Moyenne D\xe9finition"},videothumbnail:{domute:"Couper le micro",flip:"Balancer",kick:"Exclure",moderator:"Moderateur",mute:"Un participant a coup\xe9 son micro",muted:"Muet",remoteControl:"Contr\xf4le \xe0 distance",show:"Afficher en premier plan",videomute:"Le participant a arr\xeat\xe9 la cam\xe9ra"},welcomepage:{accessibilityLabel:{join:"Touchez pour rejoindre",roomname:"Saisissez un nom de salle"},appDescription:"Allez-y, chat vid\xe9o avec toute l'\xe9quipe. En fait, invitez tout le monde que vous connaissez. {{app}} est une solution de visioconf\xe9rence enti\xe8rement crypt\xe9e et 100% open source que vous pouvez utiliser toute la journ\xe9e, tous les jours, gratuitement\u2014 aucun compte requis.",audioVideoSwitch:{audio:"Voix",video:"Vid\xe9o"},calendar:"Calendrier",connectCalendarButton:"Connecter votre calendrier",connectCalendarText:"Connectez-vous \xe0 votre calendrier pour afficher toutes les r\xe9unions {{app}}. Ajoutez \xe9galement les r\xe9unions de {{provider}} \xe0 votre calendrier et d\xe9marrez-les d'un simple clic.",enterRoomTitle:"D\xe9marrer une nouvelle r\xe9union",go:"Cr\xe9er",join:"REJOINDRE",info:"Infos",privacy:"Confidentialit\xe9",recentList:"R\xe9cent",recentListDelete:"Supprimer",recentListEmpty:"Votre liste r\xe9cente est actuellement vide. Discuter avec votre \xe9quipe et vous trouverez toutes vos r\xe9unions r\xe9centes ici.",reducedUIText:"Bienvenue sur {{app}}!",roomname:"Saisissez un nom de salle",roomnameHint:"Entrez le nom ou l'URL de la salle que vous souhaitez rejoindre. Vous pouvez faire un nom, laissez les gens que vous rencontrerez le savoir afin qu'ils entrent le m\xeame nom.",sendFeedback:"Envoyer votre avis",terms:"Termes",title:"Vid\xe9oconf\xe9rence S\xe9curis\xe9e, enti\xe8rement en vedette et gratuite"}}},661,[]); -__d(function(e,s,o,t,n,r,a){n.exports={en:"",af:"",az:"",bg:"",cs:"",de:"",el:"",eo:"",es:"",fr:"",hy:"",it:"",ja:"",ko:"",nb:"",oc:"",pl:"",ptBR:"",ru:"",sk:"",sl:"",sv:"",tr:"",vi:"",zhCN:""}},662,[]); -__d(function(e,r,n,t,i,o,a){i.exports={addPeople:{add:"",countryNotSupported:"Nous ne prenons pas encore cette destination en charge.",countryReminder:"Vous appelez en dehors des \xc9.-U.? Veuillez vous assurer de commencer par le code de pays!",disabled:"Vous ne pouvez pas inviter d'autres personnes.",failedToAdd:"L'ajout de membres a \xe9chou\xe9",footerText:"Les appels sont d\xe9sactiv\xe9s.",loading:"Rechercher des personnes et des num\xe9ros de t\xe9l\xe9phone",loadingNumber:"Validation du num\xe9ro de t\xe9l\xe9phone",loadingPeople:"Rechercher des personnes \xe0 inviter",noResults:"Aucun r\xe9sultat de recherche correspondant",noValidNumbers:"Veuillez entrer un num\xe9ro de t\xe9l\xe9phone",searchNumbers:"Ajouter des num\xe9ros de t\xe9l\xe9phone",searchPeople:"Rechercher des personnes",searchPeopleAndNumbers:"Rechercher des personnes ou ajouter des num\xe9ros de t\xe9l\xe9phone",telephone:"T\xe9l\xe9phone : {{number}}",title:"Inviter des personnes \xe0 cette r\xe9union"},audioDevices:{bluetooth:"Bluetooth",headphones:"\xc9couteurs",phone:"T\xe9l\xe9phone",speaker:""},audioOnly:{audioOnly:"Audio seulement"},calendarSync:{addMeetingURL:"Ajouter un lien de r\xe9union",confirmAddLink:"Voulez-vous ajouter un lien Jitsi \xe0 cet \xe9v\xe9nement?",error:{appConfiguration:"L'int\xe9gration de l'agenda n'est pas correctement configur\xe9e.",generic:"Une erreur s'est produite. Veuillez v\xe9rifier vos param\xe8tres d'agenda ou essayer de rafra\xeechir l'agenda.",notSignedIn:"Une erreur s'est produite lors de l'authentification des \xe9v\xe9nements d'agenda. Veuillez v\xe9rifier vos param\xe8tres d'agenda ou essayer de vous reconnecter."},join:"Rejoindre",joinTooltip:"Rejoindre la r\xe9union",nextMeeting:"prochaine r\xe9union",noEvents:"Il n'y a aucun \xe9v\xe9nement planifi\xe9 \xe0 venir.",ongoingMeeting:"r\xe9union en cours",permissionButton:"Ouvrir les param\xe8tres",permissionMessage:"L'autorisation de l'Agenda est n\xe9cessaire pour consulter vos r\xe9unions dans l'application.",refresh:"Rafra\xeechir l'agenda",today:""},chat:{error:"Erreur : votre message \"{{originalText}}\" n'a pas \xe9t\xe9 envoy\xe9. Raison : {{error}}",messagebox:"Tapez un message",nickname:{popover:"Choisissez un nom d'affichage",title:"Entrer un nom d'affichage pour utiliser le clavardage"},title:"Clavardage"},connectingOverlay:{joiningRoom:"Connexion \xe0 la r\xe9union en cours..."},connection:{ATTACHED:"Joint",AUTHENTICATING:"Authentification",AUTHFAIL:"",CONNECTED:"",CONNECTING:"",CONNFAIL:"\xc9chec de la connexion",DISCONNECTED:"",DISCONNECTING:"D\xe9connexion en cours",ERROR:"",RECONNECTING:"Un probl\xe8me de r\xe9seau est survenu. Reconnexion en cours..."},connectionindicator:{address:"Adresse:",bandwidth:"Bande passante estim\xe9e :",bitrate:"D\xe9bit binaire :",bridgeCount:"Nombre de serveur : ",connectedTo:"Connect\xe9 \xe0 :",framerate:"Fr\xe9quence d'images :",less:"Afficher moins",localaddress_plural:"Adresse locale :",localaddress:"Adresses locales :",localport_plural:"Port local :",localport:"Ports locaux :",more:"Afficher plus",packetloss:"Perte de paquet :",quality:{good:"",inactive:"Inactive",lost:"Perdue",nonoptimal:"Non-optimale",poor:"Faible"},remoteaddress_plural:"Adresse distante :",remoteaddress:"Adresses distantes :",remoteport_plural:"Port distant :",remoteport:"Ports distants :",resolution:"R\xe9solution :",status:"Connexion :",transport_plural:"Tranport :",transport:"Transports :",turn:" (tour)"},dateUtils:{earlier:"Plus t\xf4t",today:"Aujourd'hui",yesterday:"Hier"},deepLinking:{appNotInstalled:"L'application mobile {{app}} est n\xe9cessaire pour rejoindre cette r\xe9union sur votre t\xe9l\xe9phone.",description:"Il ne s'est rien pass\xe9? Nous avons essay\xe9s de d\xe9marrer votre r\xe9union dans l'application de bureau {{app}}. Veuillez r\xe9essayer ou d\xe9marrer la r\xe9union dans l'application Web {{app}}.",descriptionWithoutWeb:"",downloadApp:"T\xe9l\xe9charger l'application",launchWebButton:"D\xe9marrer dans l'application Web",openApp:"Continuer vers l'application",title:"D\xe9marrage de votre r\xe9union dans {{app}} en cours...",tryAgainButton:"Veuillez r\xe9essayer sur votre ordinateur"},defaultLink:"p. ex. {{url}}",deviceError:{cameraError:"\xc9chec de l'acc\xe8s \xe0 votre cam\xe9ra",cameraPermission:"Erreur lors de l'obtention de l'autorisation de la cam\xe9ra",microphoneError:"\xc9chec de l'acc\xe8s \xe0 votre micro",microphonePermission:"Erreur lors de l'obtention de l'autorisation du micro"},deviceSelection:{noPermission:"L'autorisation n'a pas \xe9t\xe9 accord\xe9e",previewUnavailable:"Pr\xe9visualisation non disponible",selectADevice:"S\xe9lectionner un dispositif",testAudio:"Jouer un son de test"},dialog:{accessibilityLabel:{liveStreaming:"Diffusion en direct"},allow:"Autoriser",alreadySharedVideoMsg:"Un autre membre partage d\xe9j\xe0 une vid\xe9o. Cette conf\xe9rence permet le partage d'une seule vid\xe9o \xe0 la fois.",alreadySharedVideoTitle:"Seulement une vid\xe9o \xe0 la fois peut \xeatre partag\xe9e",applicationWindow:"Fen\xeatre d'application",Back:"Retour",cameraConstraintFailedError:"Votre cam\xe9ra ne r\xe9pond pas \xe0 certaines exigences.",cameraNotFoundError:"Impossible de trouver la cam\xe9ra.",cameraNotSendingData:"Il est impossible d'acc\xe9der \xe0 la cam\xe9ra. Veuillez v\xe9rifier si une autre application utilise actuellement ce dispositif, s\xe9lectionner un autre dispositif \xe0 partir du menu des param\xe8tres ou essayer de recharger l'application.",cameraNotSendingDataTitle:"Impossible d'acc\xe9der \xe0 la cam\xe9ra",cameraPermissionDeniedError:"Vous n'avez pas re\xe7u l'autorisation d'utiliser votre cam\xe9ra. Vous pouvez toujours rejoindre la conf\xe9rence, mais les autres membres ne pourront pas vous voir. Utilisez le bouton de cam\xe9ra dans la barre d'adresse pour corriger cela.",cameraUnknownError:"Impossible d'utiliser la cam\xe9ra pour une raison inconnue.",cameraUnsupportedResolutionError:"Votre cam\xe9ra ne prend pas en charge la r\xe9solution vid\xe9o n\xe9cessaire.",Cancel:"Annuler",close:"Fermer",conferenceDisconnectMsg:"Vous devriez v\xe9rifier votre connexion au r\xe9seau. Reconnexion dans {{seconds}} sec...",conferenceDisconnectTitle:"Vous avez \xe9t\xe9 d\xe9connect\xe9.",conferenceReloadMsg:"Nous tentons de r\xe9soudre le probl\xe8me. Reconnexion dans {{seconds}} sec...",conferenceReloadTitle:"Malheureusement, une erreur s'est produite.",confirm:"Confirmer",confirmNo:"",confirmYes:"",connectError:"Oups! Une erreur s'est produite. La connexion \xe0 la conf\xe9rence a \xe9chou\xe9e.",connectErrorWithMsg:"Oups! Une erreur s'est produite. La connexion \xe0 la conf\xe9rence a \xe9chou\xe9 : {{msg}}",connecting:"Connexion en cours",contactSupport:"Communiquez avec le service de soutien",copy:"Copier",dismiss:"",displayNameRequired:"Un nom d'affichage est requis",done:"Termin\xe9",enterDisplayName:"Veuillez saisir votre nom d'affichage",error:"Erreur",externalInstallationMsg:"",externalInstallationTitle:"Extension requise",goToStore:"Rendez-vous sur notre boutique en ligne",gracefulShutdown:"Notre service est actuellement hors service pour l'entretien. Veuillez r\xe9essayer plus tard.",IamHost:"Je suis l'h\xf4te",incorrectRoomLockPassword:"",incorrectPassword:"Nom d'utilisateur ou mot de passe incorrect",inlineInstallationMsg:"Vous devez installer notre extension de partage de bureau.",inlineInstallExtension:"Installer maintenant",internalError:"Oups! Une erreur s'est produite. L'erreur suivante est survenue : {{error}}",internalErrorTitle:"Erreur interne.",kickMessage:"A\xefe! Vous avez \xe9t\xe9 expuls\xe9 de la r\xe9union!",kickParticipantButton:"Expulser",kickParticipantDialog:"\xcates-vous certain de vouloir expulser ce participant?",kickParticipantTitle:"Expulser ce membre?",kickTitle:"Expuls\xe9 de la r\xe9union",liveStreaming:"",liveStreamingDisabledForGuestTooltip:"Les invit\xe9s ne peuvent pas d\xe9marrer la diffusion en direct.",liveStreamingDisabledTooltip:"D\xe9marrage de la diffusion en direct d\xe9sactiv\xe9.",lockMessage:"\xc9chec du verrouillage de la conf\xe9rence.",lockRoom:"Ajouter un mot de passe \xe0 la r\xe9union",lockTitle:"\xc9chec du verrouillage",logoutQuestion:"\xcates-vous certain de vouloir vous d\xe9connecter et arr\xeater la conf\xe9rence?",logoutTitle:"",maxUsersLimitReached:"La limite du nombre maximum de membres a \xe9t\xe9 atteinte. La conf\xe9rence est pleine. Veuillez communiquer avec l'h\xf4te de la r\xe9union ou r\xe9essayer plus tard.",maxUsersLimitReachedTitle:"Limite du nombre de membres maximum atteinte",micConstraintFailedError:"Votre micro ne r\xe9pond pas \xe0 certaines exigences",micNotFoundError:"Impossible de trouver le micro.",micNotSendingData:"Impossible d'acc\xe9der \xe0 votre micro. Veuillez s\xe9lectionner un autre dispositif \xe0 partir du menu des param\xe8tres ou essayer de recharger l'application.",micNotSendingDataTitle:"Impossible d'acc\xe9der \xe0 votre micro",micPermissionDeniedError:"Vous n'avez pas accord\xe9 l'autorisation d'utilisation de votre micro. Vous pouvez toujours rejoindre la conf\xe9rence, mais les autres membres ne pourront pas vous entendre. Utilisez le bouton de cam\xe9ra dans la barre d'adresse pour rem\xe9dier \xe0 cela.",micUnknownError:"Impossible d'utiliser le micro pour une raison inconnue.",muteParticipantBody:"Vous ne pourrez pas r\xe9activer leur micro, mais ils peuvent le r\xe9activer eux-m\xeames \xe0 tout moment.",muteParticipantButton:"",muteParticipantDialog:"\xcates-vous certain de vouloir d\xe9sactiver le micro de ce participant? Vous ne pourrez pas le r\xe9activer, mais il peut le r\xe9activer lui-m\xeame \xe0 tout moment.",muteParticipantTitle:"D\xe9sactiver le micro de ce membre?",Ok:"OK",passwordLabel:"Mot de passe",passwordNotSupported:"La mise en place d'un mot de passe de r\xe9union n'est pas prise en charge.",passwordNotSupportedTitle:"Mot de passe non pris en charge",passwordRequired:"Mot de passe requis",popupError:"Votre navigateur bloque les fen\xeatres surgissantes provenant de ce site. Veuillez activer les fen\xeatres surgissantes dans les param\xe8tres de s\xe9curit\xe9 de votre navigateur et r\xe9essayer.",popupErrorTitle:"Fen\xeatre surgissante bloqu\xe9e",recording:"",recordingDisabledForGuestTooltip:"Les invit\xe9s ne peuvent pas d\xe9marrer l'enregistrement.",recordingDisabledTooltip:"D\xe9marrage de l'enregistrement d\xe9sactiv\xe9.",rejoinNow:"Rejoindre maintenant",remoteControlAllowedMessage:"{{user}} a accept\xe9 votre demande de contr\xf4le \xe0 distance!",remoteControlDeniedMessage:"{{user}} a refus\xe9 votre demande de contr\xf4le \xe0 distance!",remoteControlErrorMessage:"Une erreur s'est produite lors de la demande d'autorisation de contr\xf4le \xe0 distance de {{user}}!",remoteControlRequestMessage:"Voulez-vous permettre \xe0 {{user}} de contr\xf4ler votre bureau \xe0 distance?",remoteControlShareScreenWarning:"Notez que si vous appuyez sur \xab Permettre \xbb, vous partagerez votre \xe9cran!",remoteControlStopMessage:"La s\xe9ance de contr\xf4le \xe0 distance est termin\xe9e!",remoteControlTitle:"Contr\xf4le du bureau \xe0 distance",Remove:"Supprimer",removePassword:"Supprimer un mot de passe",removeSharedVideoMsg:"\xcates-vous certain de vouloir supprimer votre vid\xe9o partag\xe9e?",removeSharedVideoTitle:"Supprimer la vid\xe9o partag\xe9e",reservationError:"Erreur du syst\xe8me de r\xe9servation",reservationErrorMsg:"Code d'erreur : {{code}}, message : {{msg}}",retry:"R\xe9essayer",screenSharingFailedToInstall:"Oups! L'installation de votre extension de partage d'\xe9cran a \xe9chou\xe9e.",screenSharingFailedToInstallTitle:"L'installation de l'extension de partage d'\xe9cran a \xe9chou\xe9e",screenSharingFirefoxPermissionDeniedError:"Une erreur s'est produite lors de la tentative de partage d'\xe9cran. Veuillez vous assurer d'avoir donn\xe9 votre autorisation. ",screenSharingFirefoxPermissionDeniedTitle:"Oups! Il est impossible de d\xe9marrer le partage d'\xe9cran!",screenSharingPermissionDeniedError:"Oups! Une erreur s'est produite avec les autorisations de l'extension de partage d'\xe9cran. Veuillez recharger et r\xe9essayer.",serviceUnavailable:"Service non disponible",sessTerminated:"Appel termin\xe9",Share:"",shareVideoLinkError:"Veuillez fournir un lien YouTube correct.",shareVideoTitle:"Partager une vid\xe9o",shareYourScreen:"Partager votre \xe9cran",shareYourScreenDisabled:"Le partage d'\xe9cran est d\xe9sactiv\xe9.",shareYourScreenDisabledForGuest:"Les invit\xe9s ne peuvent pas partager leur \xe9cran.",startLiveStreaming:"D\xe9marrer la diffusion en direct",startRecording:"Commencer l'enregistrement",startRemoteControlErrorMessage:"Une erreur s'est produite lors de la tentative de d\xe9marrage de la s\xe9ance de contr\xf4le \xe0 distance!",stopLiveStreaming:"Arr\xeater la diffusion en direct",stopRecording:"Arr\xeater l'enregistrement",stopRecordingWarning:"\xcates-vous certain de vouloir arr\xeater l'enregistrement?",stopStreamingWarning:"\xcates-vous certain de vouloir arr\xeater la diffusion en direct?",streamKey:"Cl\xe9 de diffusion en direct",Submit:"Envoyer",thankYou:"Merci d'utiliser {{appName}}!",token:"jeton",tokenAuthFailed:"D\xe9sol\xe9, vous n'avez pas la permission de rejoindre cet appel.",tokenAuthFailedTitle:"\xc9chec de l'authentification",transcribing:"Transcription en cours",unlockRoom:"Supprimer le mot de passe de la r\xe9union",userPassword:"mot de passe d'utilisateur",WaitForHostMsg:"La conf\xe9rence {{room}} n'a pas encore d\xe9marr\xe9. Si vous \xeates l'h\xf4te, veuillez vous authentifier. Sinon, veuillez attendre que l'h\xf4te arrive.",WaitForHostMsgWOk:"La conf\xe9rence {{room}} n'a pas encore d\xe9marr\xe9. Si vous \xeates l'h\xf4te, veuillez appuyer sur OK pour vous authentifier. Sinon, veuillez attendre que l'h\xf4te arrive.",WaitingForHost:"En attente de l'h\xf4te...",Yes:"",yourEntireScreen:"Votre \xe9cran entier"},dialOut:{statusMessage:"est maintenant {{status}}"},feedback:{average:"Moyenne",bad:"Mauvaise",detailsLabel:"Dites-nous en plus.",good:"Bonne",rateExperience:"\xc9valuez votre exp\xe9rience de cette conf\xe9rence",veryBad:"Tr\xe8s mauvaise",veryGood:"Tr\xe8s bonne"},incomingCall:{answer:"R\xe9ponse",audioCallTitle:"Appel entrant",decline:"Rejeter",productLabel:"de Jitsi Meet",videoCallTitle:"Appel vid\xe9o entrant"},info:{accessibilityLabel:"Afficher l'information",addPassword:"Ajouter un mot de passe",cancelPassword:"Annuler le mot de passe",conferenceURL:"Liens",country:"Pays",dialANumber:"Pour rejoindre votre r\xe9union, composez un de ces num\xe9ros et entrez le NIP.",dialInConferenceID:"NIP :",dialInNotSupported:"D\xe9sol\xe9, les appels internes ne sont pas pris en charge pour le moment.",dialInNumber:"Appel interne :",dialInSummaryError:"Erreur lors de la r\xe9cup\xe9ration des informations d'appel interne. Veuillez r\xe9essayer plus tard.",dialInTollFree:"Sans frais",genericError:"Oups, une erreur s'est produite.",inviteLiveStream:"Pour voir la diffusion en directe de cette r\xe9union, cliquez sur ce lien : {{url}}",invitePhone:"",invitePhoneAlternatives:"",inviteURLFirstPartGeneral:"Vous avez \xe9t\xe9 invit\xe9 \xe0 rejoindre une r\xe9union.",inviteURLFirstPartPersonal:"",inviteURLSecondPart:"",liveStreamURL:"Diffusion en direct :",moreNumbers:"Plus de num\xe9ros",noNumbers:"Aucun num\xe9ro d'appel interne.",noPassword:"",noRoom:"Vous n'avez pas pr\xe9cis\xe9 de salle pour l'appel interne.",numbers:"Num\xe9ros d'appel interne",password:"Mot de passe\xa0:",title:"Oui",tooltip:"Lien de partage et informations d'appel interne pour cette r\xe9union",label:"Informations de r\xe9union"},inviteDialog:{alertText:"L'invitation de certains participants a \xe9chou\xe9.",header:"Inviter",searchCallOnlyPlaceholder:"Entrer le num\xe9ro de t\xe9l\xe9phone",searchPeopleOnlyPlaceholder:"Rechercher des participants",searchPlaceholder:"Participant ou num\xe9ro de t\xe9l\xe9phone",send:"Envoyer..."},inlineDialogFailure:{msg:"Nous avons rencontr\xe9 un obstacle.",retry:"% abandonn\xe9s",support:"Soutien",supportMsg:"Si cela se produit \xe0 nouveau, veuillez communiquer avec"},keyboardShortcuts:{focusLocal:"Focaliser sur votre vid\xe9o",focusRemote:"Focaliser sur la vid\xe9o d'une autre personne",fullScreen:"Afficher ou quitter le mode plein \xe9cran",keyboardShortcuts:"Raccourcis clavier",localRecording:"Afficher ou masquer les commandes d'enregistrement local",mute:"Activer ou d\xe9sactiver votre micro",pushToTalk:"Messagerie vocale instantan\xe9e",raiseHand:"Lever ou abaisser votre main",showSpeakerStats:"Afficher les statistiques d'intervenant",toggleChat:"Ouvrir ou fermer le clavardage",toggleFilmstrip:"Afficher ou masquer les ic\xf4nes vid\xe9os",toggleScreensharing:"Basculer entre la cam\xe9ra et le partage d'\xe9cran",toggleShortcuts:"Afficher ou masquer les raccourcis clavier",videoMute:"D\xe9marrer ou arr\xeater votre cam\xe9ra"},liveStreaming:{busy:"Lib\xe9ration de ressources de diffusion en cours. Veuillez r\xe9essayer dans quelques minutes.",busyTitle:"Tous les diffuseurs sont actuellement occup\xe9s",changeSignIn:"Changer de compte.",choose:"S\xe9lectionner une diffusion en direct",chooseCTA:"S\xe9lectionner une option de diffusion en direct. Vous \xeates actuellement connect\xe9 en tant que {{email}}.",enterStreamKey:"Saisissez votre cl\xe9 de diffusion en direct YouTube ici.",error:"\xc9chec de la diffusion en direct. Veuillez r\xe9essayer.",errorAPI:"Une erreur s'est produite lors de l'acc\xe8s \xe0 vos diffusions YouTube.Veuillez r\xe9essayer de vous connecter.",errorLiveStreamNotEnabled:"La diffusion en direct n'est pas activ\xe9e pour {{email}}. Veuillez activer la diffusion en direct ou vous connecter \xe0 un compte pour lequel la diffusion en direct est activ\xe9e.",expandedOff:"La diffusion en direct a \xe9t\xe9 arr\xeat\xe9e",expandedOn:"La r\xe9union est actuellement diffus\xe9e sur YouTube.",expandedPending:"Le d\xe9marrage de la diffusion en direct est en cours...",failedToStart:"Le d\xe9marrage de la diffusion en direct a \xe9chou\xe9",getStreamKeyManually:"La r\xe9cup\xe9ration de diffusions en direct a \xe9chou\xe9. Essayez d'obtenir une cl\xe9 de diffusion en direct sur YouTube.",invalidStreamKey:"La cl\xe9 de diffusion en direct peut \xeatre erron\xe9e.",off:"La diffusion en direct s'est arr\xeat\xe9e",on:"Diffusion en direct",pending:"D\xe9marrage de la diffusion en direct...",serviceName:"Service de diffusion en direct",signedInAs:"Vous \xeates actuellement connect\xe9 en tant que :",signIn:"Se connecter avec Google",signInCTA:"Connectez-vous ou entrez votre cl\xe9 de diffusion en direct de YouTube",signOut:"",start:"D\xe9marrer une diffusion en direct",streamIdHelp:"Qu'est-ce que c'est?",unavailableTitle:"Diffusion en direct non disponible"},localRecording:{clientState:{off:"D\xe9sactiv\xe9",on:"Pr\xeat",unknown:"Inconnu"},dialogTitle:"Commandes d'enregistrement local",duration:"Dur\xe9e",durationNA:"S. O.",encoding:"Encodage",label:"LOR",labelToolTip:"L'enregistrement local est en cours",localRecording:"Enregistrement local",me:"",messages:{engaged:"Enregistrement local activ\xe9.",finished:"Enregistrement de la s\xe9ance {{token}} termin\xe9. Veuillez envoyer le fichier d'enregistrement au mod\xe9rateur.",finishedModerator:"Enregistrement de la s\xe9ance {{token}} termin\xe9. L'enregistrement de la piste locale a \xe9t\xe9 enregistr\xe9e. Veuillez demander aux autres participants de soumettre leurs enregistrements.",notModerator:"Vous n'\xeates pas le mod\xe9rateur. Vous ne pouvez pas d\xe9marrer ou arr\xeater l'enregistrement local."},moderator:"",no:"Non",participant:"Participant",participantStats:"Statistiques de participants",sessionToken:"Jeton de s\xe9ance",start:"Commencer l'enregistrement",stop:"Arr\xeater l'enregistrement",yes:"Oui"},lockRoomPassword:"",lockRoomPasswordUppercase:"",me:"moi",notify:{connectedOneMember:"{{name}} a rejoint la r\xe9union",connectedThreePlusMembers:"{{name}} et {{count}} autres ont rejoint la r\xe9union",connectedTwoMembers:"{{first}} et {{second}} ont rejoint la r\xe9union",disconnected:"d\xe9connect\xe9",focus:"Sujet de la conf\xe9rence",focusFail:"{{component}} non disponible; r\xe9essayez dans {{ms}} sec",grantedTo:"Droits de mod\xe9rateur accord\xe9s \xe0 {{to}}!",invitedOneMember:"",invitedThreePlusMembers:"",invitedTwoMembers:"",kickParticipant:"",me:"Moi",moderator:"Droits de mod\xe9rateur accord\xe9s!",muted:"Vous avez joint la conversation en sourdine.",mutedTitle:"Vous \xeates en sourdine!",mutedRemotelyTitle:"",mutedRemotelyDescription:"",passwordRemovedRemotely:"",passwordSetRemotely:"",raisedHand:"{{name}} voudrait parler.",somebody:"Quelqu'un",startSilentTitle:"",startSilentDescription:"",suboptimalExperienceDescription:"Euh... nous sommes d\xe9sol\xe9s que vous exp\xe9rience avec {{appName}} ne se d\xe9roule pas comme pr\xe9vu. Nous cherchons \xe0 am\xe9liorer cela, mais en attendant, veuillez essayer d'utiliser un des navigateurs pris en charge.",suboptimalExperienceTitle:"Avertissement de navigateur",unmute:"",newDeviceCameraTitle:"Nouvelle cam\xe9ra d\xe9tect\xe9e",newDeviceAudioTitle:"Nouveau dispositif audio d\xe9tect\xe9",newDeviceAction:"Utiliser"},passwordSetRemotely:"r\xe9gl\xe9 par un autre membre",passwordDigitsOnly:"Jusqu'\xe0 {{number}} chiffres",poweredby:"optimis\xe9 par",presenceStatus:{busy:"Occup\xe9",calling:"Appel en cours...",connected:"Connect\xe9",connecting:"Connexion en cours...",connecting2:"Connexion en cours*...",disconnected:"D\xe9connect\xe9",expired:"Expir\xe9",ignored:"Ignor\xe9",initializingCall:"Initialisation de l'appel...",invited:"Invit\xe9",rejected:"Refus\xe9",ringing:"Sonnerie"},profile:{setDisplayNameLabel:"D\xe9finir votre nom d'affichage",setEmailInput:"Entrer votre adresse courriel",setEmailLabel:"D\xe9finir votre courriel gravatar",title:""},recording:{authDropboxText:"T\xe9l\xe9verser \xe0 Dropbox",availableSpace:"Espace disponible : {{spaceLeft}} Mo (approximativement {{duration}} minutes d'enregistrement)",beta:"BETA",busy:"Lib\xe9ration de ressources pour l'enregistrement. Veuillez r\xe9essayer dans quelques minutes.",busyTitle:"Tous les enregistreurs sont actuellement occup\xe9s",error:"L'enregistrement a \xe9chou\xe9. Veuillez r\xe9essayer.",expandedOff:"L'enregistrement a \xe9t\xe9 arr\xeat\xe9.",expandedOn:"La r\xe9union est actuellement enregistr\xe9e.",expandedPending:"D\xe9marrage de l'enregistrement en cours...",failedToStart:"\xc9chec du d\xe9marrage de l'enregistrement",fileSharingdescription:"Partager l'enregistrement avec les participants de la r\xe9union",live:"EN DIRECT",loggedIn:"Connect\xe9 en tant que {{userName}}",off:"L'enregistrement est arr\xeat\xe9",on:"Enregistrement",pending:"Enregistrement de la r\xe9union en pr\xe9paration...",rec:"REC",serviceDescription:"Votre enregistrement sera sauvegard\xe9 par le service d'enregistrement",serviceName:"Service d'enregistrement",signIn:"Se connecter",signOut:"Se d\xe9connecter",unavailable:"Oups! Le {{serviceName}} n'est pas disponible pour le moment. Nous nous effor\xe7ons de r\xe9gler le probl\xe8me. Veuillez r\xe9essayer plus tard.",unavailableTitle:"Enregistrement non disponible"},sectionList:{pullToRefresh:"Tirer pour rafra\xeechir"},settings:{calendar:{about:"L'int\xe9gration de l'agenda de {{appName}} est utilis\xe9e pour acc\xe9der en toute s\xe9curit\xe9 \xe0 votre agenda pour qu'il puisse lire les \xe9v\xe9nements \xe0 venir.",disconnect:"D\xe9connexion",microsoftSignIn:"Se connecter avec Microsoft",signedIn:"Acc\xe8s aux \xe9v\xe9nements de votre agenda en cours pour {{email}}. Cliquez sur le bouton de d\xe9connexion ci-dessous pour terminer l'acc\xe8s aux \xe9v\xe9nements d'agenda.",title:""},devices:"Dispositifs",followMe:"Tous les participants me suivent",language:"Language",loggedIn:"Connect\xe9 en tant que {{name}}",moderator:"",more:"Plus",name:"",noDevice:"Aucun",selectAudioOutput:"Sortie audio",selectCamera:"Cam\xe9ra",selectMic:"Micro",startAudioMuted:"Tous les participants d\xe9butent en sourdine",startVideoMuted:"Tous les participants d\xe9butent masqu\xe9s",title:""},settingsView:{alertOk:"OK",alertTitle:"Alerte",alertURLText:"L'URL de serveur saisi n'est pas valide",buildInfoSection:"Information de version",conferenceSection:"Conf\xe9rence",displayName:"Nom d'affichage",email:"Courriel",header:"",profileSection:"Profil",serverURL:"URL du serveur",startWithAudioMuted:"D\xe9marrer avec l'audio en sourdine",startWithVideoMuted:"D\xe9marrer avec la vid\xe9o en sourdine",version:"Version"},share:{dialInfoText:"",mainText:""},speaker:"Intervenant",speakerStats:{hours:"{{count}} h",minutes:"{{count}} min",name:"Nom",seconds:"{{count}} s",speakerStats:"Statistiques d'intervenant",speakerTime:"Temps d'intervention"},startupoverlay:{policyText:" ",title:"{{app}} doit utiliser votre micro et votre cam\xe9ra."},suspendedoverlay:{rejoinKeyTitle:"Rejoindre \xe0 nouveau",text:"Appuyez sur le bouton Rejoindre pour vous reconnecter.",title:"Votre appel vid\xe9o a \xe9t\xe9 interrompu parce que cet ordinateur est tomb\xe9 en veille."},toolbar:{accessibilityLabel:{audioOnly:"Basculement du mode audio uniquement",audioRoute:"",callQuality:"",cc:"Basculement des sous-titres",chat:"Basculement de la fen\xeatre de clavardage",document:"Basculement du document partag\xe9",feedback:"",fullScreen:"Basculement de l'affichage plein \xe9cran",hangup:"Quitter l'appel",invite:"",kick:"Expulser le participant",localRecording:"Basculement des commandes d'enregistrement local",lockRoom:"Basculement du mot de passe de la r\xe9union",moreActions:"Basculement du menu d'actions suppl\xe9mentaires",moreActionsMenu:"Menu d'actions suppl\xe9mentaires",mute:"Basculement de la sourdine",pip:"Basculement du mode image dans l'image",profile:"",raiseHand:"Basculement de la main lev\xe9e",recording:"Basculement de l'enregistrement",remoteMute:"Mettre le participant en sourdine",Settings:"Basculement des param\xe8tres",sharedvideo:"Basculement du partage de vid\xe9o YouTube",shareRoom:"",shareYourScreen:"Basculement du partage d'\xe9cran",shortcuts:"Basculement des raccourcis",show:"",speakerStats:"Basculement des statistiques d'intervenant",tileView:"",toggleCamera:"",videomute:"Basculement de la sourdine vid\xe9o",videoblur:""},addPeople:"Ajouter des personnes \xe0 votre appel",audioOnlyOff:"D\xe9sactiver le mode audio uniquement",audioOnlyOn:"Activer le mode audio uniquement",audioRoute:"S\xe9lectionner le dispositif audio",authenticate:"Authentification",callQuality:"Gestion de la qualit\xe9 d'appel",chat:"Ouvrir / Fermer le clavardage",closeChat:"Fermer le clavardage",documentClose:"Fermer le document partag\xe9",documentOpen:"Ouvrir le document partag\xe9",enterFullScreen:"Afficher le mode plein \xe9cran",enterTileView:"Passer \xe0 l'affichage mosa\xefque",exitFullScreen:"Quitter le mode plein \xe9cran",exitTileView:"Quitter l'affichage mosa\xefque",feedback:"Laisser un commentaire",hangup:"Quitter",invite:"Inviter des personnes",login:"Connexion",logout:"D\xe9connexion",lowerYourHand:"Abaisser votre main",moreActions:"Plus d'actions",mute:"Activer / R\xe9activer le son",openChat:"Ouvrir le clavardage",pip:"Passer en mode image dans l'image",profile:"Modifier votre profil",raiseHand:"Lever / Abaisser votre main",raiseYourHand:"Lever votre main",Settings:"Param\xe8tres",sharedvideo:"Partager une vid\xe9o YouTube",shareRoom:"Inviter quelqu'un",shortcuts:"Voir les raccourcis",speakerStats:"Statistiques d'intervenant",startScreenSharing:"D\xe9marrer le partage d'\xe9cran",startSubtitles:"Activer les sous-titres",stopScreenSharing:"Arr\xeater le partage d'\xe9cran",stopSubtitles:"D\xe9sactiver les sous-titres",stopSharedVideo:"Arr\xeater la vid\xe9o YouTube",talkWhileMutedPopup:"Vous essayez de parler? Vous \xeates en sourdine.",tileViewToggle:"Basculement de l'affichage mosa\xefque",toggleCamera:"Basculement de la cam\xe9ra",videomute:"D\xe9marrer / Arr\xeater la cam\xe9ra",startvideoblur:"",stopvideoblur:""},transcribing:{ccButtonTooltip:"Activer / D\xe9sactiver les sous-titres",error:"\xc9chec de la transcription. Veuillez r\xe9essayer.",expandedLabel:"La transcription est actuellement activ\xe9e",failedToStart:"\xc9chec du d\xe9marrage de la transcription",labelToolTip:"La r\xe9union est transcrite",off:"La transcription est arr\xeat\xe9e",pending:"Pr\xe9paration de la transcription de la r\xe9union en cours...",start:"Activer l'affichage des sous-titres",stop:"D\xe9sactiver l'affichage des sous-titres",tr:"PI"},userMedia:{androidGrantPermissions:"",chromeGrantPermissions:"",edgeGrantPermissions:"S\xe9lectionner Oui lorsque votre navigateur demande l'autorisation.",electronGrantPermissions:"",firefoxGrantPermissions:"S\xe9lectionner Partager le dispositif s\xe9lectionn\xe9 lorsque votre navigateur demande l'autorisation.",iexplorerGrantPermissions:"",nwjsGrantPermissions:"Veuillez accorder l'autorisation d'utiliser votre cam\xe9ra et votre micro",operaGrantPermissions:"","react-nativeGrantPermissions":"S\xe9lectionner Autoriser lorsque votre navigateur vous demande l'autorisation.",safariGrantPermissions:"S\xe9lectionner OK lorsque votre navigateur demande l'autorisation."},videoSIPGW:{busy:"Lib\xe9ration des ressources en cours. Veuillez r\xe9essayer dans quelques minutes.",busyTitle:"Le service de Salle est actuellement occup\xe9.",errorAlreadyInvited:"{{displayName}} a d\xe9j\xe0 \xe9t\xe9 invit\xe9",errorInvite:"La conf\xe9rence n'est pas encore configur\xe9e. Veuillez r\xe9essayer plus tard.",errorInviteFailed:"Nous nous effor\xe7ons de r\xe9gler ce probl\xe8me. Veuillez r\xe9essayer plus tard.",errorInviteFailedTitle:"L'invitation de {{displayName}} a \xe9chou\xe9",errorInviteTitle:"Erreur lors de l'invitation de la salle",pending:"{{displayName}} a \xe9t\xe9 invit\xe9"},videoStatus:{audioOnly:"AUD",audioOnlyExpanded:"Vous \xeates en mode audio uniquement. Ce mode \xe9conomise de la bande passante, mais bloque les vid\xe9os des autres.",callQuality:"Qualit\xe9 d'appel",hd:"HD",highDefinition:"Haute d\xe9finition",labelTooiltipNoVideo:"Aucune vid\xe9o",labelTooltipAudioOnly:"Mode audio uniquement activ\xe9",ld:"LD",lowDefinition:"Basse d\xe9finition",onlyAudioAvailable:"Seulement l'audio est disponible",onlyAudioSupported:"Ce navigateur prend seulement l'audio en charge.",p2pEnabled:"Pair \xe0 pair activ\xe9",p2pVideoQualityDescription:"En mode pair \xe0 pair, il est possible de basculer entre la haute qualit\xe9 d'appel entrant et l'audio seulement. Certains param\xe8tres ne seront pas activ\xe9s tant que vous ne quittez le mode pair \xe0 pair.",recHighDefinitionOnly:"La haute d\xe9finition est pr\xe9f\xe9rable.",sd:"SD",standardDefinition:"D\xe9finition standard"},videothumbnail:{domute:"Discr\xe9tion",flip:"Actionner",kick:"Expulser",moderator:"Mod\xe9rateur",mute:"Le membre est en sourdine",muted:"Discr\xe9tion",remoteControl:"Contr\xf4le \xe0 distance",show:"",videomute:"Le membre a arr\xeat\xe9 la cam\xe9ra"},welcomepage:{accessibilityLabel:{join:"Toucher pour rejoindre",roomname:""},appDescription:"Profitez de la conversation vid\xe9o avec toute votre \xe9quipe. Allez-y, invitez tous ceux que vous connaissez. {{app}} est une solution 100\xa0% libre de conf\xe9rence vid\xe9o enti\xe8rement crypt\xe9e que vous pouvez utiliser en tout temps et gratuitement, sans avoir besoin de compte.",audioVideoSwitch:{audio:"T\xe9l\xe9phone",video:"Vid\xe9o"},calendar:"Calendrier",connectCalendarButton:"Connecter votre agenda",connectCalendarText:"",enterRoomTitle:"D\xe9marrer une nouvelle r\xe9union",go:"Commencer",join:"Rejoindre",info:"Ret. arr.",privacy:"Confidentialit\xe9",recentList:"R\xe9cent",recentListDelete:"Supprimer",recentListEmpty:"Votre liste r\xe9cente est actuellement vide. Clavardez avec votre \xe9quipe et vous y trouverez toutes vos r\xe9unions r\xe9centes.",reducedUIText:"",roomname:"Entrer le nom de la salle",roomnameHint:"Entrez le nom ou l'URL de la salle que vous voulez rejoindre. Vous pouvez inventer un nom, mais assurez-vous de le partager avec les participants de la r\xe9union pour qu'ils utilisent le m\xeame nom.",sendFeedback:"Envoyer un commentaire",terms:"Termes",title:"Conf\xe9rence vid\xe9o s\xe9curis\xe9e, pleinement fonctionnelle et enti\xe8rement gratuite"}}},663,[]); -__d(function(i,k,s,a,e,n,r){e.exports={en:"Engleski",af:"Afrikanski",az:"A\u017eerbejd\u017eanski",bg:"Bugarski",cs:"\u010ce\u0161ki",de:"Njema\u010dki",el:"Gr\u010dki",eo:"Esperanto",es:"\u0160panjolski",fr:"Francuski",hy:"Armenski",it:"Talijanski",ja:"Japanski",ko:"Korejski",nb:"Norve\u0161ki Bokmal",oc:"Okcitanski",pl:"Poljski",ptBR:"Portugalski (Brazil)",ru:"Ruski",sk:"Slova\u010dki",sl:"Slovenski",sv:"\u0160vedski",tr:"Turski",vi:"Vijetnamski",zhCN:"Kineski (Kina)"}},664,[]); -__d(function(e,i,a,o,n,r,t){n.exports={addPeople:{add:"Pozivnica",countryNotSupported:"Ova destinacija jo\u0161 nije podr\u017eana.",countryReminder:"Zovete izvan zemlje? Molim provjerite da li ste unijeli predbroj dr\u017eave!",disabled:"Ne mo\u017eete slati pozivnice.",failedToAdd:"",footerText:"Upu\u0107ivanje poziva je zabranjeno.",loading:"Pretra\u017eujem ljude i brojeve telefona",loadingNumber:"Provjera telefonskog broja",loadingPeople:"Tra\u017eenje osoba koje \u017eelite pozvati",noResults:"Nema podudarnih rezultata pretra\u017eivanja",noValidNumbers:"Unesite telefonski broj",searchNumbers:"Dodajte telefonske brojeve",searchPeople:"Potra\u017eite osobe",searchPeopleAndNumbers:"Potra\u017eite osobe ili dodajte njihove telefonske brojeve",telephone:"Telefon: {{number}}",title:"Pozovite ljude na ovaj sastanak"},audioDevices:{bluetooth:"Bluetooth",headphones:"Slu\u0161alice",phone:"Telefon",speaker:"Zvu\u010dnik"},audioOnly:{audioOnly:"Samo zvuk"},calendarSync:{addMeetingURL:"Dodajte vezu sastanka",confirmAddLink:"\u017delite li dodati Jitsi vezu u ovaj doga\u0111aj?",error:{appConfiguration:"Integracija kalendara nije ispravno konfigurirana.",generic:"Do\u0161lo je do pogre\u0161ke. Provjerite postavke kalendara ili poku\u0161ajte osvje\u017eiti kalendar.",notSignedIn:"Do\u0161lo je do pogre\u0161ke prilikom provjere autenti\u010dnosti za prikaz doga\u0111aja u kalendaru. Provjerite postavke kalendara i poku\u0161ajte se ponovno prijaviti."},join:"Pridru\u017eite",joinTooltip:"Pridru\u017eite se sastanku",nextMeeting:"slijede\u0107i sastanak",noEvents:"Nema zakazanih doga\u0111aja.",ongoingMeeting:"sastanak u tijeku",permissionButton:"Otvori postavke",permissionMessage:"Dozvola za kalendar je obavezna kako biste vidjeli sastanke u aplikaciji.",refresh:"Osvje\u017ei kalendar",today:"Danas"},chat:{error:"Gre\u0161ka: poruka \"{{originalText}}\" nije poslana. Razlog: {{error}}",messagebox:"",nickname:{popover:"Odaberite nadimak",title:"Unesite nadimak za \u010davrljanje"},title:"\u010cavrljanje"},connectingOverlay:{joiningRoom:""},connection:{ATTACHED:"Spojen",AUTHENTICATING:"Autentikacija",AUTHFAIL:"Autentikacija nije uspjela",CONNECTED:"Povezan",CONNECTING:"Povezivanje",CONNFAIL:"Povezivanje nije uspjelo",DISCONNECTED:"Nije povezano",DISCONNECTING:"Prekid povezivanja",ERROR:"Gre\u0161ka",RECONNECTING:"Dogodio se problem s mre\u017eom. Ponovno povezivanje..."},connectionindicator:{address:"Adresa:",bandwidth:"Procijenjena propusnost:",bitrate:"Brzina prijenosa:",bridgeCount:"Broj poslu\u017eitelja:",connectedTo:"Spojen na:",framerate:"Sli\u010dice po sekundi:",less:"Prika\u017ei manje",localaddress_0:"Lokalna adresa:",localaddress_1:"Lokalne adrese:",localaddress_2:"",localport_0:"Lokalni priklju\u010dak:",localport_1:"Lokalni priklju\u010dci:",localport_2:"",more:"Prika\u017ei vi\u0161e",packetloss:"Gubitak paketa:",quality:{good:"Dobro",inactive:"Neaktivno",lost:"Izgubljeno",nonoptimal:"Nije optimalno",poor:"Slaba"},remoteaddress_0:"Udaljena adresa:",remoteaddress_1:"Udaljene adrese:",remoteaddress_2:"",remoteport_0:"Udaljeni priklju\u010dak:",remoteport_1:"Udaljeni priklju\u010dci:",remoteport_2:"",resolution:"Rezolucija:",status:"Povezivanje",transport_0:"",transport_1:"",transport_2:"",turn:""},dateUtils:{earlier:"Ranije",today:"Danas",yesterday:"Ju\u010der"},deepLinking:{appNotInstalled:"Da biste se pridru\u017eili ovom sastanku na telefonu, potrebna vam je mobilna aplikacija {{app}}.",description:"Ni\u0161ta se nije dogodilo? Poku\u0161ali smo pokrenuti va\u0161 sastanak u aplikaciji {{app}} na radnoj povr\u0161ini. Poku\u0161ajte ponovno ili ga pokrenite u web-aplikaciji {{app}}.",descriptionWithoutWeb:"",downloadApp:"Preuzmite aplikaciju",launchWebButton:"Pokreni na webu",openApp:"Nastavite do aplikacije",title:"Pokretanje sastanka u {{app}}...",tryAgainButton:"Poku\u0161ajte ponovo na radnoj povr\u0161ini"},defaultLink:"npr. {{url}}",deviceError:{cameraError:"Pristup va\u0161oj kameri nije uspio",cameraPermission:"Gre\u0161ka kod dohvata dozvole za kameru",microphoneError:"Pristup va\u0161em mikrofonu nije uspio",microphonePermission:"Gre\u0161ka kod dohvata dozvole za mikrofon"},deviceSelection:{noPermission:"Dozvola nije odobrena",previewUnavailable:"Pregled nije dostupan",selectADevice:"Odaberite ure\u0111aj",testAudio:"Reproducirajte testni zvuk"},dialog:{accessibilityLabel:{liveStreaming:"Emitiranje u\u017eivo"},allow:"Dozvoli",alreadySharedVideoMsg:"",alreadySharedVideoTitle:"Istodobno je dopu\u0161ten samo jedan zajedni\u010dki videozapis",applicationWindow:"Prozor aplikacije",Back:"Nazad",cameraConstraintFailedError:"Va\u0161a kamera ne zadovoljava neka od potrebnih ograni\u010denja.",cameraNotFoundError:"Kamera nije prona\u0111ena.",cameraNotSendingData:"Ne mo\u017eemo pristupiti va\u0161oj kameri. Provjerite koristi li ovaj ure\u0111aj neki drugi program, odaberite drugi ure\u0111aj s izbornika postavki ili poku\u0161ajte ponovno u\u010ditati program.",cameraNotSendingDataTitle:"Nije mogu\u0107e pristupiti kameri",cameraPermissionDeniedError:"Niste odobrili kori\u0161tenje kamere. I dalje se mo\u017eete pridru\u017eiti konferenciji, ali drugi vas ne\u0107e vidjeti. Pomo\u0107u gumba kamere u adresnoj traci to popravite.",cameraUnknownError:"Nije mogu\u0107e koristiti kameru iz nepoznatog razloga.",cameraUnsupportedResolutionError:"Fotoaparat ne podr\u017eava potrebnu razlu\u010divost videozapisa.",Cancel:"Odustani",close:"Zatvori",conferenceDisconnectMsg:"Provjerite va\u0161u mre\u017enu vezu. Ponovno spajanje za {{seconds}} sekundi...",conferenceDisconnectTitle:"Odspojeni ste.",conferenceReloadMsg:"Poku\u0161avamo popraviti. Ponovno spajanje za {{seconds}} sekundi...",conferenceReloadTitle:"Na\u017ealost, ne\u0161to je po\u0161lo po zlu.",confirm:"Potvrdi",confirmNo:"Ne",confirmYes:"Da",connectError:"Uh! Ne\u0161to je po\u0161lo po zlu i nismo se mogli povezati s konferencijom.",connectErrorWithMsg:"Uh! Ne\u0161to je po\u0161lo po zlu i nismo se mogli povezati s konferencijom: {{msg}}",connecting:"Povezivanje",contactSupport:"Kontaktirajte podr\u0161ku",copy:"Kopiraj",dismiss:"Odbaciti",displayNameRequired:"",done:"Gotovo",enterDisplayName:"",error:"Gre\u0161ka",externalInstallationMsg:"Trebate instalirati pro\u0161irenje za dijeljenje radne povr\u0161ine.",externalInstallationTitle:"Potrebno je pro\u0161irenje",goToStore:"",gracefulShutdown:"",IamHost:"Ja sam doma\u0107in",incorrectRoomLockPassword:"",incorrectPassword:"Pogre\u0161no korisni\u010dko ime ili lozinka",inlineInstallationMsg:"Trebate instalirati pro\u0161irenje za dijeljenje radne povr\u0161ine.",inlineInstallExtension:"Sada instalirati",internalError:"Ups! Ne\u0161to je po\u0161lo po zlu. Dogodila se gre\u0161ka: {{error}}",internalErrorTitle:"Interna gre\u0161ka",kickMessage:"",kickParticipantButton:"Izbaci",kickParticipantDialog:"Jeste li sigurni da \u017eelite izbaciti ovog sudionika?",kickParticipantTitle:"",kickTitle:"",liveStreaming:"Emitiranje u\u017eivo",liveStreamingDisabledForGuestTooltip:"Gosti ne mogu pokrenuti emitiranje u\u017eivo.",liveStreamingDisabledTooltip:"Pokretanje emitiranja u\u017eivo je isklju\u010deno.",lockMessage:"",lockRoom:"",lockTitle:"Zaklju\u010davanje nije uspjelo",logoutQuestion:"Jeste li sigurni da se \u017eelite odjaviti i zaustaviti konferenciju?",logoutTitle:"Odjava",maxUsersLimitReached:"",maxUsersLimitReachedTitle:"",micConstraintFailedError:"Va\u0161 mikrofon ne zadovoljava neka od potrebnih ograni\u010denja.",micNotFoundError:"Mikrofon nije prona\u0111en.",micNotSendingData:"",micNotSendingDataTitle:"",micPermissionDeniedError:"Niste odobrili kori\u0161tenje mikrofona. I dalje se mo\u017eete pridru\u017eiti konferenciji, ali vas drugi ne\u0107e \u010duti. Pomo\u0107u gumba kamere u adresnoj traci to popravite.",micUnknownError:"Nije mogu\u0107e koristiti mikrofon iz nepoznatog razloga.",muteParticipantBody:"Ne mo\u017eete ih ponovno uklju\u010diti, ali oni se mogu sami uklju\u010diti u bilo kojem trenutku.",muteParticipantButton:"Uti\u0161aj",muteParticipantDialog:"Jeste li sigurni da \u017eelite isklju\u010diti ovog sudionika? Ne mo\u017eete ih uklju\u010diti, ali oni mogu biti uklju\u010deni u bilo kojem trenutku.",muteParticipantTitle:"",Ok:"U redu",passwordLabel:"",passwordNotSupported:"Postavljanje lozinke za susret nije podr\u017eano.",passwordNotSupportedTitle:"",passwordRequired:"",popupError:"Va\u0161 preglednik blokira sko\u010dne prozore s ove web-lokacije. Omogu\u0107ite sko\u010dne prozore u sigurnosnim postavkama preglednika i poku\u0161ajte ponovno.",popupErrorTitle:"Sko\u010dni prozor je blokiran",recording:"Snimanje",recordingDisabledForGuestTooltip:"Gosti ne mogu pokrenuti snimanje.",recordingDisabledTooltip:"Isklju\u010deno je pokretanje snimanja.",rejoinNow:"Pridru\u017eite se sada",remoteControlAllowedMessage:"{{user}} je prihvatio va\u0161 zahtjev daljinskog upravljanja!",remoteControlDeniedMessage:"{{user}} je odbio va\u0161 zahtjev daljinskog upravljanja!",remoteControlErrorMessage:"Do\u0161lo je do pogre\u0161ke prilikom poku\u0161aja zahtjeva za dozvole daljinskog upravljanja od {{user}}!",remoteControlRequestMessage:"Ho\u0107ete li dopustiti {{user}} daljinski upravljati radnom povr\u0161inom?",remoteControlShareScreenWarning:"Imajte na umu da ako pritisnete \"Dopusti\" podijelit \u0107ete zaslon!",remoteControlStopMessage:"Sesija udaljenog upravlja\u010da je zavr\u0161ena!",remoteControlTitle:"Udaljeno upravljanje",Remove:"Ukloni",removePassword:"",removeSharedVideoMsg:"Jeste li sigurni da \u017eelite ukloniti dijeljeni videozapis?",removeSharedVideoTitle:"Uklanjanje dijeljenog videozapisa",reservationError:"Pogre\u0161ka sustava rezervacija",reservationErrorMsg:"Oznaka gre\u0161ke: {{code}}, poruka: {{msg}}",retry:"Poku\u0161aj ponovno",screenSharingFailedToInstall:"Uh! Nije uspjelo instaliranje pro\u0161irenja dijeljenja zaslona.",screenSharingFailedToInstallTitle:"Nije uspjelo instaliranje pro\u0161irenja dijeljenja zaslona",screenSharingFirefoxPermissionDeniedError:"Ne\u0161to je po\u0161lo po krivu dok smo poku\u0161avali dijeliti va\u0161 zaslon. Provjerite jeste li nam dali dopu\u0161tenje.",screenSharingFirefoxPermissionDeniedTitle:"Uh! Nismo mogli pokrenuti dijeljenje zaslona!",screenSharingPermissionDeniedError:"Uh! Ne\u0161to se dogodilo s va\u0161im dijeljenjem dozvola za pro\u0161irenje na zaslonu. Ponovno u\u010ditajte i poku\u0161ajte ponovno.",serviceUnavailable:"",sessTerminated:"",Share:"",shareVideoLinkError:"Unesite to\u010dnu vezu na youtube.",shareVideoTitle:"Dijelite videozapis",shareYourScreen:"Dijelite va\u0161 ekran",shareYourScreenDisabled:"Dijeljenje ekrana je isklju\u010deno.",shareYourScreenDisabledForGuest:"",startLiveStreaming:"Pokreni emitiranje u\u017eivo",startRecording:"Pokreni snimanje",startRemoteControlErrorMessage:"Do\u0161lo je do pogre\u0161ke prilikom poku\u0161aja pokretanja sesije daljinskog upravlja\u010da!",stopLiveStreaming:"Zaustavi emitiranje u\u017eivo",stopRecording:"Zaustavi snimanje",stopRecordingWarning:"Da li ste sigurni da \u017eelite zaustaviti snimanje?",stopStreamingWarning:"Da li ste sigurani da \u017eelite zaustaviti emitiranje u\u017eivo?",streamKey:"Klju\u010d za emitiranje u\u017eivo",Submit:"Po\u0161alji",thankYou:"Hvala \u0161to koristite {{appName}}!",token:"token",tokenAuthFailed:"\u017dao nam je, nije vam dozvoljeno pridru\u017eiti se pozivu.",tokenAuthFailedTitle:"Autentikacija nije uspjela",transcribing:"",unlockRoom:"",userPassword:"korisni\u010dka lozinka",WaitForHostMsg:"",WaitForHostMsgWOk:"",WaitingForHost:"",Yes:"Da",yourEntireScreen:"Va\u0161 cijeli zaslon"},dialOut:{statusMessage:"je sada {{status}}"},feedback:{average:"Prosje\u010dno",bad:"Lo\u0161e",detailsLabel:"Recite nam vi\u0161e o tome.",good:"Dobro",rateExperience:"",veryBad:"",veryGood:""},incomingCall:{answer:"",audioCallTitle:"",decline:"Odbaciti",productLabel:"",videoCallTitle:""},info:{accessibilityLabel:"Prika\u017ei informacije",addPassword:"",cancelPassword:"",conferenceURL:"Veza:",country:"Dr\u017eava",dialANumber:"Da biste se pridru\u017eili sastanku, nazovite jedan od tih brojeva i unesite pin.",dialInConferenceID:"PIN:",dialInNotSupported:"Na\u017ealost, pozivanje u trenutno nije podr\u017eano.",dialInNumber:"Nazvati:",dialInSummaryError:"",dialInTollFree:"Besplatno",genericError:"Ups, ne\u0161to je po\u0161lo po zlu.",inviteLiveStream:"Da biste pogledali prijenos u\u017eivo ovog sastanka, kliknite ovu vezu: {{url}}",invitePhone:"",invitePhoneAlternatives:"",inviteURLFirstPartGeneral:"",inviteURLFirstPartPersonal:"",inviteURLSecondPart:"",liveStreamURL:"Emitiranje u\u017eivo:",moreNumbers:"",noNumbers:"",noPassword:"",noRoom:"",numbers:"Brojevi za nazivanje:",password:"",title:"",tooltip:"Podijelite vezu i informacije za nazivanje ovog sastanka",label:"Informacije o sastanku"},inviteDialog:{alertText:"Pozivanje nekih sudionika nije uspjelo.",header:"Pozivnica",searchCallOnlyPlaceholder:"Unesite telefonski broj",searchPeopleOnlyPlaceholder:"Potra\u017eite sudionike",searchPlaceholder:"Broj sudionika ili telefon",send:""},inlineDialogFailure:{msg:"",retry:"",support:"",supportMsg:""},keyboardShortcuts:{focusLocal:"",focusRemote:"",fullScreen:"Prika\u017ei / Iza\u0111i iz cijelog ekrana",keyboardShortcuts:"Pre\u010daci tipkovnice",localRecording:"",mute:"Isklju\u010dite ili uklju\u010dite mikrofon",pushToTalk:"",raiseHand:"Podigni / spusti ruku",showSpeakerStats:"Prika\u017ei statistiku zvu\u010dnika",toggleChat:"Otvori ili zatvori \u010davrljanje",toggleFilmstrip:"",toggleScreensharing:"",toggleShortcuts:"Prika\u017ei ili sakrij pre\u010dace tipkovnice",videoMute:"Pokreni ili zaustavi kameru"},liveStreaming:{busy:"Radimo na osloba\u0111anju streaming resursa. Molim poku\u0161ajte ponovno za par minuta.",busyTitle:"Svi stream-ovi su trenutno zauzeti",changeSignIn:"",choose:"Odaberite emitiranje u\u017eivo",chooseCTA:"Odaberite opciju emitiranja. Trenutno ste prijavljeni kao {{email}}.",enterStreamKey:"Ovdje unesite klju\u010d YouTube prijenos u\u017eivo.",error:"Emitiranje u\u017eivo nije uspjelo. Poku\u0161ajte ponovno.",errorAPI:"",errorLiveStreamNotEnabled:"Emitiranje u\u017eivo nije omogu\u0107eno na {{email}}. Omogu\u0107ite prijenos u\u017eivo ili se prijavite na ra\u010dun s omogu\u0107enim prijenosom u\u017eivo.",expandedOff:"Emitiranje u\u017eivo je zaustavljeno",expandedOn:"Ovaj sastanak se emitira u\u017eivo na YouTube.",expandedPending:"Emitiranje u\u017eivo se pokre\u0107e...",failedToStart:"Pokretanje emitiranja u\u017eivo nije uspjelo",getStreamKeyManually:"Nismo mogli dohvatiti niti jedan prijenos u\u017eivo. Poku\u0161ajte dobiti klju\u010d u\u017eivo iz usluge YouTube.",invalidStreamKey:"Klju\u010d za emitiranje u\u017eivo mo\u017eda je pogre\u0161an.",off:"Emitiranje u\u017eivo je zaustavljeno",on:"Emitiranje u\u017eivo",pending:"Pokretanje emitiranja u\u017eivo...",serviceName:"Usluga emitiranja u\u017eivo",signedInAs:"",signIn:"",signInCTA:"Prijavite se ili unisete va\u0161 YouTube klju\u010d za emitiranje u\u017eivo.",signOut:"Pokrenite emitiranje u\u017eivo",start:"Pokreni emitiranje u\u017eivo",streamIdHelp:"",unavailableTitle:""},localRecording:{clientState:{off:"",on:"",unknown:""},dialogTitle:"",duration:"",durationNA:"",encoding:"",label:"",labelToolTip:"",localRecording:"",me:"",messages:{engaged:"",finished:"",finishedModerator:"",notModerator:""},moderator:"",no:"Ne",participant:"",participantStats:"",sessionToken:"",start:"Pokreni snimanje",stop:"Zaustavi snimanje",yes:"Da"},lockRoomPassword:"Lozinka",lockRoomPasswordUppercase:"Lozinka",me:"",notify:{connectedOneMember:"",connectedThreePlusMembers:"",connectedTwoMembers:"",disconnected:"Nije povezano",focus:"",focusFail:"",grantedTo:"",invitedOneMember:"",invitedThreePlusMembers:"",invitedTwoMembers:"",kickParticipant:"",me:"",moderator:"",muted:"",mutedTitle:"",mutedRemotelyTitle:"",mutedRemotelyDescription:"",passwordRemovedRemotely:"",passwordSetRemotely:"",raisedHand:"",somebody:"",startSilentTitle:"",startSilentDescription:"",suboptimalExperienceDescription:"",suboptimalExperienceTitle:"",unmute:"",newDeviceCameraTitle:"",newDeviceAudioTitle:"",newDeviceAction:""},passwordSetRemotely:"",passwordDigitsOnly:"",poweredby:"",presenceStatus:{busy:"",calling:"",connected:"Povezan",connecting:"Povezivanje",connecting2:"Povezivanje",disconnected:"Nije povezano",expired:"",ignored:"",initializingCall:"",invited:"Pozivnica",rejected:"",ringing:""},profile:{setDisplayNameLabel:"",setEmailInput:"",setEmailLabel:"",title:""},recording:{authDropboxText:"",availableSpace:"",beta:"",busy:"",busyTitle:"Svi stream-ovi su trenutno zauzeti",error:"Emitiranje u\u017eivo nije uspjelo. Poku\u0161ajte ponovno.",expandedOff:"",expandedOn:"",expandedPending:"Snimanje se pokre\u0107e...",failedToStart:"",fileSharingdescription:"",live:"",loggedIn:"Prijavljen kao {{userName}}",off:"",on:"Snimanje",pending:"",rec:"",serviceDescription:"",serviceName:"",signIn:"",signOut:"Pokrenite emitiranje u\u017eivo",unavailable:"",unavailableTitle:""},sectionList:{pullToRefresh:""},settings:{calendar:{about:"Integracija kalendara {{appName}} koristi se za siguran pristup kalendaru tako da mo\u017ee \u010ditati nadolaze\u0107e doga\u0111aje.",disconnect:"Odspoji",microsoftSignIn:"Prijavite se sa Microsoftom",signedIn:"Trenutno pristupate doga\u0111ajima kalendara za {{email}}. Kliknite gumb Odspoji u nastavku da biste zaustavili pristup doga\u0111ajima u kalendaru.",title:"Kalendar"},devices:"Ure\u0111aji",followMe:"Svatko me slijedi",language:"Jezik",loggedIn:"Prijavljen kao {{name}}",moderator:"",more:"Vi\u0161e",name:"Ime",noDevice:"Gotovo",selectAudioOutput:"Zvu\u010dni izlaz",selectCamera:"Kamera",selectMic:"Mikrofon",startAudioMuted:"Svi po\u010dinju sa isklju\u010denim zvukom",startVideoMuted:"Svi po\u010dinju sakriveni",title:"Postavke"},settingsView:{alertOk:"U redu",alertTitle:"",alertURLText:"Uneseni URL poslu\u017eitelja nije ispravan",buildInfoSection:"",conferenceSection:"Konferencija",displayName:"Ime za prikaz",email:"",header:"Postavke",profileSection:"",serverURL:"URL poslu\u017eitelja",startWithAudioMuted:"Pokreni sa isklju\u010denim zvukom",startWithVideoMuted:"Pokreni sa uti\u0161anim videozapisom",version:""},share:{dialInfoText:"",mainText:""},speaker:"Zvu\u010dnik",speakerStats:{hours:"",minutes:"",name:"Ime",seconds:"",speakerStats:"Statistika govornika",speakerTime:"Vrijeme govornika"},startupoverlay:{policyText:"",title:"{{app}} treba koristiti va\u0161 mikrofon i kameru."},suspendedoverlay:{rejoinKeyTitle:"",text:"",title:""},toolbar:{accessibilityLabel:{audioOnly:"",audioRoute:"Odaberite ure\u0111aj za zvuk",callQuality:"",cc:"",chat:"",document:"Prika\u017ei ili sakrij dijeljeni dokument",feedback:"",fullScreen:"Prebacite cijeli ekran",hangup:"Iza\u0111ite iz poziva",invite:"",kick:"",localRecording:"",lockRoom:"",moreActions:"",moreActionsMenu:"",mute:"Nijemi videozapis",pip:"Otvori na\u010din slika-u-slici",profile:"",raiseHand:"",recording:"",remoteMute:"",Settings:"Prika\u017ei postavke",sharedvideo:"",shareRoom:"Pozovi nekoga",shareYourScreen:"Uklju\u010di / isklju\u010di dijeljenje ekrana",shortcuts:"Uklju\u010di / isklju\u010di pre\u010dace",show:"",speakerStats:"Uklju\u010di / isklju\u010di statistiku govornika",tileView:"Prikaz plo\u010dica",toggleCamera:"Uklju\u010di / isklju\u010di kameru",videomute:"Nijemi videozapis",videoblur:""},addPeople:"Dodaj osobe u poziv",audioOnlyOff:"Isklju\u010di na\u010din samo zvuk",audioOnlyOn:"Uklju\u010di na\u010din samo zvuk",audioRoute:"Odaberite ure\u0111aj za zvuk",authenticate:"Autentikacija",callQuality:"Upravljaj kvalitetom poziva",chat:"Otvori / Zatvori \u010davrljanje",closeChat:"Zatvori \u010davrljanje",documentClose:"Zatvori dijeljeni dokument",documentOpen:"Otvori dijeljenji dokument",enterFullScreen:"Prikaz preko cijelog ekrana",enterTileView:"Uklju\u010di prikaz plo\u010dica",exitFullScreen:"Iza\u0111i iz prikaza cijelog ekrana",exitTileView:"Iza\u0111i iz prikaza plo\u010dica",feedback:"",hangup:"Izlaz",invite:"",login:"Prijava",logout:"Odjava",lowerYourHand:"Spusti ruku",moreActions:"Vi\u0161e akcija",mute:"Isklju\u010di / Uklju\u010di zvuk",openChat:"Otvori \u010davrljanje",pip:"Otvori na\u010din slika-u-slici",profile:"",raiseHand:"Podigni / spusti ruku",raiseYourHand:"Podigni ruku",Settings:"Postavke",sharedvideo:"Podijeli YouTube videozapis",shareRoom:"Pozovi nekoga",shortcuts:"Prikaz pre\u010daca",speakerStats:"Statistika govornika",startScreenSharing:"Pokreni dijeljenje ekrana",startSubtitles:"Pokreni podnaslove",stopScreenSharing:"Zaustavi dijeljenje ekrana",stopSubtitles:"Zaustavi podnaslove",stopSharedVideo:"Zaustavi YouTube videozapis",talkWhileMutedPopup:"Poku\u0161ava\u0161 govoriti? Uti\u0161an si.",tileViewToggle:"Prikaz plo\u010dica",toggleCamera:"Uklju\u010di / isklju\u010di kameru",videomute:"Pokreni / Zaustavi kameru",startvideoblur:"",stopvideoblur:""},transcribing:{ccButtonTooltip:"",error:"Emitiranje u\u017eivo nije uspjelo. Poku\u0161ajte ponovno.",expandedLabel:"",failedToStart:"",labelToolTip:"",off:"",pending:"",start:"",stop:"",tr:""},userMedia:{androidGrantPermissions:"",chromeGrantPermissions:"",edgeGrantPermissions:"",electronGrantPermissions:"Molim dozvolite upotrebu kamere i mikrofona",firefoxGrantPermissions:"Odaberite Dijeljenje odabranog ure\u0111aja kada preglednik zatra\u017ei dopu\u0161tenja.",iexplorerGrantPermissions:"",nwjsGrantPermissions:"Molim dozvolite upotrebu kamere i mikrofona",operaGrantPermissions:"","react-nativeGrantPermissions":"",safariGrantPermissions:""},videoSIPGW:{busy:"",busyTitle:"",errorAlreadyInvited:"",errorInvite:"",errorInviteFailed:"",errorInviteFailedTitle:"",errorInviteTitle:"",pending:""},videoStatus:{audioOnly:"",audioOnlyExpanded:"",callQuality:"",hd:"",highDefinition:"",labelTooiltipNoVideo:"",labelTooltipAudioOnly:"",ld:"",lowDefinition:"",onlyAudioAvailable:"",onlyAudioSupported:"",p2pEnabled:"",p2pVideoQualityDescription:"",recHighDefinitionOnly:"",sd:"",standardDefinition:""},videothumbnail:{domute:"Uti\u0161aj",flip:"",kick:"",moderator:"",mute:"",muted:"Uti\u0161aj",remoteControl:"",show:"",videomute:""},welcomepage:{accessibilityLabel:{join:"Dodirnite za pridru\u017eivanje",roomname:"Unesi naziv sobe"},appDescription:"Samo naprijed, koristite videopozive sa cijelim timom. Zapravo, pozovite sve koje znate. {{app}} je potpuno \u0161ifrirano, videokonferencijsko rje\u0161enje 100% otvorenog koda koje mo\u017eete koristiti cijeli dan, svaki dan, besplatno - bez potrebe za ra\u010dunom.",audioVideoSwitch:{audio:"Glas",video:"Videozapis"},calendar:"Kalendar",connectCalendarButton:"Pove\u017eite svoj kalendar",connectCalendarText:"Pove\u017eite svoj kalendar da biste vidjeli sve svoje sastanke u {{app}}. Osim toga, dodajte {{provider}} sastanke u svoj kalendar i pokrenite ih jednim klikom.",enterRoomTitle:"Zapo\u010dnite novi sastanak",go:"KRENI",join:"U\u0110I",info:"",privacy:"Privatnost",recentList:"Nedavni",recentListDelete:"Izbri\u0161i",recentListEmpty:"Va\u0161 popis nedavnih razgovora je prazan. \u010cavrljajte sa svojim timom i ovdje \u0107ete prona\u0107i popis nedavnih sastanaka.",reducedUIText:"",roomname:"Unesi naziv sobe",roomnameHint:"Unesite naziv ili URL sobe koju \u017eelite pridru\u017eiti. Mo\u017eete izmijeniti ime, samo neka ljudi s kojima se sastajete to znaju kako bi unijeli isto ime.",sendFeedback:"Po\u0161aljite povratnu informaciju",terms:"Uvjeti",title:"Sigurna, potpuno opremljena i potpuno besplatna videokonferencija"}}},665,[]); -__d(function(a,n,r,i,e,l,o){e.exports={en:"angol",af:"afrikaans",bg:"bolg\xe1r",ca:"katal\xe1n",cs:"cseh",de:"n\xe9met",el:"g\xf6r\xf6g",enGB:"angol (Egyes\xfclt Kir\xe1lys\xe1g)",eo:"eszperant\xf3",es:"spanyol",esUS:"spanyol (Latin-Amerika)",fi:"finn",fr:"francia",frCA:"francia (kanadai)",hr:"horv\xe1t",hy:"\xf6rm\xe9ny",it:"olasz",ja:"jap\xe1n",ko:"koreai",nl:"holland",oc:"okszit\xe1n",pl:"lengyel",ptBR:"portug\xe1l (Brazil)",ru:"orosz",sv:"sv\xe9d",tr:"t\xf6r\xf6k",vi:"vietn\xe1mi",zhCN:"k\xednai (K\xedna)",zhTW:"k\xednai (Tajvan)"}},666,[]); -__d(function(e,t,a,l,s,n,o){s.exports={addPeople:{add:"Megh\xedv\xe1s",countryNotSupported:"Ez a c\xe9l\xe1llom\xe1s jelenleg nem t\xe1mogatott.",countryReminder:"Ez USA-n k\xedv\xfcli h\xedv\xe1s? Orsz\xe1gh\xedv\xf3sz\xe1mmal kell kezd\u0151dnie!",disabled:"Nem h\xedvhat meg senkit.",failedToAdd:"Nem siker\xfclt a r\xe9sztvev\u0151k hozz\xe1ad\xe1sa",footerText:"A k\xfcls\u0151 t\xe1rcs\xe1z\xe1s le van tiltva. ",loading:"Szem\xe9lyek \xe9s telefonsz\xe1maik keres\xe9se",loadingNumber:"Telefonsz\xe1m ellen\u0151rz\xe9se",loadingPeople:"Megh\xedvhat\xf3 szem\xe9lyek keres\xe9se",noResults:"Nincs tal\xe1lat a keres\xe9sre",noValidNumbers:"Adjon meg egy telefonsz\xe1mot",searchNumbers:"Telefonsz\xe1mok hozz\xe1ad\xe1sa",searchPeople:"Szem\xe9lyek keres\xe9se",searchPeopleAndNumbers:"Szem\xe9lyek keres\xe9se vagy telefonsz\xe1maik hozz\xe1ad\xe1sa",telephone:"Telefon: {{number}}",title:"Szem\xe9lyek megh\xedv\xe1sa az \xe9rtekezletre"},audioDevices:{bluetooth:"Bluetooth",headphones:"Fejhallgat\xf3",phone:"Telefon",speaker:"Hangsz\xf3r\xf3",none:"Nincsenek el\xe9rhet\u0151 hangeszk\xf6z\xf6k"},audioOnly:{audioOnly:"Alacsony s\xe1vsz\xe9less\xe9g"},calendarSync:{addMeetingURL:"\xc9rtekezlet hivatkoz\xe1s\xe1nak hozz\xe1ad\xe1sa",confirmAddLink:"Hozz\xe1adhat\xf3 egy Jitsi hivatkoz\xe1s az esem\xe9nyhez?",error:{appConfiguration:"A napt\xe1rintegr\xe1ci\xf3 nincs helyesen konfigur\xe1lva.",generic:"Hiba t\xf6rt\xe9nt. Ellen\u0151rizze a napt\xe1r be\xe1ll\xedt\xe1sait vagy pr\xf3b\xe1lja friss\xedteni a napt\xe1rat.",notSignedIn:"Hiba t\xf6rt\xe9nt a napt\xe1r esem\xe9nyeihez val\xf3 hozz\xe1f\xe9r\xe9shez sz\xfcks\xe9ges azonos\xedt\xe1s sor\xe1n. Ellen\u0151rizze a napt\xe1r be\xe1ll\xedt\xe1sait \xe9s pr\xf3b\xe1ljon meg \xfajra bel\xe9pni."},join:"R\xe9szv\xe9tel",joinTooltip:"Bekapcsol\xf3d\xe1s az \xe9rtekezletbe",nextMeeting:"k\xf6vetkez\u0151 \xe9rtekezlet",noEvents:"Nincs k\xf6vetkez\u0151 \xfctemezett \xe9rtekezlet.",ongoingMeeting:"folyamatban l\xe9v\u0151 \xe9rtekezlet",permissionButton:"Be\xe1ll\xedt\xe1sok megnyit\xe1sa",permissionMessage:"A napt\xe1r enged\xe9lyez\xe9se sz\xfcks\xe9ges az \xe9rtekezletek applik\xe1ci\xf3ban val\xf3 megtekint\xe9s\xe9hez.",refresh:"Napt\xe1r friss\xedt\xe9se",today:"Ma"},chat:{error:"Hiba: Az \xfczenet \u201e{{originalText}}\u201d nem lett elk\xfcldve. Ok: {{error}}",messagebox:"\xcdrja be az \xfczenetet",nickname:{popover:"Becen\xe9v kiv\xe1laszt\xe1sa",title:"Adjon meg egy becenevet a cseveg\xe9s sz\xe1m\xe1ra"},title:"Cseveg\xe9s"},connectingOverlay:{joiningRoom:"Kapcsol\xf3d\xe1s az \xe9rtekezlethez..."},connection:{ATTACHED:"Kapcsol\xf3dva",AUTHENTICATING:"Azonos\xedt\xe1s",AUTHFAIL:"Hiteles\xedt\xe9s meghi\xfasult",CONNECTED:"Kapcsol\xf3dva",CONNECTING:"Kapcsol\xf3d\xe1s",CONNFAIL:"A kapcsolat meghi\xfasult",DISCONNECTED:"Sz\xe9tkapcsolva",DISCONNECTING:"Sz\xe9tkapcsol\xf3d\xe1s",ERROR:"Hiba",RECONNECTING:"H\xe1l\xf3zati hiba t\xf6rt\xe9nt. \xdajracsatlakoz\xe1s..."},connectionindicator:{address:"C\xedm:",bandwidth:"Becs\xfclt s\xe1vsz\xe9less\xe9g:",bitrate:"Bitsebess\xe9g:",bridgeCount:"Kiszolg\xe1l\xf3 sz\xe1ma: ",connectedTo:"Kapcsol\xf3dva ehhez:",framerate:"K\xe9pkockasebess\xe9g:",less:"Kevesebb megjelen\xedt\xe9se",localaddress:"Helyi c\xedm:",localaddress_plural:"Helyi c\xedmek:",localport:"Helyi port:",localport_plural:"Helyi portok:",more:"T\xf6bb megjelen\xedt\xe9se",packetloss:"Csomagveszt\xe9s:",quality:{good:"J\xf3",inactive:"Inakt\xedv",lost:"Elveszett",nonoptimal:"Nem optim\xe1lis",poor:"Sil\xe1ny"},remoteaddress:"T\xe1voli c\xedm:",remoteaddress_plural:"T\xe1voli c\xedmek:",remoteport:"T\xe1voli port:",remoteport_plural:"T\xe1voli portok:",resolution:"Felbont\xe1s:",status:"Kapcsolat:",transport:"\xc1tvitel:",transport_plural:"\xc1tvitel:"},dateUtils:{earlier:"Kor\xe1bban",today:"Ma",yesterday:"Tegnap"},deepLinking:{appNotInstalled:"Sz\xfcks\xe9g van a {{app}} mobilapplik\xe1ci\xf3ra az \xe9rtekezlethez val\xf3 telefonos csatlakoz\xe1sra.",description:"Semmi sem t\xf6rt\xe9nt? Megpr\xf3b\xe1ltuk az \xe9rtekezletet a {{app}} asztali alkalmaz\xe1sban elind\xedtani. Pr\xf3b\xe1lja ezt \xfajra vagy a {{app}} webes applik\xe1ci\xf3ban ind\xedtani.",descriptionWithoutWeb:"Semmi sem t\xf6rt\xe9nt? Megpr\xf3b\xe1ltuk az \xe9rtekezletet a {{app}} asztali alkalmaz\xe1sban elind\xedtani.",downloadApp:"Applik\xe1ci\xf3 let\xf6lt\xe9se",launchWebButton:"Ind\xedt\xe1s weben",openApp:"Tov\xe1bbl\xe9p\xe9s az applik\xe1ci\xf3hoz",title:"\xc9rtekezlet ind\xedt\xe1sa a {{app}} applik\xe1ci\xf3ban...",tryAgainButton:"\xdajb\xf3li pr\xf3b\xe1lkoz\xe1s az asztali v\xe1ltozatban"},defaultLink:"pl.: {{url}}",defaultNickname:"pl.: Minta Mikl\xf3s",deviceError:{cameraError:"A kamer\xe1hoz val\xf3 hozz\xe1f\xe9r\xe9s meghi\xfasult",cameraPermission:"Hiba t\xf6rt\xe9nt a kamera enged\xe9lyeztet\xe9se sor\xe1n",microphoneError:"A mikrofonhoz val\xf3 hozz\xe1f\xe9r\xe9s meghi\xfasult",microphonePermission:"Hiba t\xf6rt\xe9nt a mikrofon enged\xe9lyeztet\xe9se sor\xe1n"},deviceSelection:{noPermission:"Nem lett enged\xe9lyezve",previewUnavailable:"Nincs el\u0151n\xe9zet",selectADevice:"Eszk\xf6z kijel\xf6l\xe9se",testAudio:"Teszthang lej\xe1tsz\xe1sa"},dialog:{accessibilityLabel:{liveStreaming:"\xc9l\u0151 k\xf6zvet\xedt\xe9s"},allow:"Enged\xe9lyez",alreadySharedVideoMsg:"Egy m\xe1sik r\xe9sztvev\u0151 is vide\xf3t oszt meg. E konferencia sz\xe1m\xe1ra csak egy vide\xf3megoszt\xe1s enged\xe9lyezett.",alreadySharedVideoTitle:"Egyszerre csak egy vide\xf3megoszt\xe1s enged\xe9lyez\xe9se",applicationWindow:"Alkalmaz\xe1sablak",Back:"Vissza",cameraConstraintFailedError:"A kamera nem felel meg bizonyos kik\xf6t\xe9seknek.",cameraNotFoundError:"Nem tal\xe1lhat\xf3 kamera.",cameraNotSendingData:"Nem siker\xfclt hozz\xe1f\xe9rni kamer\xe1hoz. K\xe9rem, ellen\u0151rizze, hogy egy m\xe1sik alkalmaz\xe1s nem haszn\xe1lja-e a kamer\xe1t, vagy tess\xe9k egy m\xe1sik eszk\xf6z kijel\xf6lni a be\xe1ll\xedt\xe1sok men\xfcben vagy esetleg \xe9rdemes \xfajrat\xf6lteni az applik\xe1ci\xf3t.",cameraNotSendingDataTitle:"Nem lehet hozz\xe1f\xe9rni a kamer\xe1hoz",cameraPermissionDeniedError:"Nem adott enged\xe9lyt a kamera haszn\xe1lat\xe1hoz. Csatlakozhat a besz\xe9lget\xe9shez, de a t\xf6bbiek nem fogj\xe1k \xd6nt l\xe1tni. A c\xedmsorban l\xe9v\u0151 kamera ikonnal lehet ezt helyrehozni.",cameraUnknownError:"Ismeretlen ok miatt nem lehet a kamer\xe1t haszn\xe1lni.",cameraUnsupportedResolutionError:"A kamera nem t\xe1mogatja a sz\xfcks\xe9ges vide\xf3felbont\xe1st.",Cancel:"M\xe9gse",close:"Bez\xe1r\xe1s",conferenceDisconnectMsg:"Ellen\u0151rizni kellene a h\xe1l\xf3zati kapcsolatokat. \xdajracsatlakoz\xe1s {{seconds}} m\xe1sodperc m\xfalva...",conferenceDisconnectTitle:"Lecsatlakozott.",conferenceReloadMsg:"Pr\xf3b\xe1lkoz\xe1s a hiba jav\xedt\xe1s\xe1ra. \xdajracsatlakoz\xe1s {{seconds}} m\xe1sodperc m\xfalva...",conferenceReloadTitle:"Sajnos valami f\xe9lresiker\xfclt.",confirm:"Meger\u0151s\xedt\xe9s",confirmNo:"Nem",confirmYes:"Igen",connectError:"Hopp\xe1! Valami elromlott \xe9s nem lehetett kapcsol\xf3dni a konferenci\xe1hoz.",connectErrorWithMsg:"Hopp\xe1! Valami elromlott \xe9s nem lehetett kapcsol\xf3dni a konferenci\xe1hoz: {{msg}}",connecting:"Kapcsol\xf3d\xe1s",contactSupport:"\xdcgyf\xe9lszolg\xe1lat",copy:"M\xe1sol\xe1s",dismiss:"Elutas\xedt\xe1s",displayNameRequired:"Mi a neve?",done:"K\xe9sz",enterDisplayName:"Adja meg itt a nev\xe9t",error:"Hiba",externalInstallationMsg:"Telep\xedteni kell a munkaasztal megoszt\xe1s\xe1ra val\xf3 kiterjeszt\xe9st.",externalInstallationTitle:"Kiterjeszt\xe9sre van sz\xfcks\xe9g",goToStore:"Az alkalmaz\xe1sbolthoz",gracefulShutdown:"Jelenleg a szolg\xe1ltat\xe1s karbantart\xe1s miatt nem el\xe9rhet\u0151. K\xe9s\u0151bb \xe9rdemes pr\xf3b\xe1lkozni.",IamHost:"\xc9n vagyok a szervez\u0151",incorrectRoomLockPassword:"Helytelen jelsz\xf3",incorrectPassword:"Helytelen felhaszn\xe1l\xf3i n\xe9v \xe9s jelsz\xf3",inlineInstallationMsg:"Telep\xedteni kell a munkaasztal megoszt\xe1s\xe1ra val\xf3 kiterjeszt\xe9st.",inlineInstallExtension:"Telep\xedt\xe9s azonnal",internalError:"Hopp\xe1! Valami elromlott. Az al\xe1bbi hiba t\xf6rt\xe9nt: {{error}}",internalErrorTitle:"Bels\u0151 hiba",kickMessage:"Tov\xe1bbi r\xe9szletek a r\xe9sztvev\u0151t\u0151l k\xe9rhet\u0151k: {{participantDisplayName}}.",kickParticipantButton:"Kir\xfag\xe1s",kickParticipantDialog:"Val\xf3ban kir\xfaghat\xf3 ez a r\xe9sztvev\u0151?",kickParticipantTitle:"R\xe9sztvev\u0151 kir\xfag\xe1sa?",kickTitle:"Jaj! {{participantDisplayName}} kir\xfagta \xd6nt az \xe9rtekezletr\u0151l",liveStreaming:"\xc9l\u0151 k\xf6zvet\xedt\xe9s",liveStreamingDisabledForGuestTooltip:"A vend\xe9gek nem kezdhetnek \xe9l\u0151 k\xf6zvet\xedt\xe9st.",liveStreamingDisabledTooltip:"Az \xe9l\u0151 k\xf6zvet\xedt\xe9s ind\xedt\xe1sa le van tiltva.",lockMessage:"A konferencia z\xe1rol\xe1sa meghi\xfasult.",lockRoom:"\xc9rtekezlet $t(lockRoomPasswordUppercase) hozz\xe1ad\xe1sa",lockTitle:"Z\xe1rol\xe1s meghi\xfasult",logoutQuestion:"Val\xf3ban ki akar l\xe9pni \xe9s le\xe1ll\xedtani a konferenci\xe1t?",logoutTitle:"Kil\xe9p\xe9s",maxUsersLimitReached:"A lehets\xe9ges r\xe9sztvev\u0151k maxim\xe1lis sz\xe1ma el\xe9rve, a konferencia tele van. L\xe9pj kapcsolatba az \xe9rtekezlet tulajdonos\xe1val vagy pr\xf3b\xe1lkozz k\xe9s\u0151bb.",maxUsersLimitReachedTitle:"A lehets\xe9ges r\xe9sztvev\u0151k maxim\xe1lis sz\xe1ma el\xe9rve",micConstraintFailedError:"A mikrofon nem felel meg bizonyos kik\xf6t\xe9seknek.",micNotFoundError:"Nem tal\xe1lhat\xf3 mikrofon.",micNotSendingData:"A sz\xe1m\xedt\xf3g\xe9p be\xe1ll\xedt\xe1sai k\xf6z\xf6tt kell visszahangos\xedtani a mikrofont vagy be\xe1ll\xedtani a hangfelv\xe9tel szintj\xe9t",micNotSendingDataTitle:"A mikrofon le van n\xe9m\xedtva a rendszerbe\xe1ll\xedt\xe1sokban",micPermissionDeniedError:"Nem adott enged\xe9lyt a mikrofon haszn\xe1lat\xe1hoz. Csatlakozhat a besz\xe9lget\xe9shez, de a t\xf6bbiek nem fogj\xe1k \xd6nt hallani. A c\xedmsorban l\xe9v\u0151 kamera ikonnal lehet ezt helyrehozni.",micUnknownError:"Ismeretlen ok miatt nem lehet a mikrofont haszn\xe1lni.",muteParticipantBody:"Visszahangos\xedtani nem fogja tudni, de \u0151 \xf6nmag\xe1t b\xe1rmikor vissza tudja majd hangos\xedtani.",muteParticipantButton:"N\xe9m\xedt\xe1s",muteParticipantDialog:"Val\xf3ban len\xe9m\xedthat\xf3 ez a r\xe9sztvev\u0151? Visszahangos\xedtani nem fogja tudni, de \u0151 \xf6nmag\xe1t b\xe1rmikor vissza tudja majd hangos\xedtani.",muteParticipantTitle:"Len\xe9m\xedthat\xf3 a r\xe9sztvev\u0151?",Ok:"Ok",passwordLabel:"$t(lockRoomPasswordUppercase)",passwordNotSupported:"Az \xe9rtekezlet $t(lockRoomPassword) be\xe1ll\xedt\xe1sa nem t\xe1mogatott.",passwordNotSupportedTitle:"$t(lockRoomPasswordUppercase) nem t\xe1mogatott",passwordRequired:"$t(lockRoomPasswordUppercase) sz\xfcks\xe9ges",popupError:"A b\xf6ng\xe9sz\u0151 blokkolja a felugr\xf3 ablakokat ezen az oldalon. Enged\xe9lyezze a b\xf6ng\xe9sz\u0151 biztons\xe1gi be\xe1ll\xedt\xe1saiban a felugr\xf3 ablakokat \xe9s pr\xf3b\xe1lja \xfajra.",popupErrorTitle:"Felugr\xf3 ablak blokkolva",recording:"Felv\xe9tel",recordingDisabledForGuestTooltip:"Vend\xe9g nem ind\xedthat felv\xe9telt.",recordingDisabledTooltip:"Felv\xe9tel r\xf6gz\xedt\xe9se letiltva.",rejoinNow:"\xdajracsatlakoz\xe1s azonnal",remoteControlAllowedMessage:"{{user}} elfogadta az \xd6n t\xe1voli vez\xe9rl\xe9si k\xe9r\xe9s\xe9t!",remoteControlDeniedMessage:"{{user}} visszautas\xedtotta az \xd6n t\xe1voli vez\xe9rl\xe9si k\xe9r\xe9s\xe9t!",remoteControlErrorMessage:"Hiba t\xf6rt\xe9nt a r\xe9sztvev\u0151h\xf6z ({{user}}) int\xe9zett t\xe1voli vez\xe9rl\xe9si k\xe9r\xe9s k\xfcld\xe9se k\xf6zben!",remoteControlRequestMessage:"Enged\xe9lyezi {{user}} r\xe9sztvev\u0151nek, hogy t\xe1volr\xf3l vez\xe9relje a munkaasztalt?",remoteControlShareScreenWarning:"Figyelem! Az \u201eenged\xe9lyez\xe9s\u201d gomb lenyom\xe1sakor a k\xe9perny\u0151 megoszt\xe1sra ker\xfcl!",remoteControlStopMessage:"A t\xe1voli munkamenet ir\xe1ny\xedt\xe1sa befejez\u0151d\xf6tt!",remoteControlTitle:"T\xe1voli asztal vez\xe9rl\xe9se",Remove:"Elt\xe1vol\xedt\xe1s",removePassword:"$t(lockRoomPassword) elt\xe1vol\xedt\xe1sa",removeSharedVideoMsg:"Val\xf3ban elt\xe1vol\xedthat\xf3 a megosztott vide\xf3?",removeSharedVideoTitle:"Megosztott vide\xf3 elt\xe1vol\xedt\xe1sa",reservationError:"Foglal\xe1si rendszerhiba",reservationErrorMsg:"Hibak\xf3d: {{code}}, \xfczenet: {{msg}}",retry:"\xdajra",screenSharingFailedToInstall:"Hopp\xe1! A k\xe9perny\u0151megoszt\xf3 kiterjeszt\xe9s telep\xedt\xe9se meghi\xfasult.",screenSharingFailedToInstallTitle:"A k\xe9perny\u0151megoszt\xf3 kiterjeszt\xe9s telep\xedt\xe9se meghi\xfasult",screenSharingFirefoxPermissionDeniedError:"Valami elromlott a k\xe9perny\u0151megoszt\xe1s ind\xedt\xe1sa k\xf6zben. Ellen\u0151rizze, hogy megadta-e a sz\xfcks\xe9ges enged\xe9lyeket.",screenSharingFirefoxPermissionDeniedTitle:"Hopp\xe1! Nem siker\xfclt a k\xe9perny\u0151megoszt\xe1s ind\xedt\xe1sa!",screenSharingPermissionDeniedError:"Hopp\xe1! Valami elromlott a k\xe9perny\u0151megoszt\xe1s kiterjeszt\xe9s jogosults\xe1gaival. T\xf6ltse \xfajra \xe9s k\xeds\xe9relje meg \xfajra.",serviceUnavailable:"Szolg\xe1ltat\xe1s nem el\xe9rhet\u0151",sessTerminated:"H\xedv\xe1s megszakadt",Share:"Megoszt\xe1s",shareVideoLinkError:"Adjon meg egy helyes YouTube linket.",shareVideoTitle:"Vide\xf3 megoszt\xe1sa",shareYourScreen:"K\xe9perny\u0151 megoszt\xe1sa",shareYourScreenDisabled:"K\xe9perny\u0151megoszt\xe1s letiltva.",shareYourScreenDisabledForGuest:"Vend\xe9g nem v\xe9gezhet k\xe9perny\u0151megoszt\xe1st.",startLiveStreaming:"\xc9l\u0151 k\xf6zvet\xedt\xe9s kezd\xe9se",startRecording:"Felv\xe9tel ind\xedt\xe1sa",startRemoteControlErrorMessage:"Hiba t\xf6rt\xe9nt a t\xe1voli vez\xe9rl\xe9s munkamenet\xe9nek ind\xedt\xe1sa k\xf6zben!",stopLiveStreaming:"\xc9l\u0151 k\xf6zvet\xedt\xe9s le\xe1ll\xedt\xe1sa",stopRecording:"Felv\xe9tel le\xe1ll\xedt\xe1sa",stopRecordingWarning:"Val\xf3ban le\xe1ll\xedthat\xf3 a felv\xe9tel?",stopStreamingWarning:"Val\xf3ban le\xe1ll\xedthat\xf3 az \xe9l\u0151 k\xf6zvet\xedt\xe9s?",streamKey:"\xc9l\u0151 k\xf6zvet\xedt\xe9s kulcsa",Submit:"Elk\xfcld\xe9s",thankYou:"K\xf6sz\xf6nj\xfck a {{appName}} haszn\xe1lat\xe1t!",token:"jelsor",tokenAuthFailed:"Sajn\xe1ljuk, a csatlakoz\xe1sa nem megengedett ehhez a h\xedv\xe1shoz.",tokenAuthFailedTitle:"Hiteles\xedt\xe9s meghi\xfasult",transcribing:"\xc1tirat k\xe9sz\xedt\xe9se",unlockRoom:"\xc9rtekezlet $t(lockRoomPassword) elt\xe1vol\xedt\xe1sa",userPassword:"felhaszn\xe1l\xf3i jelsz\xf3",WaitForHostMsg:"A konferencia m\xe9g nem kezd\u0151d\xf6tt meg: {{room}}. Ha \xd6n a h\xe1zigazda, akkor hiteles\xedtse mag\xe1t. Ellenkez\u0151 esetben, k\xe9rj\xfck v\xe1rjon a h\xe1zigazda \xe9rkez\xe9s\xe9re.",WaitForHostMsgWOk:"A konferencia m\xe9g nem kezd\u0151d\xf6tt meg: {{room}}. Ha \xd6n a h\xe1zigazda, k\xe9rj\xfck az \u201eOK\u201d gombra kattintva hiteles\xedtse mag\xe1t. Ellenkez\u0151 esetben, k\xe9rj\xfck v\xe1rjon a h\xe1zigazda \xe9rkez\xe9s\xe9re.",WaitingForHost:"V\xe1rakoz\xe1s a h\xe1zigazd\xe1ra...",Yes:"Igen",yourEntireScreen:"A teljes k\xe9perny\u0151"},dialOut:{statusMessage:"jelenleg {{status}}"},feedback:{average:"\xc1tlag",bad:"Rossz",detailsLabel:"Osszon meg vel\xfcnk t\xf6bbet err\u0151l.",good:"J\xf3",rateExperience:"\xc9rt\xe9keld az \xe9rtekezlet \xe9lm\xe9ny\xe9t",veryBad:"Nagyon rossz",veryGood:"Nagyon j\xf3"},incomingCall:{answer:"V\xe1lasz",audioCallTitle:"Bej\xf6v\u0151 h\xedv\xe1s",decline:"Elutas\xedt\xe1s",productLabel:"a Jitsi Meett\u0151l",videoCallTitle:"Bej\xf6v\u0151 vide\xf3h\xedv\xe1s"},info:{accessibilityLabel:"Inform\xe1ci\xf3k megjelen\xedt\xe9se",addPassword:"$t(lockRoomPassword) hozz\xe1ad\xe1sa",cancelPassword:"$t(lockRoomPassword) t\xf6rl\xe9se",conferenceURL:"Hivatkoz\xe1s:",country:"Orsz\xe1g",dialANumber:"Az \xe9rtekezlethez val\xf3 csatlakoz\xe1shoz ezeket a sz\xe1mokat kell felt\xe1rcs\xe1zni \xe9s a PIN-k\xf3dot megadni.",dialInConferenceID:"PIN-k\xf3d:",dialInNotSupported:"Sajn\xe1ljuk, a t\xe1rcs\xe1z\xe1s jelenleg nem t\xe1mogatott.",dialInNumber:"Bet\xe1rcs\xe1z\xe1s:",dialInSummaryError:"Hiba a bet\xe1rcs\xe1z\xe1si inform\xe1ci\xf3k lek\xe9rdez\xe9se k\xf6zben. K\xe9s\u0151bb \xe9rdemes \xfajra pr\xf3b\xe1lkozni.",dialInTollFree:"Ingyenes",genericError:"Hopp\xe1, valami elromlott.",inviteLiveStream:"Az \xe9rtekezlet \xe9l\u0151 k\xf6zvet\xedt\xe9s\xe9nek megtekint\xe9se: {{url}}",invitePhone:"Telefonr\xf3l val\xf3 csatlakoz\xe1shoz ezeket kell t\xe1rcs\xe1zni: {{number}},,{{conferenceID}}#\n",invitePhoneAlternatives:"M\xe1s bet\xe1rcs\xe1z\xe1si sz\xe1mot keres?\nL\xe1sd az \xe9rtekezlet bet\xe1rcs\xe1z\xe1si sz\xe1mait: {{url}}\n\n\nHa termi telefonon kereszt\xfcl t\xe1rcs\xe1z, csatlakozhat hang n\xe9lk\xfcl is: {{silentUrl}}",inviteURLFirstPartGeneral:"Meg lett h\xedvva egy \xe9rtekezletre.",inviteURLFirstPartPersonal:"{{name}} megh\xedvta \xd6nt egy \xe9rtekezletre.\n",inviteURLSecondPart:"\nCsatlakoz\xe1s az \xe9rtekezlethez:\n{{url}}\n",liveStreamURL:"\xc9l\u0151 k\xf6zvet\xedt\xe9s:",moreNumbers:"Tov\xe1bbi sz\xe1mok",noNumbers:"Nincsenek bet\xe1rcs\xe1z\xe1si sz\xe1mok.",noPassword:"Nincs",noRoom:"Nem volt terem megadva, amelybe be lehetne l\xe9pni.",numbers:"Bet\xe1rcs\xe1z\xe1si sz\xe1mok",password:"$t(lockRoomPasswordUppercase):",title:"Megoszt\xe1s",tooltip:"Az \xe9rtekezlet hivatkoz\xe1s\xe1nak \xe9s beh\xedv\xf3 inform\xe1ci\xf3inak megoszt\xe1sa",label:"\xc9rtekezlet inform\xe1ci\xf3i"},inviteDialog:{alertText:"N\xe9h\xe1ny r\xe9sztvev\u0151 megh\xedv\xe1sa meghi\xfasult.",header:"Megh\xedv\xe1s",searchCallOnlyPlaceholder:"Telefonsz\xe1m megad\xe1sa",searchPeopleOnlyPlaceholder:"R\xe9sztvev\u0151k keres\xe9se",searchPlaceholder:"R\xe9sztvev\u0151 vagy telefonsz\xe1m",send:"K\xfcld\xe9s"},inlineDialogFailure:{msg:"Hiba t\xf6rt\xe9nt.",retry:"\xdajrapr\xf3b\xe1lkoz\xe1s",support:"T\xe1mogat\xe1s",supportMsg:"Ism\xe9telt hiba eset\xe9n \xe9rdemes kapcsolatba l\xe9pnie"},keyboardShortcuts:{focusLocal:"F\xf3kusz a saj\xe1t vide\xf3mra",focusRemote:"F\xf3kusz egy m\xe1sik szem\xe9ly vide\xf3j\xe1ra",fullScreen:"Bel\xe9p\xe9s vagy kil\xe9p\xe9s a teljes k\xe9perny\u0151b\u0151l",keyboardShortcuts:"Gyorsbillenty\u0171k",localRecording:"Helyi r\xf6gz\xedt\xe9si vez\xe9rl\u0151elemek megjelen\xedt\xe9se vagy elrejt\xe9se",mute:"Mikrofon n\xe9m\xedt\xe1sa vagy visszahangos\xedt\xe1sa",pushToTalk:"Nyomd a cseveg\xe9shez",raiseHand:"K\xe9z felemel\xe9se vagy leenged\xe9se",showSpeakerStats:"Besz\xe9d statisztik\xe1k megjelen\xedt\xe9se",toggleChat:"Cseveg\xe9s megnyit\xe1sa vagy bez\xe1r\xe1sa",toggleFilmstrip:"Vide\xf3b\xe9lyegk\xe9pek megjelen\xedt\xe9se vagy elrejt\xe9se",toggleScreensharing:"V\xe1lt\xe1s kamera \xe9s k\xe9perny\u0151megoszt\xe1s k\xf6z\xf6tt",toggleShortcuts:"Gyorsbillenty\u0171k megjelen\xedt\xe9se vagy elrejt\xe9se",videoMute:"Kamera elind\xedt\xe1sa vagy le\xe1ll\xedt\xe1sa",videoQuality:"H\xedv\xe1s min\u0151s\xe9g\xe9nek kezel\xe9se"},liveStreaming:{busy:"Dolgozunk a k\xf6zvet\xedt\xe9si er\u0151forr\xe1sok felszabad\xedt\xe1s\xe1n. K\xeds\xe9relje meg \xfajra n\xe9h\xe1ny perc m\xfalva.",busyTitle:"Jelenleg minden k\xf6zvet\xedt\u0151 foglalt",changeSignIn:"Fi\xf3k v\xe1lt\xe1sa.",choose:"\xc9l\u0151 k\xf6zvet\xedt\xe9s kijel\xf6l\xe9se",chooseCTA:"V\xe1lasszon egy k\xf6zvet\xedt\xe9si opci\xf3t. \xd6n jelenleg {{email}} c\xedmmel van bel\xe9pve.",enterStreamKey:"Adja meg itt a YouTube \xe9l\u0151 k\xf6zvet\xedt\xe9si kulcsot.",error:"Az \xe9l\u0151 k\xf6zvet\xedt\xe9s meghi\xfasult. Pr\xf3b\xe1lja \xfajra.",errorAPI:"Hiba t\xf6rt\xe9nt a YouTube ad\xe1s el\xe9r\xe9se k\xf6zben. Pr\xf3b\xe1ljon meg \xfajra bel\xe9pni.",errorLiveStreamNotEnabled:"Az \xe9l\u0151 k\xf6zvet\xedt\xe9s nincs enged\xe9lyezve ezzel az email c\xedmmel: {{email}}. Enged\xe9lyezze az \xe9l\u0151 k\xf6zvet\xedt\xe9st vagy l\xe9pjen be egy m\xe1sik felhaszn\xe1l\xf3val, ahol az enged\xe9lyezve van.",expandedOff:"Az \xe9l\u0151 k\xf6zvet\xedt\xe9s le\xe1llt",expandedOn:"Az \xe9rtekezlet jelenleg k\xf6zvet\xedtve van a YouTube-on.",expandedPending:"Az \xe9lv\u0151 k\xf6zvet\xedt\xe9s elindult...",failedToStart:"Az \xe9lv\u0151 k\xf6zvet\xedt\xe9s ind\xedt\xe1sa meghi\xfasult",getStreamKeyManually:"Nem lehet semmilyen \xe9l\u0151 k\xf6zvet\xedt\xe9st let\xf6lteni. Az \xe9l\u0151 k\xf6zvet\xedt\xe9shez sz\xfcks\xe9ges kulcsot a Youtube-t\xf3l lehet beszerezni.",invalidStreamKey:"Az \xe9l\u0151 k\xf6zvet\xedt\xe9si kulcs val\xf3sz\xedn\u0171leg hib\xe1s.",off:"\xc9l\u0151 k\xf6zvet\xedt\xe9s le\xe1llt",offBy:"{{name}} le\xe1ll\xedtotta az \xe9l\u0151 k\xf6zvet\xedt\xe9st",on:"\xc9l\u0151 k\xf6zvet\xedt\xe9s",onBy:"{{name}} elind\xedtotta az \xe9l\u0151 k\xf6zvet\xedt\xe9st",pending:"\xc9l\u0151 k\xf6zvet\xedt\xe9s kezd\xe9se...",serviceName:"\xc9l\u0151 k\xf6zvet\xedt\xe9si szolg\xe1ltat\xe1s",signedInAs:"Jelenleg bejelentkezve mint: ",signIn:"Bejelentkez\xe9s a Google-lel",signInCTA:"Jelentkezzen be vagy adja meg a \xe9l\u0151 k\xf6zvet\xedt\xe9si kulcsot a YouTube-r\xf3l.",signOut:"Kil\xe9p\xe9s",start:"\xc9l\u0151 k\xf6zvet\xedt\xe9s kezd\xe9se",streamIdHelp:"Mi ez?",unavailableTitle:"\xc9l\u0151 k\xf6zvet\xedt\xe9s el\xe9rhetetlen"},localRecording:{clientState:{off:"Kikapcsolva",on:"Bekapcsolva",unknown:"Ismeretlen"},dialogTitle:"Helyi felv\xe9tel vez\xe9rl\u0151elemei",duration:"Hossz",durationNA:"nincs",encoding:"K\xf3dol\xe1s",label:"HeR",labelToolTip:"Helyi felv\xe9tel aktiv\xe1lva",localRecording:"Helyi felv\xe9tel",me:"\xc9n",messages:{engaged:"Helyi felv\xe9tel aktiv\xe1lva.",finished:"A r\xf6gz\xedt\xe9si munkamenet befejez\u0151d\xf6tt: {{token}}. K\xfcldje el a r\xf6gz\xedtett f\xe1jlt a moder\xe1tornak.",finishedModerator:"A r\xf6gz\xedt\xe9si munkamenet befejez\u0151d\xf6tt: {{token}}. A helyi s\xe1v r\xf6gz\xedt\xe9sre ker\xfclt. K\xe9rje el a t\xf6bbi r\xe9sztvev\u0151t\u0151l, amit r\xf6gz\xedtettek.",notModerator:"\xd6n nem moder\xe1tor. Nem tudja elind\xedtani vagy le\xe1ll\xedtani a helyi felv\xe9telt."},moderator:"Moder\xe1tor",no:"Nem",participant:"R\xe9sztvev\u0151",participantStats:"R\xe9sztvev\u0151i statisztika",sessionToken:"Munkamenet jelsor",start:"Felv\xe9tel ind\xedt\xe1sa",stop:"Felv\xe9tel le\xe1ll\xedt\xe1sa",yes:"Igen"},lockRoomPassword:"jelsz\xf3",lockRoomPasswordUppercase:"Jelsz\xf3",me:"\xe9n",notify:{connectedOneMember:"{{name}} bekapcsol\xf3dott az \xe9rtekezletbe",connectedThreePlusMembers:"{{name}} \xe9s {{count}} m\xe1sik r\xe9sztvev\u0151 kapcsol\xf3dott az \xe9rtekezlethez",connectedTwoMembers:"{{first}} \xe9s {{second}} bekapcsol\xf3dott az \xe9rtekezletbe",disconnected:"sz\xe9tkapcsolva",focus:"Konferencia f\xf3kusza",focusFail:"{{component}} nem el\xe9rhet\u0151 \u2013 \xfajrapr\xf3b\xe1lkoz\xe1s {{ms}} m\xe1sodperc m\xfalva",grantedTo:"Moder\xe1tori jogok biztos\xedtva {{to}} sz\xe1m\xe1ra!",invitedOneMember:"{{name}} meg lett h\xedvva",invitedThreePlusMembers:"{{name}} \xe9s {{count}} m\xe1sik felhaszn\xe1l\xf3 meg lett h\xedvva",invitedTwoMembers:"{{first}} \xe9s {{second}} lett megh\xedvva",kickParticipant:"{{kicked}} r\xe9sztvev\u0151t kir\xfagta {{kicker}}",me:"\xc9n",moderator:"Moder\xe1tori jogok biztos\xedtva!",muted:"A besz\xe9lget\xe9st len\xe9m\xedtva kezdte meg.",mutedTitle:"Le lett n\xe9m\xedtva!",mutedRemotelyTitle:"{{participantDisplayName}} len\xe9m\xedtotta \xd6nt!",mutedRemotelyDescription:"B\xe1rmikor visszahangos\xedthatja mag\xe1t, ha k\xe9szen \xe1ll a besz\xe9dre. N\xe9m\xedtsa le mag\xe1t ism\xe9t, ha a felesleges zajokt\xf3l meg k\xedv\xe1nja v\xe9deni az \xe9rtekezletet.",passwordRemovedRemotely:"$t(lockRoomPasswordUppercase) egy m\xe1sik r\xe9sztvev\u0151 \xe1ltal elt\xe1vol\xedtva",passwordSetRemotely:"$t(lockRoomPasswordUppercase) egy m\xe1sik r\xe9sztvev\u0151 \xe1ltal be\xe1ll\xedtva",raisedHand:"{{name}} besz\xe9lni szeretne.",somebody:"Valaki",startSilentTitle:"Hang n\xe9lk\xfcl csatlakozott!",startSilentDescription:"Csatlakozzon \xfajra a hang enged\xe9lyez\xe9s\xe9hez",suboptimalBrowserWarning:"Sajn\xe1ljuk, de nem nagy \xe9lm\xe9ny \xedgy csatlakozni a konferenci\xe1hoz. Keress\xfck a megold\xe1st, de addig is, \xe9rdemes ink\xe1bb egy teljesen t\xe1mogatott b\xf6ng\xe9sz\u0151vel csatlakozni.",suboptimalExperienceTitle:"B\xf6ng\xe9sz\u0151hiba",unmute:"Visszahangos\xedt\xe1s",newDeviceCameraTitle:"\xdaj kamera \xe9szlelve",newDeviceAudioTitle:"\xdaj hangeszk\xf6z \xe9szlelve",newDeviceAction:"Alkalmaz"},passwordSetRemotely:"egy m\xe1sik r\xe9sztvev\u0151 \xe1ltal be\xe1ll\xedtva",passwordDigitsOnly:"Legfeljebb {{number}} sz\xe1m",poweredby:"M\u0171k\xf6dteti: ",presenceStatus:{busy:"Foglalt",calling:"H\xedv\xe1s...",connected:"Kapcsol\xf3dva",connecting:"Kapcsol\xf3d\xe1s...",connecting2:"Kapcsol\xf3d\xe1s*...",disconnected:"Sz\xe9tkapcsolva",expired:"Lej\xe1rt",ignored:"Figyelmen k\xedv\xfcl hagyva",initializingCall:"H\xedv\xe1s ind\xedt\xe1sa...",invited:"Megh\xedvva",rejected:"Elutas\xedtva",ringing:"Cs\xf6rget\xe9s..."},profile:{setDisplayNameLabel:"\xc1ll\xedtsa be a megjelen\u0151 nevet",setEmailInput:"Adjon meg egy e-mail c\xedmet",setEmailLabel:"Adja meg a gravatar e-mail c\xedmet",title:"Profil"},raisedHand:"Besz\xe9lni szeretn\xe9k",recording:{authDropboxText:"Felt\xf6lt\xe9s Dropboxra",availableSpace:"El\xe9rhet\u0151 hely: {{spaceLeft}} MB (k\xf6r\xfclbel\xfcl {{duration}} perc felv\xe9tel)",beta:"B\xc9TA",busy:"Dolgozunk a r\xf6gz\xedt\xe9si er\u0151forr\xe1sok felszabad\xedt\xe1s\xe1n. K\xeds\xe9relje meg \xfajra n\xe9h\xe1ny perc m\xfalva.",busyTitle:"Jelenleg minden r\xf6gz\xedt\u0151 foglalt",error:"A felv\xe9tel meghi\xfasult. Pr\xf3b\xe1lja \xfajra.",expandedOff:"A felv\xe9tel le\xe1llt",expandedOn:"Az \xe9rtekezlet jelenleg r\xf6gz\xedt\xe9s alatt \xe1ll.",expandedPending:"A felv\xe9tel elindult...",failedToStart:"A felv\xe9tel ind\xedt\xe1sa meghi\xfasult",fileSharingdescription:"Felv\xe9tel megoszt\xe1sa az \xe9rtekezlet r\xe9sztvev\u0151ivel",live:"\xc9L\u0150",loggedIn:"Bel\xe9pve mint {{userName}}",off:"Felv\xe9tel le\xe1ll\xedtva",offBy:"{{name}} le\xe1ll\xedtotta a felv\xe9telt",on:"Felv\xe9tel",onBy:"{{name}} elind\xedtotta a felv\xe9telt",pending:"\xc9rtekezlet r\xf6gz\xedt\xe9s\xe9nek el\u0151k\xe9sz\xedt\xe9se...",rec:"REC",serviceDescription:"A felv\xe9telt a r\xf6gz\xedt\xe9si szolg\xe1ltat\xe1s veszi fel",serviceName:"Felv\xe9tel szolg\xe1ltat\xe1s",signIn:"Bel\xe9p\xe9s",signOut:"Kil\xe9p\xe9s",unavailable:"Hopp\xe1! A {{serviceName}} szolg\xe1ltat\xe1s jelenleg nem el\xe9rhet\u0151. Dolgozunk a hiba elh\xe1r\xedt\xe1s\xe1n. Pr\xf3b\xe1lja meg k\xe9s\u0151bb.",unavailableTitle:"Felv\xe9tel nem el\xe9rhet\u0151"},sectionList:{pullToRefresh:"H\xfaz\xe1s a friss\xedt\xe9shez"},settings:{calendar:{about:"A {{appName}} napt\xe1rintegr\xe1ci\xf3 a napt\xe1r biztons\xe1gos el\xe9r\xe9s\xe9re szolg\xe1l, \xedgy olvasni tudja a soron k\xf6vetkez\u0151 esem\xe9nyeket.",disconnect:"Sz\xe9tkapcsol\xe1s",microsoftSignIn:"Bejelentkez\xe9s a Microsofttal",signedIn:"Jelenleg ehhez az c\xedmhez tartoz\xf3 napt\xe1r esem\xe9nyei \xe9rhet\u0151ek el: {{email}}. Al\xe1bb a \u201esz\xe9tkapcsol\xe1s\u201d gombra kattintva lehet le\xe1ll\xedtani a napt\xe1r esem\xe9nyeinek el\xe9r\xe9s\xe9t.",title:"Napt\xe1r"},devices:"Eszk\xf6z\xf6k",followMe:"Mindenki engem k\xf6vessen",language:"Nyelv",loggedIn:"Bel\xe9pve mint {{name}}",moderator:"Moder\xe1tor",more:"T\xf6bb",name:"N\xe9v",noDevice:"Nincs",selectAudioOutput:"Hangkimenet",selectCamera:"Kamera",selectMic:"Mikrofon",startAudioMuted:"Mindenki len\xe9m\xedtva kezd",startVideoMuted:"Mindenki vide\xf3 n\xe9lk\xfcl kezd",title:"Be\xe1ll\xedt\xe1sok"},settingsView:{alertOk:"OK",alertTitle:"Figyelmeztet\xe9s",alertURLText:"A megadott kiszolg\xe1l\xf3 URL-je \xe9rv\xe9nytelen",buildInfoSection:"Ford\xedt\xe1si inform\xe1ci\xf3k",conferenceSection:"Konferencia",displayName:"Megjelen\u0151 n\xe9v",email:"E-mail",header:"Be\xe1ll\xedt\xe1sok",profileSection:"Profil",serverURL:"Kiszolg\xe1l\xf3 URL",startWithAudioMuted:"Kezd\xe9s a hang len\xe9m\xedt\xe1s\xe1val",startWithVideoMuted:"Kezd\xe9s a vide\xf3 letilt\xe1s\xe1val",version:"Verzi\xf3"},share:{dialInfoText:"\n\n=====\n\nA saj\xe1t telefonj\xe1n szeretne bet\xe1rcs\xe1zni?\n\n{{defaultDialInNumber}}Az \xe9rtekezlet bet\xe1rcs\xe1z\xe1si sz\xe1ma erre a hivatkoz\xe1sra kattintva tekinthet\u0151 meg\n{{dialInfoPageUrl}}",mainText:"Az al\xe1bbi hivatkoz\xe1sra kattintva lehet csatlakozni az \xe9rtkezlethez:\n{{roomUrl}}"},speaker:"Hangsz\xf3r\xf3",speakerStats:{hours:"{{count}} h",minutes:"{{count}} perc",name:"N\xe9v",seconds:"{{count}} mp",speakerStats:"Besz\xe9l\u0151 statisztika",speakerTime:"Besz\xe9l\u0151 ideje"},startupoverlay:{policyText:" ",title:"A {{app}} haszn\xe1lni szeretn\xe9 a mikrofont \xe9s a kamer\xe1t."},suspendedoverlay:{rejoinKeyTitle:"\xdajracsatlakoz\xe1s",text:"Az \u201e\xfajracsatlakoz\xe1s\u201d gombbal lehet ism\xe9telten csatlakozni.",title:"A vide\xf3h\xedv\xe1s megszakadt, mivel ez a sz\xe1m\xedt\xf3g\xe9p al\xf3 \xe1llapotba helyezte mag\xe1t."},toolbar:{accessibilityLabel:{audioOnly:"Csak a hang \xe1tv\xe1lt\xe1sa",audioRoute:"Hangeszk\xf6z kijel\xf6l\xe9se",callQuality:"Vide\xf3min\u0151s\xe9g kezel\xe9se",cc:"Feliratok \xe1tv\xe1lt\xe1sa",chat:"Cseveg\xe9s ablak \xe1tv\xe1lt\xe1sa",document:"Megosztott dokumentum \xe1tv\xe1lt\xe1sa",feedback:"Visszajelz\xe9s k\xfcld\xe9se",fullScreen:"Teljes k\xe9perny\u0151 \xe1tv\xe1lt\xe1sa",hangup:"Besz\xe9lget\xe9s elhagy\xe1sa",invite:"Szem\xe9lyek megh\xedv\xe1sa",kick:"R\xe9sztvev\u0151 kir\xfag\xe1sa",localRecording:"Helyi felv\xe9tel vez\xe9rl\u0151elemeinek \xe1tv\xe1lt\xe1sa",lockRoom:"\xc9rtekezlet jelszav\xe1nak \xe1tv\xe1lt\xe1sa",moreActions:"Tov\xe1bbi m\u0171veltek men\xfc \xe1tv\xe1lt\xe1sa",moreActionsMenu:"Tov\xe1bbi m\u0171veltek men\xfc",mute:"Hang n\xe9m\xedt\xe1s\xe1nak \xe1tv\xe1lt\xe1sa",pip:"K\xe9p \xe9s k\xe9pben m\xf3d \xe1tv\xe1lt\xe1sa",profile:"Adja meg a profilj\xe1t",raiseHand:"K\xe9z felemel\xe9s\xe9nek \xe1tv\xe1lt\xe1sa",recording:"Felv\xe9tel \xe1tv\xe1lt\xe1sa",remoteMute:"R\xe9sztvev\u0151k n\xe9m\xedt\xe1sa",Settings:"Be\xe1ll\xedt\xe1sok \xe1tv\xe1lt\xe1sa",sharedvideo:"YouTube vide\xf3 megoszt\xe1s\xe1nak \xe1tv\xe1lt\xe1sa",shareRoom:"Valaki megh\xedv\xe1sa",shareYourScreen:"K\xe9perny\u0151megoszt\xe1s \xe1tv\xe1lt\xe1sa",shortcuts:"Gyorsbillenty\u0171k \xe1tv\xe1lt\xe1sa",show:"Megjelen\xedt\xe9s a sz\xednpadon",speakerStats:"Besz\xe9l\u0151 statisztika \xe1tv\xe1lt\xe1sa",tileView:"Mozaikon n\xe9zet \xe1tv\xe1lt\xe1sa",toggleCamera:"Kamera \xe1tv\xe1lt\xe1sa",videomute:"Vide\xf3 letilt\xe1s\xe1nak \xe1tv\xe1lt\xe1sa",videoblur:"Vide\xf3elmos\xe1s \xe1tv\xe1lt\xe1sa"},addPeople:"Szem\xe9ly hozz\xe1ad\xe1sa a h\xedv\xe1shoz",audioOnlyOff:"Alacsony s\xe1vsz\xe9less\xe9g\u0171 m\xf3d letilt\xe1sa",audioOnlyOn:"Alacsony s\xe1vsz\xe9less\xe9g\u0171 m\xf3d enged\xe9lyez\xe9se",audioRoute:"Hangeszk\xf6z kijel\xf6l\xe9se",authenticate:"Hiteles\xedt\xe9s",callQuality:"Vide\xf3min\u0151s\xe9g kezel\xe9se",chat:"Cseveg\xe9s megnyit\xe1sa / bez\xe1r\xe1sa",closeChat:"Cseveg\xe9s bez\xe1r\xe1sa",documentClose:"Megosztott dokumentum bez\xe1r\xe1sa",documentOpen:"Megosztott dokumentum megnyit\xe1sa",enterFullScreen:"Teljes k\xe9perny\u0151s megtekint\xe9s",enterTileView:"Mozaikos n\xe9zet ind\xedt\xe1sa",exitFullScreen:"Kil\xe9p\xe9s a teljes k\xe9perny\u0151b\u0151l",exitTileView:"Kil\xe9p\xe9s a mozaikon n\xe9zetb\u0151l",feedback:"Visszajelz\xe9s k\xfcld\xe9se",hangup:"Kil\xe9p\xe9s",invite:"Szem\xe9lyek megh\xedv\xe1sa",login:"Bel\xe9p\xe9s",logout:"Kil\xe9p\xe9s",lowerYourHand:"K\xe9z leenged\xe9se",moreActions:"Tov\xe1bbi m\u0171veltek",mute:"N\xe9m\xedt\xe1s / Visszahangos\xedt\xe1s",openChat:"Cseveg\xe9s megnyit\xe1sa",pip:"Bel\xe9p\xe9s k\xe9p a k\xe9pben m\xf3dba",profile:"Adja meg a profilj\xe1t",raiseHand:"K\xe9z felemel\xe9se, ill. leenged\xe9se",raiseYourHand:"K\xe9z felemel\xe9se",Settings:"Be\xe1ll\xedt\xe1sok",sharedvideo:"YouTube vide\xf3 megoszt\xe1sa",shareRoom:"Valaki megh\xedv\xe1sa",shortcuts:"Gyorsbillenty\u0171k megtekint\xe9se",speakerStats:"Besz\xe9l\u0151 statisztika",startScreenSharing:"K\xe9perny\u0151megoszt\xe1s kezd\xe9se",startSubtitles:"Feliratok kezd\xe9se",stopScreenSharing:"K\xe9perny\u0151megoszt\xe1s le\xe1ll\xedt\xe1sa",stopSubtitles:"Felirat le\xe1ll\xedt\xe1sa",stopSharedVideo:"YouTube vide\xf3 le\xe1ll\xedt\xe1sa",talkWhileMutedPopup:"\xdagy t\u0171nik besz\xe9lni szeretne, de le van n\xe9m\xedtva.",tileViewToggle:"Mozaikon n\xe9zet \xe1tv\xe1lt\xe1sa",toggleCamera:"Kamera \xe1tv\xe1lt\xe1sa",videomute:"Kamera ind\xedt\xe1sa / le\xe1ll\xedt\xe1sa",startvideoblur:"H\xe1tt\xe9r elhom\xe1lyos\xedt\xe1sa",stopvideoblur:"H\xe1tt\xe9r elhom\xe1lyos\xedt\xe1s\xe1nak letilt\xe1sa"},transcribing:{ccButtonTooltip:"Feliratok ind\xedt\xe1sa / le\xe1ll\xedt\xe1sa",error:"\xc1t\xedrat meghi\xfasult. Pr\xf3b\xe1lja meg ism\xe9t.",expandedLabel:"Az \xe1tirat jelenleg be van kapcsolva",failedToStart:"Meghi\xfasult az \xe1tirat kezd\xe9se",labelToolTip:"Az \xe9rtekezlet \xe1tirata elkezd\u0151d\xf6tt",off:"Az \xe1tirat k\xe9sz\xedt\xe9se le lett \xe1ll\xedtva",pending:"El\u0151k\xe9sz\xfclet az \xe9rtekezlet \xe1tirat\xe1nak k\xe9sz\xedt\xe9s\xe9re...",start:"Felirat megjelen\xedt\xe9s\xe9nek kezd\xe9se",stop:"Felirat megjelen\xedt\xe9s\xe9nek befejez\xe9se",tr:"\xc1tirat"},userMedia:{androidGrantPermissions:"V\xe1laszd az Enged\xe9lyez\xe9s opci\xf3t, ha a b\xf6ng\xe9sz\u0151 enged\xe9lyt k\xe9r.",chromeGrantPermissions:"V\xe1laszd az Enged\xe9lyez\xe9s opci\xf3t, ha a b\xf6ng\xe9sz\u0151 enged\xe9lyt k\xe9r.",edgeGrantPermissions:"V\xe1laszd az Igen opci\xf3t, ha a b\xf6ng\xe9sz\u0151 hozz\xe1f\xe9r\xe9st k\xe9r.",electronGrantPermissions:"A kamera \xe9s a mikrofon haszn\xe1lat\xe1t enged\xe9lyezni kell",firefoxGrantPermissions:"V\xe1laszd Kiv\xe1lasztott eszk\xf6z megoszt\xe1sa opci\xf3t, ha a b\xf6ng\xe9sz\u0151 hozz\xe1f\xe9r\xe9st k\xe9r.",iexplorerGrantPermissions:"V\xe1laszd az OK opci\xf3t, ha a b\xf6ng\xe9sz\u0151 enged\xe9lyez\xe9st k\xe9r.",nwjsGrantPermissions:"A kamera \xe9s a mikrofon haszn\xe1lat\xe1t enged\xe9lyezni kell",operaGrantPermissions:"V\xe1laszd az Enged\xe9lyez\xe9s opci\xf3t, ha a b\xf6ng\xe9sz\u0151 enged\xe9lyt k\xe9r.","react-nativeGrantPermissions":"V\xe1laszd az Enged\xe9lyez\xe9s opci\xf3t, ha a b\xf6ng\xe9sz\u0151 enged\xe9lyt k\xe9r.",safariGrantPermissions:"V\xe1laszd az OK opci\xf3t, ha a b\xf6ng\xe9sz\u0151 enged\xe9lyez\xe9st k\xe9r."},videoSIPGW:{busy:"Dolgozunk az er\u0151forr\xe1sok felszabad\xedt\xe1s\xe1n. K\xeds\xe9relje meg \xfajra n\xe9h\xe1ny perc m\xfalva",busyTitle:"A terem szolg\xe1ltat\xe1s jelenleg foglalt",errorAlreadyInvited:"{{displayName}} m\xe1r meg lett h\xedvva",errorInvite:"A konferencia m\xe9g nem lett megalak\xedtva. K\xe9s\u0151bb pr\xf3b\xe1lja \xfajra.",errorInviteFailed:"Dolgozunk a hiba elh\xe1r\xedt\xe1s\xe1n. Pr\xf3b\xe1lja meg k\xe9s\u0151bb.",errorInviteFailedTitle:"{{displayName}} megh\xedv\xe1sa meghi\xfasult",errorInviteTitle:"Hiba a megh\xedv\xf3 teremmel",pending:"{{displayName}} meg lett h\xedvva"},videoStatus:{audioOnly:"CsH",audioOnlyExpanded:"Jelenleg az alacsony s\xe1vsz\xe9less\xe9g\u0171 m\xf3d az akt\xedv, vagyis csak hangot lehet fogadni \xe9s k\xe9perny\u0151megoszt\xe1st.",callQuality:"Vide\xf3min\u0151s\xe9g",hd:"HD",hdTooltip:"Nagy felbont\xe1s\xfa vide\xf3 megtekint\xe9se",highDefinition:"Nagy felbont\xe1s\xfa",labelTooiltipNoVideo:"Nincs vide\xf3",labelTooltipAudioOnly:"Alacsony s\xe1vsz\xe9less\xe9g\u0171 m\xf3d aktiv\xe1lva",ld:"AF",ldTooltip:"Alacsony felbont\xe1s\xfa vide\xf3",lowDefinition:"Alacsony felbont\xe1s\xfa",onlyAudioAvailable:"\u201eCsak hang\u201d m\xf3d el\xe9rhet\u0151",onlyAudioSupported:"Csak a hang t\xe1mogatott ebben a b\xf6ng\xe9sz\u0151ben.",p2pEnabled:"Egyenrang\xfa kapcsolat enged\xe9lyezve",p2pVideoQualityDescription:"Az egyenrang\xfa (peer to peer) m\xf3dban a kapott vide\xf3min\u0151s\xe9g csak a nagyfelbont\xe1s\xfa \xe9s a \u201ecsak hang\u201d m\xf3d k\xf6z\xf6tt v\xe1lthat\xf3. A tov\xe1bbi be\xe1ll\xedt\xe1sok nem lesz figyelembe v\xe9ve az egyenrang\xfa kapcsolat alatt.",recHighDefinitionOnly:"Lehet\u0151leg nagy felbont\xe1s\xfa.",sd:"SD",sdTooltip:"Szabv\xe1nyos felbont\xe1s\xfa vide\xf3 megtekint\xe9se",standardDefinition:"Szabv\xe1nyos felbont\xe1s\xfa"},videothumbnail:{domute:"N\xe9m\xedt\xe1s",flip:"T\xfckr\xf6z\xe9s",kick:"Kirug\xe1s",moderator:"Moder\xe1tor",mute:"A r\xe9sztvev\u0151 le van n\xe9m\xedtva",muted:"N\xe9m\xedtva",remoteControl:"T\xe1voli vez\xe9rl\xe9s",show:"Megjelen\xedt\xe9s a sz\xednpadon",videomute:"A r\xe9sztvev\u0151 le\xe1ll\xedtotta a kamer\xe1j\xe1t"},welcomepage:{accessibilityLabel:{join:"Koppintson a csatlakoz\xe1shoz",roomname:"Adja meg a terem nev\xe9t"},appDescription:"El\u0151re, csevegjen a teljes csapattal! Val\xf3ban meg lehet h\xedvni minden ismer\u0151st. A {{app}} teljes titkos\xedtott, 100%-ig ny\xedlt forr\xe1sk\xf3d\xfa vide\xf3konferencia megold\xe1s, amelyet eg\xe9sz nap, minden nap ingyenesen lehet haszn\xe1lni \u2013 \xe9s m\xe9g regisztr\xe1lni sem kell.",audioVideoSwitch:{audio:"Hang",video:"Vide\xf3"},calendar:"Napt\xe1r",connectCalendarButton:"Napt\xe1r csatol\xe1sa",connectCalendarText:"Csatlakoztassa a napt\xe1r\xe1t, hogy l\xe1thassa az \xe9rtekezleteket a {{app}} alkalmaz\xe1sban. Tov\xe1bb\xe1, adja hozz\xe1 a {{provider}} szolg\xe1ltat\xf3t \xe9s egy kattint\xe1ssal lehet kezelni azokat.",enterRoomTitle:"\xdaj \xe9rtekezlet kezd\xe9se",onlyAsciiAllowed:"Az \xe9rtekezlet neve csak latin karaktereket \xe9s sz\xe1mokat tartalmazhat.",go:"Ind\xedt\xe1s",join:"CSATLAKOZ\xc1S",info:"Inform\xe1ci\xf3",privacy:"Adatv\xe9delem",recentList:"Legut\xf3bbi",recentListDelete:"T\xf6rl\xe9s",recentListEmpty:"A legut\xf3bbi lista jelenleg \xfcres. Csevegjen a csapattal \xe9s minden el\u0151z\u0151 \xe9rtekezlet itt lesz megtal\xe1lhat\xf3.",reducedUIText:"\xdcdv\xf6zlet a {{app}} programban!",roomname:"Adja meg a terem nev\xe9t",roomnameHint:"Adja meg a k\xedv\xe1nt nevet vagy URL-t, amelyhez csatlakozni szeretne. B\xe1rmik\xe9pp elnevezheti, csak ossza meg az \xe9rtekezlet r\xe9sztvev\u0151ivel, hogy \u0151k ugyanezt a nevet tudj\xe1k majd megadni.",sendFeedback:"Visszajelz\xe9s k\xfcld\xe9se",terms:"Felt\xe9telek",title:"Biztons\xe1gos, marad\xe9ktalanul felszerelt \xe9s teljesen ingyenes vide\xf3konferencia"}}},667,[]); -__d(function(e,o,a,s,n,r,c){n.exports={en:"Inglese",af:"",az:"Azero",bg:"Bulgaro",cs:"Ceco",de:"Tedesco",el:"Greco",eo:"Esperanto",es:"Spagnolo",fr:"Francese",hy:"Armeno",it:"Italiano",ja:"Giapponese",ko:"Coreano",nb:"Norvegese bokmal",oc:"Occitano",pl:"Polacco",ptBR:"Portoghese (Brasile)",ru:"Russo",sk:"Slovacco",sl:"Sloveno",sv:"Svedese",tr:"Turco",vi:"Vietnamita",zhCN:"Cinese (Cina)"}},668,[]); -__d(function(e,i,o,a,t,r,n){t.exports={addPeople:{add:"Invita",countryNotSupported:"Non supportiamo ancora questa destinazione.",countryReminder:"Stai chiamando fuori dagli Stati Uniti? Assicurati di iniziare inserendo il codice paese!",disabled:"Non puoi invitare persone.",failedToAdd:"",footerText:"La chiamata dall'esterno \xe8 disabilitata.",loading:"Cercando persone e numeri di telefono",loadingNumber:"Sto validando il numero di telefono",loadingPeople:"Ricerca delle persone da invitare",noResults:"Nessun risultato corrispondente",noValidNumbers:"Inserire un numero di telefono",searchNumbers:"Aggiungi numeri di telefono",searchPeople:"Cerca persone",searchPeopleAndNumbers:"Cerca persone o aggiungi i loro numeri di telefono",telephone:"Telefono: {{number}}",title:"Invita persone a questo meeting"},audioDevices:{bluetooth:"Bluetooth",headphones:"Cuffie",phone:"Telefono",speaker:"Relatore"},audioOnly:{audioOnly:"Solo audio"},calendarSync:{addMeetingURL:"Aggiungi un collegamento alla conferenza",confirmAddLink:"Vuoi aggiungere un collegamento a ANDI Conference a questo evento?",error:{appConfiguration:"L'integrazione del calendario non \xe8 configurata in modo appropriato.",generic:"\xc8 stato riscontrato un errore. Controllare le impostazioni del calendario e ricaricare la pagina.",notSignedIn:"\xc8 stato riscontrato un errore durante l'autenticazione per la visualizzazione degli eventi del calendario. Controllare le impostazioni del calendario e provare a ripetere l'accesso."},join:"Partecipa",joinTooltip:"Partecipa alla conferenza",nextMeeting:"prossimo meeting",noEvents:"Non ci sono eventi programmati a breve.",ongoingMeeting:"conferenza in corso",permissionButton:"Apri impostazioni",permissionMessage:"Per visualizzare la lista delle conferenze nell'app \xe8 richiesto il permesso Calendario",refresh:"Aggiorna calendario",today:"Oggi"},chat:{error:"Errore: il tuo messaggio \u201c{{originalText}}\u201d non e\u2019 stato inviato. Ragione: {{error}}",messagebox:"Digitare un messaggio",nickname:{popover:"Scegli un nickname",title:"Inserire un nickname per utilizzare la chat"},title:"Chat"},connectingOverlay:{joiningRoom:"Collegamento al meeting in corso\u2026"},connection:{ATTACHED:"Collegato",AUTHENTICATING:"Autenticazione",AUTHFAIL:"Autenticazione fallita",CONNECTED:"Connesso",CONNECTING:"Connessione",CONNFAIL:"Connessione non riuscita",DISCONNECTED:"Occupato",DISCONNECTING:"Disconnessione in corso",ERROR:"Errore",RECONNECTING:"Si \xe8 verificato un problema di rete. Riconnessione..."},connectionindicator:{address:"Indirizzo:",bandwidth:"Banda stimata:",bitrate:"Bitrate:",bridgeCount:"Contatore server:",connectedTo:"Connesso a:",framerate:"Fotogrammi al secondo:",less:"Mostra meno",localaddress:"Indirizzo locale:",localaddress_plural:"Indirizzi locali:",localport:"Porta locale:",localport_plural:"Porte locali:",more:"Mostra di pi\xf9",packetloss:"Perdita pacchetti:",quality:{good:"Buona",inactive:"Inattiva",lost:"Persa",nonoptimal:"Non ottimale",poor:"Scarsa"},remoteaddress:"Indirizzo remoto:",remoteaddress_plural:"Indirizzi remoti:",remoteport:"Porta remota:",remoteport_plural:"Porte remote:",resolution:"Risoluzione:",status:"Connessione:",transport:"Trasporto:",turn:"(ruota)"},dateUtils:{earlier:"Prima",today:"Oggi",yesterday:"Ieri"},deepLinking:{appNotInstalled:"Per partecipare a questo meeting sul tuo telefono ti serve l'app mobile di {{app}}",description:"Non \xe8 successo nulla? Abbiamo provato ad avviare la tua videoconferenza sull'app desktop di {{app}}. Prova di nuovo o avviala nell'app web di {{app}}.",descriptionWithoutWeb:"",downloadApp:"Scarica l'app",launchWebButton:"Avvia sul web",openApp:"Prosegui verso l'app",title:"Sto avviando la tua videoconferenza su {{app}}...",tryAgainButton:"Prova di nuovo sul desktop"},defaultLink:"es. {{url}}",deviceError:{cameraError:"Impossibile accedere alla videocamera",cameraPermission:"Errore nell'ottenere i permessi per la videocamera",microphoneError:"Impossibile accedere al microfono",microphonePermission:"Errore nell'ottenere i permessi per il microfono"},deviceSelection:{noPermission:"Permesso negato",previewUnavailable:"Anteprima non disponibile",selectADevice:"Seleziona un dispositivo",testAudio:"Riproduci un suono di test"},dialog:{accessibilityLabel:{liveStreaming:"Diretta"},allow:"Consenti",alreadySharedVideoMsg:"",alreadySharedVideoTitle:"\xc8 permesso un solo video alla volta",applicationWindow:"Finestra applicazione",Back:"Indietro",cameraConstraintFailedError:"La tua videocamera non soddisfa alcuni dei requisiti richiesti.",cameraNotFoundError:"Videocamera non trovata.",cameraNotSendingData:"Non possiamo accedere alla tua videocamera. Controlla che non sia gi\xe0 usata da un'altra applicazione, seleziona un altro dispositivo dalle impostazioni o prova a ricaricare l'applicazione.",cameraNotSendingDataTitle:"Impossibile accedere alla videocamera",cameraPermissionDeniedError:"Non hai concesso il permesso di usare la videocamera. Potrai partecipare comunque alla conferenza ma gli altri non potranno vederti. Usa il pulsante a forma di videocamera nella barra degli indirizzi per risolvere il problema.",cameraUnknownError:"Impossibile usare la videocamera per un motivo sconosciuto.",cameraUnsupportedResolutionError:"La tua videocamera non supporta la risoluzione richiesta.",Cancel:"Annulla",close:"Chiudi",conferenceDisconnectMsg:"Controlla la tua connessione. Riconnessione in {{seconds}} secondi...",conferenceDisconnectTitle:"Sei stato disconnesso.",conferenceReloadMsg:"Stiamo cercando di risolvere il problema. Riconnessione in {{seconds}} secondi...",conferenceReloadTitle:"Purtroppo qualcosa \xe8 andato storto.",confirm:"Conferma",confirmNo:"No",confirmYes:"S\xec",connectError:"Oops! Qualcosa \xe8 andato storto e non ti puoi collegare alla conferenza.",connectErrorWithMsg:"Oops! Qualcosa \xe8 andato storto e non ti puoi collegare alla conferenza: {{msg}}",connecting:"Connessione",contactSupport:"Contatta il supporto",copy:"Copia",dismiss:"Scarta",displayNameRequired:"",done:"Fatto",enterDisplayName:"",error:"Errore",externalInstallationMsg:"Devi installare la nostra estensione per la condivisione desktop.",externalInstallationTitle:"Richiesta estensione",goToStore:"Vai al negozio on-line",gracefulShutdown:"Il nostro servizio \xe8 al momento spento per manutenzione. Si prega di riprovare pi\xf9 tardi.",IamHost:"Sono l'organizzatore",incorrectRoomLockPassword:"",incorrectPassword:"Nome utente o password errati",inlineInstallationMsg:"Devi installare la nostra estensione per la condivisione desktop.",inlineInstallExtension:"Installa adesso",internalError:"Ops! Qualcosa \xe8 andato storto. Questo \xe8 l'errore: {{error}}",internalErrorTitle:"Errore interno",kickMessage:"",kickParticipantButton:"Espelli",kickParticipantDialog:"Espellere questo partecipante?",kickParticipantTitle:"",kickTitle:"",liveStreaming:"Live Streaming",liveStreamingDisabledForGuestTooltip:"Gli ospiti non possono avviare una diretta.",liveStreamingDisabledTooltip:"Trasmissioni in diretta disabilitate.",lockMessage:"Impossibile bloccare la conferenza.",lockRoom:"",lockTitle:"Blocco fallito",logoutQuestion:"Vuoi disconnetterti e interrompere la conferenza ?",logoutTitle:"Logout",maxUsersLimitReached:"",maxUsersLimitReachedTitle:"",micConstraintFailedError:"Il tuo microfono non soddisfa alcuni dei requisiti richiesti.",micNotFoundError:"Microfono non trovato.",micNotSendingData:"",micNotSendingDataTitle:"",micPermissionDeniedError:"Non hai concesso il permesso di usare il microfono. Puoi comunque partecipare alla conferenza ma gli altri non potranno sentirti. Usa il bottone a forma di telecamera nella barra degli indirizzi per cambiare impostazioni.",micUnknownError:"Impossibile usare il microfono per un motivo sconosciuto.",muteParticipantBody:"Tu non sarai in grado di riattivare il loro audio, ma loro potranno riattivarlo in qualsiasi momento.",muteParticipantButton:"Disattiva audio",muteParticipantDialog:"",muteParticipantTitle:"",Ok:"Ok",passwordLabel:"",passwordNotSupported:"Le password per le videoconferenze non sono supportate.",passwordNotSupportedTitle:"",passwordRequired:"",popupError:"Il tuo browser sta bloccando i pop-up da questo sito. Per favore abilit\xe0 i pop-up dalle impostazioni di sicurezza del browser e riprova.",popupErrorTitle:"Pop-up bloccato",recording:"Registrazione",recordingDisabledForGuestTooltip:"Gli ospiti non possono avviare una registrazione.",recordingDisabledTooltip:"Registrazione disabilitata.",rejoinNow:"Ricollegati ora",remoteControlAllowedMessage:"{{user}} ha accettato la tua richiesta di controllo remoto!",remoteControlDeniedMessage:"{{user}} ha respinto la tua richiesta di controllo remoto!",remoteControlErrorMessage:"Si \xe8 verificato un errore mentre si cercava di richiedere il controllo remoto a {{user}}!",remoteControlRequestMessage:"Vuoi consentire ad {{user}} di controllare da remoto il tuo desktop?",remoteControlShareScreenWarning:"Tieni conto che premendo \"Permetti\" condividerai il tuo schermo.",remoteControlStopMessage:"Sessione di controllo remoto terminata!",remoteControlTitle:"Connessione desktop remoto",Remove:"Rimuovi",removePassword:"",removeSharedVideoMsg:"Sei sicuro di voler rimuovere il tuo video condiviso?",removeSharedVideoTitle:"Rimuovi video condiviso",reservationError:"Errore di sistema in prenotazione",reservationErrorMsg:"Codice di errore: {{code}}, messaggio: {{msg}}",retry:"Riprova",screenSharingFailedToInstall:"Oops! Non \xe8 stato possibile installare l'estensione per la condivisione schermo. ",screenSharingFailedToInstallTitle:"Impossibile installare l'estensione per la condivisione schermo",screenSharingFirefoxPermissionDeniedError:"Qualcosa \xe8 andato storto mentre cercavamo di condividere il tuo schermo. Assicurati di averci dato il premesso di condivisione.",screenSharingFirefoxPermissionDeniedTitle:"Ops! Non siamo stati in grado di avviare la condivisione schermo!",screenSharingPermissionDeniedError:"Oops! Qualcosa \xe8 andato storto con le impostazioni dell'estensione per la condivisione dello schermo. Ricarica la pagina e prova di nuovo.",serviceUnavailable:"Servizio non disponibile",sessTerminated:"Chiamata terminata",Share:"Condividi",shareVideoLinkError:"Fornire un link youtube corretto.",shareVideoTitle:"Condividi un video",shareYourScreen:"Condividi schermo",shareYourScreenDisabled:"Condivisione schermo disabilitata.",shareYourScreenDisabledForGuest:"Gli ospiti non possono condividere lo schermo.",startLiveStreaming:"Inizia una diretta",startRecording:"Inizia a registrare",startRemoteControlErrorMessage:"Si \xe8 verificato un errore cercando di avviare la sessione di controllo remoto!",stopLiveStreaming:"Ferma la diretta",stopRecording:"Ferma registrazione",stopRecordingWarning:"Sei sicuro di voler interrompere la registrazione?",stopStreamingWarning:"Sei sicuro di voler interrompere il live streaming?",streamKey:"Chiave per trasmissione in diretta",Submit:"Invia",thankYou:"Grazie per aver usato {{appName}}!",token:"token",tokenAuthFailed:"Ci dispiace ma non sei autorizzato a partecipare a questa chiamata.",tokenAuthFailedTitle:"Autenticazione fallita",transcribing:"Trascrizione",unlockRoom:"",userPassword:"password utente",WaitForHostMsg:"",WaitForHostMsgWOk:"",WaitingForHost:"In attesa dell'organizzatore ...",Yes:"S\xec",yourEntireScreen:"Schermo intero"},dialOut:{statusMessage:"\xe8 ora {{status}}"},feedback:{average:"Media",bad:"Scadente",detailsLabel:"Dicci qualcosa di pi\xf9 in proposito.",good:"Buona",rateExperience:"Valuta la qualit\xe0 della videoconferenza.",veryBad:"Pessima",veryGood:"Molto Buona"},incomingCall:{answer:"Risposta",audioCallTitle:"Chiamata in arrivo",decline:"Scarta",productLabel:"da ANDI Conference",videoCallTitle:"Videochiamata in arrivo"},info:{accessibilityLabel:"Mostra informazioni",addPassword:"",cancelPassword:"",conferenceURL:"Collegamento:",country:"Paese",dialANumber:"",dialInConferenceID:"PIN:",dialInNotSupported:"Spiacenti, la chiamata per partecipare attualmente non \xe8 supportata",dialInNumber:"Componi:",dialInSummaryError:"",dialInTollFree:"",genericError:"Ops, qualcosa \xe8 andato storto.",inviteLiveStream:"Per visualizzare la trasmissione in diretta di questo meeting, clicca su questo link: {{url}}",invitePhone:"",invitePhoneAlternatives:"",inviteURLFirstPartGeneral:"",inviteURLFirstPartPersonal:"",inviteURLSecondPart:"",liveStreamURL:"Trasmissione in diretta:",moreNumbers:"Pi\xf9 numeri",noNumbers:"Nessun numero da chiamare.",noPassword:"Nessuno",noRoom:"Non \xe8 stata specificata nessuna stanza da chiamare.",numbers:"Numeri da chiamare",password:"",title:"Condividi",tooltip:"Condividi collegamento e informazioni di chiamata per questa conferenza",label:""},inviteDialog:{alertText:"",header:"Invita",searchCallOnlyPlaceholder:"Inserisci numero di telefono",searchPeopleOnlyPlaceholder:"",searchPlaceholder:"",send:""},inlineDialogFailure:{msg:"Un piccolo inconveniente.",retry:"Prova ancora",support:"Supporto",supportMsg:"Se succede ancora contatta"},keyboardShortcuts:{focusLocal:"Sposta il focus sul tuo video",focusRemote:"Sposta il focus sul video di un altro partecipante",fullScreen:"Attiva o disattiva schermo intero",keyboardShortcuts:"Scorciatoie da tastiera",localRecording:"Mostra o nascondi i controlli per la registrazione",mute:"Attiva o disattiva il microfono",pushToTalk:"Premi per parlare",raiseHand:"Mostra / Nascondi i video",showSpeakerStats:"Mostra statistiche conversanti",toggleChat:"Apri o chiudi la chat",toggleFilmstrip:"Mostra o nascondi anteprime video",toggleScreensharing:"Cambia modalit\xe0 tra videocamera e condivisione schermo",toggleShortcuts:"Mostra o nascondi le scorciatoie",videoMute:"Attiva / disattiva videocamera"},liveStreaming:{busy:"Stiamo cercando di liberare risorse per lo streaming. Riprova tra qualche minuto.",busyTitle:"Tutti gli streamer sono impegnati al momento",changeSignIn:"Cambia account",choose:"Scegli una trasmissione in diretta",chooseCTA:"Scegli un'opzione di trasmissione. Attualmente sei loggato come {{email}}.",enterStreamKey:"Inserisci qui la tua chiave YouTube per le trasmissioni in diretta.",error:"Live streaming fallito. Prova di nuovo.",errorAPI:"Si \xe8 verificato un errore durante l'accesso ai tuoi broadcast YouTube. Prova a effettuare nuovamente il login.",errorLiveStreamNotEnabled:"La diretta non \xe8 attivata su {{email}}. Per favore abilita la diretta o effettua l'accesso con un account abilitato alle dirette.",expandedOff:"La diretta è stata interrotta",expandedOn:"La conferenza è attualmente in diretta su YouTube.",expandedPending:"La diretta è in fase di avvio...",failedToStart:"Avvio live streaming fallito",getStreamKeyManually:"",invalidStreamKey:"",off:"Il live streaming si \xe8 interrotto",on:"Live Streaming",pending:"Avvio live stream...",serviceName:"Servizio live streaming",signedInAs:"Sei attualmente collegato come:",signIn:"Registrati con Google",signInCTA:"Registrati o inserisci la tua chiave YouTube per la trasmissione in diretta.",signOut:"Esci",start:"Inizia una diretta",streamIdHelp:"Cos'\xe8 questo?",unavailableTitle:"Live streaming non disponibile"},localRecording:{clientState:{off:"Spento",on:"Acceso",unknown:"Sconosciuto"},dialogTitle:"Controlli di registrazione",duration:"Durata",durationNA:"N/A",encoding:"Codifica",label:"LOR",labelToolTip:"Registrazione locale avviata",localRecording:"Registrazione locale",me:"io",messages:{engaged:"Registrazione locale avviata.",finished:"La registrazione della sessione {{token}} è terminata. Invia il file della registrazione al moderatore.",finishedModerator:"La registrazione della sessione {{token}} è terminata. Il file della traccia local è stato salvato. Richiedere ai partecipanti di inviare le loro registrazioni.",notModerator:"Non sei un moderatore. Non puoi avviare o interrompere la registrazione"},moderator:"Moderatore",no:"No",participant:"Partecipante",participantStats:"Statistiche partecipanti",sessionToken:"Token della sessione ",start:"Avvia Registrazione",stop:"Ferma registrazione",yes:"S\xec"},lockRoomPassword:"password",lockRoomPasswordUppercase:"Password",me:"io",notify:{connectedOneMember:"",connectedThreePlusMembers:"",connectedTwoMembers:"",disconnected:"disconnesso",focus:"Focus su conferenza",focusFail:"{{component}} non disponibile - riprova in {{ms}} sec",grantedTo:"Permessi di moderatore garantiti a {{to}}!",invitedOneMember:"{{displayName}} \xe8 stato invitato",invitedThreePlusMembers:"",invitedTwoMembers:"",kickParticipant:"",me:"io",moderator:"Impostati i permessi di moderatore!",muted:"Hai iniziato la conversazione con l'audio disattivato.",mutedTitle:"Hai l'audio disattivato!",mutedRemotelyTitle:"",mutedRemotelyDescription:"",passwordRemovedRemotely:"",passwordSetRemotely:"",raisedHand:"",somebody:"Qualcuno",startSilentTitle:"",startSilentDescription:"",suboptimalExperienceDescription:"Ehm... temiamo che la tua esperienza con {{appName}} non sar\xe0 granch\xe9 su questo browser. Stiamo cercando di migliorare la situazione ma, per il momento, prova ad utilizzare uno di questi browser supportati.",suboptimalExperienceTitle:"Problemi con il browser",unmute:"",newDeviceCameraTitle:"",newDeviceAudioTitle:"",newDeviceAction:""},passwordSetRemotely:"",passwordDigitsOnly:"",poweredby:"powered by",presenceStatus:{busy:"Occupato",calling:"Chiamata\u2026",connected:"Connesso",connecting:"Connessione...",connecting2:"Connessione*...",disconnected:"Occupato",expired:"Scaduto",ignored:"Ignorato",initializingCall:"Inizializzazione chiamata\u2026",invited:"Invitato",rejected:"Rifiutato",ringing:"Sta suonando\u2026"},profile:{setDisplayNameLabel:"Imposta il nome da visualizzare",setEmailInput:"Inserisci e-mail",setEmailLabel:"Imposta la mail gravatar",title:"Profilo"},recording:{authDropboxText:"Carica su Dropbox",availableSpace:"Spazio disponibile: {{spaceLeft}} MB (rimangono approssimativamente {{duration}} minuti di registrazione)",beta:"BETA",busy:"Stiamo cercando di liberare risorse per la registrazione. Riprova tra qualche minuto.",busyTitle:"Tutti i registratori sono occupati",error:"Registrazione fallita. Prova di nuovo.",expandedOff:"Registrazione interrotta",expandedOn:"La registrazione della conferenza \xe8 attiva.",expandedPending:"La registrazione \xe8 in fase di avvio\u2026",failedToStart:"Non \xe8 stato possibile avviare la registrazione",fileSharingdescription:"",live:"DIRETTA",loggedIn:"Accesso effettuato come {{userName}}",off:"Registrazione interrotta",on:"Registrazione",pending:"In preparazione alla registrazione della conferenza\u2026",rec:"REC",serviceDescription:"",serviceName:"Servizio di registrazione",signIn:"Entra",signOut:"Esci",unavailable:"Ops! Il {{serviceName}} non \xe8 al momento disponibile. Stiamo lavorando per risolvere il problema. Riprova pi\xf9 tardi.",unavailableTitle:"Registrazione non disponibile"},sectionList:{pullToRefresh:"Trascina per aggiornare"},settings:{calendar:{about:"L\u2019integrazione del calendario con {{appName}} e\u2019 consigliata per accedere in sicurezza al proprio calendario per poter leggere i prossimi appuntamenti ",disconnect:"Disconnetti",microsoftSignIn:"Connettiti con un account Microsoft",signedIn:"Sto accedendo agli eventi del calendario per {{email}}. Clicca su Disconnetti per interrompere l\u2019accesso agli eventi del calendario.",title:"Calendario"},devices:"Dispositivi",followMe:"Tutti mi seguono",language:"Lingua",loggedIn:"Connesso come {{name}}",moderator:"Moderatore",more:"Altro",name:"Nome",noDevice:"Nessuno",selectAudioOutput:"Uscita audio",selectCamera:"Videocamera",selectMic:"Microfono",startAudioMuted:"Tutti cominciano con il microfono disattivato",startVideoMuted:"Tutti cominciano nascosti",title:"Impostazioni"},settingsView:{alertOk:"OK",alertTitle:"Attenzione",alertURLText:"L'URL del server inserito non \xe8 valido",buildInfoSection:"",conferenceSection:"Conferenza",displayName:"Nome visualizzato",email:"Email",header:"Impostazioni",profileSection:"Profilo",serverURL:"URL del server",startWithAudioMuted:"Inizia con l'audio mutato",startWithVideoMuted:"Avvia con video mutato",version:""},share:{dialInfoText:"",mainText:"Clicca sul link seguente per partecipare alla conferenza:\n{{roomUrl}}"},speaker:"Relatore",speakerStats:{hours:"{{count}}h",minutes:"{{count}}m",name:"Nome",seconds:"{{count}}s",speakerStats:"Statistiche del parlante",speakerTime:"Tempo del conversante"},startupoverlay:{policyText:" ",title:"{{app}} chiede di usare il tuo microfono e la tua videocamera."},suspendedoverlay:{rejoinKeyTitle:"Ricollegati",text:"Premi il pulsante Ricollegati per ricollegarti.",title:"La video chiamata si \xe8 interrotta perch\xe8 il computer \xe8 stato sospeso."},toolbar:{accessibilityLabel:{audioOnly:"Attiva/disattiva solo audio",audioRoute:"Seleziona la periferica audio",callQuality:"Gestisci qualit\xe0 della chiamata",cc:"Attiva/disattiva sottotitoli",chat:"Attiva/disattiva la chat",document:"Attiva/disattiva documento condiviso",feedback:"Lascia un feedback",fullScreen:"Attiva/disattiva schermo intero",hangup:"Lascia la conferenza",invite:"Invita persone",kick:"",localRecording:"Abilita controlli di registrazione locale",lockRoom:"",moreActions:"Attiva/disattiva Menu avanzato",moreActionsMenu:"Menu avanzato",mute:"Attiva/disattiva audio muto",pip:"Attiva/disattiva immagine nell\u2019immagine",profile:"Modifica profilo",raiseHand:"Attiva/disattiva alzata di mano",recording:"Attiva/disattiva registrazione",remoteMute:"",Settings:"Attiva/disattiva impostazioni",sharedvideo:"Attiva/disattiva condivisione YouTube",shareRoom:"Invita partecipante",shareYourScreen:"Attiva/disattiva condivisione schermo",shortcuts:"Attiva/disattiva scorciatoie",show:"",speakerStats:"Attiva/disattiva statistiche relatore",tileView:"Attiva/disattiva visualizzazione griglia",toggleCamera:"Attiva/disattiva webcam",videomute:"Attiva/disattiva silenziamento video",videoblur:""},addPeople:"Aggiungi persone alla chiamata",audioOnlyOff:"Disattiva modalit\xe0 solo audio",audioOnlyOn:"Disattiva modalit\xe0 solo audio",audioRoute:"Seleziona la periferica audio",authenticate:"Autenticazione",callQuality:"Gestisci qualit\xe0 della chiamata",chat:"Apri / Chiudi chat",closeChat:"",documentClose:"Chiudi documento condiviso",documentOpen:"Apri documento condiviso",enterFullScreen:"Visualizza a schermo intero",enterTileView:"",exitFullScreen:"Esci da schermo intero",exitTileView:"",feedback:"Lascia un feedback",hangup:"Esci",invite:"Invita persone",login:"Login",logout:"Logout",lowerYourHand:"",moreActions:"Pi\xf9 azioni",mute:"Microfono Attiva / Disattiva",openChat:"",pip:"Abilita visualizzazione immagine nell\u2019immagine",profile:"Modifica profilo",raiseHand:"Alza / Abbassa la mano",raiseYourHand:"",Settings:"Impostazioni",sharedvideo:"Condividi un video Youtube",shareRoom:"Invita partecipante",shortcuts:"Visualizza scorciatoie",speakerStats:"Statistiche dell'interlocutore",startScreenSharing:"",startSubtitles:"",stopScreenSharing:"",stopSubtitles:"",stopSharedVideo:"Ferma video YouTube",talkWhileMutedPopup:"Stai provando a parlare? Il microfono \xe8 disattivato.",tileViewToggle:"Attiva/disattiva visualizzazione griglia",toggleCamera:"Attiva/disattiva webcam",videomute:"Attiva / Disattiva videocamera",startvideoblur:"",stopvideoblur:""},transcribing:{ccButtonTooltip:"",error:"Registrazione fallita. Prova di nuovo.",expandedLabel:"La trascrizione della conferenza \xe8 attiva",failedToStart:"C\u2019\xe8 stato un errore nell\u2019avvio del servizio di trascrizione.",labelToolTip:"Il servizio di trascrizione \xe8 in fase di avvio",off:"Trascrizione interrotta",pending:"Avvio del servizio di trascrizione della conferenza\u2026",start:"Avvia visualizzazione sottotitoli",stop:"Interrompi la visualizzazione dei sottotitoli",tr:"TR"},userMedia:{androidGrantPermissions:"Seleziona consenti quando richiesto dal browser.",chromeGrantPermissions:"Seleziona consenti quando richiesto dal browser.",edgeGrantPermissions:"Seleziona Si quando richiesto dal browser.",electronGrantPermissions:"Concedi l'autorizzazione ad usare telecamera e microfono",firefoxGrantPermissions:"Seleziona condividi i dispositivi selezionati quando richiesto dal browser.",iexplorerGrantPermissions:"Seleziona OK quando richiesto dal browser.",nwjsGrantPermissions:"Concedi l'autorizzazione ad usare telecamera e microfono",operaGrantPermissions:"Seleziona consenti quando richiesto dal browser.","react-nativeGrantPermissions":"Seleziona consenti quando richiesto dal browser.",safariGrantPermissions:"Seleziona OK quando richiesto dal browser."},videoSIPGW:{busy:"Stiamo lavorando per liberare le risorse. Riprova tra qualche minuto.",busyTitle:"Il servizio Stanza al momento \xe8 occupato",errorAlreadyInvited:"{{displayName}} gi\xe0 invitato",errorInvite:"Conferenza non ancora stabilita. Riprova pi\xf9 tardi.",errorInviteFailed:"Stiamo lavorando per risolvere il problema. Riprova pi\xf9 tardi.",errorInviteFailedTitle:"Invito a {{displayName}} fallito",errorInviteTitle:"Errore nell'invito alla stanza",pending:"{{displayName}} \xe8 stato invitato"},videoStatus:{audioOnly:"AUD",audioOnlyExpanded:"Modalita' solo audio attiva. Questa modalit\xe0 permette di rispamiare banda ma non vedrai gli altri partecipanti.",callQuality:"",hd:"HD",highDefinition:"Alta definizione",labelTooiltipNoVideo:"Nessun video",labelTooltipAudioOnly:"Modalit\xe0 solo audio abilitata",ld:"LD",lowDefinition:"Bassa definizione",onlyAudioAvailable:"\xc8 disponibile solo l'audio",onlyAudioSupported:"Per questo browser \xe8 supportato solo l'audio.",p2pEnabled:"Peer to Peer abilitato",p2pVideoQualityDescription:"",recHighDefinitionOnly:"Preferisci alta risoluzione.",sd:"SD",standardDefinition:"Definizione standard"},videothumbnail:{domute:"Disattiva audio",flip:"Rifletti",kick:"Espelli",moderator:"Moderatore",mute:"Il partecipante \xe8 in muto",muted:"Audio disattivato",remoteControl:"Controllo remoto",show:"",videomute:""},welcomepage:{accessibilityLabel:{join:"Tap per accedere",roomname:"Inserisci Nome Stanza"},appDescription:"Via avanti, video chatta con l'intero team. In effetti, invita tutti quelli che conosci. {{app}} \xe8 una soluzione di video conference totalmente crittografata, 100% open cource, che puoi utilizzare tutto il giorno, ogni giorno, gratuitamente - senza bisogno di un account.",audioVideoSwitch:{audio:"Voce",video:"Video"},calendar:"Calendario",connectCalendarButton:"Collega calendario",connectCalendarText:"",enterRoomTitle:"Avvia una nuova conferenza",go:"VAI",join:"UNISCITI",info:"",privacy:"Privacy",recentList:"Recente",recentListDelete:"Cancella",recentListEmpty:"La tua lista è vuota. Chatta con qualcuno del tuo team e lo vedrai apparire nella lista di meeting recenti.",reducedUIText:"",roomname:"Inserisci Nome Stanza",roomnameHint:"Inserisci il nome o l'URL della stanza alla quale vuoi accedere. Puoi anche inventarti un nome, assicurati solo che le persone che vuoi contattare lo sappiano, cos\xec che possano inserire lo stesso nome.",sendFeedback:"Invia feedback",terms:"Termini di utilizzo",title:"Il sistema di conferenza sicuro, funzionale e completamente gratuito."}}},669,[]); -__d(function(e,s,o,t,n,r,a){n.exports={en:"\u82f1\u8a9e",af:"\u30a2\u30d5\u30ea\u30ab\u30fc\u30f3\u30b9\u8a9e",az:"\u30a2\u30bc\u30eb\u30d0\u30a4\u30b8\u30e3\u30f3\u8a9e",bg:"\u30d6\u30eb\u30ac\u30ea\u30a2\u8a9e",cs:"\u30c1\u30a7\u30b3\u8a9e",de:"\u30c9\u30a4\u30c4\u8a9e",el:"\u30ae\u30ea\u30b7\u30a2\u8a9e",eo:"\u30a8\u30b9\u30da\u30e9\u30f3\u30c8\u8a9e",es:"\u30b9\u30da\u30a4\u30f3\u8a9e",fr:"\u30d5\u30e9\u30f3\u30b9\u8a9e",hy:"\u30a2\u30eb\u30e1\u30cb\u30a2\u8a9e",it:"\u30a4\u30bf\u30ea\u30a2\u8a9e",ja:"\u65e5\u672c\u8a9e",ko:"\u97d3\u56fd\u8a9e",nb:"\u30ce\u30eb\u30a6\u30a7\u30fc\u8a9e (\u30d6\u30fc\u30af\u30e2\u30fc\u30eb)",oc:"\u30aa\u30c3\u30af\u8a9e",pl:"\u30dd\u30fc\u30e9\u30f3\u30c9\u8a9e",ptBR:"\u30dd\u30eb\u30c8\u30ac\u30eb\u8a9e (\u30d6\u30e9\u30b8\u30eb)",ru:"\u30ed\u30b7\u30a2\u8a9e",sk:"\u30b9\u30ed\u30d0\u30ad\u30a2\u8a9e",sl:"\u30b9\u30ed\u30d9\u30cb\u30a2\u8a9e",sv:"\u30b9\u30a6\u30a7\u30fc\u30c7\u30f3\u8a9e",tr:"\u30c8\u30eb\u30b3\u8a9e",vi:"\u30d9\u30c8\u30ca\u30e0\u8a9e",zhCN:"\u4e2d\u56fd\u8a9e (\u4e2d\u56fd)"}},670,[]); -__d(function(e,o,i,t,r,n,a){r.exports={addPeople:{add:"\u62db\u5f85",countryNotSupported:"\u79c1\u305f\u3061\u306f\u3053\u306e\u5b9b\u5148\u3092\u307e\u3060\u30b5\u30dd\u30fc\u30c8\u3057\u3066\u3044\u307e\u305b\u3093\u3002",countryReminder:"\u7c73\u56fd\u5916\u306b\u30b3\u30fc\u30eb\u3057\u307e\u3059\u304b\uff1f \u56fd\u30b3\u30fc\u30c9\u3067\u59cb\u307e\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\uff01",disabled:"\u4eba\u3092\u62db\u5f85\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002",failedToAdd:"",footerText:"\u30c0\u30a4\u30e4\u30eb\u30a2\u30a6\u30c8\u304c\u7121\u52b9\u3057\u3066\u3044\u307e\u3059\u3002",loading:"\u4eba\u3068\u96fb\u8a71\u756a\u53f7\u3092\u691c\u7d22\u3059\u308b",loadingNumber:"\u96fb\u8a71\u756a\u53f7\u3092\u691c\u8a3c\u3057\u3066\u3044\u307e\u3059",loadingPeople:"\u62db\u5f85\u3059\u308b\u4eba\u3092\u691c\u7d22\u3059\u308b",noResults:"\u4e00\u81f4\u3059\u308b\u691c\u7d22\u7d50\u679c\u304c\u3042\u308a\u307e\u305b\u3093",noValidNumbers:"\u96fb\u8a71\u756a\u53f7\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044",searchNumbers:"\u96fb\u8a71\u756a\u53f7\u3092\u8ffd\u52a0",searchPeople:"\u4eba\u3092\u691c\u7d22\u3059\u308b",searchPeopleAndNumbers:"\u4eba\u3092\u691c\u7d22\u3059\u308b\u304b\u3001\u96fb\u8a71\u756a\u53f7\u3092\u8ffd\u52a0\u3059\u308b",telephone:"\u96fb\u8a71\uff1a {{number}}",title:"\u3053\u306e\u4f1a\u8b70\u306b\u4eba\u3092\u62db\u5f85\u3059\u308b"},"\x05addPeople":{},audioDevices:{bluetooth:"Bluetooth",headphones:"\u30d8\u30c3\u30c9\u30d5\u30a9\u30f3",phone:"\u96fb\u8a71",speaker:"\u30b9\u30d4\u30fc\u30ab\u30fc"},"\x05audioDevices":{},audioOnly:{audioOnly:"\u30aa\u30fc\u30c7\u30a3\u30aa\u306e\u307f"},calendarSync:{addMeetingURL:"\u30df\u30fc\u30c6\u30a3\u30f3\u30b0\u30ea\u30f3\u30af\u3092\u8ffd\u52a0\u3059\u308b",confirmAddLink:"\u3053\u306e\u30a4\u30d9\u30f3\u30c8\u306b\u30d3\u30c7\u30aa\u4f1a\u8b70\u30ea\u30f3\u30af\u3092\u5f35\u308a\u4ed8\u3051\u307e\u3059\u304b\u3002",error:{appConfiguration:"\u30ab\u30ec\u30f3\u30c0\u30fc\u6a5f\u80fd\u304c\u6b63\u3057\u304f\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u306a\u3044",generic:"\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u305f\u3002\u30ab\u30ec\u30f3\u30c0\u30fc\u6a5f\u80fd\u8a2d\u5b9a\u3092\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3001\u3082\u3057\u304f\u306f\u30ab\u30ec\u30f3\u30c0\u30fc\u3092\u66f4\u65b0\u3057\u3066\u304f\u3060\u3055\u3044",notSignedIn:"\u8a8d\u8a3c\u4e2d\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002\u30ab\u30ec\u30f3\u30c0\u30fc\u306e\u8a2d\u5b9a\u3092\u78ba\u8a8d\u3057\u3001\u30ed\u30b0\u30a4\u30f3\u3057\u76f4\u3057\u3066\u304f\u3060\u3055\u3044\u3002"},join:"\u53c2\u52a0",joinTooltip:"\u30df\u30fc\u30c6\u30a3\u30f3\u30b0\u306b\u53c2\u52a0\u3059\u308b",nextMeeting:"\u6b21\u306e\u4f1a\u8b70",noEvents:"",ongoingMeeting:"\u4f1a\u8b70\u4e2d",permissionButton:"\u8a2d\u5b9a\u3092\u958b\u304f",permissionMessage:"\u30a2\u30d7\u30ea\u306b\u4f1a\u8b70\u3092\u8868\u793a\u3059\u308b\u306b\u306f\u3001\u30ab\u30ec\u30f3\u30c0\u30fc\u306e\u30a2\u30af\u30bb\u30b9\u8a31\u53ef\u304c\u5fc5\u8981\u3067\u3059\u3002",refresh:"\u30ab\u30ec\u30f3\u30c0\u30fc\u3092\u66f4\u65b0\u3059\u308b",today:"\u4eca\u65e5"},"\x05calendarSync":{},chat:{error:"\u30a8\u30e9\u30fc: \"{{originalText}}\" \u304c\u307e\u3060\u9001\u4fe1\u3055\u308c\u3066\u3044\u307e\u305b\u3093. \u30a8\u30e9\u30fc\uff1a {{error}}",messagebox:"\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u66f8\u3044\u3066\u304f\u3060\u3055\u3044",nickname:{popover:"\u30cb\u30c3\u30af\u30cd\u30fc\u30e0\u3092\u5165\u529b",title:"\u30c1\u30e3\u30c3\u30c8\u306e\u30cb\u30c3\u30af\u30cd\u30fc\u30e0\u3092\u8a18\u5165\u3057\u3066\u304f\u3060\u3055\u3044"},title:"\u30c1\u30e3\u30c3\u30c8"},connectingOverlay:{joiningRoom:"\u30df\u30fc\u30c6\u30a3\u30f3\u30b0\u306b\u53c2\u52a0\u3057\u3066\u3044\u307e\u3059\u3002\u3002\u3002"},connection:{ATTACHED:"\u6dfb\u4ed8\u3055\u308c\u305f",AUTHENTICATING:"\u8a8d\u8a3c\u4e2d",AUTHFAIL:"\u8a8d\u8a3c\u306b\u5931\u6557\u3057\u307e\u3057\u305f",CONNECTED:"\u63a5\u7d9a\u3055\u308c\u307e\u3057\u305f",CONNECTING:"\u63a5\u7d9a\u4e2d",CONNFAIL:"\u63a5\u7d9a\u306b\u5931\u6557\u3057\u307e\u3057\u305f",DISCONNECTED:"\u5207\u65ad\u3055\u308c\u307e\u3057\u305f",DISCONNECTING:"\u5207\u65ad\u3057\u3066\u3044\u307e\u3059",ERROR:"\u30a8\u30e9\u30fc",RECONNECTING:"\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e\u554f\u984c\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002 \u518d\u63a5\u7d9a\u4e2d..."},connectionindicator:{address:"\u30a2\u30c9\u30ec\u30b9\uff1a",bandwidth:"\u63a8\u5b9a\u30d0\u30f3\u30c9\u30ef\u30a4\u30ba",bitrate:"\u30d3\u30c3\u30c8\u30ec\u30fc\u30c8:",bridgeCount:"\u30b5\u30fc\u30d0\u30fc\u6570\uff1a",connectedTo:"\u63a5\u7d9a\u5148\uff1a",framerate:"\u30d5\u30ec\u30fc\u30e0\u30ec\u30fc\u30c8:",less:"\u5c11\u306a\u304f\u898b\u308b",localaddress:"",localport:"",more:"\u591a\u304f\u898b\u308b",packetloss:"\u30d1\u30b1\u30c3\u30c8\u30ed\u30b9:",quality:{good:"\u826f\u3044",inactive:"\u4f11\u6b62\u4e2d",lost:"\u63a5\u7d9a\u5207\u308c\u305f",nonoptimal:"\u6700\u9069\u3067\u306f\u306a\u3044",poor:"\u60aa\u3044"},remoteaddress:"\u30ea\u30e2\u30fc\u30c8\u30a2\u30c9\u30ec\u30b9\uff1a",remoteport:"\u30ea\u30e2\u30fc\u30c8\u30dd\u30fc\u30c8\uff1a",resolution:"\u89e3\u50cf\u5ea6:",status:"\u63a5\u7d9a\u72b6\u614b:",transport:"\u30c8\u30e9\u30f3\u30b9\u30dd\u30fc\u30c8\uff1a",turn:""},dateUtils:{earlier:"\u305d\u306e\u524d",today:"\u4eca\u65e5",yesterday:"\u6628\u65e5"},deepLinking:{appNotInstalled:"\u3053\u306e\u4f1a\u8b70\u306b\u53c2\u52a0\u3059\u308b\u306b\u306f\u3001{{app}} \u30e2\u30d0\u30a4\u30eb\u30a2\u30d7\u30ea\u304c\u5fc5\u8981\u3067\u3059\u3002",description:"\u4f55\u3082\u8d77\u3053\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u304b\uff1f {{app}} \u30c7\u30b9\u30af\u30c8\u30c3\u30d7\u30a2\u30d7\u30ea\u3067\u4f1a\u8b70\u3092\u958b\u59cb\u3057\u3088\u3046\u3068\u3057\u307e\u3057\u305f\u3002 \u518d\u5ea6\u8a66\u3057\u3066\u307f\u308b\u304b\u3001{{app}} Web\u30a2\u30d7\u30ea\u3067\u8d77\u52d5\u3057\u3066\u304f\u3060\u3055\u3044\u3002",descriptionWithoutWeb:"",downloadApp:"\u30a2\u30d7\u30ea\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3059\u308b",launchWebButton:"Web\u3067\u8d77\u52d5\u3059\u308b",openApp:"\u30a2\u30d7\u30ea\u3067\u7d9a\u304f",title:"{{app}} \u3067\u4f1a\u8b70\u3092\u958b\u59cb\u3059\u308b...",tryAgainButton:"\u30c7\u30b9\u30af\u30c8\u30c3\u30d7\u3067\u3082\u3046\u4e00\u5ea6\u304a\u8a66\u3057\u304f\u3060\u3055\u3044"},defaultLink:"\u4f8b\uff1a {{url}}",deviceError:{cameraError:"\u30ab\u30e1\u30e9\u3078\u306e\u30a2\u30af\u30bb\u30b9\u306b\u5931\u6557\u3057\u307e\u3057\u305f",cameraPermission:"\u30ab\u30e1\u30e9\u306e\u6a29\u9650\u3092\u53d6\u5f97\u3059\u308b\u969b\u306b\u30a8\u30e9\u30fc",microphoneError:"\u30de\u30a4\u30af\u3078\u306e\u30a2\u30af\u30bb\u30b9\u306b\u5931\u6557\u3057\u307e\u3057\u305f",microphonePermission:"\u30de\u30a4\u30af\u306e\u6a29\u9650\u3092\u53d6\u5f97\u3059\u308b\u969b\u306b\u30a8\u30e9\u30fc"},deviceSelection:{noPermission:"\u8a31\u53ef\u3055\u308c\u3066\u3044\u307e\u305b\u3093",previewUnavailable:"\u30d7\u30ec\u30d3\u30e5\u30fc\u3067\u304d\u307e\u305b\u3093",selectADevice:"\u30c7\u30d0\u30a4\u30b9\u3092\u9078\u629e",testAudio:""},dialog:{accessibilityLabel:{liveStreaming:"\u30e9\u30a4\u30d6\u30b9\u30c8\u30ea\u30fc\u30e0\uff1a"},allow:"\u8a31\u53ef",alreadySharedVideoMsg:"",alreadySharedVideoTitle:"\u4e00\u5ea6\u306b1\u3064\u306e\u5171\u6709\u30d3\u30c7\u30aa\u306e\u307f\u304c\u8a31\u53ef\u3055\u308c\u307e\u3059",applicationWindow:"\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30a6\u30a3\u30f3\u30c9\u30a6",Back:"\u623b\u308b",cameraConstraintFailedError:"\u3042\u306a\u305f\u306e\u30ab\u30e1\u30e9\u306f\u3001\u5fc5\u8981\u306a\u5236\u7d04\u306e\u3044\u304f\u3064\u304b\u3092\u6e80\u305f\u3057\u3066\u3044\u307e\u305b\u3093\u3002",cameraNotFoundError:"\u30ab\u30e1\u30e9\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002",cameraNotSendingData:"\u3042\u306a\u305f\u306e\u30ab\u30e1\u30e9\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u305b\u3093\u3002 \u4ed6\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u304c\u3053\u306e\u30c7\u30d0\u30a4\u30b9\u3092\u4f7f\u7528\u3057\u3066\u3044\u308b\u304b\u3069\u3046\u304b\u3092\u78ba\u8a8d\u3057\u3001\u8a2d\u5b9a\u30e1\u30cb\u30e5\u30fc\u304b\u3089\u5225\u306e\u30c7\u30d0\u30a4\u30b9\u3092\u9078\u629e\u3059\u308b\u304b\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u30ea\u30ed\u30fc\u30c9\u3057\u3066\u307f\u3066\u304f\u3060\u3055\u3044\u3002",cameraNotSendingDataTitle:"\u30ab\u30e1\u30e9\u306b\u30a2\u30af\u30bb\u30b9\u3067\u304d\u307e\u305b\u3093",cameraPermissionDeniedError:"\u3042\u306a\u305f\u306f\u30ab\u30e1\u30e9\u3092\u4f7f\u7528\u3059\u308b\u8a31\u53ef\u3092\u4e0e\u3048\u3066\u3044\u307e\u305b\u3093\u3002 \u3042\u306a\u305f\u306f\u307e\u3060\u4f1a\u8b70\u306b\u53c2\u52a0\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u304c\u3001\u4ed6\u306e\u53c2\u52a0\u8005\u306f\u3042\u306a\u305f\u3092\u898b\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002 \u3053\u306e\u554f\u984c\u3092\u89e3\u6c7a\u3059\u308b\u306b\u306f\u3001\u30a2\u30c9\u30ec\u30b9\u30d0\u30fc\u306e\u30ab\u30e1\u30e9\u30dc\u30bf\u30f3\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002",cameraUnknownError:"\u4e0d\u660e\u306a\u7406\u7531\u3067\u30ab\u30e1\u30e9\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002",cameraUnsupportedResolutionError:"\u304a\u4f7f\u3044\u306e\u30ab\u30e1\u30e9\u306f\u3001\u5fc5\u8981\u306a\u30d3\u30c7\u30aa\u89e3\u50cf\u5ea6\u3092\u30b5\u30dd\u30fc\u30c8\u3057\u3066\u3044\u307e\u305b\u3093\u3002",Cancel:"\u30ad\u30e3\u30f3\u30bb\u30eb",close:"\u9589\u3058\u308b",conferenceDisconnectMsg:"\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u63a5\u7d9a\u3092\u78ba\u8a8d\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002 {{seconds}} \u79d2\u3067\u518d\u63a5\u7d9a\u3057\u307e\u3059...",conferenceDisconnectTitle:"\u3042\u306a\u305f\u306f\u5207\u65ad\u3055\u308c\u307e\u3057\u305f\u3002",conferenceReloadMsg:"\u79c1\u305f\u3061\u306f\u3053\u308c\u3092\u89e3\u6c7a\u3057\u3088\u3046\u3068\u3057\u3066\u3044\u307e\u3059\u3002 {{seconds}} \u79d2\u3067\u518d\u63a5\u7d9a\u3057\u307e\u3059...",conferenceReloadTitle:"\u6b8b\u5ff5\u306a\u304c\u3089\u3001\u4f55\u304b\u304c\u9593\u9055\u3063\u3066\u3044\u307e\u3057\u305f\u3002",confirm:"\u78ba\u8a8d",confirmNo:"\u3044\u3044\u3048",confirmYes:"\u306f\u3044",connectError:"Oops! \u4f55\u304b\u304c\u3046\u307e\u304f\u3044\u304b\u305a\u3001\u4f1a\u8b70\u306b\u63a5\u7d9a\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002",connectErrorWithMsg:"Oops! \u4f55\u304b\u554f\u984c\u304c\u767a\u751f\u3057\u3001\u4f1a\u8b70\u306b\u63a5\u7d9a\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\uff1a {{msg}}",connecting:"\u63a5\u7d9a\u4e2d",contactSupport:"\u30b5\u30dd\u30fc\u30c8\u554f\u3044\u5408\u308f\u305b\u5148",copy:"\u30b3\u30d4\u30fc",dismiss:"\u5374\u4e0b",displayNameRequired:"",done:"\u5b8c\u4e86",enterDisplayName:"",error:"\u30a8\u30e9\u30fc",externalInstallationMsg:"\u30c7\u30b9\u30af\u30c8\u30c3\u30d7\u5171\u6709\u62e1\u5f35\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002",externalInstallationTitle:"\u62e1\u5f35\u6a5f\u80fd\u304c\u5fc5\u8981\u3067\u3059",goToStore:"\u30a6\u30a7\u30d6\u30b9\u30c8\u30a2\u306b\u884c\u304f",gracefulShutdown:"\u73fe\u5728\u3001\u30e1\u30f3\u30c6\u30ca\u30f3\u30b9\u306e\u305f\u3081\u30b5\u30fc\u30d3\u30b9\u304c\u505c\u6b62\u3057\u3066\u3044\u307e\u3059\u3002 \u5f8c\u3067\u3082\u3046\u4e00\u5ea6\u304a\u8a66\u3057\u304f\u3060\u3055\u3044\u3002",IamHost:"\u79c1\u306f\u30db\u30b9\u30c8\u3067\u3059",incorrectRoomLockPassword:"",incorrectPassword:"\u30e6\u30fc\u30b6\u30fc\u30cd\u30fc\u30e0\u307e\u305f\u306f\u30d1\u30b9\u30ef\u30fc\u30c9\u304c\u9055\u3044\u307e\u3059",inlineInstallationMsg:"\u30c7\u30b9\u30af\u30c8\u30c3\u30d7\u5171\u6709\u62e1\u5f35\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002",inlineInstallExtension:"\u4eca\u3059\u3050\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb",internalError:"Oops! \u4f55\u304b\u306e\u554f\u984c\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002 \u6b21\u306e\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\uff1a{{error}}",internalErrorTitle:"\u5185\u90e8\u30a8\u30e9\u30fc",kickMessage:"",kickParticipantButton:"\u8ffd\u3044\u51fa\u3059",kickParticipantDialog:"\u3053\u306e\u53c2\u52a0\u8005\u3092\u8ffd\u3044\u51fa\u3057\u307e\u3059\u304b",kickParticipantTitle:"",kickTitle:"",liveStreaming:"\u30e9\u30a4\u30d6\u30b9\u30c8\u30ea\u30fc\u30df\u30f3\u30b0",liveStreamingDisabledForGuestTooltip:"\u30b2\u30b9\u30c8\u304c\u30e9\u30a4\u30d6\u30b9\u30c8\u30ea\u30fc\u30df\u30f3\u30b0\u304c\u958b\u59cb\u3067\u304d\u307e\u305b\u3093",liveStreamingDisabledTooltip:"",lockMessage:"\u4f1a\u8b70\u3092\u30ed\u30c3\u30af\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002",lockRoom:"",lockTitle:"\u30ed\u30c3\u30af\u306b\u5931\u6557\u3057\u307e\u3057\u305f",logoutQuestion:"\u30ed\u30b0\u30a2\u30a6\u30c8\u3057\u3066\u4f1a\u8b70\u3092\u505c\u6b62\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b\uff1f",logoutTitle:"\u30ed\u30b0\u30a2\u30a6\u30c8",maxUsersLimitReached:"",maxUsersLimitReachedTitle:"",micConstraintFailedError:"\u3042\u306a\u305f\u306e\u30de\u30a4\u30af\u30ed\u30d5\u30a9\u30f3\u306f\u3001\u5fc5\u8981\u306a\u5236\u7d04\u306e\u3044\u304f\u3064\u304b\u3092\u6e80\u305f\u3057\u3066\u3044\u307e\u305b\u3093\u3002",micNotFoundError:"\u30de\u30a4\u30af\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002",micNotSendingData:"",micNotSendingDataTitle:"",micPermissionDeniedError:"\u30de\u30a4\u30af\u3092\u4f7f\u7528\u3059\u308b\u6a29\u9650\u304c\u3042\u308a\u307e\u305b\u3093\u3002 \u3042\u306a\u305f\u306f\u307e\u3060\u4f1a\u8b70\u306b\u53c2\u52a0\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u304c\u3001\u4ed6\u306e\u4eba\u306f\u3042\u306a\u305f\u306e\u58f0\u3092\u805e\u3051\u307e\u305b\u3093\u3002 \u3053\u306e\u554f\u984c\u3092\u89e3\u6c7a\u3059\u308b\u306b\u306f\u3001\u30a2\u30c9\u30ec\u30b9\u30d0\u30fc\u306e\u30ab\u30e1\u30e9\u30dc\u30bf\u30f3\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002",micUnknownError:"\u4e0d\u660e\u306a\u7406\u7531\u3067\u30de\u30a4\u30af\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002",muteParticipantBody:"\u3042\u306a\u305f\u306f\u305d\u306e\u30df\u30e5\u30fc\u30c8\u3092\u89e3\u9664\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u304c\u3001\u5f7c\u3089\u306f\u3044\u3064\u3067\u3082\u81ea\u5206\u81ea\u8eab\u306e\u30df\u30e5\u30fc\u30c8\u3092\u89e3\u9664\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002",muteParticipantButton:"\u30df\u30e5\u30fc\u30c8",muteParticipantDialog:"\u3053\u306e\u53c2\u52a0\u8005\u3092\u30df\u30e5\u30fc\u30c8\u3057\u307e\u3059\u304b\u3002\u3042\u306a\u305f\u304c\u53d6\u308a\u623b\u305b\u307e\u305b\u3093\u304c\u3001\u672c\u4eba\u304c\u81ea\u5206\u3067\u3044\u3064\u3067\u3082\u89e3\u9664\u3067\u3044\u307e\u3059\u3002",muteParticipantTitle:"",Ok:"Ok",passwordLabel:"",passwordNotSupported:"\u30df\u30fc\u30c6\u30a3\u30f3\u30b0\u30d1\u30b9\u30ef\u30fc\u30c9\u306e\u8a2d\u5b9a\u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002",passwordNotSupportedTitle:"",passwordRequired:"",popupError:"\u3042\u306a\u305f\u306e\u30d6\u30e9\u30a6\u30b6\u306f\u3053\u306e\u30b5\u30a4\u30c8\u304b\u3089\u306e\u30dd\u30c3\u30d7\u30a2\u30c3\u30d7\u30a6\u30a3\u30f3\u30c9\u30a6\u3092\u30d6\u30ed\u30c3\u30af\u3057\u3066\u3044\u307e\u3059\u3002 \u30d6\u30e9\u30a6\u30b6\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u8a2d\u5b9a\u3067\u30dd\u30c3\u30d7\u30a2\u30c3\u30d7\u3092\u6709\u52b9\u306b\u3057\u3066\u304b\u3089\u3001\u3082\u3046\u4e00\u5ea6\u304a\u8a66\u3057\u304f\u3060\u3055\u3044\u3002",popupErrorTitle:"\u30dd\u30c3\u30d7\u30a2\u30c3\u30d7\u304c\u30d6\u30ed\u30c3\u30af\u3055\u308c\u307e\u3057\u305f",recording:"\u9332\u753b",recordingDisabledForGuestTooltip:"\u30b2\u30b9\u30c8\u304c\u9332\u753b\u958b\u59cb\u3067\u304d\u307e\u305b\u3093\u3002",recordingDisabledTooltip:"",rejoinNow:"\u4eca\u3059\u3050\u518d\u53c2\u52a0",remoteControlAllowedMessage:"{{user}} \u306f\u3042\u306a\u305f\u306e\u30ea\u30e2\u30fc\u30c8\u30b3\u30f3\u30c8\u30ed\u30fc\u30eb\u8981\u6c42\u3092\u53d7\u3051\u5165\u308c\u307e\u3057\u305f\uff01",remoteControlDeniedMessage:"{{user}} \u306f\u3042\u306a\u305f\u306e\u30ea\u30e2\u30fc\u30c8\u30b3\u30f3\u30c8\u30ed\u30fc\u30eb\u8981\u6c42\u3092\u62d2\u5426\u3057\u307e\u3057\u305f\uff01",remoteControlErrorMessage:"\u30ea\u30e2\u30fc\u30c8\u30b3\u30f3\u30c8\u30ed\u30fc\u30eb\u306e\u30a2\u30af\u30bb\u30b9\u8a31\u53ef\u3092 {{user}} \u304b\u3089\u8981\u6c42\u3057\u3088\u3046\u3068\u3057\u3066\u3044\u308b\u3068\u304d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\uff01",remoteControlRequestMessage:"{{user}} \u306b\u30c7\u30b9\u30af\u30c8\u30c3\u30d7\u306e\u30ea\u30e2\u30fc\u30c8\u30b3\u30f3\u30c8\u30ed\u30fc\u30eb\u3092\u8a31\u53ef\u3057\u307e\u3059\u304b\uff1f",remoteControlShareScreenWarning:"\u300c\u8a31\u53ef\u300d\u3092\u62bc\u3059\u3068\u753b\u9762\u3092\u5171\u6709\u3059\u308b\u3053\u3068\u306b\u6ce8\u610f\u3057\u3066\u304f\u3060\u3055\u3044\uff01",remoteControlStopMessage:"\u30ea\u30e2\u30fc\u30c8\u30b3\u30f3\u30c8\u30ed\u30fc\u30eb\u30bb\u30c3\u30b7\u30e7\u30f3\u304c\u7d42\u4e86\u3057\u307e\u3057\u305f\uff01",remoteControlTitle:"\u30ea\u30e2\u30fc\u30c8\u30c7\u30b9\u30af\u30c8\u30c3\u30d7\u30b3\u30f3\u30c8\u30ed\u30fc\u30eb",Remove:"\u9664\u53bb",removePassword:"",removeSharedVideoMsg:"\u5171\u6709\u30d3\u30c7\u30aa\u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b\uff1f",removeSharedVideoTitle:"\u5171\u6709\u30d3\u30c7\u30aa\u3092\u524a\u9664\u3059\u308b",reservationError:"\u4e88\u7d04\u30b7\u30b9\u30c6\u30e0\u30a8\u30e9\u30fc",reservationErrorMsg:"\u30a8\u30e9\u30fc\u30b3\u30fc\u30c9: {{code}}, \u30e1\u30c3\u30bb\u30fc\u30b8: {{msg}}",retry:"\u518d\u8a66\u884c",screenSharingFailedToInstall:"Oops! \u753b\u9762\u5171\u6709\u62e1\u5f35\u6a5f\u80fd\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002",screenSharingFailedToInstallTitle:"\u753b\u9762\u5171\u6709\u62e1\u5f35\u6a5f\u80fd\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u306b\u5931\u6557\u3057\u307e\u3057\u305f",screenSharingFirefoxPermissionDeniedError:"",screenSharingFirefoxPermissionDeniedTitle:"Oops! \u753b\u9762\u5171\u6709\u3092\u958b\u59cb\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\uff01",screenSharingPermissionDeniedError:"Oops! \u753b\u9762\u5171\u6709\u306e\u62e1\u5f35\u30a2\u30af\u30bb\u30b9\u8a31\u53ef\u3067\u4f55\u304b\u554f\u984c\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002 \u518d\u8aad\u307f\u8fbc\u307f\u3057\u3066\u3082\u3046\u4e00\u5ea6\u304a\u8a66\u3057\u304f\u3060\u3055\u3044\u3002",serviceUnavailable:"\u30b5\u30fc\u30d3\u30b9\u306f\u5229\u7528\u3067\u304d\u307e\u305b\u3093",sessTerminated:"\u901a\u8a71\u7d42\u4e86",Share:"\u5171\u6709",shareVideoLinkError:"\u6b63\u3057\u3044YouTube\u306e\u30ea\u30f3\u30af\u3092\u63d0\u4f9b\u3057\u3066\u304f\u3060\u3055\u3044\u3002",shareVideoTitle:"\u52d5\u753b\u3092\u5171\u6709\u3059\u308b",shareYourScreen:"\u753b\u9762\u3092\u5171\u6709\u3059\u308b",shareYourScreenDisabled:"",shareYourScreenDisabledForGuest:"",startLiveStreaming:"\u30e9\u30a4\u30d6\u30b9\u30c8\u30ea\u30fc\u30e0\u3092\u958b\u59cb\u3059\u308b",startRecording:"\u9332\u753b\u3092\u958b\u59cb",startRemoteControlErrorMessage:"\u30ea\u30e2\u30fc\u30c8\u30b3\u30f3\u30c8\u30ed\u30fc\u30eb\u30bb\u30c3\u30b7\u30e7\u30f3\u306e\u958b\u59cb\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002",stopLiveStreaming:"\u30e9\u30a4\u30d6\u30b9\u30c8\u30ea\u30fc\u30df\u30f3\u30b0\u3092\u505c\u6b62\u3059\u308b",stopRecording:"\u9332\u753b\u3092\u505c\u6b62\u3059\u308b",stopRecordingWarning:"\u9332\u753b\u3092\u505c\u6b62\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b\uff1f",stopStreamingWarning:"\u30e9\u30a4\u30d6\u30b9\u30c8\u30ea\u30fc\u30df\u30f3\u30b0\u3092\u505c\u6b62\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b\uff1f",streamKey:"\u30e9\u30a4\u30d6\u30b9\u30c8\u30ea\u30fc\u30e0\u30ad\u30fc",Submit:"\u6295\u7a3f",thankYou:"{{appName}} \u3092\u4f7f\u7528\u3057\u3066\u3044\u305f\u3060\u304d\u3042\u308a\u304c\u3068\u3046\u3054\u3056\u3044\u307e\u3059\uff01",token:"\u30c8\u30fc\u30af\u30f3",tokenAuthFailed:"\u7533\u3057\u8a33\u3042\u308a\u307e\u305b\u3093\u304c\u3001\u3053\u306e\u901a\u8a71\u306b\u53c2\u52a0\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002",tokenAuthFailedTitle:"\u8a8d\u8a3c\u306b\u5931\u6557\u3057\u307e\u3057\u305f",transcribing:"\u66f8\u304d\u5199\u3057",unlockRoom:"",userPassword:"\u30e6\u30fc\u30b6\u30fc\u306e\u30d1\u30b9\u30ef\u30fc\u30c9",WaitForHostMsg:"",WaitForHostMsgWOk:"",WaitingForHost:"\u30db\u30b9\u30c8\u3092\u5f85\u3063\u3066\u3044\u307e\u3059...",Yes:"\u306f\u3044",yourEntireScreen:"\u3042\u306a\u305f\u306e\u753b\u9762\u5168\u4f53"},"\x05dialog":{accessibilityLabel:{}},dialOut:{statusMessage:"\u306f\u73fe\u5728 {{status}} \u3067\u3059"},feedback:{average:"\u666e\u901a",bad:"\u60aa\u3044",detailsLabel:"\u305d\u308c\u306b\u3064\u3044\u3066\u3082\u3063\u3068\u6559\u3048\u3066\u304f\u3060\u3055\u3044\u3002",good:"\u826f\u3044",rateExperience:"\u30d3\u30c7\u30aa\u901a\u8a71\u3092\u8a55\u4fa1\u3057\u3066\u304f\u3060\u3055\u3044",veryBad:"\u3068\u3066\u3082\u60aa\u3044",veryGood:"\u3068\u3066\u3082\u826f\u3044"},incomingCall:{answer:"",audioCallTitle:"",decline:"\u5374\u4e0b",productLabel:"",videoCallTitle:"\u30d3\u30c7\u30aa\u901a\u8a71\u7740\u4fe1"},info:{accessibilityLabel:"\u60c5\u5831\u3092\u8868\u793a\u3059\u308b",addPassword:"",cancelPassword:"",conferenceURL:"\u30ea\u30f3\u30af\uff1a",country:"\u56fd",dialANumber:"",dialInConferenceID:"PIN:",dialInNotSupported:"\u7533\u3057\u8a33\u3042\u308a\u307e\u305b\u3093\u304c\u3001\u73fe\u5728\u30c0\u30a4\u30e4\u30eb\u30a4\u30f3\u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002",dialInNumber:"\u30c0\u30a4\u30a2\u30eb\u30a4\u30f3\uff1a",dialInSummaryError:"",dialInTollFree:"",genericError:"\u304a\u3063\u3068\u3001\u4f55\u304b\u304c\u9593\u9055\u3063\u3066\u3044\u307e\u3057\u305f\u3002",inviteLiveStream:"\u3053\u306e\u4f1a\u8b70\u306e\u30e9\u30a4\u30d6\u30b9\u30c8\u30ea\u30fc\u30e0\u3092\u8868\u793a\u3059\u308b\u306b\u306f\u3001\u3053\u306e\u30ea\u30f3\u30af\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u304f\u3060\u3055\u3044\uff1a{{url}}",invitePhone:"",invitePhoneAlternatives:"",inviteURLFirstPartGeneral:"",inviteURLFirstPartPersonal:"",inviteURLSecondPart:"",liveStreamURL:"\u30e9\u30a4\u30d6\u30b9\u30c8\u30ea\u30fc\u30e0\uff1a",moreNumbers:"\u305d\u306e\u4ed6\u306e\u756a\u53f7",noNumbers:"\u30c0\u30a4\u30e4\u30eb\u30a4\u30f3\u756a\u53f7\u306f\u3042\u308a\u307e\u305b\u3093\u3002",noPassword:"\u306a\u3057",noRoom:"\u30c0\u30a4\u30e4\u30eb\u30a4\u30f3\u3059\u308b\u90e8\u5c4b\u304c\u6307\u5b9a\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3067\u3057\u305f\u3002",numbers:"\u30c0\u30a4\u30e4\u30eb\u30a4\u30f3\u756a\u53f7",password:"",title:"\u5171\u6709",tooltip:"\u3053\u306e\u4f1a\u8b70\u306e\u30ea\u30f3\u30af\u3068\u30c0\u30a4\u30e4\u30eb\u30a4\u30f3\u60c5\u5831\u3092\u5171\u6709\u3059\u308b",label:"\u30df\u30fc\u30c6\u30a3\u30f3\u30b0\u60c5\u5831"},"\x05info":{},inviteDialog:{alertText:"",header:"\u62db\u5f85",searchCallOnlyPlaceholder:"\u643a\u5e2f\u756a\u53f7\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044",searchPeopleOnlyPlaceholder:"\u53c2\u52a0\u8005\u3092\u691c\u7d22\u3059\u308b",searchPlaceholder:"\u30cb\u30c3\u30af\u30cd\u30fc\u30e0\u3001\u307e\u305f\u306f\u96fb\u8a71\u756a\u53f7",send:"\u9001\u4fe1"},inlineDialogFailure:{msg:"\u79c1\u305f\u3061\u306f\u5c11\u3057\u3064\u307e\u305a\u304d\u307e\u3057\u305f\u3002",retry:"\u518d\u8a66\u884c\u3059\u308b",support:"\u30b5\u30dd\u30fc\u30c8",supportMsg:"\u3053\u308c\u304c\u8d77\u3053\u3063\u3066\u3044\u308b\u5834\u5408\u306f\u3001"},keyboardShortcuts:{focusLocal:"\u81ea\u5206\u306e\u30d3\u30c7\u30aa\u306b\u7126\u70b9",focusRemote:"\u4ed6\u306e\u30e1\u30f3\u30d0\u30fc\u306e\u30d3\u30c7\u30aa\u306b\u7126\u70b9",fullScreen:"\u5168\u753b\u9762\u8868\u793a/\u7d42\u4e86",keyboardShortcuts:"\u30ad\u30fc\u30dc\u30fc\u30c9\u30b7\u30e7\u30fc\u30c8\u30ab\u30c3\u30c8",localRecording:"\u30ed\u30fc\u30ab\u30eb\u9332\u753b\u30b3\u30f3\u30c8\u30ed\u30fc\u30eb\u306e\u8868\u793a\uff0f\u975e\u8868\u793a",mute:"\u30de\u30a4\u30af\u306e\u6d88\u97f3 ( \u30df\u30e5\u30fc\u30c8 )",pushToTalk:"\u8a71\u3059\u305f\u3081\u306b\u62bc\u3059",raiseHand:"\u624b\u3092\u4e0a\u3052\u308b/\u4e0b\u3052\u308b",showSpeakerStats:"\u6f14\u8aac\u8005\u306e\u30c7\u30fc\u30bf\u3092\u8868\u793a",toggleChat:"\u30c1\u30e3\u30c3\u30c8\u3092\u8868\u793a/\u975e\u8868\u793a",toggleFilmstrip:"\u52d5\u753b\u30b5\u30e0\u30cd\u30a4\u30eb\u8868\u793a/\u975e\u8868\u793a",toggleScreensharing:"\u30ab\u30e1\u30e9\u3068\u753b\u9762\u5171\u6709\u3092\u5207\u308a\u66ff\u3048\u308b",toggleShortcuts:"\u30ad\u30fc\u30dc\u30fc\u30c9 \u30b7\u30e7\u30fc\u30c8\u30ab\u30c3\u30c8\u3092\u8868\u793a",videoMute:"\u30ab\u30e1\u30e9\u3092\u6709\u52b9/\u7121\u52b9"},"\x05keyboardShortcuts":{},liveStreaming:{busy:"\u79c1\u305f\u3061\u306f\u30b9\u30c8\u30ea\u30fc\u30df\u30f3\u30b0\u30ea\u30bd\u30fc\u30b9\u3092\u89e3\u653e\u3059\u308b\u305f\u3081\u306b\u53d6\u308a\u7d44\u3093\u3067\u3044\u307e\u3059\u3002 \u6570\u5206\u5f8c\u306b\u3082\u3046\u4e00\u5ea6\u304a\u8a66\u3057\u304f\u3060\u3055\u3044\u3002",busyTitle:"\u3059\u3079\u3066\u306e\u30b9\u30c8\u30ea\u30fc\u30de\u30fc\u306f\u73fe\u5728\u30d3\u30b8\u30fc\u72b6\u614b\u3067\u3059",changeSignIn:"\u30a2\u30ab\u30a6\u30f3\u30c8\u3092\u5207\u308a\u66ff\u3048\u307e\u3059\u3002",choose:"\u30e9\u30a4\u30d6\u30b9\u30c8\u30ea\u30fc\u30e0\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044",chooseCTA:"\u30b9\u30c8\u30ea\u30fc\u30df\u30f3\u30b0\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u9078\u629e\u3057\u307e\u3059\u3002 \u3042\u306a\u305f\u306f\u73fe\u5728\u3001{{email}} \u3068\u3057\u3066\u30ed\u30b0\u30a4\u30f3\u3057\u3066\u3044\u307e\u3059\u3002",enterStreamKey:"YouTube\u306e\u30e9\u30a4\u30d6\u30b9\u30c8\u30ea\u30fc\u30e0\u30ad\u30fc\u3092\u3053\u3053\u306b\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002",error:"\u30e9\u30a4\u30d6\u30b9\u30c8\u30ea\u30fc\u30df\u30f3\u30b0\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 \u3082\u3046\u4e00\u5ea6\u304a\u8a66\u3057\u304f\u3060\u3055\u3044\u3002",errorAPI:"YouTube\u30d6\u30ed\u30fc\u30c9\u30ad\u30e3\u30b9\u30c8\u306b\u30a2\u30af\u30bb\u30b9\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002 \u3082\u3046\u4e00\u5ea6\u30ed\u30b0\u30a4\u30f3\u3057\u3066\u304f\u3060\u3055\u3044\u3002",errorLiveStreamNotEnabled:"",expandedOff:"",expandedOn:"",expandedPending:"",failedToStart:"\u30e9\u30a4\u30d6\u30b9\u30c8\u30ea\u30fc\u30df\u30f3\u30b0\u306e\u958b\u59cb\u306b\u5931\u6557\u3057\u307e\u3057\u305f",getStreamKeyManually:"",invalidStreamKey:"\u30e9\u30a4\u30d6\u30b9\u30c8\u30ea\u30fc\u30df\u30f3\u30b0\u30ad\u30fc\u304c\u9593\u306b\u5408\u3044\u307e\u3057\u305f\u3002",off:"\u30e9\u30a4\u30d6\u30b9\u30c8\u30ea\u30fc\u30df\u30f3\u30b0\u304c\u505c\u6b62\u3057\u307e\u3057\u305f",on:"\u30e9\u30a4\u30d6\u30b9\u30c8\u30ea\u30fc\u30df\u30f3\u30b0",pending:"\u30e9\u30a4\u30d6\u30b9\u30c8\u30ea\u30fc\u30e0\u3092\u958b\u59cb\u3057\u3066\u3044\u307e\u3059...",serviceName:"\u30e9\u30a4\u30d6\u30b9\u30c8\u30ea\u30fc\u30df\u30f3\u30b0\u30b5\u30fc\u30d3\u30b9",signedInAs:"",signIn:"Google\u3067\u30ed\u30b0\u30a4\u30f3",signInCTA:"\u30ed\u30b0\u30a4\u30f3\u3059\u308b\u304b\u3001YouTube\u306e\u30e9\u30a4\u30d6\u30b9\u30c8\u30ea\u30fc\u30e0\u30ad\u30fc\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002",signOut:"\u30b5\u30a4\u30f3\u30a2\u30a6\u30c8",start:"\u30e9\u30a4\u30d6\u30b9\u30c8\u30ea\u30fc\u30e0\u3092\u958b\u59cb\u3059\u308b",streamIdHelp:"\u3053\u308c\u306f\u4f55\u3067\u3059\u304b\uff1f",unavailableTitle:"\u30e9\u30a4\u30d6\u30b9\u30c8\u30ea\u30fc\u30df\u30f3\u30b0\u306f\u5229\u7528\u3067\u304d\u307e\u305b\u3093"},"\x05liveStreaming":{},localRecording:{clientState:{off:"\u30aa\u30d5",on:"\u30aa\u30f3",unknown:"\u4e0d\u660e"},dialogTitle:"",duration:"",durationNA:"",encoding:"",label:"LOR",labelToolTip:"\u30ed\u30fc\u30ab\u30eb\u30ec\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u5b9f\u65bd\u4e2d",localRecording:"",me:"\u79c1",messages:{engaged:"\u30ed\u30fc\u30ab\u30eb\u30ec\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u5b9f\u65bd",finished:"",finishedModerator:"",notModerator:""},moderator:"\u30e2\u30c7\u30ec\u30fc\u30bf\u30fc",no:"\u3044\u3044\u3048",participant:"",participantStats:"",sessionToken:"",start:"\u9332\u753b\u3092\u958b\u59cb",stop:"\u9332\u753b\u3092\u505c\u6b62\u3059\u308b",yes:"\u306f\u3044"},"\x05localRecording":{},lockRoomPassword:"\u30d1\u30b9\u30ef\u30fc\u30c9",lockRoomPasswordUppercase:"\u30d1\u30b9\u30ef\u30fc\u30c9",me:"\u79c1",notify:{connectedOneMember:"",connectedThreePlusMembers:"",connectedTwoMembers:"",disconnected:"\u5207\u65ad\u3055\u308c\u307e\u3057\u305f",focus:"",focusFail:"",grantedTo:"{{to}} \u3078\u30e2\u30c7\u30ec\u30fc\u30bf\u30fc\u306e\u6a29\u5229\u304c\u4ed8\u4e0e\u3055\u308c\u307e\u3057\u305f\uff01",invitedOneMember:"",invitedThreePlusMembers:"",invitedTwoMembers:"",kickParticipant:"",me:"\u79c1",moderator:"\u30e2\u30c7\u30ec\u30fc\u30bf\u30fc\u306e\u6a29\u5229\u304c\u4ed8\u4e0e\u3055\u308c\u307e\u3057\u305f\uff01",muted:"$t(notify.somebody) \u3078\u30e2\u30c7\u30ec\u30fc\u30bf\u30fc\u306e\u6a29\u5229\u304c\u4ed8\u4e0e\u3055\u308c\u307e\u3057\u305f\uff01",mutedTitle:"\u3042\u306a\u305f\u306f\u30df\u30e5\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u3059\uff01",mutedRemotelyTitle:"",mutedRemotelyDescription:"",passwordRemovedRemotely:"",passwordSetRemotely:"",raisedHand:"",somebody:"\u8ab0\u304b",startSilentTitle:"",startSilentDescription:"",suboptimalExperienceDescription:"",suboptimalExperienceTitle:"",unmute:"",newDeviceCameraTitle:"",newDeviceAudioTitle:"",newDeviceAction:""},passwordSetRemotely:"",passwordDigitsOnly:"",poweredby:"powered by",presenceStatus:{busy:"",calling:"",connected:"\u63a5\u7d9a\u3055\u308c\u307e\u3057\u305f",connecting:"\u63a5\u7d9a\u4e2d",connecting2:"\u63a5\u7d9a\u4e2d",disconnected:"\u5207\u65ad\u3055\u308c\u307e\u3057\u305f",expired:"",ignored:"",initializingCall:"",invited:"\u62db\u5f85",rejected:"",ringing:"\u7740\u4fe1\u3057\u3066\u3044\u308b\u30fb\u30fb"},"\x05presenceStatus":{},profile:{setDisplayNameLabel:"\u8868\u793a\u540d\u3092\u8a2d\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044",setEmailInput:"\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044",setEmailLabel:"\u30e1\u30fc\u30eb\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044",title:"\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb"},recording:{authDropboxText:"Dropbox\u306b\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9",availableSpace:"",beta:"BETA",busy:"\u79c1\u305f\u3061\u306f\u3001\u9332\u753b\u30ea\u30bd\u30fc\u30b9\u306e\u89e3\u653e\u306b\u53d6\u308a\u7d44\u3093\u3067\u3044\u307e\u3059\u3002 \u6570\u5206\u5f8c\u306b\u3082\u3046\u4e00\u5ea6\u304a\u8a66\u3057\u304f\u3060\u3055\u3044\u3002",busyTitle:"\u3059\u3079\u3066\u306e\u30ec\u30b3\u30fc\u30c0\u30fc\u304c\u73fe\u5728\u30d3\u30b8\u30fc\u72b6\u614b\u3067\u3059",error:"\u9332\u753b\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 \u3082\u3046\u4e00\u5ea6\u304a\u8a66\u3057\u304f\u3060\u3055\u3044\u3002",expandedOff:"\u9332\u753b\u304c\u505c\u6b62\u3057\u307e\u3057\u305f",expandedOn:"",expandedPending:"\u9332\u753b\u958b\u59cb\u3057\u3066\u3044\u308b\u3002\u3002\u3002",failedToStart:"\u9332\u753b\u3092\u958b\u59cb\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f",fileSharingdescription:"\u9332\u753b\u30c7\u30fc\u30bf\u3092\u5171\u6709\u3059\u308b",live:"\u30e9\u30a4\u30d6",loggedIn:"",off:"\u9332\u753b\u304c\u505c\u6b62\u3057\u307e\u3057\u305f",on:"\u9332\u753b",pending:"\u30df\u30fc\u30c6\u30a3\u30f3\u30b0\u306e\u767b\u9332\u3092\u6e96\u5099\u3057\u3066\u3044\u307e\u3059\u3002\u3002\u3002",rec:"REC",serviceDescription:"\u30d3\u30c7\u30aa\u304c\u9332\u753b\u30b5\u30fc\u30d3\u30b9\u3067\u9332\u753b\u3055\u308c\u307e\u3059",serviceName:"\u8a18\u9332\u30b5\u30fc\u30d3\u30b9",signIn:"\u30b5\u30a4\u30f3\u30a4\u30f3",signOut:"\u30b5\u30a4\u30f3\u30a2\u30a6\u30c8",unavailable:"Oops! {{serviceName}} \u306f\u73fe\u5728\u4f7f\u7528\u3067\u304d\u307e\u305b\u3093\u3002 \u79c1\u305f\u3061\u306f\u3053\u306e\u554f\u984c\u306e\u89e3\u6c7a\u306b\u53d6\u308a\u7d44\u3093\u3067\u3044\u307e\u3059\u3002 \u5f8c\u3067\u3082\u3046\u4e00\u5ea6\u304a\u8a66\u3057\u304f\u3060\u3055\u3044\u3002",unavailableTitle:"\u9332\u753b\u3067\u304d\u307e\u305b\u3093"},"\x05recording":{},sectionList:{pullToRefresh:"\u30d7\u30eb\u3057\u3066\u30ea\u30d5\u30ec\u30c3\u30b7\u30e5\u3059\u308b"},settings:{calendar:{about:"",disconnect:"\u5207\u65ad\u3055\u308c\u307e\u3057\u305f",microsoftSignIn:"\u30de\u30a4\u30af\u30ed\u30bd\u30d5\u30c8\u30a2\u30ab\u30a6\u30f3\u30c8\u3067\u30ed\u30b0\u30a4\u30f3",signedIn:"",title:"\u30ab\u30ec\u30f3\u30c0\u30fc"},devices:"\u7aef\u672b",followMe:"\u5168\u54e1\u30d5\u30a9\u30ed\u30fc\u30df\u30fc",language:"\u8a00\u8a9e",loggedIn:"",moderator:"\u30e2\u30c7\u30ec\u30fc\u30bf\u30fc",more:"\u305d\u306e\u4ed6",name:"\u540d\u524d",noDevice:"\u306a\u3057",selectAudioOutput:"\u97f3\u58f0\u51fa\u529b",selectCamera:"\u30ab\u30e1\u30e9",selectMic:"\u30de\u30a4\u30af",startAudioMuted:"\u5168\u54e1\u30df\u30e5\u30fc\u30c8\u306b\u3059\u308b",startVideoMuted:"\u5168\u54e1\u975e\u8868\u793a\u306b\u3059\u308b",title:"\u8a2d\u5b9a"},"\x05settings":{calendar:{}},settingsView:{alertOk:"OK",alertTitle:"Warning",alertURLText:"\u5165\u529b\u3055\u308c\u305f\u30b5\u30fc\u30d0\u30fc\u306eURL\u306f\u7121\u52b9\u3067\u3059",buildInfoSection:"",conferenceSection:"\u4f1a\u8b70",displayName:"\u8868\u793a\u540d",email:"E\u30e1\u30fc\u30eb",header:"\u8a2d\u5b9a",profileSection:"\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb",serverURL:"\u30b5\u30fc\u30d0\u30fc\u306eURL",startWithAudioMuted:"\u30aa\u30fc\u30c7\u30a3\u30aa\u3092\u30df\u30e5\u30fc\u30c8\u3067\u958b\u59cb",startWithVideoMuted:"\u30d3\u30c7\u30aa\u3092\u30df\u30e5\u30fc\u30c8\u3067\u958b\u59cb",version:"\u30d0\u30fc\u30b8\u30e7\u30f3"},share:{dialInfoText:"",mainText:""},speaker:"\u30b9\u30d4\u30fc\u30ab\u30fc",speakerStats:{hours:"{{count}} \u79d2",minutes:"{{count}} \u79d2",name:"\u540d\u524d",seconds:"{{count}} \u79d2",speakerStats:"\u8a71\u8005\u306e\u7d71\u8a08",speakerTime:"\u8a71\u3059\u6642\u9593"},"\x05speakerStats":{},startupoverlay:{policyText:" ",title:"{{app}} \u3092\u4f7f\u7528\u3059\u308b\u306b\u306f\u3001\u30de\u30a4\u30af\u3068\u30ab\u30e1\u30e9\u304c\u5fc5\u8981\u3067\u3059\u3002"},"\x05startupoverlay":{},suspendedoverlay:{rejoinKeyTitle:"\u518d\u53c2\u52a0",text:"\u518d\u63a5\u7d9a\u3059\u308b\u306b\u306f\u3001\u518d\u53c2\u52a0 \u30dc\u30bf\u30f3\u3092\u62bc\u3057\u3066\u304f\u3060\u3055\u3044\u3002",title:"\u3053\u306e\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u304c\u30b9\u30ea\u30fc\u30d7\u72b6\u614b\u306b\u306a\u3063\u305f\u305f\u3081\u3001\u30d3\u30c7\u30aa\u901a\u8a71\u304c\u4e2d\u65ad\u3055\u308c\u307e\u3057\u305f\u3002"},toolbar:{accessibilityLabel:{audioOnly:"\u97f3\u58f0\u306e\u307f\u306b\u5207\u308a\u66ff\u3048\u308b",audioRoute:"\u30b5\u30a6\u30f3\u30c9\u30c7\u30d0\u30a4\u30b9\u3092\u9078\u629e\u3059\u308b",callQuality:"",cc:"\u30b5\u30d6\u30bf\u30a4\u30c8\u30eb\u306b\u5207\u308a\u66ff\u3048\u308b",chat:"\u30c1\u30e3\u30c3\u30c8\u753b\u9762\u306b\u5207\u308a\u66ff\u3048\u308b",document:"\u5168\u753b\u9762\u306b\u5207\u308a\u66ff\u3048\u308b",feedback:"\u30d5\u30a3\u30fc\u30c9\u30d0\u30c3\u30af\u3092\u6b8b\u3059",fullScreen:"\u5168\u753b\u9762\u306b\u5207\u308a\u66ff\u3048\u308b",hangup:"\u96fb\u8a71\u3092\u304b\u3051\u308b",invite:"\u30e1\u30f3\u30d0\u30fc\u3092\u62db\u5f85\u3059\u308b",kick:"\u53c2\u52a0\u8005\u3092\u8ffd\u3044\u51fa\u3059",localRecording:"\u30ed\u30fc\u30ab\u30eb\u30ec\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u30b3\u30f3\u30c8\u30ed\u30fc\u30eb\u306b\u5207\u308a\u66ff\u3048\u308b",lockRoom:"\u30df\u30fc\u30c6\u30a3\u30f3\u30b0\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u5207\u308a\u66ff\u3048\u308b",moreActions:"\u3088\u308a\u591a\u304f\u306e\u64cd\u4f5c\u30e1\u30cb\u30e5\u30fc\u306b\u5207\u308a\u66ff\u3048\u308b",moreActionsMenu:"\u4ed6\u306e\u30e1\u30cb\u30e5\u30fc",mute:"\u30df\u30e5\u30fc\u30c8\u30e2\u30fc\u30c9\u3092\u5207\u308a\u66ff\u3048\u308b",pip:"\u30d4\u30af\u30c1\u30e3\u30fc\u30a4\u30f3\u30d4\u30af\u30c1\u30e3\u30fc\u30e2\u30fc\u30c9\u3092\u5207\u308a\u66ff\u3048\u308b",profile:"\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u7de8\u96c6",raiseHand:"\u624b\u3092\u6319\u3052\u308b\u30fb\u4e0b\u3052\u308b",recording:"\u30ec\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u306b\u5207\u308a\u66ff\u3048\u308b",remoteMute:"\u53c2\u52a0\u8005\u3092\u8ffd\u3044\u51fa\u3059",Settings:"\u8a2d\u5b9a\u306b\u5207\u308a\u66ff\u3048\u308b",sharedvideo:"Youtube\u30d3\u30c7\u30aa\u5171\u6709\u306b\u5207\u308a\u66ff\u3048\u308b",shareRoom:"\u8ab0\u304b\u3092\u62db\u5f85\u3059\u308b",shareYourScreen:"\u753b\u9762\u5171\u6709\u306b\u5207\u308a\u66ff\u3048\u308b",shortcuts:"\u30b7\u30e7\u30fc\u30c8\u30ab\u30c3\u30c8\u306b\u5207\u308a\u66ff\u3048\u308b",show:"",speakerStats:"\u30b9\u30d4\u30fc\u30ab\u30fc\u7d71\u8a08\u306b\u5207\u308a\u66ff\u3048\u308b",tileView:"",toggleCamera:"\u30ab\u30e1\u30e9\u3092\u5207\u308a\u66ff\u3048\u308b",videomute:"\u30df\u30e5\u30fc\u30c8\u30d3\u30c7\u30aa\u306b\u5207\u308a\u66ff\u3048\u308b",videoblur:""},addPeople:"\u3042\u306a\u305f\u306e\u901a\u8a71\u306b\u4eba\u3092\u8ffd\u52a0\u3059\u308b",audioOnlyOff:"\u97f3\u58f0\u306e\u307f\u30e2\u30fc\u30c9\u3092\u7121\u52b9\u306b\u3059\u308b",audioOnlyOn:"\u97f3\u58f0\u306e\u307f\u30e2\u30fc\u30c9\u958b\u59cb",audioRoute:"\u30b5\u30a6\u30f3\u30c9\u30c7\u30d0\u30a4\u30b9\u3092\u9078\u629e\u3059\u308b",authenticate:"\u8a8d\u8a3c",callQuality:"\u901a\u8a71\u54c1\u8cea\u3092\u7ba1\u7406\u3059\u308b",chat:"\u30c1\u30e3\u30c3\u30c8\u3092\u958b\u304f / \u9589\u3058\u308b",closeChat:"\u30c1\u30e3\u30c3\u30c8\u3092\u9589\u3058\u308b",documentClose:"\u5171\u6709\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3092\u9589\u3058\u308b",documentOpen:"\u5171\u6709\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3092\u958b\u304f",enterFullScreen:"\u30d5\u30eb\u30b9\u30af\u30ea\u30fc\u30f3\u8868\u793a",enterTileView:"\u30bf\u30a4\u30c8\u30eb\u30d3\u30e5\u30fc\u3092\u958b\u59cb",exitFullScreen:"\u30d5\u30eb\u30b9\u30af\u30ea\u30fc\u30f3\u3092\u7d42\u4e86",exitTileView:"\u30bf\u30a4\u30c8\u30eb\u30d3\u30e5\u30fc\u3092\u7d42\u4e86",feedback:"\u30d5\u30a3\u30fc\u30c9\u30d0\u30c3\u30af\u3092\u6b8b\u3059",hangup:"\u9000\u51fa",invite:"\u30e1\u30f3\u30d0\u30fc\u3092\u62db\u5f85\u3059\u308b",login:"\u30ed\u30b0\u30a4\u30f3",logout:"\u30ed\u30b0\u30a2\u30a6\u30c8",lowerYourHand:"\u624b\u3092\u4e0b\u3052\u308b",moreActions:"\u305d\u306e\u4ed6\u306e\u30a2\u30af\u30b7\u30e7\u30f3",mute:"\u30df\u30e5\u30fc\u30c8 / \u30df\u30e5\u30fc\u30c8\u89e3\u9664",openChat:"\u30c1\u30e3\u30c3\u30c8\u3092\u958b\u304f",pip:"Picture-in-Picture\u30e2\u30fc\u30c9\u306b\u5165\u308b",profile:"\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u7de8\u96c6",raiseHand:"\u624b\u3092\u4e0a\u3052\u308b / \u4e0b\u3052\u308b",raiseYourHand:"\u624b\u3092\u6319\u3052\u308b",Settings:"\u8a2d\u5b9a",sharedvideo:"YouTube\u52d5\u753b\u3092\u5171\u6709\u3059\u308b",shareRoom:"\u8ab0\u304b\u3092\u62db\u5f85\u3059\u308b",shortcuts:"\u30b7\u30e7\u30fc\u30c8\u30ab\u30c3\u30c8\u3092\u8868\u793a",speakerStats:"\u8a71\u8005\u306e\u7d71\u8a08",startScreenSharing:"\u753b\u9762\u5171\u6709\u958b\u59cb",startSubtitles:"\u5b57\u5e55\u958b\u59cb",stopScreenSharing:"\u753b\u9762\u5171\u6709\u505c\u6b62",stopSubtitles:"\u5b57\u5e55\u505c\u6b62",stopSharedVideo:"YouTube\u52d5\u753b\u3092\u505c\u6b62\u3059\u308b",talkWhileMutedPopup:"\u8a71\u305d\u3046\u3068\u3057\u3066\u3044\u307e\u3059\u304b\uff1f \u3042\u306a\u305f\u306f\u30df\u30e5\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u3059\u3002",tileViewToggle:"",toggleCamera:"\u30ab\u30e1\u30e9\u3092\u5207\u308a\u66ff\u3048\u308b",videomute:"\u30ab\u30e1\u30e9\u306e\u958b\u59cb / \u505c\u6b62",startvideoblur:"",stopvideoblur:""},"\x05toolbar":{accessibilityLabel:{}},transcribing:{ccButtonTooltip:"\u5b57\u5e55\u3092\u8868\u793a\u30fb\u975e\u8868\u793a\u3059\u308b",error:"\u9332\u753b\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 \u3082\u3046\u4e00\u5ea6\u304a\u8a66\u3057\u304f\u3060\u3055\u3044\u3002",expandedLabel:"\u66f8\u304d\u5199\u3057\u304c\u30aa\u30f3\u306b\u306a\u3063\u3066\u3044\u308b",failedToStart:"\u66f8\u304d\u5199\u3057\u3092\u30b9\u30bf\u30fc\u30c8\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002",labelToolTip:"\u30df\u30fc\u30c6\u30a3\u30f3\u30b0\u304c\u66f8\u304d\u5199\u3057\u3055\u308c\u3066\u3044\u307e\u3059\u3002",off:"\u66f8\u304d\u5199\u3057\u304c\u505c\u6b62\u3055\u308c\u3066\u3044\u308b",pending:"\u30df\u30fc\u30c6\u30a3\u30f3\u30b0\u306e\u66f8\u304d\u5199\u3057\u3092\u6e96\u5099\u3057\u3066\u3044\u307e\u3059\u3002\u3002\u3002",start:"\u5b57\u5e55\u3092\u8868\u793a\u3059\u308b",stop:"\u5b57\u5e55\u3092\u975e\u8868\u793a\u3059\u308b",tr:"TR"},"\x05transcribing":{},userMedia:{androidGrantPermissions:"\u30d6\u30e9\u30a6\u30b6\u30fc\u306e\u30dd\u30c3\u30d7\u30a2\u30c3\u30d7\u3067\u8a31\u53ef\u3059\u308b\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044",chromeGrantPermissions:"\u30d6\u30e9\u30a6\u30b6\u30fc\u306e\u30dd\u30c3\u30d7\u30a2\u30c3\u30d7\u3067\u8a31\u53ef\u3059\u308b\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044",edgeGrantPermissions:"\u30e9\u30a6\u30b6\u30fc\u306e\u30dd\u30c3\u30d7\u30a2\u30c3\u30d7\u3067\u8a31\u53ef\u3059\u308b\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002",electronGrantPermissions:"\u30de\u30a4\u30af\u3068\u30ab\u30e1\u30e9\u306e\u5171\u6709\u3092\u8a31\u53ef\u3057\u3066\u304f\u3060\u3055\u3044",firefoxGrantPermissions:"\u30c7\u30d0\u30a4\u30b9\u3092\u5171\u6709 \u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002",iexplorerGrantPermissions:"\u30d6\u30e9\u30a6\u30b6\u30fc\u306e\u30dd\u30c3\u30d7\u30a2\u30c3\u30d7\u3067\u8a31\u53ef\u3059\u308b\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002",nwjsGrantPermissions:"\u30de\u30a4\u30af\u3068\u30ab\u30e1\u30e9\u306e\u5171\u6709\u3092\u8a31\u53ef\u3057\u3066\u304f\u3060\u3055\u3044",operaGrantPermissions:"\u30d6\u30e9\u30a6\u30b6\u30fc\u306e\u30dd\u30c3\u30d7\u30a2\u30c3\u30d7\u3067\u8a31\u53ef\u3059\u308b\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044","react-nativeGrantPermissions":"\u30d6\u30e9\u30a6\u30b6\u30fc\u306e\u30dd\u30c3\u30d7\u30a2\u30c3\u30d7\u3067\u8a31\u53ef\u3059\u308b\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044",safariGrantPermissions:"\u30d6\u30e9\u30a6\u30b6\u30fc\u306e\u30dd\u30c3\u30d7\u30a2\u30c3\u30d7\u3067\u8a31\u53ef\u3059\u308b\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002"},videoSIPGW:{busy:"\u30ea\u30bd\u30fc\u30b9\u3092\u6574\u7406\u3057\u3066\u3044\u307e\u3059\u3002\u5c11\u3005\u304a\u5f85\u3061\u304f\u3060\u3055\u3044\u3002",busyTitle:"\u30eb\u30fc\u30e0\u30b5\u30fc\u30d3\u30b9\u304c\u305f\u3060\u3044\u307e\u6df7\u3093\u3067\u3044\u307e\u3059\u3002",errorAlreadyInvited:"{{displayName}}\u3055\u3093\u304c\u3059\u3067\u306b\u62db\u5f85\u3055\u308c\u307e\u3057\u305f",errorInvite:"\u4f1a\u8b70\u304c\u307e\u3060\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002\u3082\u3046\u4e00\u5ea6\u304a\u8a66\u3057\u304f\u3060\u3055\u3044\u3002",errorInviteFailed:"\u554f\u984c\u3092\u89e3\u6c7a\u3057\u3066\u3044\u307e\u3059\u3002\u3057\u3070\u3089\u304f\u3057\u305f\u3089\u307e\u305f\u304a\u8a66\u3057\u304f\u3060\u3055\u3044\u3002",errorInviteFailedTitle:" {{displayName}}\u3055\u3093\u304c\u62db\u5f85\u3067\u304d\u307e\u305b\u3093\u3002",errorInviteTitle:"\u62db\u96c6\u30a8\u30e9\u30fc",pending:"{{displayName}} \u304c\u62db\u5f85\u3055\u308c\u307e\u3057\u305f"},videoStatus:{audioOnly:"\u97f3\u58f0\u306e\u307f",audioOnlyExpanded:"\u97f3\u58f0\u306e\u307f\u30e2\u30fc\u30c9\u3067\u3001\u4ed6\u306e\u53c2\u52a0\u8005\u306e\u30d3\u30c7\u30aa\u304c\u898b\u3048\u306a\u3044\u3002",callQuality:"",hd:"HD",highDefinition:"\u9ad8\u753b\u8cea",labelTooiltipNoVideo:"\u30d3\u30c7\u30aa\u304c\u306a\u3044",labelTooltipAudioOnly:"\u97f3\u58f0\u306e\u307f\u30e2\u30fc\u30c9\u304c\u6709\u52b9",ld:"LD",lowDefinition:"\u4f4e\u753b\u8cea",onlyAudioAvailable:"\u97f3\u58f0\u306e\u307f\u5229\u7528\u53ef\u80fd",onlyAudioSupported:"\u3053\u306e\u30d6\u30e9\u30a6\u30b6\u3067\u306f\u97f3\u58f0\u306e\u307f\u3092\u30b5\u30dd\u30fc\u30c8\u3057\u3066\u3044\u307e\u3059\u3002",p2pEnabled:"\u30d4\u30a2\u30fb\u30c4\u30fc\u30fb\u30d4\u30a2\u30e2\u30fc\u30c9\u6709\u52b9\u3057\u3066\u3044\u308b",p2pVideoQualityDescription:"",recHighDefinitionOnly:"",sd:"SD",standardDefinition:"\u6a19\u6e96\u753b\u8cea"},videothumbnail:{domute:"\u30df\u30e5\u30fc\u30c8",flip:"\u30d5\u30ea\u30c3\u30d7",kick:"\u8ffd\u3044\u51fa\u3059",moderator:"\u30e2\u30c7\u30ec\u30fc\u30bf\u30fc",mute:"",muted:"\u30df\u30e5\u30fc\u30c8",remoteControl:"\u30ea\u30e2\u30fc\u30c8\u30b3\u30f3\u30c8\u30ed\u30fc\u30eb",show:"",videomute:""},welcomepage:{accessibilityLabel:{join:"\u30bf\u30c3\u30d7\u3057\u3066\u53c2\u52a0",roomname:"\u30eb\u30fc\u30e0\u540d\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044"},appDescription:"\u30c1\u30fc\u30e0\u5168\u4f53\u3068\u30d3\u30c7\u30aa\u30c1\u30e3\u30c3\u30c8\u3057\u307e\u3057\u3087\u3046\u3002\u3042\u306a\u305f\u304c\u77e5\u3063\u3066\u3044\u308b\u7686\u3055\u3093\u3092\u62db\u5f85\u3057\u3066\u304f\u3060\u3055\u3044\u3002{{app}}\u306f\u5b8c\u5168\u306b\u6697\u53f7\u5316\u3055\u308c\u305f100\uff05\u30aa\u30fc\u30d7\u30f3\u30bd\u30fc\u30b9\u306e\u30d3\u30c7\u30aa\u4f1a\u8b70\u30bd\u30ea\u30e5\u30fc\u30b7\u30e7\u30f3\u3067\u3001\u4e00\u65e5\u4e2d\u3001\u6bce\u65e5\u7121\u6599\u3067\u3054\u5229\u7528\u3044\u305f\u3060\u3051\u307e\u3059\u3002\u30a2\u30ab\u30a6\u30f3\u30c8\u306f\u5fc5\u8981\u3042\u308a\u307e\u305b\u3093\u3002",audioVideoSwitch:{audio:"\u97f3\u58f0",video:"\u6620\u50cf"},calendar:"\u30ab\u30ec\u30f3\u30c0\u30fc",connectCalendarButton:"\u30ab\u30ec\u30f3\u30c0\u30fc\u306b\u63a5\u7d9a",connectCalendarText:"",enterRoomTitle:"\u65b0\u3057\u3044\u30df\u30fc\u30c6\u30a4\u30f3\u30b0\u3092\u958b\u59cb",go:"GO",join:"\u53c2\u52a0",info:"\u60c5\u5831",privacy:"\u30d7\u30e9\u30a4\u30d0\u30b7\u30fc",recentList:"\u6700\u8fd1\u306e\u5c65\u6b74",recentListDelete:"\u524a\u9664",recentListEmpty:"",reducedUIText:"",roomname:"\u30eb\u30fc\u30e0\u540d\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044",roomnameHint:"\u53c2\u52a0\u3057\u305f\u3044\u90e8\u5c4b\u306e\u540d\u524d\u307e\u305f\u306fURL\u3092\u5165\u529b\u3057\u307e\u3059\u3002 \u3042\u306a\u305f\u304c\u540d\u524d\u3092\u4ed8\u3051\u3001\u3042\u306a\u305f\u304c\u4f1a\u3063\u3066\u3044\u308b\u4eba\u3005\u306b\u77e5\u3089\u305b\u3066\u3001\u540c\u3058\u540d\u524d\u3092\u5165\u529b\u3057\u3066\u3082\u3089\u3046\u3060\u3051\u3067\u3059\u3002",sendFeedback:"\u30d5\u30a3\u30fc\u30c9\u30d0\u30c3\u30af\u3092\u9001\u4fe1",terms:"\u5229\u7528\u898f\u7d04",title:"\u5b89\u5168\u3067\u3001\u6a5f\u80fd\u8c4a\u5bcc\u3067\u3001\u5b8c\u5168\u306b\u7121\u6599\u306e\u30d3\u30c7\u30aa\u4f1a\u8b70"},"\x05welcomepage":{}}},671,[]); -__d(function(e,s,o,t,n,r,a){n.exports={en:"\uc601\uc5b4",af:"",az:"\uc544\uc81c\ub974\ubc14\uc774\uc794\uc5b4",bg:"\ubd88\uac00\ub9ac\uc5b4",cs:"\uccb4\ucf54\uc5b4",de:"\ub3c5\uc77c\uc5b4",el:"\uadf8\ub9ac\uc2a4\uc5b4",eo:"\uc5d0\uc2a4\ud398\ub780\ud1a0\uc5b4",es:"\uc2a4\ud398\uc778\uc5b4",fr:"\ud504\ub791\uc2a4\uc5b4",hy:"\uc544\ub974\uba54\ub2c8\uc544\uc5b4",it:"\uc774\ud0c8\ub9ac\uc544\uc5b4",ja:"\uc77c\ubcf8\uc5b4",ko:"\ud55c\uad6d\uc5b4",nb:"\ub178\ub974\uc6e8\uc774\uc5b4",oc:"",pl:"\ud3f4\ub780\ub4dc\uc5b4",ptBR:"\ud3ec\ub974\ud22c\uac08\uc5b4(\ube0c\ub77c\uc9c8)",ru:"\ub7ec\uc2dc\uc544\uc5b4",sk:"\uc2ac\ub85c\ubc14\ud0a4\uc544\uc5b4",sl:"\uc2ac\ub85c\ubca0\ub2c8\uc544\uc5b4",sv:"\uc2a4\uc6e8\ub374\uc5b4",tr:"\ud130\ud0a4\uc5b4",vi:"\ubca0\ud2b8\ub0a8\uc5b4",zhCN:"\uc911\uad6d\uc5b4(\uc911\uad6d)"}},672,[]); -__d(function(e,o,i,t,r,n,a){r.exports={addPeople:{add:"\ucd08\ub300",countryNotSupported:"\uc544\uc9c1 \ud574\ub2f9 \uc9c0\uc5ed\uc744 \uc9c0\uc6d0\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4",countryReminder:"\ubbf8\uad6d \uc774\uc678\uc758 \uc9c0\uc5ed\uc73c\ub85c \uc804\ud654\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? \uad6d\uac00 \ubc88\ud638\ub85c \uc2dc\uc791\ud574\uc57c\ud569\ub2c8\ub2e4!",disabled:"\uc0ac\ub78c\ub4e4\uc744 \ucd08\ub300 \ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4",failedToAdd:"",footerText:"",loading:"\uc0ac\ub78c \ubc0f \uc804\ud654\ubc88\ud638 \uac80\uc0c9",loadingNumber:"\uc804\ud654\ubc88\ud638 \ud655\uc778 \uc911",loadingPeople:"\ucd08\ub300\ud560 \uc0ac\ub78c \ucc3e\uae30",noResults:"\uc77c\uce58\ud558\ub294 \uac80\uc0c9 \uacb0\uacfc \uc5c6\uc74c",noValidNumbers:"\uc804\ud654 \ubc88\ud638\ub97c \uc785\ub825\ud558\uc2ed\uc2dc\uc624.",searchNumbers:"\uc804\ud654\ubc88\ud638 \ucd94\uac00",searchPeople:"\uc778\uba85 \uac80\uc0c9",searchPeopleAndNumbers:"\uc778\uba85 \uac80\uc0c9 \ub610\ub294 \uc804\ud654\ubc88\ud638 \ucd94\uac00",telephone:"\uc804\ud654: {{number}}",title:"\uc774 \ud68c\uc758\uc5d0 \uc0ac\ub78c\ub4e4\uc744 \ucd08\ub300\ud558\uc2ed\uc2dc\uc624"},audioDevices:{bluetooth:"\ube14\ub8e8\ud22c\uc2a4",headphones:"\ud5e4\ub4dc\ud3f0",phone:"\ud3f0",speaker:"\uc2a4\ud53c\ucee4"},audioOnly:{audioOnly:"\uc74c\uc131 \uc804\uc6a9"},calendarSync:{addMeetingURL:"",confirmAddLink:"",error:{appConfiguration:"",generic:"",notSignedIn:""},join:"",joinTooltip:"",nextMeeting:"\ub2e4\uc74c \ud68c\uc758",noEvents:"",ongoingMeeting:"",permissionButton:"\uc124\uc815 \uc5f4\uae30",permissionMessage:"\uc571\uc5d0 \ud68c\uc758\ub97c \ub098\uc5f4\ud558\ub824\uba74 \uce98\ub9b0\ub354 \uad8c\ud55c\uc774 \ud544\uc694\ud569\ub2c8\ub2e4",refresh:"",today:""},chat:{error:"",messagebox:"",nickname:{popover:"\ub2c9\ub124\uc784\uc744 \uc120\ud0dd\ud558\uc138\uc694",title:""},title:""},connectingOverlay:{joiningRoom:""},connection:{ATTACHED:"\ucca8\ubd80",AUTHENTICATING:"\uc778\uc99d \uc911",AUTHFAIL:"\uc778\uc99d \uc2e4\ud328",CONNECTED:"\uc5f0\uacb0 \ub428",CONNECTING:"\uc5f0\uacb0 \uc911",CONNFAIL:"\uc5f0\uacb0 \uc2e4\ud328",DISCONNECTED:"\uc5f0\uacb0 \ub04a\uae40",DISCONNECTING:"\uc5f0\uacb0 \uc885\ub8cc \uc911",ERROR:"\uc5d0\ub7ec",RECONNECTING:"\ub124\ud2b8\uc6cc\ud06c \ubb38\uc81c\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4. \ub2e4\uc2dc \uc5f0\uacb0 \uc911..."},connectionindicator:{address:"\uc8fc\uc18c:",bandwidth:"\uc608\uc0c1 \ub300\uc5ed\ud3ed:",bitrate:"\uc804\uc1a1\ub960:",bridgeCount:"",connectedTo:"",framerate:"\ud504\ub808\uc784 \uc18d\ub3c4:",less:"\uac04\ub7b5\ud788 \ubcf4\uae30",localaddress:"",localport:"",more:"\uc790\uc138\ud788 \ubcf4\uae30",packetloss:"\ud328\ud0b7 \uc190\uc2e4:",quality:{good:"\uc88b\uc74c",inactive:"Inactive",lost:"Lost",nonoptimal:"Nonoptimal",poor:"Poor"},remoteaddress:"",remoteport:"",resolution:"\ud574\uc0c1\ub3c4:",status:"\uc5f0\uacb0:",transport:"",turn:" (turn)"},dateUtils:{earlier:"",today:"",yesterday:""},deepLinking:{appNotInstalled:"\uc911\uacc4 \uc11c\ube44\uc2a4\uc5d0 \ucc38\uc5ec\ud558\ub824\uba74 \ubaa8\ubc14\uc77c \uc571 \uc124\uce58\uac00 \ud544\uc694\ud569\ub2c8\ub2e4",description:"{{app}} \ub370\uc2a4\ud06c\ud1b1 \uc571\uc5d0\uc11c \ud68c\uc758\ub97c \uc2dc\uc791\ud588\uc2b5\ub2c8\ub2e4. {{app}} \uc6f9 \uc751\uc6a9 \ud504\ub85c\uadf8\ub7a8\uc5d0\uc11c \ub2e4\uc2dc \uc2dc\ub3c4\ud558\uac70\ub098 \uc2e4\ud589\ud558\uc2ed\uc2dc\uc624.",descriptionWithoutWeb:"",downloadApp:"\uc571 \ub2e4\uc6b4\ub85c\ub4dc",launchWebButton:"\uc6f9\uc5d0\uc11c \uc2e4\ud589",openApp:"\ubc29\uc73c\ub85c \uc774\ub3d9\ud558\uae30",title:"{{app}}\uc5d0\uc11c \ud68c\uc758 \uc2dc\uc791...",tryAgainButton:"\ub370\uc2a4\ud06c\ud1b1\uc5d0\uc11c \ub2e4\uc2dc \uc2dc\ub3c4\ud558\uc2ed\uc2dc\uc624"},defaultLink:"e.g. {{url}}",deviceError:{cameraError:"\uce74\uba54\ub77c\uc5d0 \uc561\uc138\uc2a4\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4",cameraPermission:"\uce74\uba54\ub77c \uad8c\ud55c\uc744 \uc5bb\ub294 \uc911 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4",microphoneError:"\ub9c8\uc774\ud06c\uc5d0 \uc561\uc138\uc2a4\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4",microphonePermission:"\ub9c8\uc774\ud06c \uad8c\ud55c\uc744 \uc5bb\ub294 \uc911 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4"},deviceSelection:{noPermission:"\ud5c8\uac00 \uac70\ubd80",previewUnavailable:"\ubbf8\ub9ac\ubcf4\uae30\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc5c6\uc74c",selectADevice:"\ub514\ubc14\uc774\uc2a4 \uc120\ud0dd",testAudio:"\ud14c\uc2a4\ud2b8 \uc0ac\uc6b4\ub4dc \uc7ac\uc0dd"},dialog:{accessibilityLabel:{liveStreaming:"\uc2e4\uc2dc\uac04 \uc2a4\ud2b8\ub9ac\ubc0d:"},allow:"\ud5c8\ub77d",alreadySharedVideoMsg:"",alreadySharedVideoTitle:"\ud55c \ubc88\uc5d0 \ud558\ub098\uc758 \uacf5\uc720 \ube44\ub514\uc624 \ub9cc \ud5c8\uc6a9\ub429\ub2c8\ub2e4",applicationWindow:"\uc751\uc6a9 \ud504\ub85c\uadf8\ub7a8 \ucc3d",Back:"\ub4a4\ub85c\uac00\uae30",cameraConstraintFailedError:"\uce74\uba54\ub77c\uac00 \ud544\uc694\ud55c \uc81c\uc57d \uc870\uac74 \uc911 \uc77c\ubd80\ub97c \ub9cc\uc871\ud558\uc9c0 \ubabb\ud569\ub2c8\ub2e4",cameraNotFoundError:"\uce74\uba54\ub77c\ub97c \ucc3e\uc744 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4",cameraNotSendingData:"\uce74\uba54\ub77c\uc5d0 \uc561\uc138\uc2a4 \ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. \ub2e4\ub978 \uc751\uc6a9 \ud504\ub85c\uadf8\ub7a8\uc774\uc774 \uc7a5\uce58\ub97c \uc0ac\uc6a9\ud558\uace0 \uc788\ub294\uc9c0 \ud655\uc778\ud55c \ud6c4 \uc124\uc815 \uba54\ub274\uc5d0\uc11c \ub2e4\ub978 \uc7a5\uce58\ub97c \uc120\ud0dd\ud558\uac70\ub098 \uc751\uc6a9 \ud504\ub85c\uadf8\ub7a8\uc744 \ub2e4\uc2dc\ub85c\ub4dc\ud558\uc2ed\uc2dc\uc624.",cameraNotSendingDataTitle:"\uce74\uba54\ub77c\uc5d0 \uc561\uc138\uc2a4 \ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4",cameraPermissionDeniedError:"\uce74\uba54\ub77c \uc0ac\uc6a9 \uad8c\ud55c\uc744 \ubd80\uc5ec\ud558\uc9c0 \uc54a\uc558\uc2b5\ub2c8\ub2e4. \ud68c\uc758\uc5d0 \uacc4\uc18d \ucc38\uc5ec\ud560 \uc218 \uc788\uc9c0\ub9cc \ub2e4\ub978 \ucc38\uc11d\uc790\ub294 \uadc0\ud558\ub97c \ubcfc \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. \uac80\uc0c9 \uc8fc\uc18c\ucc3d\uc758 \uce74\uba54\ub77c \ubc84\ud2bc\uc744 \uc0ac\uc6a9\ud558\uc5ec \ubb38\uc81c\ub97c \ud574\uacb0\ud558\uc2ed\uc2dc\uc624.",cameraUnknownError:"\uc54c \uc218\uc5c6\ub294 \uc774\uc720\ub85c \uce74\uba54\ub77c\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4",cameraUnsupportedResolutionError:"\uce74\uba54\ub77c\uac00 \ud544\uc694\ud55c \ube44\ub514\uc624 \ud574\uc0c1\ub3c4\ub97c \uc9c0\uc6d0\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4",Cancel:"\ucde8\uc18c",close:"\ub2eb\uae30",conferenceDisconnectMsg:"\ub124\ud2b8\uc6cc\ud06c \uc5f0\uacb0\uc744 \ud655\uc778\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. {{seconds}} \ucd08 \ub0b4\uc5d0 \ub2e4\uc2dc \uc5f0\uacb0\uc911\uc785\ub2c8\ub2e4...",conferenceDisconnectTitle:"\uc5f0\uacb0\uc774 \ub04a\uc5b4\uc84c\uc2b5\ub2c8\ub2e4.",conferenceReloadMsg:"\ubb38\uc81c\ub97c \ud574\uacb0\ud558\ub824\uace0 \ub178\ub825\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. {{seconds}} \ucd08 \uc548\uc5d0 \ub2e4\uc2dc \uc5f0\uacb0\uc911\uc785\ub2c8\ub2e4.",conferenceReloadTitle:"\ubd88\ud589\ud558\uac8c\ub3c4 \ubb38\uc81c\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4",confirm:"\ud655\uc778",confirmNo:"",confirmYes:"",connectError:"\uc8c4\uc1a1\ud569\ub2c8\ub2e4. \ubb38\uc81c\uac00 \ubc1c\uc0dd\ud558\uc5ec \ud68c\uc758\uc5d0 \uc5f0\uacb0\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4",connectErrorWithMsg:"\uc8c4\uc1a1\ud569\ub2c8\ub2e4. \ubb54\uac00 \uc798\ubabb\ub418\uc5b4 \ud68c\uc758\uc5d0 \uc5f0\uacb0\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4: {{msg}}",connecting:"\uc5f0\uacb0 \uc911",contactSupport:"\uc9c0\uc6d0 \uc5f0\ub77d\ucc98",copy:"\ubcf5\uc0ac",dismiss:"",displayNameRequired:"",done:"\uc644\ub8cc",enterDisplayName:"",error:"\uc5d0\ub7ec",externalInstallationMsg:"\ub370\uc2a4\ud06c\ud1b1 \uacf5\uc720 \ud655\uc7a5 \ud504\ub85c\uadf8\ub7a8\uc744 \uc124\uce58\ud574\uc57c\ud569\ub2c8\ub2e4",externalInstallationTitle:"\ud655\uc7a5 \ud504\ub85c\uadf8\ub7a8\uc774 \ud544\uc694\ud569\ub2c8\ub2e4",goToStore:"\uc6f9 \uc2a4\ud1a0\uc5b4\ub85c \uc774\ub3d9",gracefulShutdown:"\uc11c\ube44\uc2a4\ub294 \ud604\uc7ac \uc720\uc9c0 \uad00\ub9ac\ub97c \uc704\ud574 \uc911\ub2e8\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \ub098\uc911\uc5d0 \ub2e4\uc2dc \uc2dc\ub3c4 \ud574\uc8fc\uc2ed\uc2dc\uc624.",IamHost:"\ub0b4\uac00 \ud638\uc2a4\ud2b8",incorrectRoomLockPassword:"",incorrectPassword:"\uc798\ubabb\ub41c \uc0ac\uc6a9\uc790 \uc774\ub984 \ub610\ub294 \ube44\ubc00\ubc88\ud638",inlineInstallationMsg:"\ub370\uc2a4\ud06c\ud1b1 \uacf5\uc720 \ud655\uc7a5 \ud504\ub85c\uadf8\ub7a8\uc744 \uc124\uce58\ud574\uc57c\ud569\ub2c8\ub2e4",inlineInstallExtension:"\uc9c0\uae08 \uc124\uce58",internalError:"\uc8c4\uc1a1\ud569\ub2c8\ub2e4. \ubb54\uac00 \uc798\ubabb \ub410\uc2b5\ub2c8\ub2e4. \ub2e4\uc74c \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4: {{error}}",internalErrorTitle:"\ub0b4\ubd80 \uc5d0\ub7ec",kickMessage:"",kickParticipantButton:"",kickParticipantDialog:"",kickParticipantTitle:"",kickTitle:"",liveStreaming:"\uc2e4\uc2dc\uac04 \uc2a4\ud2b8\ub9ac\ubc0d",liveStreamingDisabledForGuestTooltip:"",liveStreamingDisabledTooltip:"",lockMessage:"\ud68c\uc758\ub97c \ube44\uacf5\uac1c\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4",lockRoom:"",lockTitle:"\ube44\uacf5\uac1c \uc2e4\ud328",logoutQuestion:"\ub85c\uadf8 \uc544\uc6c3\ud558\uace0 \ucee8\ud37c\ub7f0\uc2a4\ub97c \uc911\uc9c0\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?",logoutTitle:"\ub85c\uadf8\uc544\uc6c3",maxUsersLimitReached:"",maxUsersLimitReachedTitle:"",micConstraintFailedError:"\ub9c8\uc774\ud06c\uac00 \ud544\uc694\ud55c \uc81c\uc57d \uc870\uac74 \uc911 \uc77c\ubd80\ub97c \ucda9\uc871\ud558\uc9c0 \ubabb\ud569\ub2c8\ub2e4",micNotFoundError:"\ub9c8\uc774\ud06c\ub97c \ucc3e\uc744 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4",micNotSendingData:"",micNotSendingDataTitle:"",micPermissionDeniedError:"\ub9c8\uc774\ud06c\ub97c \uc0ac\uc6a9\ud560 \uc218\uc788\ub294 \uad8c\ud55c\uc744 \ubd80\uc5ec\ud558\uc9c0 \uc54a\uc558\uc2b5\ub2c8\ub2e4. \ud68c\uc758\uc5d0 \uacc4\uc18d \ucc38\uc5ec\ud560 \uc218\ub294 \uc788\uc9c0\ub9cc \ub2e4\ub978 \uc0ac\ub78c\ub4e4\uc740 \ub4e3\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \uac80\uc0c9 \uc8fc\uc18c\ucc3d\uc758 \uce74\uba54\ub77c \ubc84\ud2bc\uc744 \uc0ac\uc6a9\ud558\uc5ec \ubb38\uc81c\ub97c \ud574\uacb0\ud558\uc2ed\uc2dc\uc624.",micUnknownError:"\uc54c \uc218 \uc5c6\ub294 \uc774\uc720\ub85c \ub9c8\uc774\ud06c\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4",muteParticipantBody:"\ub2f9\uc2e0\uc774 \ub2e4\ub978 \uc0ac\ub78c\ub4e4\uc758 \uc74c\uc18c\uac70\ub97c \ud574\uc81c \ud560 \uc218\ub294 \uc5c6\uc9c0\ub9cc \uc5b8\uc81c\ub4e0\uc9c0 \ub2e4\ub978 \uc0ac\ub78c\ub4e4\uc740 \uc2a4\uc2a4\ub85c \uc74c\uc18c\uac70\ub97c \ud574\uc81c\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.",muteParticipantButton:"\uc74c\uc18c\uac70",muteParticipantDialog:"",muteParticipantTitle:"",Ok:"\ud655\uc778",passwordLabel:"",passwordNotSupported:"\ubbf8\ud305 \ube44\ubc00\ubc88\ud638 \uc124\uc815\uc740 \uc9c0\uc6d0\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4",passwordNotSupportedTitle:"",passwordRequired:"",popupError:"\ube0c\ub77c\uc6b0\uc800\uac00\uc774 \uc0ac\uc774\ud2b8\uc758 \ud31d\uc5c5 \ucc3d\uc744 \ucc28\ub2e8\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \ube0c\ub77c\uc6b0\uc800\uc758 \ubcf4\uc548 \uc124\uc815\uc5d0\uc11c \ud31d\uc5c5\uc744 \ud65c\uc131\ud654\ud558\uace0 \ub2e4\uc2dc \uc2dc\ub3c4\ud558\uc2ed\uc2dc\uc624.",popupErrorTitle:"\ud31d\uc5c5 \ucc28\ub2e8\ub428",recording:"\ub808\ucf54\ub529",recordingDisabledForGuestTooltip:"",recordingDisabledTooltip:"",rejoinNow:"\uc9c0\uae08 \uc7ac\uac00\uc785",remoteControlAllowedMessage:"{{user}}\uc774(\uac00) \uc6d0\uaca9 \uc81c\uc5b4 \uc694\uccad\uc744 \uc218\ub77d\ud588\uc2b5\ub2c8\ub2e4",remoteControlDeniedMessage:"{{user}}\uc774(\uac00) \uc6d0\uaca9 \uc81c\uc5b4 \uc694\uccad\uc744 \uac70\ubd80\ud588\uc2b5\ub2c8\ub2e4",remoteControlErrorMessage:"{{user}}\ub85c\ubd80\ud130 \uc6d0\uaca9 \uc81c\uc5b4 \uad8c\ud55c\uc744 \uc694\uccad\ud558\ub294 \ub3d9\uc548 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4",remoteControlRequestMessage:"{{user}}\uc5d0\uac8c \ub2f9\uc2e0\uc758 \ub370\uc2a4\ud06c\ud0d1\uc744 \uc6d0\uaca9 \uc81c\uc5b4\ud558\ub3c4\ub85d \ud5c8\uc6a9\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?",remoteControlShareScreenWarning:"\"\ud5c8\ub77d\"\uc744 \ub204\ub974\uba74 \ud654\uba74\uc744 \uacf5\uc720\ud569\ub2c8\ub2e4",remoteControlStopMessage:"\uc6d0\uaca9 \uc81c\uc5b4 \uc138\uc158\uc774 \uc885\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4",remoteControlTitle:"\uc6d0\uaca9 \ub370\uc2a4\ud06c\ud0d1 \ucee8\ud2b8\ub864",Remove:"\uc81c\uac70",removePassword:"",removeSharedVideoMsg:"\uacf5\uc720\ud55c \ub3d9\uc601\uc0c1\uc744 \uc0ad\uc81c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?",removeSharedVideoTitle:"\uacf5\uc720\ub41c \ub3d9\uc601\uc0c1 \uc0ad\uc81c",reservationError:"\uc608\uc57d \uc2dc\uc2a4\ud15c \uc624\ub958",reservationErrorMsg:"\uc624\ub958 \ucf54\ub4dc: {{code}}, \uba54\uc2dc\uc9c0: {{msg}}",retry:"\uc7ac\uc2dc\ub3c4",screenSharingFailedToInstall:"\uc8c4\uc1a1\ud569\ub2c8\ub2e4. \ud654\uba74 \uacf5\uc720 \ud655\uc7a5 \ud504\ub85c\uadf8\ub7a8\uc744 \uc124\uce58\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.",screenSharingFailedToInstallTitle:"\ud654\uba74 \uacf5\uc720 \ud655\uc7a5 \ud504\ub85c\uadf8\ub7a8\uc744 \uc124\uce58\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4",screenSharingFirefoxPermissionDeniedError:"\ud654\uba74\uc744 \uacf5\uc720\ud558\ub294 \ub3d9\uc548 \ubb38\uc81c\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4. \uadf8\ub807\uac8c \ud560 \uc218 \uc788\ub294 \uad8c\ud55c\uc744 \ubd80\uc5ec\ud588\ub294\uc9c0 \ud655\uc778\ud558\uc2ed\uc2dc\uc624.",screenSharingFirefoxPermissionDeniedTitle:"\uc8c4\uc1a1\ud569\ub2c8\ub2e4. \ud654\uba74 \uacf5\uc720\ub97c \uc2dc\uc791\ud560 \uc218 \uc5c6\uc5c8\uc2b5\ub2c8\ub2e4!",screenSharingPermissionDeniedError:"\uc8c4\uc1a1\ud569\ub2c8\ub2e4. \ud654\uba74 \uacf5\uc720 \ud655\uc7a5 \uad8c\ud55c\uc73c\ub85c \ubb38\uc81c\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4. \ub2e4\uc2dc \ub85c\ub4dc\ud558\uace0 \uc7ac\uc2dc\ub3c4\ud558\uc2ed\uc2dc\uc624.",serviceUnavailable:"\uc11c\ube44\uc2a4\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc5c6\uc74c",sessTerminated:"\ud1b5\ud654 \uc885\ub8cc",Share:"\uacf5\uc720",shareVideoLinkError:"\uc62c\ubc14\ub978 YouTube \ub9c1\ud06c\ub97c \uc81c\uacf5\ud558\uc2ed\uc2dc\uc624",shareVideoTitle:"\ube44\ub514\uc624 \uacf5\uc720",shareYourScreen:"\ud654\uba74\uacf5\uc720",shareYourScreenDisabled:"",shareYourScreenDisabledForGuest:"",startLiveStreaming:"\ub77c\uc774\ube0c \uc2a4\ud2b8\ub9ac\ubc0d \uc2dc\uc791",startRecording:"\ub808\ucf54\ub529 \uc2dc\uc791",startRemoteControlErrorMessage:"\uc6d0\uaca9 \uc81c\uc5b4 \uc138\uc158\uc744 \uc2dc\uc791\ud558\ub294 \ub3d9\uc548 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4",stopLiveStreaming:"\ub77c\uc774\ube0c \uc2a4\ud2b8\ub9ac\ubc0d \uc885\ub8cc",stopRecording:"\ub808\ucf54\ub529 \uc885\ub8cc",stopRecordingWarning:"\ub808\ucf54\ub529\uc744 \uc911\ub2e8\ud558\uace0 \uc2f6\uc73c\uc2ed\ub2c8\uae4c?",stopStreamingWarning:"\ub77c\uc774\ube0c \uc2a4\ud2b8\ub9ac\ubc0d\uc744 \uc911\ub2e8\ud558\uace0 \uc2f6\uc73c\uc2ed\ub2c8\uae4c?",streamKey:"\ub77c\uc774\ube0c \uc2a4\ud2b8\ub9ac\ubc0d \ud0a4",Submit:"\uc81c\ucd9c",thankYou:"{{appName}}\uc744 \uc774\uc6a9\ud574 \uc8fc\uc154\uc11c \uac10\uc0ac\ud569\ub2c8\ub2e4!",token:"\ud1a0\ud070",tokenAuthFailed:"\uc8c4\uc1a1\ud569\ub2c8\ub2e4. \ud1b5\ud654\uc5d0 \ucc38\uc5ec\ud558\uc2e4 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.",tokenAuthFailedTitle:"\uc778\uc99d \uc2e4\ud328",transcribing:"",unlockRoom:"",userPassword:"\uc0ac\uc6a9\uc790 \ube44\ubc00\ubc88\ud638",WaitForHostMsg:"",WaitForHostMsgWOk:"",WaitingForHost:"\ud638\uc2a4\ud2b8\ub97c \uae30\ub2e4\ub9ac\ub294 \uc911\uc785\ub2c8\ub2e4...",Yes:"",yourEntireScreen:"\uc804\uccb4 \ud654\uba74"},"\x05dialog":{accessibilityLabel:{}},dialOut:{statusMessage:"\uc9c0\uae08\uc740 {{status}}\uc785\ub2c8\ub2e4"},feedback:{average:"\ubcf4\ud1b5",bad:"\ub098\uc068",detailsLabel:"\ub354 \uc790\uc138\ud788 \uc54c\ub824\uc8fc\uc2ed\uc2dc\uc624",good:"\uc88b\uc74c",rateExperience:"\ud68c\uc758 \uacbd\ud5d8 \ud3c9\uac00\ud558\uae30",veryBad:"\ub9e4\uc6b0 \ub098\uc068",veryGood:"\ub9e4\uc6b0 \uc88b\uc74c"},incomingCall:{answer:"",audioCallTitle:"",decline:"",productLabel:"",videoCallTitle:""},info:{accessibilityLabel:"",addPassword:"",cancelPassword:"",conferenceURL:"\ub9c1\ud06c:",country:"\uc9c0\uc5ed",dialANumber:"",dialInConferenceID:"PIN:",dialInNotSupported:"\uc8c4\uc1a1\ud569\ub2c8\ub2e4. \ud604\uc7ac \uc804\ud654\ub97c \uac78 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.",dialInNumber:"Dial-in:",dialInSummaryError:"",dialInTollFree:"",genericError:"\uc77c\ubc18\uc801\uc778 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4",inviteLiveStream:"\uc774 \ud68c\uc758\uc758 \uc2e4\uc2dc\uac04 \uc2a4\ud2b8\ub9bc\uc744 \ubcf4\ub824\uba74\uc774 \ub9c1\ud06c\ub97c \ud074\ub9ad\ud558\uc2ed\uc2dc\uc624: {{url}}",invitePhone:"",invitePhoneAlternatives:"",inviteURLFirstPartGeneral:"",inviteURLFirstPartPersonal:"",inviteURLSecondPart:"",liveStreamURL:"\uc2e4\uc2dc\uac04 \uc2a4\ud2b8\ub9ac\ubc0d:",moreNumbers:"\ub354 \ub9ce\uc740 \ubc88\ud638",noNumbers:"\uc804\ud654 \uc811\uc18d \ubc88\ud638 \uc5c6\uc74c",noPassword:"\uc5c6\uc74c",noRoom:"\uc804\ud654 \uc811\uc18d\uc774 \uac00\ub2a5\ud55c \ubc29\uc744 \uc9c0\uc815\ud558\uc9c0 \uc54a\uc558\uc2b5\ub2c8\ub2e4",numbers:"\uc804\ud654 \uc811\uc18d \ubc88\ud638",password:"",title:"\uacf5\uc720",tooltip:"\ub9c1\ud06c \uacf5\uc720 \ubc0f \ud68c\uc758\uc5d0 \ub300\ud55c \uc815\ubcf4",label:""},"\x05info":{},inviteDialog:{alertText:"",header:"\ucd08\ub300",searchCallOnlyPlaceholder:"",searchPeopleOnlyPlaceholder:"",searchPlaceholder:"",send:""},inlineDialogFailure:{msg:"\uc57d\uac04\uc758 \ubb38\uc81c\uac00 \uc788\uc2b5\ub2c8\ub2e4",retry:"\ub2e4\uc2dc \uc2dc\ub3c4",support:"\uc9c0\uc6d0",supportMsg:"\ubb38\uc81c\uac00 \uacc4\uc18d \ubc1c\uc0dd\ud558\uba74 \uc5f0\ub77d\ud558\uc138\uc694"},keyboardShortcuts:{focusLocal:"\uc790\uc2e0\uc758 \ub3d9\uc601\uc0c1\uc5d0 \ud3ec\ucee4\uc2a4",focusRemote:"\ub2e4\ub978 \ubc1c\uc2e0\uc790\uc758 \ub3d9\uc601\uc0c1\uc5d0 \ud3ec\ucee4\uc2a4",fullScreen:"\uc804\uccb4\ud654\uba74 \ud45c\uc2dc \ub610\ub294 \uc885\ub8cc",keyboardShortcuts:"\ud0a4\ubcf4\ub4dc \ub2e8\ucd95\ud0a4",localRecording:"",mute:"\ub9c8\uc774\ud06c \uc74c\uc18c\uac70 \ub610\ub294 \uc74c\uc18c\uac70 \ud574\uc81c",pushToTalk:"\ub300\ud654 \uc694\uccad",raiseHand:"\ub9d0\ud558\uae30 \uc694\uccad/\ud574\uc81c",showSpeakerStats:"\uc811\uc18d\uc790 \ud1b5\uacc4 \ud45c\uc2dc",toggleChat:"\ucc44\ud305 \ud45c\uc2dc \ub610\ub294 \uc228\uae30\uae30",toggleFilmstrip:"\ub3d9\uc601\uc0c1 \ud45c\uc2dc \ub610\ub294 \uc228\uae30\uae30",toggleScreensharing:"\uce74\uba54\ub77c\uc640 \ud654\uba74 \uacf5\uc720\uac04\uc5d0 \uc804\ud658",toggleShortcuts:"\ub3c4\uc6c0\ub9d0 \uba54\ub274 \ud45c\uc2dc \ub610\ub294 \uc228\uae30\uae30",videoMute:"\uce74\uba54\ub77c \uc2dc\uc791 \ub610\ub294 \uc911\uc9c0"},liveStreaming:{busy:"\uc2a4\ud2b8\ub9ac\ubc0d \uc790\uc6d0\uc744 \ud655\ubcf4\ud558\uae30 \uc704\ud574 \ub178\ub825\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uba87 \ubd84 \ud6c4\uc5d0 \ub2e4\uc2dc \uc2dc\ub3c4\ud558\uc2ed\uc2dc\uc624.",busyTitle:"\ubaa8\ub4e0 \uc2a4\ud2b8\ub9ac\uba38\uac00 \ud604\uc7ac \uc0ac\uc6a9 \uc911\uc785\ub2c8\ub2e4",changeSignIn:"\uacc4\uc815\uc744 \uc804\ud658\ud558\uc2ed\uc2dc\uc624",choose:"\uc2e4\uc2dc\uac04 \uc2a4\ud2b8\ub9ac\ubc0d\uc744 \uc120\ud0dd\ud558\uc138\uc694",chooseCTA:"\uc2a4\ud2b8\ub9ac\ubc0d \uc635\uc158\uc744 \uc120\ud0dd\ud558\uc2ed\uc2dc\uc624. \ud604\uc7ac {{email}} (\uc73c)\ub85c \ub85c\uadf8\uc778\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4.",enterStreamKey:"YouTube \uc2e4\uc2dc\uac04 \uc2a4\ud2b8\ub9ac\ubc0d \ud0a4\ub97c \uc785\ub825\ud558\uc2ed\uc2dc\uc624",error:"\uc2e4\uc2dc\uac04 \uc2a4\ud2b8\ub9ac\ubc0d\uc5d0 \uc2e4\ud328\ud588\uc2b5\ub2c8\ub2e4. \ub2e4\uc2dc \uc2dc\ub3c4\ud558\uc2ed\uc2dc\uc624.",errorAPI:"YouTube \ubc29\uc1a1\uc5d0 \uc561\uc138\uc2a4\ud558\ub294 \uc911\uc5d0 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4. \ub2e4\uc2dc \ub85c\uadf8\uc778\ud558\uc2ed\uc2dc\uc624.",errorLiveStreamNotEnabled:"",expandedOff:"",expandedOn:"",expandedPending:"",failedToStart:"\uc2e4\uc2dc\uac04 \uc2a4\ud2b8\ub9ac\ubc0d \uc2dc\uc791 \uc2e4\ud328",getStreamKeyManually:"",invalidStreamKey:"",off:"\uc2e4\uc2dc\uac04 \uc2a4\ud2b8\ub9ac\ubc0d\uc774 \uc911\uc9c0\ub428",on:"\uc2e4\uc2dc\uac04 \uc2a4\ud2b8\ub9ac\ubc0d",pending:"\uc2e4\uc2dc\uac04 \uc2a4\ud2b8\ub9ac\ubc0d \uc2dc\uc791...",serviceName:"\uc2e4\uc2dc\uac04 \uc2a4\ud2b8\ub9ac\ubc0d \uc11c\ube44\uc2a4",signedInAs:"",signIn:"Google\ub85c \ub85c\uadf8\uc778",signInCTA:"YouTube\uc5d0\uc11c \ub85c\uadf8\uc778\ud558\uac70\ub098 \uc2e4\uc2dc\uac04 \uc2a4\ud2b8\ub9ac\ubc0d \ud0a4\ub97c \uc785\ub825\ud558\uc2ed\uc2dc\uc624",signOut:"",start:"\uc2e4\uc2dc\uac04 \uc2a4\ud2b8\ub9ac\ubc0d \uc2dc\uc791",streamIdHelp:"\ub3c4\uc6c0\ub9d0?",unavailableTitle:"\uc2e4\uc2dc\uac04 \uc2a4\ud2b8\ub9ac\ubc0d\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc5c6\uc74c"},localRecording:{clientState:{off:"",on:"",unknown:""},dialogTitle:"",duration:"",durationNA:"",encoding:"",label:"",labelToolTip:"",localRecording:"",me:"",messages:{engaged:"",finished:"",finishedModerator:"",notModerator:""},moderator:"",no:"",participant:"",participantStats:"",sessionToken:"",start:"\ub808\ucf54\ub529 \uc2dc\uc791",stop:"\ub808\ucf54\ub529 \uc885\ub8cc",yes:""},"\x05localRecording":{},lockRoomPassword:"\ud328\uc2a4\uc6cc\ub4dc",lockRoomPasswordUppercase:"\ud328\uc2a4\uc6cc\ub4dc",me:"Me",notify:{connectedOneMember:"",connectedThreePlusMembers:"",connectedTwoMembers:"",disconnected:"\uc5f0\uacb0\uc774 \ub04a\uae40",focus:"\ucee8\ud37c\ub7f0\uc2a4 \ud3ec\ucee4\uc2a4",focusFail:"{{component}}\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc5c6\uc74c - {{ms}} \ucd08 \ud6c4\uc5d0 \ub2e4\uc2dc \uc2dc\ub3c4\ud558\uc2ed\uc2dc\uc624",grantedTo:"{{to}}\uc5d0\uac8c \ubc29\uc7a5 \uad8c\ud55c\uc774 \ubd80\uc5ec\ub418\uc5c8\uc2b5\ub2c8\ub2e4!",invitedOneMember:"",invitedThreePlusMembers:"",invitedTwoMembers:"",kickParticipant:"",me:"",moderator:"\ubc29\uc7a5 \uad8c\ud55c\uc774 \ubd80\uc5ec\ub418\uc5c8\uc2b5\ub2c8\ub2e4!",muted:"\uc74c\uc18c\uac70\ub85c \ub300\ud654\uac00 \uc2dc\uc791\ub418\uc5c8\uc2b5\ub2c8\ub2e4",mutedTitle:"\uc74c\uc18c\uac70 \uc0c1\ud0dc\uc785\ub2c8\ub2e4!",mutedRemotelyTitle:"",mutedRemotelyDescription:"",passwordRemovedRemotely:"",passwordSetRemotely:"",raisedHand:"",somebody:"\ub204\uad70\uac00",startSilentTitle:"",startSilentDescription:"",suboptimalExperienceDescription:"{{appName}}\uc5d0 \ub300\ud55c \uadc0\ud558\uc758 \uacbd\ud5d8\uc774 \uc5c6\uc73c\uc2dc\ub2e4\uba74 \uc644\ubcbd\ud558\uac8c \uc9c0\uc6d0\ub418\ub294 \ube0c\ub77c\uc6b0\uc800 \uc911 \ud558\ub098\ub97c \uc0ac\uc6a9\ud574\ubcf4\uc2ed\uc2dc\uc624.",suboptimalExperienceTitle:"\ube0c\ub77c\uc6b0\uc800 \uacbd\uace0",unmute:"",newDeviceCameraTitle:"",newDeviceAudioTitle:"",newDeviceAction:""},passwordSetRemotely:"",passwordDigitsOnly:"",poweredby:"powered by",presenceStatus:{busy:"\ubc14\uc068",calling:"\uc804\ud654 \uac70\ub294 \uc911",connected:"\uc5f0\uacb0 \ub428",connecting:"\uc5f0\uacb0 \uc911",connecting2:"\uc5f0\uacb0 \uc911*",disconnected:"\uc5f0\uacb0 \ub04a\uae40",expired:"\ub9cc\ub8cc \ub428",ignored:"\ubb34\uc2dc \ub428",initializingCall:"\ud1b5\ud654 \ucd08\uae30\ud654 \uc911",invited:"\ucd08\ub300 \ub428",rejected:"\uac70\ubd80 \ub428",ringing:"\uc804\ud654 \uc911"},profile:{setDisplayNameLabel:"\ud45c\uc2dc \uc774\ub984 \uc124\uc815",setEmailInput:"\uc774\uba54\uc77c \uc785\ub825",setEmailLabel:"\uc774\uba54\uc77c \uc124\uc815",title:"\ud504\ub85c\ud544"},recording:{authDropboxText:"",availableSpace:"",beta:"\ubca0\ud0c0",busy:"\ub808\ucf54\ub529 \uc790\uc6d0\uc744 \ud655\ubcf4\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uba87 \ubd84 \ud6c4\uc5d0 \ub2e4\uc2dc \uc2dc\ub3c4\ud558\uc2ed\uc2dc\uc624.",busyTitle:"\ubaa8\ub4e0 \ub808\ucf54\ub354\uac00 \ud604\uc7ac \uc0ac\uc6a9 \uc911\uc785\ub2c8\ub2e4",error:"\ub808\ucf54\ub529\uc774 \uc2e4\ud328\ud588\uc2b5\ub2c8\ub2e4. \ub2e4\uc2dc \uc2dc\ub3c4\ud558\uc2ed\uc2dc\uc624.",expandedOff:"\ub808\ucf54\ub529\uc774 \uc911\uc9c0\ub428",expandedOn:"",expandedPending:"",failedToStart:"\ub808\ucf54\ub529\uc744 \uc2dc\uc791\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4",fileSharingdescription:"",live:"\ub77c\uc774\ube0c",loggedIn:"",off:"\ub808\ucf54\ub529\uc774 \uc911\uc9c0\ub428",on:"\ub808\ucf54\ub529",pending:"\ucc38\uc11d\ud560 \uba64\ubc84\ub97c \uae30\ub2e4\ub9ac\ub294 \uc911\uc785\ub2c8\ub2e4...",rec:"REC",serviceDescription:"",serviceName:"\ub808\ucf54\ub529 \uc11c\ube44\uc2a4",signIn:"",signOut:"",unavailable:"\uc8c4\uc1a1\ud569\ub2c8\ub2e4. {{serviceName}}\uc740 \ud604\uc7ac \uc0ac\uc6a9\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. \uc800\ud76c\ub294 \ubb38\uc81c\ub97c \ud574\uacb0\ud558\uae30 \uc704\ud574 \ub178\ub825\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \ub098\uc911\uc5d0 \ub2e4\uc2dc \uc2dc\ub3c4 \ud574\uc8fc\uc2ed\uc2dc\uc624.",unavailableTitle:"\ub808\ucf54\ub529\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4"},"\x05recording":{},sectionList:{pullToRefresh:"\ub2f9\uaca8\uc11c \uc0c8\ub85c\uace0\uce68"},settings:{calendar:{about:"",disconnect:"\uc5f0\uacb0 \ub04a\uae40",microsoftSignIn:"",signedIn:"",title:""},devices:"",followMe:"\ubaa8\ub450 \ub098\uc640 \uac19\uc740 \uc124\uc815 \uc0c1\ud0dc\ub85c",language:"",loggedIn:"",moderator:"",more:"",name:"\uc774\ub984",noDevice:"\uc5c6\uc74c",selectAudioOutput:"\uc624\ub514\uc624 \ucd9c\ub825",selectCamera:"\uce74\uba54\ub77c",selectMic:"\uc624\ub514\uc624",startAudioMuted:"\ubaa8\ub450\uac00 \uc74c\uc18c\uac70\ub97c \uc2dc\uc791\ud569\ub2c8\ub2e4",startVideoMuted:"\ubaa8\ub450\uac00 \ube44\ub514\uc624 \ube44\ud65c\uc131\ud654\ub85c \uc2dc\uc791\ud569\ub2c8\ub2e4",title:"\uc138\ud2f0"},"\x05settings":{calendar:{}},settingsView:{alertOk:"\ud655\uc778",alertTitle:"\uacbd\uace0",alertURLText:"\uc785\ub825\ub41c \uc11c\ubc84 URL\uc774 \uc798\ubabb\ub418\uc5c8\uc2b5\ub2c8\ub2e4",buildInfoSection:"",conferenceSection:"\ud68c\uc758",displayName:"\uc720\uc800\uc774\ub984",email:"\uc774\uba54\uc77c",header:"\uc138\ud2f0",profileSection:"\ud504\ub85c\ud544",serverURL:"\uc11c\ubc84 URL",startWithAudioMuted:"\uc624\ub514\uc624 \uc74c\uc18c\uac70 \uc0c1\ud0dc\ub85c \uc2dc\uc791",startWithVideoMuted:"\ube44\ub514\uc624 \ube44\ud65c\uc131\ud654 \uc0c1\ud0dc\ub85c \uc2dc\uc791",version:""},share:{dialInfoText:"",mainText:""},speaker:"\uc2a4\ud53c\ucee4",speakerStats:{hours:"{{count}}h",minutes:"{{count}}m",name:"\uc774\ub984",seconds:"{{count}}s",speakerStats:"\uc811\uc18d\uc790 \ud1b5\uacc4",speakerTime:"\uc811\uc18d\uc790 \uc624\ub514\uc624 \uc0ac\uc6a9 \uc2dc\uac04"},startupoverlay:{policyText:" ",title:"{{app}}\uc740 \ub9c8\uc774\ud06c\uc640 \uce74\uba54\ub77c\ub97c \uc0ac\uc6a9\ud574\uc57c\ud569\ub2c8\ub2e4"},suspendedoverlay:{rejoinKeyTitle:"\uc7ac\uc811\uc18d",text:"\ub2e4\uc2dc \uc5f0\uacb0\ud558\ub824\uba74 \uc7ac\uc811\uc18d \ubc84\ud2bc\uc744 \ub204\ub974\uc2ed\uc2dc\uc624",title:"\ucef4\ud4e8\ud130 \ud734\uc2dd \ubaa8\ub4dc\uac00 \ub418\uc5b4 \ud654\uc0c1 \ud1b5\ud654\uac00 \uc911\ub2e8\ub418\uc5c8\uc2b5\ub2c8\ub2e4"},toolbar:{accessibilityLabel:{audioOnly:"",audioRoute:"\uc74c\uc131 \uc7a5\ube44 \uc120\ud0dd\ud558\uae30",callQuality:"",cc:"",chat:"",document:"",feedback:"\ud53c\ub4dc\ubc31 \ub0a8\uae30\uae30",fullScreen:"",hangup:"",invite:"",kick:"",localRecording:"",lockRoom:"",moreActions:"",moreActionsMenu:"",mute:"",pip:"",profile:"",raiseHand:"",recording:"",remoteMute:"",Settings:"",sharedvideo:"",shareRoom:"",shareYourScreen:"",shortcuts:"\ub2e8\ucd95\ud0a4 \ud1a0\uadf8",show:"",speakerStats:"",tileView:"",toggleCamera:"\uce74\uba54\ub77c \ud1a0\u3131",videomute:"",videoblur:""},addPeople:"\ud1b5\ud654\uc5d0 \uc0ac\uc6a9\uc790 \ucd94\uac00",audioOnlyOff:"\uc74c\uc131\uc804\uc6a9 \ubaa8\ub4dc \ub044\uae30",audioOnlyOn:"\uc74c\uc131\uc804\uc6a9 \ubaa8\ub4dc \ub044\uae30",audioRoute:"\uc74c\uc131 \uc7a5\ube44 \uc120\ud0dd\ud558\uae30",authenticate:"\uc778\uc99d \uc911",callQuality:"\ud488\uc9c8 \uc124\uc815\ud558\uae30",chat:"",closeChat:"",documentClose:"",documentOpen:"",enterFullScreen:"\uc804\uccb4\ud654\uba74 \ubcf4\uae30",enterTileView:"",exitFullScreen:"\uc804\uccb4\ud654\uba74 \ucde8\uc18c",exitTileView:"",feedback:"\ud53c\ub4dc\ubc31 \ub0a8\uae30\uae30",hangup:"",invite:"",login:"",logout:"\ub85c\uadf8\uc544\uc6c3",lowerYourHand:"",moreActions:"\ucd94\uac00 \uc561\uc158",mute:"\ub9c8\uc774\ud06c",openChat:"",pip:"",profile:"",raiseHand:"\ub9d0\ud558\uae30 \uc694\uccad/\ud574\uc81c",raiseYourHand:"",Settings:"\uc138\ud2f0",sharedvideo:"",shareRoom:"",shortcuts:"",speakerStats:"\uc811\uc18d\uc790 \ud1b5\uacc4",startScreenSharing:"",startSubtitles:"",stopScreenSharing:"",stopSubtitles:"",stopSharedVideo:"",talkWhileMutedPopup:"",tileViewToggle:"",toggleCamera:"\uce74\uba54\ub77c \ud1a0\u3131",videomute:"",startvideoblur:"",stopvideoblur:""},"\x05toolbar":{},transcribing:{ccButtonTooltip:"",error:"\ub808\ucf54\ub529\uc774 \uc2e4\ud328\ud588\uc2b5\ub2c8\ub2e4. \ub2e4\uc2dc \uc2dc\ub3c4\ud558\uc2ed\uc2dc\uc624.",expandedLabel:"",failedToStart:"",labelToolTip:"",off:"",pending:"\ucc38\uc11d\ud560 \uba64\ubc84\ub97c \uae30\ub2e4\ub9ac\ub294 \uc911\uc785\ub2c8\ub2e4...",start:"",stop:"",tr:""},"\x05transcribing":{},userMedia:{androidGrantPermissions:"\ube0c\ub77c\uc6b0\uc800\uc5d0\uc11c \uad8c\ud55c\uc744 \uc694\uccad\ud560 \ub54c \ud5c8\ub77d\uc744 \uc120\ud0dd",chromeGrantPermissions:"\ube0c\ub77c\uc6b0\uc800\uc5d0\uc11c \uad8c\ud55c\uc744 \uc694\uccad\ud560 \ub54c \ud5c8\ub77d\uc744 \uc120\ud0dd",edgeGrantPermissions:"\ube0c\ub77c\uc6b0\uc800\uc5d0\uc11c \uad8c\ud55c\uc744 \uc694\uccad\ud560 \ub54c Yes\ub97c \uc120\ud0dd",electronGrantPermissions:"\uce74\uba54\ub77c\uc640 \ub9c8\uc774\ud06c \uc0ac\uc6a9 \uad8c\ud55c\uc744 \ubd80\uc5ec\ud558\uc2ed\uc2dc\uc624",firefoxGrantPermissions:"\ube0c\ub77c\uc6b0\uc800\uc5d0\uc11c \uad8c\ud55c\uc744 \uc694\uccad\ud560 \ub54c \uc120\ud0dd\ub41c \ub514\ubc14\uc774\uc2a4 \uacf5\uc720\ub97c \uc120\ud0dd",iexplorerGrantPermissions:"\ube0c\ub77c\uc6b0\uc800\uc5d0\uc11c \uad8c\ud55c\uc744 \uc694\uccad\ud560 \ub54c OK\ub97c \uc120\ud0dd",nwjsGrantPermissions:"\uce74\uba54\ub77c\uc640 \ub9c8\uc774\ud06c \uc0ac\uc6a9 \uad8c\ud55c\uc744 \ubd80\uc5ec\ud558\uc2ed\uc2dc\uc624",operaGrantPermissions:"\ube0c\ub77c\uc6b0\uc800\uc5d0\uc11c \uad8c\ud55c\uc744 \uc694\uccad\ud560 \ub54c \ud5c8\ub77d\uc744 \uc120\ud0dd","react-nativeGrantPermissions":"\ube0c\ub77c\uc6b0\uc800\uc5d0\uc11c \uad8c\ud55c\uc744 \uc694\uccad\ud560 \ub54c \ud5c8\ub77d\uc744 \uc120\ud0dd",safariGrantPermissions:"\ube0c\ub77c\uc6b0\uc800\uc5d0\uc11c \uad8c\ud55c\uc744 \uc694\uccad\ud560 \ub54c OK\ub97c \uc120\ud0dd"},videoSIPGW:{busy:"\uc790\uc6d0\uc744 \ud655\ubcf4\ud558\uae30 \uc704\ud574 \ub178\ub825\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uba87 \ubd84 \ud6c4\uc5d0 \ub2e4\uc2dc \uc2dc\ub3c4\ud558\uc2ed\uc2dc\uc624.",busyTitle:"\uc11c\ube44\uc2a4\uac00 \ud604\uc7ac \uc0ac\uc6a9 \uc911\uc785\ub2c8\ub2e4",errorAlreadyInvited:"{{displayName}} \uc774\ubbf8 \ucd08\ub300\ub418\uc5c8\uc2b5\ub2c8\ub2e4",errorInvite:"\ud68c\uc758\uac00 \uc544\uc9c1 \uc124\uc815\ub418\uc9c0 \uc54a\uc558\uc2b5\ub2c8\ub2e4. \ub098\uc911\uc5d0 \ub2e4\uc2dc \uc2dc\ub3c4 \ud574\uc8fc\uc2ed\uc2dc\uc624.",errorInviteFailed:"\ubb38\uc81c\ub97c \ud574\uacb0\ud558\uae30 \uc704\ud574 \ub178\ub825\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \ub098\uc911\uc5d0 \ub2e4\uc2dc \uc2dc\ub3c4 \ud574\uc8fc\uc2ed\uc2dc\uc624.",errorInviteFailedTitle:"{{displayName}} \ucd08\ub300 \uc2e4\ud328",errorInviteTitle:"\ucd08\ub300\ud558\ub294 \uc911\uc5d0 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4",pending:"{{displayName}} \uc774\ubbf8 \ucd08\ub300\ub418\uc5c8\uc2b5\ub2c8\ub2e4"},videoStatus:{audioOnly:"\uc624\ub514\uc624 \uc804\uc6a9",audioOnlyExpanded:"",callQuality:"",hd:"HD",highDefinition:"\uace0\ud574\uc0c1\ub3c4",labelTooiltipNoVideo:"\ube44\ub514\uc624 \uc5c6\uc74c",labelTooltipAudioOnly:"\uc624\ub514\uc624 \uc804\uc6a9 \ubaa8\ub4dc \uc0ac\uc6a9",ld:"LD",lowDefinition:"\uc800\ud654\uc9c8",onlyAudioAvailable:"\uc624\ub514\uc624\ub9cc \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4",onlyAudioSupported:"\uc774 \ube0c\ub77c\uc6b0\uc800\uc5d0\uc11c\ub294 \uc624\ub514\uc624\ub9cc \uc9c0\uc6d0\ud569\ub2c8\ub2e4",p2pEnabled:"Peer to Peer \uc0ac\uc6a9 \uac00\ub2a5",p2pVideoQualityDescription:"",recHighDefinitionOnly:"\uace0\ud654\uc9c8\uc744 \uc120\ud638\ud569\ub2c8\ub2e4",sd:"SD",standardDefinition:"\ud45c\uc900 \ud574\uc0c1\ub3c4"},videothumbnail:{domute:"\uc74c\uc18c\uac70",flip:"\ud50c\ub9bd",kick:"\ub0b4\ubcf4\ub0b4\uae30",moderator:"",mute:"",muted:"\uc74c\uc18c\uac70\ub428",remoteControl:"\uc6d0\uaca9 \uc81c\uc5b4",show:"",videomute:""},welcomepage:{accessibilityLabel:{join:"\uac00\uc785",roomname:"\ubc29 \uc774\ub984 \uc785\ub825"},appDescription:"\uc804\uccb4 \ud300\uacfc \ud654\uc0c1 \ucc44\ud305\uc744\ud558\uc2ed\uc2dc\uc624. \ub2f9\uc2e0\uc774 \uc544\ub294 \ubaa8\ub4e0 \uc0ac\ub78c\ub4e4\uc744 \ucd08\ub300\ud558\uc2ed\uc2dc\uc624. {{app}}\uc740 \uc644\uc804\ud788 \uc554\ud638\ud654 \ub41c 100 % \uc624\ud508 \uc18c\uc2a4 \ud654\uc0c1 \ud68c\uc758 \uc194\ub8e8\uc158\uc73c\ub85c \uacc4\uc815 \uc5c6\uc774\ub3c4 \ud558\ub8e8 \uc885\uc77c, \ub9e4\uc77c \ubb34\ub8cc\ub85c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.",audioVideoSwitch:{audio:"\uc74c\uc131",video:"\ube44\ub514\uc624"},calendar:"",connectCalendarButton:"",connectCalendarText:"",enterRoomTitle:"",go:"\uacc4\uc18d",join:"\uac00\uc785",info:"",privacy:"\uac1c\uc778\uc815\ubcf4",recentList:"",recentListDelete:"",recentListEmpty:"",reducedUIText:"",roomname:"\ubc29 \uc774\ub984 \uc785\ub825",roomnameHint:"",sendFeedback:"",terms:"\uc774\uc6a9\uc57d\uad00",title:""}}},673,[]); -__d(function(e,s,o,t,n,r,a){n.exports={en:"",af:"",az:"",bg:"",cs:"",de:"",el:"",eo:"",es:"",fr:"",hy:"",it:"",ja:"",ko:"",nb:"",oc:"",pl:"",ptBR:"",ru:"",sk:"",sl:"",sv:"",tr:"",vi:"",zhCN:""}},674,[]); -__d(function(e,n,r,t,i,o,a){i.exports={addPeople:{add:"Uitnodigen",countryNotSupported:"Deze bestemming wordt nog niet ondersteund.",countryReminder:"Belt u naar een bestemming buiten de Verenigde Staten? Vergeet dan niet de landcode te gebruiken.",disabled:"U kunt geen personen uitnodigen.",failedToAdd:"Het toevoegen van leden is mislukt",footerText:"Uitgaande oproep is uitgeschakeld.",loading:"Personen en telefoonnummers zoeken",loadingNumber:"Telefoonnummer valideren",loadingPeople:"Personen zoeken om uit te nodigen",noResults:"Geen resultaten die overeenkomen met de zoekopdracht",noValidNumbers:"Voer een telefoonnummer in",searchNumbers:"Telefoonnummers toevoegen",searchPeople:"Personen zoeken",searchPeopleAndNumbers:"Personen zoeken of hun telefoonnummers toevoegen",telephone:"Telefoonnummer: {{number}}",title:"Personen uitnodigen voor deze vergadering"},audioDevices:{bluetooth:"Bluetooth",headphones:"Hoofdtelefoon",phone:"Telefoon",speaker:"Spreker"},audioOnly:{audioOnly:"Alleen audio"},calendarSync:{addMeetingURL:"Een link naar de vergadering toevoegen",confirmAddLink:"Wilt u een Jitsi-link naar deze gebeurtenis toevoegen?",error:{appConfiguration:"De Agenda-integratie is niet naar behoren geconfigureerd.",generic:"Er is een fout opgetreden. Controleer de agenda-instellingen of vernieuw de agenda.",notSignedIn:"Er is een fout opgetreden tijdens de verificatie voor het weergeven van agendagebeurtenissen. Controleer de agenda-instellingen en probeer u opnieuw aan te melden."},join:"Deelnemen",joinTooltip:"Deelnemen aan de vergadering",nextMeeting:"volgende vergadering",noEvents:"Er zijn geen gebeurtenissen gepland.",ongoingMeeting:"actieve vergadering",permissionButton:"Instellingen openen",permissionMessage:"U hebt een machtiging voor Agenda nodig om uw vergaderingen weer te geven in de app.",refresh:"Agenda vernieuwen",today:"Vandaag"},chat:{error:"Fout: uw bericht \"{{originalText}}\" is niet verzonden. Reden: {{error}}",messagebox:"Typ een bericht",nickname:{popover:"Kies een bijnaam",title:"Voer een bijnaam in om de chatfunctie te gebruiken"},title:"Chat"},connectingOverlay:{joiningRoom:"Er wordt verbinding gemaakt met de vergadering..."},connection:{ATTACHED:"Bijgesloten",AUTHENTICATING:"Verifi\xebren",AUTHFAIL:"Verificatie mislukt",CONNECTED:"Verbonden",CONNECTING:"Verbinding maken",CONNFAIL:"Verbinding mislukt",DISCONNECTED:"Verbinding verbroken",DISCONNECTING:"Verbinding verbreken",ERROR:"Fout",RECONNECTING:"Er is een netwerkprobleem opgetreden. Er wordt opnieuw verbinding gemaakt..."},connectionindicator:{address:"Adres:",bandwidth:"Geschatte bandbreedte:",bitrate:"Bitrate:",bridgeCount:"Aantal servers:",connectedTo:"Verbonden met:",framerate:"Framesnelheid:",less:"Minder weergeven",localaddress:"Lokaal adres:",localaddress_plural:"Lokale adressen:",localport:"Lokale poort:",localport_plural:"Lokale poorten:",more:"Meer weergeven",packetloss:"Pakketverlies:",quality:{good:"Goed",inactive:"Inactief",lost:"Verbroken",nonoptimal:"Niet optimaal",poor:"Slecht"},remoteaddress:"Extern adres:",remoteaddress_plural:"Externe adressen:",remoteport:"Externe poort:",remoteport_plural:"Externe poorten:",resolution:"Resolutie:",status:"Verbinding:",transport:"Transport:",transport_plural:"Transporten:",turn:" (draaien)"},dateUtils:{earlier:"Eerder",today:"Vandaag",yesterday:"Gisteren"},deepLinking:{appNotInstalled:"U hebt de mobiele app {{app}} nodig om op uw telefoon aan deze vergadering deel te nemen.",description:"Gebeurt er niets? Er is geprobeerd uw vergadering te starten in de desktop-app {{app}}. Probeer het opnieuw of start de vergadering in de web-app {{app}}.",descriptionWithoutWeb:"",downloadApp:"De app downloaden",launchWebButton:"Starten via web",openApp:"Doorgaan naar de app",title:"Uw vergadering wordt gestart in {{app}}...",tryAgainButton:"Opnieuw proberen op desktop"},defaultLink:"bijv. {{url}}",deviceError:{cameraError:"Geen toegang tot de camera",cameraPermission:"Fout bij het verkrijgen van toestemming voor de camera",microphoneError:"Geen toegang tot de microfoon",microphonePermission:"Fout bij het verkrijgen van toestemming voor de microfoon"},deviceSelection:{noPermission:"Geen toestemming verleend",previewUnavailable:"Voorbeeld niet beschikbaar",selectADevice:"Selecteer een apparaat",testAudio:"Een testgeluid afspelen"},dialog:{accessibilityLabel:{liveStreaming:"Livestream"},allow:"Toestaan",alreadySharedVideoMsg:"Er wordt al een video gedeeld door een ander lid. In deze vergadering kan slechts \xe9\xe9n video tegelijkertijd worden gedeeld.",alreadySharedVideoTitle:"Slechts \xe9\xe9n gedeelde video tegelijkertijd toegestaan",applicationWindow:"Toepassingsvenster",Back:"Terug",cameraConstraintFailedError:"Uw camera voldoet niet aan alle vereiste beperkingen.",cameraNotFoundError:"Camera niet gevonden.",cameraNotSendingData:"Er is geen toegang tot uw camera verkregen. Controleer of dit apparaat wordt gebruikt door een andere toepassing, selecteer een ander apparaat in de instellingen of laad de toepassing opnieuw.",cameraNotSendingDataTitle:"Geen toegang tot de camera",cameraPermissionDeniedError:"U hebt geen toestemming verleend voor het gebruik van de camera. U kunt wel deelnemen aan de vergadering, maar anderen kunnen u niet zien. Gebruik de cameraknop in de adresbalk als u dit wilt wijzigen.",cameraUnknownError:"Kan de camera om een onbekende reden niet gebruiken.",cameraUnsupportedResolutionError:"De camera biedt geen ondersteuning voor de vereiste videoresolutie.",Cancel:"Annuleren",close:"Sluiten",conferenceDisconnectMsg:"Controleer de netwerkverbinding. Over {{seconds}} sec. wordt opnieuw geprobeerd verbinding te maken...",conferenceDisconnectTitle:"De verbinding is verbroken.",conferenceReloadMsg:"We proberen het probleem op te lossen. Over {{seconds}} sec. wordt opnieuw geprobeerd verbinding te maken...",conferenceReloadTitle:"Er is iets misgegaan.",confirm:"Bevestigen",confirmNo:"Nee",confirmYes:"Ja",connectError:"Er is iets misgegaan. Er kan geen verbinding met de vergadering worden gemaakt.",connectErrorWithMsg:"Er is iets misgegaan. Er kan geen verbinding met de vergadering worden gemaakt: {{msg}}",connecting:"Verbinding maken",contactSupport:"Contact opnemen met ondersteuning",copy:"Kopi\xebren",dismiss:"Negeren",displayNameRequired:"Weergavenaam is vereist",done:"Gereed",enterDisplayName:"Voer uw weergavenaam in",error:"Fout",externalInstallationMsg:"U moet onze extensie voor het delen van het bureaublad installeren.",externalInstallationTitle:"Extensie vereist",goToStore:"Naar de webwinkel",gracefulShutdown:"Onze service is momenteel niet beschikbaar wegens onderhoud. Probeer het later opnieuw.",IamHost:"Ik ben de host",incorrectRoomLockPassword:"",incorrectPassword:"Gebruikersnaam of wachtwoord onjuist",inlineInstallationMsg:"U moet onze extensie voor het delen van het bureaublad installeren.",inlineInstallExtension:"Nu installeren",internalError:"Er is iets misgegaan. De volgende fout is opgetreden: {{error}}",internalErrorTitle:"Interne fout",kickMessage:"U bent uit de vergadering verwijderd.",kickParticipantButton:"Verwijderen",kickParticipantDialog:"Weet u zeker dat u deze deelnemer wilt verwijderen?",kickParticipantTitle:"Dit lid verwijderen?",kickTitle:"Verwijderd uit vergadering",liveStreaming:"Livestream",liveStreamingDisabledForGuestTooltip:"Gasten kunnen livestream niet starten.",liveStreamingDisabledTooltip:"Het starten van de livestream is uitgeschakeld.",lockMessage:"Het vergrendelen van de vergadering is mislukt.",lockRoom:"Wachtwoord voor vergadering toevoegen",lockTitle:"Vergrendelen mislukt",logoutQuestion:"Weet u zeker dat u zich wilt afmelden en de vergadering wilt stoppen?",logoutTitle:"Afmelden",maxUsersLimitReached:"Het maximale aantal leden is bereikt. De vergadering is vol. Neem contact op met de eigenaar van de vergadering of probeer het later opnieuw.",maxUsersLimitReachedTitle:"Maximaal aantal leden bereikt",micConstraintFailedError:"Uw microfoon voldoet niet aan alle vereiste beperkingen.",micNotFoundError:"Microfoon niet gevonden.",micNotSendingData:"Er is geen toegang tot uw microfoon verkregen. Selecteer een ander apparaat in de instellingen of laad de toepassing opnieuw.",micNotSendingDataTitle:"Geen toegang tot de microfoon",micPermissionDeniedError:"U hebt geen toestemming verleend voor het gebruik van de microfoon. U kunt wel deelnemen aan de vergadering, maar anderen kunnen u niet horen. Gebruik de cameraknop in de adresbalk als u dit wilt wijzigen.",micUnknownError:"Kan de microfoon om een onbekende reden niet gebruiken.",muteParticipantBody:"U kunt het dempen van anderen niet opheffen, maar zij kunnen dit wel op elk gewenst moment voor zichzelf doen.",muteParticipantButton:"Dempen",muteParticipantDialog:"Weet u zeker dat u deze deelnemer wilt dempen? U kunt het dempen niet opheffen, maar dit kan deze persoon wel op elk gewenst moment zelf doen.",muteParticipantTitle:"Dit lid dempen?",Ok:"OK",passwordLabel:"Wachtwoord",passwordNotSupported:"Het instellen van een wachtwoord voor een vergadering wordt niet ondersteund.",passwordNotSupportedTitle:"Wachtwoord niet ondersteund",passwordRequired:"Wachtwoord vereist",popupError:"Er wordt een pop-upvenster van deze site geblokkeerd door uw browser. Ga naar de beveiligingsinstellingen van uw browser, schakel pop-upvensters in en probeer het opnieuw.",popupErrorTitle:"Pop-up wordt geblokkeerd",recording:"Opnemen",recordingDisabledForGuestTooltip:"Gasten kunnen geen opnamen starten.",recordingDisabledTooltip:"Het starten van opnamen is uitgeschakeld.",rejoinNow:"Nu opnieuw deelnemen",remoteControlAllowedMessage:"{{user}} heeft uw aanvraag voor extern beheer geaccepteerd.",remoteControlDeniedMessage:"{{user}} heeft uw aanvraag voor extern beheer geweigerd.",remoteControlErrorMessage:"Er is een fout opgetreden tijdens het aanvragen van machtigingen voor extern beheer bij {{user}}.",remoteControlRequestMessage:"Wilt u {{user}} een machtiging verlenen om uw bureaublad extern te beheren?",remoteControlShareScreenWarning:"Let op: als u 'Toestaan' kiest, wordt uw scherm gedeeld.",remoteControlStopMessage:"De sessie voor extern beheer is be\xebindigd.",remoteControlTitle:"Extern beheer van bureaublad",Remove:"Verwijderen",removePassword:"Wachtwoord verwijderen",removeSharedVideoMsg:"Weet u zeker dat u uw gedeelde video wilt verwijderen?",removeSharedVideoTitle:"Gedeelde video verwijderen",reservationError:"Fout in reserveringssysteem",reservationErrorMsg:"Foutcode: {{code}}, bericht: {{msg}}",retry:"Opnieuw proberen",screenSharingFailedToInstall:"De installatie van de extensie voor het delen van het scherm is mislukt.",screenSharingFailedToInstallTitle:"Installatie van extensie voor het delen van het scherm is mislukt",screenSharingFirefoxPermissionDeniedError:"Er is iets misgegaan tijdens het delen van uw scherm. Controleer of u hier toestemming voor hebt verleend.",screenSharingFirefoxPermissionDeniedTitle:"Scherm delen kan niet worden gestart.",screenSharingPermissionDeniedError:"Er is iets misgegaan met de machtigingen voor de extensie voor het delen van het scherm. Laad de toepassing opnieuw en probeer het nog eens.",serviceUnavailable:"Service niet beschikbaar",sessTerminated:"Gesprek be\xebindigd",Share:"Delen",shareVideoLinkError:"Geef een juiste YouTube-link op.",shareVideoTitle:"Een video delen",shareYourScreen:"Uw scherm delen",shareYourScreenDisabled:"Scherm delen is uitgeschakeld.",shareYourScreenDisabledForGuest:"Gasten kunnen hun scherm niet delen.",startLiveStreaming:"Livestream starten",startRecording:"Opname starten",startRemoteControlErrorMessage:"Er is een fout opgetreden tijdens het starten van de sessie voor extern beheer.",stopLiveStreaming:"Livestream stoppen",stopRecording:"Opname stoppen",stopRecordingWarning:"Weet u zeker dat u de opname wilt stoppen?",stopStreamingWarning:"Weet u zeker dat u de livestream wilt stoppen?",streamKey:"Sleutel voor livestream",Submit:"Verzenden",thankYou:"Bedankt voor het gebruik van {{appName}}.",token:"token",tokenAuthFailed:"U hebt geen toestemming om aan dit gesprek deel te nemen.",tokenAuthFailedTitle:"Verificatie mislukt",transcribing:"Transcriberen",unlockRoom:"Wachtwoord voor vergadering verwijderen",userPassword:"gebruikerswachtwoord",WaitForHostMsg:"De vergadering {{room}} is nog niet gestart. Verifieer de vergadering als u de host bent. Anders wacht u tot de host aanwezig is.",WaitForHostMsgWOk:"De vergadering {{room}} is nog niet gestart. Als u de host bent, drukt u op OK om te verifi\xebren. Anders wacht u tot de host aanwezig is.",WaitingForHost:"Wachten op de host...",Yes:"Ja",yourEntireScreen:"Uw gehele scherm"},dialOut:{statusMessage:"is nu {{status}}"},feedback:{average:"Gemiddeld",bad:"Slecht",detailsLabel:"We horen er graag meer over.",good:"Goed",rateExperience:"Beoordeel uw ervaring tijdens de vergadering",veryBad:"Zeer slecht",veryGood:"Zeer goed"},incomingCall:{answer:"Beantwoorden",audioCallTitle:"Inkomende oproep",decline:"Negeren",productLabel:"vanuit Jitsi Meet",videoCallTitle:"Inkomende video-oproep"},info:{accessibilityLabel:"Informatie weergeven",addPassword:"Wachtwoord toevoegen",cancelPassword:"Wachtwoord annuleren",conferenceURL:"Link:",country:"Land",dialANumber:"Als u wilt deelnemen aan de vergadering, belt u een van deze nummers en voert u vervolgens de pincode in.",dialInConferenceID:"Pincode:",dialInNotSupported:"Inbellen wordt momenteel niet ondersteund.",dialInNumber:"Inbellen:",dialInSummaryError:"Fout bij het ophalen van inbelgegevens. Probeer het later opnieuw.",dialInTollFree:"Gratis",genericError:"Er is iets misgegaan.",inviteLiveStream:"Klik op de volgende link als u de livestream van deze vergadering wilt bekijken: {{url}}",invitePhone:"Met \xe9\xe9n druk op de knop inbellen: {{number}},,{{conferenceID}}#\n",invitePhoneAlternatives:"",inviteURLFirstPartGeneral:"U bent uitgenodigd om aan een vergadering deel te nemen.",inviteURLFirstPartPersonal:"{{name}} nodigt u uit voor een vergadering.\n",inviteURLSecondPart:"\nDeelnemen aan vergadering:\n{{url}}\n",liveStreamURL:"Livestream:",moreNumbers:"Meer nummers",noNumbers:"Geen inbelnummers.",noPassword:"Geen",noRoom:"Er is geen ruimte opgegeven om naar in te bellen.",numbers:"Inbelnummers",password:"Wachtwoord:",title:"Delen",tooltip:"De link en inbelgegevens voor deze vergadering delen",label:"Vergaderingsgegevens"},inviteDialog:{alertText:"Niet alle deelnemers zijn uitgenodigd.",header:"Uitnodigen",searchCallOnlyPlaceholder:"Telefoonnummer invoeren",searchPeopleOnlyPlaceholder:"Deelnemers zoeken",searchPlaceholder:"Deelnemer of telefoonnummer",send:"Verzenden"},inlineDialogFailure:{msg:"Er is een fout opgetreden.",retry:"Opnieuw proberen",support:"Ondersteuning",supportMsg:"Als dit probleem opnieuw optreedt, neemt u contact op met"},keyboardShortcuts:{focusLocal:"Focus op uw video",focusRemote:"Focus op de video van een andere persoon",fullScreen:"Volledig scherm weergeven of afsluiten",keyboardShortcuts:"Sneltoetsen",localRecording:"Besturingselementen voor lokale opnamen weergeven of verbergen",mute:"Uw microfoon dempen of het dempen opheffen",pushToTalk:"Druk om te spreken",raiseHand:"Uw hand opsteken of laten zakken",showSpeakerStats:"Sprekerstatistieken weergeven",toggleChat:"Chatgesprek openen of sluiten",toggleFilmstrip:"Videominiaturen weergeven of verbergen",toggleScreensharing:"Schakelen tussen camera en het delen van het scherm",toggleShortcuts:"Sneltoetsen weergeven of verbergen",videoMute:"Uw camera starten of stoppen"},liveStreaming:{busy:"Er worden streamingresources vrijgemaakt. Probeer het over enkele minuten opnieuw.",busyTitle:"Alle streamers zijn momenteel bezet",changeSignIn:"Wissel van account.",choose:"Een livestream kiezen",chooseCTA:"Kies een streamingoptie. U bent momenteel aangemeld als {{email}}.",enterStreamKey:"Voer hier de sleutel van YouTube voor de livestream in.",error:"Livestream is mislukt. Probeer het opnieuw.",errorAPI:"Er is een fout opgetreden tijdens het openen van uw YouTube-uitzendingen. Meld u opnieuw aan.",errorLiveStreamNotEnabled:"Livestreaming is niet ingeschakeld voor {{email}}. Schakel livestreaming in of meld u aan bij een account waarvoor livestreaming is ingeschakeld.",expandedOff:"De livestream is gestopt",expandedOn:"De vergadering wordt momenteel gestreamd naar YouTube.",expandedPending:"De livestream wordt gestart...",failedToStart:"Livestream niet gestart",getStreamKeyManually:"Er zijn geen livestreams opgehaald. Haal de sleutel voor uw livestream op uit YouTube.",invalidStreamKey:"De sleutel voor de livestream is mogelijk onjuist.",off:"Livestream gestopt",on:"Livestream",pending:"Livestream starten...",serviceName:"Livestreamservice",signedInAs:"U bent momenteel aangemeld als:",signIn:"Aanmelden via Google",signInCTA:"Meld u aan of voer de sleutel van YouTube voor uw livestream in.",signOut:"Afmelden",start:"Een livestream starten",streamIdHelp:"Wat is dit?",unavailableTitle:"Livestream niet beschikbaar"},localRecording:{clientState:{off:"Uit",on:"Aan",unknown:"Onbekend"},dialogTitle:"Besturingselementen voor lokale opnamen",duration:"Duur",durationNA:"N.v.t.",encoding:"Codering",label:"LOR",labelToolTip:"Lokale opname is ingeschakeld",localRecording:"Lokale opname",me:"Ik",messages:{engaged:"Lokale opname ingeschakeld.",finished:"Opnamesessie {{token}} is voltooid. Stuur het opnamebestand naar de moderator.",finishedModerator:"Opnamesessie {{token}} is voltooid. De opname van de lokale track is opgeslagen. Vraag de andere deelnemers om hun opnamen te verzenden.",notModerator:"U bent niet de moderator. U kunt geen lokale opnamen starten of stoppen."},moderator:"Moderator",no:"Nee",participant:"Deelnemer",participantStats:"Deelnemerstatistieken",sessionToken:"Sessietoken",start:"Opname starten",stop:"Opname stoppen",yes:"Ja"},lockRoomPassword:"",lockRoomPasswordUppercase:"",me:"ik",notify:{connectedOneMember:"{{name}} neemt nu deel aan de vergadering",connectedThreePlusMembers:"{{name}} en {{count}} anderen nemen nu deel aan de vergadering",connectedTwoMembers:"{{first}} en {{second}} nemen nu deel aan de vergadering",disconnected:"verbinding verbroken",focus:"Focus van vergadering",focusFail:"{{component}} is niet beschikbaar. Probeer het over {{ms}} sec. opnieuw.",grantedTo:"Moderatorrechten verleend aan {{to}}.",invitedOneMember:"",invitedThreePlusMembers:"",invitedTwoMembers:"",kickParticipant:"",me:"Ik",moderator:"Moderatorrechten verleend.",muted:"U hebt het gesprek gedempt gestart.",mutedTitle:"U bent gedempt.",mutedRemotelyTitle:"",mutedRemotelyDescription:"",passwordRemovedRemotely:"",passwordSetRemotely:"",raisedHand:"{{name}} wil spreken.",somebody:"Iemand",startSilentTitle:"",startSilentDescription:"",suboptimalExperienceDescription:"Helaas zal uw {{appName}}-ervaring hier niet optimaal zijn. Mogelijk wordt dit in de toekomst verbeterd, maar tot die tijd vragen we u een van de volledig ondersteunde browsers te gebruiken.",suboptimalExperienceTitle:"Browserwaarschuwing",unmute:"",newDeviceCameraTitle:"Nieuwe camera gedetecteerd",newDeviceAudioTitle:"Nieuw audioapparaat gedetecteerd",newDeviceAction:"Gebruik"},passwordSetRemotely:"ingesteld door een ander lid",passwordDigitsOnly:"Maximaal {{number}} cijfers",poweredby:"powered by",presenceStatus:{busy:"Bezet",calling:"Bellen...",connected:"Verbonden",connecting:"Verbinding maken...",connecting2:"Verbinding maken*...",disconnected:"Verbinding verbroken",expired:"Verlopen",ignored:"Genegeerd",initializingCall:"Gesprek starten...",invited:"Uitgenodigd",rejected:"Geweigerd",ringing:"Gaat over..."},profile:{setDisplayNameLabel:"Uw weergavenaam instellen",setEmailInput:"E-mailadres invoeren",setEmailLabel:"Uw gravatar voor e-mail instellen",title:"Profiel"},recording:{authDropboxText:"Uploaden naar Dropbox",availableSpace:"Beschikbare ruimte: {{spaceLeft}} MB (circa {{duration}} minuten aan opname)",beta:"B\xc8TA",busy:"Er worden opnameresources vrijgemaakt. Probeer het over enkele minuten opnieuw.",busyTitle:"Alle opnamefuncties zijn momenteel bezet",error:"Opname is mislukt. Probeer het opnieuw.",expandedOff:"Opname is gestopt",expandedOn:"De vergadering wordt momenteel opgenomen.",expandedPending:"Opname wordt gestart...",failedToStart:"Opname starten is mislukt",fileSharingdescription:"Opname delen met deelnemers aan vergadering",live:"LIVE",loggedIn:"Aangemeld als {{userName}}",off:"Opname gestopt",on:"Opnemen",pending:"Voorbereiden op opname van vergadering...",rec:"OPN.",serviceDescription:"Uw opname wordt opgeslagen door de opnameservice",serviceName:"Opnameservice",signIn:"Aanmelden",signOut:"Afmelden",unavailable:"{{serviceName}} is momenteel niet beschikbaar. Er wordt aan een oplossing gewerkt. Probeer het later opnieuw.",unavailableTitle:"Opname niet beschikbaar"},sectionList:{pullToRefresh:"Naar beneden slepen om te vernieuwen"},settings:{calendar:{about:"De agenda-integratie van {{appName}} wordt gebruikt voor een veilige toegang tot uw agenda, zodat geplande gebeurtenissen kunnen worden geraadpleegd.",disconnect:"Verbinding verbreken",microsoftSignIn:"Aanmelden via Microsoft",signedIn:"Agendagebeurtenissen voor {{email}} worden geraadpleegd. Klik op de knop 'Verbinding verbreken' hieronder om de toegang tot agendagebeurtenissen in te trekken.",title:"Agenda"},devices:"Apparaten",followMe:"Iedereen volgt mij",language:"Taal",loggedIn:"Aangemeld als {{name}}",moderator:"Moderator",more:"Meer",name:"Naam",noDevice:"Geen",selectAudioOutput:"Audio-uitvoer",selectCamera:"Camera",selectMic:"Microfoon",startAudioMuted:"Iedereen start gedempt",startVideoMuted:"Iedereen start verborgen",title:"Instellingen"},settingsView:{alertOk:"OK",alertTitle:"Waarschuwing",alertURLText:"De ingevoerde server-URL is ongeldig",buildInfoSection:"Buildgegevens",conferenceSection:"Conferentie",displayName:"Weergavenaam",email:"E\u2011mail",header:"Instellingen",profileSection:"Profiel",serverURL:"Server-URL",startWithAudioMuted:"Starten met audio gedempt",startWithVideoMuted:"Starten met video gedempt",version:"Versie"},share:{dialInfoText:"",mainText:"Klik op de volgende link om deel te nemen aan de vergadering:\n{{roomUrl}}"},speaker:"Spreker",speakerStats:{hours:"{{count}} u",minutes:"{{count}} m",name:"Naam",seconds:"{{count}} s",speakerStats:"Sprekerstatistieken",speakerTime:"Sprekertijd"},startupoverlay:{policyText:" ",title:"{{app}} heeft toegang tot uw microfoon en camera nodig."},suspendedoverlay:{rejoinKeyTitle:"Opnieuw deelnemen",text:"Druk op de knop Opnieuw deelnemen om opnieuw verbinding te maken.",title:"Uw videogesprek is onderbroken, omdat de slaapstand van de computer is geactiveerd."},toolbar:{accessibilityLabel:{audioOnly:"Alleen audio schakelen",audioRoute:"Het afspeelapparaat selecteren",callQuality:"Kwaliteit van gesprek beheren",cc:"Ondertiteling schakelen",chat:"Chatvenster schakelen",document:"Gedeeld document schakelen",feedback:"Feedback achterlaten",fullScreen:"Volledig scherm schakelen",hangup:"Het gesprek verlaten",invite:"Personen uitnodigen",kick:"Deelnemer verwijderen",localRecording:"Besturingselementen voor lokale opname schakelen",lockRoom:"Wachtwoord voor vergadering schakelen",moreActions:"Menu 'Meer acties' schakelen",moreActionsMenu:"Menu 'Meer acties'",mute:"Audio dempen schakelen",pip:"Beeld-in-beeld-modus schakelen",profile:"Uw profiel bewerken",raiseHand:"Hand opsteken schakelen",recording:"Opname schakelen",remoteMute:"Deelnemer dempen",Settings:"Instellingen schakelen",sharedvideo:"YouTube-video delen schakelen",shareRoom:"Iemand uitnodigen",shareYourScreen:"Scherm delen schakelen",shortcuts:"Sneltoetsen schakelen",show:"",speakerStats:"Sprekerstatistieken schakelen",tileView:"Tegelweergave schakelen",toggleCamera:"Camera schakelen",videomute:"Video dempen schakelen",videoblur:""},addPeople:"Personen aan uw gesprek toevoegen",audioOnlyOff:"Modus 'Alleen audio' uitschakelen",audioOnlyOn:"Modus 'Alleen audio' inschakelen",audioRoute:"Het afspeelapparaat selecteren",authenticate:"Verifi\xebren",callQuality:"Kwaliteit van gesprek beheren",chat:"Chat openen/sluiten",closeChat:"Chat sluiten",documentClose:"Gedeeld document sluiten",documentOpen:"Gedeeld document openen",enterFullScreen:"Volledig scherm weergeven",enterTileView:"Tegelweergave openen",exitFullScreen:"Volledig scherm sluiten",exitTileView:"Tegelweergave sluiten",feedback:"Feedback achterlaten",hangup:"Verlaten",invite:"Personen uitnodigen",login:"Aanmelden",logout:"Afmelden",lowerYourHand:"Uw hand laten zakken",moreActions:"Meer acties",mute:"Dempen/dempen opheffen",openChat:"Chat openen",pip:"Beeld-in-beeld-modus activeren",profile:"Uw profiel bewerken",raiseHand:"Uw hand opsteken/laten zakken",raiseYourHand:"Uw hand opsteken",Settings:"Instellingen",sharedvideo:"Een YouTube-video delen",shareRoom:"Iemand uitnodigen",shortcuts:"Sneltoetsen weergeven",speakerStats:"Sprekerstatistieken",startScreenSharing:"Scherm delen starten",startSubtitles:"Ondertiteling starten",stopScreenSharing:"Scherm delen stoppen",stopSubtitles:"Ondertiteling stoppen",stopSharedVideo:"YouTube-video stoppen",talkWhileMutedPopup:"Wilt u spreken? U bent gedempt.",tileViewToggle:"Tegelweergave schakelen",toggleCamera:"Camera schakelen",videomute:"Camera starten/stoppen",startvideoblur:"",stopvideoblur:""},transcribing:{ccButtonTooltip:"Ondertiteling starten/stoppen",error:"Transcriberen is mislukt. Probeer het opnieuw.",expandedLabel:"Transcriberen is momenteel ingeschakeld",failedToStart:"Transcriberen starten is mislukt",labelToolTip:"De vergadering wordt getranscribeerd",off:"Transcriberen gestopt",pending:"Voorbereiden op transcriberen van vergadering...",start:"Weergave van ondertiteling starten",stop:"Weergave van ondertiteling stoppen",tr:"TR"},userMedia:{androidGrantPermissions:"Selecteer Toestaan wanneer u in de browser om machtigingen wordt gevraagd.",chromeGrantPermissions:"Selecteer Toestaan wanneer u in de browser om machtigingen wordt gevraagd.",edgeGrantPermissions:"Selecteer Ja wanneer u in de browser om machtigingen wordt gevraagd.",electronGrantPermissions:"Verleen machtigingen voor het gebruik van uw camera en microfoon",firefoxGrantPermissions:"Selecteer Geselecteerd apparaat delen wanneer u in de browser om machtigingen wordt gevraagd.",iexplorerGrantPermissions:"Selecteer OK wanneer u in de browser om machtigingen wordt gevraagd.",nwjsGrantPermissions:"Verleen machtigingen voor het gebruik van uw camera en microfoon",operaGrantPermissions:"Selecteer Toestaan wanneer u in de browser om machtigingen wordt gevraagd.","react-nativeGrantPermissions":"Selecteer Toestaan wanneer u in de browser om machtigingen wordt gevraagd.",safariGrantPermissions:"Selecteer OK wanneer u in de browser om machtigingen wordt gevraagd."},videoSIPGW:{busy:"Er worden resources vrijgemaakt. Probeer het over enkele minuten opnieuw.",busyTitle:"De ruimteservice is momenteel bezet",errorAlreadyInvited:"{{displayName}} is al uitgenodigd",errorInvite:"Vergadering is nog niet van start gegaan. Probeer het later opnieuw.",errorInviteFailed:"Er wordt aan een oplossing gewerkt. Probeer het later opnieuw.",errorInviteFailedTitle:"Het uitnodigen van {{displayName}} is mislukt",errorInviteTitle:"Fout bij uitnodiging voor ruimte",pending:"{{displayName}} is uitgenodigd"},videoStatus:{audioOnly:"AUD",audioOnlyExpanded:"De modus 'Alleen audio' is geactiveerd. In deze modus wordt er bandbreedte bespaard, maar ziet u geen video's van anderen.",callQuality:"Kwaliteit van gesprek",hd:"HD",highDefinition:"Hoge resolutie",labelTooiltipNoVideo:"Geen video",labelTooltipAudioOnly:"Modus 'Alleen audio' ingeschakeld",ld:"LD",lowDefinition:"Lage resolutie",onlyAudioAvailable:"Alleen audio is beschikbaar",onlyAudioSupported:"In deze browser wordt alleen audio ondersteund.",p2pEnabled:"Peer-to-peer ingeschakeld",p2pVideoQualityDescription:"In de peer-to-peer-modus kan de kwaliteit van het gesprek alleen worden geschakeld tussen hoge resolutie en alleen audio. Andere instellingen zijn pas beschikbaar nadat peer-to-peer is gesloten.",recHighDefinitionOnly:"Voorkeur voor hoge resolutie",sd:"SD",standardDefinition:"Standaardresolutie"},videothumbnail:{domute:"Dempen",flip:"Omslaan",kick:"Verwijderen",moderator:"Moderator",mute:"Lid is gedempt",muted:"Gedempt",remoteControl:"Extern beheer",show:"",videomute:"Lid heeft de camera gestopt"},welcomepage:{accessibilityLabel:{join:"Tik om deel te nemen",roomname:"Naam van ruimte invoeren"},appDescription:"U kunt nu videochatten met het hele team. U kunt uitnodigen wie u maar wilt. {{app}} is een volledig versleutelde, 100% open-sourceoplossing voor videovergaderingen die u wanneer en zo lang u maar wilt gratis kunt gebruiken. Hier hebt u geen account voor nodig.",audioVideoSwitch:{audio:"Spraak",video:"Video"},calendar:"Agenda",connectCalendarButton:"Uw agenda koppelen",connectCalendarText:"",enterRoomTitle:"Een nieuwe vergadering starten",go:"Start",join:"Deelnemen",info:"Informatie",privacy:"Privacy",recentList:"Recent",recentListDelete:"Verwijderen",recentListEmpty:"Uw lijst met recente items is momenteel leeg. Als u chat met uw team, worden alle recente vergaderingen hier weergegeven.",reducedUIText:"",roomname:"Naam van ruimte invoeren",roomnameHint:"Voer de naam of URL in van de ruimte die u wilt betreden. U kunt een naam verzinnen, maar geef de naam wel door aan de andere deelnemers, zodat zij dezelfde naam kunnen invoeren.",sendFeedback:"Feedback verzenden",terms:"Voorwaarden",title:"Veilige, volledig uitgeruste en geheel gratis videovergaderingen"}}},675,[]); -__d(function(a,n,s,i,e,r,l){e.exports={en:"Angl\xe9s",af:"Afrikaans",bg:"Bulgar",ca:"Catalan",cs:"Ch\xe8c",de:"Aleman",el:"Gr\xe8c",enGB:"Angl\xe9s (Reialme Unit)",eo:"Esperanto",es:"Castelhan",esUS:"Espanh\xf2l (America latina)",fi:"Fin\xe9s",fr:"Franc\xe9s",frCA:"Franc\xe9s (Canadian)",hr:"Croat",hy:"Armenian",it:"Italian",ja:"Japon\xe9s",ko:"Corean",nl:"Neerland\xe9s",oc:"Occitan",pl:"Polon\xe9s",ptBR:"Portugu\xe9s (Brasil)",ru:"Rus",sv:"Sued\xe9s",tr:"Turc",vi:"Vietnamian",zhCN:"Chin\xe9s (China)",zhTW:"Chin\xe9s (Taiwan)"}},676,[]); -__d(function(a,e,r,n,t,i,o){t.exports={addPeople:{add:"Convidar",countryNotSupported:"S\xe8m pas encara compatibles amb aquesta destinacion.",countryReminder:"Sonatz def\xf2ra los US\u202f? Merc\xe9s de vos assegurar de comen\xe7ar amb lo c\xf2di pa\xeds.",disabled:"Pod\xe8tz pas convidar de monde.",failedToAdd:"Frac\xe0s de l'ajust de participants",footerText:"Sonadas ext. desactivadas.",loading:"Rec\xe8rca de monde e de num\xe8ro de telef\xf2n",loadingNumber:"Validacion del num\xe8ro de telef\xf2n",loadingPeople:"Rec\xe8rca de monde de convidar",noResults:"Pas cap de resultat trobat",noValidNumbers:"Picatz lo num\xe8ro de telef\xf2n",searchNumbers:"Apondre de num\xe8ros de telef\xf2n",searchPeople:"Cercar de monde",searchPeopleAndNumbers:"Cercar de monde o apondre lor num\xe8ros de telef\xf2n",telephone:"Telef\xf2n\u202f: {{number}}",title:"Convidatz de monde a v\xf2stra confer\xe9ncia"},audioDevices:{bluetooth:"Bluetooth",headphones:"Escotadors",phone:"Telef\xf2n",speaker:"Nautparlaire",none:"Cap de periferic \xe0udio pas disponible"},audioOnly:{audioOnly:"Benda passanta febla"},calendarSync:{addMeetingURL:"Ajustar un ligam de re\xfcnion",confirmAddLink:"Vol\xe8tz ajustar un ligam Jitsi cap a aqueste eveniment ?",error:{appConfiguration:"L\u2019integracion del calendi\xe8r es pas corr\xe8ctament configurada.",generic:"Una error s\u2019es producha. Verificatz v\xf2stres param\xe8tres de calendi\xe8r o ensajatz de l\u2019actualizar.",notSignedIn:"Una error s\u2019es producha pendent l\u2019autentificacion per veire los eveniments del calendi\xe8r. Verificatz los param\xe8tres del calendi\xe8r e connectatz-vos tornamai."},join:"J\xf3nher",joinTooltip:"Rej\xf3nher la confer\xe9ncia",nextMeeting:"confer\xe9ncia venenta",noEvents:"Cap d\u2019eveniments venents pas prevists.",ongoingMeeting:"confer\xe9ncia en cors",permissionButton:"Dobrir los param\xe8tres",permissionMessage:"La permission pel calendari es necess\xe0ria per listar v\xf2stres RDV dins l\u2019aplicacion.",refresh:"Actualizar lo calendari",today:"U\xe8i"},chat:{error:"Error : v\xf2stre messatge \xab {{originalText}} \xbb es pas estat enviat. Rason : {{error}}",messagebox:"Picatz un messatge",nickname:{popover:"Causiss\xe8tz un escais",title:"Picatz un escais-nom per utilizar la messatjari\xe1"},title:"Messatjari\xe1"},connectingOverlay:{joiningRoom:"Connexion a v\xf2stra re\xfcnion\u2026"},connection:{ATTACHED:"Estacada",AUTHENTICATING:"Autentificacion en cors",AUTHFAIL:"Frac\xe0s de l'autentificacion",CONNECTED:"Connectat",CONNECTING:"Connexion en cors",CONNFAIL:"Frac\xe0s de la connexion",DISCONNECTED:"Desconnectat",DISCONNECTING:"Desconnexion en cors",ERROR:"Error",RECONNECTING:"Un probl\xe8ma ret s'es produita. Reconnexion en cors..."},connectionindicator:{address:"Adre\xe7a\xa0:",bandwidth:"Benda passanta estimada :",bitrate:"Debit\xa0:",bridgeCount:"Nombre de servidor\xa0:",connectedTo:"Connectat a\xa0:",framerate:"Frequ\xe9ncia imatge :",less:"Amagar lo detalh",localaddress:"Adre\xe7a locala :",localaddress_plural:"Adre\xe7as localas :",localport:"P\xf2rt local :",localport_plural:"P\xf2rts locals :",more:"Ne veire mai",packetloss:"P\xe8rda de paquets :",quality:{good:"Bona",inactive:"Inactiu",lost:"Perdut",nonoptimal:"Pas optimal",poor:"Marrit"},remoteaddress:"Adre\xe7a distanta :",remoteaddress_plural:"Adre\xe7as distantas :",remoteport:"P\xf2rt distant\xa0:",remoteport_plural:"P\xf2rts distants :",resolution:"Resolucion\xa0:",status:"Connexion :",transport:"Transp\xf2rt :"},dateUtils:{earlier:"Mai d\u2019ora",today:"U\xe8i",yesterday:"I\xe8r"},deepLinking:{appNotInstalled:"Vos cal l\u2019aplicacion {{app}} per j\xf3nher la confer\xe9ncia amb v\xf2stre mobil.",description:"Res s\u2019es pas passat\u202f? Av\xe8m ensajat de lan\xe7ar la confer\xe9ncia dins l\u2019aplicacion {{app}}. Merc\xe9s de tornar ensajar o de la lan\xe7ar dins l\u2019aplicacion web {{app}}.",descriptionWithoutWeb:"Res se passa pas ? Av\xe8m ensajat de lan\xe7ar la confer\xe9ncia dins l\u2019aplicacion de bur\xe8u {{app}}.",downloadApp:"Telecargar l\u2019aplicacion",launchWebButton:"Lan\xe7ar del navigador",openApp:"Telecargar l\u2019aplicacion",title:"Aviada de v\xf2stra confer\xe9ncia dins {{app}}...",tryAgainButton:"Tornar ensajar del bur\xe8u"},defaultLink:"ex. {{url}}",defaultNickname:"ex. Joan Delpu\xe8ch",deviceError:{cameraError:"Frac\xe0s de l\u2019acc\xe8s a v\xf2stra cam\xe8ra",cameraPermission:"Error d'obtencion de la permission per la cam\xe8ra",microphoneError:"Frac\xe0s de l\u2019acc\xe8s a v\xf2stre microf\xf2n",microphonePermission:"Error d'obtencion de la permission pel microf\xf2n"},deviceSelection:{noPermission:"Autorizacion pas acordada",previewUnavailable:"Apercebut pas disponible",selectADevice:"Seleccionatz un aparelh",testAudio:"Legir un son de pr\xf2va"},dialog:{accessibilityLabel:{liveStreaming:"Difusion en dir\xe8cte"},allow:"Autorizar",alreadySharedVideoMsg:"Un autre participant parteja ja sa vid\xe8o. Aquesta confer\xe9ncia permet pas qu\u2019un partatge de vid\xe8o a l\u2019enc\xf2p.",alreadySharedVideoTitle:"Solament un partatge de vid\xe8o a l'enc\xf2p es autorizat",applicationWindow:"Fen\xe8stra de l'aplicacion",Back:"Retorn",cameraConstraintFailedError:"V\xf2stra cam\xe8ra satisf\xe0 pas totas las constrentas necess\xe0rias.",cameraNotFoundError:"La cam\xe8ra es pas estada trobada.",cameraNotSendingData:"Pod\xe8m pas accedir a v\xf2stra cam\xe8ra. Merc\xe9s de verificar se una autra aplicacion es a utilizar aqueste periferic, seleccionatz un autre periferic dins lo men\xfa de param\xe8tres o ensajatz de recargar l'aplicacion.",cameraNotSendingDataTitle:"Impossible d'accedir a v\xf2stra cam\xe8ra",cameraPermissionDeniedError:"La cam\xe8ra es pas estada trobada. Pasmens pod\xe8tz participar a la confer\xe9ncia mas los demai vos veir\xe0n pas. Utilizatz lo boton de la barra d\u2019adre\xe7a per res\xf2lver aqueste probl\xe8ma.",cameraUnknownError:"Impossible d\u2019emplegar la cam\xe8ra per una rason desconeguda.",cameraUnsupportedResolutionError:"V\xf2stra cam\xe8ra pren pas en carga la resolucion vid\xe8o que cal.",Cancel:"Anullar",close:"Tampar",conferenceDisconnectMsg:"Vos cal benl\xe8u verificar v\xf2stra connexion al malhum. N\xf2va connexion dins {{seconds}} segondas...",conferenceDisconnectTitle:"S\xe8tz estat desconnectat.",conferenceReloadMsg:"S\xe8m a reglar aqu\xf2 ! N\xf2va connexion dins {{seconds}} segondas...",conferenceReloadTitle:"Malurosament, quic\xf2m truqu\xe8t.",confirm:"Confirmar",confirmNo:"Non",confirmYes:"\xd2c",connectError:"Ops! Quic\xf2m a trucat e la connexion a la confer\xe9ncia es impossibla.",connectErrorWithMsg:"Ops! Quic\xf2m a trucat e la connexion a la confer\xe9ncia es impossibla: {{msg}}",connecting:"Connexion en cors",contactSupport:"Contactar l'assist\xe9ncia",copy:"Copiar",dismiss:"Regetar",displayNameRequired:"Adiu\u202f! Coss\xed vos dison\u202f?",done:"Tampar",enterDisplayName:"Volgatz picar v\xf2stre nom aqu\xed",error:"Error",externalInstallationMsg:"Av\xe8tz d'installar n\xf2stra extension de partiment d'ecran.",externalInstallationTitle:"Extension requesida :",goToStore:"Anar al webstore",gracefulShutdown:"Lo servici es actualament en mantenen\xe7a. Ensajatz tornamai pus tard.",IamHost:"Soi l\u2019\xf2ste",incorrectRoomLockPassword:"Senhal incorr\xe8cte",incorrectPassword:"Nom de compte o senhal incorr\xe8cte",inlineInstallationMsg:"Av\xe8tz d'installar n\xf2stra extension de partiment d'ecran.",inlineInstallExtension:"Installar ara",internalError:"\xd2u ! Quic\xf2m a pas foncionat. L'error seguenta s'es producha : {{error}}",internalErrorTitle:"Error int\xe8rna",kickMessage:"Pod\xe8tz contactat {{participantDisplayName}} per mai de detalhs.",kickParticipantButton:"Forabandir",kickParticipantDialog:"Vol\xe8tz vertadi\xe8rament forabandir aqueste participant\u202f?",kickParticipantTitle:"Forabandir aqueste participant\u202f?",kickTitle:"Ai\u202f! {{participantDisplayName}} vos a forabandit de la confer\xe9ncia",liveStreaming:"La difusion en dir\xe8cte es estada arrestada",liveStreamingDisabledForGuestTooltip:"Los convidats p\xf2don pas aviar una difusion en dir\xe8cte",liveStreamingDisabledTooltip:"Difusion en dir\xe8cte desactivada.",lockMessage:"Impossible de verrolhar la confer\xe9ncia.",lockRoom:"Ajustar un $t(lockRoomPasswordUppercase) a la confer\xe9ncia",lockTitle:"Frac\xe0s del verrolhatge",logoutQuestion:"S\xe8tz segur que vos vol\xe8tz desconnectar e arrestar la confer\xe9ncia ?",logoutTitle:"Desconnexion",maxUsersLimitReached:"La limita de nombre maximum de participant es estada atenguda. La confer\xe9ncia es compl\xe8ta. Contactatz lo proprietari de la confer\xe9ncia o tornatz ensajar mai tard.",maxUsersLimitReachedTitle:"Limita de participants maximum atenguda ",micConstraintFailedError:"V\xf2stre microf\xf2n satisf\xe0 pas totas las constrentas necess\xe0rias.",micNotFoundError:"Lo microf\xf2n es pas estat trobat.",micNotSendingData:"Anatz als param\xe8tres de l\u2019ordenador per tornar metre lo son del microf\xf2n e ajustar son niv\xe8l.",micNotSendingDataTitle:"Lo microf\xf2n es copat pels param\xe8tres del sist\xe8ma",micPermissionDeniedError:"Av\xe8tz pas donat l'autorizacion d'utilizar v\xf2stre microf\xf2n. Pod\xe8tz encara participar a la confer\xe9ncia mai los demai vos ausir\xe0n pas. Utilizatz lo boton del microf\xf2n dins la barra d'adre\xe7a per res\xf2lvre aqu\xf2.",micUnknownError:"Impossible d'utilizar lo microf\xf2n per una rason desconeguda.",muteParticipantBody:"Poiretz pas lo tornar activar lo microf\xf2n, mai eles p\xf2don o far quand v\xf2lon.",muteParticipantButton:"Copar lo son",muteParticipantDialog:"",muteParticipantTitle:"Copar lo micro als participants ?",Ok:"D'ac\xf2rdi",passwordLabel:"SENHAL",passwordNotSupported:"Ajustar un $t(lockRoomPassword) a una confer\xe9ncia es pas suportat.",passwordNotSupportedTitle:"$t(lockRoomPasswordUppercase) pas suportat",passwordRequired:"$t(lockRoomPasswordUppercase) requesit",popupError:"V\xf2stre navigator bloca las fen\xe8stras que sorgisson a partir d'aqueste site. Merc\xe9s d'activar aquelas fen\xe8stras dins los param\xe8tres de v\xf2stre navigator e de tornar ensajar.",popupErrorTitle:"Fen\xe8stra que sorg\xeds blocada",recording:"Enregistrament",recordingDisabledForGuestTooltip:"Los convits p\xf2don pas lan\xe7ar d\u2019enregistraments.",recordingDisabledTooltip:"L\u2019enregistrament es desactivat.",rejoinNow:"Participar ara",remoteControlAllowedMessage:"{{user}} a acceptat v\xf2stra demanda de contrar\xf2tle alonhat !",remoteControlDeniedMessage:"{{user}} a refusat v\xf2stra demanda de contrar\xf2tle alonhat !",remoteControlErrorMessage:"Error al moment de demandar lo contrar\xf2tle alonhat a {{user}} !",remoteControlRequestMessage:"Vol\xe8tz autorizar {{user}} a contrarotlar v\xf2stre ordinador ?",remoteControlShareScreenWarning:"Remarcatz que se botatz \xab\u202fAutorizar\u202f\xbb partejaretz v\xf2stre ecran !",remoteControlStopMessage:"La session de contrar\xf2tle alonhat es acabada !",remoteControlTitle:"Contrar\xf2tle a dist\xe0ncia",Remove:"Suprimir",removePassword:"Suprimir lo",removeSharedVideoMsg:"S\xe8tz segur que vol\xe8tz suprimir v\xf2stra vid\xe8o partejada ?",removeSharedVideoTitle:"Suprimir la vid\xe8o partejada",reservationError:"Error del sist\xe8ma de reservacion",reservationErrorMsg:"C\xf2di d'error: {{code}}, messatge: {{msg}}",retry:"Ensajar tornamai",screenSharingFailedToInstall:"\xd2u ! Frac\xe0s de l'installacion de partatge d'ecran.",screenSharingFailedToInstallTitle:"Frac\xe0s de l'installacion de partatge d'ecran",screenSharingFirefoxPermissionDeniedError:"Quic\xf2m a fach m\xe8uca quand \xe8rem a ensajar de partejar v\xf2stre ecran. Merc\xe9s de verificar qu\u2019av\xe8tz donat l\u2019autorizacion de lo partejar.",screenSharingFirefoxPermissionDeniedTitle:"Ops\u202f! Av\xe8m pas pogut aviar lo partatge d\u2019ecran.",screenSharingPermissionDeniedError:"\xd2ups ! Quic\xf2m s'es pas ben passat amb l'autorizacion de v\xf2stra extension de partatge d'ecran. Merc\xe9s de recargar e tornar ensajar.",serviceUnavailable:"Servici indisponible",sessTerminated:"Sonada acabada",Share:"Partejar",shareVideoLinkError:"Se vos plai, provesiss\xe8tz un ligam Youtube foncional.",shareVideoTitle:"Partejar una vid\xe8o",shareYourScreen:"Partejar v\xf2stre ecran",shareYourScreenDisabled:"Lo partiment d\u2019ecran es desactivat.",shareYourScreenDisabledForGuest:"Los convits p\xf2don pas partejar l\u2019ecran",startLiveStreaming:"Aviar una difusion en dir\xe8cte",startRecording:"Arrestar l'enregistrament",startRemoteControlErrorMessage:"Una error s'es produsida en ensajar de comen\xe7ar la session de contrar\xf2tle a dist\xe0ncia !",stopLiveStreaming:"Arrestar lo dir\xe8cte",stopRecording:"Arrestar l'enregistrament",stopRecordingWarning:"S\xe8tz segur que vol\xe8tz arrestar l'enregistrament?",stopStreamingWarning:"S\xe8tz segur que vol\xe8tz arrestar lo dir\xe8cte?",streamKey:"Clau del dir\xe8cte",Submit:"Validar",thankYou:"Merc\xe9 d'aver utilizat {{appName}} !",token:"geton",tokenAuthFailed:"O planh\xe8m, s\xe8tz pas autorizat a rej\xf3nher l'ap\xe8l.",tokenAuthFailedTitle:"Frac\xe0s de l'autentificacion",transcribing:"Transcripcion",unlockRoom:"Suprimir lo $t(lockRoomPassword) de la confer\xe9ncia",userPassword:"senhal utilizaire",WaitForHostMsg:"La confer\xe9ncia {{room}} a pas encara comen\xe7at. Se s\xe8tz l\u2019\xf2st volgatz ben vos identificar. Autrament esperatz qu\u2019arribe l\u2019\xf2ste.",WaitForHostMsgWOk:"La confer\xe9ncia {{room}} a pas encara comen\xe7at. Se s\xe8tz l\u2019\xf2st volgatz ben clicar Ok per vos identificar. Autrament esperatz qu\u2019arribe l\u2019\xf2ste.",WaitingForHost:"\xd2m p\xf2t pas que partejar una vid\xe8o a l'enc\xf2p",Yes:"\xd2c",yourEntireScreen:"V\xf2stre ecran complet"},dialOut:{statusMessage:"ara es {{status}}"},feedback:{average:"Mejana",bad:"Marrida",detailsLabel:"Digatz-nos-ne mai a prepaus d\u2019aqu\xf2.",good:"Bona",rateExperience:"Merc\xe9s de donar una n\xf2ta a v\xf2stra experi\xe9ncia.",veryBad:"F\xf2r\xe7a marrida",veryGood:"F\xf2r\xe7a bona"},incomingCall:{answer:"U\xe8i",audioCallTitle:"Sonada entranta",decline:"Regetar",productLabel:"de Jitsi Meet estant",videoCallTitle:"Sonada vid\xe8o entranta"},info:{accessibilityLabel:"Mostrar las info",addPassword:"Ajustar un $t(lockRoomPassword)",cancelPassword:"Anullar lo $t(lockRoomPassword)",conferenceURL:"Ligam\u202f:",country:"Pa\xeds",dialANumber:"Per participar a la confer\xe9ncia, sonatz un d\u2019aquestes num\xe8ros pu\xe8i picatz lo senhal.",dialInConferenceID:"PIN\u202f:",dialInNotSupported:"Las sonadas son pas encara foncionalas.",dialInNumber:"Compausar\u202f:",dialInSummaryError:"",dialInTollFree:"Sonada gratu\xefta",genericError:"Ops, quic\xf2m a fach m\xe8uca.",inviteLiveStream:"Per veire lo flux en dir\xe8cte de la confer\xe9ncia, clicatz aqueste ligam\u202f: {{url}}",invitePhone:"",invitePhoneAlternatives:"",inviteURLFirstPartGeneral:"S\xe8tz convidat a participar a la confer\xe9ncia.",inviteURLFirstPartPersonal:"{{name}} vos convida a la confer\xe9ncia.\n",inviteURLSecondPart:"\nParticipar a la confer\xe9ncia :\n{{url}}\n",liveStreamURL:"Flux dir\xe8cte\u202f:",moreNumbers:"Mai de num\xe8ros",noNumbers:"Pas cap de num\xe8ro.",noPassword:"Pas cap",noRoom:"Cap de sala pas donada per la j\xf3nher.",numbers:"Sonar de num\xe8ros",password:"",title:"Partejar",tooltip:"Partejar lo ligam e las informacions d\u2019aquesta confer\xe9ncia",label:"Info confer\xe9ncia"},inviteDialog:{alertText:"Frac\xe0s en convidant unes participants.",header:"Convidar",searchCallOnlyPlaceholder:"Picatz un numer\xf2 de telef\xf2n",searchPeopleOnlyPlaceholder:"Cercar de participants",searchPlaceholder:"Participant o num\xe8ro de telef\xf2n",send:"Mandar"},inlineDialogFailure:{msg:"Av\xe8m un pauc patit a mant\xe9ner la connexion.",retry:"Ensajar tornarmai",support:"Assist\xe9ncia",supportMsg:"Se ten d'arribat, contactatz l'"},keyboardShortcuts:{focusLocal:"Centrar sus v\xf2stra vid\xe8o",focusRemote:"Centrar sus la vid\xe8o de qualqu'un mai",fullScreen:"Activar / Desactivar l'ecran complet",keyboardShortcuts:"Acorchis de clavi\xe8r",localRecording:"Mostrar o amagar los contrar\xf2tles d\u2019enregistrament local",mute:"Activar o desactivar lo microf\xf2n",pushToTalk:"Butar per parlar",raiseHand:"Demandar o pas la paraula",showSpeakerStats:"Mostrar las estatisticas del microf\xf2n",toggleChat:"Dobrir o tampar lo pan\xe8l de conversacion",toggleFilmstrip:"Mostrar o amagar la vinheta vid\xe8o",toggleScreensharing:"Caplevar entre cam\xe8ra e partatge d'ecran",toggleShortcuts:"Mostrar o amagar los acorchis clavi\xe8r",videoMute:"Aviar o arrestar v\xf2stra cam\xe8ra",videoQuality:"Gerir la qualitat de las sonadas"},liveStreaming:{busy:"S\xe8m a ensajar de liurar de ressor\xe7as flux. Merc\xe9s de tornar ensajar dins una estona.",busyTitle:"Totes los difusors son ocupats",changeSignIn:"Cambiar de compte.",choose:"Causiss\xe8tz un flux dir\xe8cte",chooseCTA:"Causiss\xe8tz un flux dir\xe8cte. S\xe8tz connectat coma {{email}}.",enterStreamKey:"Picatz v\xf2stre clau de flux dir\xe8cte Youtube aqu\xed.",error:"Frac\xe0s de la difusion en dir\xe8cte. Merc\xe9s de tornar ensajar.",errorAPI:"Una error s\u2019es producha pendent l\u2019acc\xe8s al flux YouTube. Merc\xe9 d\u2019ensajar de vos connectar mai tard.",errorLiveStreamNotEnabled:"La difusion en dir\xe8cte es pas activada per {{email}}. Volgatz ben activar la difusion en dir\xe8cte o vos connectar amb un compte que l\u2019a activada.",expandedOff:"La difusion en dir\xe8cte es estada arrestada",expandedOn:"La confer\xe9ncia es difusada sus YouTube.",expandedPending:"La difusion en dir\xe8cte comen\xe7a...",failedToStart:"La difusion en dir\xe8cte a pas capitat de s'aviar",getStreamKeyManually:"",invalidStreamKey:"La clau de difusion en dir\xe8cte es benl\xe8u pas corr\xe8cta.",off:"La difusion en dir\xe8cte es estada arrestada",offBy:"",on:"La difusion en dir\xe8cte es estada arrestada",onBy:"",pending:"Comen\xe7ar lo dir\xe8cte...",serviceName:"Servici de difusion en dir\xe8cte",signedInAs:"S\xe8tz connectat coma\xa0:",signIn:"Se connectar amb Google",signInCTA:"Connectatz-vos o picatz la clau de v\xf2stre flux YouTube.",signOut:"Se desconnectar",start:"Aviar una difusion en dir\xe8cte",streamIdHelp:"Qu\u2019es aqu\xf2 ?",unavailableTitle:"Difusion en dir\xe8cte indisponibla"},localRecording:{clientState:{off:"Desactivat",on:"Activat",unknown:"Desconeguts"},dialogTitle:"Contrar\xf2tles dels enregistraments locals",duration:"Durada",durationNA:"N/A",encoding:"Encodatge",label:"ENR-LOC",labelToolTip:"Enregistrament local comen\xe7at",localRecording:"Enregistrament local",me:"Ieu",messages:{engaged:"Enregistrament local comen\xe7at.",finished:"Enregistrament de la session {{token}} acabat. Merc\xe9s d\u2019enviar lo fichi\xe8r enregistrat al moderator.",finishedModerator:"Enregistrament de la session {{token}} acabat. Es estat salvagardat. Merc\xe9s de demandar als autres participants d\u2019enviar lor enregistraments.",notModerator:"S\xe8tz pas moderator. Pod\xe8tz pas comen\xe7ar o arrestar un enregistrament local."},moderator:"Moderator",no:"Non",participant:"Participant",participantStats:"Estatisticas del participant",sessionToken:"Geton de session",start:"Aviar l'enregistrament",stop:"Arrestar l'enregistrament",yes:"\xd2c"},lockRoomPassword:"senhal",lockRoomPasswordUppercase:"Senhal",me:"ieu",notify:{connectedOneMember:"{{name}} a jonch la confer\xe9ncia",connectedThreePlusMembers:"{{name}} e {{count}} personas mai participan a la confer\xe9ncia",connectedTwoMembers:"{{first}} e {{second}} participan a la confer\xe9ncia",disconnected:"desconnectat",focus:"Focus de confer\xe9ncia",focusFail:"{{component}} es pas disponible - ensajatz tornamai dins {{ms}} sec",grantedTo:"Dreits moderator acordats a {{to}} !",invitedOneMember:"{{name}} es estat convidat",invitedThreePlusMembers:"{{name}} e {{count}} autres son estats convidats",invitedTwoMembers:"{{first}} e {{second}} son estats convidats",kickParticipant:"{{kicked}} es estat expulsat per {{kicker}}",me:"Ieu",moderator:"Dreits moderator acordats !",muted:"Av\xe8tz comen\xe7at la conversacion en mut.",mutedTitle:"S\xe8tz en mut !",mutedRemotelyTitle:"{{participantDisplayName}} vos a mes en silenci !",mutedRemotelyDescription:"",passwordRemovedRemotely:"$t(lockRoomPasswordUppercase) tirat per un autre participant",passwordSetRemotely:"$t(lockRoomPasswordUppercase) definit per un autre participant",raisedHand:"{{name}} volri\xe1 parlar.",somebody:"Qualqu'un",startSilentTitle:"Av\xe8tz jonch sens cap de sortida \xe0udio !",startSilentDescription:"Rej\xf3nher la confer\xe9ncia per activar l\u2019\xe0udio",suboptimalBrowserWarning:"",suboptimalExperienceTitle:"Avertiment del navegador",unmute:"Restablir lo son",newDeviceCameraTitle:"N\xf2va cam\xe8ra detectada",newDeviceAudioTitle:"N\xf2u periferic \xe0udio detectat",newDeviceAction:"Utilizar"},passwordSetRemotely:"causit per qualqu'un mai",passwordDigitsOnly:"Fins a {{number}} chifras",poweredby:"produit per",presenceStatus:{busy:"Ocupat",calling:"Sonada...",connected:"Connectat",connecting:"Connexion en cors...",connecting2:"Connexion*...",disconnected:"Desconnectat",expired:"Expirat",ignored:"Ignorat",initializingCall:"Comen\xe7ament de la sonada...",invited:"Convidat",rejected:"Refusat",ringing:"A sonar..."},profile:{setDisplayNameLabel:"Causiss\xe8tz v\xf2stre escais",setEmailInput:"Picatz lo corri\xe8l",setEmailLabel:"Definiss\xe8tz v\xf2stre corri\xe8l per gravatar",title:"Perfil"},raisedHand:"Volri\xe1 charrar",recording:{authDropboxText:"Enviar a Dropbox",availableSpace:"Espaci disponible : {{spaceLeft}} Mo (altorn de {{duration}} minutas d\u2019enregistrament)",beta:"BETA",busy:"S\xe8m a desliurar de resorgas d'enregistrament. Merc\xe9s de tornar ensajar dins una estona.",busyTitle:"Totes los enregistradors son ocupats pel moment",error:"Frac\xe0s de l'enregistrament. Merc\xe9s de tornar ensajar.",expandedOff:"Enregistrament arrestat",expandedOn:"La confer\xe9ncia es enregistrada.",expandedPending:"Aviada de l\u2019enregistrament...",failedToStart:"L'enregistrament n'as pas r\xe9ussi a d\xe9marrer",fileSharingdescription:"Partejar l\u2019enregistrament amb los participants de la re\xfcnion",live:"DIR\xc8CTE",loggedIn:"Session a {{userName}}",off:"Enregistrament arrestar",offBy:"",on:"Enregistrament",onBy:"",pending:"Preparacion de l\u2019enregistrament de la confer\xe9ncia...",rec:"ENRG",serviceDescription:"V\xf2stre enregistrament ser\xe0 salvagardat pel servici dedicat.",serviceName:"Servici d\u2019enregistrament",signIn:"Connexion",signOut:"Se desconnectar",unavailable:"Ops\u202f! Lo {{serviceName}} es pas disponible pel moment. S\xe8m a reglar aqueste probl\xe8ma. Merc\xe9s de tornar ensajar mai tard.",unavailableTitle:"Enregistrament indisponible"},sectionList:{pullToRefresh:"Tirar per actualizar"},settings:{calendar:{about:"L\u2019integracion de {{appName}} amb v\xf2stre calendi\xe8r permet d\u2019accedir d\u2019un biais segur als eveniments venents.",disconnect:"Desconnectar",microsoftSignIn:"Se connectar amb Microsoft",signedIn:"Acc\xe8s als eveniments del calendi\xe8r {{email}}. Clicatz lo boton Se desconnectar \xe7ai-jos per arrestar l\u2019acc\xe8s als eveniments del calendi\xe8r.",title:"Calendari"},devices:"Periferics",followMe:"Tot lo mond me s\xe8c",language:"Lenga",loggedIn:"Session a {{userName}}",moderator:"Moderator",more:"Mai",name:"Escais",noDevice:"Pas cap",selectAudioOutput:"Sortida \xe0udio",selectCamera:"Cam\xe8ra",selectMic:"Microf\xf2n",startAudioMuted:"Comen\xe7an totes sens son",startVideoMuted:"Comen\xe7an totes sens vid\xe8o",title:"Param\xe8tres"},settingsView:{alertOk:"D\u2019ac\xf2rdi",alertTitle:"Avertiment",alertURLText:"L\u2019URL del servidor es pas valida",buildInfoSection:"Informacions de generacion",conferenceSection:"Confer\xe9ncia",displayName:"Escais-nom",email:"Corri\xe8l",header:"Param\xe8tres",profileSection:"Perfil",serverURL:"URL del servidor",startWithAudioMuted:"Comen\xe7ar sens son",startWithVideoMuted:"Comen\xe7ar sens vi\xe8do",version:"Version"},share:{dialInfoText:"",mainText:"Copiatz lo ligam seguent per dintrar dins la confer\xe9ncia\xa0:\n{{roomUrl}}"},speaker:"Nautparlaire",speakerStats:{hours:"{{count}} oras",minutes:"{{count}} minutas",name:"Escais",seconds:"{{count}} segondas",speakerStats:"Estatisticas parladors",speakerTime:"Temps de paraula"},startupoverlay:{policyText:" ",title:"{{app}} a besonh d'utilizar v\xf2stre microf\xf2n e cam\xe8ra."},suspendedoverlay:{rejoinKeyTitle:"Tornar participar",text:"Quichatz lo boton Tornar participar.",title:"V\xf2stra confer\xe9ncia vid\xe8o es estada arrestada perque v\xf2stre ordenador se bot\xe8t en velha."},toolbar:{accessibilityLabel:{audioOnly:"Passar al sol \xe0udio",audioRoute:"Seleccionar lo periferic \xe0udio",callQuality:"Gerir la qualitat vid\xe8o",cc:"Passar als jost\xedtols",chat:"Passar a la fen\xe8stra chat",document:"Tampar los documents partejats",feedback:"Daissar un comentari",fullScreen:"Passar al ecran compl\xe8t",hangup:"Quitar la sonada",invite:"Convidar de monde",kick:"Exclure un participan ",localRecording:"Passar al pan\xe8l d\u2019enregistraments locals",lockRoom:"Tirar lo senhal de la confer\xe9ncia",moreActions:"Passar al men\xfa mai d\u2019accions",moreActionsMenu:"Mai de men\xfas d\u2019accion",mute:"Copar lo son",pip:"Activar/Desactivar lo m\xf2de Picture-in-Picture",profile:"Modificar v\xf2stre perfil",raiseHand:"Demandar la paraula",recording:"Passar al enregistraments",remoteMute:"Copar lo son del participant",Settings:"Passar als param\xe8tres",sharedvideo:"Passar al partatge de vid\xe8o Youtube",shareRoom:"Convidar qualqu\u2019un",shareYourScreen:"Passar a la captura d\u2019ecran",shortcuts:"Passar als acorchis",show:"",speakerStats:"Mostrar/Amagar los estatisticas de paraula",tileView:"Activar/Desactivar la vista en mosa\xefc",toggleCamera:"Passar a la cam\xe8ra",videomute:"Silenciar la vid\xe8o",videoblur:""},addPeople:"Ajustar de monde a v\xf2stra sonada",audioOnlyOff:"Desactivar lo m\xf2de connexion febla",audioOnlyOn:"Activar lo m\xf2de connexion febla",audioRoute:"Seleccionar lo periferic \xe0udio",authenticate:"Autentificatz-vos",callQuality:"Gerir la qualitat vid\xe8o",chat:"Dobrir / tampar la conversacion",closeChat:"Tampar la messatjari\xe1",documentClose:"Tampar los documents partejats",documentOpen:"Dobrir los documents partejats",enterFullScreen:"Veire l\u2019ecran compl\xe8t",enterTileView:"Dintrar dins la vista mosa\xefca",exitFullScreen:"Sortir de l\u2019ecran compl\xe8t",exitTileView:"Quitar la vista mosa\xefca",feedback:"Daissar un comentari",hangup:"Quitar",invite:"Convidar de monde",login:"Connexion",logout:"Desconnexion",lowerYourHand:"Baissar la man",moreActions:"Mai d\u2019opcions",mute:"Mut / Actiu",openChat:"Dobrir la messatjari\xe1 ",pip:"Passar al m\xf2de Picture-in-Picture",profile:"Modificar v\xf2stre perfil",raiseHand:"Demandar / Daissar la paraula",raiseYourHand:"Levar la man",Settings:"Param\xe8tres",sharedvideo:"Partejar una vid\xe8o Youtube",shareRoom:"Convidar qualqu\u2019un",shortcuts:"Veire los acorchis clavi\xe8r",speakerStats:"Estatisticas parladors",startScreenSharing:"Aviar lo partatge d\u2019ecran",startSubtitles:"Aviar los sost\xedtols",stopScreenSharing:"Arrestar lo partatge d\u2019ecran",stopSubtitles:"Arrestar los sost\xedtols ",stopSharedVideo:"Arrestar la vid\xe8o Youtube",talkWhileMutedPopup:"Ensajatz de parlar ? V\xf2stre microf\xf2n es copat.",tileViewToggle:"Activar/Desactivar la vista en mosa\xefc",toggleCamera:"Passar a la cam\xe8ra",videomute:"Aviar / Arrestar la cam\xe8ra",startvideoblur:"Trebolar mon r\xe8ire-plan",stopvideoblur:"Desactivar lo borrolatge del r\xe8ire-plan"},transcribing:{ccButtonTooltip:"Aviar / Arrestat los sost\xedtols",error:"Frac\xe0s de la transcripcion. Merc\xe9s de tornar ensajar.",expandedLabel:"La transcripcion es activada",failedToStart:"Frac\xe0s de l\u2019aviada de la transcripcion",labelToolTip:"La confer\xe9ncia es a \xe8sser transcricha",off:"Transcripcion arrestada",pending:"Preparacion de l\u2019enregistrament de la confer\xe9ncia...",start:"Mostrar los sost\xedtols",stop:"Levar los sost\xedtols",tr:"TR"},userMedia:{androidGrantPermissions:"Causiss\xe8tz Autorizar quand v\xf2stre navigador vos demanda l'autorizacion.",chromeGrantPermissions:"Causiss\xe8tz Autorizar quand v\xf2stre navigador vos demanda l'autorizacion.",edgeGrantPermissions:"Causiss\xe8tz \xd2c quand v\xf2stre navigador vos demanda l'autorizacion.",electronGrantPermissions:"Merc\xe9s de donar las permissions d'utilizar v\xf2stra cam\xe8ra e v\xf2stre microf\xf2n",firefoxGrantPermissions:"Causiss\xe8tz Partejar l'aparelh seleccionat quand v\xf2stre navigador vos demanda l'autorizacion.",iexplorerGrantPermissions:"Causiss\xe8tz OK quand v\xf2stre navigador vos demanda l'autorizacion.",nwjsGrantPermissions:"Merc\xe9s de donar las permissions d'utilizar v\xf2stra cam\xe8ra e v\xf2stre microf\xf2n",operaGrantPermissions:"Causiss\xe8tz Autorizar quand v\xf2stre navigador vos demanda l'autorizacion.","react-nativeGrantPermissions":"Causiss\xe8tz Autorizar quand v\xf2stre navigador vos demanda l'autorizacion.",safariGrantPermissions:"Causiss\xe8tz OK quand v\xf2stre navigador vos demanda l'autorizacion."},videoSIPGW:{busy:"S\xe8m a liurar de resorgas. Merc\xe9s de tornar ensajar dins una estona.",busyTitle:"Lo servici de sala es ocupat pel moment",errorAlreadyInvited:"{{displayName}} es ja convidat",errorInvite:"La confer\xe9ncia es pas encara establida. Tornatz ensajar mai tard.",errorInviteFailed:"S\xe8m a reglar aqueste probl\xe8ma. Ensajatz mai tard.",errorInviteFailedTitle:"L\u2019invitacion a {{displayName}} a fracassat",errorInviteTitle:"Error en convidar a la sala",pending:"{{displayName}} es estat convidat"},videoStatus:{audioOnly:"AUD",audioOnlyExpanded:"S\xe8tz en m\xf2de connexion febla. Amb aqueste m\xf2de recebretz pas que l\u2019\xe0udio e lo partatge d\u2019ecran.",callQuality:"Qualitat vid\xe8o",hd:"HD",hdTooltip:"Difusion vid\xe8o en nauta definicion",highDefinition:"Nauta definicion",labelTooiltipNoVideo:"Pas cap de vid\xe8o",labelTooltipAudioOnly:"M\xf2de connexion febla activat",ld:"Bassa definicion",ldTooltip:"Difusion vid\xe8o en bassa definicion",lowDefinition:"Bassa definicion",onlyAudioAvailable:"Pas que l\u2019\xe0udio es disponible",onlyAudioSupported:"S\xe8m compatibles solament amb l\u2019\xe0udio dins aqueste navigator.",p2pEnabled:"Connexion par a par activada",p2pVideoQualityDescription:"",recHighDefinitionOnly:"Nauta definicion preferida.",sd:"SD",sdTooltip:"Difusion vid\xe8o en definicion estandard",standardDefinition:"Definicion estandard"},videothumbnail:{domute:"Copar lo son",flip:"Revirar",kick:"Exclure",moderator:"Moderator",mute:"Un participant a copat son micro",muted:"Mut",remoteControl:"Contrar\xf2tle alonhat",show:"",videomute:"Lo participant a arrestat la cam\xe8ra"},welcomepage:{accessibilityLabel:{join:"Tocatz per participar",roomname:"Sasiss\xe8tz un nom de sala"},appDescription:"Endavant, charratz en vid\xe8o amb tota la c\xf2la. Per dire de convidar tot lo monde que coneiss\xe8tz. {{app}} es una solucion de vid\xe8o-confer\xe9ncia compl\xe8tament chifrada e 100% liura que pod\xe8tz utilizar tota la jornada, totes los jorns, gratuitament\u2014 sens cap de compte pas requesit.",audioVideoSwitch:{audio:"Votz",video:"Vid\xe8o"},calendar:"Calendari",connectCalendarButton:"Connectar lo calendari",connectCalendarText:"Connectatz v\xf2stre calendi\xe8r per veire v\xf2stras re\xfcnions dins {{app}}. Ajustatz tanben las re\xfcnions de {{provider}} a v\xf2stre calendi\xe8r e aviatz-las amb un sol clic.",enterRoomTitle:"Comen\xe7ar una n\xf2va confer\xe9ncia",onlyAsciiAllowed:"",go:"Crear",join:"PARTICIPATZ",info:"Infor",privacy:"Vida privada",recentList:"Recents",recentListDelete:"Suprimits",recentListEmpty:"V\xf2stra lista de contactes recents es voida. Charratz amb v\xf2stra c\xf2la e trobaretz totes v\xf2stras confer\xe9ncias recentas aqu\xed.",reducedUIText:"Benvengut a {{app}} !",roomname:"Sasiss\xe8tz un nom de sala",roomnameHint:"Picatz lo nom o l\u2019URL de la sala que vol\xe8tz j\xf3nher. Pod\xe8tz inventar un nom, cal pas que lo monde que vol\xe8tz convidar lo s\xe0pian. ",sendFeedback:"Mandar v\xf2stra opinion",terms:"T\xe8rmes",title:"Confer\xe9ncias vid\xe8o securizadas amb plen de foncionalitats e compl\xe8tament gratuitas"}}},677,[]); -__d(function(i,s,k,e,r,a,o){r.exports={en:"Angielski",af:"Afrykanerski",bg:"Bu\u0142garski",ca:"",cs:"Czeski",de:"Niemiecki",el:"Grecki",enGB:"",eo:"Esperanto",es:"Hiszpa\u0144ski",esUS:"",fi:"",fr:"Francuski",frCA:"",hr:"",hy:"Ormia\u0144ski",it:"W\u0142oski",ja:"Japo\u0144ski",ko:"Korea\u0144ski",nl:"",oc:"Oksyta\u0144ski",pl:"Polski",ptBR:"Portugalski (brazylijski)",ru:"Rosyjski",sv:"Szwedzki",tr:"Turecki",vi:"Wietnamski",zhCN:"Chi\u0144ski (Chiny)",zhTW:""}},678,[]); -__d(function(e,o,a,i,n,r,t){n.exports={addPeople:{add:"Zapro\u015b",countryNotSupported:"Nie obs\u0142ugujemy jeszcze tej lokalizacji.",countryReminder:"Dzwonisz spoza USA? Upewnij si\u0119, \u017ce zaczynasz od kodu kraju!",disabled:"Nie mo\u017cesz zaprasza\u0107 ludzi.",failedToAdd:"B\u0142\u0105d dodawania uczestnik\xf3w",footerText:"Wybieranie numeru jest wy\u0142\u0105czone.",loading:"Szukaj ludzi i numer\xf3w telefon\xf3w",loadingNumber:"Weryfikacja numeru telefonu",loadingPeople:"Wyszukiwanie os\xf3b do zaproszenia",noResults:"Brak pasuj\u0105cych wynik\xf3w wyszukiwania",noValidNumbers:"Prosz\u0119 wpisa\u0107 numer telefonu",searchNumbers:"Dodaj numery telefon\xf3w",searchPeople:"Szukaj ludzi",searchPeopleAndNumbers:"Wyszukaj osoby i dodaj ich numery telefonu",telephone:"Telefon: {{number}}",title:"Zapro\u015b ludzi na to spotkanie"},audioDevices:{bluetooth:"Bluetooth",headphones:"S\u0142uchawki",phone:"Telefon",speaker:"G\u0142o\u015bnik",none:""},audioOnly:{audioOnly:"za ma\u0142a przepustowo\u015b\u0107"},calendarSync:{addMeetingURL:"Dodaj odno\u015bnik do spotkania",confirmAddLink:"Czy chcesz doda\u0107 odno\u015bnik Jitsi do tego wydarzenia?",error:{appConfiguration:"Integracja z kalendarzem nie jest skonfigurowana poprawnie.",generic:"Wyst\u0105pi\u0142 problem. Sprawd\u017a ustawienia kalendarza lub spr\xf3buj od\u015bwie\u017cy\u0107 kalendarz.",notSignedIn:"Wyst\u0105pi\u0142 problem podczas uwierzytelniania dost\u0119pu do wydarze\u0144 w kalendarzu. Sprawd\u017a ustawienia kalendarza i spr\xf3buj zalogowa\u0107 si\u0119 ponownie."},join:"Do\u0142\u0105cz",joinTooltip:"Do\u0142\u0105cz do spotkania",nextMeeting:"nast\u0119pne spotkanie",noEvents:"Nie ma zaplanowanych nadchodz\u0105cych wydarze\u0144.",ongoingMeeting:"trwaj\u0105ce spotkanie",permissionButton:"Otw\xf3rz ustawienia",permissionMessage:"Aby zobaczy\u0107 spotkania w aplikacji, wymagane jest zezwolenie dost\u0119pu do kalendarza.",refresh:"Od\u015bwie\u017c kalendarz",today:"Dzisiaj"},chat:{error:"B\u0142\u0105d: Twoja wiadomo\u015b\u0107 \"{{originalText}}\" nie zosta\u0142a wys\u0142ana. Pow\xf3d: {{error}}",messagebox:"Wpisz wiadomo\u015b\u0107",nickname:{popover:"Wybierz sw\xf3j nick",title:"Wpisz swoje imi\u0119 i nazwisko, aby u\u017cy\u0107 rozmowy"},title:"Rozmowa"},connectingOverlay:{joiningRoom:"\u0141\u0105czenie z Twoim spotkaniem..."},connection:{ATTACHED:"Za\u0142\u0105cznik",AUTHENTICATING:"Uwierzytelnianie",AUTHFAIL:"Uwierzytelnianie nie powiod\u0142o si\u0119",CONNECTED:"Po\u0142\u0105czono",CONNECTING:"Nawi\u0105zywanie po\u0142\u0105czenia",CONNFAIL:"Po\u0142\u0105czenie si\u0119 nie powiod\u0142o",DISCONNECTED:"Roz\u0142\u0105czony",DISCONNECTING:"Roz\u0142\u0105czanie",ERROR:"B\u0142\u0105d",RECONNECTING:"Wyst\u0105pi\u0142 problem w sieci. Ponowienie po\u0142\u0105czenia..."},connectionindicator:{address:"Adres:",bandwidth:"Zak\u0142adana przepustowo\u015b\u0107:",bitrate:"Szybko\u015b\u0107 transmisji:",bridgeCount:"Liczba serwer\xf3w: ",connectedTo:"Pod\u0142\u0105czone do:",framerate:"Cz\u0119stotliwo\u015b\u0107 wy\u015bwietlania klatek:",less:"Poka\u017c mniej",localaddress_0:"Adres lokalny:",localaddress_1:"Adresy lokalne:",localaddress_2:"Adres\xf3w lokalnych:",localport_0:"Port lokalny:",localport_1:"Porty lokalne:",localport_2:"Port\xf3w lokalnych:",more:"Poka\u017c wi\u0119cej",packetloss:"Strata pakiet\xf3w:",quality:{good:"Prawdziwy",inactive:"Nieaktywny",lost:"Zaginiony",nonoptimal:"Nieoptymalne",poor:"S\u0142aby"},remoteaddress_0:"Adres zdalny:",remoteaddress_1:"Adresy zdalne:",remoteaddress_2:"Adres\xf3w zdalnych:",remoteport_0:"Port zdalny:",remoteport_1:"Porty zdalne:",remoteport_2:"Port\xf3w zdalnych:",resolution:"Rozdzielczo\u015b\u0107:",status:"Po\u0142\u0105czenie:",transport_0:"Przekazywanie:",transport_1:"Przekazywania:",transport_2:"Przekazywa\u0144:"},dateUtils:{earlier:"Wcze\u015bniej",today:"Dzisiaj",yesterday:"Wczoraj"},deepLinking:{appNotInstalled:"Potrzebujesz aplikacji mobilnej {{app}}, aby m\xf3c do\u0142\u0105czy\u0107 do tego spotkania przez telefon.",description:"Nic si\u0119 nie wydarzy\u0142o? Spr\xf3bowali\u015bmy uruchomi\u0107 Twoje spotkanie w aplikacji stacjonarnej {{app}}. Spr\xf3buj ponownie lub uruchom spotkanie w aplikacji webowej {{app}}.",descriptionWithoutWeb:"Nic si\u0119 nie wydarzy\u0142o? Spr\xf3bowali\u015bmy uruchomi\u0107 Twoje spotkanie w aplikacji stacjonarnej {{app}}.",downloadApp:"Pobierz aplikacj\u0119",launchWebButton:"Uruchom przez przegl\u0105dark\u0119",openApp:"Kontynuuj w aplikacji",title:"Trwa uruchamianie Twojego spotkania w {{app}}...",tryAgainButton:"Spr\xf3buj ponownie w aplikacji stacjonarnej"},defaultLink:"np. {{url}}",defaultNickname:"np. Ziutek Kowalski",deviceError:{cameraError:"B\u0142\u0105d dost\u0119pu do Twojej kamery",cameraPermission:"B\u0142\u0105d podczas przetwarzania uprawnie\u0144 do kamery",microphoneError:"B\u0142\u0105d dost\u0119pu do Twojego mikrofonu",microphonePermission:"B\u0142\u0105d podczas otrzymywania uprawnie\u0144 do mikrofonu"},deviceSelection:{noPermission:"Nie przyznano uprawnienia",previewUnavailable:"Podgl\u0105d niedost\u0119pny",selectADevice:"Wybierz urz\u0105dzenie",testAudio:"Odtw\xf3rz d\u017awi\u0119k testowy"},dialog:{accessibilityLabel:{liveStreaming:"Transmisja na \u017cywo"},allow:"Pozw\xf3l",alreadySharedVideoMsg:"Inny u\u017cytkownik ju\u017c prezentuje wideo. Ta konferencja pozwala tylko na prezentacj\u0119 jednego wideo w tym samym czasie.",alreadySharedVideoTitle:"Tylko jedna prezentacja wideo jest dozwolona w tym samym czasie",applicationWindow:"Okno aplikacji",Back:"Wstecz",cameraConstraintFailedError:"Twoja kamera nie spe\u0142nia niekt\xf3rych obowi\u0105zkowych wymaga\u0144.",cameraNotFoundError:"Kamera nie znaleziona.",cameraNotSendingData:"Nie mo\u017cemy po\u0142\u0105czy\u0107 si\u0119 z Twoj\u0105 kamer\u0105. Sprawd\u017a, czy inna aplikacja nie u\u017cywa tego urz\u0105dzenia, wybierz inne urz\u0105dzenie z menu ustawie\u0144 lub spr\xf3buj zrestartowa\u0107 aplikacj\u0119.",cameraNotSendingDataTitle:"Brak dost\u0119pu do kamery",cameraPermissionDeniedError:"Nie udzieli\u0142e\u015b pozwolenia na u\u017cycie swojej kamery. Nadal mo\u017cesz do\u0142\u0105czy\u0107 do konferencji, ale inni nie b\u0119d\u0105 Ci\u0119 widzie\u0107. Naci\u015bnij przycisk kamery na pasku adresu, aby to poprawi\u0107.",cameraUnknownError:"Z nieznanej przyczyny nie mo\u017cna u\u017cy\u0107 kamery.",cameraUnsupportedResolutionError:"Twoja kamera nie obs\u0142uguje wymaganej rozdzielczo\u015bci.",Cancel:"Anuluj",close:"Zamknij",conferenceDisconnectMsg:"By\u0107 mo\u017ce nale\u017cy sprawdzi\u0107 po\u0142\u0105czenie sieciowe. Ponowne po\u0142\u0105czenie za {{seconds}} sekund...",conferenceDisconnectTitle:"Zosta\u0142e\u015b roz\u0142\u0105czony.",conferenceReloadMsg:"Staramy si\u0119 to naprawi\u0107. Ponowne po\u0142\u0105czenie za {{seconds}} sekund...",conferenceReloadTitle:"Niestety, co\u015b posz\u0142o nie tak.",confirm:"Potwierd\u017a",confirmNo:"",confirmYes:"Tak",connectError:"Ocho! Cos posz\u0142o nie tak, nie mo\u017cna pod\u0142aczy\u0107 si\u0119 do tej konferencji.",connectErrorWithMsg:"Upsss! Co\u015b posz\u0142o nie tak i nie mo\u017cemy pod\u0142\u0105czy\u0107 si\u0119 do tej konferencji: {{msg}}",connecting:"Nawi\u0105zywanie po\u0142\u0105czenia",contactSupport:"Skontaktuj si\u0119 ze wsparciem",copy:"Kopiuj",dismiss:"Odrzu\u0107",displayNameRequired:"Cze\u015b\u0107! Jak si\u0119 nazywasz?",done:"Zrobione",enterDisplayName:"Wpisz tutaj swoje imi\u0119",error:"B\u0142\u0105d",externalInstallationMsg:"Zainstaluj rozszerzenie naszego wsp\xf3\u0142dzielenia ekranu.",externalInstallationTitle:"Wymagane rozszerzenie",goToStore:"Id\u017a do sklepu",gracefulShutdown:"Aktualnie serwis jest konserwowany. Prosze spr\xf3bowa\u0107 p\xf3\u017aniej.",IamHost:"Jestem gospodarzem",incorrectRoomLockPassword:"Has\u0142o nieprawid\u0142owe",incorrectPassword:"Niepoprawna nazwa u\u017cytkownika lub has\u0142o",inlineInstallationMsg:"Zainstaluj rozszerzenie naszego wsp\xf3\u0142dzielenia ekranu.",inlineInstallExtension:"Zainstaluj teraz",internalError:"Ups! Co\u015b posz\u0142o nie tak. Wyst\u0105pi\u0142 nast\u0119puj\u0105cy b\u0142\u0105d: {{error}}",internalErrorTitle:"B\u0142\u0105d wewn\u0119trzny",kickMessage:"Mo\u017cesz skontaktowa\u0107 si\u0119 z {{participantDisplayName}}, aby uzyska\u0107 wi\u0119cej szczeg\xf3\u0142\xf3w.",kickParticipantButton:"Usu\u0144",kickParticipantDialog:"Czy na pewno chcesz usun\u0105\u0107 tego uczestnika?",kickParticipantTitle:"Usun\u0105\u0107 tego uczestnika?",kickTitle:"Ups! {{participantDisplayName}} usun\u0105\u0142 Ci\u0119 z tego spotkania",liveStreaming:"Strumie\u0144 live",liveStreamingDisabledForGuestTooltip:"Go\u015bcie nie mog\u0105 u\u017cywa\u0107 transmisji na \u017cywo.",liveStreamingDisabledTooltip:"Rozpocz\u0119cie transmisji na \u017cywo jest wy\u0142\u0105czone.",lockMessage:"Zabezpieczenie konferencji nie powiod\u0142o si\u0119.",lockRoom:"Dodaj spotkanie $t(lockRoomPasswordUppercase)",lockTitle:"Nie powiod\u0142o si\u0119 zabezpieczenie konferencji",logoutQuestion:"Na pewno chcesz si\u0119 wylogowa\u0107 i zako\u0144czy\u0107 konferencj\u0119?",logoutTitle:"Wyloguj",maxUsersLimitReached:"Osi\u0105gni\u0119to limit maksymalnej liczby uczestnik\xf3w. Konferencja jest zape\u0142niona. Skontaktuj si\u0119 z w\u0142a\u015bcicielem spotkania lub spr\xf3buj ponownie p\xf3\u017aniej!",maxUsersLimitReachedTitle:"Osi\u0105gni\u0119to maksymaln\u0105 liczb\u0119 uczestnik\xf3w",micConstraintFailedError:"Tw\xf3j mikrofon nie spe\u0142nia niekt\xf3rych wymaganych parametr\xf3w.",micNotFoundError:"Mikrofon nie jest odnaleziony.",micNotSendingData:"Wejd\u017a w ustawienia komputera, aby wy\u0142\u0105czy\u0107 wyciszenie i dostosowa\u0107 poziom g\u0142o\u015bno\u015bci",micNotSendingDataTitle:"Tw\xf3j mikrofon jest wyciszony przez ustawienia systemowe",micPermissionDeniedError:"Nie udzieli\u0142e\u015b pozwolenia na u\u017cycie twojego mikrofonu. Nadal mo\u017cesz uczestniczyc w konferencji ale inni nie b\u0119d\u0105 ci\u0119 s\u0142yszeli. U\u017cyj przycisku kamera aby to naprawi\u0107.",micUnknownError:"Z nieznanej przyczyny nie mo\u017cna u\u017cy\u0107 mikrofonu.",muteParticipantBody:"Nie mo\u017cesz wy\u0142\u0105czy\u0107 ich wyciszenia, ale oni mog\u0105 samodzielnie wy\u0142\u0105czy\u0107 wyciszenie w dowolnym momencie.",muteParticipantButton:"Wyciszenie",muteParticipantDialog:"Czy na pewno wyciszy\u0107 tego uczestnika? Nie b\u0119dziesz m\xf3g\u0142 wy\u0142\u0105czy\u0107 wyciszenia uczestnik\xf3w, ale oni mog\u0105 samodzielnie wy\u0142\u0105czy\u0107 wyciszenie w dowolnym momencie.",muteParticipantTitle:"Wyciszy\u0107 tego uczestnika?",Ok:"Ok",passwordLabel:"$t(lockRoomPasswordUppercase)",passwordNotSupported:"Ustanowienie spotkania $t(lockRoomPassword) nie jest obs\u0142ugiwane.",passwordNotSupportedTitle:"$t(lockRoomPasswordUppercase) nie jest obs\u0142ugiwane",passwordRequired:"$t(lockRoomPasswordUppercase) jest wymagane",popupError:"Twoja przegl\u0105darka blokuje wyskakuj\u0105ce okienka pochodz\u0105ce z tej witryny. W\u0142\u0105cz wy\u015bwietlanie wyskakuj\u0105cych okienek w ustawieniach bezpiecze\u0144stwa Twojej przegl\u0105darki i spr\xf3buj ponownie.",popupErrorTitle:"Wyskakuj\u0105ce okienko zosta\u0142o zablokowane",recording:"Nagrywanie",recordingDisabledForGuestTooltip:"Go\u015bcie nie mog\u0105 rozpocz\u0105\u0107 nagrywania.",recordingDisabledTooltip:"Rozpocz\u0119cie nagrywania wy\u0142\u0105czone.",rejoinNow:"Po\u0142\u0105cz ponownie teraz",remoteControlAllowedMessage:"{{user}} zaakceptowa\u0142 Twoj\u0105 pro\u015bb\u0119 o kontrol\u0119 zdaln\u0105!",remoteControlDeniedMessage:"{{user}} odrzuci\u0142 Twoj\u0105 pro\u015bb\u0119 o kontrol\u0119 zdaln\u0105!",remoteControlErrorMessage:"Wyst\u0105pi\u0142 b\u0142\u0105d podczas pr\xf3by uzyskania zgody na zdaln\u0105 kontrol\u0119 od {{user}}!",remoteControlRequestMessage:"Czy zgadzasz si\u0119, \u017ceby {{user}} zdalnie kontrolowa\u0142 Tw\xf3j komputer?",remoteControlShareScreenWarning:"Zwr\xf3\u0107 uwag\u0119, \u017ce je\u015bli wybierzesz \"Pozw\xf3l\" jednocze\u015bnie zostanie wsp\xf3\u0142dzielony Tw\xf3j ekran!",remoteControlStopMessage:"Sesja zdalnej kontroli dobieg\u0142a ko\u0144ca!",remoteControlTitle:"Zdalna kontrola komputera",Remove:"Usu\u0144",removePassword:"Usu\u0144 $t(lockRoomPassword)",removeSharedVideoMsg:"Na pewno chcesz usun\u0105\u0107 wsp\xf3\u0142dzielone wideo?",removeSharedVideoTitle:"Usu\u0144 wideo wsp\xf3\u0142dzielone",reservationError:"B\u0142\u0105d systemu rezerwacji",reservationErrorMsg:"Kod b\u0142\u0119du: {{code}}, tre\u015b\u0107: {{msg}}",retry:"Pon\xf3w",screenSharingFailedToInstall:"Ups! Nie uda\u0142o si\u0119 zainstalowa\u0107 wtyczki do wsp\xf3\u0142dzielenia ekranu.",screenSharingFailedToInstallTitle:"Nie uda\u0142o si\u0119 zainstalowa\u0107 wtyczki do wsp\xf3\u0142dzielenia ekranu",screenSharingFirefoxPermissionDeniedError:"Co\u015b posz\u0142o nie tak podczas pr\xf3by wsp\xf3\u0142dzielenia Twojego ekranu. Upewnij si\u0119, \u017ce udzieli\u0142e\u015b zgody na t\u0105 pr\xf3b\u0119. ",screenSharingFirefoxPermissionDeniedTitle:"Ups! Nie byli\u015bmy w stanie rozpocz\u0105\u0107 wsp\xf3\u0142dzielenia ekranu!",screenSharingPermissionDeniedError:"Ups! Co\u015b posz\u0142o nie tak z prawami dost\u0119pu do wtyczki wsp\xf3\u0142dzielenia ekranu. Wczytaj ponownie i spr\xf3buj jeszcze raz.",serviceUnavailable:"Us\u0142uga jest niedost\u0119pna",sessTerminated:"Po\u0142\u0105czenie przerwane",Share:"Wsp\xf3\u0142dziel",shareVideoLinkError:"Podaj prosz\u0119 prawid\u0142owy link youtube.",shareVideoTitle:"Wsp\xf3\u0142dziel wideo",shareYourScreen:"W\u0142\u0105cz wsp\xf3\u0142dzielenie ekranu",shareYourScreenDisabled:"Wsp\xf3\u0142dzielenie ekranu wy\u0142\u0105czone.",shareYourScreenDisabledForGuest:"Go\u015bcie nie mog\u0105 wsp\xf3\u0142dzieli\u0107 ekranu.",startLiveStreaming:"Rozpocznij transmisj\u0119 na \u017cywo",startRecording:"Rozpocznij nagrywanie",startRemoteControlErrorMessage:"Wyst\u0105pi\u0142 b\u0142\u0105d podczas pr\xf3by rozpocz\u0119cie sesji zdalnej kontroli!",stopLiveStreaming:"Zatrzymaj transmisj\u0119 na \u017cywo",stopRecording:"Zatrzymaj nagrywanie",stopRecordingWarning:"Naprawd\u0119 chcesz zatrzyma\u0107 nagrywanie?",stopStreamingWarning:"Czy jeste\u015b pewny, \u017ce chcesz zatrzyma\u0107 t\u0119 transmisj\u0119 na \u017cywo?",streamKey:"Klucz transmisji na \u017cywo",Submit:"Wy\u015blij",thankYou:"Dzi\u0119kujemy Ci za u\u017cywanie {{appName}}!",token:"token",tokenAuthFailed:"Przepraszamy, ale nie jeste\u015b upowa\u017cniony do uczestnictwa w tym po\u0142\u0105czeniu.",tokenAuthFailedTitle:"Uwierzytelnianie nie powiod\u0142o si\u0119",transcribing:"Transkrypcja",unlockRoom:"Usu\u0144 spotkanie $t(lockRoomPassword)",userPassword:"has\u0142o u\u017cytkownika",WaitForHostMsg:"Konferencja {{room}} jeszcze si\u0119 nie rozpocz\u0119\u0142a. Je\u015bli jeste\u015b gospodarzem, prosimy o uwierzytelnienie. Je\u015bli nie, prosimy czeka\u0107 na przybycie gospodarza.",WaitForHostMsgWOk:"Konferencja {{room}} jeszcze si\u0119 nie zacz\u0119\u0142a. Je\u015bli jeste\u015b jej gospodarzem, wybierz Ok, aby si\u0119 uwierzytelni\u0107. Je\u015bli nie, prosimy czeka\u0107 na przybycie gospodarza.",WaitingForHost:"Oczekiwanie na gospodarza...",Yes:"Tak",yourEntireScreen:"Ca\u0142y Tw\xf3j ekran"},dialOut:{statusMessage:"jest teraz {{status}}"},feedback:{average:"\u015aredni",bad:"\u0179le\x7f\x7f",detailsLabel:"Powiedz nam o tym wi\u0119cej.",good:"Prawdziwy",rateExperience:"Oce\u0144 prosz\u0119 swoje do\u015bwiadczenia z konferencji",veryBad:"Bardzo \u017ale",veryGood:"1: Bardzo dobrze"},incomingCall:{answer:"Odpowiedz",audioCallTitle:"Przychodz\u0105ce po\u0142\u0105czenie",decline:"Odrzu\u0107",productLabel:"z Jitsi Meet",videoCallTitle:"Przychodz\u0105ce po\u0142\u0105czenie wideo"},info:{accessibilityLabel:"Poka\u017c informacje",addPassword:"Dodaj $t(lockRoomPassword)",cancelPassword:"Anuluj $t(lockRoomPassword)",conferenceURL:"Odno\u015bnik:",country:"Kraj",dialANumber:"Aby do\u0142\u0105czy\u0107 do spotkania, wprowad\u017a jeden z tych numer\xf3w i podaj pin.",dialInConferenceID:"PIN:",dialInNotSupported:"Przepraszamy, aktualnie wybieranie nie jest obs\u0142ugiwane.",dialInNumber:"Wdzwo\u0144 si\u0119:",dialInSummaryError:"B\u0142\u0105d podczas przetwarzania danych do wdzwonienia. Spr\xf3buj ponownie p\xf3\u017aniej.",dialInTollFree:"Numer bezp\u0142atny",genericError:"Ups, co\u015b posz\u0142o nie tak.",inviteLiveStream:"Aby obejrze\u0107 transmisj\u0119 na \u017cywo z tego spotkania, kliknij ten odno\u015bnik: {{url}}",invitePhone:"Aby skorzysta\u0107 z po\u0142\u0105czenia telefonicznego, wprowad\u017a: {{number}},,{{conferenceID}}#\n",invitePhoneAlternatives:"Poszukujesz innego numeru do wdzwonienia?\nZobacz list\u0119 numer\xf3w: {{url}}\n\n\nJe\u015bli wdzwaniasz si\u0119 z telefonu pokojowego, po\u0142\u0105cz si\u0119 bez d\u017awi\u0119ku: {{silentUrl}}",inviteURLFirstPartGeneral:"Zosta\u0142e\u015b zaproszony do do\u0142\u0105czenia do spotkania.",inviteURLFirstPartPersonal:"{{name}} zaprasza Ci\u0119 na spotkanie.\n",inviteURLSecondPart:"\nDo\u0142\u0105cz do spotkania:\n{{url}}\n",liveStreamURL:"Transmisja na \u017cywo:",moreNumbers:"Wi\u0119cej numer\xf3w",noNumbers:"Brak numer\xf3w do wdzwonienia.",noPassword:"Brak",noRoom:"Nie podano pokoju do wdzwonienia.",numbers:"Numery do wdzwonienia",password:"$t(lockRoomPasswordUppercase):",title:"Wsp\xf3\u0142dziel",tooltip:"Udost\u0119pnij odno\u015bnik i informacje do wdzwonienia si\u0119 na to spotkanie",label:"Informacje o spotkaniu"},inviteDialog:{alertText:"Nie uda\u0142o si\u0119 zaprosi\u0107 niekt\xf3rych uczestnik\xf3w.",header:"Zapro\u015b",searchCallOnlyPlaceholder:"Podaj numer telefonu",searchPeopleOnlyPlaceholder:"Szukaj uczestnik\xf3w",searchPlaceholder:"Uczestnik lub numer telefonu",send:"Wy\u015blij"},inlineDialogFailure:{msg:"Nieco niedopisali\u015bmy.",retry:"Spr\xf3buj ponownie",support:"Wsparcie",supportMsg:"Je\u015bli to si\u0119 powtarza, skontaktuj si\u0119 z nami przez"},keyboardShortcuts:{focusLocal:"Powi\u0119ksz wideo",focusRemote:"Skup na obrazie innej osoby",fullScreen:"Przejd\u017a w tryb lub zamknij pe\u0142ny ekran",keyboardShortcuts:"Skr\xf3ty klawiaturowe",localRecording:"Wy\u015bwietlanie lub ukrywanie lokalnych element\xf3w steruj\u0105cych zapisem",mute:"W\u0142\u0105cz lub wy\u0142\u0105cz sw\xf3j mikrofon",pushToTalk:"Naci\u015bnij, aby m\xf3wi\u0107",raiseHand:"Podnie\u015b lub opu\u015b\u0107 r\u0119k\u0119",showSpeakerStats:"Poka\u017c statystyki m\xf3wcy",toggleChat:"Otw\xf3rz lub zamknij rozmow\u0119",toggleFilmstrip:"Wy\u015bwietl lub ukryj miniaturki video",toggleScreensharing:"Prze\u0142\u0105cz pomi\u0119dzy kamer\u0105 i wsp\xf3ldzieleniem ekranu",toggleShortcuts:"Wy\u015bwietl lub ukryj skr\xf3ty klawiaturowe",videoMute:"Uruchom lub zatrzymaj kamer\u0119",videoQuality:"Zarz\u0105dzanie jako\u015bci\u0105 po\u0142\u0105cze\u0144"},liveStreaming:{busy:"Pracujemy nad zwolnieniem zasob\xf3w transmisyjnych. Spr\xf3buj ponownie za kilka minut.",busyTitle:"Wszyscy transmituj\u0105cy s\u0105 aktualnie zaj\u0119ci",changeSignIn:"Prze\u0142\u0105cz konta.",choose:"Wybierz transmisj\u0119 na \u017cywo",chooseCTA:"Wybierz opcj\u0119 transmisji. Jeste\u015b obecnie zalogowany jako {{email}}.",enterStreamKey:"Wpisz tutaj sw\xf3j klucz transmisji na \u017cywo YouTube.",error:"Transmitowanie na \u017cywo nie powiod\u0142o si\u0119. Spr\xf3buj ponownie.",errorAPI:"",errorLiveStreamNotEnabled:"",expandedOff:"Transmisja na \u017cywo zosta\u0142a zatrzymana",expandedOn:"",expandedPending:"Transmisja na \u017cywo rozpoczyna si\u0119...",failedToStart:"Transmitowanie na \u017cywo nie uruchomi\u0142o si\u0119",getStreamKeyManually:"",invalidStreamKey:"Klucz transmisji na \u017cywo mo\u017ce by\u0107 nieprawid\u0142owy.",off:"Transmitowanie na \u017cywo zosta\u0142o zatrzymane",offBy:"",on:"Strumie\u0144 live",onBy:"",pending:"Start strumieniowania live...",serviceName:"Us\u0142uga transmisji na \u017cywo",signedInAs:"Jeste\u015b obecnie zalogowany jako:",signIn:"Zaloguj si\u0119 z Google",signInCTA:"Zaloguj si\u0119 lub wpisz sw\xf3j klucz do transmisji na \u017cywo YouTube.",signOut:"Wyloguj si\u0119",start:"Rozpocznij transmisj\u0119 na \u017cywo",streamIdHelp:"Co to jest?",unavailableTitle:"Transmisja na \u017cywo jest niedost\u0119pna"},localRecording:{clientState:{off:"Wy\u0142\u0105czone",on:"W\u0142\u0105czone",unknown:"Nieznane"},dialogTitle:"Kontrolki lokalnego nagrywania",duration:"D\u0142ugo\u015b\u0107",durationNA:"N/D",encoding:"Kodowanie",label:"",labelToolTip:"",localRecording:"Nagrywanie lokalne",me:"To ja",messages:{engaged:"W\u0142\u0105czono nagrywanie lokalne.",finished:"",finishedModerator:"",notModerator:"Nie jeste\u015b moderatorem. Nie mo\u017cesz rozpoczyna\u0107 i zatrzymywa\u0107 lokalnego nagrywania."},moderator:"Moderuj\u0105cy",no:"",participant:"Uczestnik",participantStats:"Statystyki uczestnik\xf3w",sessionToken:"Token sesji",start:"Rozpocznij nagrywanie",stop:"Zatrzymaj nagrywanie",yes:"Tak"},lockRoomPassword:"has\u0142o",lockRoomPasswordUppercase:"Has\u0142o",me:"to ja",notify:{connectedOneMember:"{{name}} do\u0142\u0105czy\u0142 do spotkania",connectedThreePlusMembers:"{{name}} i {{count}} innych os\xf3b do\u0142\u0105czy\u0142o do spotkania",connectedTwoMembers:"{{first}} i {{second}} do\u0142\u0105czyli do spotkania",disconnected:"roz\u0142\u0105czone",focus:"Fokus konferencji",focusFail:"{{component}} jest niedost\u0119pny - ponowienie w ci\u0105gu {{ms}} sec",grantedTo:"Prawa moderatora przyznane {{to}}!",invitedOneMember:"{{name}} zosta\u0142 zaproszony",invitedThreePlusMembers:"",invitedTwoMembers:"{{first}} i {{second}} zostali zaproszeni",kickParticipant:"{{kicked}} zosta\u0142 usuni\u0119ty przez {{kicker}}",me:"To ja",moderator:"Prawa moderatora przydzielone!",muted:"Rozpocz\u0119to wyciszenie konwersacji.",mutedTitle:"Jeste\u015b wyciszony!",mutedRemotelyTitle:"Zosta\u0142e\u015b wyciszony przez {{participantDisplayName}}!",mutedRemotelyDescription:"",passwordRemovedRemotely:"$t(lockRoomPasswordUppercase) usuni\u0119ty przez innego uczestnika",passwordSetRemotely:"$t(lockRoomPasswordUppercase) ustawiony przez innego uczestnika",raisedHand:"{{name}} chce m\xf3wi\u0107.",somebody:"Kto\u015b",startSilentTitle:"",startSilentDescription:"Ponownie do\u0142\u0105cz do spotkania, aby w\u0142\u0105czy\u0107 d\u017awi\u0119k",suboptimalBrowserWarning:"",suboptimalExperienceTitle:"Ostrze\u017cenie przegl\u0105darki",unmute:"Wy\u0142\u0105cz wyciszenie",newDeviceCameraTitle:"Wykryto now\u0105 kamer\u0119",newDeviceAudioTitle:"Wykryto nowe urz\u0105dzenie d\u017awi\u0119kowe",newDeviceAction:"U\u017cyj"},passwordSetRemotely:"wybrane przez innego uczestnika\x7f",passwordDigitsOnly:"",poweredby:"nap\u0119dzane dzi\u0119ki",presenceStatus:{busy:"Zaj\u0119te",calling:"Dzwonienie...",connected:"Po\u0142\u0105czono",connecting:"\u0141\u0105czenie...",connecting2:"\u0141\u0105czenie*...",disconnected:"Roz\u0142\u0105czony",expired:"Wygas\u0142e",ignored:"Zignorowane",initializingCall:"Inicjalizacja po\u0142\u0105czenia...",invited:"Zaproszony",rejected:"Odrzucony",ringing:""},profile:{setDisplayNameLabel:"Podaj swoj\u0105 wy\u015bwietlan\u0105 nazw\u0119",setEmailInput:"Wprowad\u017a adres e-mail",setEmailLabel:"Ustaw email swojego gravatara",title:"Profil"},raisedHand:"Chcesz si\u0119 odezwa\u0107 ?",recording:{authDropboxText:"Prze\u015blij na Dropbox",availableSpace:"",beta:"",busy:"Pracujemy nad uwolnieniem zasob\xf3w nagrywania. Prosz\u0119 spr\xf3bowa\u0107 ponownie za kilka minut.",busyTitle:"Wszystkie urz\u0105dzenia nagrywania s\u0105 obecnie zajete",error:"Nagranie si\u0119 nie powiod\u0142o. Prosz\u0119 spr\xf3bowa\u0107 ponownie.",expandedOff:"Nagrywanie zosta\u0142o zatrzymane",expandedOn:"Spotkanie jest obecnie nagrywane.",expandedPending:"Nagrywanie si\u0119 rozpoczyna...",failedToStart:"Nagrywanie nie jest mo\u017cliwe",fileSharingdescription:"Wsp\xf3\u0142dziel nagranie z uczestnikami spotkania",live:"NA \u017bYWO",loggedIn:"Zalogowano jako {{userName}}",off:"Nagrywanie zatrzymane",offBy:"",on:"Nagrywanie",onBy:"",pending:"Przygotowanie do nagrania spotkania...",rec:"NAGRYWANIE",serviceDescription:"",serviceName:"Us\u0142uga nagrywania",signIn:"Zaloguj si\u0119",signOut:"Wyloguj si\u0119",unavailable:"",unavailableTitle:""},sectionList:{pullToRefresh:"Przeci\u0105gnij, aby od\u015bwie\u017cy\u0107"},settings:{calendar:{about:"",disconnect:"Roz\u0142\u0105cz",microsoftSignIn:"Zaloguj si\u0119 z Microsoft",signedIn:"",title:"Kalendarz"},devices:"Urz\u0105dzenia",followMe:"Wszyscy za mn\u0105",language:"J\u0119zyk",loggedIn:"",moderator:"Moderuj\u0105cy",more:"Wi\u0119cej",name:"Nazwa",noDevice:"Brak",selectAudioOutput:"Wyj\u015bcie audio",selectCamera:"Kamera",selectMic:"Mikrofon",startAudioMuted:"Wszyscy si\u0119 wyciszyli",startVideoMuted:"Wszyscy si\u0119 ukryli",title:"Ustawienia"},settingsView:{alertOk:"OK",alertTitle:"Uwaga",alertURLText:"Wprowadzony adres URL serwera jest nieprawid\u0142owy",buildInfoSection:"Informacja o kompilacji",conferenceSection:"Konferencja",displayName:"Wy\u015bwietlana nazwa",email:"E-mail",header:"Ustawienia",profileSection:"Profil",serverURL:"Adres URL serwera",startWithAudioMuted:"Rozpocznij z wyciszonym d\u017awi\u0119kiem",startWithVideoMuted:"Rozpocznij z wy\u0142\u0105czonym obrazem",version:"Wersja"},share:{dialInfoText:"",mainText:""},speaker:"G\u0142o\u015bnik",speakerStats:{hours:"",minutes:"",name:"Nazwa",seconds:"",speakerStats:"Statystyki m\xf3wc\xf3w",speakerTime:""},startupoverlay:{policyText:" ",title:""},suspendedoverlay:{rejoinKeyTitle:"Do\u0142\u0105cz ponownie",text:"Naci\u015bnij przycisk Do\u0142\u0105cz ponownie, aby po\u0142\u0105czy\u0107 si\u0119 ponownie.",title:"Twoja rozmowa wideo zosta\u0142a przerwana, poniewa\u017c komputer zasn\u0105\u0142."},toolbar:{accessibilityLabel:{audioOnly:"Prze\u0142\u0105czanie tylko audio",audioRoute:"Wybierz urz\u0105dzenie d\u017awi\u0119kowe",callQuality:"Zarz\u0105dzanie jako\u015bci\u0105 obrazu",cc:"Prze\u0142\u0105czanie napis\xf3w",chat:"Prze\u0142\u0105czanie okna rozmowy",document:"Prze\u0142\u0105czanie wsp\xf3lnego dokumentu",feedback:"Zostaw swoj\u0105 opini\u0119",fullScreen:"Prze\u0142\u0105czanie trybu pe\u0142noekranowego",hangup:"Zostaw rozmow\u0119",invite:"Zapraszaj ludzi",kick:"Usu\u0144 uczestnika",localRecording:"Prze\u0142\u0105czanie lokalnych urz\u0105dze\u0144 steruj\u0105cych zapisem danych",lockRoom:"Prze\u0142\u0105czenie has\u0142a spotkania",moreActions:"Prze\u0142\u0105czanie menu wi\u0119cej dzia\u0142a\u0144",moreActionsMenu:"Wi\u0119cej dzia\u0142a\u0144 w menu",mute:"Uruchamianie wyciszonego audycji",pip:"Tryb prze\u0142\u0105czania obrazu-w-obrazie",profile:"Edytuj sw\xf3j profil",raiseHand:"Prze\u0142\u0105czy\u0107 r\u0119k\u0119 w g\xf3r\u0119",recording:"Prze\u0142\u0105czanie nagrywania",remoteMute:"Wycisz uczestnika",Settings:"Ustawienia prze\u0142\u0105czania",sharedvideo:"",shareRoom:"Zapro\u015b kogo\u015b",shareYourScreen:"Prze\u0142\u0105czanie podzia\u0142u ekranu",shortcuts:"Prze\u0142\u0105czanie skr\xf3t\xf3w klawiszowych",show:"",speakerStats:"Prze\u0142\u0105czanie statystyk dotycz\u0105cych m\xf3wc\xf3w",tileView:"Prze\u0142\u0105czanie kafelkowego widoku",toggleCamera:"Prze\u0142\u0105czanie kamery",videomute:"Prze\u0142\u0105czanie wyciszonego filmu wideo",videoblur:""},addPeople:"Dodaj ludzi do swojego telefonu",audioOnlyOff:"",audioOnlyOn:"",audioRoute:"Wybierz urz\u0105dzenie d\u017awi\u0119kowe",authenticate:"Uwierzytelnianie",callQuality:"Zarz\u0105dzanie jako\u015bci\u0105 obrazu",chat:"Otw\xf3rz / Zamknij rozmow\u0119",closeChat:"Zamknij rozmow\u0119",documentClose:"Zamknij wsp\xf3lny dokument",documentOpen:"Otwarty wsp\xf3\u0142dzielony dokument",enterFullScreen:"Wy\u015bwietlanie pe\u0142nego ekranu",enterTileView:"Wejd\u017a w kafelkowy widok",exitFullScreen:"Wy\u015bwietlanie pe\u0142nego ekranu",exitTileView:"Wyjd\u017a z kafelkowego widoku",feedback:"Zostaw swoj\u0105 opini\u0119",hangup:"Opu\u015b\u0107",invite:"Zapraszaj ludzi",login:"Zaloguj",logout:"Wyloguj",lowerYourHand:"Opu\u015b\u0107 sw\u0105 r\u0119k\u0119",moreActions:"Wi\u0119cej dzia\u0142a\u0144",mute:"Wycisz / Pog\u0142o\u015bnij",openChat:"Otw\xf3rz rozmow\u0119",pip:"Wprowad\u017a tryb obrazu w obrazie",profile:"Edytuj sw\xf3j profil",raiseHand:"Podnie\u015b / Opu\u015b\u0107 sw\u0105 r\u0119k\u0119",raiseYourHand:"Podnie\u015b sw\u0105 r\u0119k\u0119",Settings:"Ustawienia",sharedvideo:"Udost\u0119pniaj wideo w Youtube",shareRoom:"Zapro\u015b kogo\u015b",shortcuts:"Wy\u015bwietlanie skr\xf3t\xf3w",speakerStats:"Statystyki g\u0142o\u015bnik\xf3w",startScreenSharing:"Zacznij wsp\xf3\u0142dzielenie ekranu",startSubtitles:"",stopScreenSharing:"",stopSubtitles:"",stopSharedVideo:"Zatrzymaj wideo z YouTube",talkWhileMutedPopup:"Pr\xf3bujesz m\xf3wi\u0107? Jeste\u015b wyciszony.",tileViewToggle:"Prze\u0142\u0105czanie kafelkowego widoku",toggleCamera:"Prze\u0142\u0105czanie kamery",videomute:"W\u0142\u0105cz / Wy\u0142\u0105cz kamer\u0119",startvideoblur:"",stopvideoblur:""},transcribing:{ccButtonTooltip:"Uruchom / Zatrzymaj napisy",error:"Przepisywanie si\u0119 nie powiod\u0142o. Prosz\u0119 spr\xf3bowa\u0107 ponownie.",expandedLabel:"",failedToStart:"",labelToolTip:"",off:"",pending:"",start:"",stop:"",tr:""},userMedia:{androidGrantPermissions:"Wybierz Pozw\xf3l, gdy przegl\u0105darka zapyta o pozwolenie.",chromeGrantPermissions:"Wybierz Pozw\xf3l, gdy przegl\u0105darka zapyta o pozwolenie.",edgeGrantPermissions:"Wybierz Tak, gdy przegl\u0105darka zapyta o pozwolenie.",electronGrantPermissions:"Udziel przyzwolenia na u\u017cycie swej kamery i mikrofonu",firefoxGrantPermissions:"Wybierz Udost\u0119pnij wybrane urz\u0105dzenie, gdy przegl\u0105darka zapyta o pozwolenie.",iexplorerGrantPermissions:"Wybierz OK, gdy przegladarka zapyta o pozwolenie.",nwjsGrantPermissions:"Udziel przyzwolenia na u\u017cycie swej kamery i mikrofonu",operaGrantPermissions:"Wybierz Pozw\xf3l, gdy przegl\u0105darka zapyta o pozwolenie.","react-nativeGrantPermissions":"Wybierz Pozw\xf3l, gdy przegl\u0105darka zapyta o pozwolenie.",safariGrantPermissions:"Wybierz OK, gdy przegladarka zapyta o pozwolenie."},videoSIPGW:{busy:"",busyTitle:"Us\u0142uga pokoju jest obecnie zaj\u0119ta",errorAlreadyInvited:"",errorInvite:"",errorInviteFailed:"",errorInviteFailedTitle:"",errorInviteTitle:"",pending:"{{displayName}} zosta\u0142 zaproszony"},videoStatus:{audioOnly:"",audioOnlyExpanded:"",callQuality:"Jako\u015b\u0107 obrazu",hd:"HD",hdTooltip:"",highDefinition:"Wysoka rozdzielczo\u015b\u0107",labelTooiltipNoVideo:"Brak obrazu",labelTooltipAudioOnly:"",ld:"LD",ldTooltip:"",lowDefinition:"Niska rozdzielczo\u015b\u0107",onlyAudioAvailable:"Dost\u0119pny jest tylko d\u017awi\u0119k",onlyAudioSupported:"Obs\u0142ugujemy tylko d\u017awi\u0119k w tej przegl\u0105darce.",p2pEnabled:"Po\u0142\u0105czenie Peer to Peer w\u0142\u0105czone",p2pVideoQualityDescription:"",recHighDefinitionOnly:"",sd:"SD",sdTooltip:"",standardDefinition:"Standardowa rozdzielczo\u015b\u0107"},videothumbnail:{domute:"Wyciszenie",flip:"Odwr\xf3cenie",kick:"Wyrzu\u0107",moderator:"Moderuj\u0105cy",mute:"Uczestnik ma wyciszone audio",muted:"Wyciszony",remoteControl:"Kontrola zdalna",show:"",videomute:"Uczestnik zatrzyma\u0142 kamer\u0119"},welcomepage:{accessibilityLabel:{join:"Stuknij aby do\u0142\u0105czy\u0107",roomname:"Podaj nazw\u0119 sali konferencyjnej"},appDescription:"No dalej, pogaw\u0119dka wideo z ca\u0142ym zespo\u0142em. W rzeczywisto\u015bci, zapro\u015b wszystkich, kt\xf3rych znasz. {{app}} jest w pe\u0142ni zaszyfrowanym, w 100% otwartym rozwi\u0105zaniem wideokonferencyjnym, z kt\xf3rego mo\u017cesz korzysta\u0107 przez ca\u0142y dzie\u0144, codziennie, za darmo - bez konieczno\u015bci posiadania konta.",audioVideoSwitch:{audio:"G\u0142os",video:"Obraz"},calendar:"Kalendarz",connectCalendarButton:"Pod\u0142\u0105cz sw\xf3j kalendarz",connectCalendarText:"",enterRoomTitle:"Rozpocznij nowe spotkanie",onlyAsciiAllowed:"",go:"ID\u0179",join:"DO\u0141\u0104CZ",info:"Informacje",privacy:"Polityka prywatno\u015bci",recentList:"Niedawno",recentListDelete:"Usu\u0144",recentListEmpty:"Twoja ostatnia lista jest obecnie pusta. Rozmawiaj ze swoim zespo\u0142em, a wszystkie ostatnie spotkania znajdziesz tutaj.",reducedUIText:"Witamy w {{app}}!",roomname:"Podaj nazw\u0119 sali konferencyjnej",roomnameHint:"Wprowad\u017a nazw\u0119 lub adres URL pokoju, do kt\xf3rego chcesz do\u0142\u0105czy\u0107. Mo\u017cesz wymy\u015bli\u0107 nazw\u0119, po prostu pozw\xf3l, aby osoby, z kt\xf3rymi si\u0119 spotykasz, zna\u0142y j\u0105 tak, aby wpisa\u0142y t\u0119 sam\u0105 nazw\u0119.",sendFeedback:"Wy\u015blij opini\u0119",terms:"Warunki korzystania",title:"Bezpieczna, w pe\u0142ni funkcjonalna i ca\u0142kowicie bezp\u0142atna wideokonferencja"}}},679,[]); -__d(function(o,n,r,a,e,s,i){e.exports={en:"Ingl\xeas",af:"Afric\xe2ner",bg:"B\xfalgaro",ca:"",cs:"Checo",de:"Alem\xe3o",el:"Grego",enGB:"",eo:"Esperanto",es:"Espanhol",esUS:"",fi:"",fr:"Franc\xeas",frCA:"",hr:"",hy:"Arm\xeanio",it:"Italiano",ja:"Japon\xeas",ko:"Coreano",nl:"",oc:"Occitano",pl:"Polon\xeas",ptBR:"Portugu\xeas (Brasil)",ru:"Russo",sv:"Sueco",tr:"Turco",vi:"Vietnamita",zhCN:"Chin\xeas (China)",zhTW:""}},680,[]); -__d(function(e,a,o,r,i,n,t){i.exports={addPeople:{add:"Convidar",countryNotSupported:"Ainda n\xe3o suportamos este destino.",countryReminder:"Ligando de fora dos EUA? Por favor, certifique-se de come\xe7ar com o c\xf3digo do pa\xeds!",disabled:"Voc\xea n\xe3o pode convidar pessoas.",failedToAdd:"Falha em adicionar participantes",footerText:"Discagem est\xe1 desativada.",loading:"Procurando por pessoas e n\xfameros de telefone",loadingNumber:"Validando o n\xfamero de telefone",loadingPeople:"Procurando por pessoas para convidar",noResults:"Nenhum resultado de busca correspondente",noValidNumbers:"Por favor, digite um n\xfamero de telefone",searchNumbers:"Adicionar n\xfameros de telefone",searchPeople:"Pesquisar pessoas",searchPeopleAndNumbers:"Pesquisar por pessoas ou adicionar seus n\xfameros de telefone",telephone:"Telefone: {{number}}",title:"Convide pessoas para sua reuni\xe3o"},audioDevices:{bluetooth:"Bluetooth",headphones:"Fones de ouvido",phone:"Celular",speaker:"Alto-falantes",none:""},audioOnly:{audioOnly:"Largura de banda baixa"},calendarSync:{addMeetingURL:"Adicionar um link da reuni\xe3o",confirmAddLink:"Gostaria de adicionar um link do Jitsi a esse evento?",error:{appConfiguration:"A integra\xe7\xe3o com calend\xe1rio n\xe3o est\xe1 configurada adequadamente.",generic:"Ocorreu um erro. Verifique as configura\xe7\xf5es de calend\xe1rio ou tente atualizar o calend\xe1rio.",notSignedIn:"Ocorreu um erro durante a autentica\xe7\xe3o para visualiza\xe7\xe3o dos eventos do calend\xe1rio. Verifique as configura\xe7\xf5es de calend\xe1rio e tente entrar novamente."},join:"Participar",joinTooltip:"Participar da reuni\xe3o",nextMeeting:"pr\xf3xima reuni\xe3o",noEvents:"N\xe3o h\xe1 eventos pr\xf3ximos agendados.",ongoingMeeting:"reuni\xe3o em progresso",permissionButton:"Abrir configura\xe7\xf5es",permissionMessage:"Permiss\xe3o do calend\xe1rio \xe9 requerida para ver suas reuni\xf5es na aplica\xe7\xe3o.",refresh:"Atualizar calend\xe1rio",today:"Hoje"},chat:{error:"Erro: sua mensagem \"{{originalText}}\" n\xe3o foi enviada. Motivo: {{error}}",messagebox:"Digite uma mensagem",nickname:{popover:"Escolha um apelido",title:"Digite um apelido para usar o bate-papo"},title:"Bate-papo"},connectingOverlay:{joiningRoom:"Conectando voc\xea \xe0 reuni\xe3o\u2026"},connection:{ATTACHED:"Anexado",AUTHENTICATING:"Autenticando",AUTHFAIL:"Falha de autentica\xe7\xe3o",CONNECTED:"Conectado",CONNECTING:"Conectando",CONNFAIL:"Falha de conex\xe3o",DISCONNECTED:"Desconectado",DISCONNECTING:"Desconectando",ERROR:"Erro",RECONNECTING:"Ocorreu um problema de rede. Reconectando..."},connectionindicator:{address:"Endere\xe7o:",bandwidth:"Largura de banda estimada:",bitrate:"Taxa de bits:",bridgeCount:"Servidores: ",connectedTo:"Conectado a:",framerate:"Taxa de quadros:",less:"Mostrar menos",localaddress:"Endere\xe7o local:",localaddress_plural:"Endere\xe7os locais:",localport:"Porta local:",localport_plural:"Portas locais:",more:"Mostrar mais",packetloss:"Perda de pacote:",quality:{good:"Boa",inactive:"Inativo",lost:"Perdido",nonoptimal:"N\xe3o \xf3tima",poor:"Ruim"},remoteaddress:"Endere\xe7o remoto:",remoteaddress_plural:"Endere\xe7os remotos:",remoteport:"Porta remota:",remoteport_plural:"Portas remotas:",resolution:"Resolu\xe7\xe3o:",status:"Conex\xe3o:",transport:"Transporte:",transport_plural:"Transportes:"},dateUtils:{earlier:"Mais cedo",today:"Hoje",yesterday:"Ontem"},deepLinking:{appNotInstalled:"Voc\xea precisa do aplicativo m\xf3vel {{app}} para participar da reuni\xe3o no seu telefone.",description:"Nada acontece? Estamos tentando iniciar sua reuni\xe3o no aplicativo desktop {{app}}. Tente novamente ou inicie ele na aplica\xe7\xe3o web {{app}}.",descriptionWithoutWeb:"Nada aconteceu? Tentamos iniciar sua reuni\xe3o no aplicativo de desktop {{app}}.",downloadApp:"Baixe o Aplicativo",launchWebButton:"Iniciar na web",openApp:"Continue na aplica\xe7\xe3o",title:"Iniciando sua reuni\xe3o no {{app}}...",tryAgainButton:"Tente novamente no desktop"},defaultLink:"ex.: {{url}}",defaultNickname:"ex.: Jo\xe3o Pedro",deviceError:{cameraError:"Falha ao acessar sua c\xe2mera",cameraPermission:"Erro ao obter permiss\xe3o para a c\xe2mera",microphoneError:"Falha ao acessar seu microfone",microphonePermission:"Erro ao obter permiss\xe3o para o microfone"},deviceSelection:{noPermission:"Permiss\xe3o n\xe3o concedida",previewUnavailable:"Visualiza\xe7\xe3o indispon\xedvel",selectADevice:"Selecione um dispositivo",testAudio:"Tocar um som de teste"},dialog:{accessibilityLabel:{liveStreaming:"Transmiss\xe3o ao vivo"},allow:"Permitir",alreadySharedVideoMsg:"Outro participante j\xe1 est\xe1 compartilhando um v\xeddeo. Esta confer\xeancia permite apenas um v\xeddeo compartilhado por vez.",alreadySharedVideoTitle:"Somente um v\xeddeo compartilhado \xe9 permitido por vez",applicationWindow:"Janela de aplicativo",Back:"Voltar",cameraConstraintFailedError:"Sua c\xe2mera n\xe3o satisfaz algumas condi\xe7\xf5es necess\xe1rias.",cameraNotFoundError:"A c\xe2mera n\xe3o foi encontrada.",cameraNotSendingData:"Estamos incapazes de acessar sua c\xe2mera. Verifique se outra aplica\xe7\xe3o est\xe1 usando este dispositivo, selecione outro dispositivo do menu de configura\xe7\xf5es ou recarregue a aplica\xe7\xe3o.",cameraNotSendingDataTitle:"Incapaz de acessar a c\xe2mera",cameraPermissionDeniedError:"N\xe3o foi permitido acessar a sua c\xe2mera. Voc\xea ainda pode entrar na confer\xeancia, mas sem exibir o seu v\xeddeo. Clique no bot\xe3o da c\xe2mera para tentar reparar.",cameraUnknownError:"N\xe3o pode usar a c\xe2mera por uma raz\xe3o desconhecida.",cameraUnsupportedResolutionError:"Sua c\xe2mera n\xe3o suporta a resolu\xe7\xe3o de v\xeddeo requerida.",Cancel:"Cancelar",close:"Fechar",conferenceDisconnectMsg:"Voc\xea pode querer verificar sua conex\xe3o de rede. Reconectando em {{seconds}} segundos ...",conferenceDisconnectTitle:"Voc\xea foi desconectado.",conferenceReloadMsg:"Estamos tentando consertar isto. Reconectando em {{seconds}} segundos...",conferenceReloadTitle:"Infelizmente, algo deu errado.",confirm:"Confirmar",confirmNo:"N\xe3o",confirmYes:"Sim",connectError:"Oops! Alguma coisa est\xe1 errada e n\xf3s n\xe3o pudemos conectar \xe0 confer\xeancia.",connectErrorWithMsg:"Oops! Alguma coisa est\xe1 errada e n\xe3o podemos conectar \xe0 confer\xeancia: {{msg}}",connecting:"Conectando",contactSupport:"Contate o suporte",copy:"Copiar",dismiss:"Dispensar",displayNameRequired:"Oi! Qual o seu nome?",done:"Feito",enterDisplayName:"Digite seu nome aqui",error:"Erro",externalInstallationMsg:"Voc\xea precisa instalar nossa extens\xe3o de compartilhamento de tela.",externalInstallationTitle:"Extens\xe3o requerida",goToStore:"V\xe1 para a loja virtual",gracefulShutdown:"O sistema est\xe1 em manuten\xe7\xe3o. Por favor tente novamente mais tarde.",IamHost:"Eu sou o anfitri\xe3o",incorrectRoomLockPassword:"Senha incorreta",incorrectPassword:"Usu\xe1rio ou senha incorretos",inlineInstallationMsg:"Voc\xea precisa instalar nossa extens\xe3o de compartilhamento de tela.",inlineInstallExtension:"Instalar agora",internalError:"Oops! Alguma coisa est\xe1 errada. O seguinte erro ocorreu: {{error}}",internalErrorTitle:"Erro interno",kickMessage:"Voc\xea pode contatar com {{participantDisplayName}} para obter mais detalhes.",kickParticipantButton:"Remover",kickParticipantDialog:"Tem certeza de que deseja remover este participante?",kickParticipantTitle:"Chutar este participante?",kickTitle:"Ai! {{participantDisplayName}} expulsou voc\xea da reuni\xe3o",liveStreaming:"Transmiss\xe3o ao Vivo",liveStreamingDisabledForGuestTooltip:"Visitantes n\xe3o podem iniciar transmiss\xe3o ao vivo.",liveStreamingDisabledTooltip:"Iniciar transmiss\xe3o ao vivo desativada.",lockMessage:"Falha ao travar a confer\xeancia.",lockRoom:"Adicionar reuni\xe3o $t(lockRoomPasswordUppercase)",lockTitle:"Bloqueio falhou",logoutQuestion:"Deseja encerrar a sess\xe3o e finalizar a confer\xeancia?",logoutTitle:"Encerrar sess\xe3o",maxUsersLimitReached:"O limite para o n\xfamero m\xe1ximo de participantes foi atingido. A confer\xeancia est\xe1 cheia. Entre em contato com o propriet\xe1rio da reuni\xe3o ou tente novamente mais tarde!",maxUsersLimitReachedTitle:"Limite m\xe1ximo de participantes atingido",micConstraintFailedError:"Seu microfone n\xe3o satisfaz algumas condi\xe7\xf5es necess\xe1rias.",micNotFoundError:"O microfone n\xe3o foi encontrado.",micNotSendingData:"V\xe1 para as configura\xe7\xf5es do seu computador para ativar o som do microfone e ajustar seu n\xedvel",micNotSendingDataTitle:"Seu microfone est\xe1 mudo pelas configura\xe7\xf5es do sistema",micPermissionDeniedError:"N\xe3o foi permitido acessar o seu microfone. Voc\xea ainda pode entrar na confer\xeancia, mas sem enviar \xe1udio. Clique no bot\xe3o do microfone para tentar reparar.",micUnknownError:"N\xe3o pode usar o microfone por uma raz\xe3o desconhecida.",muteParticipantBody:"Voc\xea n\xe3o est\xe1 habilitado para tirar o mudo deles, mas eles podem tirar o mudo deles mesmos a qualquer tempo.",muteParticipantButton:"Mudo",muteParticipantDialog:"Tem certeza de que deseja silenciar este participante? Voc\xea n\xe3o poder\xe1 desfazer isso, mas o participante pode reabilitar o \xe1udio a qualquer momento.",muteParticipantTitle:"Deixar mudo este participante?",Ok:"Ok",passwordLabel:"$t(lockRoomPasswordUppercase)",passwordNotSupported:"A configura\xe7\xe3o de uma reuni\xe3o $t(lockRoomPassword) n\xe3o \xe9 suportada.",passwordNotSupportedTitle:"$t(lockRoomPasswordUppercase) n\xe3o suportado",passwordRequired:"$t(lockRoomPasswordUppercase) requerido",popupError:"Seu navegador est\xe1 bloqueando janelas popup deste site. Habilite os popups nas configura\xe7\xf5es de seguran\xe7a no seu navegador e tente novamente.",popupErrorTitle:"Popup bloqueado",recording:"Gravando",recordingDisabledForGuestTooltip:"Visitantes n\xe3o podem iniciar grava\xe7\xf5es.",recordingDisabledTooltip:"Iniciar grava\xe7\xe3o desativada.",rejoinNow:"Reconectar agora",remoteControlAllowedMessage:"{{user}} aceitou sua requisi\xe7\xe3o de controle remoto!",remoteControlDeniedMessage:"{{user}} rejeitou sua requisi\xe7\xe3o de controle remoto!",remoteControlErrorMessage:"Um erro ocorreu enquanto tentava requerer a permiss\xe3o de controle remoto de {{user}}!",remoteControlRequestMessage:"Deseja permitir que {{user}} controle remotamente sua \xe1rea de trabalho?",remoteControlShareScreenWarning:"Note que se voc\xea pressionar \"Permitir\" voc\xea vai compartilhar sua tela!",remoteControlStopMessage:"A sess\xe3o de controle remoto terminou!",remoteControlTitle:"Conex\xe3o de \xe1rea de trabalho remota",Remove:"Remover",removePassword:"Remove $t(lockRoomPassword)",removeSharedVideoMsg:"Deseja remover seu v\xeddeo compartilhado?",removeSharedVideoTitle:"Remover v\xeddeo compartilhado",reservationError:"Erro de sistema de reserva",reservationErrorMsg:"C\xf3digo do erro: {{code}}, mensagem: {{msg}}",retry:"Tentar novamente",screenSharingFailedToInstall:"Oops! Falhou a instala\xe7\xe3o da extens\xe3o de compartilhamento de tela.",screenSharingFailedToInstallTitle:"A extens\xe3o de compartilhamento de tela falhou ao instalar",screenSharingFirefoxPermissionDeniedError:"Algo deu errado enquanto est\xe1vamos tentando compartilhar sua tela. Por favor, certifique-se de que voc\xea nos deu permiss\xe3o para faz\xea-lo. ",screenSharingFirefoxPermissionDeniedTitle:"Opa! N\xe3o foi poss\xedvel iniciar o compartilhamento de tela.",screenSharingPermissionDeniedError:"Oops! Alguma coisa est\xe1 errada com suas permiss\xf5es de compartilhamento de tela. Recarregue e tente de novo.",serviceUnavailable:"Servi\xe7o indispon\xedvel",sessTerminated:"Chamada terminada",Share:"Compartilhar",shareVideoLinkError:"Por favor, forne\xe7a um link do youtube correto.",shareVideoTitle:"Compartilhar um v\xeddeo",shareYourScreen:"Compartilhar sua tela",shareYourScreenDisabled:"Compartilhamento de tela desativada.",shareYourScreenDisabledForGuest:"Visitantes n\xe3o podem compartilhar tela.",startLiveStreaming:"Iniciar transmiss\xe3o ao vivo",startRecording:"Iniciar grava\xe7\xe3o",startRemoteControlErrorMessage:"Um erro ocorreu enquanto tentava iniciar uma sess\xe3o de controle remoto!",stopLiveStreaming:"Parar transmiss\xe3o ao vivo",stopRecording:"Parar a grava\xe7\xe3o",stopRecordingWarning:"Tem certeza que deseja parar a grava\xe7\xe3o?",stopStreamingWarning:"Tem certeza que deseja parar a transmiss\xe3o ao vivo?",streamKey:"Chave para transmiss\xe3o ao vivo",Submit:"Enviar",thankYou:"Obrigado por usar o {{appName}}!",token:"token",tokenAuthFailed:"Desculpe, voc\xea n\xe3o est\xe1 autorizado a entrar nesta chamada.",tokenAuthFailedTitle:"Falha de autentica\xe7\xe3o",transcribing:"Transcrevendo",unlockRoom:"Remove a reuni\xe3o $t(lockRoomPassword)",userPassword:"senha do usu\xe1rio",WaitForHostMsg:"A confer\xeancia {{room}} ainda n\xe3o come\xe7ou. Se voc\xea \xe9 o anfitri\xe3o, fa\xe7a a autentica\xe7\xe3o. Do contr\xe1rio, aguarde a chegada do anfitri\xe3o.",WaitForHostMsgWOk:"A confer\xeancia {{room}} ainda n\xe3o come\xe7ou. Se voc\xea \xe9 o anfitri\xe3o, pressione Ok para autenticar. Do contr\xe1rio, aguarde a chegada do anfitri\xe3o.",WaitingForHost:"Esperando o hospedeiro...",Yes:"Sim",yourEntireScreen:"Toda sua tela"},dialOut:{statusMessage:"est\xe1 agora {{status}}"},feedback:{average:"M\xe9dia",bad:"Ruim",detailsLabel:"Nos conte mais sobre isso.",good:"Boa",rateExperience:"Avalie sua experi\xeancia na reuni\xe3o",veryBad:"Muito ruim",veryGood:"Muito boa"},incomingCall:{answer:"Responder",audioCallTitle:"Chamada recebida",decline:"Dispensar",productLabel:"do Jitsi Meet",videoCallTitle:"Chamada de v\xeddeo recebida"},info:{accessibilityLabel:"Mostrar info",addPassword:"Adicione $t(lockRoomPassword)",cancelPassword:"Cancela $t(lockRoomPassword)",conferenceURL:"Link:",country:"Pa\xeds",dialANumber:"Para entrar na reuni\xe3o, disque um desses n\xfameros e depois insira o PIN.",dialInConferenceID:"PIN:",dialInNotSupported:"Desculpe, a discagem n\xe3o \xe9 atualmente suportada.",dialInNumber:"Discar:",dialInSummaryError:"Ocorreu um erro ao buscar a informa\xe7\xe3o de discagem. Tente novamente mais tarde.",dialInTollFree:"Chamada gratuita",genericError:"Oops, alguma coisa deu errado.",inviteLiveStream:"Para ver a transmiss\xe3o ao vivo da reuni\xe3o, clique no link: {{url}}",invitePhone:"Para participar por telefone, toque aqui: {{number}} ,, {{conferenceID}} # \\ n",invitePhoneAlternatives:"Procurando um n\xfamero de discagem diferente?\nVeja os n\xfameros de discagem da reuni\xe3o: {{url}} \n\n\nSe voc\xea tamb\xe9m estiver discando atrav\xe9s de um telefone da sala, participe sem conectar-se ao \xe1udio: {{silentUrl}}",inviteURLFirstPartGeneral:"Voc\xea foi convidado para uma reuni\xe3o.",inviteURLFirstPartPersonal:"{{name}} est\xe1 convidando voc\xea para uma reuni\xe3o.\n",inviteURLSecondPart:"\nEntre na reuni\xe3o:\n{{url}}\n",liveStreamURL:"Transmiss\xe3o ao vivo:",moreNumbers:"Mais n\xfameros",noNumbers:"Sem n\xfameros de discagem.",noPassword:"Nenhum",noRoom:"Nenhuma sala foi especificada para entrar.",numbers:"N\xfameros de discagem",password:"$t(lockRoomPasswordUppercase):",title:"Compartilhar",tooltip:"Compartilhar link e discagem para esta reuni\xe3o",label:"Informa\xe7\xf5es da reuni\xe3o"},inviteDialog:{alertText:"N\xe3o foi poss\xedvel convidar alguns participantes.",header:"Convidar",searchCallOnlyPlaceholder:"Digite o n\xfamero do telefone",searchPeopleOnlyPlaceholder:"Buscar participantes",searchPlaceholder:"Participante ou n\xba de telefone",send:"Enviar"},inlineDialogFailure:{msg:"Tivemos um pequeno problema.",retry:"Tentar novamente",support:"Suporte",supportMsg:"Se isso continuar acontecendo, chegar a"},keyboardShortcuts:{focusLocal:"Focar no seu v\xeddeo",focusRemote:"Focar no v\xeddeo de outro participante",fullScreen:"Entrar ou sair da tela cheia",keyboardShortcuts:"Atalhos de teclado",localRecording:"Mostrar ou ocultar controles de grava\xe7\xe3o local",mute:"Deixar mudo ou n\xe3o o microfone",pushToTalk:"Pressione para falar",raiseHand:"Erga ou baixe sua m\xe3o",showSpeakerStats:"Exibir estat\xedsticas do alto falante",toggleChat:"Abrir ou fechar o painel de bate-papo",toggleFilmstrip:"Mostrar ou ocultar miniaturas de v\xeddeo",toggleScreensharing:"Trocar entre c\xe2mera e compartilhamento de tela",toggleShortcuts:"Mostrar ou ocultar atalhos de teclado",videoMute:"Iniciar ou parar sua c\xe2mera",videoQuality:"Gerenciar qualidade da chamada"},liveStreaming:{busy:"Estamos trabalhando para liberar os recursos de transmiss\xe3o. Tente novamente em alguns minutos.",busyTitle:"Todas as transmiss\xf5es est\xe3o atualmente ocupadas",changeSignIn:"Alternar contas.",choose:"Escolha uma transmiss\xe3o ao vivo",chooseCTA:"Escolha uma op\xe7\xe3o de transmiss\xe3o. Voc\xea est\xe1 conectado atualmente como {{email}}.",enterStreamKey:"Insira sua chave de transmiss\xe3o ao vivo do YouTube aqui.",error:"Falha na transmiss\xe3o ao vivo. Tente de novo.",errorAPI:"Ocorreu um erro ao acessar suas transmiss\xf5es do YouTube. Por favor tente logar novamente.",errorLiveStreamNotEnabled:"Transmiss\xe3o ao vivo n\xe3o est\xe1 ativada em {{email}}. Ative a transmiss\xe3o ao vivo ou registre numa conta com transmiss\xe3o ao vivo ativada.",expandedOff:"A transmiss\xe3o ao vivo foi encerrada",expandedOn:"A reuni\xe3o est\xe1 sendo transmitida pelo YouTube.",expandedPending:"Iniciando a transmiss\xe3o ao vivo...",failedToStart:"Falha ao iniciar a transmiss\xe3o ao vivo",getStreamKeyManually:"N\xe3o conseguimos buscar nenhuma transmiss\xe3o ao vivo. Tente obter sua chave de transmiss\xe3o ao vivo no YouTube.",invalidStreamKey:"A senha para transmiss\xe3o ao vivo pode estar incorreta.",off:"Transmiss\xe3o ao vivo encerrada",offBy:"",on:"Transmiss\xe3o ao Vivo",onBy:"",pending:"Iniciando Transmiss\xe3o ao Vivo...",serviceName:"Servi\xe7o de Transmiss\xe3o ao Vivo",signedInAs:"Voc\xea est\xe1 conectado como:",signIn:"Fa\xe7a login no Google",signInCTA:"Fa\xe7a login ou insira sua chave de transmiss\xe3o ao vivo do YouTube.",signOut:"Sair",start:"Iniciar uma transmiss\xe3o ao vivo",streamIdHelp:"O que \xe9 isso?",unavailableTitle:"Transmiss\xe3o ao vivo indispon\xedvel"},localRecording:{clientState:{off:"Desligado",on:"Ligado",unknown:"Desconhecido"},dialogTitle:"Controles da Grava\xe7\xe3o Local",duration:"Dura\xe7\xe3o",durationNA:"N/D",encoding:"Codificando",label:"LOR",labelToolTip:"Grava\xe7\xe3o local ativada",localRecording:"Grava\xe7\xe3o local",me:"Eu",messages:{engaged:"Grava\xe7\xe3o local iniciada.",finished:"Sess\xe3o de grava\xe7\xe3o {{token}} terminada. Por favor, envie o arquivo gravado para o moderador.",finishedModerator:"Sess\xe3o de grava\xe7\xe3o {{token}} terminada. A grava\xe7\xe3o da faixa local foi salva. Por favor, pe\xe7a aos outros participantes para enviar suas grava\xe7\xf5es.",notModerator:"Voc\xea n\xe3o \xe9 o moderador. Voc\xea n\xe3o pode iniciar ou parar a grava\xe7\xe3o local."},moderator:"Moderador",no:"N\xe3o",participant:"Participante",participantStats:"Estat\xedsticas dos Participantes",sessionToken:"Token de Sess\xe3o",start:"Iniciar grava\xe7\xe3o",stop:"Parar a Grava\xe7\xe3o",yes:"Sim"},lockRoomPassword:"senha",lockRoomPasswordUppercase:"Senha",me:"eu",notify:{connectedOneMember:"{{name}} entrou na reuni\xe3o",connectedThreePlusMembers:"{{name}} e outros {{count}} entraram na reuni\xe3o",connectedTwoMembers:"{{first}} e {{second}} entraram na reuni\xe3o",disconnected:"desconectado",focus:"Foco da confer\xeancia",focusFail:"{{component}} n\xe3o dispon\u0129vel - tente em {{ms}} seg.",grantedTo:"Direitos de moderador concedido para {{to}}!",invitedOneMember:"{{displayName}} foi convidado",invitedThreePlusMembers:"{{name}} e {{count}} outros foram convidados",invitedTwoMembers:"{{first}} e {{second}} foram convidados",kickParticipant:"{{kicked}} foi chutado por {{kicker}}",me:"Eu",moderator:"Direitos de moderador concedidos!",muted:"Voc\xea iniciou uma conversa em mudo.",mutedTitle:"Voc\xea est\xe1 mudo!",mutedRemotelyTitle:"Voc\xea foi silenciado por {{participantDisplayName}}!",mutedRemotelyDescription:"Voc\xea sempre pode ativar o som quando estiver pronto para falar. Retire o som quando terminar para manter o ru\xeddo longe da reuni\xe3o.",passwordRemovedRemotely:"$t(lockRoomPasswordUppercase) removido por outro participante",passwordSetRemotely:"$t(lockRoomPasswordUppercase) definido por outro participante",raisedHand:"{{name}} gostaria de falar.",somebody:"Algu\xe9m",startSilentTitle:"Voc\xea entrou sem sa\xedda de \xe1udio!",startSilentDescription:"Volte \xe0 reuni\xe3o para habilitar o \xe1udio",suboptimalBrowserWarning:"",suboptimalExperienceTitle:"Alerta do navegador",unmute:"Ativar som",newDeviceCameraTitle:"Nova c\xe2mera detectada",newDeviceAudioTitle:"Novo dispositivo de \xe1udio detectado",newDeviceAction:"Usar"},passwordSetRemotely:"Definido por outro participante",passwordDigitsOnly:"At\xe9 {{number}} d\xedgitos",poweredby:"distribu\xeddo por",presenceStatus:{busy:"Ocupado",calling:"Chamando...",connected:"Conectado",connecting:"Conectando...",connecting2:"Conectando*...",disconnected:"Desconectado",expired:"Expirado",ignored:"Ignorado",initializingCall:"Iniciando Chamada...",invited:"Convidar",rejected:"Rejeitado",ringing:"Tocando..."},profile:{setDisplayNameLabel:"Definir seu nome de exibi\xe7\xe3o",setEmailInput:"Digite e-mail",setEmailLabel:"Definir seu email de gravatar",title:"Perfil"},raisedHand:"Gostaria de falar",recording:{authDropboxText:"Enviar para o Dropbox.",availableSpace:"Espa\xe7o dispon\xedvel: {{spaceLeft}} MB (aproximadamente {{duration}} minutos de grava\xe7\xe3o)",beta:"BETA",busy:"Estamos trabalhando para liberar recursos de grava\xe7\xe3o. Tente novamente em alguns minutos.",busyTitle:"Todas as grava\xe7\xf5es est\xe3o atualmente ocupadas",error:"A grava\xe7\xe3o falhou. Tente novamente.",expandedOff:"Grava\xe7\xe3o finalizada",expandedOn:"A reuni\xe3o est\xe1 sendo gravada.",expandedPending:"Iniciando grava\xe7\xe3o...",failedToStart:"Falha ao iniciar a grava\xe7\xe3o",fileSharingdescription:"Compartilhar grava\xe7\xe3o com participantes da reuni\xe3o",live:"AOVIVO",loggedIn:"Conectado como {{userName}}",off:"Grava\xe7\xe3o parada",offBy:"",on:"Gravando",onBy:"",pending:"Preparando para gravar a reuni\xe3o...",rec:"REC",serviceDescription:"Sua grava\xe7\xe3o ser\xe1 salva pelo servi\xe7o de grava\xe7\xe3o",serviceName:"Servi\xe7o de grava\xe7\xe3o",signIn:"Entrar",signOut:"Sair",unavailable:"Oops! O {{serviceName}} est\xe1 indispon\xedvel. Estamos trabalhando para resolver o problema. Por favor, tente mais tarde.",unavailableTitle:"Grava\xe7\xe3o indispon\xedvel"},sectionList:{pullToRefresh:"Puxe para atualizar"},settings:{calendar:{about:"A integra\xe7\xe3o do calend\xe1rio {{appName}} \xe9 usada para acessar com seguran\xe7a o seu calend\xe1rio para que ele possa ler os pr\xf3ximos eventos.",disconnect:"Desconectar",microsoftSignIn:"Entrar com Microsoft",signedIn:"Atualmente acessando eventos do calend\xe1rio para {{email}}. Clique no bot\xe3o Desconectar abaixo para parar de acessar os eventos da agenda.",title:"Calend\xe1rio"},devices:"Dispositivos",followMe:"Todos me seguem",language:"Idioma",loggedIn:"Conectado como {{name}}",moderator:"Moderador",more:"Mais",name:"Nome",noDevice:"Nenhum",selectAudioOutput:"Sa\xedda de \xe1udio",selectCamera:"C\xe2mera",selectMic:"Microfone",startAudioMuted:"Todos iniciam mudos",startVideoMuted:"Todos iniciam ocultos",title:"Configura\xe7\xf5es"},settingsView:{alertOk:"OK",alertTitle:"Aten\xe7\xe3o",alertURLText:"A URL digitada do servidor \xe9 inv\xe1lida",buildInfoSection:"Informa\xe7\xf5es de compila\xe7\xe3o",conferenceSection:"Confer\xeancia",displayName:"Nome de exibi\xe7\xe3o",email:"E-mail",header:"Configura\xe7\xf5es",profileSection:"Perfil",serverURL:"URL do servidor",startWithAudioMuted:"Iniciar sem \xe1udio",startWithVideoMuted:"Iniciar sem v\xeddeo",version:"Vers\xe3o"},share:{dialInfoText:"\n\n=====\n\nDeseja apenas discar no seu telefone?\n\n{{defaultDialInNumber}}Clique neste link para ver os n\xfameros de telefone para esta reuni\xe3o\n{{dialInfoPageUrl}}",mainText:"Clique no seguinte link para entrar na reuni\xe3o:{{roomUrl}}\n"},speaker:"Alto-falantes",speakerStats:{hours:"{{count}}h",minutes:"{{count}}m",name:"Nome",seconds:"{{count}}s",speakerStats:"Estat\xedsticas do Apresentador",speakerTime:"Tempo do Apresentador"},startupoverlay:{policyText:" ",title:"O {{app}} precisa usar seu microfone e c\xe2mera."},suspendedoverlay:{rejoinKeyTitle:"Reconectar",text:"Pressione o bot\xe3o Reentrar para reconectar.",title:"Sua chamada de v\xeddeo foi interrompida, porque seu computador foi dormir."},toolbar:{accessibilityLabel:{audioOnly:"Alternar para apenas \xe1udio",audioRoute:"Selecionar o dispositivo de som",callQuality:"Gerenciar qualidade do v\xeddeo",cc:"Alternar legendas",chat:"Alternar para janela de chat",document:"Alternar para documento compartilhado",feedback:"Deixar feedback",fullScreen:"Alternar para tela cheia",hangup:"Sair da chamada",invite:"Convidar pessoas",kick:"Remover participante",localRecording:"Alternar controles de grava\xe7\xe3o local",lockRoom:"Ativar/desativar senha de reuni\xe3o",moreActions:"Alternar mais menu de a\xe7\xf5es",moreActionsMenu:"Menu de mais a\xe7\xf5es",mute:"Alternar mudo do \xe1udio",pip:"Alternar modo Picture-in-Picture",profile:"Editar seu perfil",raiseHand:"Alternar levantar a m\xe3o",recording:"Alternar grava\xe7\xe3o",remoteMute:"Silenciar participante",Settings:"Alternar configura\xe7\xf5es",sharedvideo:"Alternar compartilhamento de v\xeddeo do Youtube",shareRoom:"Convidar algu\xe9m",shareYourScreen:"Alternar compartilhamento de tela",shortcuts:"Alternar atalhos",show:"Mostrar no palco",speakerStats:"Alternar estat\xedsticas do apresentador",tileView:"Alternar visualiza\xe7\xe3o em blocos",toggleCamera:"Alternar c\xe2mera",videomute:"Alternar mudo do v\xeddeo",videoblur:"Alternar desfoque de v\xeddeo"},addPeople:"Adicionar pessoas \xe0 sua chamada",audioOnlyOff:"",audioOnlyOn:"",audioRoute:"Selecionar o dispositivo de som",authenticate:"Autenticar",callQuality:"Gerenciar qualidade do v\xeddeo",chat:"Abrir ou fechar o bate-papo",closeChat:"Fechar chat",documentClose:"Fechar documento compartilhado",documentOpen:"Abrir documento compartilhado",enterFullScreen:"Ver em tela cheia",enterTileView:"Entrar em exibi\xe7\xe3o de bloco",exitFullScreen:"Sair da tela cheia",exitTileView:"Sair de exibi\xe7\xe3o de bloco",feedback:"Deixar feedback",hangup:"Sair",invite:"Convidar pessoas",login:"Iniciar sess\xe3o",logout:"Encerrar sess\xe3o",lowerYourHand:"Baixar a m\xe3o",moreActions:"Mais a\xe7\xf5es",mute:"Mudo / N\xe3o mudo",openChat:"Abrir chat",pip:"Entrar em modo Quadro-a-Quadro",profile:"Editar seu perfil",raiseHand:"Erguer / Baixar sua m\xe3o",raiseYourHand:"Levantar a m\xe3o",Settings:"Configura\xe7\xf5es",sharedvideo:"Compartilhar um v\xeddeo do YouTube",shareRoom:"Convidar algu\xe9m",shortcuts:"Ver atalhos",speakerStats:"Estat\xedsticas do Apresentador",startScreenSharing:"Iniciar compart. de tela",startSubtitles:"Iniciar legendas",stopScreenSharing:"Parar compart. de tela",stopSubtitles:"Parar legendas",stopSharedVideo:"Parar v\xeddeo do YouTube",talkWhileMutedPopup:"Tentando falar? Voc\xea est\xe1 em mudo.",tileViewToggle:"Alternar visualiza\xe7\xe3o em blocos",toggleCamera:"Alternar c\xe2mera",videomute:"Iniciar ou parar a c\xe2mera",startvideoblur:"Desfocar meu plano de fundo",stopvideoblur:"Desativar desfoque de fundo"},transcribing:{ccButtonTooltip:"Iniciar/parar legendas",error:"Transcri\xe7\xe3o falhou. Tente novamente.",expandedLabel:"Transcri\xe7\xe3o ativada",failedToStart:"Transcri\xe7\xe3o falhou ao iniciar",labelToolTip:"A reuni\xe3o esta sendo transcrita",off:"Transcri\xe7\xe3o parada",pending:"Preparando a transcri\xe7\xe3o da reuni\xe3o...",start:"Exibir legendas",stop:"N\xe3o exibir legendas",tr:"TR"},userMedia:{androidGrantPermissions:"Selecione Permitir quando seu navegador perguntar pelas permiss\xf5es.",chromeGrantPermissions:"Selecione Permitir quando seu navegador perguntar pelas permiss\xf5es.",edgeGrantPermissions:"Selecione Sim quando seu navegador perguntar pelas permiss\xf5es.",electronGrantPermissions:"D\xea as permiss\xf5es para usar sua c\xe2mera e microfone",firefoxGrantPermissions:"Selecione Compartilhar Dispositivos Selecionados quando seu navegador perguntar pelas permiss\xf5es.",iexplorerGrantPermissions:"Selecione OK quando seu navegador perguntar pelas permiss\xf5es.",nwjsGrantPermissions:"D\xea as permiss\xf5es para usar sua c\xe2mera e microfone",operaGrantPermissions:"Selecione Permitir quando seu navegador perguntar pelas permiss\xf5es.","react-nativeGrantPermissions":"Selecione Permitir quando seu navegador perguntar pelas permiss\xf5es.",safariGrantPermissions:"Selecione OK quando seu navegador perguntar pelas permiss\xf5es."},videoSIPGW:{busy:"Estamos trabalhando para liberar recursos. Por favor, tente novamente em alguns minutos.",busyTitle:"O servi\xe7o da sala est\xe1 ocupado",errorAlreadyInvited:"{{displayName}} j\xe1 convidado",errorInvite:"A confer\xeancia ainda n\xe3o foi estabelecida. Por favor, tente mais tarde.",errorInviteFailed:"Estamos trabalhando para resolver o problema. Por favor, tente mais tarde.",errorInviteFailedTitle:"Convite para {{displayName}} falhou",errorInviteTitle:"Erro no convite da sala",pending:"{{displayName}} foi convidado"},videoStatus:{audioOnly:"AUD",audioOnlyExpanded:"",callQuality:"Qualidade de v\xeddeo",hd:"HD",hdTooltip:"Ver v\xeddeo em alta defini\xe7\xe3o",highDefinition:"Alta defini\xe7\xe3o (HD)",labelTooiltipNoVideo:"Sem v\xeddeo",labelTooltipAudioOnly:"",ld:"LD",ldTooltip:"Ver v\xeddeo em baixa defini\xe7\xe3o",lowDefinition:"Baixa defini\xe7\xe3o (LD)",onlyAudioAvailable:"Somente \xe1udio dispon\xedvel",onlyAudioSupported:"Suportamos somente \xe1udio neste navegador.",p2pEnabled:"Ponto-a-ponto habilitada",p2pVideoQualityDescription:"No modo ponto a ponto, a qualidade do v\xeddeo recebido s\xf3 pode ser alternada entre alta e apenas \xe1udio. Outras configura\xe7\xf5es n\xe3o ser\xe3o respeitadas at\xe9 que o ponto a ponto seja encerrado.",recHighDefinitionOnly:"Prefer\xeancia para alta defini\xe7\xe3o",sd:"SD",sdTooltip:"Ver v\xeddeo em defini\xe7\xe3o padr\xe3o",standardDefinition:"Defini\xe7\xe3o padr\xe3o"},videothumbnail:{domute:"Mudo",flip:"Inverter",kick:"Expulsar",moderator:"Moderador",mute:"Participante est\xe1 mudo",muted:"Mudo",remoteControl:"Controle remoto",show:"Mostrar no palco",videomute:"O participante parou a c\xe2mera"},welcomepage:{accessibilityLabel:{join:"Toque para entrar",roomname:"Digite o nome da sala"},appDescription:"V\xe1 em frente, converse por v\xeddeo com toda a equipe. De fato, convide todos que voc\xea conhece. {{app}} \xe9 uma solu\xe7\xe3o de videoconfer\xeancia totalmente criptografada e 100% de c\xf3digo aberto que voc\xea pode usar todos os dias, a cada dia, gratuitamente \u2014 sem necessidade de conta.",audioVideoSwitch:{audio:"Voz",video:"V\xeddeo"},calendar:"Calend\xe1rio",connectCalendarButton:"Conectar seu calend\xe1rio",connectCalendarText:"Conecte seu calend\xe1rio para ver todas as reuni\xf5es em {{app}}. Al\xe9m disso, adicione reuni\xf5es de {{provider}} ao seu calend\xe1rio e inicie-as com apenas um clique.",enterRoomTitle:"Iniciar uma nova reuni\xe3o",onlyAsciiAllowed:"",go:"IR",join:"Entrar",info:"Informa\xe7\xf5es",privacy:"Pol\xedtica de Privacidade",recentList:"Recente",recentListDelete:"Remover",recentListEmpty:"Sua lista recente est\xe1 vazia. As reuni\xf5es que voc\xea realizar ser\xe3o exibidas aqui.",reducedUIText:"Bem-vindo ao {{app}}!",roomname:"Digite o nome da sala",roomnameHint:"Digite o nome ou a URL da sala que voc\xea deseja entrar. Voc\xea pode digitar um nome, e apenas deixe para as pessoas que voc\xea quer se reunir digitem o mesmo nome.",sendFeedback:"Enviar coment\xe1rios",terms:"Termos",title:"Videoconfer\xeancias mais seguras, flex\xedveis e totalmente gratuitas"}}},681,[]); -__d(function(e,r,f,n,o,s,t){o.exports={en:"\u0410\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u0439",af:"",bg:"\u0411\u043e\u043b\u0433\u0430\u0440\u0441\u043a\u0438\u0439",ca:"",cs:"\u0427\u0435\u0448\u0441\u043a\u0438\u0439",de:"\u041d\u0435\u043c\u0435\u0446\u043a\u0438\u0439",el:"\u0413\u0440\u0435\u0447\u0435\u0441\u043a\u0438\u0439",enGB:"",eo:"\u042d\u0441\u043f\u0435\u0440\u0430\u043d\u0442\u043e",es:"\u0418\u0441\u043f\u0430\u043d\u0441\u043a\u0438\u0439",esUS:"",fi:"",fr:"\u0424\u0440\u0430\u043d\u0446\u0443\u0437\u0441\u043a\u0438\u0439",frCA:"",hr:"",hy:"\u0410\u0440\u043c\u044f\u043d\u0441\u043a\u0438\u0439",it:"\u0418\u0442\u0430\u043b\u044c\u044f\u043d\u0441\u043a\u0438\u0439",ja:"\u042f\u043f\u043e\u043d\u0441\u043a\u0438\u0439",ko:"\u041a\u043e\u0440\u0435\u0439\u0441\u043a\u0438\u0439",nl:"",oc:"\u041e\u043a\u0441\u0438\u0442\u0430\u043d\u0441\u043a\u0438\u0439",pl:"\u041f\u043e\u043b\u044c\u0441\u043a\u0438\u0439",ptBR:"\u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u044c\u0441\u043a\u0438\u0439 (\u0411\u0440\u0430\u0437\u0438\u043b\u0438\u044f)",ru:"\u0420\u0443\u0441\u0441\u043a\u0438\u0439",sv:"\u0428\u0432\u0435\u0434\u0441\u043a\u0438\u0439",tr:"\u0422\u0443\u0440\u0435\u0446\u043a\u0438\u0439",vi:"\u0412\u044c\u0435\u0442\u043d\u0430\u043c\u0441\u043a\u0438\u0439",zhCN:"\u041a\u0438\u0442\u0430\u0439\u0441\u043a\u0438\u0439 (\u041a\u0438\u0442\u0430\u0439)",zhTW:""}},682,[]); -__d(function(e,o,i,t,r,a,n){r.exports={addPeople:{add:"\u041f\u0440\u0438\u0433\u043b\u0430\u0441\u0438\u0442\u044c",countryNotSupported:"\u042d\u0442\u0430 \u0441\u0442\u0440\u0430\u043d\u0430 \u043f\u043e\u043a\u0430 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f.",countryReminder:"\u0412\u044b\u0437\u043e\u0432 \u043d\u0435 \u0432 \u0421\u0428\u0410? \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0443\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u0443\u043a\u0430\u0437\u0430\u043b\u0438 \u043a\u043e\u0434 \u0441\u0442\u0440\u0430\u043d\u044b!",disabled:"\u041f\u043e\u0438\u0441\u043a \u043d\u0435 \u0434\u0430\u043b \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430",failedToAdd:"",footerText:"\u0412\u044b\u0437\u043e\u0432 \u043d\u043e\u043c\u0435\u0440\u0430 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d.",loading:"\u041f\u043e\u0438\u0441\u043a \u043b\u044e\u0434\u0435\u0439 \u0438 \u043d\u043e\u043c\u0435\u0440\u043e\u0432 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u043e\u0432",loadingNumber:"\u041f\u043e\u0438\u0441\u043a \u043b\u044e\u0434\u0435\u0439 \u0434\u043b\u044f \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u044f",loadingPeople:"\u041f\u043e\u0438\u0441\u043a \u043b\u044e\u0434\u0435\u0439 \u0434\u043b\u044f \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u044f",noResults:"\u041f\u043e\u0438\u0441\u043a \u043d\u0435 \u0434\u0430\u043b \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430",noValidNumbers:"\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u043d\u043e\u043c\u0435\u0440 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430",searchNumbers:"\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u043e\u043c\u0435\u0440\u0430 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u043e\u0432",searchPeople:"\u041f\u043e\u0438\u0441\u043a \u043d\u0435 \u0434\u0430\u043b \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430",searchPeopleAndNumbers:"\u041f\u043e\u0438\u0441\u043a \u043b\u044e\u0434\u0435\u0439 \u0438\u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0438\u0445 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u043e\u0432",telephone:"\u041d\u043e\u043c\u0435\u0440: {{number}}",title:"\u041f\u0440\u0438\u0433\u043b\u0430\u0441\u0438\u0442\u044c \u043b\u044e\u0434\u0435\u0439 \u043d\u0430 \u044d\u0442\u0443 \u0432\u0441\u0442\u0440\u0435\u0447\u0443"},audioDevices:{bluetooth:"Bluetooth",headphones:"\u041d\u0430\u0443\u0448\u043d\u0438\u043a\u0438",phone:"\u0422\u0435\u043b\u0435\u0444\u043e\u043d",speaker:"\u041a\u043e\u043b\u043e\u043d\u043a\u0430",none:""},audioOnly:{audioOnly:"\u041d\u0435 \u043d\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u043a\u0430\u043d\u0430\u043b"},calendarSync:{addMeetingURL:"\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438",confirmAddLink:"",error:{appConfiguration:"",generic:"",notSignedIn:""},join:"",joinTooltip:"",nextMeeting:"\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u0432\u0441\u0442\u0440\u0435\u0447\u0430",noEvents:"\u041d\u0435\u0442 \u0437\u0430\u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0441\u043e\u0431\u044b\u0442\u0438\u0439.",ongoingMeeting:"\u0442\u0435\u043a\u0443\u0449\u0430\u044f \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f",permissionButton:"\u041e\u0442\u043a\u0440\u044b\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438",permissionMessage:"\u0414\u043b\u044f \u043f\u043e\u043a\u0430\u0437\u0430 \u0432\u0430\u0448\u0438\u0445 \u0432\u0441\u0442\u0440\u0435\u0447 \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u043d\u0443\u0436\u0435\u043d \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u044e.",refresh:"\u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u044c",today:"\u0421\u0435\u0433\u043e\u0434\u043d\u044f"},chat:{error:"",messagebox:"",nickname:{popover:"\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0438\u043c\u044f",title:""},title:""},connectingOverlay:{joiningRoom:""},connection:{ATTACHED:"\u041f\u0440\u0438\u043a\u0440\u0435\u043f\u043b\u0435\u043d\u043e",AUTHENTICATING:"\u0410\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f",AUTHFAIL:"\u041e\u0448\u0438\u0431\u043a\u0430 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438",CONNECTED:"\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043e",CONNECTING:"\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435",CONNFAIL:"\u0421\u0431\u043e\u0439 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f",DISCONNECTED:"\u041e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u043e",DISCONNECTING:"\u041e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435",ERROR:"\u041e\u0448\u0438\u0431\u043a\u0430",RECONNECTING:"\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0441 \u0441\u0435\u0442\u044c\u044e. \u041f\u0435\u0440\u0435\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435..."},connectionindicator:{address:"\u0410\u0434\u0440\u0435\u0441:",bandwidth:"\u0421\u0440\u0435\u0434\u043d\u044f\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c:",bitrate:"\u0411\u0438\u0442\u0440\u0435\u0439\u0442:",bridgeCount:"",connectedTo:"",framerate:"\u0427\u0430\u0441\u0442\u043e\u0442\u0430 \u043a\u0430\u0434\u0440\u043e\u0432:",less:"\u041c\u0435\u043d\u044c\u0448\u0435",localaddress_0:"\u041b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0430\u0434\u0440\u0435\u0441\u0430:",localaddress_1:"\u041b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0430\u0434\u0440\u0435\u0441\u0430:",localaddress_2:"\u041b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0430\u0434\u0440\u0435\u0441\u0430:",localport_0:"\u041b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u043e\u0440\u0442\u044b:",localport_1:"\u041b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u043e\u0440\u0442\u044b:",localport_2:"\u041b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u043e\u0440\u0442\u044b:",more:"\u0411\u043e\u043b\u044c\u0448\u0435",packetloss:"\u041f\u043e\u0442\u0435\u0440\u0438 \u043f\u0430\u043a\u0435\u0442\u043e\u0432:",quality:{good:"\u0425\u043e\u0440\u043e\u0448\u043e",inactive:"\u043d\u0435 \u0430\u043a\u0442\u0438\u0432\u043d\u043e",lost:"\u043f\u043e\u0442\u0435\u0440\u044f\u043d\u043e",nonoptimal:"\u043d\u0435 \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u043e",poor:"\u043f\u043b\u043e\u0445\u043e"},remoteaddress_0:"\u0423\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0435 \u0430\u0434\u0440\u0435\u0441\u0430:",remoteaddress_1:"\u0423\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0435 \u0430\u0434\u0440\u0435\u0441\u0430:",remoteaddress_2:"\u0423\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0435 \u0430\u0434\u0440\u0435\u0441\u0430:",remoteport_0:"\u0423\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0435 \u043f\u043e\u0440\u0442\u044b:",remoteport_1:"\u0423\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0435 \u043f\u043e\u0440\u0442\u044b:",remoteport_2:"\u0423\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0435 \u043f\u043e\u0440\u0442\u044b:",resolution:"\u0420\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435:",status:"\u0421\u0432\u044f\u0437\u044c:",transport_0:"\u041c\u0435\u0442\u043e\u0434\u044b \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438:",transport_1:"\u041c\u0435\u0442\u043e\u0434\u044b \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438:",transport_2:"\u041c\u0435\u0442\u043e\u0434\u044b \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438:"},dateUtils:{earlier:"\u0420\u0430\u043d\u0435\u0435",today:"\u0421\u0435\u0433\u043e\u0434\u043d\u044f",yesterday:"\u0412\u0447\u0435\u0440\u0430"},deepLinking:{appNotInstalled:"\u0427\u0442\u043e\u0431\u044b \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u044c\u0441\u044f \u043a \u044d\u0442\u043e\u0439 \u0432\u0441\u0442\u0440\u0435\u0447\u0435 \u043d\u0430 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0435, \u043d\u0443\u0436\u043d\u043e \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 {{app}}.",description:"\u041d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0441\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c? \u041c\u044b \u043f\u043e\u043f\u044b\u0442\u0430\u043b\u0438\u0441\u044c \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0432\u0430\u0448\u0443 \u0432\u0441\u0442\u0440\u0435\u0447\u0443 \u0432 \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043d\u043e\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 {{app}}. \u041f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u0435 \u043f\u043e\u043f\u044b\u0442\u043a\u0443 \u0438\u043b\u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u0435\u0435 \u0432 \u0432\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 {{app}}.",descriptionWithoutWeb:"",downloadApp:"\u0421\u043a\u0430\u0447\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435",launchWebButton:"\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435",openApp:"\u041f\u0435\u0440\u0435\u0439\u0442\u0438 \u043a \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044e",title:"\u0417\u0430\u043f\u0443\u0441\u043a \u0432\u0430\u0448\u0435\u0439 \u0432\u0441\u0442\u0440\u0435\u0447\u0438 \u0432 {{app}}...",tryAgainButton:"\u041f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u0435 \u0432 \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043d\u043e\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438"},defaultLink:"\u043d\u0430\u043f\u0440. {{url}}",defaultNickname:"\u043d\u0430\u043f\u0440. \u042f\u043d\u0430 \u0426\u0432\u0435\u0442\u043a\u043e\u0432\u0430",deviceError:{cameraError:"\u041e\u0448\u0438\u0431\u043a\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u043a\u0430\u043c\u0435\u0440\u0435",cameraPermission:"\u041e\u0448\u0438\u0431\u043a\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u0443",microphoneError:"\u041e\u0448\u0438\u0431\u043a\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u0443",microphonePermission:"\u041d\u0435\u0442 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043d\u0430 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u0443"},deviceSelection:{noPermission:"\u041d\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u0430",previewUnavailable:"\u041f\u0440\u0435\u0434\u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d",selectADevice:"\u0412\u044b\u0431\u043e\u0440 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430",testAudio:"\u041f\u0440\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0437\u0432\u0443\u043a"},dialog:{accessibilityLabel:{liveStreaming:"\u0422\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044f"},allow:"\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c",alreadySharedVideoMsg:"",alreadySharedVideoTitle:"\u0414\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u043a\u0430\u0437 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u043e\u0433\u043e \u0432\u0438\u0434\u0435\u043e",applicationWindow:"\u041e\u043a\u043d\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f",Back:"\u041d\u0430\u0437\u0430\u0434",cameraConstraintFailedError:"\u041a\u0430\u043c\u0435\u0440\u0430 \u043d\u0435 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u043c \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f\u043c.",cameraNotFoundError:"\u041a\u0430\u043c\u0435\u0440\u0430 \u043d\u0435 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0430.",cameraNotSendingData:"\u041e\u0448\u0438\u0431\u043a\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u043a\u0430\u043c\u0435\u0440\u0435. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435, \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043b\u0438 \u043a\u0430\u043c\u0435\u0440\u0443 \u043a\u0430\u043a\u0430\u044f-\u043d\u0438\u0431\u0443\u0434\u044c \u0434\u0440\u0443\u0433\u0430\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0442\u0430\u043a\u0436\u0435 \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0434\u0440\u0443\u0433\u043e\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0438\u0437 \u043c\u0435\u043d\u044e \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u0438\u043b\u0438 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435.",cameraNotSendingDataTitle:"\u041d\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u043a\u0430\u043c\u0435\u0440\u0435",cameraPermissionDeniedError:"\u041d\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u043a\u0430\u043c\u0435\u0440\u0435. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432\u043e \u0432\u0441\u0442\u0440\u0435\u0447\u0435, \u043d\u043e \u0434\u0440\u0443\u0433\u0438\u0435 \u043d\u0435 \u0431\u0443\u0434\u0443\u0442 \u0432\u0430\u0441 \u0432\u0438\u0434\u0435\u0442\u044c. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0437\u043d\u0430\u0447\u043e\u043a \u043a\u0430\u043c\u0435\u0440\u044b \u0432 \u0430\u0434\u0440\u0435\u0441\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430, \u0447\u0442\u043e\u0431\u044b \u0443\u0441\u0442\u0440\u0430\u043d\u0438\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443.",cameraUnknownError:"\u041d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u0430\u043c\u0435\u0440\u044b.",cameraUnsupportedResolutionError:"\u0412\u0430\u0448\u0430 \u043a\u0430\u043c\u0435\u0440\u0430 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0432\u0438\u0434\u0435\u043e.",Cancel:"\u041e\u0442\u043c\u0435\u043d\u0430",close:"\u0417\u0430\u043a\u0440\u044b\u0442\u044c",conferenceDisconnectMsg:"\u0421\u043b\u0435\u0434\u0443\u0435\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435. \u041f\u043e\u043f\u044b\u0442\u043a\u0430 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0432\u044f\u0437\u0438 \u0447\u0435\u0440\u0435\u0437 {{seconds}} \u0441.",conferenceDisconnectTitle:"\u0412\u044b \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u044b.",conferenceReloadMsg:"\u041c\u044b \u0441\u0442\u0430\u0440\u0430\u0435\u043c\u0441\u044f \u044d\u0442\u043e \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c. \u0412\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0432\u044f\u0437\u0438 \u0447\u0435\u0440\u0435\u0437 {{seconds}} \u0441.",conferenceReloadTitle:"\u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u0447\u0442\u043e-\u0442\u043e \u043f\u043e\u0448\u043b\u043e \u043d\u0435 \u0442\u0430\u043a.",confirm:"\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044c",confirmNo:"\u041d\u0435\u0442",confirmYes:"\u0414\u0430",connectError:"\u041e\u0448\u0438\u0431\u043a\u0430. \u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0441\u0432\u044f\u0437\u044c \u0434\u043b\u044f \u0432\u0430\u0448\u0435\u0439 \u0432\u0441\u0442\u0440\u0435\u0447\u0438.",connectErrorWithMsg:"\u041e\u0448\u0438\u0431\u043a\u0430. \u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0441\u0432\u044f\u0437\u044c \u0434\u043b\u044f \u0432\u0430\u0448\u0435\u0439 \u0432\u0441\u0442\u0440\u0435\u0447\u0438: {{msg}}",connecting:"\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435",contactSupport:"\u0421\u0432\u044f\u0437\u044c \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439",copy:"\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c",dismiss:"\u041e\u0442\u043a\u043b\u043e\u043d\u0438\u0442\u044c",displayNameRequired:"",done:"\u0413\u043e\u0442\u043e\u0432\u043e",enterDisplayName:"",error:"\u041e\u0448\u0438\u0431\u043a\u0430",externalInstallationMsg:"\u0412\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043d\u0430\u0448\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u0441\u0442\u043e\u043b\u0430.",externalInstallationTitle:"\u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435",goToStore:"\u041f\u0435\u0440\u0435\u0439\u0442\u0438 \u043a \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0443",gracefulShutdown:"\u0422\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u044b. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u043f\u043e\u0437\u0436\u0435.",IamHost:"\u042f \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0442\u043e\u0440",incorrectRoomLockPassword:"",incorrectPassword:"\u041e\u0448\u0438\u0431\u043a\u0430 \u0438\u043c\u0435\u043d\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438\u043b\u0438 \u043f\u0430\u0440\u043e\u043b\u044f",inlineInstallationMsg:"\u0412\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043d\u0430\u0448\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u0441\u0442\u043e\u043b\u0430.",inlineInstallExtension:"\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c",internalError:"\u0427\u0442\u043e-\u0442\u043e \u043f\u043e\u0448\u043b\u043e \u043d\u0435 \u0442\u0430\u043a. \u041e\u0448\u0438\u0431\u043a\u0430: {{error}}",internalErrorTitle:"\u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044f\u044f \u043e\u0448\u0438\u0431\u043a\u0430",kickMessage:"",kickParticipantButton:"",kickParticipantDialog:"",kickParticipantTitle:"",kickTitle:"",liveStreaming:"\u0422\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044f",liveStreamingDisabledForGuestTooltip:"\u0413\u043e\u0441\u0442\u0438 \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u043d\u0430\u0447\u0430\u0442\u044c \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044e.",liveStreamingDisabledTooltip:"\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0430",lockMessage:"\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u043f\u0435\u0440\u0435\u0442\u044c \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044e",lockRoom:"",lockTitle:"\u0411\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0430 \u043d\u0435 \u0443\u0434\u0430\u043b\u0430\u0441\u044c",logoutQuestion:"\u0423\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0432\u044b\u0439\u0442\u0438 \u0438 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0432\u0441\u0442\u0440\u0435\u0447\u0443?",logoutTitle:"\u0417\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u044c \u0441\u0435\u0430\u043d\u0441",maxUsersLimitReached:"",maxUsersLimitReachedTitle:"",micConstraintFailedError:"\u0412\u0430\u0448 \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d \u043d\u0435 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u043c \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f\u043c.",micNotFoundError:"\u041c\u0438\u043a\u0440\u043e\u0444\u043e\u043d \u043d\u0435 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d.",micNotSendingData:"",micNotSendingDataTitle:"",micPermissionDeniedError:"\u041d\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u0443. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432\u043e \u0432\u0441\u0442\u0440\u0435\u0447\u0435, \u043d\u043e \u0434\u0440\u0443\u0433\u0438\u0435 \u043d\u0435 \u0431\u0443\u0434\u0443\u0442 \u0432\u0430\u0441 \u0441\u043b\u044b\u0448\u0430\u0442\u044c. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0437\u043d\u0430\u0447\u043e\u043a \u043a\u0430\u043c\u0435\u0440\u044b \u0432 \u0430\u0434\u0440\u0435\u0441\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430, \u0447\u0442\u043e\u0431\u044b \u0443\u0441\u0442\u0440\u0430\u043d\u0438\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443.",micUnknownError:"\u041d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u0430.",muteParticipantBody:"\u0412\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0438\u043c \u0437\u0432\u0443\u043a, \u043d\u043e \u043e\u043d\u0438 \u043c\u043e\u0433\u0443\u0442 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u0441\u0430\u043c\u0438 \u0432 \u043b\u044e\u0431\u043e\u0435 \u0432\u0440\u0435\u043c\u044f.",muteParticipantButton:"\u0412\u044b\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0437\u0432\u0443\u043a",muteParticipantDialog:"",muteParticipantTitle:"\u041f\u0440\u0438\u0433\u043b\u0443\u0448\u0438\u0442\u044c \u044d\u0442\u043e\u0433\u043e \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0430?",Ok:"Ok",passwordLabel:"",passwordNotSupported:"\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043f\u0430\u0440\u043e\u043b\u044f \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f.",passwordNotSupportedTitle:"",passwordRequired:"",popupError:"\u0412\u0430\u0448 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u0431\u043b\u043e\u043a\u0438\u0440\u0443\u0435\u0442 \u0432\u0441\u043f\u043b\u044b\u0432\u0430\u044e\u0449\u0438\u0435 \u043e\u043a\u043d\u0430 \u044d\u0442\u043e\u0433\u043e \u0441\u0430\u0439\u0442\u0430. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u0435 \u0432\u0441\u043f\u043b\u044b\u0432\u0430\u044e\u0449\u0438\u0435 \u043e\u043a\u043d\u0430 \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430 \u0438 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0441\u043d\u043e\u0432\u0430.",popupErrorTitle:"\u0417\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u043e \u0432\u0441\u043f\u043b\u044b\u0432\u0430\u044e\u0449\u0435\u0435 \u043e\u043a\u043d\u043e",recording:"\u0417\u0430\u043f\u0438\u0441\u044c",recordingDisabledForGuestTooltip:"\u0413\u043e\u0441\u0442\u0438 \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c.",recordingDisabledTooltip:"\u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0447\u0430\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u044c.",rejoinNow:"\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u0441\u043d\u043e\u0432\u0430",remoteControlAllowedMessage:"{{user}} \u043f\u0440\u0438\u043d\u044f\u043b \u0432\u0430\u0448 \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435!",remoteControlDeniedMessage:"{{user}} \u043e\u0442\u043a\u043b\u043e\u043d\u0438\u043b \u0432\u0430\u0448 \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435!",remoteControlErrorMessage:"\u041f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u043f\u043e\u043f\u044b\u0442\u043a\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u0438\u0442\u044c \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0442 {{user}}.",remoteControlRequestMessage:"\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c {{user}} \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0432\u0430\u0448\u0438\u043c \u0440\u0430\u0431\u043e\u0447\u0438\u043c \u0441\u0442\u043e\u043b\u043e\u043c?",remoteControlShareScreenWarning:"\u0415\u0441\u043b\u0438 \u043d\u0430\u0436\u043c\u0435\u0442\u0435 \"\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c\", \u0442\u043e \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u0435\u0441\u044c \u0441\u0432\u043e\u0438\u043c \u044d\u043a\u0440\u0430\u043d\u043e\u043c!",remoteControlStopMessage:"\u0421\u0435\u0441\u0441\u0438\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0430!",remoteControlTitle:"\u0423\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0447\u0438\u043c \u0441\u0442\u043e\u043b\u043e\u043c",Remove:"\u0423\u0434\u0430\u043b\u0438\u0442\u044c",removePassword:"",removeSharedVideoMsg:"\u0423\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0431\u0440\u0430\u0442\u044c \u0432\u0438\u0434\u0435\u043e, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043f\u043e\u0434\u0435\u043b\u0438\u043b\u0438\u0441\u044c?",removeSharedVideoTitle:"\u0423\u0431\u0440\u0430\u0442\u044c \u0432\u0438\u0434\u0435\u043e",reservationError:"\u041e\u0448\u0438\u0431\u043a\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f",reservationErrorMsg:"\u041a\u043e\u0434 \u043e\u0448\u0438\u0431\u043a\u0438: {{code}}, \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435: {{msg}}",retry:"\u041f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c",screenSharingFailedToInstall:"\u041e\u0448\u0438\u0431\u043a\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043f\u043e\u043a\u0430\u0437\u0430 \u044d\u043a\u0440\u0430\u043d\u0430.",screenSharingFailedToInstallTitle:"\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u043f\u043e\u043a\u0430\u0437\u0430 \u044d\u043a\u0440\u0430\u043d\u0430 \u043d\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e",screenSharingFirefoxPermissionDeniedError:"\u0427\u0442\u043e-\u0442\u043e \u043f\u043e\u0448\u043b\u043e \u043d\u0435 \u0442\u0430\u043a, \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u043f\u044b\u0442\u0430\u043b\u0438\u0441\u044c \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0432\u0430\u0448\u0438\u043c \u044d\u043a\u0440\u0430\u043d\u043e\u043c. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0443\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u0432\u044b \u0434\u0430\u043b\u0438 \u043d\u0430\u043c \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043d\u0430 \u044d\u0442\u043e.",screenSharingFirefoxPermissionDeniedTitle:"\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u043e\u043a\u0430\u0437\u0430 \u044d\u043a\u0440\u0430\u043d\u0430!",screenSharingPermissionDeniedError:"\u041e\u0448\u0438\u0431\u043a\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0432\u0430\u0448\u0435\u043c\u0443 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044e \u0434\u043b\u044f \u043f\u043e\u043a\u0430\u0437\u0430 \u044d\u043a\u0440\u0430\u043d\u0430. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u0438 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0441\u043d\u043e\u0432\u0430.",serviceUnavailable:"\u0421\u043b\u0443\u0436\u0431\u0430 \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430",sessTerminated:"\u0421\u0432\u044f\u0437\u044c \u043f\u0440\u0435\u0440\u0432\u0430\u043d\u0430",Share:"\u041f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f",shareVideoLinkError:"\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0443\u043a\u0430\u0436\u0438\u0442\u0435 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u0443\u044e \u0441\u0441\u044b\u043b\u043a\u0443 Youtube.",shareVideoTitle:"\u041f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0432\u0438\u0434\u0435\u043e",shareYourScreen:"\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u044d\u043a\u0440\u0430\u043d",shareYourScreenDisabled:"\u0414\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u044d\u043a\u0440\u0430\u043d\u0430 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0430.",shareYourScreenDisabledForGuest:"\u0413\u043e\u0441\u0442\u0438 \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u044d\u043a\u0440\u0430\u043d.",startLiveStreaming:"\u041d\u0430\u0447\u0430\u0442\u044c \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044e",startRecording:"\u041d\u0430\u0447\u0430\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u044c",startRemoteControlErrorMessage:"\u041e\u0448\u0438\u0431\u043a\u0430 \u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u0435\u0441\u0441\u0438\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f!",stopLiveStreaming:"\u041e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044e",stopRecording:"\u041e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u044c",stopRecordingWarning:"\u0423\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u044c?",stopStreamingWarning:"\u0423\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044e?",streamKey:"\u041a\u043b\u044e\u0447 \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438",Submit:"\u041e\u041a",thankYou:"\u0421\u043f\u0430\u0441\u0438\u0431\u043e, \u0447\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 {{appName}}!",token:"\u0442\u043e\u043a\u0435\u043d",tokenAuthFailed:"\u0418\u0437\u0432\u0438\u043d\u0438\u0442\u0435, \u0432\u0430\u043c \u043d\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u043e \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u044c\u0441\u044f \u043a \u044d\u0442\u043e\u043c\u0443 \u0441\u0435\u0430\u043d\u0441\u0443 \u0441\u0432\u044f\u0437\u0438.",tokenAuthFailedTitle:"\u041e\u0448\u0438\u0431\u043a\u0430 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438",transcribing:"\u0420\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0430",unlockRoom:"",userPassword:"\u043f\u0430\u0440\u043e\u043b\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f",WaitForHostMsg:"",WaitForHostMsgWOk:"",WaitingForHost:"\u0416\u0434\u0435\u043c \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0442\u043e\u0440\u0430...",Yes:"\u0414\u0430",yourEntireScreen:"\u0412\u0435\u0441\u044c \u044d\u043a\u0440\u0430\u043d"},dialOut:{statusMessage:"\u0441\u0435\u0439\u0447\u0430\u0441 {{status}}"},feedback:{average:"\u0421\u0440\u0435\u0434\u043d\u0435",bad:"\u041f\u043b\u043e\u0445\u043e",detailsLabel:"\u0420\u0430\u0441\u0441\u043a\u0430\u0436\u0438\u0442\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435.",good:"\u0425\u043e\u0440\u043e\u0448\u043e",rateExperience:"\u041e\u0446\u0435\u043d\u043a\u0430 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u0441\u0432\u044f\u0437\u0438",veryBad:"\u041e\u0447\u0435\u043d\u044c \u043f\u043b\u043e\u0445\u043e",veryGood:"\u041e\u0447\u0435\u043d\u044c \u0445\u043e\u0440\u043e\u0448\u043e"},incomingCall:{answer:"\u041e\u0442\u0432\u0435\u0442",audioCallTitle:"\u0412\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0437\u0432\u043e\u043d\u043e\u043a",decline:"\u041e\u0442\u043a\u043b\u043e\u043d\u0438\u0442\u044c",productLabel:"\u0438\u0437 Jitsi Meet",videoCallTitle:"\u0412\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0432\u0438\u0434\u0435\u043e\u0437\u0432\u043e\u043d\u043e\u043a"},info:{accessibilityLabel:"\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e",addPassword:"",cancelPassword:"",conferenceURL:"\u0421\u0441\u044b\u043b\u043a\u0430:",country:"\u0421\u0442\u0440\u0430\u043d\u0430",dialANumber:"",dialInConferenceID:"PIN:",dialInNotSupported:"\u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u043d\u0430\u0431\u043e\u0440 \u043d\u043e\u043c\u0435\u0440\u0430 \u0432 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f.",dialInNumber:"\u041d\u043e\u043c\u0435\u0440:",dialInSummaryError:"",dialInTollFree:"",genericError:"\u0427\u0442\u043e-\u0442\u043e \u043f\u043e\u0448\u043b\u043e \u043d\u0435 \u0442\u0430\u043a.",inviteLiveStream:"\u0422\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044f \u044d\u0442\u043e\u0439 \u0432\u0441\u0442\u0440\u0435\u0447\u0438: {{url}}",invitePhone:"",invitePhoneAlternatives:"",inviteURLFirstPartGeneral:"",inviteURLFirstPartPersonal:"",inviteURLSecondPart:"",liveStreamURL:"\u0422\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044f:",moreNumbers:"\u0411\u043e\u043b\u044c\u0448\u0435 \u043d\u043e\u043c\u0435\u0440\u043e\u0432",noNumbers:"\u041d\u0435\u0442 \u043d\u043e\u043c\u0435\u0440\u043e\u0432 \u0434\u043b\u044f \u043d\u0430\u0431\u043e\u0440\u0430.",noPassword:"\u043d\u0435\u0442",noRoom:"\u0414\u043b\u044f \u043d\u0430\u0431\u043e\u0440\u0430 \u043d\u043e\u043c\u0435\u0440\u0430 \u043d\u0435 \u0431\u044b\u043b\u043e \u0443\u043a\u0430\u0437\u0430\u043d\u043e \u043d\u0438 \u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u043c\u043d\u0430\u0442\u044b.",numbers:"\u041d\u043e\u043c\u0435\u0440\u0430 \u0434\u043b\u044f \u043d\u0430\u0431\u043e\u0440\u0430",password:"",title:"\u041f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f",tooltip:"\u041f\u043e\u0434\u0435\u043b\u0438\u0442\u0435\u0441\u044c \u0441\u0441\u044b\u043b\u043a\u043e\u0439 \u0438 \u043d\u043e\u043c\u0435\u0440\u043e\u043c \u0434\u043b\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a \u044d\u0442\u043e\u0439 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438",label:""},inviteDialog:{alertText:"",header:"\u041f\u0440\u0438\u0433\u043b\u0430\u0441\u0438\u0442\u044c",searchCallOnlyPlaceholder:"\u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u043d\u043e\u043c\u0435\u0440 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430",searchPeopleOnlyPlaceholder:"",searchPlaceholder:"",send:""},inlineDialogFailure:{msg:"\u041d\u0435\u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0437\u0430\u043c\u0438\u043d\u043a\u0430.",retry:"\u041f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0441\u043d\u043e\u0432\u0430",support:"\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430",supportMsg:"\u0415\u0441\u043b\u0438 \u044d\u0442\u043e \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u0441\u044f, \u0441\u0432\u044f\u0436\u0438\u0442\u0435\u0441\u044c \u0441"},keyboardShortcuts:{focusLocal:"\u0424\u043e\u043a\u0443\u0441 \u043d\u0430 \u0432\u0430\u0448\u0435 \u0432\u0438\u0434\u0435\u043e",focusRemote:"\u0424\u043e\u043a\u0443\u0441 \u043d\u0430 \u0432\u0438\u0434\u0435\u043e \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0430",fullScreen:"\u0412\u043a\u043b/\u0432\u044b\u043a\u043b \u043f\u043e\u043b\u043d\u043e\u044d\u043a\u0440\u0430\u043d\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c ",keyboardShortcuts:"\u041a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0438 \u043a\u043b\u0430\u0432\u0438\u0448",localRecording:"",mute:"\u041c\u0438\u043a\u0440\u043e\u0444\u043e\u043d (\u0432\u043a\u043b./\u0432\u044b\u043a\u043b.)",pushToTalk:"\u041d\u0430\u0436\u043c\u0438\u0442\u0435, \u0447\u0442\u043e\u0431\u044b \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c",raiseHand:"\u041f\u043e\u0434\u043d\u044f\u0442\u044c \u0438\u043b\u0438 \u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0440\u0443\u043a\u0443",showSpeakerStats:"\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0443 \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u044e\u0449\u0435\u0433\u043e",toggleChat:"\u0427\u0430\u0442 (\u043e\u0442\u043a\u0440\u044b\u0442\u044c/\u0437\u0430\u043a\u0440\u044b\u0442\u044c)",toggleFilmstrip:"\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c/\u0421\u043a\u0440\u044b\u0442\u044c \u043a\u0440\u0430\u0442\u043a\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435",toggleScreensharing:"\u041f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043c\u0435\u0436\u0434\u0443 \u043a\u0430\u043c\u0435\u0440\u043e\u0439 \u0438 \u043f\u043e\u043a\u0430\u0437\u043e\u043c \u044d\u043a\u0440\u0430\u043d\u0430",toggleShortcuts:"\u0421\u043a\u0440\u044b\u0442\u044c/\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0433\u043e\u0440\u044f\u0447\u0438\u0435 \u043a\u043b\u0430\u0432\u0438\u0448\u0438",videoMute:"\u041a\u0430\u043c\u0435\u0440\u0430 (\u0432\u043a\u043b./\u0432\u044b\u043a\u043b.)",videoQuality:"\u041a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0432\u044f\u0437\u0438"},liveStreaming:{busy:"\u041e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0430\u0435\u043c \u043d\u043e\u0432\u044b\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u0434\u043b\u044f \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0441\u043d\u043e\u0432\u0430 \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0438\u043d\u0443\u0442.",busyTitle:"\u0412\u0441\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u0434\u043b\u044f \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438 \u0443\u0436\u0435 \u0437\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u044b",changeSignIn:"\u041f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u044b.",choose:"\u0412\u044b\u0431\u0440\u0430\u0442\u044c \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044e",chooseCTA:"\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044e. \u0412\u044b \u0432\u043e\u0448\u043b\u0438 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043a\u0430\u043a {{email}}. ",enterStreamKey:"\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0432\u0430\u0448 \u043a\u043b\u044e\u0447 \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438 YouTube.",error:"\u041e\u0448\u0438\u0431\u043a\u0430 \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0441\u043d\u043e\u0432\u0430.",errorAPI:"\u041f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u0435 \u043a \u0432\u0430\u0448\u0438\u043c \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044f\u043c \u043d\u0430 YouTube. \u041f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u0435 \u043f\u043e\u043f\u044b\u0442\u043a\u0443 \u0432\u0445\u043e\u0434\u0430 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0443.",errorLiveStreamNotEnabled:"\u0422\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044f \u043d\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0430 \u043d\u0430 {{email}}. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u0435 \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044e \u0438\u043b\u0438 \u0432\u043e\u0439\u0434\u0438\u0442\u0435 \u0432 \u0430\u043a\u043a\u0430\u0443\u043d\u0442 \u0441 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u043e\u0439 \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0435\u0439.",expandedOff:"",expandedOn:"",expandedPending:"",failedToStart:"\u041e\u0448\u0438\u0431\u043a\u0430 \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438 \u0432\u0438\u0434\u0435\u043e",getStreamKeyManually:"",invalidStreamKey:"",off:"\u0422\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044f \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0430",on:"\u0422\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044f",pending:"\u041d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044e...",serviceName:"\u0421\u043b\u0443\u0436\u0431\u0430 \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438",signedInAs:"",signIn:"\u0412\u043e\u0439\u0442\u0438 \u0447\u0435\u0440\u0435\u0437 Google",signInCTA:"\u0412\u043e\u0439\u0434\u0438\u0442\u0435 \u0438\u043b\u0438 \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u0441\u0432\u043e\u0439 \u043a\u043b\u044e\u0447 \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438 YouTube.",signOut:"\u0412\u044b\u0445\u043e\u0434",start:"\u041d\u0430\u0447\u0430\u0442\u044c \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044e",streamIdHelp:"\u0427\u0442\u043e \u044d\u0442\u043e?",unavailableTitle:"\u0422\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044f \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430"},localRecording:{clientState:{off:"\u041e\u0442\u043a\u043b\u044e\u0447\u0435\u043d",on:"\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d",unknown:"\u041d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043d"},dialogTitle:"\u041a\u043d\u043e\u043f\u043a\u0438 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438",duration:"\u0414\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c",durationNA:"\u043d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e",encoding:"\u041a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0430",label:"\u041b\u0435\u0432\u044b\u0439/\u041f\u0440\u0430\u0432\u044b\u0439",labelToolTip:"\u041b\u043e\u043a\u0430\u043b\u044c\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c \u0430\u043a\u0442\u0438\u0432\u043d\u0430",localRecording:"",me:"\u042f",messages:{engaged:"",finished:"\u0417\u0430\u043f\u0438\u0441\u044c \u0441\u0435\u0441\u0441\u0438\u0438 {{token}} \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0430. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u044c\u0442\u0435 \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u043c\u043e\u0434\u0435\u0440\u0430\u0442\u043e\u0440\u0443.",finishedModerator:"",notModerator:""},moderator:"\u041c\u043e\u0434\u0435\u0440\u0430\u0442\u043e\u0440",no:"\u041d\u0435\u0442",participant:"\u0423\u0447\u0430\u0441\u0442\u043d\u0438\u043a",participantStats:"\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u043e\u0432",sessionToken:"\u0422\u043e\u043a\u0435\u043d \u0441\u0435\u0441\u0441\u0438\u0438",start:"\u041d\u0430\u0447\u0430\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u044c",stop:"\u041e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u044c",yes:"\u0414\u0430"},lockRoomPassword:"\u043f\u0430\u0440\u043e\u043b\u044c",lockRoomPasswordUppercase:"\u041f\u0430\u0440\u043e\u043b\u044c",me:"\u044f",notify:{connectedOneMember:"",connectedThreePlusMembers:"",connectedTwoMembers:"",disconnected:"\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u043e\u0440\u0432\u0430\u043d\u043e",focus:"\u0424\u043e\u043a\u0443\u0441 \u0432\u0441\u0442\u0440\u0435\u0447\u0438",focusFail:"{{component}} \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d, \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u0435 \u0447\u0435\u0440\u0435\u0437 {{ms}} \u0441",grantedTo:"{{to}} \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u043f\u0440\u0430\u0432\u0430 \u043c\u043e\u0434\u0435\u0440\u0430\u0442\u043e\u0440\u0430!",invitedOneMember:"",invitedThreePlusMembers:"",invitedTwoMembers:"",kickParticipant:"",me:"\u042f",moderator:"\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u044b \u043f\u0440\u0430\u0432\u0430 \u043c\u043e\u0434\u0435\u0440\u0430\u0442\u043e\u0440\u0430!",muted:"\u0412\u044b \u043d\u0430\u0447\u0430\u043b\u0438 \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440 \u0431\u0435\u0437 \u0437\u0432\u0443\u043a\u0430.",mutedTitle:"\u0412\u044b \u0431\u0435\u0437 \u0437\u0432\u0443\u043a\u0430!",mutedRemotelyTitle:"",mutedRemotelyDescription:"",passwordRemovedRemotely:"",passwordSetRemotely:"",raisedHand:"",somebody:"\u041a\u0442\u043e-\u0442\u043e",startSilentTitle:"",startSilentDescription:"",suboptimalBrowserWarning:"",suboptimalExperienceTitle:"\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435",unmute:"",newDeviceCameraTitle:"",newDeviceAudioTitle:"",newDeviceAction:""},passwordSetRemotely:"\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u0434\u0440\u0443\u0433\u0438\u043c \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u043e\u043c",passwordDigitsOnly:"",poweredby:"\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430",presenceStatus:{busy:"\u0417\u0430\u043d\u044f\u0442",calling:"\u0412\u044b\u0437\u044b\u0432\u0430\u044e...",connected:"\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043e",connecting:"\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435...",connecting2:"\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435*...",disconnected:"\u041e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u043e",expired:"\u0418\u0441\u0442\u0435\u043a",ignored:"\u041f\u0440\u043e\u0438\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u043d",initializingCall:"\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0437\u0432\u043e\u043d\u043a\u0430...",invited:"\u041f\u0440\u0438\u0433\u043b\u0430\u0448\u0435\u043d\u043d\u044b\u0439",rejected:"\u041e\u0442\u043a\u043b\u043e\u043d\u0435\u043d",ringing:"\u0417\u0432\u043e\u043d\u044e. . ."},profile:{setDisplayNameLabel:"\u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u043c\u043e\u0435 \u0438\u043c\u044f",setEmailInput:"\u0412\u0432\u0435\u0434\u0438\u0442\u0435 e-mail",setEmailLabel:"E-mail \u0434\u043b\u044f gravatar",title:"\u041f\u0440\u043e\u0444\u0438\u043b\u044c"},raisedHand:"\u0425\u043e\u0447\u0435\u0442 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c",recording:{authDropboxText:"",availableSpace:"\u0414\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u043c\u0435\u0441\u0442\u0430: {{spaceLeft}} MB (\u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e {{duration}} \u043c\u0438\u043d\u0443\u0442 \u0437\u0430\u043f\u0438\u0441\u0438)",beta:"\u0411\u0415\u0422\u0410",busy:"\u041c\u044b \u0441\u0442\u0430\u0440\u0430\u0435\u043c\u0441\u044f \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0438\u043d\u0443\u0442.",busyTitle:"\u0412\u0441\u0435 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0449\u0438\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0437\u0430\u043d\u044f\u0442\u044b",error:"\u041e\u0448\u0438\u0431\u043a\u0430 \u0437\u0430\u043f\u0438\u0441\u0438. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u043f\u043e\u0437\u0436\u0435.",expandedOff:"\u0417\u0430\u043f\u0438\u0441\u044c \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0430",expandedOn:"",expandedPending:"",failedToStart:"\u041e\u0448\u0438\u0431\u043a\u0430 \u043d\u0430\u0447\u0430\u043b\u0430 \u0437\u0430\u043f\u0438\u0441\u0438",fileSharingdescription:"",live:"\u041f\u0440\u044f\u043c\u0430\u044f \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044f",loggedIn:"\u0412\u043e\u0448\u0435\u043b \u043a\u0430\u043a {{userName}}",off:"\u0417\u0430\u043f\u0438\u0441\u044c \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0430",on:"\u0417\u0430\u043f\u0438\u0441\u044c",pending:"\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u043a \u0437\u0430\u043f\u0438\u0441\u0438 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438...",rec:"\u0418\u0434\u0435\u0442 \u0437\u0430\u043f\u0438\u0441\u044c",serviceDescription:"",serviceName:"\u0421\u043b\u0443\u0436\u0431\u0430 \u0437\u0430\u043f\u0438\u0441\u0438",signIn:"\u0412\u0445\u043e\u0434",signOut:"\u0412\u044b\u0445\u043e\u0434",unavailable:"\u0421\u043b\u0443\u0436\u0431\u0430 {{serviceName}} \u0441\u0435\u0439\u0447\u0430\u0441 \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430. \u041c\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u043d\u0430\u0434 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u044d\u0442\u043e\u0439 \u043e\u0448\u0438\u0431\u043a\u0438. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u043f\u043e\u0437\u0436\u0435.",unavailableTitle:"\u0417\u0430\u043f\u0438\u0441\u044c \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u0430"},sectionList:{pullToRefresh:"\u041f\u043e\u0442\u044f\u043d\u0438\u0442\u0435 \u0434\u043b\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f"},settings:{calendar:{about:"\u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0441 \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u0435\u043c {{appName}} \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0432\u0430\u0448\u0435\u043c\u0443 \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u044e \u0438 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0437\u0430\u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043c\u0435\u0440\u043e\u043f\u0440\u0438\u044f\u0442\u0438\u0439.",disconnect:"\u041e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f",microsoftSignIn:"\u0412\u043e\u0439\u0442\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0443\u0447\u0435\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 Microsoft",signedIn:"\u0414\u043e\u0441\u0442\u0443\u043f \u043a \u0441\u043e\u0431\u044b\u0442\u0438\u044f\u043c \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u044f \u0432\u043a\u043b\u044e\u0447\u0435\u043d \u0434\u043b\u044f email - \u0430\u0434\u0440\u0435\u0441\u0430 {{email}}. \u041d\u0430\u0436\u043c\u0438\u0442\u0435 \u043a\u043d\u043e\u043f\u043a\u0443 \u041e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0434\u043b\u044f \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0441\u043e\u0431\u044b\u0442\u0438\u044f\u043c \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u044f.",title:"\u041a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u044c"},devices:"\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430",followMe:"\u0412\u0441\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0442 \u0437\u0430 \u043c\u043d\u043e\u0439",language:"\u042f\u0437\u044b\u043a",loggedIn:"\u0412\u043e\u0448\u0435\u043b \u043a\u0430\u043a {{name}}",moderator:"\u041c\u043e\u0434\u0435\u0440\u0430\u0442\u043e\u0440",more:"\u0411\u043e\u043b\u044c\u0448\u0435 \u043e\u043f\u0446\u0438\u0439",name:"\u0418\u043c\u044f",noDevice:"\u043d\u0435\u0442",selectAudioOutput:"\u0417\u0432\u0443\u043a\u043e\u0432\u043e\u0439 \u0432\u044b\u0445\u043e\u0434",selectCamera:"\u041a\u0430\u043c\u0435\u0440\u0430",selectMic:"\u041c\u0438\u043a\u0440\u043e\u0444\u043e\u043d",startAudioMuted:"\u0412\u0441\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442 \u0441 \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u043c \u0437\u0432\u0443\u043a\u043e\u043c",startVideoMuted:"\u0412\u0441\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442 \u0432 \u0441\u043a\u0440\u044b\u0442\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435",title:"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438"},settingsView:{alertOk:"OK",alertTitle:"\u0412\u043d\u0438\u043c\u0430\u043d\u0438\u0435",alertURLText:"\u041e\u0448\u0438\u0431\u043a\u0430 \u0430\u0434\u0440\u0435\u0441\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0430",buildInfoSection:"",conferenceSection:"\u041d\u043e\u043c\u0435\u0440\u0430 \u0434\u043b\u044f \u043d\u0430\u0431\u043e\u0440\u0430",displayName:"\u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u043c\u043e\u0435 \u0438\u043c\u044f",email:"Email",header:"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438",profileSection:"\u041f\u0440\u043e\u0444\u0438\u043b\u044c",serverURL:"\u0410\u0434\u0440\u0435\u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u0430",startWithAudioMuted:"\u041d\u0430\u0447\u0430\u0442\u044c \u0441 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u043c \u0437\u0432\u0443\u043a\u043e\u043c",startWithVideoMuted:"\u041d\u0430\u0447\u0430\u0442\u044c \u0441 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u043c \u0432\u0438\u0434\u0435\u043e",version:""},share:{dialInfoText:"",mainText:"\u041d\u0430\u0436\u043c\u0438\u0442\u0435 \u043d\u0430 \u0441\u0441\u044b\u043b\u043a\u0443 \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u044c\u0441\u044f \u043a \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438:\n{{roomUrl}}"},speaker:"\u041a\u043e\u043b\u043e\u043d\u043a\u0430",speakerStats:{hours:"{{count}}\u0447",minutes:"{{count}}\u043c",name:"\u0418\u043c\u044f",seconds:"{{count}}\u0441",speakerStats:"\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u0432\u044b\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0439",speakerTime:"\u0412\u0440\u0435\u043c\u044f \u0432\u044b\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0439"},startupoverlay:{policyText:" ",title:"{{app}} \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u0443 \u0438 \u043a\u0430\u043c\u0435\u0440\u0435."},suspendedoverlay:{rejoinKeyTitle:"\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u0441\u043d\u043e\u0432\u0430",text:"\u0414\u043b\u044f \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0432\u044f\u0437\u0438 \u043d\u0430\u0436\u043c\u0438\u0442\u0435 \u043a\u043d\u043e\u043f\u043a\u0443 \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u0441\u043d\u043e\u0432\u0430.",title:"\u0412\u0438\u0434\u0435\u043e\u0441\u0432\u044f\u0437\u044c \u043f\u0440\u0435\u0440\u0432\u0430\u043d\u0430. \u041f\u0440\u0438\u0447\u0438\u043d\u0430: \u044d\u0442\u043e\u0442 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440 \u043f\u0435\u0440\u0435\u0448\u0435\u043b \u0432 \u0440\u0435\u0436\u0438\u043c \u0441\u043d\u0430."},toolbar:{accessibilityLabel:{audioOnly:"\u0412\u043a\u043b/\u0432\u044b\u043a\u043b \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0432\u0443\u043a",audioRoute:"\u0412\u044b\u0431\u0440\u0430\u0442\u044c \u0430\u0443\u0434\u0438\u043e\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e",callQuality:"\u041a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0432\u044f\u0437\u0438",cc:"\u0412\u043a\u043b/\u0432\u044b\u043a\u043b \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u044b",chat:"\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c/\u0441\u043a\u0440\u044b\u0442\u044c \u043e\u043a\u043d\u043e \u0447\u0430\u0442\u0430",document:"\u0417\u0430\u043a\u0440\u044b\u0442\u044c \u043e\u0431\u0449\u0438\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442",feedback:"\u041e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043e\u0442\u0437\u044b\u0432",fullScreen:"\u041f\u043e\u043b\u043d\u043e\u044d\u043a\u0440\u0430\u043d\u043d\u044b\u0439/\u043e\u043a\u043e\u043d\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c",hangup:"\u0417\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u044c \u0437\u0432\u043e\u043d\u043e\u043a",invite:"\u041f\u0440\u0438\u0433\u043b\u0430\u0441\u0438\u0442\u044c",kick:"",localRecording:"",lockRoom:"",moreActions:"\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c/\u0441\u043a\u0440\u044b\u0442\u044c \u043c\u0435\u043d\u044e \u0434\u043e\u043f. \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a",moreActionsMenu:"\u041c\u0435\u043d\u044e \u0434\u043e\u043f. \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a",mute:"\u0412\u043a\u043b/\u0432\u044b\u043a\u043b \u0437\u0432\u0443\u043a",pip:"",profile:"\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0444\u0438\u043b\u044c",raiseHand:"",recording:"\u0412\u043a\u043b/\u0412\u044b\u043a\u043b \u0437\u0430\u043f\u0438\u0441\u044c",remoteMute:"",Settings:"\u0412\u043a\u043b/\u0432\u044b\u043a\u043b \u043c\u0435\u043d\u044e \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a",sharedvideo:"\u0412\u043a\u043b/\u0412\u044b\u043a\u043b Youtube - \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044e",shareRoom:"\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435",shareYourScreen:"\u0412\u043a\u043b/\u0412\u044b\u043a\u043b \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u044e \u044d\u043a\u0440\u0430\u043d\u0430",shortcuts:"\u0412\u043a\u043b/\u0412\u044b\u043a\u043b \u0437\u043d\u0430\u0447\u043a\u0438",show:"",speakerStats:"\u0412\u043a\u043b/\u0412\u044b\u043a\u043b \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0443",tileView:"",toggleCamera:"\u0412\u043a\u043b/\u0432\u044b\u043a\u043b \u043a\u0430\u043c\u0435\u0440\u0443",videomute:"\u0412\u043a\u043b/\u0412\u044b\u043a\u043b \u0437\u0432\u0443\u043a \u0432 \u0432\u0438\u0434\u0435\u043e",videoblur:""},addPeople:"\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043b\u044e\u0434\u0435\u0439 \u043a \u0432\u0430\u0448\u0435\u043c\u0443 \u0441\u0435\u0430\u043d\u0441\u0443 \u0441\u0432\u044f\u0437\u0438",audioOnlyOff:"",audioOnlyOn:"",audioRoute:"\u0412\u044b\u0431\u0440\u0430\u0442\u044c \u0430\u0443\u0434\u0438\u043e\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e",authenticate:"\u0410\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c",callQuality:"\u041a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0432\u044f\u0437\u0438",chat:"\u0427\u0430\u0442",closeChat:"",documentClose:"\u0417\u0430\u043a\u0440\u044b\u0442\u044c \u043e\u0431\u0449\u0438\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442",documentOpen:"\u041e\u0442\u043a\u0440\u044b\u0442\u044c \u043e\u0431\u0449\u0438\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442",enterFullScreen:"\u041f\u043e\u043b\u043d\u044b\u0439 \u044d\u043a\u0440\u0430\u043d",enterTileView:"",exitFullScreen:"\u041f\u043e\u043b\u043d\u044b\u0439 \u044d\u043a\u0440\u0430\u043d",exitTileView:"",feedback:"\u041e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043e\u0442\u0437\u044b\u0432",hangup:"\u0412\u044b\u0445\u043e\u0434",invite:"\u041f\u0440\u0438\u0433\u043b\u0430\u0441\u0438\u0442\u044c",login:"\u0412\u043e\u0439\u0442\u0438",logout:"\u0417\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u044c \u0441\u0435\u0430\u043d\u0441",lowerYourHand:"",moreActions:"\u0411\u043e\u043b\u044c\u0448\u0435",mute:"\u0417\u0432\u0443\u043a (\u0432\u043a\u043b./\u0432\u044b\u043a\u043b.)",openChat:"",pip:"",profile:"\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0444\u0438\u043b\u044c",raiseHand:"\u0425\u043e\u0447\u0443 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c",raiseYourHand:"",Settings:"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438",sharedvideo:"\u0412\u0438\u0434\u0435\u043e YouTube",shareRoom:"\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435",shortcuts:"\u041a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0438 \u043a\u043b\u0430\u0432\u0438\u0448",speakerStats:"\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430",startScreenSharing:"",startSubtitles:"",stopScreenSharing:"",stopSubtitles:"",stopSharedVideo:"\u041e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0432\u0438\u0434\u0435\u043e \u043d\u0430 YouTube",talkWhileMutedPopup:"\u041f\u044b\u0442\u0430\u0435\u0442\u0435\u0441\u044c \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c? \u0423 \u0432\u0430\u0441 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d \u0437\u0432\u0443\u043a.",tileViewToggle:"",toggleCamera:"\u0412\u043a\u043b/\u0432\u044b\u043a\u043b \u043a\u0430\u043c\u0435\u0440\u0443",videomute:"\u041a\u0430\u043c\u0435\u0440\u0430",startvideoblur:"",stopvideoblur:""},transcribing:{ccButtonTooltip:"",error:"\u041e\u0448\u0438\u0431\u043a\u0430 \u0437\u0430\u043f\u0438\u0441\u0438. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u043f\u043e\u0437\u0436\u0435.",expandedLabel:"",failedToStart:"",labelToolTip:"",off:"",pending:"\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u043a \u0437\u0430\u043f\u0438\u0441\u0438 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438...",start:"\u0412\u043a\u043b/\u0412\u044b\u043a\u043b \u043f\u043e\u043a\u0430\u0437 \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u043e\u0432",stop:"\u0412\u043a\u043b/\u0412\u044b\u043a\u043b \u043f\u043e\u043a\u0430\u0437 \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u043e\u0432",tr:""},userMedia:{androidGrantPermissions:"\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c, \u043a\u043e\u0433\u0434\u0430 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u0441\u043f\u0440\u043e\u0441\u0438\u0442 \u043e \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f\u0445.",chromeGrantPermissions:"\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c, \u043a\u043e\u0433\u0434\u0430 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u0441\u043f\u0440\u043e\u0441\u0438\u0442 \u043e \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f\u0445.",edgeGrantPermissions:"\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0414\u0430, \u043a\u043e\u0433\u0434\u0430 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u0441\u043f\u0440\u043e\u0441\u0438\u0442 \u043e \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f\u0445.",electronGrantPermissions:"\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0434\u0430\u0439\u0442\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043d\u0430 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043a\u0430\u043c\u0435\u0440\u0435 \u0438 \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u0443",firefoxGrantPermissions:"\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u041f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u043c, \u043a\u043e\u0433\u0434\u0430 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u0441\u043f\u0440\u043e\u0441\u0438\u0442 \u043e \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f\u0445.",iexplorerGrantPermissions:"\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 OK, \u043a\u043e\u0433\u0434\u0430 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u0441\u043f\u0440\u043e\u0441\u0438\u0442 \u043e \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f\u0445.",nwjsGrantPermissions:"\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0434\u0430\u0439\u0442\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043d\u0430 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043a\u0430\u043c\u0435\u0440\u0435 \u0438 \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u0443",operaGrantPermissions:"\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c, \u043a\u043e\u0433\u0434\u0430 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u0441\u043f\u0440\u043e\u0441\u0438\u0442 \u043e \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f\u0445.","react-nativeGrantPermissions":"\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c, \u043a\u043e\u0433\u0434\u0430 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u0441\u043f\u0440\u043e\u0441\u0438\u0442 \u043e \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f\u0445.",safariGrantPermissions:"\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 OK, \u043a\u043e\u0433\u0434\u0430 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u0441\u043f\u0440\u043e\u0441\u0438\u0442 \u043e \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f\u0445."},videoSIPGW:{busy:"\u041c\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u043d\u0430\u0434 \u0432\u044b\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0435\u043d\u0438\u0435\u043c \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0438\u043d\u0443\u0442.",busyTitle:"\u0421\u043b\u0443\u0436\u0431\u0430 \u0441\u0435\u0439\u0447\u0430\u0441 \u0437\u0430\u043d\u044f\u0442\u0430",errorAlreadyInvited:"{{displayName}} \u0443\u0436\u0435 \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0435\u043d",errorInvite:"\u0412\u0441\u0442\u0440\u0435\u0447\u0430 \u0435\u0449\u0435 \u043d\u0435 \u043d\u0430\u0447\u0430\u043b\u0430\u0441\u044c. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u043f\u043e\u0437\u0436\u0435.",errorInviteFailed:"\u041c\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u043d\u0430\u0434 \u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u043f\u043e\u0437\u0436\u0435.",errorInviteFailedTitle:"\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u044f {{displayName}}",errorInviteTitle:"\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u044f \u0432 \u043a\u043e\u043c\u043d\u0430\u0442\u0443",pending:"{{displayName}} \u0431\u044b\u043b \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0435\u043d"},videoStatus:{audioOnly:"\u0422\u043e\u043b\u044c\u043a\u043e \u0437\u0432\u0443\u043a",audioOnlyExpanded:"",callQuality:"",hd:"HD",hdTooltip:"\u0412\u0438\u0434\u0435\u043e \u0432\u044b\u0441\u043e\u043a\u043e\u0433\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430",highDefinition:"\u0412\u044b\u0441\u043e\u043a\u043e\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e",labelTooiltipNoVideo:"\u041d\u0435\u0442 \u0432\u0438\u0434\u0435\u043e",labelTooltipAudioOnly:"",ld:"LD",ldTooltip:"\u0412\u0438\u0434\u0435\u043e \u043d\u0438\u0437\u043a\u043e\u0433\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430",lowDefinition:"\u041d\u0438\u0437\u043a\u043e\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e",onlyAudioAvailable:"\u0422\u043e\u043b\u044c\u043a\u043e \u0437\u0432\u0443\u043a",onlyAudioSupported:"\u0412 \u044d\u0442\u043e\u043c \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0432\u0443\u043a.",p2pEnabled:"\u0412\u043a\u043b\u044e\u0447\u0435\u043d \u0440\u0435\u0436\u0438\u043c \"\u0442\u043e\u0447\u043a\u0430-\u043a-\u0442\u043e\u0447\u043a\u0435\"",p2pVideoQualityDescription:"",recHighDefinitionOnly:"\u041f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u044b\u0441\u043e\u043a\u043e\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e.",sd:"SD",sdTooltip:"\u0412\u0438\u0434\u0435\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0433\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430",standardDefinition:"\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e (SD)"},videothumbnail:{domute:"\u0412\u044b\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0437\u0432\u0443\u043a",flip:"\u041e\u0442\u0440\u0430\u0437\u0438\u0442\u044c",kick:"\u0412\u044b\u043a\u0438\u043d\u0443\u0442\u044c",moderator:"\u041c\u043e\u0434\u0435\u0440\u0430\u0442\u043e\u0440",mute:"\u0411\u0435\u0437 \u0437\u0432\u0443\u043a\u0430",muted:"\u0417\u0432\u0443\u043a \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d",remoteControl:"\u0414\u0438\u0441\u0442\u0430\u043d\u0446\u0438\u043e\u043d\u043d\u043e\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435",show:"",videomute:""},welcomepage:{accessibilityLabel:{join:"\u041d\u0430\u0436\u043c\u0438\u0442\u0435 \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u044c\u0441\u044f",roomname:"\u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u043c\u043d\u0430\u0442\u044b"},appDescription:"\u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0432\u0438\u0434\u0435\u043e\u0447\u0430\u0442 \u0441\u043e \u0432\u0441\u0435\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439. \u041f\u0440\u0438\u0433\u043b\u0430\u0448\u0430\u0439\u0442\u0435 \u0437\u043d\u0430\u043a\u043e\u043c\u044b\u0445! {{app}} \u2014 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0432\u0438\u0434\u0435\u043e\u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0439 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c. \u041f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435\u0441\u044c \u043a\u0430\u0436\u0434\u044b\u0439 \u0434\u0435\u043d\u044c, \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e \u0438 \u0431\u0435\u0437 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438.",audioVideoSwitch:{audio:"\u041a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u044c",video:"\u0412\u0438\u0434\u0435\u043e"},calendar:"\u041a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u044c",connectCalendarButton:"\u041f\u0440\u0438\u0432\u044f\u0437\u0430\u0442\u044c \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u044c",connectCalendarText:"",enterRoomTitle:"",go:"\u041e\u041a",join:"\u041f\u0420\u0418\u0421\u041e\u0415\u0414\u0418\u041d\u0418\u0422\u042c\u0421\u042f",info:"",privacy:"\u041f\u0440\u0438\u0432\u0430\u0442\u043d\u043e\u0441\u0442\u044c",recentList:"",recentListDelete:"",recentListEmpty:"",reducedUIText:"",roomname:"\u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u043c\u043d\u0430\u0442\u044b",roomnameHint:"\u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u043c\u043d\u0430\u0442\u044b \u0438\u043b\u0438 \u0435\u0435 \u0430\u0434\u0440\u0435\u0441. \u041c\u043e\u0436\u0435\u0442\u0435 \u0441\u0430\u043c\u0438 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0435\u0433\u043e \u0431\u0443\u0434\u0443\u0449\u0438\u043c \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0430\u043c \u0432\u0441\u0442\u0440\u0435\u0447\u0438, \u0447\u0442\u043e\u0431\u044b \u043e\u043d\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u0438\u043c\u0435\u043d\u043d\u043e \u0435\u0433\u043e.",sendFeedback:"\u041e\u0431\u0440\u0430\u0442\u043d\u0430\u044f \u0441\u0432\u044f\u0437\u044c",terms:"\u0423\u0441\u043b\u043e\u0432\u0438\u044f",title:""}}},683,[]); -__d(function(a,s,k,i,n,e,o){n.exports={en:"Engelska",af:"",az:"",bg:"Bulgariska",cs:"",de:"Tyska",el:"",eo:"Esperanto",es:"Spanska",fr:"Franska",hy:"Armeniska",it:"Italienska",ja:"",ko:"",nb:"Norska (Bokm\xe5l)",oc:"Occitanska",pl:"Polska",ptBR:"Portugisiska (Brasilien)",ru:"Ryska",sk:"Slovakiska",sl:"Slovenska",sv:"Svenska",tr:"Turkiska",vi:"",zhCN:"Kinesiska (Kina)"}},684,[]); -__d(function(e,n,t,a,r,i,l){r.exports={addPeople:{add:"Bjud in",countryNotSupported:"Vi st\xf6der inte den h\xe4r platsen \xe4nnu.",countryReminder:"Ringer du till utlandsnummer? B\xf6rja alltid med landskoden.",disabled:"Du kan inte bjuda in andra.",failedToAdd:"",footerText:"Utringningsfunktionen \xe4r avst\xe4ngd.",loading:"S\xf6ker efter personer och telefonnummer",loadingNumber:"Bekr\xe4ftar telefonnummer",loadingPeople:"S\xf6ker efter personer att bjuda in",noResults:"Inga s\xf6ktr\xe4ffar",noValidNumbers:"Ange ett telefonnummer",searchNumbers:"L\xe4gg till telefonnummer",searchPeople:"S\xf6k efter personer",searchPeopleAndNumbers:"S\xf6k efter personer eller l\xe4gg till deras telefonnummer",telephone:"Telefon: {{number}}",title:"Bjud in andra till m\xf6tet"},audioDevices:{bluetooth:"Bluetooth",headphones:"H\xf6rlurar",phone:"Telefon",speaker:"Talare"},audioOnly:{audioOnly:"Enbart ljud"},calendarSync:{addMeetingURL:"L\xe4gg till en m\xf6tesl\xe4nk",confirmAddLink:"Vill du l\xe4gga till en Jitsi-l\xe4nk i h\xe4ndelsen?",error:{appConfiguration:"Kalenderintegrationen \xe4r inte r\xe4tt inst\xe4lld.",generic:"Ett fel har intr\xe4ffat. Kontrollera dina kalenderinst\xe4llningar eller uppdatera kalendern.",notSignedIn:"Ett fel intr\xe4ffade n\xe4r kalenderh\xe4ndelserna autentiserades f\xf6r visning. Kontrollera kalenderinst\xe4llningarna och f\xf6rs\xf6k att logga in igen."},join:"G\xe5 med",joinTooltip:"G\xe5 med i m\xf6tet",nextMeeting:"n\xe4sta m\xf6te",noEvents:"Det finns inga inbokade kommande aktiviteter.",ongoingMeeting:"p\xe5g\xe5ende m\xf6te",permissionButton:"\xd6ppna inst\xe4llningar",permissionMessage:"Till\xe5telse fr\xe5n kalendern kr\xe4vs f\xf6r att se dina m\xf6ten i appen.",refresh:"Uppdatera kalender",today:"Idag"},chat:{error:"",messagebox:"Skriv ett meddelande",nickname:{popover:"V\xe4lj ett namn",title:"Skriv in ett namn f\xf6r att b\xf6rja anv\xe4nda chatten"},title:"Chatt"},connectingOverlay:{joiningRoom:"Ansluter till m\xf6tet ..."},connection:{ATTACHED:"Ansluten",AUTHENTICATING:"Kontrollerar beh\xf6righet",AUTHFAIL:"Autentisering misslyckades",CONNECTED:"Ansluten",CONNECTING:"Ansluter",CONNFAIL:"Anslutningen misslyckades",DISCONNECTED:"Fr\xe5nkopplad",DISCONNECTING:"Kopplar fr\xe5n",ERROR:"Fel",RECONNECTING:"Ett n\xe4tverksproblem uppstod. \xc5teransluter..."},connectionindicator:{address:"Adress:",bandwidth:"Ber\xe4knad bandbredd:",bitrate:"Bithastighet:",bridgeCount:"Serverantal: ",connectedTo:"Ansluten till:",framerate:"Bildfrekvens:",less:"Visa mindre",localaddress:"Lokal adress:",localaddress_plural:"Lokala adresser:",localport:"Lokal port:",localport_plural:"Lokala portar:",more:"Visa mer",packetloss:"Paketf\xf6rluster:",quality:{good:"Bra",inactive:"Inaktiv",lost:"F\xf6rlorad",nonoptimal:"Ej optimal",poor:"D\xe5ligt"},remoteaddress:"Fj\xe4rradress:",remoteaddress_plural:"Fj\xe4rradresser:",remoteport:"Fj\xe4rrport:",remoteport_plural:"Fj\xe4rrportar:",resolution:"Uppl\xf6sning:",status:"Anslutning:",transport:"Transport:",turn:" (turn)"},dateUtils:{earlier:"Tidigare",today:"Idag",yesterday:"Ig\xe5r"},deepLinking:{appNotInstalled:"Du beh\xf6ver mobilappen {{app}} f\xf6r att g\xe5 med i det h\xe4r m\xf6tet fr\xe5n din telefon.",description:"H\xe4nde inget? Vi f\xf6rs\xf6kte starta m\xf6tet i programmet {{app}} i din skrivbordsapp. F\xf6rs\xf6k igen eller starta det i webbappen {{app}}.",descriptionWithoutWeb:"",downloadApp:"H\xe4mta appen",launchWebButton:"Starta p\xe5 webben",openApp:"Forts\xe4tt till appen",title:"Startar ditt m\xf6te i {{app}} ...",tryAgainButton:"F\xf6rs\xf6k igen p\xe5 skrivbordet"},defaultLink:"t ex. {{url}}",deviceError:{cameraError:"Det gick inte att komma \xe5t kameran",cameraPermission:"Fel vid beg\xe4ran om \xe5tkomst till kamera",microphoneError:"Det gick inte att komma \xe5t mikrofonen",microphonePermission:"Fel vid beg\xe4ran om \xe5tkomst till mikrofon"},deviceSelection:{noPermission:"Beh\xf6righet nekad",previewUnavailable:"F\xf6rhandsgranskning inte tillg\xe4nglig",selectADevice:"V\xe4lj en enhet",testAudio:"Spela upp ett testljud"},dialog:{accessibilityLabel:{liveStreaming:"Lives\xe4ndning"},allow:"Till\xe5t",alreadySharedVideoMsg:"",alreadySharedVideoTitle:"Endast en delad video \xe5t g\xe5ngen till\xe5ts",applicationWindow:"Applikationsf\xf6nster",Back:"Tillbaka",cameraConstraintFailedError:"Din kamera uppfyller inte kraven f\xf6r anv\xe4ndning.",cameraNotFoundError:"Hittar ingen kamera.",cameraNotSendingData:"Vi saknar \xe5tkomst till kameran. Kontrollera om ett annat program anv\xe4nder enheten, v\xe4lj en annan enhet fr\xe5n inst\xe4llningsmenyn eller f\xf6rs\xf6k att starta om programmet.",cameraNotSendingDataTitle:"\xc5tkomst saknas till kameran",cameraPermissionDeniedError:"Du har inte till\xe5tit anv\xe4ndning av din kamera. Du kan g\xe5 med i m\xf6tet men de andra kan d\xe5 inte se dej. Om du vill till\xe5ta anv\xe4ndning av din kamera g\xf6r du det via kameraknappen i URL-f\xe4ltet.",cameraUnknownError:"Av ok\xe4nd anledning kan din kamera inte anv\xe4ndas.",cameraUnsupportedResolutionError:"Din kamera st\xf6der inte den kr\xe4vda videouppl\xf6sningen.",Cancel:"Avbryt",close:"St\xe4ng",conferenceDisconnectMsg:"Kolla din internetanslutning. \xc5teransluter om {{seconds}} sekunder...",conferenceDisconnectTitle:"Du har kopplats ner.",conferenceReloadMsg:"Vi f\xf6rs\xf6ker fixa problemet. \xc5teransluter om {{seconds}} sekunder...",conferenceReloadTitle:"N\xe5got gick snett.",confirm:"Bekr\xe4fta",confirmNo:"Nej",confirmYes:"Ja",connectError:"Ojd\xe5! N\xe5got gick fel och vi kunde inte ansluta till konferensen.",connectErrorWithMsg:"Ojd\xe5! N\xe5got gick fel och vi kunde inte ansluta till konferensen: {{msg}}",connecting:"Ansluter",contactSupport:"Kontakta kundtj\xe4nst",copy:"Kopiera",dismiss:"F\xf6rkasta",displayNameRequired:"",done:"Klar",enterDisplayName:"",error:"Fel",externalInstallationMsg:"Misslyckades att installera skrivbordsdelnings-till\xe4gget.",externalInstallationTitle:"Till\xe4gg kr\xe4vs",goToStore:"G\xe5 till appbutiken",gracefulShutdown:"V\xe5r tj\xe4nst \xe4r f\xf6r tillf\xe4llet nedst\xe4ngd f\xf6r underh\xe5ll. V\xe4nligen f\xf6rs\xf6k senare.",IamHost:"Jag \xe4r v\xe4rd",incorrectRoomLockPassword:"",incorrectPassword:"Fel anv\xe4ndarnamn eller l\xf6senord",inlineInstallationMsg:"Misslyckades att installera skrivbordsdelnings-till\xe4gget.",inlineInstallExtension:"Installera nu",internalError:"Ett fel uppstod. Fel: {{error}}",internalErrorTitle:"Internt fel",kickMessage:"",kickParticipantButton:"Sparka ut",kickParticipantDialog:"Vill du sparka ut den h\xe4r deltagaren?",kickParticipantTitle:"Tysta deltagaren?",kickTitle:"",liveStreaming:"Str\xf6mma",liveStreamingDisabledForGuestTooltip:"G\xe4ster kan inte starta en lives\xe4ndning.",liveStreamingDisabledTooltip:"Starta lives\xe4ndning har inaktiverats.",lockMessage:"Misslyckades att l\xe5sa konferensen.",lockRoom:"",lockTitle:"L\xe5sning misslyckades",logoutQuestion:"\xc4r du s\xe4ker p\xe5 att du vill logga ut och stoppa konferensen?",logoutTitle:"Logga ut",maxUsersLimitReached:"",maxUsersLimitReachedTitle:"",micConstraintFailedError:"Din mikrofon uppfyller inte kraven f\xf6r anv\xe4ndning.",micNotFoundError:"Hittar ingen mikrofon.",micNotSendingData:"",micNotSendingDataTitle:"",micPermissionDeniedError:"Du har inte till\xe5tit anv\xe4ndning av din mikrofon. Du kan g\xe5 med i m\xf6tet men de andra kan d\xe5 inte h\xf6ra dej. Om du vill till\xe5ta anv\xe4ndning av din mikrofon g\xf6r du det via mikrofonknappen i URL-f\xe4ltet.",micUnknownError:"Av ok\xe4nd anledning kan inte din mikrofon anv\xe4ndas.",muteParticipantBody:"Du kan inte aktivera deras mikrofoner, men de kan g\xf6ra det sj\xe4lva.",muteParticipantButton:"Tysta",muteParticipantDialog:"Vill du tysta den h\xe4r deltagaren? Du kan inte aktivera mikrofonen igen, men deltagaren kan n\xe4r som helst g\xf6ra det sj\xe4lv.",muteParticipantTitle:"Tysta deltagaren?",Ok:"Ok",passwordLabel:"",passwordNotSupported:"Att s\xe4tta ett l\xf6senord f\xf6r konferensrummet st\xf6ds inte.",passwordNotSupportedTitle:"",passwordRequired:"",popupError:"Din webbl\xe4sare blockerar pop-up-f\xf6nster fr\xe5n sajten. Till\xe5t pop-up-f\xf6nster fr\xe5n den h\xe4r sajten i inst\xe4llningarna och f\xf6rs\xf6k igen.",popupErrorTitle:"Pop-up blockerad",recording:"Inspelning",recordingDisabledForGuestTooltip:"G\xe4ster kan inte starta inspelningar.",recordingDisabledTooltip:"Starta inspelning har inaktiverats.",rejoinNow:"\xc5teranslut nu",remoteControlAllowedMessage:"{{user}} godk\xe4nde din beg\xe4ran om fj\xe4rrstyrning.",remoteControlDeniedMessage:"{{user}} avb\xf6jde din beg\xe4ran om fj\xe4rrstyrning.",remoteControlErrorMessage:"Ett fel uppstod n\xe4r fj\xe4rrstyrningsr\xe4ttigheter beg\xe4rdes fr\xe5n {{user}}.",remoteControlRequestMessage:"Vill du till\xe5ta att {{user}} f\xe5r kontrollera din sk\xe4rm?",remoteControlShareScreenWarning:"OBS, om du trycker \"Till\xe5t\" kommer du dela din sk\xe4rm!",remoteControlStopMessage:"Fj\xe4rrstyrningssessionen avslutades.",remoteControlTitle:"Anslutning till fj\xe4rrskrivbord",Remove:"Ta bort",removePassword:"",removeSharedVideoMsg:"\xc4r du s\xe4ker p\xe5 att du vill ta bort din delade video?",removeSharedVideoTitle:"Ta bort den delade videon",reservationError:"Fel i reservationssystemet",reservationErrorMsg:"Felkod: {{code}}, meddelande: {{msg}}",retry:"F\xf6rs\xf6k igen",screenSharingFailedToInstall:"Ut\xf6kningen f\xf6r sk\xe4rmdelning kunde inte installeras.",screenSharingFailedToInstallTitle:"Ut\xf6kningen f\xf6r sk\xe4rmdelning kunde inte installeras",screenSharingFirefoxPermissionDeniedError:"N\xe5got gick fel n\xe4r du f\xf6rs\xf6kte dela sk\xe4rmen. Det kan vara f\xf6r att du inte till\xe5ter det. ",screenSharingFirefoxPermissionDeniedTitle:"Sk\xe4rmdelningen misslyckades!",screenSharingPermissionDeniedError:"N\xe5got \xe4r fel med \xe5tkomstinst\xe4llningarna f\xf6r sk\xe4rmdelningen. Ladda om sidan och f\xf6rs\xf6k igen.",serviceUnavailable:"Tj\xe4nsten otillg\xe4nglig",sessTerminated:"Konferensen avslutades",Share:"Dela",shareVideoLinkError:"Skriv in en fungerande Youtube-l\xe4nk.",shareVideoTitle:"Ta bort en delad video",shareYourScreen:"Dela din sk\xe4rm",shareYourScreenDisabled:"Sk\xe4rmdelning har inaktiverats.",shareYourScreenDisabledForGuest:"G\xe4ster kan inte sk\xe4rmdela.",startLiveStreaming:"Starta lives\xe4ndning",startRecording:"Starta inspelning",startRemoteControlErrorMessage:"Ett fel intr\xe4ffade n\xe4r fj\xe4rrsessionen skulle starta!",stopLiveStreaming:"Avsluta lives\xe4ndning",stopRecording:"Avsluta inspelningen",stopRecordingWarning:"Vill du avsluta den p\xe5g\xe5ende inspelningen?",stopStreamingWarning:"Vill du avsluta den p\xe5g\xe5ende str\xf6mningen?",streamKey:"Nyckel f\xf6r livestr\xf6m",Submit:"Skicka",thankYou:"Tack f\xf6r att du anv\xe4nder {{appName}}!",token:"token",tokenAuthFailed:"Du \xe4r inte beh\xf6rig att delta i det h\xe4r samtalet.",tokenAuthFailedTitle:"Autentisering misslyckades",transcribing:"Transkriberar",unlockRoom:"",userPassword:"anv\xe4ndarl\xf6senord",WaitForHostMsg:"Konferensen {{room}} har inte b\xf6rjat \xe4n. Autentisera konferensen om du \xe4r v\xe4rd. V\xe4nta annars p\xe5 att v\xe4rden startar konferensen.",WaitForHostMsgWOk:"Konferensen {{room}} har inte b\xf6rjat \xe4n. Om du \xe4r v\xe4rd, autentisera konferensen genom att trycka p\xe5 Ok. V\xe4nta annars p\xe5 att v\xe4rden startar konferensen.",WaitingForHost:"V\xe4ntar p\xe5 v\xe4rden ...",Yes:"Ja",yourEntireScreen:"Helsk\xe4rm"},"\x05dialog":{},dialOut:{statusMessage:"\xe4r nu {{status}}"},feedback:{average:"Medel",bad:"D\xe5ligt",detailsLabel:"Ber\xe4tta mer.",good:"Bra",rateExperience:"Betygs\xe4tt din m\xf6tesupplevelse",veryBad:"Mycket d\xe5ligt",veryGood:"Mycket bra"},incomingCall:{answer:"Svara",audioCallTitle:"Inkommande samtal",decline:"F\xf6rkasta",productLabel:"fr\xe5n Jitsi Meet",videoCallTitle:"Inkommande videosamtal"},info:{accessibilityLabel:"Visa info",addPassword:"",cancelPassword:"",conferenceURL:"L\xe4nk:",country:"Land",dialANumber:"Om du vill g\xe5 med i m\xf6tet ringer du n\xe5got av dessa nummer och fyller sedan i PIN-koden.",dialInConferenceID:"PIN-kod:",dialInNotSupported:"Tyv\xe4rr st\xf6ds inte inringning just nu.",dialInNumber:"Inringning:",dialInSummaryError:"Kan inte h\xe4mta inringningsinformation just nu. F\xf6rs\xf6k igen senare.",dialInTollFree:"Avgiftsfritt nummer",genericError:"Oj d\xe5, n\xe5got gick fel.",inviteLiveStream:"Om du vill se lives\xe4ndningen av m\xf6tet klickar du h\xe4r: {{url}}",invitePhone:"",invitePhoneAlternatives:"",inviteURLFirstPartGeneral:"Du \xe4r inbjuden till ett m\xf6te.",inviteURLFirstPartPersonal:"",inviteURLSecondPart:"",liveStreamURL:"Lives\xe4ndning:",moreNumbers:"Fler nummer",noNumbers:"Inga inringningsnummer.",noPassword:"Inga enheter",noRoom:"Inget rum specificerades f\xf6r inringning.",numbers:"Inringningsnummer",password:"",title:"Dela",tooltip:"Dela l\xe4nk och information om inringning f\xf6r m\xf6tet",label:"M\xf6tesinformation"},inviteDialog:{alertText:"Det gick inte att bjuda in alla deltagare.",header:"Bjud in",searchCallOnlyPlaceholder:"Ange telefonnummer",searchPeopleOnlyPlaceholder:"Leta efter deltagare",searchPlaceholder:"Deltagare eller telefonnummer",send:"Skicka"},inlineDialogFailure:{msg:"Vi slirade lite.",retry:"F\xf6rs\xf6k igen",support:"Support",supportMsg:"Om detta forts\xe4tter h\xe4nda kontakta"},keyboardShortcuts:{focusLocal:"S\xe4tt fokus p\xe5 din videobild",focusRemote:"Fokusera p\xe5 n\xe5gon annans video",fullScreen:"Visa eller st\xe4ng fullsk\xe4rm",keyboardShortcuts:"Tangentbordsgenv\xe4gar",localRecording:"Visa eller d\xf6lj lokala inspelningsverktyg",mute:"Tysta eller aktivera din mikrofon",pushToTalk:"Tryck-f\xf6r-att-prata",raiseHand:"R\xe4ck upp eller ta ner din jag vill ha ordet-hand",showSpeakerStats:"Visa talarstatistik",toggleChat:"\xd6ppna eller st\xe4ng chatten",toggleFilmstrip:"Visa eller d\xf6lj videominiatyrer",toggleScreensharing:"V\xe4xla mellan kamera och sk\xe4rmdelning",toggleShortcuts:"Visa eller d\xf6lj kortkommandon",videoMute:"Aktivera / avaktivera din kamera"},liveStreaming:{busy:"Vi f\xf6rs\xf6ker frig\xf6ra fler str\xf6mningsresurser. F\xf6rs\xf6k igen senare.",busyTitle:"Alla str\xf6mningsresurser \xe4r upptagna",changeSignIn:"V\xe4xla anv\xe4ndarkonto.",choose:"V\xe4lj en str\xf6m",chooseCTA:"V\xe4lj ett lives\xe4ndningsalternativ. Du \xe4r nu inloggad som {{email}}.",enterStreamKey:"Skriv in l\xf6senordet till YouTube-lives\xe4ndningen h\xe4r.",error:"Str\xf6mning misslyckades. F\xf6rs\xf6k igen.",errorAPI:"Ett fel intr\xe4ffade vid \xe5tkomst till dina YouTube-s\xe4ndningar. F\xf6rs\xf6k att logga in igen.",errorLiveStreamNotEnabled:"Lives\xe4ndning \xe4r otillg\xe4nglig f\xf6r {{email}}. Aktivera lives\xe4ndning eller logga in p\xe5 ett konto d\xe4r det \xe4r aktiverat.",expandedOff:"Lives\xe4ndningen har avslutats",expandedOn:"M\xf6tet lives\xe4nds just nu p\xe5 YouTube.",expandedPending:"Lives\xe4ndningen startas ...",failedToStart:"Str\xf6mningen kunde inte p\xe5b\xf6rjas",getStreamKeyManually:"",invalidStreamKey:"Lives\xe4ndningsl\xf6senordet kan vara felaktigt.",off:"Str\xf6mning avslutad",on:"Str\xf6mma",pending:"B\xf6rja str\xf6mma ...",serviceName:"Lives\xe4ndningstj\xe4nst",signedInAs:"Du \xe4r nu inloggad som:",signIn:"Logga in med Google",signInCTA:"Logga in eller ange ditt lives\xe4ndningsl\xf6senord fr\xe5n YouTube.",signOut:"Logga ut",start:"Starta en lives\xe4ndning",streamIdHelp:"Vad \xe4r det h\xe4r?",unavailableTitle:"Lives\xe4ndning otillg\xe4nglig"},"\x05liveStreaming":{},localRecording:{clientState:{off:"Av",on:"P\xe5",unknown:"Ok\xe4nd"},dialogTitle:"Lokala inspelningsverktyg",duration:"Varaktighet",durationNA:"N/A",encoding:"Kodning",label:"LOR",labelToolTip:"Lokal inspelning aktiverad",localRecording:"Lokal inspelning",me:"Jag",messages:{engaged:"Lokal inspelning aktiverad.",finished:"Inspelningen {{token}} \xe4r avslutad. Skicka den inspelade filen till moderatorn.",finishedModerator:"Inspelningen {{token}} \xe4r avslutad. Den lokala inspelningen har sparats. Be de \xf6vriga deltagarna att dela sina inspelningar.",notModerator:"Du \xe4r inte administrat\xf6r. Du kan inte starta eller avsluta den lokala inspelningen."},moderator:"Moderator",no:"Nej",participant:"Deltagare",participantStats:"Deltagarstatistik",sessionToken:"Sessionstoken",start:"Starta inspelning",stop:"Avsluta inspelning",yes:"Ja"},lockRoomPassword:"l\xf6senord",lockRoomPasswordUppercase:"L\xf6senord",me:"jag",notify:{connectedOneMember:"{{name}} har g\xe5tt med i m\xf6tet",connectedThreePlusMembers:"{{name}} och {{count}} andra har g\xe5tt med i m\xf6tet",connectedTwoMembers:"{{first}} och {{second}} har g\xe5tt med i m\xf6tet",disconnected:"fr\xe5nkopplad",focus:"Konferensfokus",focusFail:"{{component}} inte tillg\xe4nglig - f\xf6rs\xf6ker igen om {{ms}} sek",grantedTo:"Moderatorsr\xe4ttigheter tilldelat till {{to}}!",invitedOneMember:"",invitedThreePlusMembers:"",invitedTwoMembers:"",kickParticipant:"",me:"Jag",moderator:"Moderatorsr\xe4ttigheter tilldelades!",muted:"Du har startat konversationen utan mikrofon.",mutedTitle:"Du har mikrofonen avst\xe4ngd!",mutedRemotelyTitle:"",mutedRemotelyDescription:"",passwordRemovedRemotely:"",passwordSetRemotely:"",raisedHand:"{{name}} vill prata.",somebody:"N\xe5gon",startSilentTitle:"",startSilentDescription:"",suboptimalExperienceDescription:"Hmm... din upplevelse med {{appName}} kommer inte att bli s\xe4rskilt bra. Vi f\xf6rs\xf6ker hitta s\xe4tt att f\xf6rb\xe4ttra det, men till dess anv\xe4nd en av de helt st\xf6dda webbl\xe4sarna.",suboptimalExperienceTitle:"Webbl\xe4sarvarning",unmute:"",newDeviceCameraTitle:"Ny kamera hittad",newDeviceAudioTitle:"Ny ljudenhet hittad",newDeviceAction:"Anv\xe4nd"},passwordSetRemotely:"satt av en annan deltagare",passwordDigitsOnly:"",poweredby:"drivs av",presenceStatus:{busy:"Upptagen",calling:"Ringer ...",connected:"Ansluten",connecting:"Ansluter ...",connecting2:"Ansluter* ...",disconnected:"Fr\xe5nkopplad",expired:"Utg\xe5ngen",ignored:"Ignorerad",initializingCall:"Startar samtal ...",invited:"Inbjuden",rejected:"Avvisad",ringing:"Ringer ..."},profile:{setDisplayNameLabel:"Ange ditt visningsnamn",setEmailInput:"Skriv e-postadress",setEmailLabel:"Ange din gravatar-e-postadress",title:"Profil"},recording:{authDropboxText:"Ladda upp till Dropbox",availableSpace:"Tillg\xe4ngligt utrymme: {{spaceLeft}} MB (ungef\xe4r {{duration}} minuters inspelning)",beta:"BETA",busy:"Vi arbetar med att frig\xf6ra inspelningsresurser. F\xf6rs\xf6k igen om n\xe5gra minuter.",busyTitle:"Alla inspelare \xe4r upptagna",error:"Inspelningen misslyckades. F\xf6rs\xf6k igen.",expandedOff:"Inspelningen har avslutats",expandedOn:"M\xf6tet spelas nu in.",expandedPending:"Inspelningen startar ...",failedToStart:"Inspelningen kunde inte p\xe5b\xf6rjas",fileSharingdescription:"Dela inspelningen med m\xf6tesdeltagare",live:"LIVE",loggedIn:"Inloggad som {{userName}}",off:"Inspelningen avslutades",on:"Inspelning",pending:"F\xf6rbereder inspelning av m\xf6tet ...",rec:"REC",serviceDescription:"Din inspelning kommer att sparas av inspelningstj\xe4nsten",serviceName:"Inspelningstj\xe4nst",signIn:"Logga in",signOut:"Logga ut",unavailable:"{{serviceName}} \xe4r inte tillg\xe4nglig. Vi f\xf6rs\xf6ker \xe5tg\xe4rda felet. F\xf6rs\xf6k igen senare.",unavailableTitle:"Inspelning kan inte g\xf6ras"},sectionList:{pullToRefresh:"Dra f\xf6r att uppdatera"},settings:{calendar:{about:"Kalenderintegrationen med {{appName}} anv\xe4nds f\xf6r att h\xe4mta din kalender p\xe5 ett s\xe4kert s\xe4tt s\xe5 att den kan l\xe4sa framtida h\xe4ndelser.",disconnect:"Koppla ifr\xe5n",microsoftSignIn:"Logga in med Microsoft",signedIn:"H\xe4mtar kalenderh\xe4ndelser fr\xe5n {{email}}. Tryck p\xe5 knappen nedan f\xf6r att sluta h\xe4mta kalenderh\xe4ndelser.",title:"Kalender"},devices:"Enheter",followMe:"Alla f\xf6ljer mej",language:"Spr\xe5k",loggedIn:"Inloggad som {{name}}",moderator:"Moderator",more:"Mer",name:"Namn",noDevice:"Inga enheter",selectAudioOutput:"Ljudutmatning",selectCamera:"Kamera",selectMic:"Mikrofon",startAudioMuted:"Alla b\xf6rjar tystade",startVideoMuted:"Alla b\xf6rjar osynliga",title:"Inst\xe4llningar"},settingsView:{alertOk:"OK",alertTitle:"Varning",alertURLText:"Den angivna serverl\xe4nken \xe4r felaktig",buildInfoSection:"Versionsinformation",conferenceSection:"Konferens",displayName:"Sk\xe4rmnamn",email:"E-post",header:"Inst\xe4llningar",profileSection:"Profil",serverURL:"Serverl\xe4nk",startWithAudioMuted:"Starta med ljudet avst\xe4ngt",startWithVideoMuted:"Starta med videon avst\xe4ngd",version:"Version"},share:{dialInfoText:"",mainText:""},speaker:"Talare",speakerStats:{hours:"{{count}}h",minutes:"{{count}}m",name:"Namn",seconds:"{{count}}s",speakerStats:"Talarstatistik",speakerTime:"Talartid"},startupoverlay:{policyText:" ",title:"{{app}} vill anv\xe4nda din kamera och mikrofon."},suspendedoverlay:{rejoinKeyTitle:"G\xe5 med igen",text:"Klicka p\xe5 knappen \xc5teranslut f\xf6r att koppla upp igen.",title:"Ditt videosamtal avbr\xf6ts d\xe5 din dator gick in i vilol\xe4ge."},toolbar:{accessibilityLabel:{audioOnly:"Sl\xe5 av eller p\xe5 ljudet",audioRoute:"V\xe4lj ljudenhet",callQuality:"",cc:"Sl\xe5 av eller p\xe5 undertexter",chat:"\xd6ppna eller st\xe4ng chattf\xf6nster",document:"\xd6ppna eller st\xe4ng delat dokument",feedback:"L\xe4mna feedback",fullScreen:"\xd6ppna eller st\xe4ng fullsk\xe4rm",hangup:"L\xe4mna samtalet",invite:"Bjud in andra",kick:"Sparka ut deltagare",localRecording:"\xd6ppna eller st\xe4ng lokala inspelningsverktyg",lockRoom:"Sl\xe5 av eller p\xe5 m\xf6tesl\xf6senord",moreActions:"\xd6ppna eller st\xe4ng menyn f\xf6r fler \xe5tg\xe4rder",moreActionsMenu:"Meny f\xf6r fler \xe5tg\xe4rder",mute:"Sl\xe5 av eller p\xe5 ljud",pip:"\xd6ppna eller st\xe4ng bild-i-bild-l\xe4ge",profile:"Redigera din profil",raiseHand:"R\xe4ck upp eller ta ner handen",recording:"Sl\xe5 av eller p\xe5 inspelning",remoteMute:"Tysta deltagare",Settings:"\xd6ppna eller st\xe4ng inst\xe4llningar",sharedvideo:"Sl\xe5 av eller p\xe5 Youtube-videodelning",shareRoom:"Bjud in n\xe5gon",shareYourScreen:"Sl\xe5 av eller p\xe5 sk\xe4rmdelning",shortcuts:"St\xe4ng eller \xf6ppna genv\xe4gar",show:"",speakerStats:"St\xe4ng eller \xf6ppna h\xf6gstalarstatistik",tileView:"\xd6ppna eller st\xe4ng panelvyn",toggleCamera:"\xd6ppna eller st\xe4ng kamera",videomute:"S\xe4tt p\xe5 eller st\xe4ng av mikrofonen",videoblur:""},addPeople:"L\xe4gg till personer i samtal",audioOnlyOff:"Avsluta ljudl\xe4get",audioOnlyOn:"Starta ljudl\xe4get",audioRoute:"V\xe4lj ljudenhet",authenticate:"Autentisera",callQuality:"",chat:"\xd6ppna / st\xe4ng chatten",closeChat:"St\xe4ng chatt",documentClose:"St\xe4ng delat dokument",documentOpen:"\xd6ppna delat dokument",enterFullScreen:"Visa fullsk\xe4rm",enterTileView:"\xd6ppna panelvy",exitFullScreen:"St\xe4ng fullsk\xe4rm",exitTileView:"St\xe4ng panelvy",feedback:"L\xe4mna feedback",hangup:"L\xe4mna",invite:"Bjud in andra",login:"Logga in",logout:"Logga ut",lowerYourHand:"Ta ner handen",moreActions:"Fler handlingar",mute:"Sl\xe5 av/p\xe5 ljud",openChat:"\xd6ppna chatt",pip:"\xd6ppna bild-i-bild-l\xe4ge",profile:"Redigera din profil",raiseHand:"R\xe4ck upp / ta ner din hand",raiseYourHand:"R\xe4ck upp handen",Settings:"Inst\xe4llningar",sharedvideo:"Dela en Youtube-video",shareRoom:"Bjud in n\xe5gon",shortcuts:"Visa genv\xe4gar",speakerStats:"H\xf6gtalarspecifikationer",startScreenSharing:"Starta sk\xe4rmdelning",startSubtitles:"Starta undertextning",stopScreenSharing:"Avsluta sk\xe4mdelning",stopSubtitles:"Avsluta undertextning",stopSharedVideo:"Pausa YouTube-video",talkWhileMutedPopup:"F\xf6rs\xf6ker du tala? Din mikrofon \xe4r tystad.",tileViewToggle:"\xd6ppna eller st\xe4ng panelvyn",toggleCamera:"\xd6ppna eller st\xe4ng kamera",videomute:"Aktivera / avaktivera kameran",startvideoblur:"",stopvideoblur:""},transcribing:{ccButtonTooltip:"Starta / Avsluta undertexter",error:"Transkriberingen misslyckades. F\xf6rs\xf6k igen.",expandedLabel:"Transkribering \xe4r aktiverad",failedToStart:"Det gick inte att starta transkribering",labelToolTip:"M\xf6tet transkriberas",off:"Transkribering avslutades",pending:"F\xf6rbereder transkribering av m\xf6tet ...",start:"B\xf6rja visa undertexter",stop:"Sluta visa undertexter",tr:"TR"},userMedia:{androidGrantPermissions:"V\xe4lj Till\xe5t n\xe4r din webbl\xe4sare beg\xe4r \xe5tkomst.",chromeGrantPermissions:"V\xe4lj Till\xe5t n\xe4r din webbl\xe4sare beg\xe4r \xe5tkomst.",edgeGrantPermissions:"V\xe4lj Ja n\xe4r din webbl\xe4sare beg\xe4r \xe5tkomst.",electronGrantPermissions:"Till\xe5t anv\xe4ndning av din kamera och mikrofon",firefoxGrantPermissions:"V\xe4lj Dela vald enhet n\xe4r din webbl\xe4sare beg\xe4r \xe5tkomst.",iexplorerGrantPermissions:"V\xe4lj OK n\xe4r din webbl\xe4sare beg\xe4r \xe5tkomst.",nwjsGrantPermissions:"Till\xe5t anv\xe4ndning av din kamera och mikrofon",operaGrantPermissions:"V\xe4lj Till\xe5t n\xe4r din webbl\xe4sare beg\xe4r \xe5tkomst.","react-nativeGrantPermissions":"V\xe4lj Till\xe5t n\xe4r din webbl\xe4sare beg\xe4r \xe5tkomst.",safariGrantPermissions:"V\xe4lj OK n\xe4r din webbl\xe4sare beg\xe4r \xe5tkomst."},videoSIPGW:{busy:"Vi arbetar med att frig\xf6ra resurser. F\xf6rs\xf6k igen om n\xe5gra minuter.",busyTitle:"Rumtj\xe4nsten \xe4r just nu upptagen",errorAlreadyInvited:"{{displayName}} \xe4r redan inbjuden",errorInvite:"Konferensen \xe4r inte skapad \xe4n. F\xf6rs\xf6k igen senare.",errorInviteFailed:"Vi arbetar f\xf6r att l\xf6sa problemet. F\xf6rs\xf6k igen senare.",errorInviteFailedTitle:"Inbjudan till {{displayName}} misslyckades",errorInviteTitle:"Inbjudan till rum misslyckades",pending:"{{displayName}} har bjudits in"},videoStatus:{audioOnly:"AUD",audioOnlyExpanded:"Du anv\xe4nder ljudl\xe4get. L\xe4get sparar bandbredd men du kan inte se andras videor.",callQuality:"",hd:"HD",highDefinition:"High definition",labelTooiltipNoVideo:"Ingen video",labelTooltipAudioOnly:"Enbart ljud-l\xe4ge aktiverat",ld:"LD",lowDefinition:"Low definition",onlyAudioAvailable:"Enbart ljud tillg\xe4ngligt",onlyAudioSupported:"Vi st\xf6der bara ljud i denna webbl\xe4sare",p2pEnabled:"Peer to peer anv\xe4nds",p2pVideoQualityDescription:"",recHighDefinitionOnly:"F\xf6redrar high definition.",sd:"SD",standardDefinition:"Standard definition"},videothumbnail:{domute:"Tysta",flip:"V\xe4nd",kick:"Sparka ut",moderator:"Moderator",mute:"Deltagaren har avst\xe4ngd mikrofon",muted:"Tystad",remoteControl:"Fj\xe4rrkontroll",show:"",videomute:""},welcomepage:{accessibilityLabel:{join:"Tryck f\xf6r att g\xe5 med",roomname:"Skriv in rumsnamn"},appDescription:"S\xe4tt ig\xe5ng, videochatta med hela gruppen. Bjud in alla du k\xe4nner. {{app}} \xe4r en helt krypterad , open source videokonferensl\xf6sning som du kan anv\xe4nda obegr\xe4nsat utan kostnad \u2014 inte ens ett anv\xe4ndarkonto beh\xf6vs.",audioVideoSwitch:{audio:"Ljud",video:"Video"},calendar:"Kalender",connectCalendarButton:"Anslut din kalender",connectCalendarText:"Anslut din kalender f\xf6r att se alla m\xf6ten i {{app}}. L\xe4gg \xe4ven till m\xf6ten med {{provider}} i din kalender och starta dem med ett klick.",enterRoomTitle:"Starta ett nytt m\xf6te",go:"K\xd6R",join:"G\xe5 med",info:"Info",privacy:"Integritet",recentList:"Tidigare",recentListDelete:"Radera",recentListEmpty:"Inga tidigare m\xf6ten. Chatta med ditt team och hitta alla tidigare m\xf6ten d\xe4r.",reducedUIText:"",roomname:"Skriv in rumsnamn",roomnameHint:"Ange namnet eller URL:en till m\xf6tesrummet du vill ansluta till. Du kan hitta p\xe5 ett nytt namn, ber\xe4tta d\xe5 f\xf6r de andra du t\xe4nker m\xf6ta s\xe5 de anger samma namn.",sendFeedback:"Ge \xe5terkoppling",terms:"Termer",title:"S\xe4kra, v\xe4lutrustade och helt kostnadsfria videokonferenser"}}},685,[]); -__d(function(n,i,g,T,a,e,h){a.exports={en:"Ti\u1ebfng Anh",af:"Ti\xea\u0301ng Afrika",az:"Ti\xea\u0301ng Azecbaizan",bg:"Ti\u1ebfng Bulgaria",cs:"Ti\xea\u0301ng Se\u0301c",de:"Ti\u1ebfng \u0110\u1ee9c",el:"Ti\xea\u0301ng Nh\xe2\u0323t",eo:"Ti\u1ebfng Esperanto",es:"Ti\u1ebfng T\xe2y Ban Nha",fr:"Ti\u1ebfng Ph\xe1p",hy:"Ti\u1ebfng Acmenia",it:"Ti\u1ebfng \xdd",ja:"Ti\xea\u0301ng Nh\xe2\u0323t",ko:"Ti\xea\u0301ng Ha\u0300n",nb:"Ti\u1ebfng Na Uy",oc:"Ti\u1ebfng Occitan",pl:"Ti\u1ebfng Ba Lan",ptBR:"Ti\u1ebfng B\u1ed3 \u0110\xe0o Nha (Brazil)",ru:"Ti\u1ebfng Nga",sk:"Ti\u1ebfng Slovak",sl:"Ti\u1ebfng Slovenia",sv:"Ti\u1ebfng Th\u1ee5y \u0110i\u1ec3n",tr:"Ti\u1ebfng Th\u1ed5 Nh\u0129 K\u1ef3",vi:"Ti\xea\u0301ng Vi\xea\u0323t",zhCN:"Ti\u1ebfng Hoa (Trung Qu\u1ed1c)"}},686,[]); -__d(function(n,t,i,h,e,a,c){e.exports={addPeople:{add:"M\u1eddi",countryNotSupported:"Chu\u0301ng t\xf4i ch\u01b0a h\xf4\u0303 tr\u01a1\u0323 \u0111i\u0301ch \u0111\xea\u0301n na\u0300y.",countryReminder:"\u0110ang go\u0323i ra ngoa\u0300i My\u0303? \u0110a\u0309m ba\u0309o b\u0103\u0301t \u0111\xe2\u0300u b\u0103\u0300ng ma\u0303 qu\xf4\u0301c gia!",disabled:"Ba\u0323n kh\xf4ng th\xea\u0309 m\u01a1\u0300i th\xeam ng\u01b0\u01a1\u0300i.",failedToAdd:"",footerText:"Quay s\xf4\u0301 bi\u0323 t\u0103\u0301t.",loading:"\u0110ang ti\u0300m ki\xea\u0301m ng\u01b0\u01a1\u0300i ho\u0103\u0323c s\xf4\u0301 \u0111i\xea\u0323n thoa\u0323i.",loadingNumber:"\u0110ang xa\u0301c nh\xe2\u0323n s\xf4\u0301 \u0111i\xea\u0323n thoa\u0323i.",loadingPeople:"\u0110ang ti\u0300m ki\xea\u0301m ng\u01b0\u01a1\u0300i \u0111\xea\u0309 m\u01a1\u0300i",noResults:"Kh\xf4ng ti\u0300m \u0111\u01b0\u01a1\u0323c k\xea\u0301t qua\u0309 kh\u01a1\u0301p",noValidNumbers:"Xin m\u1eddi nh\u1eadp m\u1ed9t s\u1ed1 \u0111i\u1ec7n tho\u1ea1i",searchNumbers:"Th\xeam s\u1ed1 \u0111i\u1ec7n tho\u1ea1i",searchPeople:"T\xecm ng\u01b0\u1eddi",searchPeopleAndNumbers:"T\xecm ng\u01b0\u1eddi v\xe0 th\xeam s\u1ed1",telephone:"S\u1ed1:{{number}}",title:"M\u1eddi ng\u01b0\u1eddi tham d\u1ef1 cu\u1ed9c h\u1ecdp n\xe0y"},audioDevices:{bluetooth:"Bluetooth",headphones:"Tai nghe",phone:"\u0110i\u1ec7n tho\u1ea1i",speaker:"Di\u1ec5n gi\u1ea3"},audioOnly:{audioOnly:"Ch\u1ec9 \xe2m thanh"},calendarSync:{addMeetingURL:"Th\xeam m\u1ed9t li\xean k\u1ebft h\u1ecdp",confirmAddLink:"B\u1ea1n c\xf3 mu\u1ed1n th\xeam m\u1ed9t li\xean ki\u1ebft t\u1edbi s\u1ef1 ki\u1ec7n n\xe0y?",error:{appConfiguration:"T\xedch h\u1ee3p l\u1ecbch ch\u01b0a \u0111\u01b0\u1ee3c c\u1ea5u h\xecnh \u0111\xfang.",generic:"M\u1ed9t l\u1ed7i xu\u1ea5t hi\u1ec7n. Vui l\xf2ng ki\u1ec3m tra c\u1ea5u h\xecnh l\u1ecbch ho\u1eb7c th\u1eed l\xe0m t\u01b0\u01a1i l\u1ecbch.",notSignedIn:"M\u1ed9t l\u1ed7i x\u1ea3y ra khi x\xe1c th\u1ef1c \u0111\u1ec3 xem l\u1ecbch s\u1ef1 ki\u1ec7n. Vui l\xf2ng ki\u1ec3m tra c\u1ea5u h\xecnh l\u1ecbch v\xe0 th\u1eed \u0111\u0103ng nh\u1eadp l\u1ea1i."},join:"Tham gia",joinTooltip:"Tham gia cu\u1ecdc h\u1ecdp",nextMeeting:"Cu\u1ed9c h\u1ecdp ti\u1ebfp theo",noEvents:"Kh\xf4ng c\xf3 s\u1ef1 ki\u1ec7n \u0111\u01b0\u1ee3c l\xean l\u1ecbch n\xe0o ti\u1ebfp theo.",ongoingMeeting:"cu\u1ed9c h\u1ecdp \u0111ang di\u1ec5n ra",permissionButton:"M\u1edf c\u1ea5u h\xecnh",permissionMessage:"Y\xeau c\u1ea7u quy\u1ec1n truy c\u1eadp L\u1ecbch \u0111\u1ec3 th\u1ea5y cu\u1ed9c h\u1ecdp c\u1ee7a b\u1ea1n tr\xean \u1ee9ng d\u1ee5ng.",refresh:"L\xe0m t\u01b0\u01a1i l\u1ecbch",today:"H\xf4m nay"},chat:{error:"L\u1ed7i: th\xf4ng \u0111i\u1ec7p c\u1ee7a b\u1ea1n \"{{originalText}}\" kh\xf4ng \u0111\u01b0\u1ee3c g\u1eedi. Nguy\xean nh\xe2n: {{error}}",messagebox:"Nh\u1eadp m\u1ed9t th\xf4ng \u0111i\u1ec7p",nickname:{popover:"Ch\u1ecdn bi\u1ec7t danh",title:"Nh\u1eadp m\u1ed9t t\xean \u0111\u1ec3 s\u1eed d\u1ee5ng Chat"},title:"Chat"},connectingOverlay:{joiningRoom:"\u0110ang k\u1ebft n\u1ed1i t\u1edbi cu\u1ed9c h\u1ecdp c\u1ee7a b\u1ea1n..."},connection:{ATTACHED:"\u0110\xe3 \u0111\xednh k\xe8m",AUTHENTICATING:"\u0110ang x\xe1c th\u1ef1c",AUTHFAIL:"X\xe1c th\u1ef1c th\u1ea5t b\u1ea1i",CONNECTED:"\u0110\xe3 k\u1ebft n\u1ed1i",CONNECTING:"\u0110ang k\u1ebft n\u1ed1i",CONNFAIL:"K\u1ebft n\u1ed1i th\u1ea5t b\u1ea1i",DISCONNECTED:"\u0110\xe3 ng\u1eaft k\u1ebft n\u1ed1i",DISCONNECTING:"\u0110ang ng\u1eaft k\u1ebft n\u1ed1i",ERROR:"L\u1ed7i",RECONNECTING:"\u0110\xe3 x\u1ea3y ra s\u1ef1 c\u1ed1 m\u1ea1ng. \u0110ang k\u1ebft n\u1ed1i l\u1ea1i..."},connectionindicator:{address:"\u0110\u1ecba ch\u1ec9:",bandwidth:"B\u0103ng th\xf4ng \u01b0\u1edbc t\xednh:",bitrate:"T\u1ed1c \u0111\u1ed9:",bridgeCount:"M\xe1y ch\u1ee7:",connectedTo:"\u0110\xe3 k\u1ebft n\u1ed1i t\u1edbi:",framerate:"T\u1ef7 l\u1ec7 khung h\xecnh:",less:"Hi\u1ec3n th\u1ecb \xedt h\u01a1n",localaddress_0:"\u0110\u1ecba ch\u1ec9 \u0111\u1ecba ph\u01b0\u01a1ng:",localaddress_1:"C\xe1c \u0111\u1ecba ch\u1ec9 \u0111\u1ecba ph\u01b0\u01a1ng:",localport_0:"C\u1ed5ng \u0111\u1ecba ph\u01b0\u01a1ng:",localport_1:"C\xe1c c\u1ed5ng \u0111\u1ecba ph\u01b0\u01a1ng:",more:"Hi\u1ec3n th\u1ecb nhi\u1ec1u h\u01a1n",packetloss:"M\u1ea5t g\xf3i tin:",quality:{good:"T\u1ed1t",inactive:"Kh\xf4ng active",lost:"M\u1ea5t k\u1ebft n\u1ed1i",nonoptimal:"Kh\xf4ng t\u1ed1i \u01b0u",poor:"K\xe9m ch\u1ea5t l\u01b0\u1ee3ng"},remoteaddress_0:"\u0110\u1ecba ch\u1ec9 t\u1eeb xa:",remoteaddress_1:"C\xe1c \u0111\u1ecba ch\u1ec9 t\u1eeb xa:",remoteport_0:"C\u1ed5ng t\u1eeb xa:",remoteport_1:"C\xe1c c\u1ed5ng t\u1eeb xa:",resolution:"\u0110\u1ed9 ph\xe2n gi\u1ea3i:",status:"K\u1ebft n\u1ed1i:",transport_0:"V\u1eadn chuy\u1ec3n:",transport_1:"C\xe1c v\u1eadn chuy\u1ec3n:",turn:"turn"},dateUtils:{earlier:"S\u1edbm h\u01a1n",today:"H\xf4m nay",yesterday:"H\xf4m qua"},deepLinking:{appNotInstalled:"B\u1ea1n c\u1ea7n \u1ee9ng d\u1ee5ng {{app}} mobile \u0111\u1ec3 tham gia v\xe0o cu\u1ed9c h\u1ecdp n\xe0y b\u1eb1ng \u0111i\u1ec7n tho\u1ea1i.",description:"Kh\xf4ng c\xf3 g\xec di\u1ec5n ra? Ch\xfang t\xf4i \u0111ang ch\u1ea1y cu\u1ed9c h\u1ecdp tr\xean \u1ee9ng d\u1ee5ng desktop {{app}}. Th\u1eed l\u1ea1i ho\u1eb7c ch\u1ea1y tr\xean \u1ee9ng d\u1ee5ng web {{app}}.",descriptionWithoutWeb:"",downloadApp:"T\u1ea3i ph\u1ea7n m\u1ec1m",launchWebButton:"Ch\u1ea1y tr\xean web",openApp:"Ti\u1ebfp t\u1ee5c \u1ee9ng d\u1ee5ng n\xe0y",title:"Th\u1ef1c hi\u1ec7n cu\u1ed9c h\u1ecdp tr\xean {{app}}...",tryAgainButton:"Th\u1eed l\u1ea1i tr\xean desktop"},defaultLink:"v\xed d\u1ee5: {{url}}",deviceError:{cameraError:"Truy c\u1eadp camera th\u1ea5t b\u1ea1i",cameraPermission:"L\u1ed7i \u0111\u1ecdc quy\u1ec1n c\u1ee7a camera",microphoneError:"Truy c\u1eadp Microphone th\u1ea5t b\u1ea1i",microphonePermission:"L\u1ed7i \u0111\u1ecdc quy\u1ec1n c\u1ee7a microphone"},deviceSelection:{noPermission:"Kh\xf4ng \u0111\u01b0\u1ee3c c\u1ea5p quy\u1ec1n",previewUnavailable:"Xem tr\u01b0\u1edbc kh\xf4ng kh\u1ea3 d\u1ee5ng",selectADevice:"Ch\u1ecdn m\u1ed9t thi\u1ebft b\u1ecb",testAudio:"Ch\u1ea1y th\u1eed t\u1ec7p \xe2m thanh"},dialog:{accessibilityLabel:{liveStreaming:"Ph\xe1t tr\u1ef1c tuy\u1ebfn"},allow:"Cho ph\xe9p",alreadySharedVideoMsg:"",alreadySharedVideoTitle:"M\u1ed7i l\xfac ch\u1ec9 m\u1ed9t ng\u01b0\u1eddi \u0111\u01b0\u1ee3c chia s\u1ebb video.",applicationWindow:"C\u1eeda s\u1ed5 \u1ee9ng d\u1ee5ng",Back:"Quay l\u1ea1i",cameraConstraintFailedError:"Camera c\u1ee7a b\u1ea1n kh\xf4ng \u0111\xe1p \u1ee9ng \u0111\u01b0\u1ee3c m\u1ed9t s\u1ed1 y\xeau c\u1ea7u b\u1eaft bu\u1ed9c.",cameraNotFoundError:"Kh\xf4ng t\xecm th\u1ea5y camera.",cameraNotSendingData:"Kh\xf4ng truy c\u1eadp \u0111\u01b0\u1ee3c camera c\u1ee7a b\u1ea1n. Ki\u1ec3m tra xem c\xf3 \u1ee9ng dung kh\xe1c \u0111ang s\u1eed d\u1ee5ng camera kh\xf4ng, ho\u1eb7c ch\u1ecdn m\u1ed9t camera kh\xe1c trong ph\u1ea7n c\xe0i \u0111\u1eb7t, hay t\u1ea3i l\u1ea1i \u1ee9ng d\u1ee5ng",cameraNotSendingDataTitle:"Kh\xf4ng truy c\u1eadp \u0111\u01b0\u1ee3c camera",cameraPermissionDeniedError:"B\u1ea1n ch\u01b0a cho ph\xe9p s\u1eed d\u1ee5ng camera c\u1ee7a m\xecnh. B\u1ea1n v\u1eabn c\xf3 th\u1ec3 tham gia h\u1ed9i ngh\u1ecb nh\u01b0ng nh\u1eefng ng\u01b0\u1eddi kh\xe1c s\u1ebd kh\xf4ng nh\xecn th\u1ea5y b\u1ea1n. S\u1eed d\u1ee5ng n\xfat camera tr\xean thanh \u0111\u1ecba ch\u1ec9 \u0111\u1ec3 s\u1eeda l\u1ed7i n\xe0y.",cameraUnknownError:"Kh\xf4ng th\u1ec3 s\u1eed d\u1ee5ng camera v\xec l\xfd do kh\xf4ng r\xf5 r\xe0ng.",cameraUnsupportedResolutionError:"Camera c\u1ee7a b\u1ea1n kh\xf4ng h\u1ed7 tr\u1ee3 \u0111\u1ed9 ph\xe2n gi\u1ea3i video y\xeau c\u1ea7u.",Cancel:"H\u1ee7y",close:"\u0110\xf3ng",conferenceDisconnectMsg:"B\u1ea1n c\xf3 th\u1ec3 mu\u1ed1n ki\u1ec3m tra k\u1ebft n\u1ed1i m\u1ea1ng c\u1ee7a m\xecnh. \u0110ang k\u1ebft n\u1ed1i l\u1ea1i trong {{seconds}} gi\xe2y...",conferenceDisconnectTitle:"B\u1ea1n \u0111\xe3 b\u1ecb ng\u1eaft k\u1ebft n\u1ed1i.",conferenceReloadMsg:"Ch\xfang t\xf4i \u0111ang c\u1ed1 g\u1eafng s\u1eeda l\u1ed7i n\xe0y. \u0110ang k\u1ebft n\u1ed1i l\u1ea1i trong {{seconds}} gi\xe2y...",conferenceReloadTitle:"Th\u1eadt kh\xf4ng may, c\xf3 \u0111i\u1ec1u g\xec \u0111\xf3 \u0111\xe3 sai.",confirm:"X\xe1c nh\u1eadn",confirmNo:"Kh\xf4ng",confirmYes:"C\xf3",connectError:"R\u1ea5t ti\u1ebfc! \u0110\xe3 x\u1ea3y ra s\u1ef1 c\u1ed1 v\xe0 ch\xfang t\xf4i kh\xf4ng th\u1ec3 k\u1ebft n\u1ed1i v\u1edbi h\u1ed9i ngh\u1ecb.",connectErrorWithMsg:"R\u1ea5t ti\u1ebfc! \u0110\xe3 x\u1ea3y ra s\u1ef1 c\u1ed1 v\xe0 ch\xfang t\xf4i kh\xf4ng th\u1ec3 k\u1ebft n\u1ed1i v\u1edbi h\u1ed9i ngh\u1ecb: {{msg}}",connecting:"\u0110ang k\u1ebft n\u1ed1i",contactSupport:"Li\xean h\u1ec7 h\u1ed7 tr\u1ee3 k\u1ef9 thu\u1eadt",copy:"Sao ch\xe9p",dismiss:"H\u1ee7y",displayNameRequired:"",done:"Xong",enterDisplayName:"",error:"L\u1ed7i",externalInstallationMsg:"B\u1ea1n c\u1ea7n c\xe0i \u0111\u1eb7t ti\u1ec7n \xedch m\u1edf r\u1ed9ng chia s\u1ebb m\xe1y t\xednh c\u1ee7a ch\xfang t\xf4i.",externalInstallationTitle:"Y\xeau c\u1ea7u ti\u1ec7n \xedch m\u1edf r\u1ed9ng",goToStore:"\u0110i t\u1edbi c\u1eeda h\xe0ng tr\xean m\u1ea1ng",gracefulShutdown:"D\u1ecbch v\u1ee5 c\u1ee7a ch\xfang t\xf4i hi\u1ec7n \u0111ang b\u1ea3o tr\xec. Vui l\xf2ng th\u1eed l\u1ea1i sau.",IamHost:"T\xf4i l\xe0 ch\u1ee7 ngh\u1ecb",incorrectRoomLockPassword:"",incorrectPassword:"T\xean ng\u01b0\u1eddi d\xf9ng ho\u1eb7c m\u1eadt kh\u1ea9u kh\xf4ng \u0111\xfang",inlineInstallationMsg:"B\u1ea1n c\u1ea7n c\xe0i \u0111\u1eb7t ti\u1ec7n \xedch m\u1edf r\u1ed9ng chia s\u1ebb m\xe1y t\xednh c\u1ee7a ch\xfang t\xf4i.",inlineInstallExtension:"C\xe0i \u0111\u1eb7t ngay",internalError:"Duh! C\xf3 l\u1ed7i x\u1ea9y ra. L\u1ed7i c\u1ee5 th\u1ec3 l\xe0: {{error}}",internalErrorTitle:"L\u1ed7i c\u1ee5c b\u1ed9",kickMessage:"",kickParticipantButton:"\u0110\u1ea9y ra",kickParticipantDialog:"B\u1ea1n c\xf3 ch\u1eafc mu\u1ed1n \u0111\u1ea9y ng\u01b0\u1eddi n\xe0y ra?",kickParticipantTitle:"T\u1eaft ti\u1ebfng c\u1ee7a ng\u01b0\u1eddi tham d\u1ef1 n\xe0y?",kickTitle:"",liveStreaming:"Ph\xe1t tr\u1ef1c tuy\u1ebfn",liveStreamingDisabledForGuestTooltip:"Kh\xe1ch kh\xf4ng th\u1ec3 ph\xe1t tr\u1ef1c tuy\u1ebfn.",liveStreamingDisabledTooltip:"Kh\u1edfi t\u1ea1o ph\xe1t tr\u1ef1c tuy\u1ebfn \u0111\xe3 t\u1eaft.",lockMessage:"Kh\xf3a h\u1ed9i ngh\u1ecb th\u1ea5t b\u1ea1i.",lockRoom:"",lockTitle:"Kh\xf3a th\u1ea5t b\u1ea1i",logoutQuestion:"B\u1ea1n c\xf3 ch\u1eafc ch\u1eafn mu\u1ed1n \u0111\u0103ng xu\u1ea5t v\xe0 d\u1eebng h\u1ed9i ngh\u1ecb?",logoutTitle:"\u0110\u0103ng xu\u1ea5t",maxUsersLimitReached:"",maxUsersLimitReachedTitle:"",micConstraintFailedError:"Microphone c\u1ee7a b\u1ea1n kh\xf4ng \u0111\xe1p \u1ee9ng \u0111\u01b0\u1ee3c m\u1ed9t s\u1ed1 y\xeau c\u1ea7u b\u1eaft bu\u1ed9c.",micNotFoundError:"Kh\xf4ng t\xecm th\u1ea5y microphone.",micNotSendingData:"",micNotSendingDataTitle:"",micPermissionDeniedError:"B\u1ea1n ch\u01b0a c\u1ea5p ph\xe9p s\u1eed d\u1ee5ng microphone c\u1ee7a b\u1ea1n. B\u1ea1n v\u1eabn c\xf3 th\u1ec3 tham gia h\u1ed9i ngh\u1ecb nh\u01b0ng nh\u1eefng ng\u01b0\u1eddi kh\xe1c s\u1ebd kh\xf4ng nghe th\u1ea5y b\u1ea1n. S\u1eed d\u1ee5ng n\xfat camera tr\xean thanh \u0111\u1ecba ch\u1ec9 \u0111\u1ec3 s\u1eeda l\u1ed7i n\xe0y.",micUnknownError:"Kh\xf4ng th\u1ec3 s\u1eed d\u1ee5ng microphone v\xec l\xfd do kh\xf4ng r\xf5 r\xe0ng.",muteParticipantBody:"B\u1ea1n kh\xf4ng th\u1ec3 t\u1eaft ti\u1ebfng c\u1ee7a h\u1ecd, nh\u01b0ng h\u1ecd c\xf3 th\u1ec3 t\u1ef1 t\u1eaft ti\u1ebfng b\u1ea5t c\u1ee9 l\xfac n\xe0o.",muteParticipantButton:"T\u1eaft ti\u1ebfng",muteParticipantDialog:"B\u1ea1n mu\u1ed1n t\u1eaft ti\u1ebfng c\u1ee7a ng\u01b0\u1eddi n\xe0y? B\u1ea1n s\u1ebd kh\xf4ng th\u1ec3 b\u1eadt l\u1ea1i ti\u1ebfng, nh\u01b0ng h\u1ecd c\xf3 th\u1ec3 t\u1ef1 b\u1eadt l\u1ea1i ti\u1ebfng b\u1ea5t c\u1ee9 l\xfac n\xe0o.",muteParticipantTitle:"T\u1eaft ti\u1ebfng c\u1ee7a ng\u01b0\u1eddi tham d\u1ef1 n\xe0y?",Ok:"\u0110\u01b0\u1ee3c",passwordLabel:"",passwordNotSupported:"Ph\xf2ng h\u1ecdp kh\xf4ng h\u1ed7 tr\u1ee3 kh\xf3a b\u1eb1ng m\u1eadt kh\u1ea9u.",passwordNotSupportedTitle:"",passwordRequired:"",popupError:"Tr\xecnh duy\u1ec7t c\u1ee7a b\u1ea1n \u0111\xe3 ch\u1eb7n c\u1eeda s\u1ed5 pop-up t\u1eeb website hi\u1ec7n h\xe0nh. L\xe0m \u01a1n cho ph\xe9p pop-up trong c\xe0i \u0111\u1eb7t c\u1ee7a tr\xecnh duy\u1ec7t v\xe0 th\u1eed l\u1ea1i",popupErrorTitle:"C\u1eeda s\u1ed5 Pop-Up b\u1ecb ch\u1eb7n",recording:"\u0110ang ghi \xe2m",recordingDisabledForGuestTooltip:"Kh\xe1ch kh\xf4ng th\u1ec3 kh\u1edfi t\u1ea1o ghi h\xecnh.",recordingDisabledTooltip:"Kh\u1edfi \u0111\u1ed9ng ghi \xe2m \u0111\xe3 b\u1ecb t\u1eaft.",rejoinNow:"Tham gia l\u1ea1i lu\xf4n",remoteControlAllowedMessage:"{{user}} \u0111\xe3 ch\u1ea5p nh\u1eadn y\xeau c\u1ea7u \u0111i\u1ec1u khi\u1ec3n t\u1eeb xa c\u1ee7a b\u1ea1n!",remoteControlDeniedMessage:"{{user}} \u0111\xe3 t\u1eeb ch\u1ed1i y\xeau c\u1ea7u \u0111i\u1ec1u khi\u1ec3n t\u1eeb xa c\u1ee7a b\u1ea1n!",remoteControlErrorMessage:"\u0110\xe3 x\u1ea3y ra l\u1ed7i khi c\u1ed1 g\u1eafng y\xeau c\u1ea7u quy\u1ec1n \u0111i\u1ec1u khi\u1ec3n t\u1eeb xa t\u1eeb {{user}}!",remoteControlRequestMessage:"B\u1ea1n c\xf3 cho ph\xe9p {{user}} \u0111i\u1ec1u khi\u1ec3n t\u1eeb xa m\xe0n h\xecnh c\u1ee7a b\u1ea1n kh\xf4ng?",remoteControlShareScreenWarning:"L\u01b0u \xfd r\u1eb1ng n\u1ebfu b\u1ea1n \u1ea5n \"Cho ph\xe9p\" b\u1ea1n s\u1ebd chia s\u1ebb m\xe0n h\xecnh c\u1ee7a m\xecnh!",remoteControlStopMessage:"Phi\xean \u0111i\u1ec1u khi\u1ec3n t\u1eeb xa \u0111\xe3 k\u1ebft th\xfac!",remoteControlTitle:"\u0110i\u1ec1u khi\u1ec3n m\xe0n h\xecnh t\u1eeb xa",Remove:"X\xf3a",removePassword:"",removeSharedVideoMsg:"B\u1ea1n c\xf3 ch\u1eafc ch\u1eafn mu\u1ed1n x\xf3a video \u0111\xe3 chia s\u1ebb c\u1ee7a m\xecnh kh\xf4ng?",removeSharedVideoTitle:"X\xf3a video chia s\u1ebb",reservationError:"L\u1ed7i h\u1ec7 th\u1ed1ng \u0111\u1eb7t ph\xf2ng",reservationErrorMsg:"M\xe3 l\u1ed7i: {{code}}, th\xf4ng b\xe1o: {{msg}}",retry:"Th\u1eed l\u1ea1i",screenSharingFailedToInstall:"Duh! Kh\xf4ng c\xe0i \u0111\u1eb7t \u0111\u01b0\u1ee3c b\u1ed9 m\u1edf r\u1ed9ng chia s\u1ebb m\xe0n h\xecnh",screenSharingFailedToInstallTitle:"Duh! B\u1ed9 m\u1edf r\u1ed9ng chia s\u1ebb m\xe0n h\xecnh c\xf3 v\u1ea5n \u0111\u1ec1 v\u1edbi c\u1ea5u h\xecnh b\u1ea3o m\u1eadt. L\xe0m \u01a1n t\u1ea3i v\xe0 th\u1eed l\u1ea1i ",screenSharingFirefoxPermissionDeniedError:"C\xf3 g\xec \u0111\xf3 sai khi ch\xfang t\xf4i c\u1ed1 g\u1eafng chia s\u1ebb m\xe0n h\xecnh c\u1ee7a b\u1ea1n. Vui l\xf2ng \u0111\u1ea3m b\u1ea3o b\u1ea1n \u0111\xe3 cho ph\xe9p ch\xfang t\xf4i th\u1ef1c hi\u1ec7n.",screenSharingFirefoxPermissionDeniedTitle:"Ch\xfang t\xf4i kh\xf4ng th\u1ec3 chia s\u1ebb m\xe0n h\xecnh!",screenSharingPermissionDeniedError:"Kh\xf4ng th\u1ec3 truy c\u1eadp micro",serviceUnavailable:"D\u1ecbch v\u1ee5 kh\xf4ng kh\u1ea3 d\u1ee5ng",sessTerminated:"Cu\u1ed9c g\u1ecdi k\u1ebft th\xfac",Share:"Chia s\u1ebb",shareVideoLinkError:"Vui l\xf2ng cung c\u1ea5p li\xean k\u1ebft youtube ch\xednh x\xe1c.",shareVideoTitle:"Chia s\u1ebb video",shareYourScreen:"Chia s\u1ebb m\xe0n h\xecnh c\u1ee7a b\u1ea1n",shareYourScreenDisabled:"Chia s\u1ebb m\xe0n h\xecnh \u0111\xe3 t\u1eaft.",shareYourScreenDisabledForGuest:"Kh\xe1ch kh\xf4ng th\u1ec3 chia s\u1ebb m\xe0n h\xecnh.",startLiveStreaming:"B\u1eaft \u0111\u1ea7u ph\xe1t tr\u1ef1c tuy\u1ebfn",startRecording:"B\u1eaft \u0111\u1ea7u ghi \xe2m",startRemoteControlErrorMessage:"C\xf3 l\u1ed7i khi th\u1eed kh\u1edfi \u0111\u1ed9ng phi\xean \u0111i\u1ec1u khi\u1ec3n t\u1eeb xa",stopLiveStreaming:"D\u1eebng ph\xe1t tr\u1ef1c tuy\u1ebfn",stopRecording:"D\u1eebng ghi \xe2m",stopRecordingWarning:"B\u1ea1n c\xf3 ch\u1eafc ch\u1eafn mu\u1ed1n d\u1eebng ghi \xe2m kh\xf4ng?",stopStreamingWarning:"B\u1ea1n c\xf3 ch\u1eafc ch\u1eafn mu\u1ed1n d\u1eebng ph\xe1t tr\u1ef1c tuy\u1ebfn?",streamKey:"Key ph\xe1t tr\u1ef1c tuy\u1ebfn",Submit:"\u0110\u0103ng k\xfd",thankYou:"C\xe1m \u01a1n b\u1ea1n \u0111\xe3 s\u1eed d\u1ee5ng {{appName}}!",token:"m\xe3 th\xf4ng b\xe1o",tokenAuthFailed:"R\u1ea5t ti\u1ebfc, b\u1ea1n kh\xf4ng \u0111\u01b0\u1ee3c ph\xe9p tham gia cu\u1ed9c g\u1ecdi n\xe0y.",tokenAuthFailedTitle:"X\xe1c th\u1ef1c th\u1ea5t b\u1ea1i",transcribing:"\u0110ang phi\xean \xe2m",unlockRoom:"",userPassword:"m\u1eadt kh\u1ea9u ng\u01b0\u1eddi d\xf9ng",WaitForHostMsg:"Cu\u1ed9c h\u1ecdp {{room}} ch\u01b0a \u0111\u01b0\u1ee3c kh\u1edfi t\u1ea1o. N\u1ebfu b\u1ea1n l\xe0 ch\u1ee7 ngh\u1ecb vui l\xf2ng x\xe1c th\u1ef1c. N\u1ebfu kh\xf4ng, vui l\xf2ng \u0111\u1ee3i ch\u1ee7 ngh\u1ecb.",WaitForHostMsgWOk:"Cu\u1ed9c h\u1ecdp {{room}} ch\u01b0a \u0111\u01b0\u1ee3c kh\u1edfi t\u1ea1o. N\u1ebfu b\u1ea1n l\xe0 ch\u1ee7 ngh\u1ecb vui l\xf2ng nh\u1ea5n OK \u0111\u1ec3 x\xe1c th\u1ef1c. N\u1ebfu kh\xf4ng, vui l\xf2ng \u0111\u1ee3i ch\u1ee7 ngh\u1ecb.",WaitingForHost:"\u0110ang \u0111\u1ee3i ch\u1ee7 ngh\u1ecb ...",Yes:"C\xf3",yourEntireScreen:"To\xe0n b\u1ed9 m\xe0n h\xecnh c\u1ee7a b\u1ea1n"},dialOut:{statusMessage:"hi\u1ec7n \u0111ang {{status}}"},feedback:{average:"Trung b\xecnh",bad:"K\xe9m",detailsLabel:"N\xf3i v\u1edbi ch\xfang t\xf4i v\u1ec1 n\xf3.",good:"T\u1ed1t",rateExperience:"Vui l\xf2ng \u0111\xe1nh gi\xe1 tr\u1ea3i nghi\u1ec7m cu\u1ed9c h\u1ecdp c\u1ee7a b\u1ea1n.",veryBad:"R\u1ea5t K\xe9m",veryGood:"R\u1ea5t T\u1ed1t"},incomingCall:{answer:"Tr\u1ea3 l\u1eddi",audioCallTitle:"Cu\u1ed9c g\u1ecdi \u0111\u1ebfn",decline:"H\u1ee7y",productLabel:"t\u1eeb DINTE",videoCallTitle:"Cu\u1ed9c g\u1ecdi h\xecnh"},info:{accessibilityLabel:"Hi\u1ec7n th\xf4ng tin",addPassword:"",cancelPassword:"",conferenceURL:"Li\xean k\u1ebft:",country:"Qu\u1ed1c gia",dialANumber:"\u0110\u1ec3 tham gia cu\u1ed9c h\u1ecdp c\u1ee7a b\u1ea1n, quay m\u1ed9t trong c\xe1c s\u1ed1 sau v\xe0 nh\u1eadp m\xe3.",dialInConferenceID:"M\xe3:",dialInNotSupported:"Xin l\u1ed7i, quay s\u1ed1 kh\xf4ng \u0111\u01b0\u1ee3c h\u1ed7 tr\u1ee3.",dialInNumber:"Quay s\u1ed1:",dialInSummaryError:"L\u1ed7i n\u1ea1p th\xf4ng tin quay s\u1ed1. Vui l\xf2ng th\u1eed l\u1ea1i.",dialInTollFree:"Mi\u1ec5n ph\xed",genericError:"Ch\xe0, c\xf3 g\xec \u0111\xf3 kh\xf4ng \u1ed5n.",inviteLiveStream:"\u0110\u1ec3 xem ph\xe1t tr\u1ef1c tuy\u1ebfn cu\u1ed9c h\u1ecdp n\xe0y, ch\u1ecdn li\xean k\u1ebft: {{url}}",invitePhone:"",invitePhoneAlternatives:"",inviteURLFirstPartGeneral:"B\u1ea1n \u0111\u01b0\u1ee3c m\u1eddi tham gia m\u1ed9t cu\u1ed9c h\u1ecdp.",inviteURLFirstPartPersonal:"{{name}} m\u1eddi b\u1ea1n tham gia m\u1ed9t cu\u1ed9c h\u1ecdp.\n",inviteURLSecondPart:"",liveStreamURL:"Ph\xe1t tr\u1ef1c tuy\u1ebfn:",moreNumbers:"Nhi\u1ec1u s\u1ed1 h\u01a1n",noNumbers:"Kh\xf4ng c\xf3 th\xf4ng tin quay s\u1ed1.",noPassword:"Kh\xf4ng",noRoom:"Ch\u01b0a ch\u1ec9 ra ph\xf2ng h\u1ecdp \u0111\u1ec3 quay s\u1ed1 g\u1ecdi.",numbers:"S\u1ed1 \u0111\u1ec3 quay",password:"",title:"Chia s\u1ebb",tooltip:"Chia s\u1ebb li\xean k\u1ebft v\xe0 th\xf4ng tin quay s\u1ed1 c\u1ee7a cu\u1ed9c h\u1ecdp n\xe0y",label:"Th\xf4ng tin cu\u1ed9c h\u1ecdp"},inviteDialog:{alertText:"Kh\xf4ng th\u1ec3 m\u1eddi m\u1ed9t v\xe0i ng\u01b0\u1eddi.",header:"M\u1eddi",searchCallOnlyPlaceholder:"Nh\u1eadp s\u1ed1 \u0111i\u1ec7n tho\u1ea1i",searchPeopleOnlyPlaceholder:"T\xecm ki\u1ebfm ng\u01b0\u1eddi tham gia",searchPlaceholder:"Ng\u01b0\u1eddi tham gia ho\u1eb7c s\u1ed1",send:"G\u1eedi"},inlineDialogFailure:{msg:"Ch\xfang t\xf4i h\u01a1i v\u1ea5p ch\xfat.",retry:"Th\u1eed l\u1ea1i",support:"H\u1ed7 tr\u1ee3",supportMsg:"N\u1ebfu v\u1eabn x\u1ea3y ra, h\xe3y li\xean h\u1ec7 v\u1edbi"},keyboardShortcuts:{focusLocal:"T\u1eadp trung v\xe0o video c\u1ee7a b\u1ea1n",focusRemote:"T\u1eadp trung v\xe0o h\xecnh \u1ea3nh c\u1ee7a ng\u01b0\u1eddi kh\xe1c",fullScreen:"Xem ho\u1eb7c tho\xe1t ch\u1ebf \u0111\u1ed9 to\xe0n m\xe0n h\xecnh",keyboardShortcuts:"Ph\xedm t\u1eaft",localRecording:"Hi\u1ec7n ho\u1eb7c \u1ea9n Ki\u1ec3m so\xe1t ghi h\xecnh c\u1ee5c b\u1ed9",mute:"T\u1eaft ho\u1eb7c b\u1eadt microphone c\u1ee7a b\u1ea1n",pushToTalk:"\u1ea4n chu\xf4ng \u0111\u1ec3 n\xf3i chuy\u1ec7n",raiseHand:"Gi\u01a1 ho\u1eb7c H\u1ea1 tay",showSpeakerStats:"Hi\u1ec3n th\u1ecb th\u1ed1ng k\xea c\u1ee7a di\u1ec5n gi\u1ea3",toggleChat:"M\u1edf ho\u1eb7c \u0110\xf3ng cu\u1ed9c h\u1ed9i tho\u1ea1i",toggleFilmstrip:"Hi\u1ec7n ho\u1eb7c \u1ea9n h\xecnh \u1ea3nh thu nh\u1ecf",toggleScreensharing:"Chuy\u1ec3n \u0111\u1ed5i gi\u1eefa camera v\xe0 chia s\u1ebb m\xe0n h\xecnh",toggleShortcuts:"Hi\u1ec7n ho\u1eb7c \u1ea9n ph\xedm t\u1eaft",videoMute:"B\u1eadt ho\u1eb7c T\u1eaft camera c\u1ee7a b\u1ea1n"},liveStreaming:{busy:"Ch\xfang t\xf4i \u0111ang gi\u1ea3i ph\xf3ng t\xe0i nguy\xean streaming. Xin th\u1eed l\u1ea1i sau v\xe0i ph\xfat.",busyTitle:"C\xe1c thi\u1ebft b\u1ecb streaming \u0111\u1ec1u \u0111ang b\u1eadn.",changeSignIn:"Chuy\u1ec3n t\xe0i kho\u1ea3n.",choose:"Ch\u1ecdn m\u1ed9t k\xeanh ph\xe1t tr\u1ef1c tuy\u1ebfn",chooseCTA:"Ch\u1ecdn m\u1ed9t t\xf9y ch\u1ecdn tr\u1ef1c tuy\u1ebfn. B\u1ea1n \u0111ang \u0111\u0103ng nh\u1eadp theo email {{email}}.",enterStreamKey:"Nh\u1eadp key tr\u1ef1c tuy\u1ebfn Youtube c\u1ee7a b\u1ea1n.",error:"Ph\xe1t tr\u1ef1c tuy\u1ebfn th\u1ea5t b\u1ea1i. Xin vui l\xf2ng th\u1eed l\u1ea1i.",errorAPI:"L\u1ed7i x\u1ea3y ra khi truy c\u1eadp ph\xe1t s\xf3ng Youtube c\u1ee7a b\u1ea1n. Vui l\xf2ng truy c\u1eadp l\u1ea1i.",errorLiveStreamNotEnabled:"Ph\xe1t tr\u1ef1c tuy\u1ebfn kh\xf4ng \u0111\u01b0\u1ee3c b\u1eadt v\u1edbi email {{email}}. Vui l\xf2ng b\u1eadt ph\xe1t tr\u1ef1c tuy\u1ebfn ho\u1eb7c truy c\u1eadp m\u1ed9t t\xe0i kho\u1ea3n \u0111\xe3 b\u1eadt ph\xe1t tr\u1ef1c tuy\u1ebfn.",expandedOff:"Ph\xe1t tr\u1ef1c tuy\u1ebfn \u0111\xe3 d\u1eebng",expandedOn:"Cu\u1ed9c h\u1ecdp \u0111ang \u0111\u01b0\u1ee3c ph\xe1t tr\xean Youtube.",expandedPending:"Ph\xe1t tr\u1ef1c tuy\u1ebfn \u0111ang b\u1eaft \u0111\u1ea7u...",failedToStart:"Kh\xf4ng th\u1ec3 b\u1eaft \u0111\u1ea7u ph\xe1t tr\u1ef1c tuy\u1ebfn",getStreamKeyManually:"Kh\xf4ng th\u1ec3 thu nh\u1eadn ph\xe1t tr\u1ef1c tuy\u1ebfn n\xe0o. Th\u1eed l\u1ea5y m\xe3 ph\xe1t tr\u1ef1c tuy\u1ebfn t\u1eeb Youtube.",invalidStreamKey:"M\xe3 ph\xe1t tr\u1ef1c tuy\u1ebfn c\xf3 th\u1ec3 sai.",off:"Ph\xe1t tr\u1ef1c tuy\u1ebfn \u0111\xe3 d\u1eebng",on:"Ph\xe1t tr\u1ef1c tuy\u1ebfn",pending:"\u0110ang b\u1eaft \u0111\u1ea7u ph\xe1t tr\u1ef1c tuy\u1ebfn...",serviceName:"D\u1ecbch v\u1ee5 Ph\xe1t tr\u1ef1c tuy\u1ebfn",signedInAs:"B\u1ea1n \u0111ang \u0111\u0103ng nh\u1eadp theo:",signIn:"\u0110\u0103ng nh\u1eadp v\u1edbi Google",signInCTA:"\u0110\u0103ng nh\u1eadp ho\u1eb7c nh\u1eadp key ph\xe1t tr\u1ef1c tuy\u1ebfn t\u1eeb Youtube.",signOut:"\u0110\u0103ng xu\u1ea5t",start:"B\u1eaft \u0111\u1ea7u ph\xe1t tr\u1ef1c tuy\u1ebfn",streamIdHelp:"\u0110\xe2y l\xe0 g\xec?",unavailableTitle:"Kh\xf4ng Live Stream \u0111\u01b0\u1ee3c"},localRecording:{clientState:{off:"T\u1eaft",on:"B\u1eadt",unknown:"Kh\xf4ng r\xf5"},dialogTitle:"Ki\u1ec3m so\xe1t ghi h\xecnh c\u1ee5c b\u1ed9",duration:"Th\u1eddi l\u01b0\u1ee3ng",durationNA:"Kh\xf4ng",encoding:"M\xe3 h\xf3a",label:"Tr\u1eddi \u01a1i",labelToolTip:"Ghi h\xecnh c\u1ee5c b\u1ed9 \u0111ang b\u1eadn",localRecording:"Ghi h\xecnh c\u1ee5c b\u1ed9",me:"T\xf4i",messages:{engaged:"Ghi h\xecnh c\u1ee5c b\u1ed9 \u0111\xe3 b\u1eadn.",finished:"Phi\xean ghi h\xecnh {{token}} \u0111\xe3 k\u1ebft th\xfac. Vui l\xf2ng g\u1eedi t\u1ec7p ghi h\xecnh cho ng\u01b0\u1eddi \u0111i\u1ec1u h\xe0nh.",finishedModerator:"Token phi\xean ghi h\xecnh {{token}} \u0111\xe3 k\u1ebft th\xfac. Ghi h\xecnh c\u1ee5c b\u1ed9 \u0111\xe3 \u0111\u01b0\u1ee3c l\u01b0u. Vui l\xf2ng h\u1ecfi nh\u1eefng ng\u01b0\u1eddi tham gia kh\xe1c \u0111\u1ec3 cung c\u1ea5p ghi h\xecnh c\u1ee7a h\u1ecd.",notModerator:"B\u1ea1n kh\xf4ng ph\u1ea3i ng\u01b0\u1eddi \u0111i\u1ec1u h\xe0nh. B\u1ea1n kh\xf4ng th\u1ec3 kh\u1edfi t\u1ea1o ho\u1eb7c d\u1eebng ghi h\xecnh."},moderator:"Qu\u1ea3n tr\u1ecb vi\xean",no:"Kh\xf4ng",participant:"Ng\u01b0\u1eddi tham gia",participantStats:"Tr\u1ea1ng th\xe1i ng\u01b0\u1eddi tham gia",sessionToken:"M\xe3 phi\xean",start:"B\u1eaft \u0111\u1ea7u ghi \xe2m",stop:"D\u1eebng ghi \xe2m",yes:"C\xf3"},lockRoomPassword:"M\u1eadt kh\u1ea9u",lockRoomPasswordUppercase:"M\u1eadt kh\u1ea9u",me:"T\xf4i",notify:{connectedOneMember:"{{name}} \u0111\xe3 tham gia cu\u1ed9c h\u1ecdp",connectedThreePlusMembers:"{{name}} v\xe0{{count}} kh\xe1c \u0111\xe3 tham gia cu\u1ed9c h\u1ecdp",connectedTwoMembers:"{{first}} v\xe0{{second}} \u0111\xe3 tham gia cu\u1ed9c h\u1ecdp",disconnected:"\u0111\xe3 ng\u1eaft k\u1ebft n\u1ed1i",focus:"H\u1ed9i ngh\u1ecb t\u1eadp trung",focusFail:"{{component}} kh\xf4ng kh\u1ea3 d\u1ee5ng - th\u1eed l\u1ea1i trong {{ms}} gi\xe2y",grantedTo:"Quy\u1ec1n c\u1ee7a ng\u01b0\u1eddi \u0111i\u1ec1u h\xe0nh \u0111\xe3 \u0111\u01b0\u1ee3c c\u1ea5p cho {{to}}!",invitedOneMember:"{{name}} \u0111\xe3 \u0111\u01b0\u1ee3c m\u1eddi",invitedThreePlusMembers:"",invitedTwoMembers:"",kickParticipant:"",me:"T\xf4i",moderator:"Quy\u1ec1n c\u1ee7a ng\u01b0\u1eddi \u0111i\u1ec1u h\xe0nh \u0111\xe3 \u0111\u01b0\u1ee3c c\u1ea5p!",muted:"B\u1ea1n \u0111\xe3 b\u1eaft \u0111\u1ea7u cu\u1ed9c tr\xf2 chuy\u1ec7n b\u1ecb t\u1eaft ti\u1ebfng.",mutedTitle:"B\u1ea1n b\u1ecb t\u1eaft ti\u1ebfng!",mutedRemotelyTitle:"",mutedRemotelyDescription:"",passwordRemovedRemotely:"",passwordSetRemotely:"",raisedHand:"{{name}} mu\u1ed1n ph\xe1t bi\u1ec3u.",somebody:"Ai \u0111\xf3",startSilentTitle:"",startSilentDescription:"",suboptimalExperienceDescription:"Ch\xfang t\xf4i lo r\u1eb1ng tr\u1ea3i nghi\u1ec7m c\u1ee7a b\u1ea1n v\u1edbi {{appName}} \u0111ang kh\xf4ng t\u1ed1t. Ch\xfang t\xf4i \u0111ang t\xecm c\xe1ch c\u1ea3i thi\u1ec7n, hi\u1ec7n t\u1ea1i th\u1eed m\u1ed9t trong c\xe1c tr\xecnh duy\u1ec7t \u0111\u01b0\u1ee3c h\u1ed7 tr\u1ee3.",suboptimalExperienceTitle:"C\u1ea3nh b\xe1o tr\xecnh duy\u1ec7t",unmute:"",newDeviceCameraTitle:"Camera m\u1edbi \u0111\u01b0\u1ee3c ph\xe1t hi\u1ec7n",newDeviceAudioTitle:"Thi\u1ebft b\u1ecb \xe2m thanh m\u1edbi \u0111\u01b0\u1ee3c ph\xe1t hi\u1ec7n",newDeviceAction:"S\u1eed d\u1ee5ng"},passwordSetRemotely:"\u0111\u01b0\u1ee3c thi\u1ebft l\u1eadp b\u1edfi m\u1ed9t ng\u01b0\u1eddi kh\xe1c",passwordDigitsOnly:"",poweredby:"\u0110\u01b0\u1ee3c h\u1ed7 tr\u1ee3 b\u1edfi",presenceStatus:{busy:"B\u1eadn",calling:"\u0110ang g\u1ecdi...",connected:"\u0110\xe3 k\u1ebft n\u1ed1i",connecting:"\u0110ang k\u1ebft n\u1ed1i...",connecting2:"\u0110ang k\u1ebft n\u1ed1i*...",disconnected:"\u0110\xe3 ng\u1eaft k\u1ebft n\u1ed1i",expired:"H\u1ebft h\u1ea1n",ignored:"\u0110\xe3 b\u1ecf qua",initializingCall:"\u0110ang t\u1ea1o cu\u1ed9c g\u1ecdi...",invited:"\u0110\xe3 m\u1eddi",rejected:"\u0110\xe3 t\u1eeb ch\u1ed1i",ringing:"\u0110ang \u0111\u1ed5 chu\xf4ng..."},profile:{setDisplayNameLabel:"Nh\u1eadp t\xean hi\u1ec3n th\u1ecb c\u1ee7a b\u1ea1n",setEmailInput:"Nh\u1eadp \u0111\u1ecba ch\u1ec9 e-mail",setEmailLabel:"Nh\u1eadp \u0111\u1ecba ch\u1ec9 gravatar email c\u1ee7a b\u1ea1n",title:"H\u1ed3 s\u01a1"},recording:{authDropboxText:"T\u1ea3i l\xean Dropbox",availableSpace:"Dung l\u01b0\u1ee3ng c\xf2n: {{spaceLeft}} MB (kho\u1ea3ng {{duration}} ph\xfat ghi h\xecnh)",beta:"B\u1ea3n th\u1eed nghi\u1ec7m",busy:"Ch\u01b0\u01a1ng tr\xecnh \u0111ang b\u1eadn gi\u1ea3i ph\xf3ng t\xe0i nguy\xean thu h\xecnh. Xin th\u1eed l\u1ea1i sau v\xe0i ph\xfat.",busyTitle:"T\u1ea5t c\u1ea3 c\xe1c \u0111\u1ea7u ghi h\xecnh hi\u1ec7n \u0111ang b\u1eadn.",error:"Ghi \xe2m kh\xf4ng th\xe0nh c\xf4ng. Vui l\xf2ng th\u1eed l\u1ea1i.",expandedOff:"Ghi h\xecnh \u0111\xe3 d\u1eebng",expandedOn:"Cu\u1ed9c h\u1ecdp \u0111ang \u0111\u01b0\u1ee3c ghi h\xecnh.",expandedPending:"Ghi h\xecnh \u0111ang kh\u1edfi \u0111\u1ed9ng...",failedToStart:"Kh\u1edfi \u0111\u1ed9ng ghi \xe2m th\u1ea5t b\u1ea1i",fileSharingdescription:"Chia s\u1ebb ghi h\xecnh v\u1edbi ng\u01b0\u1eddi tham gia h\u1ecdp",live:"Tr\u1ef1c tuy\u1ebfn",loggedIn:"\u0110\xe3 \u0111\u0103ng nh\u1eadp d\u01b0\u1edbi t\xean {{userName}}",off:"\u0110\xe3 ng\u1eebng ghi \xe2m",on:"\u0110ang ghi \xe2m",pending:"\u0110ang chu\u1ea9n b\u1ecb \u0111\u1ec3 ghi h\xecnh cu\u1ed9c h\u1ecdp...",rec:"REC",serviceDescription:"Ghi h\xecnh c\u1ee7a b\u1ea1n s\u1ebd \u0111\u01b0\u1ee3c l\u01b0u b\u1edfi d\u1ecbch v\u1ee5 ghi h\xecnh",serviceName:"D\u1ecbch v\u1ee5 ghi h\xecnh",signIn:"\u0110\u0103ng nh\u1eadp",signOut:"\u0110\u0103ng xu\u1ea5t",unavailable:"R\u1ea5t ti\u1ebfc! D\u1ecbch v\u1ee5 {{serviceName}} \u0111ang kh\xf4ng s\u1eb5n s\xe0ng. Ch\xfang t\xf4i \u0111ang x\u1eed l\xfd v\u1ea5n \u0111\u1ec1 n\xe0y. Vui l\xf2ng th\u1eed l\u1ea1i sau.",unavailableTitle:"Ghi h\xecnh kh\xf4ng ho\u1ea1t \u0111\u1ed9ng."},sectionList:{pullToRefresh:"K\xe9o \u0111\u1ec3 l\xe0m t\u01b0\u01a1i"},settings:{calendar:{about:"{{appName}} t\xedch h\u1ee3p l\u1ecbch \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 truy c\u1eadp b\u1ea3o m\u1eadt l\u1ecbch \u0111\u1ec3 l\u1ea5y th\xf4ng tin s\u1ef1 ki\u1ec7n s\u1eafp t\u1edbi.",disconnect:"Ng\u1eaft k\u1ebft n\u1ed1i",microsoftSignIn:"\u0110\u0103ng nh\u1eadp v\u1edbi Microsoft",signedIn:"\u0110ang truy c\u1eadp l\u1ecbch s\u1ef1 ki\u1ec7n c\u1ee7a {{email}}. Ch\u1ecdn Ng\u1eaft k\u1ebft n\u1ed1i \u0111\u1ec3 d\u1eebng truy c\u1eadp l\u1ecbch s\u1ef1 ki\u1ec7n.",title:"L\u1ecbch"},devices:"Thi\u1ebft b\u1ecb",followMe:"T\u1ea5t c\u1ea3 m\u1ecdi ng\u01b0\u1eddi theo d\xf5i t\xf4i",language:"Ng\xf4n ng\u1eef",loggedIn:"\u0110\xe3 \u0111\u0103ng nh\u1eadp d\u01b0\u1edbi t\xean {{name}}",moderator:"Qu\u1ea3n tr\u1ecb vi\xean",more:"Th\xeam",name:"T\xean",noDevice:"Kh\xf4ng",selectAudioOutput:"\u0110\u1ea7u ra \xe2m thanh",selectCamera:"Camera",selectMic:"Microphone",startAudioMuted:"M\u1ecdi ng\u01b0\u1eddi b\u1eaft \u0111\u1ea7u \u0111\u1ec1u b\u1ecb t\u1eaft ti\u1ebfng",startVideoMuted:"M\u1ecdi ng\u01b0\u1eddi b\u1eaft \u0111\u1ea7u \u0111\u1ec1u b\u1ecb \u1ea9n",title:"C\xe0i \u0111\u1eb7t"},settingsView:{alertOk:"OK",alertTitle:"C\u1ea3nh b\xe1o",alertURLText:"URL m\xe1y ch\u1ee7 \u0111\xe3 nh\u1eadp kh\xf4ng h\u1ee3p l\u1ec7",buildInfoSection:"Th\xf4ng tin phi\xean b\u1ea3n",conferenceSection:"H\u1ed9i ngh\u1ecb",displayName:"T\xean hi\u1ec3n th\u1ecb",email:"Email",header:"C\xe0i \u0111\u1eb7t",profileSection:"H\u1ed3 s\u01a1",serverURL:"URL m\xe1y ch\u1ee7",startWithAudioMuted:"B\u1eaft \u0111\u1ea7u m\xe0 kh\xf4ng thu ti\u1ebfng",startWithVideoMuted:"B\u1eaft \u0111\u1ea7u kh\xf4ng thu h\xecnh",version:"Phi\xean b\u1ea3n"},share:{dialInfoText:"",mainText:"Ch\u1ecdn li\xean k\u1ebft d\u01b0\u1edbi \u0111\u1ec3 tham gia h\u1ecdp:\n{{roomUrl}}"},speaker:"Di\u1ec5n gi\u1ea3",speakerStats:{hours:"{{count}}h",minutes:"{{count}}m",name:"T\xean",seconds:"{{count}}s",speakerStats:"Th\u1ed1ng k\xea v\u1ec1 di\u1ec5n gi\u1ea3",speakerTime:"Th\u1eddi gian c\u1ee7a di\u1ec5n gi\u1ea3"},startupoverlay:{policyText:" ",title:"{{app}} c\u1ea7n s\u1eed d\u1ee5ng microphone v\xe0 camera c\u1ee7a b\u1ea1n."},suspendedoverlay:{rejoinKeyTitle:"Tham gia l\u1ea1i",text:"B\u1ea5m n\xfat Rejoin \u0111\u1ec3 k\u1ebft n\u1ed1i l\u1ea1i.",title:"Cu\u1ed9c g\u1ecdi h\xecnh c\u1ee7a b\u1ea1n b\u1ecb gi\xe1n \u0111o\u1ea1n v\xec m\xe1y t\xednh n\xe0y chuy\u1ec3n sang tr\u1ea1ng th\xe1i ng\u1ee7."},toolbar:{accessibilityLabel:{audioOnly:"Chuy\u1ec3n sang ch\u1ec9 ti\u1ebfng",audioRoute:"Ch\u1ecdn thi\u1ebft b\u1ecb \xe2m thanh",callQuality:"",cc:"M\u1edf/\u0110\xf3ng ph\u1ee5 \u0111\u1ec1",chat:"M\u1edf/\u0110\xf3ng c\u1eeda s\u1ed5 Chat",document:"M\u1edf/\u0110\xf3ng t\xe0i li\u1ec7u \u0111\u01b0\u1ee3c chia s\u1ebb",feedback:"\u0110\u1ec3 l\u1ea1i ph\u1ea3n h\u1ed3i",fullScreen:"M\u1edf/\u0110\xf3ng to\xe0n m\xe0n h\xecnh",hangup:"R\u1eddi cu\u1ed9c g\u1ecdi",invite:"M\u1eddi ng\u01b0\u1eddi tham gia",kick:"\u0110\u1ea9y ng\u01b0\u1eddi tham gia ra",localRecording:"M\u1edf/\u0110\xf3ng \u0111i\u1ec1u khi\u1ec3n ghi h\xecnh c\u1ee5c b\u1ed9",lockRoom:"M\u1edf/\u0110\xf3ng m\u1eadt kh\u1ea9u ph\xf2ng h\u1ecdp",moreActions:"M\u1edf/\u0110\xf3ng Th\xeam h\xe0nh \u0111\u1ed9ng",moreActionsMenu:"Menu Th\xeam h\xe0nh \u0111\u1ed9ng",mute:"M\u1edf/\u0110\xf3ng T\u1eaft ti\u1ebfng",pip:"M\u1edf/\u0110\xf3ng ch\u1ebf \u0111\u1ed9 H\xecnh-trong-H\xecnh",profile:"Ch\u1ec9nh s\u1eeda h\u1ed3 s\u01a1 c\xe1 nh\xe2n",raiseHand:"M\u1edf/\u0110\xf3ng Gi\u01a1 tay",recording:"M\u1edf/\u0110\xf3ng Ghi h\xecnh",remoteMute:"T\u1eaft ti\u1ebfng ng\u01b0\u1eddi tham gia",Settings:"M\u1edf/\u0110\xf3ng C\u1ea5u h\xecnh",sharedvideo:"M\u1edf/\u0110\xf3ng Chia s\u1ebb Youtube",shareRoom:"M\u1eddi ai \u0111\xf3",shareYourScreen:"M\u1edf/\u0110\xf3ng Chia s\u1ebb m\xe0n h\xecnh",shortcuts:"M\u1edf/\u0110\xf3ng Ph\xedm t\u1eaft",show:"",speakerStats:"M\u1edf/\u0110\xf3ng Th\u1ed1ng k\xea",tileView:"M\u1edf/\u0110\xf3ng Xem d\u1ea1ng l\u01b0\u1edbi",toggleCamera:"M\u1edf/\u0110\xf3ng Camera",videomute:"M\u1edf/\u0110\xf3ng Ti\u1ebfng, H\xecnh",videoblur:""},addPeople:"Th\xeam ng\u01b0\u1eddi v\xe0o cu\u1ed9c g\u1ecdi",audioOnlyOff:"Ch\u1ebf \u0111\u1ed9 ch\u1ec9 t\u1eaft ti\u1ebfng",audioOnlyOn:"B\u1eadt ch\u1ebf \u0111\u1ed9 Ch\u1ec9 \xe2m thanh",audioRoute:"Ch\u1ecdn thi\u1ebft b\u1ecb \xe2m thanh",authenticate:"X\xe1c th\u1ef1c",callQuality:"Ch\u1ec9nh ch\u1ea5t l\u01b0\u1ee3ng",chat:"M\u1edf / \u0110\xf3ng cu\u1ed9c h\u1ed9i tho\u1ea1i",closeChat:"\u0110\xf3ng Chat",documentClose:"\u0110\xf3ng t\xe0i li\u1ec7u \u0111\u01b0\u1ee3c chia s\u1ebb",documentOpen:"M\u1edf t\xe0i li\u1ec7u \u0111\u01b0\u1ee3c chia s\u1ebb",enterFullScreen:"Xem to\xe0n m\xe0n h\xecnh",enterTileView:"Xem ch\u1ebf \u0111\u1ed9 l\u01b0\u1edbi",exitFullScreen:"Tho\xe1t to\xe0n m\xe0n h\xecnh",exitTileView:"Tho\xe1t xem d\u1ea1ng l\u01b0\u1edbi",feedback:"\u0110\u1ec3 l\u1ea1i ph\u1ea3n h\u1ed3i",hangup:"Tho\xe1t",invite:"M\u1eddi ng\u01b0\u1eddi tham gia",login:"\u0110\u0103ng nh\u1eadp",logout:"\u0110\u0103ng xu\u1ea5t",lowerYourHand:"H\u1ea1 tay",moreActions:"Th\xeam h\xe0nh \u0111\u1ed9ng",mute:"T\u1eaft ti\u1ebfng / B\u1eadt ti\u1ebfng",openChat:"M\u1edf Chat",pip:"V\xe0o ch\u1ebf \u0111\u1ed9 \u1ea2nh-trong-\u1ea2nh",profile:"Ch\u1ec9nh s\u1eeda h\u1ed3 s\u01a1 c\xe1 nh\xe2n",raiseHand:"Gi\u01a1 / H\u1ea1 tay",raiseYourHand:"Gi\u01a1 tay",Settings:"C\xe0i \u0111\u1eb7t",sharedvideo:"Chia s\u1ebb YouTube video",shareRoom:"M\u1eddi ai \u0111\xf3",shortcuts:"Xem ph\xedm t\u1eaft",speakerStats:"Th\u1ed1ng k\xea v\u1ec1 di\u1ec5n gi\u1ea3",startScreenSharing:"B\u1eaft \u0111\u1ea7u chia s\u1ebb m\xe0n h\xecnh",startSubtitles:"B\u1eaft \u0111\u1ea7u ph\u1ee5 \u0111\u1ec1",stopScreenSharing:"D\u1eebng chia s\u1ebb m\xe0n h\xecnh",stopSubtitles:"D\u1eebng ph\u1ee5 \u0111\u1ec1",stopSharedVideo:"D\u1eebng Youtube",talkWhileMutedPopup:"C\u1ed1 g\u1eafng \u0111\u1ec3 n\xf3i chuy\u1ec7n? B\u1ea1n \u0111ang t\u1eaft ti\u1ebfng.",tileViewToggle:"M\u1edf/\u0110\xf3ng Xem d\u1ea1ng l\u01b0\u1edbi",toggleCamera:"M\u1edf/\u0110\xf3ng Camera",videomute:"B\u1eadt / T\u1eaft camera",startvideoblur:"",stopvideoblur:""},transcribing:{ccButtonTooltip:"Ch\u1ea1y/D\u1eebng ph\u1ee5 \u0111\u1ec1",error:"Phi\xean \xe2m kh\xf4ng th\xe0nh c\xf4ng. Vui l\xf2ng th\u1eed l\u1ea1i.",expandedLabel:"Phi\xean \xe2m \u0111ang b\u1eadt",failedToStart:"Kh\u1edfi ch\u1ea1y phi\xean \xe2m th\u1ea5t b\u1ea1i",labelToolTip:"Cu\u1ed9c h\u1ecdp \u0111ang \u0111\u01b0\u1ee3c phi\xean \xe2m",off:"Phi\xean \xe2m \u0111\xe3 d\u1eebng",pending:"\u0110ang chu\u1ea9n b\u1ecb phi\xean \xe2m cu\u1ed9c h\u1ecdp...",start:"B\u1eaft \u0111\u1ea7u hi\u1ec3n th\u1ecb ph\u1ee5 \u0111\u1ec1",stop:"D\u1eebng hi\u1ec3n th\u1ecb ph\u1ee5 \u0111\u1ec1",tr:"TR"},userMedia:{androidGrantPermissions:"Ch\u1ecdn Cho ph\xe9p khi tr\xecnh duy\u1ec7t c\u1ee7a b\u1ea1n y\xeau c\u1ea7u c\u1ea5p ph\xe9p.",chromeGrantPermissions:"Ch\u1ecdn Cho ph\xe9p khi tr\xecnh duy\u1ec7t c\u1ee7a b\u1ea1n y\xeau c\u1ea7u c\u1ea5p ph\xe9p.",edgeGrantPermissions:"Ch\u1ecdn C\xf3 khi tr\xecnh duy\u1ec7t c\u1ee7a b\u1ea1n y\xeau c\u1ea7u c\u1ea5p ph\xe9p.",electronGrantPermissions:"Vui l\xf2ng c\u1ea5p quy\u1ec1n s\u1eed d\u1ee5ng camera v\xe0 microphone c\u1ee7a b\u1ea1n",firefoxGrantPermissions:"Ch\u1ecdn Chia s\u1ebb thi\u1ebft b\u1ecb \u0111\xe3 ch\u1ecdn khi tr\xecnh duy\u1ec7t c\u1ee7a b\u1ea1n y\xeau c\u1ea7u c\u1ea5p ph\xe9p.",iexplorerGrantPermissions:"Ch\u1ecdn C\xf3 khi tr\xecnh duy\u1ec7t c\u1ee7a b\u1ea1n y\xeau c\u1ea7u c\u1ea5p ph\xe9p.",nwjsGrantPermissions:"Vui l\xf2ng c\u1ea5p quy\u1ec1n s\u1eed d\u1ee5ng camera v\xe0 microphone c\u1ee7a b\u1ea1n",operaGrantPermissions:"Ch\u1ecdn Cho ph\xe9p khi tr\xecnh duy\u1ec7t c\u1ee7a b\u1ea1n y\xeau c\u1ea7u c\u1ea5p ph\xe9p.","react-nativeGrantPermissions":"Ch\u1ecdn Cho ph\xe9p khi tr\xecnh duy\u1ec7t c\u1ee7a b\u1ea1n y\xeau c\u1ea7u c\u1ea5p ph\xe9p.",safariGrantPermissions:"Ch\u1ecdn C\xf3 khi tr\xecnh duy\u1ec7t c\u1ee7a b\u1ea1n y\xeau c\u1ea7u c\u1ea5p ph\xe9p."},videoSIPGW:{busy:"Ch\xfang t\xf4i \u0111ang gi\u1ea3i ph\xf3ng t\xe0i nguy\xean. Vui l\xf2ng th\u1eed l\u1ea1i sau v\xe0i ph\xfat.",busyTitle:"D\u1ecbch v\u1ee5 Ph\xf2ng h\u1ecdp \u0111ang b\u1eadn",errorAlreadyInvited:"{{displayName}} \u0111\xe3 \u0111\u01b0\u1ee3c m\u1eddi",errorInvite:"Cu\u1ed9c h\u1ecdp ch\u01b0a \u0111\u01b0\u1ee3c kh\u1edfi t\u1ea1o. Vui l\xf2ng th\u1eed l\u1ea1i.",errorInviteFailed:"Ch\xfang t\xf4i \u0111ang x\u1eed l\xfd v\u1ea5n \u0111\u1ec1. Vui l\xf2ng th\u1eed l\u1ea1i sau.",errorInviteFailedTitle:"M\u1eddi {{displayName}} th\u1ea5t b\u1ea1i",errorInviteTitle:"L\u1ed7i m\u1eddi h\u1ecdp",pending:"{{displayName}} \u0111\xe3 \u0111\u01b0\u1ee3c m\u1eddi"},videoStatus:{audioOnly:"AUD",audioOnlyExpanded:"B\u1ea1n \u0111ang \u1edf ch\u1ebf \u0111\u1ed9 ch\u1ec9 ti\u1ebfng. Ch\u1ebf \u0111\u1ed9 n\xe0y gi\u1ea3m b\u0103ng th\xf4ng nh\u01b0ng kh\xf4ng th\u1ea5y h\xecnh \u1ea3nh ng\u01b0\u1eddi kh\xe1c.",callQuality:"",hd:"HD",highDefinition:"HD",labelTooiltipNoVideo:"Kh\xf4ng h\xecnh \u1ea3nh",labelTooltipAudioOnly:"Ch\u1ebf \u0111\u1ed9 ch\u1ec9 ti\u1ebfng \u0111\xe3 b\u1eadt",ld:"LD",lowDefinition:"Ph\xe2n gi\u1ea3i th\u1ea5p",onlyAudioAvailable:"Ch\u1ec9 c\xf3 \xe2m thanh s\u1eb5n s\xe0ng",onlyAudioSupported:"Ch\u1ec9 h\u1ed7 tr\u1ee3 \xe2m thanh tr\xean tr\xecnh duy\u1ec7t n\xe0y.",p2pEnabled:"Peer to Peer \u0111\xe3 b\u1eadt",p2pVideoQualityDescription:"",recHighDefinitionOnly:"\u01afu ti\xean ph\xe2n gi\u1ea3i HD.",sd:"SD",standardDefinition:"Ph\xe2n gi\u1ea3i SD"},videothumbnail:{domute:"T\u1eaft ti\u1ebfng",flip:"L\u1eadt",kick:"\u0110\u1ea9y ra",moderator:"Qu\u1ea3n tr\u1ecb vi\xean",mute:"Ng\u01b0\u1eddi tham gia b\u1ecb t\u1eaft ti\u1ebfng",muted:"\u0110\xe3 t\u1eaft ti\u1ebfng",remoteControl:"\u0110i\u1ec1u khi\u1ec3n t\u1eeb xa",show:"",videomute:""},welcomepage:{accessibilityLabel:{join:"Ch\u1ea1m \u0111\u1ec3 tham gia",roomname:"Nh\u1eadp t\xean ph\xf2ng"},appDescription:"Ti\u1ebfp t\u1ee5c, chat h\xecnh v\u1edbi to\xe0n b\u1ed9 nh\xf3m. Th\u1ef1c t\u1ebf, m\u1eddi ng\u01b0\u1eddi b\u1ea1n bi\u1ebft. {{app}} \u0111\u01b0\u1ee3c m\xe3 h\xf3a, 100% gi\u1ea3i ph\xe1p h\u1ed9i ngh\u1ecb m\xe3 m\u1edf m\xe0 b\u1ea1n c\xf3 th\u1ec3 s\u1eed d\u1ee5ng h\xe0ng ng\xe0y, mi\u1ec5n ph\xed.",audioVideoSwitch:{audio:"Ti\u1ebfng",video:"H\xecnh \u1ea3nh"},calendar:"L\u1ecbch",connectCalendarButton:"K\u1ebft n\u1ed1i L\u1ecbch c\u1ee7a b\u1ea1n",connectCalendarText:"K\u1ebft n\u1ed1i l\u1ecbch c\u1ee7a b\u1ea1n \u0111\u1ec3 xem t\u1ea5t c\u1ea3 c\xe1c cu\u1ed9c h\u1ecdp {{app}}. Th\xeam, th\xeam cu\u1ed9c h\u1ecdp {{provider}} v\xe0o l\u1ecbch c\u1ee7a b\u1ea1n v\xe0 b\u1eaft \u0111\u1ea7u.",enterRoomTitle:"B\u1eaft \u0111\u1ea7u cu\u1ed9c h\u1ecdp m\u1edbi",go:"\u0110I",join:"THAM GIA",info:"Th\xf4ng tin",privacy:"B\u1ea3o m\u1eadt",recentList:"Hi\u1ec7n t\u1ea1i",recentListDelete:"X\xf3a",recentListEmpty:"Danh s\xe1ch cu\u1ed9c h\u1ecdp r\u1ed7ng. Th\u1ef1c hi\u1ec7n cu\u1ed9c h\u1ecdp v\xe0 b\u1ea1n s\u1ebd th\u1ea5y danh s\xe1ch hi\u1ec7n t\u1ea1i \u0111\xe2y.",reducedUIText:"",roomname:"Nh\u1eadp t\xean ph\xf2ng",roomnameHint:"Th\xeam t\xean ho\u1eb7c URL c\u1ee7a ph\xf2ng h\u1ecdp b\u1ea1n mu\u1ed1n tham gia. Ban c\xf3 th\u1ec3 t\u1ea1o t\xean ph\xf2ng, g\u1eedi cho ng\u01b0\u1eddi b\u1ea1n mu\u1ed1n m\u1eddi \u0111\u1ec3 h\u1ecd s\u1eed d\u1ee5ng t\xean \u0111\xf3.",sendFeedback:"G\u1eedi g\xf3p \xfd",terms:"\u0110i\u1ec1u ki\u1ec7n",title:"B\u1ea3o m\u1eadt, \u0111\u1ea7y \u0111\u1ee7 t\xednh n\u0103ng v\xe0 mi\u1ec5n ph\xed ho\xe0n to\xe0n"}}},687,[]); -__d(function(e,s,o,t,n,r,a){n.exports={en:"\u82f1\u8bed",af:"\u5357\u975e\u8377\u5170\u8bed",az:"\u963f\u585e\u62dc\u7586\u8bed",bg:"\u4fdd\u52a0\u5229\u4e9a\u8bed",cs:"\u6377\u514b\u8bed",de:"\u5fb7\u8bed",el:"\u5e0c\u814a\u8bed",eo:"\u4e16\u754c\u8bed",es:"\u897f\u73ed\u7259\u8bed",fr:"\u6cd5\u8bed",hy:"\u4e9a\u7f8e\u5c3c\u4e9a\u8bed",it:"\u610f\u5927\u5229\u8bed",ja:"\u65e5\u8bed",ko:"\u97e9\u8bed",nb:"\u632a\u5a01\u5e03\u514b\u6469\u5c14\u8bed",oc:"\u6b27\u897f\u5766\u8bed",pl:"\u6ce2\u5170\u8bed",ptBR:"\u8461\u8404\u7259\u8bed\uff08\u5df4\u897f\uff09",ru:"\u4fc4\u8bed",sk:"\u65af\u6d1b\u4f10\u514b\u8bed",sl:"\u65af\u6d1b\u6587\u5c3c\u4e9a\u8bed",sv:"\u745e\u5178\u8bed",tr:"\u571f\u8033\u5176\u8bed",vi:"\u8d8a\u5357\u8bed",zhCN:"\u4e2d\u6587(\u4e2d\u56fd)"}},688,[]); -__d(function(e,o,i,t,r,n,a){r.exports={addPeople:{add:"\u9080\u8bf7",countryNotSupported:"\u76ee\u7684\u56fd\u5bb6\u6682\u65f6\u672a\u88ab\u652f\u6301\u3002",countryReminder:"\u5c1d\u8bd5\u5728\u7f8e\u56fd\u4e4b\u5916\u901a\u8bdd\uff1f\u8bf7\u68c0\u67e5\u56fd\u5bb6\u4ee3\u7801\uff01",disabled:"\u60a8\u4e0d\u80fd\u9080\u8bf7\u6210\u5458",failedToAdd:"",footerText:"\u7981\u6b62\u62e8\u53f7\u3002",loading:"\u67e5\u627e\u8054\u7cfb\u4eba\u6216\u8005\u7535\u8bdd\u53f7\u7801",loadingNumber:"\u9a8c\u8bc1\u7535\u8bdd\u53f7\u7801",loadingPeople:"\u6b63\u5728\u641c\u7d22\u9700\u8981\u9080\u8bf7\u7684\u6210\u5458",noResults:"\u6ca1\u6709\u7b26\u5408\u8981\u6c42\u7684\u641c\u7d22\u7ed3\u679c",noValidNumbers:"\u8bf7\u8f93\u5165\u4e00\u4e2a\u7535\u8bdd\u53f7\u7801",searchNumbers:"\u65b0\u589e\u7535\u8bdd\u53f7\u7801",searchPeople:"\u641c\u7d22\u6210\u5458",searchPeopleAndNumbers:"\u641c\u7d22\u6210\u5458\u6216\u6dfb\u52a0\u5176\u7535\u8bdd\u53f7\u7801",telephone:"\u7535\u8bdd\u53f7\u7801\uff1a {{number}}",title:"\u9080\u8bf7\u6210\u5458\u4e0e\u4f1a"},audioDevices:{bluetooth:"\u84dd\u7259",headphones:"\u8033\u673a",phone:"\u7535\u8bdd",speaker:"\u53d1\u8a00\u4eba"},audioOnly:{audioOnly:"\u53ea\u6709\u97f3\u9891"},calendarSync:{addMeetingURL:"\u6dfb\u52a0\u4f1a\u8bae\u94fe\u63a5",confirmAddLink:"\u662f\u5426\u5728\u6b64\u4e8b\u4ef6\u4e2d\u6dfb\u52a0Jitsi\u94fe\u63a5",error:{appConfiguration:"\u65e5\u5386\u96c6\u6210\u914d\u7f6e\u4e0d\u6b63\u786e\u3002",generic:"\u53d1\u751f\u9519\u8bef\u3002\u8bf7\u68c0\u67e5\u65e5\u5386\u8bbe\u7f6e\u6216\u5c1d\u8bd5\u5237\u65b0\u65e5\u5386\u3002",notSignedIn:"\u67e5\u770b\u65e5\u5386\u4e8b\u4ef6\u9a8c\u8bc1\u51fa\u9519\u3002\u8bf7\u68c0\u67e5\u65e5\u5386\u8bbe\u7f6e\uff0c\u7136\u540e\u518d\u6b21\u5c1d\u8bd5\u767b\u5f55\u3002"},join:"\u52a0\u5165",joinTooltip:"\u52a0\u5165\u4f1a\u8bae",nextMeeting:"\u8fd1\u671f\u65e0\u6d3b\u52a8\u3002",noEvents:"\u8fd1\u671f\u65e0\u6d3b\u52a8\u3002",ongoingMeeting:"\u6b63\u5728\u8fdb\u884c\u7684\u4f1a\u8bae",permissionButton:"\u6253\u5f00\u8bbe\u7f6e",permissionMessage:"\u5728\u5e94\u7528\u4e2d\u67e5\u770b\u4f1a\u8bae\u9700\u8981\u65e5\u5386\u6743\u9650\u3002",refresh:"\u5237\u65b0\u65e5\u5386",today:"\u4eca\u65e5"},chat:{error:"\u9519\u8bef\uff1a\u4f60\u7684\u6d88\u606f \"{{originalText}}\" \u672a\u88ab\u53d1\u9001\u3002\u539f\u56e0\uff1a {{error}}",messagebox:"\u8f93\u5165\u6d88\u606f",nickname:{popover:"\u9009\u62e9\u4e00\u4e2a\u6635\u79f0",title:"\u8f93\u5165\u4e00\u4e2a\u6635\u79f0\u7528\u4e8e\u804a\u5929"},title:"\u804a\u5929"},connectingOverlay:{joiningRoom:"\u4f1a\u8bae\u8fde\u63a5\u4e2d..."},connection:{ATTACHED:"\u5df2\u63a5\u5165",AUTHENTICATING:"\u8ba4\u8bc1\u4e2d",AUTHFAIL:"\u8ba4\u8bc1\u5931\u8d25",CONNECTED:"\u8fde\u63a5\u4e2d...",CONNECTING:"\u8fde\u63a5\u4e2d",CONNFAIL:"\u8fde\u63a5\u5931\u8d25",DISCONNECTED:"\u5df2\u65ad\u5f00\u8fde\u63a5",DISCONNECTING:"\u65ad\u5f00\u8fde\u63a5\u4e2d",ERROR:"\u9519\u8bef",RECONNECTING:"\u7f51\u7edc\u9519\u8bef\uff0c\u91cd\u8fde\u4e2d\u3002\u3002\u3002"},connectionindicator:{address:"\u5730\u5740\uff1a",bandwidth:"\u4f30\u8ba1\u5e26\u5bbd\uff1a",bitrate:"\u6bd4\u7279\u7387\uff1a",bridgeCount:"\u670d\u52a1\u5668\u6570\u91cf:",connectedTo:"\u8fde\u63a5\u5230:",framerate:"\u5e27\u7387\uff1a",less:"\u663e\u793a\u66f4\u5c11",localaddress:"\u672c\u5730\u5730\u5740\uff1a",localport:"\u672c\u5730\u7aef\u53e3\uff1a",more:"\u663e\u793a\u66f4\u591a",packetloss:"\u4e22\u5305\uff1a",quality:{good:"\u597d",inactive:"\u672a\u6fc0\u6d3b",lost:"\u6389\u7ebf",nonoptimal:"\u4e2d",poor:"\u5dee"},remoteaddress:"\u8fdc\u7a0b\u5730\u5740\uff1a",remoteport:"\u8fdc\u7a0b\u7aef\u53e3\uff1a",resolution:"\u5206\u8fa8\u7387\uff1a",status:"\u8fde\u63a5\uff1a",transport:"\u4f20\u8f93\uff1a",turn:"\u8def\u7531"},dateUtils:{earlier:"\u66f4\u65e9\u7684",today:"\u4eca\u65e5",yesterday:"\u6628\u5929"},deepLinking:{appNotInstalled:"\u60a8\u9700\u8981\u5728\u624b\u673a\u4e0a\u5b89\u88c5 {{app}} \u8fd9\u4e2a\u5e94\u7528\u624d\u80fd\u53c2\u52a0\u4f1a\u8bae\u3002",description:"\u65e0\u54cd\u5e94\uff1f\u6b63\u5728\u5c1d\u8bd5\u542f\u52a8\u684c\u9762{{app}}\u53ec\u5f00\u4f1a\u8bae\u3002\u91cd\u8bd5\u6216\u542f\u52a8\u7f51\u9875\u7248{{app}}\u53ec\u5f00\u4f1a\u8bae\u3002",descriptionWithoutWeb:"",downloadApp:"\u4e0b\u8f7d\u5e94\u7528",launchWebButton:"\u5728\u7f51\u9875\u4e2d\u542f\u52a8",openApp:"\u7ee7\u7eed\u6253\u5f00\u5e94\u7528",title:"\u5728 {{app}}\u4e2d\u767b\u5f55\u4f1a\u8bae...",tryAgainButton:"\u8bf7\u5c1d\u8bd5\u91cd\u542f\u684c\u9762\u7248\u5e94\u7528\u7a0b\u5e8f"},defaultLink:"\u4f8b\u5982 {{url}}",deviceError:{cameraError:"\u65e0\u6cd5\u8bbf\u95ee\u60a8\u7684\u6444\u50cf\u5934",cameraPermission:"\u65e0\u6cd5\u83b7\u5f97\u6444\u50cf\u5934\u8bbf\u95ee\u6743\u9650",microphoneError:"\u65e0\u6cd5\u8bbf\u95ee\u60a8\u7684\u9ea6\u514b\u98ce",microphonePermission:"\u65e0\u6cd5\u83b7\u5f97\u9ea6\u514b\u98ce\u8bbf\u95ee\u6743\u9650"},deviceSelection:{noPermission:"\u672a\u6388\u6743\u9650",previewUnavailable:"\u9884\u89c8\u4e0d\u53ef\u7528",selectADevice:"\u9009\u62e9\u8bbe\u5907",testAudio:"\u64ad\u653e\u6d4b\u8bd5\u97f3\u9891"},dialog:{accessibilityLabel:{liveStreaming:"\u6d41\u5a92\u4f53\u76f4\u64ad"},allow:"\u5141\u8bb8",alreadySharedVideoMsg:"",alreadySharedVideoTitle:"\u53ea\u80fd\u540c\u65f6\u5206\u4eab \u4e00\u4e2a\u89c6\u9891",applicationWindow:"\u5e94\u7528\u7a97\u53e3",Back:"\u8fd4\u56de",cameraConstraintFailedError:"\u4f60\u7684\u6444\u50cf\u5934\u4e0d\u6ee1\u8db3\u8981\u6c42\u3002",cameraNotFoundError:"\u672a\u53d1\u73b0\u6444\u50cf\u5934",cameraNotSendingData:"\u6211\u4eec\u65e0\u6cd5\u8bbf\u95ee\u60a8\u7684\u6444\u50cf\u5934\u3002\u8bf7\u68c0\u67e5\u662f\u5426\u6709\u5176\u4ed6\u7a0b\u5e8f\u6b63\u5728\u4f7f\u7528\u8fd9\u4e2a\u8bbe\u5907\uff0c\u5426\u5219\u8bf7\u4ece\u8bbe\u5b9a\u83dc\u5355\u91cc\u9009\u62e9\u5176\u4ed6\u8bbe\u5907\u6216\u8005\u91cd\u65b0\u52a0\u8f7d\u3002",cameraNotSendingDataTitle:"\u65e0\u6cd5\u8bbf\u95ee\u6444\u50cf\u5934",cameraPermissionDeniedError:"\u60a8\u672a\u6388\u6743\u4f7f\u7528\u60a8\u7684\u6444\u50cf\u5934\u3002\u60a8\u4ecd\u53ef\u53c2\u52a0\u4f1a\u8bae\u4f46\u662f\u5176\u4ed6\u4eba\u65e0\u6cd5\u770b\u5230\uff0c\u4f7f\u7528\u5730\u5740\u680f\u91cc\u7684\u6444\u50cf\u5934\u6309\u94ae\u6765\u542f\u52a8\u6444\u50cf\u5934\u3002",cameraUnknownError:"\u7531\u4e8e\u672a\u77e5\u9519\u8bef\uff0c\u65e0\u6cd5\u4f7f\u7528\u6444\u50cf\u5934\u3002",cameraUnsupportedResolutionError:"\u60a8\u7684\u6444\u50cf\u5934\u4e0d\u652f\u6301\u6240\u9700\u5206\u8fa8\u7387\u3002",Cancel:"\u53d6\u6d88",close:"\u5173\u95ed",conferenceDisconnectMsg:"\u8bf7\u68c0\u67e5\u4f60\u7684\u7f51\u7edc\u8fde\u63a5\u3002\u5c06\u4f1a\u5728 {{seconds}} \u79d2\u540e\u91cd\u65b0\u8fde\u63a5\u2026",conferenceDisconnectTitle:"\u4f60\u5df2\u7ecf\u65ad\u5f00\u3002",conferenceReloadMsg:"\u4e0d\u597d\u610f\u601d\uff0c\u51fa\u9519\u4e86\u3002",conferenceReloadTitle:"\u4e0d\u597d\u610f\u601d\uff0c\u51fa\u9519\u4e86\u3002",confirm:"\u786e\u8ba4",confirmNo:"\u5426",confirmYes:"\u662f",connectError:"\u53d1\u751f\u9519\u8bef\uff0c\u65e0\u6cd5\u8fde\u63a5\u81f3\u4f1a\u8bae\uff01",connectErrorWithMsg:"\u53d1\u751f\u9519\u8bef\uff0c\u65e0\u6cd5\u8fde\u63a5\u81f3\u4f1a\u8bae: {{msg}}",connecting:"\u8fde\u63a5\u4e2d",contactSupport:"\u8054\u7cfb\u6211\u4eec",copy:"\u590d\u5236",dismiss:"\u89e3\u9664,\u79bb\u5f00",displayNameRequired:"",done:"\u5b8c\u6210",enterDisplayName:"",error:"\u9519\u8bef",externalInstallationMsg:"\u60a8\u9700\u8981\u5b89\u88c5\u684c\u9762\u5171\u4eab\u6269\u5c55",externalInstallationTitle:"\u9700\u8981\u6269\u5c55\u7a0b\u5e8f",goToStore:"\u8df3\u8f6c\u81f3\u5e94\u7528\u5546\u5e97",gracefulShutdown:"\u670d\u52a1\u5668\u6b63\u5728\u7ef4\u62a4\uff0c\u8bf7\u7a0d\u540e\u518d\u8bd5\u3002",IamHost:"\u6211\u662f\u4e3b\u6301\u4eba\u3002",incorrectRoomLockPassword:"",incorrectPassword:"\u9519\u8bef\u7684\u7528\u6237\u540d\u6216\u8005\u5bc6\u7801",inlineInstallationMsg:"\u60a8\u9700\u8981\u5b89\u88c5\u684c\u9762\u5171\u4eab\u6269\u5c55",inlineInstallExtension:"\u7acb\u523b\u5b89\u88c5",internalError:"\u54ce\u5440\uff01\u51fa\u73b0\u4e86\u70b9\u95ee\u9898\u3002\u9519\u8bef\uff1a {{error}}",internalErrorTitle:"\u5185\u90e8\u9519\u8bef",kickMessage:"",kickParticipantButton:"\u8e22\u9664",kickParticipantDialog:"\u786e\u5b9a\u8981\u8e22\u9664\u6b64\u6210\u5458\u5417\uff1f",kickParticipantTitle:"\u9759\u97f3\u8be5\u4e0e\u4f1a\u8005\u5417\uff1f",kickTitle:"",liveStreaming:"\u6d41\u5a92\u4f53\u76f4\u64ad\u4e2d",liveStreamingDisabledForGuestTooltip:"\u8bbf\u5ba2\u65e0\u6cd5\u542f\u52a8\u6d41\u5a92\u4f53\u76f4\u64ad\u3002",liveStreamingDisabledTooltip:"\u7981\u6b62\u542f\u52a8\u6d41\u5a92\u4f53\u3002",lockMessage:"\u9501\u5b9a\u4f1a\u8bae\u5931\u8d25\u3002",lockRoom:"",lockTitle:"\u9501\u5b9a\u5931\u8d25",logoutQuestion:"\u4f60\u786e\u5b9a\u8981\u767b\u51fa\u5e76\u505c\u6b62\u4f1a\u8bae\u5417\uff1f",logoutTitle:"\u767b\u51fa",maxUsersLimitReached:"",maxUsersLimitReachedTitle:"",micConstraintFailedError:"\u4f60\u7684\u9ea6\u514b\u98ce\u4e0d\u6ee1\u8db3\u8981\u6c42\u3002",micNotFoundError:"\u672a\u53d1\u73b0\u9ea6\u514b\u98ce",micNotSendingData:"",micNotSendingDataTitle:"",micPermissionDeniedError:"\u60a8\u672a\u6388\u6743\u4f7f\u7528\u9ea6\u514b\u98ce\uff0c\u60a8\u4ecd\u53ef\u53c2\u52a0\u4f1a\u8bae\u4f46\u662f\u5176\u4ed6\u4eba\u65e0\u6cd5\u542c\u5230\uff0c\u4f7f\u7528\u5730\u5740\u680f\u91cc\u7684\u6444\u50cf\u5934\u6309\u94ae\u6765\u542f\u52a8\u9ea6\u514b\u98ce\u3002",micUnknownError:"\u672a\u77e5\u9519\u8bef\uff0c\u9ea6\u514b\u98ce\u4e0d\u53ef\u7528\u3002",muteParticipantBody:"\u60a8\u65e0\u6cd5\u5bf9\u4ed6\u4eec\u89e3\u9664\u9759\u97f3\uff0c\u4f46\u662f\u4ed6\u4eec\u81ea\u5df1\u53ef\u4ee5\u968f\u65f6\u89e3\u9664\u9759\u97f3\u3002",muteParticipantButton:"\u9759\u97f3",muteParticipantDialog:"\u60a8\u786e\u5b9a\u8981\u5c06\u6b64\u53c2\u4e0e\u8005\u9759\u97f3\u5417\uff1f\u60a8\u5c06\u65e0\u6cd5\u53d6\u6d88\u9759\u97f3\uff0c\u4f46\u4ed6\u4eec\u53ef\u4ee5\u968f\u65f6\u53d6\u6d88\u9759\u97f3\u3002",muteParticipantTitle:"\u9759\u97f3\u8be5\u4e0e\u4f1a\u8005\u5417\uff1f",Ok:"\u597d\u7684",passwordLabel:"",passwordNotSupported:"\u4e0d\u652f\u6301\u8bbe\u7f6e\u4f1a\u8bae\u5bc6\u7801\u3002",passwordNotSupportedTitle:"",passwordRequired:"",popupError:"\u60a8\u7684\u6d4f\u89c8\u5668\u5728\u6b64\u7f51\u7ad9\u4e0a\u963b\u6b62\u4e86\u5f39\u51fa\u5f0f\u7a97\u53e3\u3002\u8bf7\u5728\u6d4f\u89c8\u5668\u7684\u5b89\u5168\u8bbe\u7f6e\u4e2d\u6253\u5f00\u5b83\u5e76\u518d\u8bd5\u4e00\u6b21\u3002",popupErrorTitle:"\u5f39\u51fa\u7a97\u53e3\u88ab\u62e6\u622a",recording:"\u5f55\u5236\u4e2d",recordingDisabledForGuestTooltip:"\u8bbf\u5ba2\u65e0\u6cd5\u5f00\u542f\u5f55\u5236\u3002",recordingDisabledTooltip:"\u5f00\u59cb\u5f55\u5236\u88ab\u7981\u7528\u3002",rejoinNow:"\u9a6c\u4e0a\u91cd\u65b0\u52a0\u5165",remoteControlAllowedMessage:"{{user}} \u63a5\u53d7\u4e86\u60a8\u7684\u8fdc\u7a0b\u63a7\u5236\u8bf7\u6c42",remoteControlDeniedMessage:"{{user}} \u62d2\u7edd\u4e86\u60a8\u7684\u8fdc\u7a0b\u63a7\u5236\u8bf7\u6c42",remoteControlErrorMessage:"\u5728\u5c1d\u8bd5\u5411{{user}}\u8bf7\u6c42\u8fdc\u7a0b\u63a7\u5236\u6743\u9650\u65f6\u53d1\u751f\u4e86\u4e00\u4e2a\u9519\u8bef\uff01",remoteControlRequestMessage:"\u4f60\u5141\u8bb8 {{user}} \u8fdc\u7a0b\u63a7\u5236\u4f60\u7684\u684c\u9762\u5417?",remoteControlShareScreenWarning:"\u6ce8\u610f\uff1a\u5982\u679c\u6309\u4e0b\u201c\u5141\u8bb8\u201d\u4f60\u5c06\u5171\u4eab\u4f60\u7684\u5c4f\u5e55\uff01",remoteControlStopMessage:"\u8fdc\u7a0b\u63a7\u5236\u7ed3\u675f\uff01",remoteControlTitle:"\u8fdc\u7a0b\u684c\u9762\u63a7\u5236",Remove:"\u79fb\u9664",removePassword:"",removeSharedVideoMsg:"\u60a8\u786e\u5b9a\u8981\u79fb\u9664\u5171\u4eab\u7684\u89c6\u9891\u5417\uff1f",removeSharedVideoTitle:"\u79fb\u9664\u5171\u4eab\u7684\u89c6\u9891",reservationError:"\u9884\u5b9a\u7cfb\u7edf\u9519\u8bef",reservationErrorMsg:"\u9519\u8bef\u4ee3\u53f7: {{code}}, \u63d0\u793a\u4fe1\u606f: {{msg}}",retry:"\u91cd\u8bd5",screenSharingFailedToInstall:"\u54ce\u5440\uff01\u5c4f\u5e55\u5171\u4eab\u63d2\u4ef6\u5b89\u88c5\u5931\u8d25\u3002",screenSharingFailedToInstallTitle:"\u5c4f\u5e55\u5171\u4eab\u63d2\u4ef6\u5b89\u88c5\u5931\u8d25",screenSharingFirefoxPermissionDeniedError:"\u5c1d\u8bd5\u8fdb\u884c\u5c4f\u5e55\u5171\u4eab\u65f6\u9047\u5230\u4e86\u95ee\u9898\u3002\u8bf7\u786e\u8ba4\u7ed9\u4e88\u4e86\u76f8\u5e94\u7684\u6743\u9650\u3002",screenSharingFirefoxPermissionDeniedTitle:"\u54ce\u5440\uff01\u6211\u4eec\u65e0\u6cd5\u542f\u52a8\u5c4f\u5e55\u5171\u4eab\uff01",screenSharingPermissionDeniedError:"\u54ce\u5440\uff01\u60a8\u7684\u5c4f\u5e55\u5171\u4eab\u63d2\u4ef6\u4f3c\u4e4e\u9047\u5230\u4e86\u6743\u9650\u95ee\u9898\u3002\u8bf7\u91cd\u65b0\u52a0\u8f7d\u5e76\u91cd\u8bd5\u3002",serviceUnavailable:"\u670d\u52a1\u4e0d\u53ef\u7528",sessTerminated:"\u901a\u8bdd\u5df2\u7ec8\u6b62",Share:"\u5206\u4eab",shareVideoLinkError:"\u8bf7\u63d0\u4f9b\u6b63\u786e\u7684youtube\u94fe\u63a5\u3002",shareVideoTitle:"\u5206\u4eab\u89c6\u9891",shareYourScreen:"\u5171\u4eab\u4f60\u7684\u5c4f\u5e55",shareYourScreenDisabled:"\u7981\u6b62\u5171\u4eab\u5c4f\u5e55\u3002",shareYourScreenDisabledForGuest:"\u8bbf\u5ba2\u65e0\u6cd5\u5171\u4eab\u5c4f\u5e55\u3002",startLiveStreaming:"\u5f00\u59cb\u76f4\u64ad",startRecording:"\u5f00\u59cb\u5f55\u5236",startRemoteControlErrorMessage:"\u5c1d\u8bd5\u5f00\u59cb\u8fdc\u7a0b\u63a7\u5236\u4f1a\u8bdd\u65f6\u53d1\u751f\u4e86\u4e00\u4e2a\u9519\u8bef\uff01",stopLiveStreaming:"\u505c\u6b62\u6d41\u5a92\u4f53\u76f4\u64ad",stopRecording:"\u505c\u6b62\u5f55\u5236",stopRecordingWarning:"\u786e\u5b9a\u8981\u505c\u6b62\u5f55\u5236\u5417",stopStreamingWarning:"\u786e\u5b9a\u8981\u505c\u6b62\u6d41\u5a92\u4f53\u76f4\u64ad\u5417\uff1f",streamKey:"\u6d41\u5a92\u4f53\u76f4\u64ad\u5bc6\u94a5",Submit:"\u63d0\u4ea4",thankYou:"\u611f\u8c22\u4f7f\u7528{{appName}}\uff01",token:"\u6807\u8bc6",tokenAuthFailed:"\u5bf9\u4e0d\u8d77\uff0c\u60a8\u672a\u88ab\u5141\u8bb8\u53c2\u52a0\u6b64\u4f1a\u8bae\u3002",tokenAuthFailedTitle:"\u8ba4\u8bc1\u5931\u8d25",transcribing:"\u8f6c\u5f55\u4e2d",unlockRoom:"",userPassword:"\u7528\u6237\u5bc6\u7801",WaitForHostMsg:"\u4f1a\u8bae{{room}}\u5c1a\u672a\u5f00\u59cb\u3002\u5982\u679c\u60a8\u662f\u4e3b\u6301\u4eba\uff0c\u8bf7\u8fdb\u884c\u8eab\u4efd\u9a8c\u8bc1\u3002\u5426\u5219\uff0c\u8bf7\u7b49\u5f85\u4e3b\u6301\u4eba\u7684\u5230\u6765\u3002",WaitForHostMsgWOk:"\u4f1a\u8bae{{room}}\u5c1a\u672a\u5f00\u59cb\u3002\u5982\u679c\u60a8\u662f\u4e3b\u6301\u4eba\uff0c\u8bf7\u8fdb\u884c\u8eab\u4efd\u9a8c\u8bc1\u3002\u5426\u5219\uff0c\u8bf7\u7b49\u5f85\u4e3b\u6301\u4eba\u7684\u5230\u6765\u3002",WaitingForHost:"\u7b49\u5f85\u4e3b\u6301\u4eba\u3002\u3002\u3002",Yes:"\u662f",yourEntireScreen:"\u4f60\u7684\u6574\u4e2a\u5c4f\u5e55"},dialOut:{statusMessage:"\u73b0\u5728\u72b6\u6001\u4e3a {{status}}"},feedback:{average:"\u5e73\u5747",bad:"\u5dee",detailsLabel:"\u544a\u8bc9\u6211\u4eec\u66f4\u591a\u5efa\u8bae\u548c\u610f\u89c1\u3002",good:"\u597d",rateExperience:"\u8bf7\u8bc4\u4ef7\u60a8\u7684\u4f1a\u8bae\u4f53\u9a8c\u3002",veryBad:"\u975e\u5e38\u5dee",veryGood:"\u975e\u5e38\u597d"},incomingCall:{answer:"\u56de\u590d",audioCallTitle:"\u6765\u7535",decline:"\u89e3\u9664,\u79bb\u5f00",productLabel:"\u6765\u81eaJitsi Meet",videoCallTitle:"\u89c6\u9891\u6765\u7535"},info:{accessibilityLabel:"\u663e\u793a\u4fe1\u606f",addPassword:"",cancelPassword:"",conferenceURL:"\u94fe\u63a5\uff1a",country:"\u56fd\u5bb6",dialANumber:"\u82e5\u8981\u52a0\u5165\u4f1a\u8bae\uff0c\u8bf7\u62e8\u6253\u5176\u4e2d\u4e00\u4e2a\u53f7\u7801\uff0c\u7136\u540e\u8f93\u5165pin\u7801\u3002",dialInConferenceID:"PIN:",dialInNotSupported:"\u62b1\u6b49\uff0c\u4e0d\u652f\u6301\u7535\u8bdd\u547c\u5165\u3002",dialInNumber:"\u64ad\u5165\uff1a",dialInSummaryError:"\u83b7\u53d6\u62e8\u5165\u4fe1\u606f\u65f6\u51fa\u9519\u3002\u8bf7\u7a0d\u540e\u518d\u8bd5\u3002",dialInTollFree:"\u514d\u8d39\u7535\u8bdd",genericError:"\u7cdf\u7cd5\uff01\u51fa\u9519\u4e86\u3002",inviteLiveStream:"\u82e5\u8981\u67e5\u770b\u6b64\u4f1a\u8bae\u7684\u5b9e\u65f6\u76f4\u64ad\uff0c\u8bf7\u5355\u51fb\u6b64\u94fe\u63a5\uff1a{{url}}",invitePhone:"",invitePhoneAlternatives:"",inviteURLFirstPartGeneral:"\u60a8\u88ab\u9080\u8bf7\u52a0\u5165\u4e00\u4e2a\u4f1a\u8bae\u3002",inviteURLFirstPartPersonal:"{{name}} \u6b63\u5728\u9080\u8bf7\u60a8\u52a0\u5165\u4e00\u4e2a\u4f1a\u8bae\u3002\n",inviteURLSecondPart:"",liveStreamURL:"\u76f4\u64ad\uff1a",moreNumbers:"\u66f4\u591a\u6210\u5458",noNumbers:"\u65e0\u547c\u5165\u53f7\u7801\u3002",noPassword:"\u672a\u53d1\u73b0\u8bbe\u5907",noRoom:"\u6ca1\u6709\u6307\u5b9a\u8981\u547c\u5165\u7684\u623f\u95f4\u3002",numbers:"\u547c\u5165\u53f7\u7801",password:"",title:"\u5206\u4eab",tooltip:"\u5171\u4eab\u6b64\u4f1a\u8bae\u7684\u94fe\u63a5\u548c\u62e8\u5165\u4fe1\u606f",label:"\u4f1a\u8bae\u4fe1\u606f"},inviteDialog:{alertText:"\u9080\u8bf7\u6210\u5458\u5931\u8d25\u3002",header:"\u9080\u8bf7",searchCallOnlyPlaceholder:"\u8f93\u5165\u7535\u8bdd\u53f7\u7801",searchPeopleOnlyPlaceholder:"\u67e5\u627e\u6210\u5458",searchPlaceholder:"\u6210\u5458\u6216\u7535\u8bdd\u53f7\u7801",send:"\u53d1\u9001"},inlineDialogFailure:{msg:"\u8c8c\u4f3c\u51fa\u4e86\u70b9\u95ee\u9898\u3002",retry:"\u91cd\u8bd5",support:"\u652f\u6301",supportMsg:"\u5982\u679c\u6b64\u4e8b\u591a\u6b21\u53d1\u751f\uff0c\u8bf7\u8054\u7cfb"},keyboardShortcuts:{focusLocal:"\u5207\u6362\u5230\u672c\u5730\u89c6\u9891\u4e0a",focusRemote:"\u663e\u793a\u5bf9\u65b9\u7684\u89c6\u9891",fullScreen:"\u5f00\u542f / \u9000\u51fa \u5168\u5c4f",keyboardShortcuts:"\u5feb\u6377\u952e",localRecording:"\u663e\u793a / \u9690\u85cf \u672c\u5730\u5f55\u5236\u9009\u9879",mute:"\u9759\u97f3\u6216\u53d6\u6d88\u9759\u97f3",pushToTalk:"\u6309\u4f4f\u8bf4\u8bdd",raiseHand:"\u7533\u8bf7\u6216\u53d6\u6d88\u53d1\u8a00",showSpeakerStats:"\u67e5\u770b\u626c\u58f0\u5668\u72b6\u6001",toggleChat:"\u6253\u5f00\u6216\u5173\u95ed\u804a\u5929",toggleFilmstrip:"\u663e\u793a/\u9690\u85cf \u89c6\u9891\u7f29\u7565\u56fe",toggleScreensharing:"\u5728\u6444\u50cf\u5934\u548c\u5c4f\u5e55\u5171\u4eab\u4e4b\u95f4\u5207\u6362",toggleShortcuts:"\u663e\u793a/\u9690\u85cf \u5feb\u6377\u952e",videoMute:"\u5f00\u542f\u6216\u5173\u95ed\u89c6\u9891"},liveStreaming:{busy:"\u6211\u4eec\u6b63\u5728\u91ca\u653e\u4e32\u6d41\u8d44\u6e90\u3002\u8bf7\u51e0\u5206\u949f\u540e\u518d\u8bd5\u3002",busyTitle:"\u6240\u6709\u7684\u4e32\u6d41\u8bbe\u5907\u6b63\u5fd9",changeSignIn:"\u5207\u6362\u5e10\u53f7",choose:"\u9009\u62e9\u4e00\u4e2a\u76f4\u64ad\u6d41",chooseCTA:"\u8bf7\u9009\u62e9\u76f4\u64ad\u9009\u9879\u3002\u60a8\u73b0\u5728\u4ee5 {{email}} \u8eab\u4efd\u767b\u5f55\u3002",enterStreamKey:"\u5728\u6b64\u8f93\u5165\u60a8\u7684 YouTube \u4e32\u6d41\u5bc6\u94a5\u3002",error:"\u6d41\u5a92\u4f53\u76f4\u64ad\u5931\u8d25\u3002\u8bf7\u91cd\u8bd5\u3002",errorAPI:"\u5728\u8bbf\u95ee\u60a8\u7684 YouTube \u76f4\u64ad\u670d\u52a1\u65f6\u53d1\u751f\u95ee\u9898\u3002\u8bf7\u91cd\u65b0\u767b\u5f55\u3002",errorLiveStreamNotEnabled:"{{email}} \u672a\u542f\u7528\u6d41\u5a92\u4f53\u76f4\u64ad\u3002\u8bf7\u4f7f\u7528\u6d41\u5a92\u4f53\u76f4\u64ad\u6216\u767b\u5f55\u542f\u7528\u4e86\u6d41\u5a92\u4f53\u76f4\u64ad\u7684\u5e10\u6237\u3002",expandedOff:"\u6d41\u5a92\u4f53\u76f4\u64ad\u5df2\u88ab\u5173\u95ed",expandedOn:"\u4f1a\u8bae\u5f53\u524d\u6b63\u5728YouTube\u4e0a\u76f4\u64ad\u3002",expandedPending:"\u542f\u52a8\u76f4\u64ad\u4e2d\u3002\u3002\u3002",failedToStart:"\u76f4\u64ad\u670d\u52a1\u542f\u52a8\u5931\u8d25",getStreamKeyManually:"\u6211\u4eec\u65e0\u6cd5\u83b7\u53d6\u4efb\u4f55\u76f4\u64ad\u3002\u5c1d\u8bd5\u4eceYouTube\u83b7\u53d6\u6d41\u5a92\u4f53\u76f4\u64ad\u5bc6\u94a5\u3002",invalidStreamKey:"\u6d41\u5a92\u4f53\u76f4\u64ad\u5bc6\u94a5\u53ef\u80fd\u4e0d\u6b63\u786e\u3002",off:"\u6d41\u5a92\u4f53\u76f4\u64ad\u5df2\u505c\u6b62",on:"\u6d41\u5a92\u4f53\u76f4\u64ad\u4e2d",pending:"\u542f\u52a8\u6d41\u5a92\u4f53\u3002\u3002\u3002",serviceName:"\u76f4\u64ad\u670d\u52a1",signedInAs:"\u60a8\u5f53\u524d\u767b\u5f55\u4e3a\uff1a",signIn:"\u4f7f\u7528\u8c37\u6b4c\u767b\u5f55",signInCTA:"\u8f93\u5165 YouTube \u4e32\u6d41\u5bc6\u94a5\u6216\u8005\u767b\u5f55 YouTube \u5e10\u53f7\u3002",signOut:"\u767b\u51fa",start:"\u5f00\u59cb\u76f4\u64ad",streamIdHelp:"\u8fd9\u662f\u4ec0\u4e48\uff1f",unavailableTitle:"\u6d41\u5a92\u4f53\u76f4\u64ad\u4e0d\u53ef\u7528"},localRecording:{clientState:{off:"\u5173",on:"\u5f00",unknown:"\u672a\u77e5"},dialogTitle:"\u672c\u5730\u5f55\u5236\u63a7\u5236",duration:"\u5468\u671f",durationNA:"N/A",encoding:"\u7f16\u7801\u4e2d",label:"\u5f55\u97f3",labelToolTip:"\u672c\u5730\u5f55\u97f3\u88ab\u5360\u7528",localRecording:"\u672c\u5730\u5f55\u5236\u4e2d",me:"\u81ea\u5df1",messages:{engaged:"\u672c\u5730\u5f55\u97f3\u88ab\u5360\u7528\u3002",finished:"\u4f1a\u8bdd {{token}} \u5f55\u5236\u7ed3\u675f\u3002\u8bf7\u5c06\u5f55\u5236\u7684\u6587\u4ef6\u53d1\u9001\u7ed9\u4e3b\u6301\u4eba\u3002",finishedModerator:"\u4f1a\u8bdd {{token}} \u5f55\u5236\u7ed3\u675f\u3002\u672c\u5730\u5f55\u5236\u5df2\u4fdd\u5b58\u3002\u8bf7\u8981\u6c42\u5176\u4ed6\u53c2\u4e0e\u8005\u63d0\u4ea4\u4ed6\u4eec\u7684\u5f55\u97f3\u3002",notModerator:"\u4f60\u4e0d\u662f\u4e3b\u6301\u4eba.\u4f60\u4e0d\u80fd\u5f00\u542f\u6216\u5173\u95ed\u672c\u5730\u5f55\u97f3"},moderator:"\u7ba1\u7406\u5458",no:"\u5426",participant:"\u4e0e\u4f1a\u8005",participantStats:"\u4e0e\u4f1a\u8005\u72b6\u6001",sessionToken:"\u4f1a\u8bdd\u4ee4\u724c",start:"\u5f00\u59cb\u5f55\u5236",stop:"\u505c\u6b62\u5f55\u5236",yes:"\u662f"},lockRoomPassword:"\u5bc6\u7801",lockRoomPasswordUppercase:"\u5bc6\u7801",me:"\u6211",notify:{connectedOneMember:"{{name}} \u52a0\u5165\u4f1a\u8bae",connectedThreePlusMembers:"{{name}} \u548c\u5176\u4ed6 {{count}} \u4eba\u52a0\u5165\u4f1a\u8bae",connectedTwoMembers:"{{first}} \u548c {{second}} \u52a0\u5165\u4f1a\u8bae",disconnected:"\u5df2\u65ad\u5f00\u8fde\u63a5",focus:"\u4f1a\u8bae\u805a\u7126",focusFail:"{{component}} \u4e0d\u53ef\u7528 - \u5728{{ms}}\u79d2\u540e\u91cd\u8bd5",grantedTo:"\u4e3b\u6301\u6743\u9650\u5df2\u6388\u4e88{{to}}\uff01",invitedOneMember:"{{name}} \u5df2\u88ab\u9080\u8bf7",invitedThreePlusMembers:"",invitedTwoMembers:"",kickParticipant:"",me:"\u81ea\u5df1",moderator:"\u5df2\u6388\u6743\u4e3b\u6301\u4eba\u6743\u9650\uff01",muted:"\u60a8\u5df2\u7ecf\u5f00\u59cb\u4e86\u901a\u8bdd\uff0c\u5e76\u5904\u4e8e\u9759\u97f3\u72b6\u6001\u3002",mutedTitle:"\u60a8\u5df2\u88ab\u9759\u97f3\uff01",mutedRemotelyTitle:"",mutedRemotelyDescription:"",passwordRemovedRemotely:"",passwordSetRemotely:"",raisedHand:"{{name}} \u60f3\u8981\u53d1\u8a00\u3002",somebody:"\u67d0\u4eba",startSilentTitle:"",startSilentDescription:"",suboptimalExperienceDescription:"\u5443\u2026\u6050\u6015\u60a8\u5bf9 {{appName}} \u7684\u4f53\u9a8c\u4f1a\u5f88\u4e0d\u597d\u3002\u6211\u4eec\u6b63\u5728\u5c1d\u8bd5\u4f18\u5316\u5bf9\u6b64\u6d4f\u89c8\u5668\u7684\u652f\u6301\u3002\u773c\u4e0b\uff0c\u8bf7\u5c1d\u8bd5\u4f7f\u7528 \u5df2\u77e5\u4f53\u9a8c\u5f88\u597d\u7684\u6d4f\u89c8\u5668\u3002",suboptimalExperienceTitle:"\u6d4f\u89c8\u5668\u8b66\u544a",unmute:"",newDeviceCameraTitle:"\u68c0\u6d4b\u5230\u65b0\u76f8\u673a",newDeviceAudioTitle:"\u68c0\u6d4b\u5230\u65b0\u97f3\u9891\u8bbe\u5907",newDeviceAction:"\u4f7f\u7528"},passwordSetRemotely:"\u7531\u5176\u4ed6\u4e0e\u4f1a\u8005\u8bbe\u7f6e",passwordDigitsOnly:"",poweredby:"\u6280\u672f\u652f\u6301",presenceStatus:{busy:"\u5fd9\u788c",calling:"\u901a\u8bdd\u4e2d...",connected:"\u8fde\u63a5\u4e2d...",connecting:"\u8fde\u63a5\u4e2d...",connecting2:"\u8fde\u63a5\u4e2d...",disconnected:"\u5df2\u65ad\u5f00\u8fde\u63a5",expired:"\u5df2\u8fc7\u671f",ignored:"\u5df2\u5ffd\u7565",initializingCall:"\u521d\u59cb\u5316\u547c\u53eb...",invited:"\u9080\u8bf7",rejected:"\u62d2\u7edd",ringing:"\u54cd\u94c3..."},profile:{setDisplayNameLabel:"\u8bbe\u5b9a\u60a8\u7684\u663e\u793a\u540d\u79f0",setEmailInput:"\u8f93\u5165\u60a8\u7684\u90ae\u7bb1",setEmailLabel:"\u8bbe\u7f6e\u60a8\u7684\u4e2a\u4eba\u5168\u7403\u7edf\u4e00\u6807\u8bc6\u90ae\u7bb1",title:"\u7b80\u4ecb"},recording:{authDropboxText:"\u4e0a\u4f20\u81f3Dropbox",availableSpace:"\u53ef\u7528\u7a7a\u95f4\uff1a{{spaceLeft}} MB\uff08\u5927\u7ea6\u53ef\u5f55 {{duration}} \u5206\u949f\uff09 ",beta:"BETA",busy:"\u6211\u4eec\u6b63\u5728\u91ca\u653e\u5f55\u5236\u8d44\u6e90\u3002\u8bf7\u51e0\u5206\u949f\u4e4b\u540e\u518d\u8bd5\u3002",busyTitle:"\u6240\u6709\u7684\u5f55\u5236\u8bbe\u5907\u6b63\u5fd9",error:"\u5f55\u5236\u5931\u8d25\u3002\u8bf7\u91cd\u65b0\u5c1d\u8bd5\u3002",expandedOff:"\u5f55\u5236\u5df2\u505c\u6b62",expandedOn:"\u6b64\u4f1a\u8bae\u6b63\u5728\u88ab\u5f55\u5236\u3002",expandedPending:"\u5f55\u5236\u6b63\u5728\u542f\u52a8...",failedToStart:"\u5f55\u5236\u542f\u52a8\u5931\u8d25",fileSharingdescription:"\u8ddf\u4e0e\u4f1a\u8005\u5206\u4eab\u5f55\u5236",live:"\u76f4\u64ad",loggedIn:"\u4ee5 {{userName}} \u767b\u5f55",off:"\u5f55\u5236\u5df2\u505c\u6b62",on:"\u5f55\u5236\u4e2d",pending:"\u6b63\u5728\u51c6\u5907\u5f55\u5236\u4f1a\u8bae....",rec:"REC\u5f55\u5236",serviceDescription:"\u5f55\u5236\u670d\u52a1\u5c06\u4fdd\u5b58\u60a8\u7684\u5f55\u5236",serviceName:"\u5f55\u5236\u670d\u52a1",signIn:"\u767b\u5f55",signOut:"\u767b\u51fa",unavailable:"\u5662\uff01{{serviceName}} \u6682\u65f6\u65e0\u6cd5\u4f7f\u7528\u3002\u6211\u4eec\u6b63\u5728\u89e3\u51b3\u6b64\u95ee\u9898\u3002\u8bf7\u7a0d\u540e\u518d\u8bd5\u3002",unavailableTitle:"\u5f55\u5236\u4e0d\u53ef\u7528"},sectionList:{pullToRefresh:"\u4e0b\u62c9\u5237\u65b0"},settings:{calendar:{about:"{{appName}} \u7684\u65e5\u5386\u96c6\u6210\u7528\u4e8e\u5b89\u5168\u8bbf\u95ee\u60a8\u7684\u65e5\u5386\uff0c\u4ee5\u4fbf\u5b83\u53ef\u4ee5\u8bfb\u53d6\u5373\u5c06\u53d1\u751f\u7684\u4e8b\u4ef6\u3002",disconnect:"\u65ad\u5f00\u8fde\u63a5",microsoftSignIn:"Microsoft\u5e10\u53f7\u767b\u5f55",signedIn:"\u76ee\u524d\u901a\u8fc7{{email}}\u83b7\u53d6\u65e5\u5386\u4e8b\u4ef6\u3002\u70b9\u51fb\u4e0b\u65b9\u65ad\u5f00\u8fde\u63a5\u6309\u94ae\u505c\u6b62\u8bbf\u95ee\u3002",title:"\u65e5\u5386"},devices:"\u8bbe\u5907",followMe:"\u6240\u6709\u4eba\u8ddf\u968f\u6211",language:"\u8bed\u8a00",loggedIn:"\u4ee5{{name}} \u767b\u5f55",moderator:"\u7ba1\u7406\u5458",more:"\u66f4\u591a",name:"\u540d\u79f0",noDevice:"\u672a\u53d1\u73b0\u8bbe\u5907",selectAudioOutput:"\u97f3\u9891\u8f93\u51fa",selectCamera:"\u6444\u50cf\u5934",selectMic:"\u9ea6\u514b\u98ce",startAudioMuted:"\u6240\u6709\u4eba\u5f00\u59cb\u65f6\u9759\u97f3",startVideoMuted:"\u6240\u6709\u4eba\u5f00\u59cb\u65f6\u9690\u85cf\u89c6\u9891\u753b\u9762",title:"\u8bbe\u7f6e"},settingsView:{alertOk:"\u786e\u8ba4",alertTitle:"\u8b66\u544a",alertURLText:"\u670d\u52a1\u5668 URL \u65e0\u6548",buildInfoSection:"\u751f\u6210\u4fe1\u606f",conferenceSection:"\u4f1a\u8bae",displayName:"\u663e\u793a\u540d\u79f0",email:"\u7535\u5b50\u90ae\u4ef6",header:"\u8bbe\u7f6e",profileSection:"\u7b80\u4ecb",serverURL:"\u670d\u52a1\u5668 URL",startWithAudioMuted:"\u542f\u52a8\u5e76\u5173\u95ed\u97f3\u9891",startWithVideoMuted:"\u542f\u52a8\u5e76\u5173\u95ed\u89c6\u9891",version:"\u7248\u672c"},share:{dialInfoText:"",mainText:"\u70b9\u51fb\u4ee5\u4e0b\u94fe\u63a5\u52a0\u5165\u4f1a\u8bae\uff1a{{roomUrl}}\n"},speaker:"\u53d1\u8a00\u4eba",speakerStats:{hours:"{{count}}h",minutes:"{{count}}m",name:"\u540d\u79f0",seconds:"{{count}}s",speakerStats:"\u53d1\u8a00\u8005\u72b6\u6001",speakerTime:"\u53d1\u8a00\u8005\u65f6\u95f4"},startupoverlay:{policyText:" ",title:"{{app}} \u9700\u8981\u4f7f\u7528\u60a8\u7684\u9ea6\u514b\u98ce\u548c\u6444\u50cf\u5934\u3002"},suspendedoverlay:{rejoinKeyTitle:"\u91cd\u65b0\u52a0\u5165",text:"\u6309\u4e0b \u91cd\u65b0\u52a0\u5165 \u6309\u94ae\u91cd\u65b0\u8fde\u63a5\u3002",title:"\u7531\u4e8e\u60a8\u7684\u7535\u8111\u8fdb\u5165\u4f11\u7720\u6a21\u5f0f\uff0c\u89c6\u9891\u901a\u8bdd\u5df2\u7ecf\u4e2d\u65ad\u3002"},toolbar:{accessibilityLabel:{audioOnly:"\u6253\u5f00 /\u5173\u95ed \u4ec5\u97f3\u9891",audioRoute:"\u9009\u62e9\u97f3\u9891\u8bbe\u5907",callQuality:"",cc:"\u6253\u5f00 / \u5173\u95ed \u5b57\u5e55",chat:"\u663e\u793a / \u9690\u85cf \u804a\u5929\u7a97\u53e3",document:"\u5f00\u542f / \u5173\u95ed \u6587\u6863\u5171\u4eab",feedback:"\u7559\u4e0b\u53cd\u9988",fullScreen:"\u8fdb\u5165 / \u9000\u51fa \u5168\u5c4f\u6a21\u5f0f",hangup:"\u9000\u51fa\u804a\u5929\u5ba4",invite:"\u9080\u8bf7",kick:"\u8e22\u9664\u6210\u5458",localRecording:"\u663e\u793a / \u9690\u85cf \u672c\u5730\u5f55\u5236\u9009\u9879",lockRoom:"\u5207\u6362\u4f1a\u8bae\u5ba4\u9501\u5b9a",moreActions:"\u663e\u793a / \u9690\u85cf \u66f4\u591a\u9009\u62e9",moreActionsMenu:"\u66f4\u591a\u529f\u80fd\u83dc\u5355",mute:"\u9759\u97f3 / \u53d6\u6d88\u9759\u97f3",pip:"\u5207\u6362\u5b50\u6bcd\u753b\u9762\u6a21\u5f0f",profile:"\u7f16\u8f91\u60a8\u7684\u7b80\u4ecb",raiseHand:"\u4e3e\u624b / \u53d6\u6d88\u4e3e\u624b",recording:"\u5f00\u542f / \u505c\u6b62 \u89c6\u9891\u5f55\u5236",remoteMute:"\u9759\u97f3\u4e0e\u4f1a\u8005",Settings:"\u663e\u793a / \u9690\u85cf \u8bbe\u7f6e",sharedvideo:"\u5f00\u542f / \u5173\u95ed Youtube \u5f71\u7247\u5206\u4eab",shareRoom:"\u9080\u8bf7\u4ed6\u4eba",shareYourScreen:"\u5f00\u542f / \u5173\u95ed \u5c4f\u5e55\u5206\u4eab",shortcuts:"\u5207\u6362\u5feb\u6377\u65b9\u5f0f",show:"",speakerStats:"\u663e\u793a / \u9690\u85cf \u6f14\u8bf4\u8005\u8d44\u6599",tileView:"\u753b\u9762\u6a21\u5f0f",toggleCamera:"\u5207\u6362\u76f8\u673a",videomute:"\u9759\u97f3 / \u53d6\u6d88\u9759\u97f3",videoblur:""},addPeople:"\u6dfb\u52a0\u6210\u5458\u5230\u60a8\u7684\u901a\u8bdd\u4e2d",audioOnlyOff:"\u7981\u7528\u4ec5\u97f3\u9891\u6a21\u5f0f",audioOnlyOn:"\u542f\u7528\u4ec5\u97f3\u9891\u6a21\u5f0f",audioRoute:"\u9009\u62e9\u97f3\u9891\u8bbe\u5907",authenticate:"\u8ba4\u8bc1",callQuality:"\u7ba1\u7406\u901a\u8bdd\u8d28\u91cf",chat:"\u5f00\u542f / \u5173\u95ed \u804a\u5929",closeChat:"\u5173\u95ed\u804a\u5929",documentClose:"\u5173\u95ed\u6587\u6863\u5171\u4eab",documentOpen:"\u5f00\u542f\u6587\u6863\u5171\u4eab",enterFullScreen:"\u5168\u5c4f\u89c2\u770b",enterTileView:"\u5207\u6362\u89c6\u56fe",exitFullScreen:"\u9000\u51fa\u5168\u5c4f\u6a21\u5f0f",exitTileView:"\u9000\u51fa\u5e73\u94fa\u6a21\u5f0f",feedback:"\u7559\u4e0b\u53cd\u9988",hangup:"\u79bb\u5f00",invite:"\u9080\u8bf7",login:"\u767b\u5f55",logout:"\u767b\u51fa",lowerYourHand:"\u653e\u624b",moreActions:"\u66f4\u591a\u64cd\u4f5c",mute:"\u9759\u97f3 / \u89e3\u9664\u9759\u97f3",openChat:"\u5f00\u542f\u804a\u5929",pip:"\u8fdb\u5165\u5b50\u6bcd\u753b\u9762\u6a21\u5f0f",profile:"\u7f16\u8f91\u60a8\u7684\u7b80\u4ecb",raiseHand:"\u8bf7\u6c42 / \u53d6\u6d88 \u53d1\u8a00",raiseYourHand:"\u4e3e\u624b",Settings:"\u8bbe\u7f6e",sharedvideo:"\u5206\u4eabYouTube\u89c6\u9891",shareRoom:"\u9080\u8bf7\u4ed6\u4eba",shortcuts:"",speakerStats:"\u53d1\u8a00\u8005\u72b6\u6001",startScreenSharing:"\u5f00\u542f\u5c4f\u5e55\u5171\u4eab",startSubtitles:"\u5f00\u542f\u5b57\u5e55",stopScreenSharing:"\u505c\u6b62\u5c4f\u5e55\u5171\u4eab",stopSubtitles:"\u5173\u95ed\u5b57\u5e55",stopSharedVideo:"\u5173\u95edYouTube\u89c6\u9891",talkWhileMutedPopup:"\u60a8\u5728\u5c1d\u8bd5\u53d1\u8a00\u5417? \u5f53\u524d\u60a8\u5df2\u88ab\u9759\u97f3\u3002",tileViewToggle:"\u753b\u9762\u6a21\u5f0f",toggleCamera:"\u5207\u6362\u76f8\u673a",videomute:"\u5f00\u542f / \u5173\u95ed \u6444\u50cf\u5934",startvideoblur:"",stopvideoblur:""},transcribing:{ccButtonTooltip:"\u5f00\u542f / \u5173\u95ed\u5b57\u5e55",error:"\u8f6c\u5f55\u5931\u8d25\u3002\u8bf7\u91cd\u65b0\u5c1d\u8bd5\u3002",expandedLabel:"\u6b63\u5728\u8f6c\u5f55\u4e2d",failedToStart:"\u5f00\u542f\u8f6c\u5f55\u5931\u8d25",labelToolTip:"\u4f1a\u8bae\u6b63\u5728\u8f6c\u5f55",off:"\u505c\u6b62\u8f6c\u5f55",pending:"\u6b63\u5728\u51c6\u5907\u8f6c\u5f55\u4f1a\u8bae...",start:"\u5f00\u542f\u663e\u793a\u5b57\u5e55",stop:"\u505c\u6b62\u663e\u793a\u5b57\u5e55",tr:"TR"},userMedia:{androidGrantPermissions:"\u5f53\u6d4f\u89c8\u5668\u8981\u6c42\u6743\u9650\u8bb8\u53ef\u65f6\u9009\u62e9 \u5141\u8bb8",chromeGrantPermissions:"\u5f53\u6d4f\u89c8\u5668\u8981\u6c42\u6743\u9650\u8bb8\u53ef\u65f6\u9009\u62e9 \u5141\u8bb8",edgeGrantPermissions:"\u5f53\u6d4f\u89c8\u5668\u8981\u6c42\u6743\u9650\u8bb8\u53ef\u65f6\u9009\u62e9 \u662f",electronGrantPermissions:"\u8bf7\u6388\u6743\u4f7f\u7528\u60a8\u7684\u6444\u50cf\u5934\u548c\u9ea6\u514b\u98ce",firefoxGrantPermissions:"\u5f53\u6d4f\u89c8\u5668\u8981\u6c42\u6743\u9650\u8bb8\u53ef\u65f6\u9009\u62e9\u5171\u4eab\u8bbe\u5907 ",iexplorerGrantPermissions:"\u5f53\u6d4f\u89c8\u5668\u8981\u6c42\u6743\u9650\u8bb8\u53ef\u65f6\u9009\u62e9 \u53ef\u4ee5",nwjsGrantPermissions:"\u8bf7\u6388\u6743\u4f7f\u7528\u60a8\u7684\u6444\u50cf\u5934\u548c\u9ea6\u514b\u98ce",operaGrantPermissions:"\u5f53\u6d4f\u89c8\u5668\u8981\u6c42\u6743\u9650\u8bb8\u53ef\u65f6\u9009\u62e9 \u5141\u8bb8","react-nativeGrantPermissions":"\u5f53\u6d4f\u89c8\u5668\u8981\u6c42\u6743\u9650\u8bb8\u53ef\u65f6\u9009\u62e9 \u5141\u8bb8",safariGrantPermissions:"\u5f53\u6d4f\u89c8\u5668\u8981\u6c42\u6743\u9650\u8bb8\u53ef\u65f6\u9009\u62e9 \u53ef\u4ee5"},videoSIPGW:{busy:"\u6211\u4eec\u6b63\u5728\u6e05\u7406\u548c\u91ca\u653e\u8d44\u6e90\u3002\u8bf7\u8fc7\u51e0\u5206\u949f\u540e\u518d\u8bd5\u3002",busyTitle:"\u623f\u95f4\u670d\u52a1\u6b63\u5fd9",errorAlreadyInvited:"{{displayName}} \u5df2\u88ab\u9080\u8bf7\u8fc7\u4e86",errorInvite:"\u4f1a\u8bae\u8fd8\u672a\u5f00\u59cb\u3002\u8bf7\u7a0d\u540e\u518d\u6765\u3002",errorInviteFailed:"\u6211\u4eec\u6b63\u5728\u89e3\u51b3\u95ee\u9898\u3002\u8bf7\u7a0d\u540e\u518d\u8bd5\u3002",errorInviteFailedTitle:"\u9080\u8bf7 {{displayName}} \u5931\u8d25",errorInviteTitle:"\u9080\u8bf7\u623f\u95f4\u9519\u8bef",pending:"{{displayName}} \u5df2\u88ab\u9080\u8bf7"},videoStatus:{audioOnly:"AUD\u58f0\u97f3",audioOnlyExpanded:"\u60a8\u5904\u4e8e\u4ec5\u7528\u97f3\u8baf\u6a21\u5f0f\u3002\u8be5\u6a21\u5f0f\u53ef\u8282\u7701\u9891\u5bbd\uff0c\u4f46\u65e0\u6cd5\u770b\u89c1\u4ed6\u4eba\u5f71\u50cf\u3002",callQuality:"",hd:"\u9ad8\u6e05",highDefinition:"\u9ad8\u6e05",labelTooiltipNoVideo:"\u65e0\u89c6\u9891",labelTooltipAudioOnly:"\u5df2\u542f\u7528\u4ec5\u97f3\u9891\u6a21\u5f0f",ld:"\u4f4e\u6e05",lowDefinition:"\u4f4e\u6e05",onlyAudioAvailable:"\u53ea\u80fd\u4f7f\u7528\u97f3\u9891",onlyAudioSupported:"\u6211\u4eec\u53ea\u652f\u6301\u6b64\u6d4f\u89c8\u5668\u7684\u97f3\u9891\u529f\u80fd\u3002",p2pEnabled:"\u70b9\u5bf9\u70b9\u5df2\u542f\u7528",p2pVideoQualityDescription:"",recHighDefinitionOnly:"\u5c06\u4f1a\u9996\u9009\u9ad8\u6e05\u6a21\u5f0f\u3002",sd:"\u6807\u6e05",standardDefinition:"\u6807\u6e05"},videothumbnail:{domute:"\u9759\u97f3",flip:"\u7ffb\u8f6c",kick:"\u8e22\u51fa",moderator:"\u7ba1\u7406\u5458",mute:"\u4e0e\u4f1a\u8005\u5df2\u88ab\u9759\u97f3",muted:"\u5df2\u9759\u97f3",remoteControl:"\u8fdc\u7a0b\u63a7\u5236",show:"",videomute:""},welcomepage:{accessibilityLabel:{join:"\u70b9\u51fb\u52a0\u5165",roomname:"\u8bf7\u8f93\u5165\u623f\u95f4\u540d"},appDescription:"\u5feb\u6765\u4f7f\u7528\u5168\u961f\u89c6\u9891\u901a\u8bdd\u3002\u60a8\u53ef\u4ee5\u9080\u8bf7\u4efb\u4f55\u60a8\u8ba4\u8bc6\u7684\u4eba\u3002{{app}} \u662f\u4e00\u4e2a\u5b8c\u5168\u52a0\u5bc6\uff0c100% \u5f00\u6e90\u7684\u89c6\u9891\u4f1a\u8bae\u89e3\u51b3\u65b9\u6848\u3002\u65e0\u9700\u6ce8\u518c\u5e10\u53f7\uff0c\u65e0\u9650\u65f6\u514d\u8d39\u4f7f\u7528\u3002",audioVideoSwitch:{audio:"\u8bed\u97f3",video:"\u89c6\u9891"},calendar:"\u65e5\u5386",connectCalendarButton:"\u8fde\u63a5\u4f60\u7684\u65e5\u5386",connectCalendarText:"\u8fde\u63a5\u4f60\u7684\u65e5\u5386\u4ee5\u67e5\u770b\u4f60\u5728{{app}}\u4e2d\u7684\u5168\u90e8\u4f1a\u8bae\u3002\u6b64\u5916\uff0c\u65b0\u589e{{provider}} \u4f1a\u8bae\u5230\u4f60\u7684\u65e5\u5386\u4e2d\uff0c\u70b9\u51fb\u5373\u53ef\u542f\u52a8\u3002",enterRoomTitle:"\u5f00\u542f\u4e00\u4e2a\u65b0\u7684\u4f1a\u8bae",go:"\u5f00\u59cb",join:"\u52a0\u5165",info:"\u4fe1\u606f",privacy:"\u9690\u79c1",recentList:"\u6700\u8fd1",recentListDelete:"\u5220\u9664",recentListEmpty:"\u76ee\u524d\u6ca1\u6709\u4f7f\u7528\u3002\u4e0e\u4f60\u7684\u56e2\u961f\u6210\u5458\u804a\u5929\uff0c\u5373\u53ef\u5728\u6b64\u5904\u627e\u5230\u6700\u8fd1\u6240\u6709\u4f1a\u8bae\u3002",reducedUIText:"",roomname:"\u8bf7\u8f93\u5165\u623f\u95f4\u540d",roomnameHint:"\u8bf7\u8f93\u5165\u60a8\u60f3\u52a0\u5165\u623f\u95f4\u7684 URL \u5730\u5740\u6216\u8005\u623f\u95f4\u540d\u3002\u60a8\u4e5f\u53ef\u4ee5\u60f3\u4e2a\u623f\u540d\u521b\u5efa\u623f\u95f4\uff0c\u53ea\u8981\u5176\u4ed6\u4eba\u8f93\u5165\u548c\u60a8\u4e00\u6837\u7684\u540d\u79f0\u5c31\u80fd\u52a0\u5165\u60a8\u7684\u623f\u95f4\u3002",sendFeedback:"\u53d1\u9001\u53cd\u9988",terms:"\u6761\u6b3e",title:"\u5b89\u5168\uff0c\u529f\u80fd\u5b8c\u5584\u548c\u5b8c\u5168\u5f00\u6e90\u7684\u89c6\u9891\u4f1a\u8bae"}}},689,[]); -__d(function(e,a,n,i,s,r,o){s.exports={en:"English",af:"",az:"Azerbaijani",bg:"Bulgarian",cs:"Czech",de:"German",el:"Greek",eo:"Esperanto",es:"Spanish",fr:"French",hy:"Armenian",it:"Italian",ja:"\u65e5\u672c\u8a9e",ko:"\u97d3\u6587",nb:"Norwegian Bokmal",oc:"Occitan",pl:"Polish",ptBR:"Portuguese (Brazil)",ru:"Russian",sk:"Slovak",sl:"Slovenian",sv:"Swedish",tr:"Turkish",vi:"Vietnamese",zhCN:"\u4e2d\u6587 \u7b80\u4f53 (\u4e2d\u56fd)"}},690,[]); -__d(function(e,o,i,t,r,n,a){r.exports={addPeople:{add:"\u9080\u8acb",countryNotSupported:"\u6b64\u76ee\u6a19\u5340\u57df\u5c1a\u672a\u652f\u63f4\u3002",countryReminder:"\u5617\u8a66\u5728\u7f8e\u570b\u5916\u5730\u901a\u8a71\uff1f\u8acb\u78ba\u8a8d\u958b\u982d\u4f7f\u7528\u7684\u570b\u5bb6\u4ee3\u78bc\uff01",disabled:"\u60a8\u4e0d\u53ef\u4ee5\u9080\u8acb\u4eba\u54e1\u3002",failedToAdd:"",footerText:"\u64ad\u6253\u5df2\u95dc\u9589\u3002",loading:"\u5c0b\u627e\u806f\u7d61\u4eba\u53ca\u96fb\u8a71\u865f\u78bc",loadingNumber:"\u9a57\u8b49\u96fb\u8a71\u865f\u78bc",loadingPeople:"\u6b63\u5728\u5c0b\u641c\u4eba\u54e1\u9032\u884c\u9080\u8acb",noResults:"\u6c92\u6709\u7b26\u5408\u8981\u6c42\u7684\u641c\u5c0b\u7d50\u679c",noValidNumbers:"\u8acb\u8f38\u5165\u4e00\u7d44\u96fb\u8a71\u865f\u78bc",searchNumbers:"\u65b0\u589e\u96fb\u8a71\u865f\u78bc",searchPeople:"\u5c0b\u627e\u4eba\u54e1",searchPeopleAndNumbers:"\u5c0b\u627e\u4eba\u54e1\u6216\u65b0\u589e\u96fb\u8a71\u865f\u78bc",telephone:"\u96fb\u8a71\uff1a {{number}}",title:"\u9080\u8acb\u4eba\u54e1\u53c3\u52a0\u6703\u8b70"},audioDevices:{bluetooth:"\u85cd\u7259",headphones:"\u8033\u6a5f",phone:"\u96fb\u8a71",speaker:"\u767c\u8a00\u8005"},audioOnly:{audioOnly:"\u50c5\u7528\u97f3\u8a0a"},calendarSync:{addMeetingURL:"\u589e\u52a0\u6703\u8b70\u9023\u7d50",confirmAddLink:"\u4f60\u8981\u52a0\u4e0a Jitsi \u9023\u7d50\u65bc\u6b64\u4e8b\u4ef6\u55ce\uff1f",error:{appConfiguration:"",generic:"",notSignedIn:""},join:"\u53c3\u52a0",joinTooltip:"\u53c3\u52a0\u6703\u8b70",nextMeeting:"\u4e0b\u6b21\u6703\u8b70",noEvents:"\u6c92\u6709\u9810\u5b9a\u4e8b\u4ef6\u6392\u5165\u884c\u7a0b\u3002",ongoingMeeting:"\u5373\u5c07\u9032\u884c\u6703\u8b70",permissionButton:"\u958b\u555f\u8a2d\u5b9a",permissionMessage:"\u65e5\u66c6\u5141\u8a31\u6b0a\u9650\u662f\u5fc5\u9808\u7684\uff0c\u4ee5\u67e5\u770b\u4f60\u7684\u6703\u8b70\u65bc\u61c9\u7528\u7a0b\u5f0f\u4e2d\u3002",refresh:"\u91cd\u65b0\u6574\u7406\u884c\u4e8b\u66c6",today:"\u4eca\u65e5"},chat:{error:"\u932f\u8aa4\uff1a\u4f60\u7684\u8a0a\u606f \"{{originalText}}\" \u672a\u88ab\u9001\u51fa\u3002\u539f\u56e0\uff1a {{error}}",messagebox:"",nickname:{popover:"\u9078\u64c7\u66b1\u7a31",title:""},title:""},connectingOverlay:{joiningRoom:""},connection:{ATTACHED:"\u5df2\u7d93\u9644\u52a0",AUTHENTICATING:"\u9a57\u8b49\u4e2d",AUTHFAIL:"\u9a57\u8b49\u5931\u6557",CONNECTED:"\u5df2\u7d93\u9023\u63a5",CONNECTING:"\u9023\u63a5\u4e2d",CONNFAIL:"\u9023\u63a5\u5931\u6557",DISCONNECTED:"\u5df2\u7d93\u4e2d\u65b7\u9023\u63a5",DISCONNECTING:"\u4e2d\u65b7\u9023\u63a5\u4e2d",ERROR:"\u932f\u8aa4",RECONNECTING:"\u7db2\u7d61\u932f\u8aa4\u767c\u751f\u3002\u91cd\u65b0\u9023\u63a5\u4e2d\u2026\u2026\u2026"},connectionindicator:{address:"\u5730\u5740\uff1a",bandwidth:"\u4f30\u8a08\u983b\u5bec\uff1a",bitrate:"\u6bd4\u7279\u7387\uff1a",bridgeCount:"\u4f3a\u670d\u5668\u8a08\u6578\uff1a",connectedTo:"\u5df2\u9023\u63a5\u81f3\uff1a",framerate:"\u5f71\u683c\u7387\uff1a",less:"\u986f\u793a\u8f03\u5c11",localaddress:"\u672c\u5730\u5730\u5740\uff1a",localport:"\u672c\u5730\u7aef\u53e3\uff1a",more:"\u986f\u793a\u66f4\u591a",packetloss:"\u4e1f\u5305\uff1a",quality:{good:"\u5f88\u597d",inactive:"\u672a\u555f\u7528",lost:"\u6f0f\u5931",nonoptimal:"\u4e0d\u751a\u7406\u60f3",poor:"\u4e0d\u597d"},remoteaddress:"\u9060\u7aef\u5730\u5740\uff1a",remoteport:"\u9060\u7aef\u7aef\u53e3\uff1a",resolution:"\u89e3\u6790\u5ea6\uff1a",status:"\u9023\u63a5\uff1a",transport:"\u50b3\u8f38\uff1a",turn:" (\u8f49)"},dateUtils:{earlier:"\u7a0d\u65e9",today:"\u4eca\u65e5",yesterday:"\u6628\u5929"},deepLinking:{appNotInstalled:"\u5728\u60a8\u7684\u624b\u6a5f\u4e0a\u9700\u8981 {{app}} \u884c\u52d5\u61c9\u7528\u7a0b\u5f0f\u53bb\u52a0\u5165\u9019\u5834\u6703\u8b70\u3002",description:"\u6c92\u6709\u767c\u751f\u4f5c\u7528\u55ce\uff1f\u6211\u5011\u5617\u8a66\u767c\u8d77\u60a8\u7684\u6703\u8b70\u65bc {{app}} desktop \u684c\u9762\u61c9\u7528\u7a0b\u5f0f\u3002\u8acb\u518d\u8a66\u4e00\u6b21\uff0c\u6216\u662f\u767c\u8d77\u6703\u8b70\u65bc {{app}} \u7db2\u8def\u61c9\u7528\u7a0b\u5f0f\u3002",descriptionWithoutWeb:"",downloadApp:"\u4e0b\u8f09\u61c9\u7528 APP",launchWebButton:"\u5728\u7db2\u8def\u4e0a\u767c\u8d77",openApp:"\u7e7c\u7e8c\u524d\u5f80\u6b64\u61c9\u7528\u7a0b\u5f0f",title:"\u767c\u8d77\u60a8\u7684\u6703\u8b70\u65bc {{app}}...",tryAgainButton:"\u5728\u684c\u9762\u4e0a\u518d\u8a66\u4e00\u6b21"},defaultLink:"\u4f8b\u5982 {{url}}",deviceError:{cameraError:"\u7121\u6cd5\u53d6\u7528\u60a8\u7684\u651d\u5f71\u88dd\u7f6e",cameraPermission:"\u7121\u6cd5\u7372\u5f97\u651d\u5f71\u88dd\u7f6e\u53d6\u7528\u6b0a\u9650",microphoneError:"\u7121\u6cd5\u53d6\u7528\u60a8\u7684\u9ea5\u514b\u98a8",microphonePermission:"\u7121\u6cd5\u7372\u5f97\u9ea5\u514b\u98a8\u53d6\u7528\u6b0a\u9650"},deviceSelection:{noPermission:"\u672a\u53d6\u5f97\u6b0a\u9650",previewUnavailable:"\u9810\u89bd\u7121\u6cd5\u4f7f\u7528",selectADevice:"\u9078\u64c7\u8a2d\u5099",testAudio:"\u64ad\u653e\u6e2c\u8a66\u8072\u97f3"},dialog:{accessibilityLabel:{liveStreaming:"\u76f4\u64ad\u4e32\u6d41"},allow:"\u5141\u8a31",alreadySharedVideoMsg:"",alreadySharedVideoTitle:"\u4e00\u6b21\u53ea\u80fd\u5141\u8a31\u4e00\u4f4d\u8996\u8a0a\u5206\u4eab",applicationWindow:"\u61c9\u7528\u7a0b\u5f0f\u8996\u7a97",Back:"\u8fd4\u56de",cameraConstraintFailedError:"\u60a8\u7684\u651d\u5f71\u88dd\u7f6e\u4e0d\u7b26\u5408\u8981\u6c42\u3002",cameraNotFoundError:"\u672a\u767c\u73fe\u651d\u5f71\u88dd\u7f6e\u3002",cameraNotSendingData:"\u6211\u5011\u7121\u6cd5\u53d6\u7528\u60a8\u7684\u651d\u5f71\u88dd\u7f6e\u3002\u8acb\u6aa2\u67e5\u662f\u5426\u6709\u5176\u4ed6\u7a0b\u5e8f\u6b63\u5728\u4f7f\u7528\u9019\u500b\u8a2d\u5099\uff0c\u5426\u5247\u8acb\u5f9e\u8a2d\u7f6e\u9078\u55ae\u88e1\u9078\u64c7\u5176\u4ed6\u8a2d\u5099\u6216\u8005\u91cd\u65b0\u88dd\u8f09\u3002",cameraNotSendingDataTitle:"\u7121\u6cd5\u53d6\u7528\u651d\u5f71\u88dd\u7f6e",cameraPermissionDeniedError:"\u60a8\u672a\u53d6\u5f97\u6b0a\u9650\u4f7f\u7528\u60a8\u7684\u651d\u5f71\u88dd\u7f6e\u3002\u60a8\u4ecd\u7136\u53ef\u53c3\u52a0\u6703\u8b70\uff0c\u4f46\u662f\u5176\u4ed6\u4eba\u7121\u6cd5\u770b\u5230\u3002\u53ef\u4ee5\u5229\u7528\u4f4d\u5740\u6b04\u4e2d\u7684\u651d\u5f71\u88dd\u7f6e\u6309\u9215\u4f86\u4fee\u5fa9\u555f\u52d5\u3002",cameraUnknownError:"\u7531\u65bc\u4e0d\u660e\u539f\u56e0\uff0c\u7121\u6cd5\u4f7f\u7528\u651d\u5f71\u88dd\u7f6e\u3002",cameraUnsupportedResolutionError:"\u60a8\u7684\u651d\u5f71\u88dd\u7f6e\u4e0d\u652f\u63f4\u6240\u9700\u7684\u8996\u8a0a\u89e3\u6790\u5ea6\u3002",Cancel:"\u53d6\u6d88",close:"\u95dc\u9589",conferenceDisconnectMsg:"\u8acb\u6aa2\u67e5\u4e00\u4e0b\u7db2\u8def\u9023\u63a5\u3002\u5c07\u5728 {{seconds}} \u79d2\u5f8c\u91cd\u65b0\u9023\u63a5\u2026",conferenceDisconnectTitle:"\u60a8\u5df2\u7d93\u88ab\u4e2d\u65b7\u9023\u63a5\u3002",conferenceReloadMsg:"\u6211\u5011\u6b63\u8a66\u8457\u4fee\u5fa9\u72c0\u6cc1\u3002\u91cd\u65b0\u9023\u63a5\u65bc {{seconds}} \u79d2\u5167\u2026\u2026",conferenceReloadTitle:"\u4e0d\u597d\u610f\u601d\uff0c\u51fa\u932f\u4e86\u3002",confirm:"\u78ba\u8a8d",confirmNo:"\u6c92\u6709",confirmYes:"\u662f\u7684",connectError:"\u5594\u54e6\uff01\u767c\u751f\u932f\u8aa4\uff0c\u7121\u6cd5\u9023\u63a5\u81f3\u6703\u8b70\u3002",connectErrorWithMsg:"\u5594\u54e6\uff01\u767c\u751f\u932f\u8aa4\uff0c\u7121\u6cd5\u9023\u63a5\u81f3\u6703\u8b70: {{msg}}",connecting:"\u9023\u63a5\u4e2d",contactSupport:"\u806f\u7d61\u652f\u63f4",copy:"\u8907\u88fd",dismiss:"\u89e3\u9664",displayNameRequired:"",done:"\u5b8c\u6210",enterDisplayName:"",error:"\u932f\u8aa4",externalInstallationMsg:"\u60a8\u9700\u8981\u5b89\u88dd\u684c\u9762\u5206\u4eab\u64f4\u5145\u61c9\u7528\u7a0b\u5f0f\u3002",externalInstallationTitle:"\u9700\u8981\u64f4\u5145\u61c9\u7528\u7a0b\u5f0f",goToStore:"\u524d\u5f80\u61c9\u7528\u5546\u5e97",gracefulShutdown:"\u672c\u4f3a\u670d\u5668\u9589\u95dc\u7dad\u8b77\u4e2d\uff0c\u8acb\u7a0d\u5f8c\u518d\u8a66\u3002",IamHost:"\u6211\u662f\u4e3b\u8fa6\u4eba",incorrectRoomLockPassword:"",incorrectPassword:"\u932f\u8aa4\u7684\u7528\u6236\u540d\u7a31\u6216\u5bc6\u78bc",inlineInstallationMsg:"\u60a8\u9700\u8981\u5b89\u88dd\u684c\u9762\u5206\u4eab\u64f4\u5145\u61c9\u7528\u7a0b\u5f0f\u3002",inlineInstallExtension:"\u7acb\u5373\u5b89\u88dd",internalError:"\u5594\u54e6\uff01\u51fa\u73fe\u4e86\u9ede\u554f\u984c\u3002\u767c\u751f\u932f\u8aa4\uff1a {{error}}",internalErrorTitle:"\u5167\u90e8\u932f\u8aa4",kickMessage:"",kickParticipantButton:"",kickParticipantDialog:"",kickParticipantTitle:"",kickTitle:"",liveStreaming:"\u76f4\u64ad\u4e32\u6d41\u4e2d",liveStreamingDisabledForGuestTooltip:"\u8a2a\u5ba2\u7121\u6cd5\u555f\u52d5\u76f4\u64ad\u4e32\u6d41\u3002",liveStreamingDisabledTooltip:"\u555f\u52d5\u76f4\u64ad\u4e32\u6d41\u5df2\u95dc\u9589\u3002",lockMessage:"\u9396\u5b9a\u6703\u8b70\u5931\u6557\u3002",lockRoom:"",lockTitle:"\u9396\u5b9a\u5931\u6557",logoutQuestion:"\u60a8\u78ba\u5b9a\u8981\u767b\u51fa\u4e26\u505c\u6b62\u6703\u8b70\u55ce\uff1f",logoutTitle:"\u767b\u51fa",maxUsersLimitReached:"",maxUsersLimitReachedTitle:"",micConstraintFailedError:"\u60a8\u7684\u9ea5\u514b\u98a8\u4e0d\u7b26\u5408\u8981\u6c42\u3002",micNotFoundError:"\u672a\u767c\u73fe\u9ea5\u514b\u98a8\u3002",micNotSendingData:"",micNotSendingDataTitle:"",micPermissionDeniedError:"\u60a8\u672a\u53d6\u5f97\u6b0a\u9650\u4f7f\u7528\u9ea5\u514b\u98a8\u3002\u60a8\u4ecd\u7136\u53ef\u53c3\u52a0\u6703\u8b70\uff0c\u4f46\u662f\u5176\u4ed6\u4eba\u7121\u6cd5\u807d\u5230\u3002\u53ef\u4ee5\u5229\u7528\u4f4d\u5740\u6b04\u4e2d\u7684\u651d\u5f71\u88dd\u7f6e\u6309\u9215\u4f86\u4fee\u5fa9\u555f\u52d5\u3002",micUnknownError:"\u4e0d\u660e\u539f\u56e0\u9020\u6210\u9ea5\u514b\u98a8\u7121\u6cd5\u4f7f\u7528\u3002",muteParticipantBody:"\u60a8\u7121\u6cd5\u5c0d\u4ed6\u5011\u89e3\u9664\u975c\u97f3\uff0c\u4f46\u662f\u4ed6\u5011\u81ea\u5df1\u96a8\u6642\u53ef\u4ee5\u89e3\u9664\u975c\u97f3\u3002",muteParticipantButton:"\u975c\u97f3",muteParticipantDialog:"",muteParticipantTitle:"",Ok:"Ok",passwordLabel:"",passwordNotSupported:"\u4e0d\u652f\u63f4\u8a2d\u7f6e\u6703\u8b70\u5bc6\u78bc\u3002",passwordNotSupportedTitle:"",passwordRequired:"",popupError:"\u60a8\u7684\u700f\u89bd\u5668\u5728\u6b64\u7db2\u7ad9\u4e0a\u963b\u6514\u5f48\u51fa\u8996\u7a97\u3002\u8acb\u5728\u700f\u89bd\u5668\u7684\u5b89\u5168\u8a2d\u7f6e\u4e2d\u958b\u555f\u5b83\u4e26\u518d\u8a66\u4e00\u6b21\u3002",popupErrorTitle:"\u5f48\u51fa\u8996\u7a97\u906d\u5230\u963b\u6514",recording:"\u9304\u88fd\u4f5c\u696d\u4e2d",recordingDisabledForGuestTooltip:"\u8a2a\u5ba2\u7121\u6cd5\u555f\u52d5\u9304\u5f71\u3002",recordingDisabledTooltip:"\u555f\u52d5\u9304\u5f71\u5df2\u95dc\u9589\u3002",rejoinNow:"\u7acb\u5373\u91cd\u65b0\u52a0\u5165",remoteControlAllowedMessage:"{{user}} \u63a5\u53d7\u60a8\u9032\u884c\u9060\u7aef\u63a7\u5236\u7684\u8981\u6c42\uff01",remoteControlDeniedMessage:"{{user}} \u62d2\u7d55\u60a8\u9032\u884c\u9060\u7aef\u63a7\u5236\u7684\u8981\u6c42\uff01",remoteControlErrorMessage:"\u5728\u5617\u8a66\u5411 {{user}} \u8acb\u6c42\u9060\u7aef\u63a7\u5236\u6b0a\u9650\u6642\u767c\u751f\u932f\u8aa4\uff01",remoteControlRequestMessage:"\u60a8\u8981\u5141\u8a31 {{user}} \u9060\u7aef\u63a7\u5236\u60a8\u7684\u684c\u9762\u55ce?",remoteControlShareScreenWarning:"\u6ce8\u610f\uff1a\u5982\u679c\u6309\u4e0b \"\u5141\u8a31\" \u60a8\u5c07\u5206\u4eab\u81ea\u5df1\u7684\u87a2\u5e55\uff01",remoteControlStopMessage:"\u9060\u7aef\u63a7\u5236\u968e\u6bb5\u7d50\u675f\uff01",remoteControlTitle:"\u9060\u7aef\u684c\u9762\u63a7\u5236",Remove:"\u79fb\u9664",removePassword:"",removeSharedVideoMsg:"\u60a8\u78ba\u5b9a\u8981\u79fb\u9664\u81ea\u5df1\u7684\u5206\u4eab\u8996\u8a0a\u55ce\uff1f",removeSharedVideoTitle:"\u79fb\u9664\u5206\u4eab\u8996\u8a0a",reservationError:"\u9810\u7d04\u7cfb\u7d71\u932f\u8aa4",reservationErrorMsg:"\u932f\u8aa4\u78bc: {{code}}, \u8a0a\u606f: {{msg}}",retry:"\u91cd\u8a66",screenSharingFailedToInstall:"\u5594\u54e6\uff01\u87a2\u5e55\u5206\u4eab\u64f4\u5145\u7a0b\u5f0f\u5b89\u88dd\u5931\u6557\u3002",screenSharingFailedToInstallTitle:"\u87a2\u5e55\u5206\u4eab\u64f4\u5145\u5b89\u88dd\u5931\u6557",screenSharingFirefoxPermissionDeniedError:"\u5617\u8a66\u9032\u884c\u87a2\u5e55\u5206\u4eab\u6642\u9047\u5230\u554f\u984c\u3002\u8acb\u78ba\u8a8d\u60a8\u6709\u8ce6\u4e88\u76f8\u5c0d\u7684\u6b0a\u9650\u5141\u8a31\u3002",screenSharingFirefoxPermissionDeniedTitle:"\u5594\u54e6\uff01\u6211\u5011\u7121\u6cd5\u555f\u52d5\u87a2\u5e55\u5206\u4eab\uff01",screenSharingPermissionDeniedError:"\u5594\u54e6\uff01\u60a8\u7684\u8996\u8a0a\u5206\u4eab\u64f4\u5145\u6b0a\u9650\u767c\u751f\u4e00\u9ede\u554f\u984c\u3002\u8acb\u91cd\u65b0\u8f09\u5165\u518d\u8a66\u4e00\u6b21\u3002",serviceUnavailable:"\u670d\u52d9\u7121\u6cd5\u4f7f\u7528",sessTerminated:"\u901a\u8a71\u5df2\u7d93\u7d42\u6b62",Share:"\u5206\u4eab",shareVideoLinkError:"\u8acb\u63d0\u4f9b\u6b63\u78ba\u7684 YouTube \u9023\u7d50\u3002",shareVideoTitle:"\u5206\u4eab\u8996\u8a0a",shareYourScreen:"\u5206\u4eab\u81ea\u5df1\u7684\u87a2\u5e55",shareYourScreenDisabled:"\u87a2\u5e55\u5206\u4eab\u5df2\u95dc\u9589\u3002",shareYourScreenDisabledForGuest:"\u8a2a\u5ba2\u7121\u6cd5\u87a2\u5e55\u5206\u4eab\u3002",startLiveStreaming:"\u555f\u52d5\u76f4\u64ad\u4e32\u6d41",startRecording:"\u555f\u52d5\u9304\u88fd\u4f5c\u696d",startRemoteControlErrorMessage:"\u5617\u8a66\u555f\u52d5\u9060\u7aef\u63a7\u5236\u968e\u6bb5\u6642\u767c\u751f\u932f\u8aa4\uff01",stopLiveStreaming:"\u505c\u6b62\u76f4\u64ad\u4e32\u6d41",stopRecording:"\u505c\u6b62\u9304\u88fd\u4f5c\u696d",stopRecordingWarning:"\u78ba\u5b9a\u8981\u505c\u6b62\u9304\u88fd\u4f5c\u696d\u55ce\uff1f",stopStreamingWarning:"\u78ba\u5b9a\u8981\u505c\u6b62\u76f4\u64ad\u4e32\u6d41\u55ce\uff1f",streamKey:"\u76f4\u64ad\u4e32\u6d41\u5bc6\u9470",Submit:"\u63d0\u4ea4",thankYou:"\u611f\u8b1d\u60a8\u4f7f\u7528 {{appName}}\uff01",token:"\u6a19\u8a18",tokenAuthFailed:"\u5c0d\u4e0d\u8d77\uff0c\u60a8\u672a\u88ab\u5141\u8a31\u52a0\u5165\u6b64\u6703\u8b70\u3002",tokenAuthFailedTitle:"\u9a57\u8b49\u5931\u6557",transcribing:"\u8f49\u9304\u4e2d",unlockRoom:"",userPassword:"\u7528\u6236\u5bc6\u78bc",WaitForHostMsg:"",WaitForHostMsgWOk:"",WaitingForHost:"\u7b49\u4faf\u4e3b\u8fa6\u4eba\u2026\u2026\u2026",Yes:"\u662f\u7684",yourEntireScreen:"\u81ea\u5df1\u7684\u5168\u87a2\u5e55"},dialOut:{statusMessage:"\u73fe\u5728\u72c0\u614b\u70ba {{status}}"},feedback:{average:"\u666e\u901a\u4e2d\u7b49",bad:"\u5f88\u5dee",detailsLabel:"\u544a\u8a34\u6211\u5011\u672c\u6b21\u6703\u8b70\u4f7f\u7528\u4e0a\u66f4\u591a\u7d50\u679c\u3002",good:"\u5f88\u597d",rateExperience:"\u8acb\u60a8\u8a55\u50f9\u9019\u6b21\u6703\u8b70\u7684\u9ad4\u9a57\u6210\u6548",veryBad:"\u6975\u5dee",veryGood:"\u6975\u597d"},incomingCall:{answer:"\u63a5\u901a",audioCallTitle:"\u4f86\u96fb",decline:"\u89e3\u9664",productLabel:"\u4f86\u81ea Jitsi Meet",videoCallTitle:"\u8996\u8a0a\u4f86\u96fb"},info:{accessibilityLabel:"\u986f\u793a\u8cc7\u8a0a",addPassword:"",cancelPassword:"",conferenceURL:"\u9023\u7d50\uff1a",country:"\u570b\u5bb6",dialANumber:"",dialInConferenceID:"PIN \u865f\u78bc\uff1a",dialInNotSupported:"\u62b1\u6b49\uff0c\u76ee\u524d\u4e0d\u652f\u63f4\u96fb\u8a71\u64ad\u5165\u3002",dialInNumber:"\u64ad\u5165\uff1a",dialInSummaryError:"",dialInTollFree:"",genericError:"\u7cdf\u7cd5\uff01\u51fa\u932f\u4e86\u3002",inviteLiveStream:"\u8981\u89c0\u770b\u9019\u5834\u6703\u8b70\u7684\u76f4\u64ad\u4e32\u6d41\uff0c\u9ede\u6309\u6b64\u9023\u7d50\uff1a {{url}}",invitePhone:"",invitePhoneAlternatives:"",inviteURLFirstPartGeneral:"",inviteURLFirstPartPersonal:"",inviteURLSecondPart:"",liveStreamURL:"\u76f4\u64ad\u4e32\u6d41\uff1a",moreNumbers:"\u66f4\u591a\u6210\u54e1",noNumbers:"\u7121\u64ad\u5165\u865f\u78bc\u3002",noPassword:"\u7121",noRoom:"\u6c92\u6709\u6703\u8b70\u5ba4\u662f\u6307\u5b9a\u8981\u64ad\u6253\u9032\u5165\u3002",numbers:"\u64ad\u5165\u865f\u78bc",password:"",title:"\u5206\u4eab",tooltip:"\u986f\u793a\u6b64\u6703\u8b70\u7684\u9023\u7d50\u53ca\u96fb\u8a71\u64ad\u5165\u865f\u78bc",label:""},inviteDialog:{alertText:"",header:"\u9080\u8acb",searchCallOnlyPlaceholder:"",searchPeopleOnlyPlaceholder:"",searchPlaceholder:"",send:""},inlineDialogFailure:{msg:"\u597d\u50cf\u6709\u9ede\u5361\u5361\u4e0d\u9806\u3002",retry:"\u91cd\u8a66",support:"\u652f\u63f4",supportMsg:"\u5982\u679c\u72c0\u6cc1\u4e00\u76f4\u767c\u751f\uff0c\u8acb\u806f\u7d61"},keyboardShortcuts:{focusLocal:"\u805a\u7126\u65bc\u81ea\u5df1\u7684\u8996\u8a0a",focusRemote:"\u805a\u7126\u65bc\u53e6\u4e00\u4eba\u7684\u8996\u8a0a",fullScreen:"\u89c0\u770b \u6216 \u96e2\u958b \u5168\u87a2\u5e55",keyboardShortcuts:"\u5feb\u6377\u9375",localRecording:"\u986f\u793a\u6216\u986f\u793a\u672c\u5730\u7aef\u9304\u5f71\u63a7\u5236",mute:"\u975c\u97f3\u6216\u89e3\u9664\u975c\u97f3",pushToTalk:"\u6309\u9375\u901a\u8a71",raiseHand:"\u8209\u624b\u767c\u8a00\u6216\u4e0d\u4f5c\u767c\u8a00",showSpeakerStats:"\u986f\u793a\u767c\u8a00\u8005\u6578\u64da",toggleChat:"\u958b\u555f\u6216\u95dc\u9589\u804a\u5929",toggleFilmstrip:"\u986f\u793a\u6216\u96b1\u85cf\u8996\u8a0a\u5f71\u7247\u7e2e\u5716",toggleScreensharing:"\u5728\u651d\u5f71\u93e1\u982d\u548c\u87a2\u5e55\u5206\u4eab\u4e4b\u9593\u9032\u884c\u5207\u63db",toggleShortcuts:"\u986f\u793a\u6216\u986f\u793a\u9375\u76e4\u5feb\u6377\u9375",videoMute:"\u555f\u52d5\u6216\u505c\u6b62\u81ea\u5df1\u7684\u651d\u5f71\u88dd\u7f6e"},liveStreaming:{busy:"\u6211\u5011\u6b63\u5728\u91cb\u653e\u4e32\u6d41\u8cc7\u6e90\u3002\u8acb\u904e\u5e7e\u5206\u9418\u5f8c\u518d\u8a66\u3002",busyTitle:"\u5168\u90e8\u4e32\u6d41\u8a2d\u5099\u6b63\u5728\u5fd9\u788c",changeSignIn:"\u5207\u63db\u5e33\u865f\u3002",choose:"\u9078\u64c7\u76f4\u64ad\u4e32\u6d41",chooseCTA:"\u8acb\u9078\u64c7\u76f4\u64ad\u4e32\u6d41\u9078\u9805\u3002\u60a8\u76ee\u524d\u662f\u4ee5 {{email}} \u8eab\u4efd\u767b\u5165\u3002",enterStreamKey:"\u5728\u6b64\u8f38\u5165\u60a8\u7684 YouTube \u76f4\u64ad\u4e32\u6d41\u5bc6\u9470\u3002",error:"\u76f4\u64ad\u4e32\u6d41\u5931\u6557\u3002\u8acb\u91cd\u8a66\u3002",errorAPI:"\u53d6\u7528\u60a8\u7684 YouTube \u64ad\u51fa\u6642\u767c\u751f\u932f\u8aa4\u3002\u8acb\u91cd\u65b0\u767b\u5165\u3002",errorLiveStreamNotEnabled:"\u76f4\u64ad\u4e32\u6d41\u5728 {{email}} \u5c1a\u672a\u555f\u7528\u3002\u8acb\u958b\u555f\u76f4\u64ad\u4e32\u6d41\u6216\u767b\u5165\u6709\u555f\u7528\u76f4\u64ad\u4e32\u6d41\u7684\u5e33\u6236\u3002",expandedOff:"\u76f4\u64ad\u4e32\u6d41\u5df2\u505c\u6b62",expandedOn:"\u6703\u8b70\u4e32\u6d41\u76ee\u524d\u9001\u81f3 YouTube \u3002",expandedPending:"\u76f4\u64ad\u4e32\u6d41\u6b63\u88ab\u555f\u52d5\u2026",failedToStart:"\u76f4\u64ad\u4e32\u6d41\u555f\u52d5\u5931\u6557",getStreamKeyManually:"",invalidStreamKey:"",off:"\u76f4\u64ad\u4e32\u6d41\u5df2\u7d93\u505c\u6b62",on:"\u76f4\u64ad\u4e32\u6d41\u4e2d",pending:"\u555f\u52d5\u76f4\u64ad\u4e32\u6d41\u2026\u2026\u2026",serviceName:"\u76f4\u64ad\u4e32\u6d41\u670d\u52d9",signedInAs:"\u4f60\u76ee\u524d\u767b\u5165\u540d\u70ba\uff1a",signIn:"\u4f7f\u7528 Google \u5e33\u6236\u767b\u5165",signInCTA:"\u8f38\u5165 YouTube \u76f4\u64ad\u4e32\u6d41\u5bc6\u9470\uff0c\u6216\u767b\u5165 YouTube \u5e33\u865f\u3002",signOut:"\u767b\u51fa",start:"\u555f\u52d5\u76f4\u64ad\u4e32\u6d41",streamIdHelp:"\u9019\u662f\u4ec0\u9ebc\uff1f",unavailableTitle:"\u76f4\u64ad\u4e32\u6d41\u7121\u6cd5\u4f7f\u7528"},localRecording:{clientState:{off:"\u95dc",on:"\u958b",unknown:"\u4e0d\u660e"},dialogTitle:"\u672c\u5730\u7aef\u9304\u5f71\u63a7\u5236",duration:"\u671f\u9593",durationNA:"N/A",encoding:"\u89e3\u78bc\u4e2d",label:"LOR",labelToolTip:"\u672c\u5730\u7aef\u9304\u5f71\u4f7f\u7528\u4e2d",localRecording:"\u672c\u5730\u7aef\u9304\u5f71\u4e2d",me:"\u81ea\u5df1",messages:{engaged:"\u672c\u5730\u7aef\u9304\u5f71\u5df2\u4f7f\u7528\u3002",finished:"\u9304\u5f71\u968e\u6bb5 {{token}} \u5df2\u5b8c\u6210\u3002\u8acb\u50b3\u9001\u9304\u5f71\u6a94\u6848\u81f3\u4e3b\u6301\u4eba\u3002",finishedModerator:"\u9304\u5f71\u968e\u6bb5 {{token}} \u5df2\u5b8c\u6210\u3002\u672c\u5730\u7aef\u9304\u5f71\u8ffd\u8e64\u5df2\u5b58\u6a94\u3002\u8acb\u8981\u6c42\u5404\u53c3\u8207\u8005\u63d0\u4ea4\u5176\u9304\u5f71\u6a94\u6848\u3002",notModerator:"\u4f60\u4e0d\u662f\u4e3b\u6301\u4eba\uff0c\u7121\u6cd5\u555f\u52d5\u6216\u505c\u6b62\u672c\u5730\u7aef\u9304\u5f71\u3002"},moderator:"\u4e3b\u6301\u4eba",no:"\u6c92\u6709",participant:"\u53c3\u8207\u8005",participantStats:"\u53c3\u8207\u8005\u72c0\u614b",sessionToken:"\u968e\u6bb5\u6a19\u8a18",start:"\u555f\u52d5\u9304\u5f71\u4f5c\u696d",stop:"\u505c\u6b62\u9304\u5f71\u4f5c\u696d",yes:"\u662f\u7684"},lockRoomPassword:"\u5bc6\u78bc",lockRoomPasswordUppercase:"\u5bc6\u78bc",me:"\u6211",notify:{connectedOneMember:"",connectedThreePlusMembers:"",connectedTwoMembers:"",disconnected:"\u5df2\u7d93\u4e2d\u65b7\u9023\u63a5",focus:"\u6703\u8b70\u7126\u9ede",focusFail:"{{component}} \u7121\u6cd5\u4f7f\u7528 - \u8acb\u5728 {{ms}} \u79d2\u5f8c\u91cd\u8a66",grantedTo:"\u4e3b\u6301\u4eba\u6b0a\u9650\u5df2\u6388\u4e88 {{to}}!",invitedOneMember:"",invitedThreePlusMembers:"",invitedTwoMembers:"",kickParticipant:"",me:"\u81ea\u5df1",moderator:"\u4e3b\u6301\u4eba\u6b0a\u9650\u5df2\u7d93\u53d6\u5f97\uff01",muted:"\u60a8\u5df2\u7d93\u555f\u52d5\u901a\u8a71\uff0c\u4e26\u8655\u65bc\u975c\u97f3\u72c0\u614b\u3002",mutedTitle:"\u60a8\u76ee\u524d\u8655\u65bc\u975c\u97f3\uff01",mutedRemotelyTitle:"",mutedRemotelyDescription:"",passwordRemovedRemotely:"",passwordSetRemotely:"",raisedHand:"",somebody:"\u67d0\u4eba",startSilentTitle:"",startSilentDescription:"",suboptimalExperienceDescription:"\u5443\u2026\u2026\u6050\u6015\u60a8\u5c0d {{appName}} \u7684\u9ad4\u9a57\u4e0d\u662f\u5f88\u597d\uff0c\u6211\u5011\u6b63\u5728\u5617\u8a66\u627e\u65b9\u6cd5\u6539\u9032\u5c0d\u6b64\u700f\u89bd\u5668\u7684\u652f\u63f4\u3002\u73fe\u4e0b\u656c\u8acb\u9078\u7528 \u5168\u529b\u652f\u63f4\u7684\u700f\u89bd\u5668 \u4f86\u9032\u884c\u3002",suboptimalExperienceTitle:"\u700f\u89bd\u5668\u8b66\u544a",unmute:"",newDeviceCameraTitle:"",newDeviceAudioTitle:"",newDeviceAction:""},passwordSetRemotely:"",passwordDigitsOnly:"",poweredby:"\u6280\u8853\u652f\u63f4",presenceStatus:{busy:"\u5fd9\u7dda",calling:"\u4f86\u96fb\u2026",connected:"\u5df2\u7d93\u9023\u63a5",connecting:"\u9023\u7dda\u4e2d...",connecting2:"\u901a\u8a71\u4e2d*...",disconnected:"\u5df2\u7d93\u4e2d\u65b7\u9023\u63a5",expired:"\u672a\u63a5",ignored:"\u5ffd\u7565",initializingCall:"\u64ad\u6253\u96fb\u8a71\u2026",invited:"\u88ab\u9080\u8acb\u7684",rejected:"\u62d2\u63a5",ringing:"\u9234\u9234\u9234\u2026\u2026"},profile:{setDisplayNameLabel:"\u8a2d\u5b9a\u60a8\u7684\u986f\u793a\u540d\u7a31",setEmailInput:"\u8f38\u5165\u60a8\u7684\u96fb\u5b50\u4fe1\u7bb1",setEmailLabel:"\u8a2d\u7f6e\u60a8\u7684\u5927\u982d\u4eba\u50cf\u96fb\u5b50\u4fe1\u7bb1",title:"\u7c21\u4ecb"},recording:{authDropboxText:"\u4e0a\u50b3\u81f3 Dropbox",availableSpace:"\u53ef\u7528\u7a7a\u9593\uff1a {{spaceLeft}} MB (\u5927\u7d04\u9304\u5f71\u6642\u9593 {{duration}} \u5206\u9418)",beta:"BETA",busy:"\u6211\u5011\u6b63\u5728\u91cb\u653e\u9304\u88fd\u8cc7\u6e90\u3002\u8acb\u904e\u5e7e\u5206\u9418\u5f8c\u518d\u8a66\u3002",busyTitle:"\u5168\u90e8\u9304\u88fd\u8a2d\u5099\u6b63\u5728\u5fd9\u788c",error:"\u9304\u88fd\u4f5c\u696d\u5931\u6557\u3002\u8acb\u518d\u6b21\u91cd\u8a66\u3002",expandedOff:"\u9304\u5f71\u5df2\u7d93\u505c\u6b62",expandedOn:"\u6b64\u6703\u8b70\u76ee\u524d\u6b63\u5728\u9304\u5f71\u3002",expandedPending:"\u9304\u5f71\u6b63\u5728\u555f\u52d5\u2026",failedToStart:"\u9304\u88fd\u555f\u52d5\u5931\u6557",fileSharingdescription:"",live:"\u76f4\u64ad",loggedIn:"\u4ee5 {{userName}} \u767b\u5165",off:"\u9304\u88fd\u4f5c\u696d\u5df2\u7d93\u505c\u6b62",on:"\u9304\u88fd\u4f5c\u696d\u4e2d",pending:"\u6e96\u5099\u9304\u5f71\u6b64\u6703\u8b70\u2026",rec:"REC \u9304\u5f71",serviceDescription:"",serviceName:"\u9304\u88fd\u4f5c\u696d\u670d\u52d9",signIn:"jde bp ",signOut:"\u767b\u51fa",unavailable:"\u5594\u54e6\uff01{{serviceName}} \u76ee\u524d\u7121\u6cd5\u4f7f\u7528\u3002\u6211\u5011\u6b63\u5728\u89e3\u6c7a\u6b64\u554f\u984c\uff0c\u8acb\u7a0d\u5f8c\u518d\u8a66\u3002",unavailableTitle:"\u9304\u88fd\u4f5c\u696d\u7121\u6cd5\u4f7f\u7528"},sectionList:{pullToRefresh:"\u4e0b\u6ed1\u4ee5\u91cd\u65b0\u6574\u7406"},settings:{calendar:{about:"\u6b64 {{appName}} \u884c\u4e8b\u66c6\u6574\u5408\u662f\u5b89\u5168\u5b58\u53d6\u4f60\u7684\u884c\u4e8b\u66c6\uff0c\u6240\u4ee5\u53ef\u4ee5\u8b80\u53d6\u5373\u5c07\u767c\u751f\u7684\u4e8b\u4ef6\u3002",disconnect:"\u4e2d\u65b7\u9023\u63a5",microsoftSignIn:"\u4f7f\u7528 Microsoft \u5e33\u6236\u767b\u5165",signedIn:"\u76ee\u524d\u662f\u4ee5 {{email}} \u4f86\u5b58\u53d6\u884c\u4e8b\u66c6\u4e8b\u4ef6\u3002\u9ede\u6309\u4e0b\u65b9\u53d6\u6d88\u9023\u63a5\u9215\u53ef\u4ee5\u505c\u6b62\u5b58\u53d6\u884c\u4e8b\u66c6\u4e8b\u4ef6\u3002",title:"\u65e5\u66c6"},devices:"\u88dd\u7f6e",followMe:"\u5168\u90e8\u4eba\u8ddf\u96a8\u4eff\u7167\u6211",language:"\u8a9e\u8a00",loggedIn:"\u4ee5 {{name}} \u767b\u5165",moderator:"\u4e3b\u6301\u4eba",more:"\u66f4\u591a",name:"\u540d\u7a31",noDevice:"\u7121",selectAudioOutput:"\u97f3\u8a0a\u8f38\u51fa",selectCamera:"\u651d\u5f71\u88dd\u7f6e",selectMic:"\u9ea5\u514b\u98a8",startAudioMuted:"\u5168\u90e8\u4eba\u555f\u52d5\u6642\u8655\u65bc\u975c\u97f3",startVideoMuted:"\u5168\u90e8\u4eba\u555f\u52d5\u6642\u96b1\u85cf\u8996\u8a0a\u756b\u9762",title:"\u8a2d\u7f6e"},settingsView:{alertOk:"\u78ba\u8a8d",alertTitle:"\u8b66\u544a",alertURLText:"\u6240\u8f38\u5165\u7684\u4f3a\u670d\u5668 URL \u662f\u7121\u6548\u7684",buildInfoSection:"",conferenceSection:"\u6703\u8b70",displayName:"\u986f\u793a\u540d\u7a31",email:"\u96fb\u5b50\u90f5\u4ef6",header:"\u8a2d\u7f6e",profileSection:"\u7c21\u4ecb",serverURL:"\u4f3a\u670d\u5668 URL",startWithAudioMuted:"\u555f\u52d5\u4e26\u97f3\u8a0a\u975c\u97f3",startWithVideoMuted:"\u555f\u52d5\u4e26\u8996\u8a0a\u975c\u97f3",version:""},share:{dialInfoText:"",mainText:"\u9ede\u6309\u4ee5\u4e0b\u9023\u7d50\u53c3\u52a0\u6703\u8b70\uff1a{{roomUrl}}\n"},speaker:"\u767c\u8a00\u8005",speakerStats:{hours:"{{count}}h",minutes:"{{count}}m",name:"\u540d\u7a31",seconds:"{{count}}s",speakerStats:"\u767c\u8a00\u8005\u6578\u64da",speakerTime:"\u767c\u8a00\u8005\u6642\u9593"},startupoverlay:{policyText:" ",title:"{{app}} \u9700\u8981\u4f7f\u7528\u60a8\u7684\u9ea5\u514b\u98a8\u548c\u651d\u5f71\u88dd\u7f6e\u3002"},suspendedoverlay:{rejoinKeyTitle:"\u91cd\u65b0\u52a0\u5165",text:"\u6309\u4e0b \u91cd\u65b0\u52a0\u5165 \u6309\u9215\u91cd\u65b0\u9023\u63a5\u3002",title:"\u7531\u65bc\u96fb\u8166\u9032\u5165\u4f11\u7720\uff0c\u60a8\u7684\u8996\u8a0a\u901a\u8a71\u5df2\u7d93\u4e2d\u65b7\u3002"},toolbar:{accessibilityLabel:{audioOnly:"\u5207\u63db\u50c5\u6709\u8072\u97f3",audioRoute:"\u9078\u64c7\u8072\u97f3\u88dd\u7f6e",callQuality:"",cc:"\u5207\u63db\u5b57\u5e55",chat:"\u5207\u63db\u804a\u5929\u8996\u7a97",document:"\u5207\u63db\u5206\u4eab\u7684\u6587\u4ef6",feedback:"\u7559\u8a00\u56de\u5831",fullScreen:"\u5207\u63db\u5168\u87a2\u5e55",hangup:"\u96e2\u958b\u4f86\u96fb",invite:"\u9080\u8acb\u4eba\u54e1",kick:"",localRecording:"\u5207\u63db\u672c\u5730\u7aef\u9304\u5f71\u63a7\u5236",lockRoom:"",moreActions:"\u5207\u63db\u66f4\u591a\u52d5\u4f5c\u529f\u80fd\u8868",moreActionsMenu:"\u66f4\u591a\u52d5\u4f5c\u529f\u80fd\u8868",mute:"\u5207\u63db\u975c\u97f3",pip:"\u5207\u63db\u5b50\u6bcd\u756b\u9762\u6a21\u5f0f",profile:"\u7de8\u8f2f\u60a8\u7684\u7c21\u4ecb",raiseHand:"\u5207\u63db\u8209\u624b",recording:"\u5207\u63db\u9304\u5f71",remoteMute:"",Settings:"\u5207\u63db\u8a2d\u7f6e",sharedvideo:"\u5207\u63db Youtube \u5f71\u7247\u5206\u4eab",shareRoom:"\u9080\u8acb\u67d0\u4eba",shareYourScreen:"\u5207\u63db\u87a2\u5e55\u5206\u4eab",shortcuts:"\u5207\u63db\u5feb\u6377\u9375",show:"",speakerStats:"\u5207\u63db\u767c\u8a00\u4eba\u7d71\u8a08",tileView:"\u5207\u63db\u5e73\u92ea\u6aa2\u8996",toggleCamera:"\u5207\u63db\u651d\u5f71\u6a5f",videomute:"\u5207\u63db\u975c\u97f3\u8996\u8a0a",videoblur:""},addPeople:"\u65b0\u589e\u4eba\u54e1\u5230\u60a8\u7684\u901a\u8a71\u4e2d",audioOnlyOff:"\u95dc\u9589\u50c5\u7528\u97f3\u8a0a\u6a21\u5f0f",audioOnlyOn:"\u95dc\u9589\u50c5\u7528\u97f3\u8a0a\u6a21\u5f0f",audioRoute:"\u9078\u64c7\u8072\u97f3\u88dd\u7f6e",authenticate:"\u9a57\u8b49",callQuality:"\u7ba1\u7406\u901a\u8a71\u54c1\u8cea",chat:"\u958b\u555f/\u95dc\u9589 \u804a\u5929",closeChat:"",documentClose:"\u95dc\u9589\u5206\u4eab\u7684\u6587\u4ef6\u6a94\u6848",documentOpen:"\u958b\u555f\u5206\u4eab\u7684\u6587\u4ef6\u6a94\u6848",enterFullScreen:"\u89c0\u770b\u5168\u87a2\u5e55",enterTileView:"",exitFullScreen:"\u8df3\u51fa\u5168\u87a2\u5e55",exitTileView:"",feedback:"\u7559\u8a00\u56de\u5831",hangup:"\u7559\u8a00",invite:"\u9080\u8acb\u4eba\u54e1",login:"\u767b\u5165",logout:"\u767b\u51fa",lowerYourHand:"",moreActions:"\u66f4\u591a\u52d5\u4f5c",mute:"\u975c\u97f3 / \u89e3\u9664\u975c\u97f3",openChat:"",pip:"\u9032\u5165\u5b50\u6bcd\u756b\u6a21\u5f0f",profile:"\u7de8\u8f2f\u60a8\u7684\u7c21\u4ecb",raiseHand:"\u8209\u624b/\u53d6\u6d88 \u8acb\u6c42\u767c\u8a00",raiseYourHand:"",Settings:"\u8a2d\u7f6e",sharedvideo:"\u5206\u4eab YouTube \u8996\u8a0a",shareRoom:"\u9080\u8acb\u67d0\u4eba",shortcuts:"\u67e5\u770b\u5feb\u6377\u9375",speakerStats:"\u767c\u8a00\u8005\u6578\u64da",startScreenSharing:"",startSubtitles:"",stopScreenSharing:"",stopSubtitles:"",stopSharedVideo:"\u505c\u6b62 YouTube \u8996\u8a0a",talkWhileMutedPopup:"\u60a8\u8981\u767c\u8a00\u55ce? \u76ee\u524d\u60a8\u8655\u65bc\u975c\u97f3\u3002",tileViewToggle:"\u5207\u63db\u5e73\u92ea\u6aa2\u8996",toggleCamera:"\u5207\u63db\u651d\u5f71\u6a5f",videomute:"\u555f\u52d5/\u505c\u6b62 \u651d\u5f71\u88dd\u7f6e",startvideoblur:"",stopvideoblur:""},transcribing:{ccButtonTooltip:"",error:"\u9304\u5f71\u4f5c\u696d\u5931\u6557\u3002\u8acb\u91cd\u8a66\u3002",expandedLabel:"\u8f49\u9304\u76ee\u524d\u958b\u555f",failedToStart:"\u8f49\u9304\u555f\u52d5\u5931\u6557",labelToolTip:"\u6b64\u6703\u8b70\u6b63\u88ab\u8f49\u9304",off:"\u8f49\u9304\u5df2\u505c\u6b62",pending:"\u6b63\u5728\u6e96\u5099\u8f49\u9304\u6703\u8b70\u2026",start:"\u555f\u52d5\u986f\u793a\u5b57\u5e55",stop:"\u505c\u6b62\u986f\u793a\u5b57\u5e55",tr:"TR \u8f49\u9304"},userMedia:{androidGrantPermissions:"\u7576\u700f\u89bd\u5668\u8981\u6c42\u6b0a\u9650\u5141\u8a31\u6642\uff0c\u8acb\u9078\u64c7 \u5141\u8a31",chromeGrantPermissions:"\u7576\u700f\u89bd\u5668\u8981\u6c42\u6b0a\u9650\u5141\u8a31\u6642\uff0c\u8acb\u9078\u64c7 \u5141\u8a31",edgeGrantPermissions:"\u7576\u700f\u89bd\u5668\u8981\u6c42\u6b0a\u9650\u5141\u8a31\u6642\uff0c\u8acb\u9078\u64c7 \u662f\u7684",electronGrantPermissions:"\u8acb\u5141\u8a31\u6b0a\u9650\u4f7f\u7528\u60a8\u7684\u651d\u5f71\u88dd\u7f6e\u548c\u9ea5\u514b\u98a8",firefoxGrantPermissions:"\u7576\u700f\u89bd\u5668\u8981\u6c42\u6b0a\u9650\u5141\u8a31\u6642\uff0c\u8acb\u9078\u64c7\u5206\u4eab\u8a2d\u5099 ",iexplorerGrantPermissions:"\u7576\u700f\u89bd\u5668\u8981\u6c42\u6b0a\u9650\u5141\u8a31\u6642\uff0c\u8acb\u9078\u64c7 OK",nwjsGrantPermissions:"\u8acb\u5141\u8a31\u6b0a\u9650\u4f7f\u7528\u60a8\u7684\u651d\u5f71\u88dd\u7f6e\u548c\u9ea5\u514b\u98a8",operaGrantPermissions:"\u7576\u700f\u89bd\u5668\u8981\u6c42\u6b0a\u9650\u5141\u8a31\u6642\uff0c\u8acb\u9078\u64c7 \u5141\u8a31","react-nativeGrantPermissions":"\u7576\u700f\u89bd\u5668\u8981\u6c42\u6b0a\u9650\u5141\u8a31\u6642\uff0c\u8acb\u9078\u64c7 \u5141\u8a31",safariGrantPermissions:"\u7576\u700f\u89bd\u5668\u8981\u6c42\u6b0a\u9650\u5141\u8a31\u6642\uff0c\u8acb\u9078\u64c7 OK"},videoSIPGW:{busy:"\u6211\u5011\u6b63\u5728\u6e05\u7406\u91cb\u653e\u8cc7\u6e90\u3002\u8acb\u904e\u5e7e\u5206\u9418\u5f8c\u518d\u8a66\u3002",busyTitle:"\u6703\u8b70\u5ba4\u670d\u52d9\u6b63\u8655\u65bc\u5fd9\u788c\u4e2d",errorAlreadyInvited:"{{displayName}} \u5df2\u53d7\u9080\u8acb",errorInvite:"\u6703\u8b70\u5c1a\u672a\u958b\u59cb\uff0c\u8acb\u7a0d\u5f8c\u518d\u4f86\u3002",errorInviteFailed:"\u6211\u5011\u6b63\u5728\u89e3\u6c7a\u554f\u984c\u3002\u8acb\u7a0d\u5f8c\u518d\u8a66\u3002",errorInviteFailedTitle:"\u9080\u8acb {{displayName}} \u5931\u6557",errorInviteTitle:"\u932f\u8aa4\u9080\u8acb\u6703\u8b70\u5ba4",pending:"{{displayName}} \u5df2\u7d93\u9080\u8acb"},videoStatus:{audioOnly:"AUD \u8072\u97f3",audioOnlyExpanded:"\u4f60\u8655\u65bc\u50c5\u7528\u97f3\u8a0a\u6a21\u5f0f\u3002\u9019\u500b\u6a21\u5f0f\u7bc0\u7701\u983b\u5bec\uff0c\u4f46\u7121\u6cd5\u770b\u898b\u4ed6\u4eba\u5f71\u50cf\u3002",callQuality:"",hd:"HD \u9ad8\u6e05",highDefinition:"\u9ad8\u6e05\u54c1\u8cea HD",labelTooiltipNoVideo:"\u6c92\u6709\u8996\u8a0a",labelTooltipAudioOnly:"\u50c5\u6709\u97f3\u8a0a\u6a21\u5f0f\u5df2\u7d93\u555f\u7528",ld:"LD \u4f4e\u6e05",lowDefinition:"\u4f4e\u6e05\u54c1\u8cea LD",onlyAudioAvailable:"\u50c5\u6709\u97f3\u8a0a\u53ef\u4ee5\u4f7f\u7528",onlyAudioSupported:"\u5728\u6b64\u700f\u89bd\u5668\u6211\u5011\u50c5\u652f\u63f4\u97f3\u8a0a\u529f\u80fd\u3002",p2pEnabled:"\u9ede\u5c0d\u9ede\u529f\u80fd\u5df2\u7d93\u555f\u7528",p2pVideoQualityDescription:"",recHighDefinitionOnly:"\u5c07\u6703\u504f\u597d\u4f7f\u7528\u9ad8\u6e05\u6a21\u5f0f HD\u3002",sd:"SD \u6a19\u6e05",standardDefinition:"\u6a19\u6e05\u54c1\u8cea SD"},videothumbnail:{domute:"\u975c\u97f3",flip:"\u7ffb\u8f49",kick:"\u8e22\u51fa",moderator:"\u4e3b\u6301\u4eba",mute:"",muted:"\u8655\u65bc\u975c\u97f3",remoteControl:"\u9060\u7aef\u63a7\u5236",show:"",videomute:""},welcomepage:{accessibilityLabel:{join:"\u8f15\u89f8\u5373\u53ef\u53c3\u52a0",roomname:"\u8f38\u5165\u6703\u8b70\u5ba4\u540d\u7a31"},appDescription:"\u5feb\u4f86\u4f7f\u7528\u5427\uff0c\u5718\u968a\u5168\u90e8\u6210\u54e1\u4f7f\u7528\u8996\u8a0a\u901a\u8a71\uff0c\u53ef\u4ee5\u9080\u8acb\u4efb\u4f55\u60a8\u6240\u8a8d\u8b58\u7684\u4eba\u3002 {{app}} \u662f\u4e00\u5957\u5b8c\u5168\u52a0\u5bc6\u3001100% \u958b\u653e\u6e90\u78bc\u7684\u8996\u8a0a\u6703\u8b70\u89e3\u6c7a\u65b9\u6848\u3002\u7121\u9700\u8a3b\u518a\u5e33\u865f\uff0c\u7121\u6642\u7121\u523b\u4e0d\u5206\u65e5\u591c\u5747\u53ef\u514d\u8cbb\u4f7f\u7528\u3002",audioVideoSwitch:{audio:"\u8a9e\u97f3",video:"\u8996\u8a0a"},calendar:"\u65e5\u66c6",connectCalendarButton:"\u9023\u63a5\u4f60\u7684\u884c\u4e8b\u66c6",connectCalendarText:"",enterRoomTitle:"\u555f\u52d5\u65b0\u7684\u6703\u8b70",go:"\u958b\u59cb",join:"\u52a0\u5165",info:"",privacy:"\u96b1\u79c1",recentList:"\u6700\u8fd1\u4f7f\u7528",recentListDelete:"\u522a\u9664",recentListEmpty:"\u76ee\u524d\u6700\u8fd1\u4f7f\u7528\u662f\u7a7a\u767d\u7684\u3002\u8207\u4f60\u7684\u5718\u968a\u6210\u54e1\u804a\u5929\uff0c\u5373\u6703\u5728\u6b64\u8655\u627e\u5230\u6700\u8fd1\u7684\u6703\u8b70\u3002",reducedUIText:"",roomname:"\u8f38\u5165\u6703\u8b70\u5ba4\u540d\u7a31",roomnameHint:"\u8acb\u8f38\u5165\u60a8\u60f3\u52a0\u5165\u7684\u6703\u8b70\u5ba4 URL \u7db2\u5740\u6216\u540d\u7a31\u3002\u60a8\u53ef\u4ee5\u7528\u500b\u540d\u7a31\u4f86\u5efa\u7acb\u6703\u8b70\u5ba4\uff0c\u53ea\u8981\u5176\u4ed6\u4eba\u8f38\u5165\u76f8\u540c\u7684\u540d\u7a31\u5c31\u80fd\u52a0\u5165\u6703\u8b70\u5ba4\u5594\u3002",sendFeedback:"\u767c\u9001\u56de\u5831",terms:"\u689d\u6b3e",title:"\u5b89\u5168\u3001\u5168\u529f\u80fd\u3001\u5b8c\u5168\u514d\u8cbb\u7684\u8996\u8a0a\u6703\u8b70"}}},691,[]); -__d(function(g,r,i,a,m,e,d){!(function(t,n){if('function'==typeof define&&define.amd)define(['moment'],n);else if('object'==typeof e)try{m.exports=n(r(d[0]))}catch(t){m.exports=n}t&&(t.momentDurationFormatSetup=t.moment?n(t.moment):n)})(this,function(t){var n=!1,u=!1,o="escape years months weeks days hours minutes seconds milliseconds general".split(" "),l=[{type:"seconds",targets:[{type:"minutes",value:60},{type:"hours",value:3600},{type:"days",value:86400},{type:"weeks",value:604800},{type:"months",value:2678400},{type:"years",value:31536e3}]},{type:"minutes",targets:[{type:"hours",value:60},{type:"days",value:1440},{type:"weeks",value:10080},{type:"months",value:44640},{type:"years",value:525600}]},{type:"hours",targets:[{type:"days",value:24},{type:"weeks",value:168},{type:"months",value:744},{type:"years",value:8760}]},{type:"days",targets:[{type:"weeks",value:7},{type:"months",value:31},{type:"years",value:365}]},{type:"months",targets:[{type:"years",value:12}]}];function s(t,n){return!(n.length>t.length)&&-1!==t.indexOf(n)}function c(t){for(var n="";t;)n+="0",t-=1;return n}function p(t){for(var n=t.split("").reverse(),u=0,o=!0;o&&u0&&(L.maximumSignificantDigits=w),!u){var b=I({},n);b.useGrouping=!1,b.decimalSeparator=".",t=parseFloat(f(t,b),10)}return t.toLocaleString(o,L)}var M=(w?t.toPrecision(w+1):t.toFixed(_+1)).split("e");h=M[1]||"",s=(M=M[0].split("."))[1]||"";var k=(l=M[0]||"").length,T=s.length,F=k+T,j=l+s;(w&&F===w+1||!w&&T===_+1)&&((j=p(j)).length===F+1&&(k+=1),T&&(j=j.slice(0,-1)),l=j.slice(0,k),s=j.slice(k)),w&&(s=s.replace(/0*$/,""));var G=parseInt(h,10);G>0?s.length<=G?(l+=s+=c(G-s.length),s=""):(l+=s.slice(0,G),s=s.slice(G)):G<0&&(s=c(Math.abs(G)-l.length)+l+s,l="0"),w||((s=s.slice(0,_)).length<_&&(s+=c(_-s.length)),l.lengthn.label.length?-1:t.label.length0,ee=Z?c.precision:0,te=ee,ne=c.minValue,ie=!1,re=c.maxValue,ae=!1,ue=c.useToLocaleString,oe=c.groupingSeparator,le=c.decimalSeparator,se=c.grouping;ue=ue&&n;var ce=c.trim;w(ce)&&(ce=ce.join(" ")),null===ce&&(C||re||Z)&&(ce="all"),null!==ce&&!0!==ce&&"left"!==ce&&"right"!==ce||(ce="large"),!1===ce&&(ce="");var me=function(t){return t.test(ce)},ge=/both/,pe=/^all|[^sm]all/,fe=C>0||G([/large/,ge,pe],me),he=G([/small/,ge,pe],me),ye=G([/mid/,pe],me),de=G([/final/,pe],me),ve=L(R.match(K),function(t,n){var u=$(t);return"*"===t.slice(0,1)&&(t=t.slice(1),"escape"!==u&&"general"!==u&&W.push(u)),{index:n,length:t.length,text:"",token:"escape"===u?t.replace(H.escape,"$1"):t,type:"escape"===u||"general"===u?null:u}}),Se={index:0,length:0,token:"",text:"",type:null},we=[];z&&ve.reverse(),D(ve,function(t){if(t.type)return(Se.type||Se.text)&&we.push(Se),void(Se=t);z?Se.text=t.token+Se.text:Se.text+=t.token}),(Se.type||Se.text)&&we.push(Se),z&&we.reverse();var Ve=T(o,k(M(b(we,"type"))));if(!Ve.length)return b(we,"text").join("");Ve=L(Ve,function(t,n){var u,o=n+1===Ve.length,l=!n;u="years"===t||"months"===t?P.as(t):E.as(t);var s=Math.floor(u),p=u-s,f=x(we,function(n){return t===n.type});return l&&re&&u>re&&(ae=!0),o&&ne&&Math.abs(c.duration.as(t))1&&(N=!0),E.subtract(s,t),P.subtract(s,t),{rawValue:u,wholeValue:s,decimalValue:o?p:0,isSmallest:o,isLargest:l,type:t,tokenLength:f.length}});var _e,xe=X?Math.floor:Math.round,De=function(t,n){var u=Math.pow(10,n);return xe(t*u)/u},Le=!1,be=!1,Me=function(t,n){var u={useGrouping:Q,groupingSeparator:oe,decimalSeparator:le,grouping:se,useToLocaleString:ue};return Z&&(ee<=0?(t.rawValue=0,t.wholeValue=0,t.decimalValue=0):(u.maximumSignificantDigits=ee,t.significantDigits=ee)),ae&&!be&&(t.isLargest?(t.wholeValue=re,t.decimalValue=0):(t.wholeValue=0,t.decimalValue=0)),ie&&!be&&(t.isSmallest?(t.wholeValue=ne,t.decimalValue=0):(t.wholeValue=0,t.decimalValue=0)),t.isSmallest||t.significantDigits&&t.significantDigits-t.wholeValue.toString().length<=0?J<0?t.value=De(t.wholeValue,J):0===J?t.value=xe(t.wholeValue+t.decimalValue):Z?(t.value=X?De(t.rawValue,ee-t.wholeValue.toString().length):t.rawValue,t.wholeValue&&(ee-=t.wholeValue.toString().length)):(u.fractionDigits=J,t.value=X?t.wholeValue+De(t.decimalValue,J):t.wholeValue+t.decimalValue):Z&&t.wholeValue?(t.value=Math.round(De(t.wholeValue,t.significantDigits-t.wholeValue.toString().length)),ee-=t.wholeValue.toString().length):t.value=t.wholeValue,t.tokenLength>1&&(N||Le)&&(u.minimumIntegerDigits=t.tokenLength,be&&u.maximumSignificantDigits0||""===ce||x(W,t.type)||x(U,t.type))&&(Le=!0),t.formattedValue=f(t.value,u,q),u.useGrouping=!1,u.decimalSeparator=".",t.formattedValueEn=f(t.value,u,"en"),2===t.tokenLength&&"milliseconds"===t.type&&(t.formattedValueMS=f(t.value,{minimumIntegerDigits:3,useGrouping:!1},"en").slice(0,2)),t};if((Ve=M(Ve=L(Ve,Me))).length>1){var ke=function(t){return x(Ve,function(n){return n.type===t})};D(l,function(t){var n=ke(t.type);n&&D(t.targets,function(t){var u=ke(t.type);u&&parseInt(n.formattedValueEn,10)===t.value&&(n.rawValue=0,n.wholeValue=0,n.decimalValue=0,u.rawValue+=1,u.wholeValue+=1,u.decimalValue=0,u.formattedValueEn=u.wholeValue.toString(),be=!0)})})}return be&&(Le=!1,ee=te,Ve=M(Ve=L(Ve,Me))),!U||ae&&!c.trim?(fe&&(Ve=F(Ve,function(t){return!t.isSmallest&&!t.wholeValue&&!x(W,t.type)})),C&&Ve.length&&(Ve=Ve.slice(0,C)),he&&Ve.length>1&&(_e=function(t){return!t.wholeValue&&!x(W,t.type)&&!t.isLargest},Ve=F(Ve.slice().reverse(),_e).reverse()),ye&&(Ve=M(Ve=L(Ve,function(t,n){return n>0&&n ",ae=!1,ie=!1),_&&(n.value>0||""===ce||x(W,n.type)||x(U,n.type))&&(u+="-",_=!1),"milliseconds"===t.type&&n.formattedValueMS?u+=n.formattedValueMS:u+=n.formattedValue,z||(u+=t.text),u})).join("").replace(/(,| |:|\.)*$/,"").replace(/^(,| |:|\.)*/,""))}function H(){var t=this.duration,n=function(n){return t._data[n]},u=x(this.types,n),o=_(this.types,n);switch(u){case"milliseconds":return"S __";case"seconds":case"minutes":return"*_MS_";case"hours":return"_HMS_";case"days":if(u===o)return"d __";case"weeks":return u===o?"w __":(null===this.trim&&(this.trim="both"),"w __, d __, h __");case"months":if(u===o)return"M __";case"years":return u===o?"y __":(null===this.trim&&(this.trim="both"),"y __, M __, d __");default:return null===this.trim&&(this.trim="both"),"y __, d __, h __, m __, s __"}}function $(t){if(!t)throw"Moment Duration Format init cannot find moment instance.";t.duration.format=P,t.duration.fn.format=O,t.duration.fn.format.defaults={trim:null,stopTrim:null,largest:null,maxValue:null,minValue:null,precision:0,trunc:!1,forceLength:null,userLocale:null,usePlural:!0,useLeftUnits:!1,useGrouping:!0,useSignificantDigits:!1,template:H,useToLocaleString:!0,groupingSeparator:",",decimalSeparator:".",grouping:[3]},t.updateLocale('en',S)}return n=!!((v=(v=!0)&&E())&&(v=(v=(v=v&&"1"===1..toLocaleString("en",{minimumIntegerDigits:1}))&&"01"===1..toLocaleString("en",{minimumIntegerDigits:2}))&&"001"===1..toLocaleString("en",{minimumIntegerDigits:3}))&&(v=(v=(v=(v=v&&"100"===99.99.toLocaleString("en",{maximumFractionDigits:0,minimumFractionDigits:0}))&&"100.0"===99.99.toLocaleString("en",{maximumFractionDigits:1,minimumFractionDigits:1}))&&"99.99"===99.99.toLocaleString("en",{maximumFractionDigits:2,minimumFractionDigits:2}))&&"99.990"===99.99.toLocaleString("en",{maximumFractionDigits:3,minimumFractionDigits:3}))&&(v=(v=(v=(v=(v=v&&"100"===99.99.toLocaleString("en",{maximumSignificantDigits:1}))&&"100"===99.99.toLocaleString("en",{maximumSignificantDigits:2}))&&"100"===99.99.toLocaleString("en",{maximumSignificantDigits:3}))&&"99.99"===99.99.toLocaleString("en",{maximumSignificantDigits:4}))&&"99.99"===99.99.toLocaleString("en",{maximumSignificantDigits:5}))&&(v=(v=v&&"1,000"===1e3.toLocaleString("en",{useGrouping:!0}))&&"1000"===1e3.toLocaleString("en",{useGrouping:!1}))),u=n&&"3.6"===3.55.toLocaleString("en",{useGrouping:!1,minimumIntegerDigits:1,minimumFractionDigits:1,maximumFractionDigits:1}),$(t),$})},692,[614]); -__d(function(g,r,i,a,m,e,d){var _,t;_=this,t=function(_){'use strict';return _.defineLocale('bg',{months:'\u044f\u043d\u0443\u0430\u0440\u0438_\u0444\u0435\u0432\u0440\u0443\u0430\u0440\u0438_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0438\u043b_\u043c\u0430\u0439_\u044e\u043d\u0438_\u044e\u043b\u0438_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043f\u0442\u0435\u043c\u0432\u0440\u0438_\u043e\u043a\u0442\u043e\u043c\u0432\u0440\u0438_\u043d\u043e\u0435\u043c\u0432\u0440\u0438_\u0434\u0435\u043a\u0435\u043c\u0432\u0440\u0438'.split('_'),monthsShort:'\u044f\u043d\u0440_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0439_\u044e\u043d\u0438_\u044e\u043b\u0438_\u0430\u0432\u0433_\u0441\u0435\u043f_\u043e\u043a\u0442_\u043d\u043e\u0435_\u0434\u0435\u043a'.split('_'),weekdays:'\u043d\u0435\u0434\u0435\u043b\u044f_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u044f\u0434\u0430_\u0447\u0435\u0442\u0432\u044a\u0440\u0442\u044a\u043a_\u043f\u0435\u0442\u044a\u043a_\u0441\u044a\u0431\u043e\u0442\u0430'.split('_'),weekdaysShort:'\u043d\u0435\u0434_\u043f\u043e\u043d_\u0432\u0442\u043e_\u0441\u0440\u044f_\u0447\u0435\u0442_\u043f\u0435\u0442_\u0441\u044a\u0431'.split('_'),weekdaysMin:'\u043d\u0434_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431'.split('_'),longDateFormat:{LT:'H:mm',LTS:'H:mm:ss',L:'D.MM.YYYY',LL:'D MMMM YYYY',LLL:'D MMMM YYYY H:mm',LLLL:'dddd, D MMMM YYYY H:mm'},calendar:{sameDay:'[\u0414\u043d\u0435\u0441 \u0432] LT',nextDay:'[\u0423\u0442\u0440\u0435 \u0432] LT',nextWeek:'dddd [\u0432] LT',lastDay:'[\u0412\u0447\u0435\u0440\u0430 \u0432] LT',lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return'[\u0412 \u0438\u0437\u043c\u0438\u043d\u0430\u043b\u0430\u0442\u0430] dddd [\u0432] LT';case 1:case 2:case 4:case 5:return'[\u0412 \u0438\u0437\u043c\u0438\u043d\u0430\u043b\u0438\u044f] dddd [\u0432] LT'}},sameElse:'L'},relativeTime:{future:'\u0441\u043b\u0435\u0434 %s',past:'\u043f\u0440\u0435\u0434\u0438 %s',s:'\u043d\u044f\u043a\u043e\u043b\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434\u0438',m:'\u043c\u0438\u043d\u0443\u0442\u0430',mm:'%d \u043c\u0438\u043d\u0443\u0442\u0438',h:'\u0447\u0430\u0441',hh:'%d \u0447\u0430\u0441\u0430',d:'\u0434\u0435\u043d',dd:'%d \u0434\u043d\u0438',M:'\u043c\u0435\u0441\u0435\u0446',MM:'%d \u043c\u0435\u0441\u0435\u0446\u0430',y:'\u0433\u043e\u0434\u0438\u043d\u0430',yy:'%d \u0433\u043e\u0434\u0438\u043d\u0438'},dayOfMonthOrdinalParse:/\d{1,2}-(\u0435\u0432|\u0435\u043d|\u0442\u0438|\u0432\u0438|\u0440\u0438|\u043c\u0438)/,ordinal:function(_){var t=_%10,s=_%100;return 0===_?_+'-\u0435\u0432':0===s?_+'-\u0435\u043d':s>10&&s<20?_+'-\u0442\u0438':1===t?_+'-\u0432\u0438':2===t?_+'-\u0440\u0438':7===t||8===t?_+'-\u043c\u0438':_+'-\u0442\u0438'},week:{dow:1,doy:7}})},'object'==typeof e&&void 0!==m&&'function'==typeof r?t(r(d[0])):'function'==typeof define&&define.amd?define(['../moment'],t):t(_.moment)},693,[614]); -__d(function(g,r,i,a,m,e,d){var n,t;n=this,t=function(n){'use strict';function t(n,t,_,o){var M={m:['eine Minute','einer Minute'],h:['eine Stunde','einer Stunde'],d:['ein Tag','einem Tag'],dd:[n+' Tage',n+' Tagen'],M:['ein Monat','einem Monat'],MM:[n+' Monate',n+' Monaten'],y:['ein Jahr','einem Jahr'],yy:[n+' Jahre',n+' Jahren']};return t?M[_][0]:M[_][1]}return n.defineLocale('de',{months:'Januar_Februar_M\xe4rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),monthsShort:'Jan._Feb._M\xe4rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),monthsParseExact:!0,weekdays:'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),weekdaysShort:'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),weekdaysMin:'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),weekdaysParseExact:!0,longDateFormat:{LT:'HH:mm',LTS:'HH:mm:ss',L:'DD.MM.YYYY',LL:'D. MMMM YYYY',LLL:'D. MMMM YYYY HH:mm',LLLL:'dddd, D. MMMM YYYY HH:mm'},calendar:{sameDay:'[heute um] LT [Uhr]',sameElse:'L',nextDay:'[morgen um] LT [Uhr]',nextWeek:'dddd [um] LT [Uhr]',lastDay:'[gestern um] LT [Uhr]',lastWeek:'[letzten] dddd [um] LT [Uhr]'},relativeTime:{future:'in %s',past:'vor %s',s:'ein paar Sekunden',m:t,mm:'%d Minuten',h:t,hh:'%d Stunden',d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:'%d.',week:{dow:1,doy:4}})},'object'==typeof e&&void 0!==m&&'function'==typeof r?t(r(d[0])):'function'==typeof define&&define.amd?define(['../moment'],t):t(n.moment)},694,[614]); -__d(function(g,r,i,a,m,e,d){var o,t;o=this,t=function(o){'use strict';return o.defineLocale('eo',{months:'januaro_februaro_marto_aprilo_majo_junio_julio_a\u016dgusto_septembro_oktobro_novembro_decembro'.split('_'),monthsShort:'jan_feb_mar_apr_maj_jun_jul_a\u016dg_sep_okt_nov_dec'.split('_'),weekdays:'diman\u0109o_lundo_mardo_merkredo_\u0135a\u016ddo_vendredo_sabato'.split('_'),weekdaysShort:'dim_lun_mard_merk_\u0135a\u016d_ven_sab'.split('_'),weekdaysMin:'di_lu_ma_me_\u0135a_ve_sa'.split('_'),longDateFormat:{LT:'HH:mm',LTS:'HH:mm:ss',L:'YYYY-MM-DD',LL:'D[-a de] MMMM, YYYY',LLL:'D[-a de] MMMM, YYYY HH:mm',LLLL:'dddd, [la] D[-a de] MMMM, YYYY HH:mm'},meridiemParse:/[ap]\.t\.m/i,isPM:function(o){return'p'===o.charAt(0).toLowerCase()},meridiem:function(o,t,n){return o>11?n?'p.t.m.':'P.T.M.':n?'a.t.m.':'A.T.M.'},calendar:{sameDay:'[Hodia\u016d je] LT',nextDay:'[Morga\u016d je] LT',nextWeek:'dddd [je] LT',lastDay:'[Hiera\u016d je] LT',lastWeek:'[pasinta] dddd [je] LT',sameElse:'L'},relativeTime:{future:'post %s',past:'anta\u016d %s',s:'sekundoj',m:'minuto',mm:'%d minutoj',h:'horo',hh:'%d horoj',d:'tago',dd:'%d tagoj',M:'monato',MM:'%d monatoj',y:'jaro',yy:'%d jaroj'},dayOfMonthOrdinalParse:/\d{1,2}a/,ordinal:'%da',week:{dow:1,doy:7}})},'object'==typeof e&&void 0!==m&&'function'==typeof r?t(r(d[0])):'function'==typeof define&&define.amd?define(['../moment'],t):t(o.moment)},695,[614]); -__d(function(g,r,i,a,m,e,d){var o,n;o=this,n=function(o){'use strict';var n='ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),t='ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),s=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],u=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;return o.defineLocale('es',{months:'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),monthsShort:function(o,s){return o?/-MMM-/.test(s)?t[o.month()]:n[o.month()]:n},monthsRegex:u,monthsShortRegex:u,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:s,longMonthsParse:s,shortMonthsParse:s,weekdays:'domingo_lunes_martes_mi\xe9rcoles_jueves_viernes_s\xe1bado'.split('_'),weekdaysShort:'dom._lun._mar._mi\xe9._jue._vie._s\xe1b.'.split('_'),weekdaysMin:'do_lu_ma_mi_ju_vi_s\xe1'.split('_'),weekdaysParseExact:!0,longDateFormat:{LT:'H:mm',LTS:'H:mm:ss',L:'DD/MM/YYYY',LL:'D [de] MMMM [de] YYYY',LLL:'D [de] MMMM [de] YYYY H:mm',LLLL:'dddd, D [de] MMMM [de] YYYY H:mm'},calendar:{sameDay:function(){return'[hoy a la'+(1!==this.hours()?'s':'')+'] LT'},nextDay:function(){return'[ma\xf1ana a la'+(1!==this.hours()?'s':'')+'] LT'},nextWeek:function(){return'dddd [a la'+(1!==this.hours()?'s':'')+'] LT'},lastDay:function(){return'[ayer a la'+(1!==this.hours()?'s':'')+'] LT'},lastWeek:function(){return'[el] dddd [pasado a la'+(1!==this.hours()?'s':'')+'] LT'},sameElse:'L'},relativeTime:{future:'en %s',past:'hace %s',s:'unos segundos',m:'un minuto',mm:'%d minutos',h:'una hora',hh:'%d horas',d:'un d\xeda',dd:'%d d\xedas',M:'un mes',MM:'%d meses',y:'un a\xf1o',yy:'%d a\xf1os'},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:'%d\xba',week:{dow:1,doy:4}})},'object'==typeof e&&void 0!==m&&'function'==typeof r?n(r(d[0])):'function'==typeof define&&define.amd?define(['../moment'],n):n(o.moment)},696,[614]); -__d(function(g,r,i,a,m,e,d){var n,s;n=this,s=function(n){'use strict';return n.defineLocale('fr',{months:'janvier_f\xe9vrier_mars_avril_mai_juin_juillet_ao\xfbt_septembre_octobre_novembre_d\xe9cembre'.split('_'),monthsShort:'janv._f\xe9vr._mars_avr._mai_juin_juil._ao\xfbt_sept._oct._nov._d\xe9c.'.split('_'),monthsParseExact:!0,weekdays:'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),weekdaysShort:'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),weekdaysMin:'Di_Lu_Ma_Me_Je_Ve_Sa'.split('_'),weekdaysParseExact:!0,longDateFormat:{LT:'HH:mm',LTS:'HH:mm:ss',L:'DD/MM/YYYY',LL:'D MMMM YYYY',LLL:'D MMMM YYYY HH:mm',LLLL:'dddd D MMMM YYYY HH:mm'},calendar:{sameDay:'[Aujourd\u2019hui \xe0] LT',nextDay:'[Demain \xe0] LT',nextWeek:'dddd [\xe0] LT',lastDay:'[Hier \xe0] LT',lastWeek:'dddd [dernier \xe0] LT',sameElse:'L'},relativeTime:{future:'dans %s',past:'il y a %s',s:'quelques secondes',m:'une minute',mm:'%d minutes',h:'une heure',hh:'%d heures',d:'un jour',dd:'%d jours',M:'un mois',MM:'%d mois',y:'un an',yy:'%d ans'},dayOfMonthOrdinalParse:/\d{1,2}(er|)/,ordinal:function(n,s){switch(s){case'D':return n+(1===n?'er':'');default:case'M':case'Q':case'DDD':case'd':return n+(1===n?'er':'e');case'w':case'W':return n+(1===n?'re':'e')}},week:{dow:1,doy:4}})},'object'==typeof e&&void 0!==m&&'function'==typeof r?s(r(d[0])):'function'==typeof define&&define.amd?define(['../moment'],s):s(n.moment)},697,[614]); -__d(function(g,r,i,a,m,e,d){var _,t;_=this,t=function(_){'use strict';return _.defineLocale('hy-am',{months:{format:'\u0570\u0578\u0582\u0576\u057e\u0561\u0580\u056b_\u0583\u0565\u057f\u0580\u057e\u0561\u0580\u056b_\u0574\u0561\u0580\u057f\u056b_\u0561\u057a\u0580\u056b\u056c\u056b_\u0574\u0561\u0575\u056b\u057d\u056b_\u0570\u0578\u0582\u0576\u056b\u057d\u056b_\u0570\u0578\u0582\u056c\u056b\u057d\u056b_\u0585\u0563\u0578\u057d\u057f\u0578\u057d\u056b_\u057d\u0565\u057a\u057f\u0565\u0574\u0562\u0565\u0580\u056b_\u0570\u0578\u056f\u057f\u0565\u0574\u0562\u0565\u0580\u056b_\u0576\u0578\u0575\u0565\u0574\u0562\u0565\u0580\u056b_\u0564\u0565\u056f\u057f\u0565\u0574\u0562\u0565\u0580\u056b'.split('_'),standalone:'\u0570\u0578\u0582\u0576\u057e\u0561\u0580_\u0583\u0565\u057f\u0580\u057e\u0561\u0580_\u0574\u0561\u0580\u057f_\u0561\u057a\u0580\u056b\u056c_\u0574\u0561\u0575\u056b\u057d_\u0570\u0578\u0582\u0576\u056b\u057d_\u0570\u0578\u0582\u056c\u056b\u057d_\u0585\u0563\u0578\u057d\u057f\u0578\u057d_\u057d\u0565\u057a\u057f\u0565\u0574\u0562\u0565\u0580_\u0570\u0578\u056f\u057f\u0565\u0574\u0562\u0565\u0580_\u0576\u0578\u0575\u0565\u0574\u0562\u0565\u0580_\u0564\u0565\u056f\u057f\u0565\u0574\u0562\u0565\u0580'.split('_')},monthsShort:'\u0570\u0576\u057e_\u0583\u057f\u0580_\u0574\u0580\u057f_\u0561\u057a\u0580_\u0574\u0575\u057d_\u0570\u0576\u057d_\u0570\u056c\u057d_\u0585\u0563\u057d_\u057d\u057a\u057f_\u0570\u056f\u057f_\u0576\u0574\u0562_\u0564\u056f\u057f'.split('_'),weekdays:'\u056f\u056b\u0580\u0561\u056f\u056b_\u0565\u0580\u056f\u0578\u0582\u0577\u0561\u0562\u0569\u056b_\u0565\u0580\u0565\u0584\u0577\u0561\u0562\u0569\u056b_\u0579\u0578\u0580\u0565\u0584\u0577\u0561\u0562\u0569\u056b_\u0570\u056b\u0576\u0563\u0577\u0561\u0562\u0569\u056b_\u0578\u0582\u0580\u0562\u0561\u0569_\u0577\u0561\u0562\u0561\u0569'.split('_'),weekdaysShort:'\u056f\u0580\u056f_\u0565\u0580\u056f_\u0565\u0580\u0584_\u0579\u0580\u0584_\u0570\u0576\u0563_\u0578\u0582\u0580\u0562_\u0577\u0562\u0569'.split('_'),weekdaysMin:'\u056f\u0580\u056f_\u0565\u0580\u056f_\u0565\u0580\u0584_\u0579\u0580\u0584_\u0570\u0576\u0563_\u0578\u0582\u0580\u0562_\u0577\u0562\u0569'.split('_'),longDateFormat:{LT:'HH:mm',LTS:'HH:mm:ss',L:'DD.MM.YYYY',LL:'D MMMM YYYY \u0569.',LLL:'D MMMM YYYY \u0569., HH:mm',LLLL:'dddd, D MMMM YYYY \u0569., HH:mm'},calendar:{sameDay:'[\u0561\u0575\u057d\u0585\u0580] LT',nextDay:'[\u057e\u0561\u0572\u0568] LT',lastDay:'[\u0565\u0580\u0565\u056f] LT',nextWeek:function(){return'dddd [\u0585\u0580\u0568 \u056a\u0561\u0574\u0568] LT'},lastWeek:function(){return'[\u0561\u0576\u0581\u0561\u056e] dddd [\u0585\u0580\u0568 \u056a\u0561\u0574\u0568] LT'},sameElse:'L'},relativeTime:{future:'%s \u0570\u0565\u057f\u0578',past:'%s \u0561\u057c\u0561\u057b',s:'\u0574\u056b \u0584\u0561\u0576\u056b \u057e\u0561\u0575\u0580\u056f\u0575\u0561\u0576',m:'\u0580\u0578\u057a\u0565',mm:'%d \u0580\u0578\u057a\u0565',h:'\u056a\u0561\u0574',hh:'%d \u056a\u0561\u0574',d:'\u0585\u0580',dd:'%d \u0585\u0580',M:'\u0561\u0574\u056b\u057d',MM:'%d \u0561\u0574\u056b\u057d',y:'\u057f\u0561\u0580\u056b',yy:'%d \u057f\u0561\u0580\u056b'},meridiemParse:/\u0563\u056b\u0577\u0565\u0580\u057e\u0561|\u0561\u057c\u0561\u057e\u0578\u057f\u057e\u0561|\u0581\u0565\u0580\u0565\u056f\u057e\u0561|\u0565\u0580\u0565\u056f\u0578\u0575\u0561\u0576/,isPM:function(_){return/^(\u0581\u0565\u0580\u0565\u056f\u057e\u0561|\u0565\u0580\u0565\u056f\u0578\u0575\u0561\u0576)$/.test(_)},meridiem:function(_){return _<4?'\u0563\u056b\u0577\u0565\u0580\u057e\u0561':_<12?'\u0561\u057c\u0561\u057e\u0578\u057f\u057e\u0561':_<17?'\u0581\u0565\u0580\u0565\u056f\u057e\u0561':'\u0565\u0580\u0565\u056f\u0578\u0575\u0561\u0576'},dayOfMonthOrdinalParse:/\d{1,2}|\d{1,2}-(\u056b\u0576|\u0580\u0564)/,ordinal:function(_,t){switch(t){case'DDD':case'w':case'W':case'DDDo':return 1===_?_+'-\u056b\u0576':_+'-\u0580\u0564';default:return _}},week:{dow:1,doy:7}})},'object'==typeof e&&void 0!==m&&'function'==typeof r?t(r(d[0])):'function'==typeof define&&define.amd?define(['../moment'],t):t(_.moment)},698,[614]); -__d(function(g,r,i,a,m,e,d){var n,o;n=this,o=function(n){'use strict';return n.defineLocale('it',{months:'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split('_'),monthsShort:'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),weekdays:'domenica_luned\xec_marted\xec_mercoled\xec_gioved\xec_venerd\xec_sabato'.split('_'),weekdaysShort:'dom_lun_mar_mer_gio_ven_sab'.split('_'),weekdaysMin:'do_lu_ma_me_gi_ve_sa'.split('_'),longDateFormat:{LT:'HH:mm',LTS:'HH:mm:ss',L:'DD/MM/YYYY',LL:'D MMMM YYYY',LLL:'D MMMM YYYY HH:mm',LLLL:'dddd, D MMMM YYYY HH:mm'},calendar:{sameDay:'[Oggi alle] LT',nextDay:'[Domani alle] LT',nextWeek:'dddd [alle] LT',lastDay:'[Ieri alle] LT',lastWeek:function(){switch(this.day()){case 0:return'[la scorsa] dddd [alle] LT';default:return'[lo scorso] dddd [alle] LT'}},sameElse:'L'},relativeTime:{future:function(n){return(/^[0-9].+$/.test(n)?'tra':'in')+' '+n},past:'%s fa',s:'alcuni secondi',m:'un minuto',mm:'%d minuti',h:'un\'ora',hh:'%d ore',d:'un giorno',dd:'%d giorni',M:'un mese',MM:'%d mesi',y:'un anno',yy:'%d anni'},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:'%d\xba',week:{dow:1,doy:4}})},'object'==typeof e&&void 0!==m&&'function'==typeof r?o(r(d[0])):'function'==typeof define&&define.amd?define(['../moment'],o):o(n.moment)},699,[614]); -__d(function(g,r,i,a,m,e,d){var t,n;t=this,n=function(t){'use strict';return t.defineLocale('nb',{months:'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),monthsShort:'jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),monthsParseExact:!0,weekdays:'s\xf8ndag_mandag_tirsdag_onsdag_torsdag_fredag_l\xf8rdag'.split('_'),weekdaysShort:'s\xf8._ma._ti._on._to._fr._l\xf8.'.split('_'),weekdaysMin:'s\xf8_ma_ti_on_to_fr_l\xf8'.split('_'),weekdaysParseExact:!0,longDateFormat:{LT:'HH:mm',LTS:'HH:mm:ss',L:'DD.MM.YYYY',LL:'D. MMMM YYYY',LLL:'D. MMMM YYYY [kl.] HH:mm',LLLL:'dddd D. MMMM YYYY [kl.] HH:mm'},calendar:{sameDay:'[i dag kl.] LT',nextDay:'[i morgen kl.] LT',nextWeek:'dddd [kl.] LT',lastDay:'[i g\xe5r kl.] LT',lastWeek:'[forrige] dddd [kl.] LT',sameElse:'L'},relativeTime:{future:'om %s',past:'%s siden',s:'noen sekunder',m:'ett minutt',mm:'%d minutter',h:'en time',hh:'%d timer',d:'en dag',dd:'%d dager',M:'en m\xe5ned',MM:'%d m\xe5neder',y:'ett \xe5r',yy:'%d \xe5r'},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:'%d.',week:{dow:1,doy:4}})},'object'==typeof e&&void 0!==m&&'function'==typeof r?n(r(d[0])):'function'==typeof define&&define.amd?define(['../moment'],n):n(t.moment)},700,[614]); -__d(function(g,r,i,a,m,e,d){var t,n;t=this,n=function(t){'use strict';var n='stycze\u0144_luty_marzec_kwiecie\u0144_maj_czerwiec_lipiec_sierpie\u0144_wrzesie\u0144_pa\u017adziernik_listopad_grudzie\u0144'.split('_'),o='stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_wrze\u015bnia_pa\u017adziernika_listopada_grudnia'.split('_');function s(t){return t%10<5&&t%10>1&&~~(t/10)%10!=1}function _(t,n,o){var _=t+' ';switch(o){case'm':return n?'minuta':'minut\u0119';case'mm':return _+(s(t)?'minuty':'minut');case'h':return n?'godzina':'godzin\u0119';case'hh':return _+(s(t)?'godziny':'godzin');case'MM':return _+(s(t)?'miesi\u0105ce':'miesi\u0119cy');case'yy':return _+(s(t)?'lata':'lat')}}return t.defineLocale('pl',{months:function(t,s){return t?''===s?'('+o[t.month()]+'|'+n[t.month()]+')':/D MMMM/.test(s)?o[t.month()]:n[t.month()]:n},monthsShort:'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_pa\u017a_lis_gru'.split('_'),weekdays:'niedziela_poniedzia\u0142ek_wtorek_\u015broda_czwartek_pi\u0105tek_sobota'.split('_'),weekdaysShort:'ndz_pon_wt_\u015br_czw_pt_sob'.split('_'),weekdaysMin:'Nd_Pn_Wt_\u015ar_Cz_Pt_So'.split('_'),longDateFormat:{LT:'HH:mm',LTS:'HH:mm:ss',L:'DD.MM.YYYY',LL:'D MMMM YYYY',LLL:'D MMMM YYYY HH:mm',LLLL:'dddd, D MMMM YYYY HH:mm'},calendar:{sameDay:'[Dzi\u015b o] LT',nextDay:'[Jutro o] LT',nextWeek:function(){switch(this.day()){case 0:return'[W niedziel\u0119 o] LT';case 2:return'[We wtorek o] LT';case 3:return'[W \u015brod\u0119 o] LT';case 6:return'[W sobot\u0119 o] LT';default:return'[W] dddd [o] LT'}},lastDay:'[Wczoraj o] LT',lastWeek:function(){switch(this.day()){case 0:return'[W zesz\u0142\u0105 niedziel\u0119 o] LT';case 3:return'[W zesz\u0142\u0105 \u015brod\u0119 o] LT';case 6:return'[W zesz\u0142\u0105 sobot\u0119 o] LT';default:return'[W zesz\u0142y] dddd [o] LT'}},sameElse:'L'},relativeTime:{future:'za %s',past:'%s temu',s:'kilka sekund',m:_,mm:_,h:_,hh:_,d:'1 dzie\u0144',dd:'%d dni',M:'miesi\u0105c',MM:_,y:'rok',yy:_},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:'%d.',week:{dow:1,doy:4}})},'object'==typeof e&&void 0!==m&&'function'==typeof r?n(r(d[0])):'function'==typeof define&&define.amd?define(['../moment'],n):n(t.moment)},701,[614]); -__d(function(g,r,i,a,m,e,d){var o,t;o=this,t=function(o){'use strict';return o.defineLocale('pt',{months:'janeiro_fevereiro_mar\xe7o_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split('_'),monthsShort:'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),weekdays:'Domingo_Segunda-feira_Ter\xe7a-feira_Quarta-feira_Quinta-feira_Sexta-feira_S\xe1bado'.split('_'),weekdaysShort:'Dom_Seg_Ter_Qua_Qui_Sex_S\xe1b'.split('_'),weekdaysMin:'Do_2\xaa_3\xaa_4\xaa_5\xaa_6\xaa_S\xe1'.split('_'),weekdaysParseExact:!0,longDateFormat:{LT:'HH:mm',LTS:'HH:mm:ss',L:'DD/MM/YYYY',LL:'D [de] MMMM [de] YYYY',LLL:'D [de] MMMM [de] YYYY HH:mm',LLLL:'dddd, D [de] MMMM [de] YYYY HH:mm'},calendar:{sameDay:'[Hoje \xe0s] LT',nextDay:'[Amanh\xe3 \xe0s] LT',nextWeek:'dddd [\xe0s] LT',lastDay:'[Ontem \xe0s] LT',lastWeek:function(){return 0===this.day()||6===this.day()?'[\xdaltimo] dddd [\xe0s] LT':'[\xdaltima] dddd [\xe0s] LT'},sameElse:'L'},relativeTime:{future:'em %s',past:'h\xe1 %s',s:'segundos',m:'um minuto',mm:'%d minutos',h:'uma hora',hh:'%d horas',d:'um dia',dd:'%d dias',M:'um m\xeas',MM:'%d meses',y:'um ano',yy:'%d anos'},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:'%d\xba',week:{dow:1,doy:4}})},'object'==typeof e&&void 0!==m&&'function'==typeof r?t(r(d[0])):'function'==typeof define&&define.amd?define(['../moment'],t):t(o.moment)},702,[614]); -__d(function(g,r,i,a,m,e,d){var o,s;o=this,s=function(o){'use strict';return o.defineLocale('pt-br',{months:'janeiro_fevereiro_mar\xe7o_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split('_'),monthsShort:'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),weekdays:'Domingo_Segunda-feira_Ter\xe7a-feira_Quarta-feira_Quinta-feira_Sexta-feira_S\xe1bado'.split('_'),weekdaysShort:'Dom_Seg_Ter_Qua_Qui_Sex_S\xe1b'.split('_'),weekdaysMin:'Do_2\xaa_3\xaa_4\xaa_5\xaa_6\xaa_S\xe1'.split('_'),weekdaysParseExact:!0,longDateFormat:{LT:'HH:mm',LTS:'HH:mm:ss',L:'DD/MM/YYYY',LL:'D [de] MMMM [de] YYYY',LLL:'D [de] MMMM [de] YYYY [\xe0s] HH:mm',LLLL:'dddd, D [de] MMMM [de] YYYY [\xe0s] HH:mm'},calendar:{sameDay:'[Hoje \xe0s] LT',nextDay:'[Amanh\xe3 \xe0s] LT',nextWeek:'dddd [\xe0s] LT',lastDay:'[Ontem \xe0s] LT',lastWeek:function(){return 0===this.day()||6===this.day()?'[\xdaltimo] dddd [\xe0s] LT':'[\xdaltima] dddd [\xe0s] LT'},sameElse:'L'},relativeTime:{future:'em %s',past:'%s atr\xe1s',s:'poucos segundos',ss:'%d segundos',m:'um minuto',mm:'%d minutos',h:'uma hora',hh:'%d horas',d:'um dia',dd:'%d dias',M:'um m\xeas',MM:'%d meses',y:'um ano',yy:'%d anos'},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:'%d\xba'})},'object'==typeof e&&void 0!==m&&'function'==typeof r?s(r(d[0])):'function'==typeof define&&define.amd?define(['../moment'],s):s(o.moment)},703,[614]); -__d(function(g,r,i,a,m,e,d){var t,_;t=this,_=function(t){'use strict';function _(t,_,s){var n,o;return'm'===s?_?'\u043c\u0438\u043d\u0443\u0442\u0430':'\u043c\u0438\u043d\u0443\u0442\u0443':t+' '+(n=+t,o={mm:_?'\u043c\u0438\u043d\u0443\u0442\u0430_\u043c\u0438\u043d\u0443\u0442\u044b_\u043c\u0438\u043d\u0443\u0442':'\u043c\u0438\u043d\u0443\u0442\u0443_\u043c\u0438\u043d\u0443\u0442\u044b_\u043c\u0438\u043d\u0443\u0442',hh:'\u0447\u0430\u0441_\u0447\u0430\u0441\u0430_\u0447\u0430\u0441\u043e\u0432',dd:'\u0434\u0435\u043d\u044c_\u0434\u043d\u044f_\u0434\u043d\u0435\u0439',MM:'\u043c\u0435\u0441\u044f\u0446_\u043c\u0435\u0441\u044f\u0446\u0430_\u043c\u0435\u0441\u044f\u0446\u0435\u0432',yy:'\u0433\u043e\u0434_\u0433\u043e\u0434\u0430_\u043b\u0435\u0442'}[s].split('_'),n%10==1&&n%100!=11?o[0]:n%10>=2&&n%10<=4&&(n%100<10||n%100>=20)?o[1]:o[2])}var s=[/^\u044f\u043d\u0432/i,/^\u0444\u0435\u0432/i,/^\u043c\u0430\u0440/i,/^\u0430\u043f\u0440/i,/^\u043c\u0430[\u0439\u044f]/i,/^\u0438\u044e\u043d/i,/^\u0438\u044e\u043b/i,/^\u0430\u0432\u0433/i,/^\u0441\u0435\u043d/i,/^\u043e\u043a\u0442/i,/^\u043d\u043e\u044f/i,/^\u0434\u0435\u043a/i];return t.defineLocale('ru',{months:{format:'\u044f\u043d\u0432\u0430\u0440\u044f_\u0444\u0435\u0432\u0440\u0430\u043b\u044f_\u043c\u0430\u0440\u0442\u0430_\u0430\u043f\u0440\u0435\u043b\u044f_\u043c\u0430\u044f_\u0438\u044e\u043d\u044f_\u0438\u044e\u043b\u044f_\u0430\u0432\u0433\u0443\u0441\u0442\u0430_\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044f_\u043e\u043a\u0442\u044f\u0431\u0440\u044f_\u043d\u043e\u044f\u0431\u0440\u044f_\u0434\u0435\u043a\u0430\u0431\u0440\u044f'.split('_'),standalone:'\u044f\u043d\u0432\u0430\u0440\u044c_\u0444\u0435\u0432\u0440\u0430\u043b\u044c_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b\u044c_\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044c_\u043e\u043a\u0442\u044f\u0431\u0440\u044c_\u043d\u043e\u044f\u0431\u0440\u044c_\u0434\u0435\u043a\u0430\u0431\u0440\u044c'.split('_')},monthsShort:{format:'\u044f\u043d\u0432._\u0444\u0435\u0432\u0440._\u043c\u0430\u0440._\u0430\u043f\u0440._\u043c\u0430\u044f_\u0438\u044e\u043d\u044f_\u0438\u044e\u043b\u044f_\u0430\u0432\u0433._\u0441\u0435\u043d\u0442._\u043e\u043a\u0442._\u043d\u043e\u044f\u0431._\u0434\u0435\u043a.'.split('_'),standalone:'\u044f\u043d\u0432._\u0444\u0435\u0432\u0440._\u043c\u0430\u0440\u0442_\u0430\u043f\u0440._\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433._\u0441\u0435\u043d\u0442._\u043e\u043a\u0442._\u043d\u043e\u044f\u0431._\u0434\u0435\u043a.'.split('_')},weekdays:{standalone:'\u0432\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0435\u0440\u0433_\u043f\u044f\u0442\u043d\u0438\u0446\u0430_\u0441\u0443\u0431\u0431\u043e\u0442\u0430'.split('_'),format:'\u0432\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u0435\u0434\u0443_\u0447\u0435\u0442\u0432\u0435\u0440\u0433_\u043f\u044f\u0442\u043d\u0438\u0446\u0443_\u0441\u0443\u0431\u0431\u043e\u0442\u0443'.split('_'),isFormat:/\[ ?[\u0412\u0432] ?(?:\u043f\u0440\u043e\u0448\u043b\u0443\u044e|\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e|\u044d\u0442\u0443)? ?\] ?dddd/},weekdaysShort:'\u0432\u0441_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431'.split('_'),weekdaysMin:'\u0432\u0441_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431'.split('_'),monthsParse:s,longMonthsParse:s,shortMonthsParse:s,monthsRegex:/^(\u044f\u043d\u0432\u0430\u0440[\u044c\u044f]|\u044f\u043d\u0432\.?|\u0444\u0435\u0432\u0440\u0430\u043b[\u044c\u044f]|\u0444\u0435\u0432\u0440?\.?|\u043c\u0430\u0440\u0442\u0430?|\u043c\u0430\u0440\.?|\u0430\u043f\u0440\u0435\u043b[\u044c\u044f]|\u0430\u043f\u0440\.?|\u043c\u0430[\u0439\u044f]|\u0438\u044e\u043d[\u044c\u044f]|\u0438\u044e\u043d\.?|\u0438\u044e\u043b[\u044c\u044f]|\u0438\u044e\u043b\.?|\u0430\u0432\u0433\u0443\u0441\u0442\u0430?|\u0430\u0432\u0433\.?|\u0441\u0435\u043d\u0442\u044f\u0431\u0440[\u044c\u044f]|\u0441\u0435\u043d\u0442?\.?|\u043e\u043a\u0442\u044f\u0431\u0440[\u044c\u044f]|\u043e\u043a\u0442\.?|\u043d\u043e\u044f\u0431\u0440[\u044c\u044f]|\u043d\u043e\u044f\u0431?\.?|\u0434\u0435\u043a\u0430\u0431\u0440[\u044c\u044f]|\u0434\u0435\u043a\.?)/i,monthsShortRegex:/^(\u044f\u043d\u0432\u0430\u0440[\u044c\u044f]|\u044f\u043d\u0432\.?|\u0444\u0435\u0432\u0440\u0430\u043b[\u044c\u044f]|\u0444\u0435\u0432\u0440?\.?|\u043c\u0430\u0440\u0442\u0430?|\u043c\u0430\u0440\.?|\u0430\u043f\u0440\u0435\u043b[\u044c\u044f]|\u0430\u043f\u0440\.?|\u043c\u0430[\u0439\u044f]|\u0438\u044e\u043d[\u044c\u044f]|\u0438\u044e\u043d\.?|\u0438\u044e\u043b[\u044c\u044f]|\u0438\u044e\u043b\.?|\u0430\u0432\u0433\u0443\u0441\u0442\u0430?|\u0430\u0432\u0433\.?|\u0441\u0435\u043d\u0442\u044f\u0431\u0440[\u044c\u044f]|\u0441\u0435\u043d\u0442?\.?|\u043e\u043a\u0442\u044f\u0431\u0440[\u044c\u044f]|\u043e\u043a\u0442\.?|\u043d\u043e\u044f\u0431\u0440[\u044c\u044f]|\u043d\u043e\u044f\u0431?\.?|\u0434\u0435\u043a\u0430\u0431\u0440[\u044c\u044f]|\u0434\u0435\u043a\.?)/i,monthsStrictRegex:/^(\u044f\u043d\u0432\u0430\u0440[\u044f\u044c]|\u0444\u0435\u0432\u0440\u0430\u043b[\u044f\u044c]|\u043c\u0430\u0440\u0442\u0430?|\u0430\u043f\u0440\u0435\u043b[\u044f\u044c]|\u043c\u0430[\u044f\u0439]|\u0438\u044e\u043d[\u044f\u044c]|\u0438\u044e\u043b[\u044f\u044c]|\u0430\u0432\u0433\u0443\u0441\u0442\u0430?|\u0441\u0435\u043d\u0442\u044f\u0431\u0440[\u044f\u044c]|\u043e\u043a\u0442\u044f\u0431\u0440[\u044f\u044c]|\u043d\u043e\u044f\u0431\u0440[\u044f\u044c]|\u0434\u0435\u043a\u0430\u0431\u0440[\u044f\u044c])/i,monthsShortStrictRegex:/^(\u044f\u043d\u0432\.|\u0444\u0435\u0432\u0440?\.|\u043c\u0430\u0440[\u0442.]|\u0430\u043f\u0440\.|\u043c\u0430[\u044f\u0439]|\u0438\u044e\u043d[\u044c\u044f.]|\u0438\u044e\u043b[\u044c\u044f.]|\u0430\u0432\u0433\.|\u0441\u0435\u043d\u0442?\.|\u043e\u043a\u0442\.|\u043d\u043e\u044f\u0431?\.|\u0434\u0435\u043a\.)/i,longDateFormat:{LT:'HH:mm',LTS:'HH:mm:ss',L:'DD.MM.YYYY',LL:'D MMMM YYYY \u0433.',LLL:'D MMMM YYYY \u0433., HH:mm',LLLL:'dddd, D MMMM YYYY \u0433., HH:mm'},calendar:{sameDay:'[\u0421\u0435\u0433\u043e\u0434\u043d\u044f \u0432] LT',nextDay:'[\u0417\u0430\u0432\u0442\u0440\u0430 \u0432] LT',lastDay:'[\u0412\u0447\u0435\u0440\u0430 \u0432] LT',nextWeek:function(t){if(t.week()===this.week())return 2===this.day()?'[\u0412\u043e] dddd [\u0432] LT':'[\u0412] dddd [\u0432] LT';switch(this.day()){case 0:return'[\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435] dddd [\u0432] LT';case 1:case 2:case 4:return'[\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439] dddd [\u0432] LT';case 3:case 5:case 6:return'[\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e] dddd [\u0432] LT'}},lastWeek:function(t){if(t.week()===this.week())return 2===this.day()?'[\u0412\u043e] dddd [\u0432] LT':'[\u0412] dddd [\u0432] LT';switch(this.day()){case 0:return'[\u0412 \u043f\u0440\u043e\u0448\u043b\u043e\u0435] dddd [\u0432] LT';case 1:case 2:case 4:return'[\u0412 \u043f\u0440\u043e\u0448\u043b\u044b\u0439] dddd [\u0432] LT';case 3:case 5:case 6:return'[\u0412 \u043f\u0440\u043e\u0448\u043b\u0443\u044e] dddd [\u0432] LT'}},sameElse:'L'},relativeTime:{future:'\u0447\u0435\u0440\u0435\u0437 %s',past:'%s \u043d\u0430\u0437\u0430\u0434',s:'\u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434',m:_,mm:_,h:'\u0447\u0430\u0441',hh:_,d:'\u0434\u0435\u043d\u044c',dd:_,M:'\u043c\u0435\u0441\u044f\u0446',MM:_,y:'\u0433\u043e\u0434',yy:_},meridiemParse:/\u043d\u043e\u0447\u0438|\u0443\u0442\u0440\u0430|\u0434\u043d\u044f|\u0432\u0435\u0447\u0435\u0440\u0430/i,isPM:function(t){return/^(\u0434\u043d\u044f|\u0432\u0435\u0447\u0435\u0440\u0430)$/.test(t)},meridiem:function(t,_,s){return t<4?'\u043d\u043e\u0447\u0438':t<12?'\u0443\u0442\u0440\u0430':t<17?'\u0434\u043d\u044f':'\u0432\u0435\u0447\u0435\u0440\u0430'},dayOfMonthOrdinalParse:/\d{1,2}-(\u0439|\u0433\u043e|\u044f)/,ordinal:function(t,_){switch(_){case'M':case'd':case'DDD':return t+'-\u0439';case'D':return t+'-\u0433\u043e';case'w':case'W':return t+'-\u044f';default:return t}},week:{dow:1,doy:4}})},'object'==typeof e&&void 0!==m&&'function'==typeof r?_(r(d[0])):'function'==typeof define&&define.amd?define(['../moment'],_):_(t.moment)},704,[614]); -__d(function(g,r,i,a,m,e,d){var t,n;t=this,n=function(t){'use strict';var n='janu\xe1r_febru\xe1r_marec_apr\xedl_m\xe1j_j\xfan_j\xfal_august_september_okt\xf3ber_november_december'.split('_'),o='jan_feb_mar_apr_m\xe1j_j\xfan_j\xfal_aug_sep_okt_nov_dec'.split('_');function s(t){return t>1&&t<5}function u(t,n,o,u){var c=t+' ';switch(o){case's':return n||u?'p\xe1r sek\xfand':'p\xe1r sekundami';case'm':return n?'min\xfata':u?'min\xfatu':'min\xfatou';case'mm':return n||u?c+(s(t)?'min\xfaty':'min\xfat'):c+'min\xfatami';case'h':return n?'hodina':u?'hodinu':'hodinou';case'hh':return n||u?c+(s(t)?'hodiny':'hod\xedn'):c+'hodinami';case'd':return n||u?'de\u0148':'d\u0148om';case'dd':return n||u?c+(s(t)?'dni':'dn\xed'):c+'d\u0148ami';case'M':return n||u?'mesiac':'mesiacom';case'MM':return n||u?c+(s(t)?'mesiace':'mesiacov'):c+'mesiacmi';case'y':return n||u?'rok':'rokom';case'yy':return n||u?c+(s(t)?'roky':'rokov'):c+'rokmi'}}return t.defineLocale('sk',{months:n,monthsShort:o,weekdays:'nede\u013ea_pondelok_utorok_streda_\u0161tvrtok_piatok_sobota'.split('_'),weekdaysShort:'ne_po_ut_st_\u0161t_pi_so'.split('_'),weekdaysMin:'ne_po_ut_st_\u0161t_pi_so'.split('_'),longDateFormat:{LT:'H:mm',LTS:'H:mm:ss',L:'DD.MM.YYYY',LL:'D. MMMM YYYY',LLL:'D. MMMM YYYY H:mm',LLLL:'dddd D. MMMM YYYY H:mm'},calendar:{sameDay:'[dnes o] LT',nextDay:'[zajtra o] LT',nextWeek:function(){switch(this.day()){case 0:return'[v nede\u013eu o] LT';case 1:case 2:return'[v] dddd [o] LT';case 3:return'[v stredu o] LT';case 4:return'[vo \u0161tvrtok o] LT';case 5:return'[v piatok o] LT';case 6:return'[v sobotu o] LT'}},lastDay:'[v\u010dera o] LT',lastWeek:function(){switch(this.day()){case 0:return'[minul\xfa nede\u013eu o] LT';case 1:case 2:return'[minul\xfd] dddd [o] LT';case 3:return'[minul\xfa stredu o] LT';case 4:case 5:return'[minul\xfd] dddd [o] LT';case 6:return'[minul\xfa sobotu o] LT'}},sameElse:'L'},relativeTime:{future:'za %s',past:'pred %s',s:u,m:u,mm:u,h:u,hh:u,d:u,dd:u,M:u,MM:u,y:u,yy:u},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:'%d.',week:{dow:1,doy:4}})},'object'==typeof e&&void 0!==m&&'function'==typeof r?n(r(d[0])):'function'==typeof define&&define.amd?define(['../moment'],n):n(t.moment)},705,[614]); -__d(function(g,r,i,a,m,e,d){var n,t;n=this,t=function(n){'use strict';function t(n,t,s,o){var u=n+' ';switch(s){case's':return t||o?'nekaj sekund':'nekaj sekundami';case'm':return t?'ena minuta':'eno minuto';case'mm':return u+=1===n?t?'minuta':'minuto':2===n?t||o?'minuti':'minutama':n<5?t||o?'minute':'minutami':t||o?'minut':'minutami';case'h':return t?'ena ura':'eno uro';case'hh':return u+=1===n?t?'ura':'uro':2===n?t||o?'uri':'urama':n<5?t||o?'ure':'urami':t||o?'ur':'urami';case'd':return t||o?'en dan':'enim dnem';case'dd':return u+=1===n?t||o?'dan':'dnem':2===n?t||o?'dni':'dnevoma':t||o?'dni':'dnevi';case'M':return t||o?'en mesec':'enim mesecem';case'MM':return u+=1===n?t||o?'mesec':'mesecem':2===n?t||o?'meseca':'mesecema':n<5?t||o?'mesece':'meseci':t||o?'mesecev':'meseci';case'y':return t||o?'eno leto':'enim letom';case'yy':return u+=1===n?t||o?'leto':'letom':2===n?t||o?'leti':'letoma':n<5?t||o?'leta':'leti':t||o?'let':'leti'}}return n.defineLocale('sl',{months:'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split('_'),monthsShort:'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split('_'),monthsParseExact:!0,weekdays:'nedelja_ponedeljek_torek_sreda_\u010detrtek_petek_sobota'.split('_'),weekdaysShort:'ned._pon._tor._sre._\u010det._pet._sob.'.split('_'),weekdaysMin:'ne_po_to_sr_\u010de_pe_so'.split('_'),weekdaysParseExact:!0,longDateFormat:{LT:'H:mm',LTS:'H:mm:ss',L:'DD.MM.YYYY',LL:'D. MMMM YYYY',LLL:'D. MMMM YYYY H:mm',LLLL:'dddd, D. MMMM YYYY H:mm'},calendar:{sameDay:'[danes ob] LT',nextDay:'[jutri ob] LT',nextWeek:function(){switch(this.day()){case 0:return'[v] [nedeljo] [ob] LT';case 3:return'[v] [sredo] [ob] LT';case 6:return'[v] [soboto] [ob] LT';case 1:case 2:case 4:case 5:return'[v] dddd [ob] LT'}},lastDay:'[v\u010deraj ob] LT',lastWeek:function(){switch(this.day()){case 0:return'[prej\u0161njo] [nedeljo] [ob] LT';case 3:return'[prej\u0161njo] [sredo] [ob] LT';case 6:return'[prej\u0161njo] [soboto] [ob] LT';case 1:case 2:case 4:case 5:return'[prej\u0161nji] dddd [ob] LT'}},sameElse:'L'},relativeTime:{future:'\u010dez %s',past:'pred %s',s:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:'%d.',week:{dow:1,doy:7}})},'object'==typeof e&&void 0!==m&&'function'==typeof r?t(r(d[0])):'function'==typeof define&&define.amd?define(['../moment'],t):t(n.moment)},706,[614]); -__d(function(g,r,i,a,m,e,d){var n,t;n=this,t=function(n){'use strict';return n.defineLocale('sv',{months:'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split('_'),monthsShort:'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),weekdays:'s\xf6ndag_m\xe5ndag_tisdag_onsdag_torsdag_fredag_l\xf6rdag'.split('_'),weekdaysShort:'s\xf6n_m\xe5n_tis_ons_tor_fre_l\xf6r'.split('_'),weekdaysMin:'s\xf6_m\xe5_ti_on_to_fr_l\xf6'.split('_'),longDateFormat:{LT:'HH:mm',LTS:'HH:mm:ss',L:'YYYY-MM-DD',LL:'D MMMM YYYY',LLL:'D MMMM YYYY [kl.] HH:mm',LLLL:'dddd D MMMM YYYY [kl.] HH:mm',lll:'D MMM YYYY HH:mm',llll:'ddd D MMM YYYY HH:mm'},calendar:{sameDay:'[Idag] LT',nextDay:'[Imorgon] LT',lastDay:'[Ig\xe5r] LT',nextWeek:'[P\xe5] dddd LT',lastWeek:'[I] dddd[s] LT',sameElse:'L'},relativeTime:{future:'om %s',past:'f\xf6r %s sedan',s:'n\xe5gra sekunder',m:'en minut',mm:'%d minuter',h:'en timme',hh:'%d timmar',d:'en dag',dd:'%d dagar',M:'en m\xe5nad',MM:'%d m\xe5nader',y:'ett \xe5r',yy:'%d \xe5r'},dayOfMonthOrdinalParse:/\d{1,2}(e|a)/,ordinal:function(n){var t=n%10;return n+(1==~~(n%100/10)?'e':1===t?'a':2===t?'a':'e')},week:{dow:1,doy:4}})},'object'==typeof e&&void 0!==m&&'function'==typeof r?t(r(d[0])):'function'==typeof define&&define.amd?define(['../moment'],t):t(n.moment)},707,[614]); -__d(function(g,r,i,a,m,e,d){var n,t;n=this,t=function(n){'use strict';var t={1:'\'inci',5:'\'inci',8:'\'inci',70:'\'inci',80:'\'inci',2:'\'nci',7:'\'nci',20:'\'nci',50:'\'nci',3:'\'\xfcnc\xfc',4:'\'\xfcnc\xfc',100:'\'\xfcnc\xfc',6:'\'nc\u0131',9:'\'uncu',10:'\'uncu',30:'\'uncu',60:'\'\u0131nc\u0131',90:'\'\u0131nc\u0131'};return n.defineLocale('tr',{months:'Ocak_\u015eubat_Mart_Nisan_May\u0131s_Haziran_Temmuz_A\u011fustos_Eyl\xfcl_Ekim_Kas\u0131m_Aral\u0131k'.split('_'),monthsShort:'Oca_\u015eub_Mar_Nis_May_Haz_Tem_A\u011fu_Eyl_Eki_Kas_Ara'.split('_'),weekdays:'Pazar_Pazartesi_Sal\u0131_\xc7ar\u015famba_Per\u015fembe_Cuma_Cumartesi'.split('_'),weekdaysShort:'Paz_Pts_Sal_\xc7ar_Per_Cum_Cts'.split('_'),weekdaysMin:'Pz_Pt_Sa_\xc7a_Pe_Cu_Ct'.split('_'),longDateFormat:{LT:'HH:mm',LTS:'HH:mm:ss',L:'DD.MM.YYYY',LL:'D MMMM YYYY',LLL:'D MMMM YYYY HH:mm',LLLL:'dddd, D MMMM YYYY HH:mm'},calendar:{sameDay:'[bug\xfcn saat] LT',nextDay:'[yar\u0131n saat] LT',nextWeek:'[gelecek] dddd [saat] LT',lastDay:'[d\xfcn] LT',lastWeek:'[ge\xe7en] dddd [saat] LT',sameElse:'L'},relativeTime:{future:'%s sonra',past:'%s \xf6nce',s:'birka\xe7 saniye',m:'bir dakika',mm:'%d dakika',h:'bir saat',hh:'%d saat',d:'bir g\xfcn',dd:'%d g\xfcn',M:'bir ay',MM:'%d ay',y:'bir y\u0131l',yy:'%d y\u0131l'},dayOfMonthOrdinalParse:/\d{1,2}'(inci|nci|\xfcnc\xfc|nc\u0131|uncu|\u0131nc\u0131)/,ordinal:function(n){if(0===n)return n+'\'\u0131nc\u0131';var _=n%10;return n+(t[_]||t[n%100-_]||t[n>=100?100:null])},week:{dow:1,doy:7}})},'object'==typeof e&&void 0!==m&&'function'==typeof r?t(r(d[0])):'function'==typeof define&&define.amd?define(['../moment'],t):t(n.moment)},708,[614]); -__d(function(g,r,i,a,m,e,d){var _,t;_=this,t=function(_){'use strict';return _.defineLocale('zh-cn',{months:'\u4e00\u6708_\u4e8c\u6708_\u4e09\u6708_\u56db\u6708_\u4e94\u6708_\u516d\u6708_\u4e03\u6708_\u516b\u6708_\u4e5d\u6708_\u5341\u6708_\u5341\u4e00\u6708_\u5341\u4e8c\u6708'.split('_'),monthsShort:'1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708'.split('_'),weekdays:'\u661f\u671f\u65e5_\u661f\u671f\u4e00_\u661f\u671f\u4e8c_\u661f\u671f\u4e09_\u661f\u671f\u56db_\u661f\u671f\u4e94_\u661f\u671f\u516d'.split('_'),weekdaysShort:'\u5468\u65e5_\u5468\u4e00_\u5468\u4e8c_\u5468\u4e09_\u5468\u56db_\u5468\u4e94_\u5468\u516d'.split('_'),weekdaysMin:'\u65e5_\u4e00_\u4e8c_\u4e09_\u56db_\u4e94_\u516d'.split('_'),longDateFormat:{LT:'HH:mm',LTS:'HH:mm:ss',L:'YYYY\u5e74MMMD\u65e5',LL:'YYYY\u5e74MMMD\u65e5',LLL:'YYYY\u5e74MMMD\u65e5Ah\u70b9mm\u5206',LLLL:'YYYY\u5e74MMMD\u65e5ddddAh\u70b9mm\u5206',l:'YYYY\u5e74MMMD\u65e5',ll:'YYYY\u5e74MMMD\u65e5',lll:'YYYY\u5e74MMMD\u65e5 HH:mm',llll:'YYYY\u5e74MMMD\u65e5dddd HH:mm'},meridiemParse:/\u51cc\u6668|\u65e9\u4e0a|\u4e0a\u5348|\u4e2d\u5348|\u4e0b\u5348|\u665a\u4e0a/,meridiemHour:function(_,t){return 12===_&&(_=0),'\u51cc\u6668'===t||'\u65e9\u4e0a'===t||'\u4e0a\u5348'===t?_:'\u4e0b\u5348'===t||'\u665a\u4e0a'===t?_+12:_>=11?_:_+12},meridiem:function(_,t,n){var s=100*_+t;return s<600?'\u51cc\u6668':s<900?'\u65e9\u4e0a':s<1130?'\u4e0a\u5348':s<1230?'\u4e2d\u5348':s<1800?'\u4e0b\u5348':'\u665a\u4e0a'},calendar:{sameDay:'[\u4eca\u5929]LT',nextDay:'[\u660e\u5929]LT',nextWeek:'[\u4e0b]ddddLT',lastDay:'[\u6628\u5929]LT',lastWeek:'[\u4e0a]ddddLT',sameElse:'L'},dayOfMonthOrdinalParse:/\d{1,2}(\u65e5|\u6708|\u5468)/,ordinal:function(_,t){switch(t){case'd':case'D':case'DDD':return _+'\u65e5';case'M':return _+'\u6708';case'w':case'W':return _+'\u5468';default:return _}},relativeTime:{future:'%s\u5185',past:'%s\u524d',s:'\u51e0\u79d2',m:'1 \u5206\u949f',mm:'%d \u5206\u949f',h:'1 \u5c0f\u65f6',hh:'%d \u5c0f\u65f6',d:'1 \u5929',dd:'%d \u5929',M:'1 \u4e2a\u6708',MM:'%d \u4e2a\u6708',y:'1 \u5e74',yy:'%d \u5e74'},week:{dow:1,doy:4}})},'object'==typeof e&&void 0!==m&&'function'==typeof r?t(r(d[0])):'function'==typeof define&&define.amd?define(['../moment'],t):t(_.moment)},709,[614]); -__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.translate=function(n){return(0,l.withTranslation)(['main','languages','countries'])(n)},e.translateToHTML=function(n,l){var u=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return t.default.createElement("span",{dangerouslySetInnerHTML:{__html:n(l,u)}})};var t=n(r(d[1])),l=r(d[2])},710,[3,13,711]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"Trans",{enumerable:!0,get:function(){return t.Trans}}),Object.defineProperty(e,"useTranslation",{enumerable:!0,get:function(){return n.useTranslation}}),Object.defineProperty(e,"withTranslation",{enumerable:!0,get:function(){return u.withTranslation}}),Object.defineProperty(e,"Translation",{enumerable:!0,get:function(){return o.Translation}}),Object.defineProperty(e,"I18nextProvider",{enumerable:!0,get:function(){return c.I18nextProvider}}),Object.defineProperty(e,"withSSR",{enumerable:!0,get:function(){return f.withSSR}}),Object.defineProperty(e,"useSSR",{enumerable:!0,get:function(){return b.useSSR}}),Object.defineProperty(e,"I18nContext",{enumerable:!0,get:function(){return l.I18nContext}}),Object.defineProperty(e,"initReactI18next",{enumerable:!0,get:function(){return l.initReactI18next}}),Object.defineProperty(e,"setDefaults",{enumerable:!0,get:function(){return l.setDefaults}}),Object.defineProperty(e,"getDefaults",{enumerable:!0,get:function(){return l.getDefaults}}),Object.defineProperty(e,"setI18n",{enumerable:!0,get:function(){return l.setI18n}}),Object.defineProperty(e,"getI18n",{enumerable:!0,get:function(){return l.getI18n}}),Object.defineProperty(e,"composeInitialProps",{enumerable:!0,get:function(){return l.composeInitialProps}}),Object.defineProperty(e,"getInitialProps",{enumerable:!0,get:function(){return l.getInitialProps}});var t=r(d[0]),n=r(d[1]),u=r(d[2]),o=r(d[3]),c=r(d[4]),f=r(d[5]),b=r(d[6]),l=r(d[7])},711,[712,730,735,736,737,738,739,726]); -__d(function(g,r,i,a,m,e,d){"use strict";var t=r(d[0]),n=r(d[1]),o=r(d[2]);Object.defineProperty(e,"__esModule",{value:!0}),e.nodesToString=b,e.Trans=function(t){var n=t.children,o=t.count,s=t.parent,p=t.i18nKey,y=t.tOptions,v=t.values,E=t.defaults,O=t.components,k=t.ns,x=t.i18n,S=t.t,N=(0,c.default)(t,["children","count","parent","i18nKey","tOptions","values","defaults","components","ns","i18n","t"]),w=(0,f.getHasUsedI18nextProvider)()&&(0,u.useContext)(f.I18nContext)||{},V=w.i18n,A=w.defaultNS,I=x||V||(0,f.getI18n)();if(!I)return(0,h.warnOnce)('You will need pass in an i18next instance by using i18nextReactModule'),n;var K=S||I.t.bind(I)||function(t){return t},T=(0,l.default)({},(0,f.getDefaults)(),I.options&&I.options.react),H=void 0!==s?s:T.defaultTransParent,_=k||K.ns||A||I.options&&I.options.defaultNS;_='string'==typeof _?[_]:_||['translation'];var B=E||b('',n,0,T)||T.transEmptyNodeValue,P=T.hashTransKey,C=p||(P?P(B):B),D=v?{}:{interpolation:{prefix:'#$?',suffix:'?$#'}},F=(0,l.default)({},y,v,D,{defaultValue:B,count:o,ns:_}),M=C?K(C,F):B;return H?u.default.createElement(H,N,j(O||n,M,I,T,F)):j(O||n,M,I,T,F)};var c=o(r(d[3])),l=o(r(d[4])),s=o(r(d[5])),u=n(r(d[6])),p=o(r(d[7])),f=r(d[8]),h=r(d[9]);function y(t){return t&&(t.children||t.props&&t.props.children)}function v(t){return t?t&&t.children?t.children:t.props&&t.props.children:[]}function b(t,n,o,c){if(!n)return'';'[object Array]'!==Object.prototype.toString.call(n)&&(n=[n]);var p=c.transKeepBasicHtmlNodesFor||[];return n.forEach(function(n,o){var f="".concat(o);if('string'==typeof n)t="".concat(t).concat(n);else if(y(n)){var j=p.indexOf(n.type)>-1&&1===Object.keys(n.props).length&&'string'==typeof y(n)?n.type:f;t=n.props&&n.props.i18nIsDynamicList?"".concat(t,"<").concat(j,">"):"".concat(t,"<").concat(j,">").concat(b('',v(n),o+1,c),"")}else if(u.default.isValidElement(n))t=p.indexOf(n.type)>-1&&0===Object.keys(n.props).length?"".concat(t,"<").concat(n.type,"/>"):"".concat(t,"<").concat(f,">");else if('object'===(0,s.default)(n)){var E=(0,l.default)({},n),O=E.format;delete E.format;var k=Object.keys(E);O&&1===k.length?t="".concat(t,"{{").concat(k[0],", ").concat(O,"}}"):1===k.length?t="".concat(t,"{{").concat(k[0],"}}"):(0,h.warn)("react-i18next: the passed in object contained more than one variable - the object should look like {{ value, format }} where format is optional.",n)}else(0,h.warn)("Trans: the passed in value is invalid - seems you passed in a variable like {number} - please pass in variables for interpolation as full objects like {{number}}.",n)}),t}function j(n,o,c,f,h){if(''===o)return[];var b=f.transKeepBasicHtmlNodesFor||[],j=o&&new RegExp(b.join('|')).test(o);if(!n&&!j)return[o];var E={};return(function n(o){'[object Array]'!==Object.prototype.toString.call(o)&&(o=[o]),o.forEach(function(o){'string'!=typeof o&&(y(o)?n(v(o)):'object'!==(0,s.default)(o)||u.default.isValidElement(o)||t(E,o))})})(n),o=c.services.interpolator.interpolate(o,(0,l.default)({},E,h),c.language),v((function t(n,o){return'[object Array]'!==Object.prototype.toString.call(n)&&(n=[n]),'[object Array]'!==Object.prototype.toString.call(o)&&(o=[o]),o.reduce(function(o,c,p){var h,b=c.children&&c.children[0]&&c.children[0].content;if('tag'===c.type){var E=n[parseInt(c.name,10)]||{},O=u.default.isValidElement(E);if('string'==typeof E)o.push(E);else if(y(E)){var k=v(E),x=t(k,c.children),S=(h=k,'[object Array]'===Object.prototype.toString.call(h)&&h.every(function(t){return u.default.isValidElement(t)})&&0===x.length?k:x);E.dummy&&(E.children=S),o.push(u.default.cloneElement(E,(0,l.default)({},E.props,{key:p}),S))}else if(j&&'object'===(0,s.default)(E)&&E.dummy&&!O){var N=t(n,c.children);o.push(u.default.cloneElement(E,(0,l.default)({},E.props,{key:p}),N))}else if(isNaN(c.name)&&f.transSupportBasicHtmlNodes)if(c.voidElement)o.push(u.default.createElement(c.name,{key:"".concat(c.name,"-").concat(p)}));else{var w=t(n,c.children);o.push(u.default.createElement(c.name,{key:"".concat(c.name,"-").concat(p)},w))}else if('object'!==(0,s.default)(E)||O)1===c.children.length&&b?o.push(u.default.cloneElement(E,(0,l.default)({},E.props,{key:p}),b)):o.push(u.default.cloneElement(E,(0,l.default)({},E.props,{key:p})));else{var V=c.children[0]?b:null;V&&o.push(V)}}else'text'===c.type&&o.push(c.content);return o},[])})([{dummy:!0,children:n}],p.default.parse("<0>".concat(o,"")))[0])}},712,[713,714,715,716,718,720,13,721,726,729]); -__d(function(g,r,i,a,m,e,d){function t(){return m.exports=t=Object.assign||function(t){for(var n=1;n=0||Object.prototype.propertyIsEnumerable.call(n,l)&&(b[l]=n[l])}return b}},716,[717]); -__d(function(g,r,i,a,m,e,d){m.exports=function(n,t){if(null==n)return{};var f,u,o={},c=Object.keys(n);for(u=0;u=0||(o[f]=n[f]);return o}},717,[]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]);m.exports=function(n){for(var o=1;o|<(?:"[^"]*"['"]*|'[^']*'['"]*|[^'">])+>)/g,t=r(d[0]),c=Object.create?Object.create(null):{};function o(n,t,c,o,h){var p=t.indexOf('<',o),s=t.slice(o,-1===p?void 0:p);/^\s*$/.test(s)&&(s=' '),(!h&&p>-1&&c+n.length>=0||' '!==s)&&n.push({type:'text',content:s})}m.exports=function(h,p){p||(p={}),p.components||(p.components=c);var s,l=[],u=-1,f=[],v={},x=!1;return h.replace(n,function(n,c){if(x){if(n!=='')return;x=!1}var O,y='/'!==n.charAt(1),W=0===n.indexOf('\x3c!--'),b=c+n.length,j=h.charAt(b);y&&!W&&(u++,'tag'===(s=t(n)).type&&p.components[s.name]&&(s.type='component',x=!0),s.voidElement||x||!j||'<'===j||o(s.children,h,u,b,p.ignoreWhitespace),v[s.tagName]=s,0===u&&l.push(s),(O=f[u-1])&&O.children.push(s),f[u]=s),(W||!y||s.voidElement)&&(W||u--,!x&&'<'!==j&&j&&o(O=-1===u?l:f[u].children,h,u,b,p.ignoreWhitespace))}),!l.length&&h.length&&o(l,h,0,0,p.ignoreWhitespace),l}},722,[723]); -__d(function(g,r,i,a,m,e,d){var t=/([\w-]+)|=|(['"])([.\s\S]*?)\2/g,n=r(d[0]);m.exports=function(o){var c,l=0,v=!0,s={type:'tag',name:'',voidElement:!1,attrs:{},children:[]};return o.replace(t,function(t){if('='===t)return v=!0,void l++;v?0===l?((n[t]||'/'===o.charAt(o.length-2))&&(s.voidElement=!0),s.name=t):(s.attrs[c]=t.replace(/^['"]|['"]$/g,''),c=void 0):(c&&(s.attrs[c]=c),c=t),l++,v=!1}),s}},723,[724]); -__d(function(g,r,i,a,m,e,d){m.exports={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,menuitem:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0}},724,[]); -__d(function(g,r,i,a,m,e,d){function n(n){var t=[];for(var u in n)t.push(u+'="'+n[u]+'"');return t.length?' '+t.join(' '):''}function t(u,c){switch(c.type){case'text':return u+c.content;case'tag':return u+='<'+c.name+(c.attrs?n(c.attrs):'')+(c.voidElement?'/>':'>'),c.voidElement?u:u+c.children.reduce(t,'')+''}}m.exports=function(n){return n.reduce(function(n,u){return n+t('',u)},'')}},725,[]); -__d(function(g,r,i,a,m,e,d){"use strict";var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.usedI18nextProvider=function(t){s=t},e.getHasUsedI18nextProvider=function(){return s},e.setDefaults=l,e.getDefaults=function(){return f},e.setI18n=I,e.getI18n=N,e.composeInitialProps=function(t){return function(n){return new Promise(function(s){var u=P();t.getInitialProps?t.getInitialProps(n).then(function(t){s((0,c.default)({},t,u))}):s(u)})}},e.getInitialProps=P,e.initReactI18next=e.ReportNamespaces=e.I18nContext=void 0;var n,s,u=t(r(d[1])),o=t(r(d[2])),c=t(r(d[3])),f={bindI18n:'languageChanging languageChanged',bindI18nStore:'',transEmptyNodeValue:'',transSupportBasicHtmlNodes:!0,transKeepBasicHtmlNodesFor:['br','strong','i','p'],useSuspense:!0},p=t(r(d[4])).default.createContext();function l(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};f=(0,c.default)({},f,t)}e.I18nContext=p;var v=(function(){function t(){(0,u.default)(this,t),this.usedNamespaces={}}return(0,o.default)(t,[{key:"addUsedNamespaces",value:function(t){var n=this;t.forEach(function(t){n.usedNamespaces[t]||(n.usedNamespaces[t]=!0)})}},{key:"getUsedNamespaces",value:function(){return Object.keys(this.usedNamespaces)}}]),t})();function I(t){n=t}function N(){return n}e.ReportNamespaces=v;var h={type:'3rdParty',init:function(t){l(t.options.react),I(t)}};function P(){var t=N(),n=t.reportNamespaces?t.reportNamespaces.getUsedNamespaces():[],s={},u={};return t.languages.forEach(function(s){u[s]={},n.forEach(function(n){u[s][n]=t.getResourceBundle(s,n)||{}})}),s.initialI18nStore=u,s.initialLanguage=t.language,s}e.initReactI18next=h},726,[715,727,728,718,13]); -__d(function(g,r,i,a,m,e,d){m.exports=function(n,o){if(!(n instanceof o))throw new TypeError("Cannot call a class as a function")}},727,[]); -__d(function(g,r,i,a,m,e,d){function n(n,t){for(var o=0;o0?n:'Unknown')};var t={};function o(){for(var o=arguments.length,s=new Array(o),c=0;c1&&void 0!==arguments[1]?arguments[1]:{},p=f.i18n,l=(0,u.getHasUsedI18nextProvider)()&&(0,o.useContext)(u.I18nContext)||{},v=l.i18n,N=l.defaultNS,I=p||v||(0,u.getI18n)();I&&!I.reportNamespaces&&(I.reportNamespaces=new u.ReportNamespaces);if(!I){(0,c.warnOnce)('You will need pass in an i18next instance by using initReactI18next');var S=[function(n){return n},{},!0];return S.t=function(n){return n},S.i18n={},S.ready=!0,S}var x=(0,s.default)({},(0,u.getDefaults)(),I.options.react),y=f.useSuspense,b=void 0===y?x.useSuspense:y,h=n||N||I.options&&I.options.defaultNS;h='string'==typeof h?[h]:h||['translation'],I.reportNamespaces.addUsedNamespaces&&I.reportNamespaces.addUsedNamespaces(h);var w=(I.isInitialized||I.initializedStoreOnce)&&h.every(function(n){return(0,c.hasLoadedNamespace)(n,I)});function _(){return{t:I.getFixedT(null,'fallback'===x.nsMode?h:h[0])}}var E=(0,o.useState)(_()),O=(0,t.default)(E,2),P=O[0],U=O[1];(0,o.useEffect)(function(){var n=!0,t=x.bindI18n,s=x.bindI18nStore;function o(){n&&U(_())}return w||b||(0,c.loadNamespaces)(I,h,function(){n&&U(_())}),t&&I&&I.on(t,o),s&&I&&I.store.on(s,o),function(){n=!1,t&&I&&t.split(' ').forEach(function(n){return I.off(n,o)}),s&&I&&s.split(' ').forEach(function(n){return I.store.off(n,o)})}},[h.join()]);var j=[P.t,I,w];if(j.t=P.t,j.i18n=I,j.ready=w,w)return j;if(!w&&!b)return j;throw new Promise(function(n){(0,c.loadNamespaces)(I,h,function(){U(_()),n()})})};var t=n(r(d[1])),s=n(r(d[2])),o=r(d[3]),u=r(d[4]),c=r(d[5])},730,[715,731,718,13,726,729]); -__d(function(g,r,i,a,m,e,d){var n=r(d[0]),t=r(d[1]),o=r(d[2]);m.exports=function(u,c){return n(u)||t(u,c)||o()}},731,[732,733,734]); -__d(function(g,r,i,a,m,e,d){m.exports=function(n){if(Array.isArray(n))return n}},732,[]); -__d(function(g,r,i,a,m,e,d){m.exports=function(t,n){var o=[],l=!0,u=!1,f=void 0;try{for(var y,c=t["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();!(l=(y=c.next()).done)&&(o.push(y.value),!n||o.length!==n);l=!0);}catch(t){u=!0,f=t}finally{try{l||null==c.return||c.return()}finally{if(u)throw f}}return o}},733,[]); -__d(function(g,r,i,a,m,e,d){m.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}},734,[]); -__d(function(g,r,i,a,m,e,d){"use strict";var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.withTranslation=function(t){var c=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function(s){function p(l,p){var v=(0,o.useTranslation)(t,l),h=(0,u.default)(v,3),w=h[0],y=h[1],R=h[2],_=(0,n.default)({},l,{t:w,i18n:y,tReady:R});return c.withRef&&p&&(_.ref=p),f.default.createElement(s,_)}return p.displayName="withI18nextTranslation(".concat((0,l.getDisplayName)(s),")"),p.WrappedComponent=s,c.withRef?f.default.forwardRef(p):p}};var n=t(r(d[1])),u=t(r(d[2])),f=t(r(d[3])),o=r(d[4]),l=r(d[5])},735,[715,718,731,13,730,729]); -__d(function(g,r,i,a,m,e,d){"use strict";var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.Translation=function(n){var s=n.ns,c=n.children,o=(0,l.default)(n,["ns","children"]),f=(0,u.useTranslation)(s,o),v=(0,t.default)(f,3),_=v[0],h=v[1],T=v[2];return c(_,{i18n:h,lng:h.language},T)};var t=n(r(d[1])),l=n(r(d[2])),u=(n(r(d[3])),r(d[4]))},736,[715,731,716,13,730]); -__d(function(g,r,i,a,m,e,d){"use strict";var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.I18nextProvider=function(t){var l=t.i18n,o=t.defaultNS,v=t.children;return(0,u.usedI18nextProvider)(!0),n.default.createElement(u.I18nContext.Provider,{value:{i18n:l,defaultNS:o}},v)};var n=t(r(d[1])),u=r(d[2])},737,[715,13,726]); -__d(function(g,r,i,a,m,e,d){"use strict";var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.withSSR=function(){return function(t){function s(c){var p=c.initialI18nStore,s=c.initialLanguage,f=(0,u.default)(c,["initialI18nStore","initialLanguage"]);return(0,l.useSSR)(p,s),o.default.createElement(t,(0,n.default)({},f))}return s.getInitialProps=(0,c.composeInitialProps)(t),s.displayName="withI18nextSSR(".concat((0,p.getDisplayName)(t),")"),s.WrappedComponent=t,s}};var n=t(r(d[1])),u=t(r(d[2])),o=t(r(d[3])),l=r(d[4]),c=r(d[5]),p=r(d[6])},738,[715,718,716,13,739,726,729]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.useSSR=function(o,s){var u=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).i18n,c=((0,t.getHasUsedI18nextProvider)()?(0,n.useContext)(t.I18nContext):{}).i18n,l=u||c||(0,t.getI18n)();if(l.options&&l.options.isClone)return;o&&!l.initializedStoreOnce&&(l.services.resourceStore.data=o,l.initializedStoreOnce=!0);s&&!l.initializedLanguageOnce&&(l.changeLanguage(s),l.initializedLanguageOnce=!0)};var n=r(d[0]),t=r(d[1])},739,[13,726]); -__d(function(g,r,i,a,m,e,d){var s=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=s(r(d[1])),n=s(r(d[2])),u=s(r(d[3])),o=s(r(d[4])),l=s(r(d[5])),p=s(r(d[6])),f=r(d[7]),c=r(d[8]),_=(function(s){function f(s){var n;return(0,t.default)(this,f),(n=(0,u.default)(this,(0,o.default)(f).call(this,s)))._onDismissed=n._onDismissed.bind((0,p.default)((0,p.default)(n))),n}return(0,l.default)(f,s),(0,n.default)(f,[{key:"_getDescription",value:function(){var s=this.props,t=s.description,n=s.descriptionArguments,u=s.descriptionKey,o=s.t,l=[];return u&&l.push(o(u,n)),t&&l.push(t),l}},{key:"_onDismissed",value:function(){this.props.onDismissed(this.props.uid)}}]),f})(f.Component);e.default=_,_.defaultProps={appearance:c.NOTIFICATION_TYPE.NORMAL,isDismissAllowed:!0}},740,[3,4,5,6,9,10,8,13,608]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=r(d[0]),t={contentColumn:{justifyContent:'center',flex:1,flexDirection:'column',paddingLeft:1.5*o.BoxModel.padding},contentText:{alignSelf:'flex-start',color:o.ColorPalette.white},dismissIcon:{color:o.ColorPalette.white,fontSize:20,padding:1.5*o.BoxModel.padding},notification:{backgroundColor:'#768898',flexDirection:'row',height:48,marginTop:.5*o.BoxModel.margin},notificationContainer:{flexGrow:0,justifyContent:'flex-end'},notificationContent:{flexDirection:'column'}};e.default=t},741,[406]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=n(r(d[2])),l=n(r(d[3])),o=n(r(d[4])),s=n(r(d[5])),f=n(r(d[6])),c=n(r(d[7])),p=n(r(d[8])),h=r(d[9]),v=r(d[10]),_=t(r(d[11])),y=n(r(d[12])),b=n(r(d[13])),E=(function(t){function n(){return(0,l.default)(this,n),(0,s.default)(this,(0,f.default)(n).apply(this,arguments))}return(0,c.default)(n,t),(0,o.default)(n,[{key:"render",value:function(){var t=this.props._notifications,n=t&&t.length&&t[0];return n?p.default.createElement(h.View,{pointerEvents:"box-none",style:[b.default.notificationContainer,this.props.style]},p.default.createElement(y.default,(0,u.default)({},n.props,{onDismissed:this._onDismissed,uid:n.uid}))):null}}]),n})(_.default),D=(0,v.connect)(_._abstractMapStateToProps)(E);e.default=D},742,[2,3,16,4,5,6,9,10,13,17,539,743,611,741]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e._abstractMapStateToProps=function(t){var o=t['features/notifications'].notifications;return{_notifications:(0,T.areThereNotifications)(t)?o:[],autoDismissTimeout:'undefined'==typeof interfaceConfig?void 0:interfaceConfig.ENFORCE_NOTIFICATION_AUTO_DISMISS_TIMEOUT}},e.default=void 0;var o=t(r(d[1])),s=t(r(d[2])),n=t(r(d[3])),u=t(r(d[4])),f=t(r(d[5])),c=t(r(d[6])),l=r(d[7]),_=r(d[8]),T=r(d[9]),h=(function(t){function l(t){var s;return(0,o.default)(this,l),(s=(0,n.default)(this,(0,u.default)(l).call(this,t)))._notificationDismissTimeout=null,s._onDismissed=s._onDismissed.bind((0,c.default)((0,c.default)(s))),s}return(0,f.default)(l,t),(0,s.default)(l,[{key:"componentDidMount",value:function(){this._manageDismissTimeout()}},{key:"componentDidUpdate",value:function(t){this._manageDismissTimeout(t)}},{key:"_manageDismissTimeout",value:function(t){var o=this,s=this.props,n=s._notifications,u=s.autoDismissTimeout;if(n.length){var f=n[0];if(f!==(t&&t._notifications.length?t._notifications[0]:void 0)&&(this._clearNotificationDismissTimeout(),f&&(f.timeout||'number'==typeof u)&&!1!==f.props.isDismissAllowed)){var c=f.timeout,l=void 0===c?u:c,_=f.uid;this._notificationDismissTimeout=setTimeout(function(){o._onDismissed(_)},l)}}else this._notificationDismissTimeout&&this._clearNotificationDismissTimeout()}},{key:"componentWillUnmount",value:function(){this._clearNotificationDismissTimeout()}},{key:"_clearNotificationDismissTimeout",value:function(){this._notificationDismissTimeout&&clearTimeout(this._notificationDismissTimeout),this._notificationDismissTimeout=null}},{key:"_onDismissed",value:function(t){var o=this.props._notifications;o.length&&o[0].uid!==t||this._clearNotificationDismissTimeout(),this.props.dispatch((0,_.hideNotification)(t))}}]),l})(l.Component);e.default=h},743,[3,4,5,6,9,10,8,13,593,744]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.areThereNotifications=function(n){var o=(0,t.toState)(n)['features/notifications'],f=o.enabled,c=o.notifications;return f&&c.length>0};var t=r(d[0])},744,[539]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]),c=r(d[2]),o=r(d[3]),s=r(d[4]);c.MiddlewareRegistry.register(function(t){return function(c){return function(f){switch(f.type){case n.PARTICIPANT_JOINED:var p=c(f),u=f.participant;return u.local||t.dispatch((0,o.showParticipantJoinedNotification)((0,n.getParticipantDisplayName)(t.getState,u.id))),p;case n.PARTICIPANT_LEFT:var y=(0,n.getParticipantById)(t.getState(),f.participant.id);return'object'==typeof interfaceConfig&&y&&!y.local&&t.dispatch((0,o.showNotification)({descriptionKey:'notify.disconnected',titleKey:'notify.somebody',title:y.name},s.NOTIFICATION_TIMEOUT)),c(f)}return c(f)}}}),c.StateListenerRegistry.register(function(n){return(0,t.getCurrentConference)(n)},function(t,n){var c=n.dispatch;t||c((0,o.clearNotifications)())})},745,[383,537,539,593,608]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0])(r(d[1])),n=r(d[2]),o=r(d[3]),I=r(d[4]),c={enabled:!0,notifications:[]};function u(t,n){for(var o=I.NOTIFICATION_TYPE_PRIORITIES[n.props.appearance]||0,c=t.length,u=1;u0&&void 0!==arguments[0]?arguments[0]:c,I=arguments.length>1?arguments[1]:void 0;switch(I.type){case o.CLEAR_NOTIFICATIONS:return(0,t.default)({},n,{notifications:[]});case o.HIDE_NOTIFICATION:return(0,t.default)({},n,{notifications:n.notifications.filter(function(t){return t.uid!==I.uid})});case o.SET_NOTIFICATIONS_ENABLED:return(0,t.default)({},n,{enabled:I.enabled});case o.SHOW_NOTIFICATION:return(0,t.default)({},n,{notifications:u(n.notifications,{component:I.component,props:I.props,timeout:I.timeout,uid:I.uid})})}return n})},746,[3,54,539,607,608]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.SET_LOADABLE_AVATAR_URL=e.HIDDEN_PARTICIPANT_LEFT=e.HIDDEN_PARTICIPANT_JOINED=e.PIN_PARTICIPANT=e.PARTICIPANT_UPDATED=e.PARTICIPANT_LEFT=e.PARTICIPANT_KICKED=e.PARTICIPANT_JOINED=e.PARTICIPANT_ID_CHANGED=e.PARTICIPANT_DISPLAY_NAME_CHANGED=e.MUTE_REMOTE_PARTICIPANT=e.KICK_PARTICIPANT=e.DOMINANT_SPEAKER_CHANGED=void 0;e.DOMINANT_SPEAKER_CHANGED='DOMINANT_SPEAKER_CHANGED';e.KICK_PARTICIPANT='KICK_PARTICIPANT';e.MUTE_REMOTE_PARTICIPANT='MUTE_REMOTE_PARTICIPANT';e.PARTICIPANT_DISPLAY_NAME_CHANGED='PARTICIPANT_DISPLAY_NAME_CHANGED';e.PARTICIPANT_ID_CHANGED='PARTICIPANT_ID_CHANGED';e.PARTICIPANT_JOINED='PARTICIPANT_JOINED';e.PARTICIPANT_KICKED='PARTICIPANT_KICKED';e.PARTICIPANT_LEFT='PARTICIPANT_LEFT';e.PARTICIPANT_UPDATED='PARTICIPANT_UPDATED';e.PIN_PARTICIPANT='PIN_PARTICIPANT';e.HIDDEN_PARTICIPANT_JOINED='HIDDEN_PARTICIPANT_JOINED';e.HIDDEN_PARTICIPANT_LEFT='HIDDEN_PARTICIPANT_LEFT';e.SET_LOADABLE_AVATAR_URL='SET_LOADABLE_AVATAR_URL'},747,[]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.getFirstLoadableAvatarUrl=function(t){var n=(0,l.createDeferred)(),u=n.promise.then(function(){return E(t)}).then(function(t){if(A.length){var n=A.shift();n.resolve()}return t});A.length?A.push(n):n.resolve();return u},e.getLocalParticipant=y,e.getNormalizedDisplayName=function(t){if(!t||!t.trim())return;return t.trim().substring(0,p.MAX_DISPLAY_NAME_LENGTH)},e.getParticipantById=I,e.getParticipantCount=function(t){return h(t).length},e.getParticipantCountWithFake=function(t){return T(t).length},e.getParticipantDisplayName=function(t,n){var u=I(t,n);if(u){if(u.name)return u.name;if(u.local)return'object'==typeof interfaceConfig?interfaceConfig.DEFAULT_LOCAL_DISPLAY_NAME:'me'}return'object'==typeof interfaceConfig?interfaceConfig.DEFAULT_REMOTE_DISPLAY_NAME:'Fellow Jitster'},e.getParticipantPresenceStatus=function(t,n){if(!n)return;var u=I(t,n);if(!u)return;return u.presence},e.getParticipants=h,e.getPinnedParticipant=function(t){return T(t).find(function(t){return t.pinned})},e.isEveryoneModerator=function(t){for(var n=T(t),u=Array.isArray(n),o=0,n=u?n:n["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var c;if(u){if(o>=n.length)break;c=n[o++]}else{if((o=n.next()).done)break;c=o.value}var f=c;if(f.role!==p.PARTICIPANT_ROLE.MODERATOR)return!1}return!0},e.isIconUrl=function(t){return Boolean(t)&&'object'==typeof t},e.isLocalParticipantModerator=function(t){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],u=(0,o.toState)(t),c=y(u);if(!c)return!1;return c.role===p.PARTICIPANT_ROLE.MODERATOR&&(n||!u['features/base/config'].enableUserRolesBasedOnToken||!u['features/base/jwt'].isGuest)},e.shouldRenderParticipantVideo=function(t,n){var u=(0,o.toState)(t),l=I(u,n);if(!l)return!1;var p=(0,s.getTrackByMediaTypeAndParticipant)(u['features/base/tracks'],f.MEDIA_TYPE.VIDEO,n);if(!(0,f.shouldRenderVideoTrack)(p,!1))return!1;if((l.connectionStatus||c.JitsiParticipantConnectionStatus.ACTIVE)!==c.JitsiParticipantConnectionStatus.ACTIVE)return!1;if(!u['features/base/audio-only'].enabled)return!0;var v=u['features/video-layout'].screenShares||[],A=u['features/large-video'].participantId;return l.id===A&&v.includes(l.id)};var n=t(r(d[1])),u=r(d[2]),o=r(d[3]),c=r(d[4]),f=r(d[5]),s=r(d[6]),l=r(d[7]),p=r(d[8]),v=r(d[9]),A=[],P=new Map,b=[function(t){return t&&t.isJigasi?p.JIGASI_PARTICIPANT_ICON:null},function(t){return t&&t.avatarURL?t.avatarURL:null},function(t){return t&&t.email?(0,u.getGravatarURL)(t.email):null}];function y(t){return T(t).find(function(t){return t.local})}function I(t,n){return T(t).find(function(t){return t.id===n})}function h(t){return T(t).filter(function(t){return!t.isFakeParticipant})}function T(t){return Array.isArray(t)?t:(0,o.toState)(t)['features/base/participants']||[]}function E(t){var u,o,c;return n.default.async(function(f){for(;;)switch(f.prev=f.next){case 0:u=0;case 1:if(!(u1&&void 0!==arguments[1]?arguments[1]:{urlPrefix:'https://abotars.jitsi.net/meeple/',urlSuffix:''},c=v.urlPrefix,s=v.urlSuffix;return f(o)||u(n||l,c,s)},e.getGravatarURL=f;var n=t(r(d[1]));function u(t,u,f){return u+n.default.hex(t.trim().toLowerCase())+f}function f(t){if(o(t))return u(t,'https://www.gravatar.com/avatar/','?d=404&size=200')}function o(t){return t&&t.indexOf('@')>0}},749,[3,750]); -__d(function(g,r,i,a,m,e,d){!(function(){'use strict';var ERROR='input is invalid type',WINDOW='object'==typeof window,root=WINDOW?window:{};root.JS_MD5_NO_WINDOW&&(WINDOW=!1);var WEB_WORKER=!WINDOW&&'object'==typeof self,NODE_JS=!root.JS_MD5_NO_NODE_JS&&'object'==typeof process&&process.versions&&process.versions.node;NODE_JS?root=g:WEB_WORKER&&(root=self);var COMMON_JS=!root.JS_MD5_NO_COMMON_JS&&'object'==typeof m&&m.exports,AMD='function'==typeof define&&define.amd,ARRAY_BUFFER=!root.JS_MD5_NO_ARRAY_BUFFER&&'undefined'!=typeof ArrayBuffer,HEX_CHARS='0123456789abcdef'.split(''),EXTRA=[128,32768,8388608,-2147483648],SHIFT=[0,8,16,24],OUTPUT_TYPES=['hex','array','digest','buffer','arrayBuffer','base64'],BASE64_ENCODE_CHAR='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split(''),blocks=[],buffer8;if(ARRAY_BUFFER){var buffer=new ArrayBuffer(68);buffer8=new Uint8Array(buffer),blocks=new Uint32Array(buffer)}!root.JS_MD5_NO_NODE_JS&&Array.isArray||(Array.isArray=function(t){return'[object Array]'===Object.prototype.toString.call(t)}),!ARRAY_BUFFER||!root.JS_MD5_NO_ARRAY_BUFFER_IS_VIEW&&ArrayBuffer.isView||(ArrayBuffer.isView=function(t){return'object'==typeof t&&t.buffer&&t.buffer.constructor===ArrayBuffer});var createOutputMethod=function(t){return function(s){return new Md5(!0).update(s)[t]()}},createMethod=function(){var t=createOutputMethod('hex');NODE_JS&&(t=nodeWrap(t)),t.create=function(){return new Md5},t.update=function(s){return t.create().update(s)};for(var s=0;s>2]|=t[n]<>6,R[f++]=128|63&h):h<55296||h>=57344?(R[f++]=224|h>>12,R[f++]=128|h>>6&63,R[f++]=128|63&h):(h=65536+((1023&h)<<10|1023&t.charCodeAt(++n)),R[f++]=240|h>>18,R[f++]=128|h>>12&63,R[f++]=128|h>>6&63,R[f++]=128|63&h);else for(f=this.start;n>2]|=h<>2]|=(192|h>>6)<>2]|=(128|63&h)<=57344?(u[f>>2]|=(224|h>>12)<>2]|=(128|h>>6&63)<>2]|=(128|63&h)<>2]|=(240|h>>18)<>2]|=(128|h>>12&63)<>2]|=(128|h>>6&63)<>2]|=(128|63&h)<=64?(this.start=f-64,this.hash(),this.hashed=!0):this.start=f}return this.bytes>4294967295&&(this.hBytes+=this.bytes/4294967296<<0,this.bytes=this.bytes%4294967296),this}},Md5.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var t=this.blocks,s=this.lastByteIndex;t[s>>2]|=EXTRA[3&s],s>=56&&(this.hashed||this.hash(),t[0]=t[16],t[16]=t[1]=t[2]=t[3]=t[4]=t[5]=t[6]=t[7]=t[8]=t[9]=t[10]=t[11]=t[12]=t[13]=t[14]=t[15]=0),t[14]=this.bytes<<3,t[15]=this.hBytes<<3|this.bytes>>>29,this.hash()}},Md5.prototype.hash=function(){var t,s,o,h,f,n,A=this.blocks;this.first?s=((s=((t=((t=A[0]-680876937)<<7|t>>>25)-271733879<<0)^(o=((o=(-271733879^(h=((h=(-1732584194^2004318071&t)+A[1]-117830708)<<12|h>>>20)+t<<0)&(-271733879^t))+A[2]-1126478375)<<17|o>>>15)+h<<0)&(h^t))+A[3]-1316259209)<<22|s>>>10)+o<<0:(t=this.h0,s=this.h1,o=this.h2,s=((s+=((t=((t+=((h=this.h3)^s&(o^h))+A[0]-680876936)<<7|t>>>25)+s<<0)^(o=((o+=(s^(h=((h+=(o^t&(s^o))+A[1]-389564586)<<12|h>>>20)+t<<0)&(t^s))+A[2]+606105819)<<17|o>>>15)+h<<0)&(h^t))+A[3]-1044525330)<<22|s>>>10)+o<<0),s=((s+=((t=((t+=(h^s&(o^h))+A[4]-176418897)<<7|t>>>25)+s<<0)^(o=((o+=(s^(h=((h+=(o^t&(s^o))+A[5]+1200080426)<<12|h>>>20)+t<<0)&(t^s))+A[6]-1473231341)<<17|o>>>15)+h<<0)&(h^t))+A[7]-45705983)<<22|s>>>10)+o<<0,s=((s+=((t=((t+=(h^s&(o^h))+A[8]+1770035416)<<7|t>>>25)+s<<0)^(o=((o+=(s^(h=((h+=(o^t&(s^o))+A[9]-1958414417)<<12|h>>>20)+t<<0)&(t^s))+A[10]-42063)<<17|o>>>15)+h<<0)&(h^t))+A[11]-1990404162)<<22|s>>>10)+o<<0,s=((s+=((t=((t+=(h^s&(o^h))+A[12]+1804603682)<<7|t>>>25)+s<<0)^(o=((o+=(s^(h=((h+=(o^t&(s^o))+A[13]-40341101)<<12|h>>>20)+t<<0)&(t^s))+A[14]-1502002290)<<17|o>>>15)+h<<0)&(h^t))+A[15]+1236535329)<<22|s>>>10)+o<<0,s=((s+=((h=((h+=(s^o&((t=((t+=(o^h&(s^o))+A[1]-165796510)<<5|t>>>27)+s<<0)^s))+A[6]-1069501632)<<9|h>>>23)+t<<0)^t&((o=((o+=(t^s&(h^t))+A[11]+643717713)<<14|o>>>18)+h<<0)^h))+A[0]-373897302)<<20|s>>>12)+o<<0,s=((s+=((h=((h+=(s^o&((t=((t+=(o^h&(s^o))+A[5]-701558691)<<5|t>>>27)+s<<0)^s))+A[10]+38016083)<<9|h>>>23)+t<<0)^t&((o=((o+=(t^s&(h^t))+A[15]-660478335)<<14|o>>>18)+h<<0)^h))+A[4]-405537848)<<20|s>>>12)+o<<0,s=((s+=((h=((h+=(s^o&((t=((t+=(o^h&(s^o))+A[9]+568446438)<<5|t>>>27)+s<<0)^s))+A[14]-1019803690)<<9|h>>>23)+t<<0)^t&((o=((o+=(t^s&(h^t))+A[3]-187363961)<<14|o>>>18)+h<<0)^h))+A[8]+1163531501)<<20|s>>>12)+o<<0,s=((s+=((h=((h+=(s^o&((t=((t+=(o^h&(s^o))+A[13]-1444681467)<<5|t>>>27)+s<<0)^s))+A[2]-51403784)<<9|h>>>23)+t<<0)^t&((o=((o+=(t^s&(h^t))+A[7]+1735328473)<<14|o>>>18)+h<<0)^h))+A[12]-1926607734)<<20|s>>>12)+o<<0,s=((s+=((n=(h=((h+=((f=s^o)^(t=((t+=(f^h)+A[5]-378558)<<4|t>>>28)+s<<0))+A[8]-2022574463)<<11|h>>>21)+t<<0)^t)^(o=((o+=(n^s)+A[11]+1839030562)<<16|o>>>16)+h<<0))+A[14]-35309556)<<23|s>>>9)+o<<0,s=((s+=((n=(h=((h+=((f=s^o)^(t=((t+=(f^h)+A[1]-1530992060)<<4|t>>>28)+s<<0))+A[4]+1272893353)<<11|h>>>21)+t<<0)^t)^(o=((o+=(n^s)+A[7]-155497632)<<16|o>>>16)+h<<0))+A[10]-1094730640)<<23|s>>>9)+o<<0,s=((s+=((n=(h=((h+=((f=s^o)^(t=((t+=(f^h)+A[13]+681279174)<<4|t>>>28)+s<<0))+A[0]-358537222)<<11|h>>>21)+t<<0)^t)^(o=((o+=(n^s)+A[3]-722521979)<<16|o>>>16)+h<<0))+A[6]+76029189)<<23|s>>>9)+o<<0,s=((s+=((n=(h=((h+=((f=s^o)^(t=((t+=(f^h)+A[9]-640364487)<<4|t>>>28)+s<<0))+A[12]-421815835)<<11|h>>>21)+t<<0)^t)^(o=((o+=(n^s)+A[15]+530742520)<<16|o>>>16)+h<<0))+A[2]-995338651)<<23|s>>>9)+o<<0,s=((s+=((h=((h+=(s^((t=((t+=(o^(s|~h))+A[0]-198630844)<<6|t>>>26)+s<<0)|~o))+A[7]+1126891415)<<10|h>>>22)+t<<0)^((o=((o+=(t^(h|~s))+A[14]-1416354905)<<15|o>>>17)+h<<0)|~t))+A[5]-57434055)<<21|s>>>11)+o<<0,s=((s+=((h=((h+=(s^((t=((t+=(o^(s|~h))+A[12]+1700485571)<<6|t>>>26)+s<<0)|~o))+A[3]-1894986606)<<10|h>>>22)+t<<0)^((o=((o+=(t^(h|~s))+A[10]-1051523)<<15|o>>>17)+h<<0)|~t))+A[1]-2054922799)<<21|s>>>11)+o<<0,s=((s+=((h=((h+=(s^((t=((t+=(o^(s|~h))+A[8]+1873313359)<<6|t>>>26)+s<<0)|~o))+A[15]-30611744)<<10|h>>>22)+t<<0)^((o=((o+=(t^(h|~s))+A[6]-1560198380)<<15|o>>>17)+h<<0)|~t))+A[13]+1309151649)<<21|s>>>11)+o<<0,s=((s+=((h=((h+=(s^((t=((t+=(o^(s|~h))+A[4]-145523070)<<6|t>>>26)+s<<0)|~o))+A[11]-1120210379)<<10|h>>>22)+t<<0)^((o=((o+=(t^(h|~s))+A[2]+718787259)<<15|o>>>17)+h<<0)|~t))+A[9]-343485551)<<21|s>>>11)+o<<0,this.first?(this.h0=t+1732584193<<0,this.h1=s-271733879<<0,this.h2=o-1732584194<<0,this.h3=h+271733878<<0,this.first=!1):(this.h0=this.h0+t<<0,this.h1=this.h1+s<<0,this.h2=this.h2+o<<0,this.h3=this.h3+h<<0)},Md5.prototype.hex=function(){this.finalize();var t=this.h0,s=this.h1,o=this.h2,h=this.h3;return HEX_CHARS[t>>4&15]+HEX_CHARS[15&t]+HEX_CHARS[t>>12&15]+HEX_CHARS[t>>8&15]+HEX_CHARS[t>>20&15]+HEX_CHARS[t>>16&15]+HEX_CHARS[t>>28&15]+HEX_CHARS[t>>24&15]+HEX_CHARS[s>>4&15]+HEX_CHARS[15&s]+HEX_CHARS[s>>12&15]+HEX_CHARS[s>>8&15]+HEX_CHARS[s>>20&15]+HEX_CHARS[s>>16&15]+HEX_CHARS[s>>28&15]+HEX_CHARS[s>>24&15]+HEX_CHARS[o>>4&15]+HEX_CHARS[15&o]+HEX_CHARS[o>>12&15]+HEX_CHARS[o>>8&15]+HEX_CHARS[o>>20&15]+HEX_CHARS[o>>16&15]+HEX_CHARS[o>>28&15]+HEX_CHARS[o>>24&15]+HEX_CHARS[h>>4&15]+HEX_CHARS[15&h]+HEX_CHARS[h>>12&15]+HEX_CHARS[h>>8&15]+HEX_CHARS[h>>20&15]+HEX_CHARS[h>>16&15]+HEX_CHARS[h>>28&15]+HEX_CHARS[h>>24&15]},Md5.prototype.toString=Md5.prototype.hex,Md5.prototype.digest=function(){this.finalize();var t=this.h0,s=this.h1,o=this.h2,h=this.h3;return[255&t,t>>8&255,t>>16&255,t>>24&255,255&s,s>>8&255,s>>16&255,s>>24&255,255&o,o>>8&255,o>>16&255,o>>24&255,255&h,h>>8&255,h>>16&255,h>>24&255]},Md5.prototype.array=Md5.prototype.digest,Md5.prototype.arrayBuffer=function(){this.finalize();var t=new ArrayBuffer(16),s=new Uint32Array(t);return s[0]=this.h0,s[1]=this.h1,s[2]=this.h2,s[3]=this.h3,t},Md5.prototype.buffer=Md5.prototype.arrayBuffer,Md5.prototype.base64=function(){for(var t,s,o,h='',f=this.array(),n=0;n<15;)t=f[n++],s=f[n++],o=f[n++],h+=BASE64_ENCODE_CHAR[t>>>2]+BASE64_ENCODE_CHAR[63&(t<<4|s>>>4)]+BASE64_ENCODE_CHAR[63&(s<<2|o>>>6)]+BASE64_ENCODE_CHAR[63&o];return t=f[n],h+=BASE64_ENCODE_CHAR[t>>>2]+BASE64_ENCODE_CHAR[t<<4&63]+'=='};var exports=createMethod();COMMON_JS?m.exports=exports:(root.md5=exports,AMD&&define(function(){return exports}))})()},750,[]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})});var u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}})});var o=r(d[3]);Object.keys(o).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return o[t]}})});var c=r(d[4]);Object.keys(c).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return c[t]}})}),r(d[5]),r(d[6])},751,[752,753,755,754,901,902,908]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.setAudioAvailable=function(n){return{type:t.SET_AUDIO_AVAILABLE,available:n}},e.setAudioMuted=function(n){var u=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return{type:t.SET_AUDIO_MUTED,ensureTrack:u,muted:n}},e.setCameraFacingMode=function(n){return{type:t.SET_CAMERA_FACING_MODE,cameraFacingMode:n}},e.setVideoAvailable=function(n){return{type:t.SET_VIDEO_AVAILABLE,available:n}},e.setVideoMuted=function(u){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n.VIDEO_MUTISM_AUTHORITY.USER,_=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(n,A){var E=A()['features/base/media'].video.muted,c=u?E|o:E&~o;return n({type:t.SET_VIDEO_MUTED,ensureTrack:_,muted:c})}},e.storeVideoTransform=function(n,u){return{type:t.STORE_VIDEO_TRANSFORM,streamId:n,transform:u}},e.toggleCameraFacingMode=function(){return{type:t.TOGGLE_CAMERA_FACING_MODE}};var t=r(d[0]),n=r(d[1])},752,[753,754]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.TOGGLE_CAMERA_FACING_MODE=e.STORE_VIDEO_TRANSFORM=e.SET_VIDEO_MUTED=e.SET_VIDEO_AVAILABLE=e.SET_CAMERA_FACING_MODE=e.SET_AUDIO_AVAILABLE=e.SET_AUDIO_MUTED=void 0;e.SET_AUDIO_MUTED='SET_AUDIO_MUTED';e.SET_AUDIO_AVAILABLE='SET_AUDIO_AVAILABLE';e.SET_CAMERA_FACING_MODE='SET_CAMERA_FACING_MODE';e.SET_VIDEO_AVAILABLE='SET_VIDEO_AVAILABLE';e.SET_VIDEO_MUTED='SET_VIDEO_MUTED';e.STORE_VIDEO_TRANSFORM='STORE_VIDEO_TRANSFORM';e.TOGGLE_CAMERA_FACING_MODE='TOGGLE_CAMERA_FACING_MODE'},753,[]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.VIDEO_TYPE=e.VIDEO_MUTISM_AUTHORITY=e.MEDIA_TYPE=e.CAMERA_FACING_MODE=void 0;e.CAMERA_FACING_MODE={ENVIRONMENT:'environment',USER:'user'};e.MEDIA_TYPE={AUDIO:'audio',VIDEO:'video'};e.VIDEO_MUTISM_AUTHORITY={AUDIO_ONLY:1,BACKGROUND:2,USER:4};e.VIDEO_TYPE={CAMERA:'camera',DESKTOP:'desktop'}},754,[]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},755,[756]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},756,[757]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"Audio",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(e,"Video",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(e,"VideoTrack",{enumerable:!0,get:function(){return o.default}});var n=t(r(d[1])),u=t(r(d[2])),o=t(r(d[3]))},757,[3,758,762,798]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])),n=t(r(d[2])),l=t(r(d[3])),o=t(r(d[4])),s=t(r(d[5])),f=t(r(d[6])),h=t(r(d[7])),p=t(r(d[8])),c=(function(t){function c(){return(0,u.default)(this,c),(0,l.default)(this,(0,o.default)(c).apply(this,arguments))}return(0,f.default)(c,t),(0,n.default)(c,[{key:"_soundLoadedCallback",value:function(t){t?p.default.error('Failed to load sound',t):this.setAudioElementImpl(this._sound)}},{key:"componentDidMount",value:function(){this._sound=this.props.src?new h.default(this.props.src,null,this._soundLoadedCallback.bind(this)):null}},{key:"componentWillUnmount",value:function(){this._sound&&(this._sound.release(),this._sound=null,this.setAudioElementImpl(null))}},{key:"play",value:function(){this._sound&&(this._sound.setNumberOfLoops(this.props.loop?-1:0),(0,s.default)((0,o.default)(c.prototype),"play",this).call(this))}},{key:"render",value:function(){return null}},{key:"stop",value:function(){this._sound&&this._sound.stop()}}]),c})(t(r(d[9])).default);e.default=c},758,[3,4,5,6,9,47,10,759,760,761]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=t.NativeModules.RNSound,o=n.IsAndroid,s=n.IsWindows,u=r(d[1]),h=new t.NativeEventEmitter(n),p=0;function l(t,l,y,_){var c=this,f=u(t);f?(this._filename=f.uri,y=l):(this._filename=l?l+'/'+t:t,!o||l||/^(\/|http(s?)|asset)/.test(t)||(this._filename=t.toLowerCase().replace(/\.[^.]+$/,''))),this.registerOnPlay=function(){var t=this;null==this.onPlaySubscription?s||(this.onPlaySubscription=h.addListener('onPlayChange',function(n){var o=n.isPlaying;n.playerKey===t._key&&(t._playing=!!o)})):console.warn('On Play change event listener is already registered')},this._loaded=!1,this._key=p++,this._playing=!1,this._duration=-1,this._numberOfChannels=-1,this._volume=1,this._pan=0,this._numberOfLoops=0,this._speed=1,n.prepare(this._filename,this._key,_||{},function(t,n){n&&('number'==typeof n.duration&&(c._duration=n.duration),'number'==typeof n.numberOfChannels&&(c._numberOfChannels=n.numberOfChannels)),null===t&&(c._loaded=!0,c.registerOnPlay()),y&&y(t,n)})}l.prototype.isLoaded=function(){return this._loaded},l.prototype.play=function(t){return this._loaded?n.play(this._key,function(n){return t&&t(n)}):t&&t(!1),this},l.prototype.pause=function(t){var o=this;return this._loaded&&n.pause(this._key,function(){o._playing=!1,t&&t()}),this},l.prototype.stop=function(t){var o=this;return this._loaded&&n.stop(this._key,function(){o._playing=!1,t&&t()}),this},l.prototype.reset=function(){return this._loaded&&o&&(n.reset(this._key),this._playing=!1),this},l.prototype.release=function(){return this._loaded&&(n.release(this._key),this._loaded=!1,s||null!=this.onPlaySubscription&&(this.onPlaySubscription.remove(),this.onPlaySubscription=null)),this},l.prototype.getDuration=function(){return this._duration},l.prototype.getNumberOfChannels=function(){return this._numberOfChannels},l.prototype.getVolume=function(){return this._volume},l.prototype.setVolume=function(t){return this._volume=t,this._loaded&&(o||s?n.setVolume(this._key,t,t):n.setVolume(this._key,t)),this},l.prototype.getSystemVolume=function(t){return s||n.getSystemVolume(t),this},l.prototype.setSystemVolume=function(t){return o&&n.setSystemVolume(t),this},l.prototype.getPan=function(){return this._pan},l.prototype.setPan=function(t){return this._loaded&&n.setPan(this._key,this._pan=t),this},l.prototype.getNumberOfLoops=function(){return this._numberOfLoops},l.prototype.setNumberOfLoops=function(t){return this._numberOfLoops=t,this._loaded&&(o||s?n.setLooping(this._key,!!t):n.setNumberOfLoops(this._key,t)),this},l.prototype.setSpeed=function(t){return this._speed=t,this._loaded&&(s||n.setSpeed(this._key,t)),this},l.prototype.getCurrentTime=function(t){this._loaded&&n.getCurrentTime(this._key,t)},l.prototype.setCurrentTime=function(t){return this._loaded&&n.setCurrentTime(this._key,t),this},l.prototype.setSpeakerphoneOn=function(t){o&&n.setSpeakerphoneOn(this._key,t)},l.prototype.setCategory=function(t){l.setCategory(t,!1)},l.prototype.isPlaying=function(){return this._playing},l.enable=function(t){n.enable(t)},l.enableInSilenceMode=function(t){o||s||n.enableInSilenceMode(t)},l.setActive=function(t){o||s||n.setActive(t)},l.setCategory=function(t){var o=arguments.length>1&&void 0!==arguments[1]&&arguments[1];s||n.setCategory(t,o)},l.setMode=function(t){o||s||n.setMode(t)},l.setSpeakerPhone=function(t){o||s||n.setSpeakerPhone(t)},l.MAIN_BUNDLE=n.MainBundlePath,l.DOCUMENT=n.NSDocumentDirectory,l.LIBRARY=n.NSLibraryDirectory,l.CACHES=n.NSCachesDirectory,m.exports=l},759,[17,177]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=(0,r(d[0]).getLogger)('features/base/media');e.default=t},760,[581]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=t(r(d[1])),n=t(r(d[2])),u=t(r(d[3])),o=t(r(d[4])),s=t(r(d[5])),f=t(r(d[6])),p=r(d[7]),h=t(r(d[8])),I=(function(t){function p(t){var n;return(0,l.default)(this,p),(n=(0,u.default)(this,(0,o.default)(p).call(this,t))).setAudioElementImpl=n.setAudioElementImpl.bind((0,f.default)((0,f.default)(n))),n}return(0,s.default)(p,t),(0,n.default)(p,[{key:"pause",value:function(){this._audioElementImpl&&this._audioElementImpl.pause()}},{key:"play",value:function(){this._audioElementImpl&&this._audioElementImpl.play()}},{key:"setAudioElementImpl",value:function(t){this._audioElementImpl=t;var l=this.props.setRef;'function'==typeof l&&l(t?this:null)}},{key:"setSinkId",value:function(t){this._audioElementImpl&&'function'==typeof this._audioElementImpl.setSinkId&&this._audioElementImpl.setSinkId(t).catch(function(t){return h.default.error('Error setting sink',t)})}},{key:"stop",value:function(){this._audioElementImpl&&this._audioElementImpl.stop()}}]),p})(p.Component);e.default=I},761,[3,4,5,6,9,10,8,13,760]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=n(r(d[2])),l=n(r(d[3])),u=n(r(d[4])),s=n(r(d[5])),f=n(r(d[6])),c=t(r(d[7])),p=r(d[8]),v=r(d[9]),h=n(r(d[10])),y=n(r(d[11])),b=(function(t){function n(){return(0,o.default)(this,n),(0,u.default)(this,(0,s.default)(n).apply(this,arguments))}return(0,f.default)(n,t),(0,l.default)(n,[{key:"componentDidMount",value:function(){var t=this.props.onPlaying;t&&t()}},{key:"render",value:function(){var t=this.props,n=t.onPress,o=t.stream,l=t.zoomEnabled;if(o){var u=h.default.video,s=l?'contain':u&&u.objectFit||'cover',f=c.default.createElement(p.RTCView,{mirror:this.props.mirror,objectFit:s,streamURL:o.toURL(),style:u,zOrder:this.props.zOrder});return l?c.default.createElement(y.default,{enabled:l,onPress:n,streamId:o.id,style:u},f):c.default.createElement(v.Pressable,{onPress:n},f)}return null}}]),n})(c.Component);e.default=b},762,[2,3,4,5,6,9,10,13,763,394,796,797]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"RTCPeerConnection",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(e,"RTCIceCandidate",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(e,"RTCSessionDescription",{enumerable:!0,get:function(){return f.default}}),Object.defineProperty(e,"RTCView",{enumerable:!0,get:function(){return c.default}}),Object.defineProperty(e,"MediaStream",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(e,"MediaStreamTrack",{enumerable:!0,get:function(){return l.default}}),Object.defineProperty(e,"mediaDevices",{enumerable:!0,get:function(){return b.default}}),Object.defineProperty(e,"permissions",{enumerable:!0,get:function(){return p.default}});var n=t(r(d[1])),u=t(r(d[2])),f=t(r(d[3])),c=t(r(d[4])),o=t(r(d[5])),l=t(r(d[6])),b=t(r(d[7])),p=t(r(d[8]))},763,[3,764,783,782,787,769,775,792,795]); -__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]),t=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=t(r(d[2])),c=t(r(d[3])),s=t(r(d[4])),u=t(r(d[5])),f=t(r(d[6])),l=t(r(d[7])),v=t(r(d[8])),h=r(d[9]),p=t(r(d[10])),C=t(r(d[11])),_=(t(r(d[12])),t(r(d[13]))),S=t(r(d[14])),E=t(r(d[15])),I=t(r(d[16])),w=t(r(d[17])),k=t(r(d[18])),y=t(r(d[19])),D=n(r(d[20])),O=h.NativeModules.WebRTCModule,L={offerToReceiveAudio:!0,offerToReceiveVideo:!0},T=0,b=(function(n){function t(n){var o;return(0,c.default)(this,t),(o=(0,u.default)(this,(0,f.default)(t).call(this))).signalingState='stable',o.iceGatheringState='new',o.iceConnectionState='new',o._localStreams=[],o._remoteStreams=[],o._dataChannelIds=new Set,o._peerConnectionId=T++,O.peerConnectionInit(n,o._peerConnectionId),o._registerEvents(),o}return(0,l.default)(t,n),(0,s.default)(t,[{key:"addStream",value:function(n){-1===this._localStreams.indexOf(n)&&(O.peerConnectionAddStream(n._reactTag,this._peerConnectionId),this._localStreams.push(n))}},{key:"removeStream",value:function(n){var t=this._localStreams.indexOf(n);-1!==t&&(this._localStreams.splice(t,1),O.peerConnectionRemoveStream(n._reactTag,this._peerConnectionId))}},{key:"createOffer",value:function(){var n=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:L;return new Promise(function(o,c){O.peerConnectionCreateOffer(n._peerConnectionId,D.normalizeOfferAnswerOptions(t),function(n,t){n?o(new I.default(t)):c(t)})})}},{key:"createAnswer",value:function(){var n=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return new Promise(function(o,c){O.peerConnectionCreateAnswer(n._peerConnectionId,D.normalizeOfferAnswerOptions(t),function(n,t){n?o(new I.default(t)):c(t)})})}},{key:"setConfiguration",value:function(n){O.peerConnectionSetConfiguration(n,this._peerConnectionId)}},{key:"setLocalDescription",value:function(n){var t=this;return new Promise(function(o,c){O.peerConnectionSetLocalDescription(n.toJSON?n.toJSON():n,t._peerConnectionId,function(s,u){s?(t.localDescription=n,o()):c(u)})})}},{key:"setRemoteDescription",value:function(n){var t=this;return new Promise(function(o,c){O.peerConnectionSetRemoteDescription(n.toJSON?n.toJSON():n,t._peerConnectionId,function(s,u){s?(t.remoteDescription=n,o()):c(u)})})}},{key:"addIceCandidate",value:function(n){var t=this;return new Promise(function(o,c){O.peerConnectionAddICECandidate(n.toJSON?n.toJSON():n,t._peerConnectionId,function(n){n?o():c(new Error('Failed to add ICE candidate'))})})}},{key:"getStats",value:function(n){var t=this;return new Promise(function(o,c){O.peerConnectionGetStats(n&&n.id||'',t._peerConnectionId,function(n,t){if(n)try{var s=JSON.parse(t);o(s)}catch(n){c(n)}else c(new Error(t))})})}},{key:"getLocalStreams",value:function(){return this._localStreams.slice()}},{key:"getRemoteStreams",value:function(){return this._remoteStreams.slice()}},{key:"close",value:function(){O.peerConnectionClose(this._peerConnectionId)}},{key:"_getTrack",value:function(n,t){var o=this._remoteStreams.find(function(t){return t._reactTag===n});return o&&o._tracks.find(function(n){return n.id===t})}},{key:"_unregisterEvents",value:function(){this._subscriptions.forEach(function(n){return n.remove()}),this._subscriptions=[]}},{key:"_registerEvents",value:function(){var n=this;this._subscriptions=[h.DeviceEventEmitter.addListener('peerConnectionOnRenegotiationNeeded',function(t){t.id===n._peerConnectionId&&n.dispatchEvent(new y.default('negotiationneeded'))}),h.DeviceEventEmitter.addListener('peerConnectionIceConnectionChanged',function(t){t.id===n._peerConnectionId&&(n.iceConnectionState=t.iceConnectionState,n.dispatchEvent(new y.default('iceconnectionstatechange')),'closed'===t.iceConnectionState&&n._unregisterEvents())}),h.DeviceEventEmitter.addListener('peerConnectionSignalingStateChanged',function(t){t.id===n._peerConnectionId&&(n.signalingState=t.signalingState,n.dispatchEvent(new y.default('signalingstatechange')))}),h.DeviceEventEmitter.addListener('peerConnectionAddedStream',function(t){if(t.id===n._peerConnectionId){var o=new p.default(t);n._remoteStreams.push(o),n.dispatchEvent(new C.default('addstream',{stream:o}))}}),h.DeviceEventEmitter.addListener('peerConnectionRemovedStream',function(t){if(t.id===n._peerConnectionId){var o=n._remoteStreams.find(function(n){return n._reactTag===t.streamId});if(o){var c=n._remoteStreams.indexOf(o);-1!==c&&n._remoteStreams.splice(c,1)}n.dispatchEvent(new C.default('removestream',{stream:o}))}}),h.DeviceEventEmitter.addListener('mediaStreamTrackMuteChanged',function(t){if(t.peerConnectionId===n._peerConnectionId){var o=n._getTrack(t.streamReactTag,t.trackId);if(o){o.muted=t.muted;var c=t.muted?'mute':'unmute';o.dispatchEvent(new _.default(c,{track:o}))}}}),h.DeviceEventEmitter.addListener('peerConnectionGotICECandidate',function(t){if(t.id===n._peerConnectionId){var o=new w.default(t.candidate),c=new k.default('icecandidate',{candidate:o});n.dispatchEvent(c)}}),h.DeviceEventEmitter.addListener('peerConnectionIceGatheringChanged',function(t){t.id===n._peerConnectionId&&(n.iceGatheringState=t.iceGatheringState,'complete'===n.iceGatheringState&&n.dispatchEvent(new k.default('icecandidate',null)),n.dispatchEvent(new y.default('icegatheringstatechange')))}),h.DeviceEventEmitter.addListener('peerConnectionDidOpenDataChannel',function(t){if(t.id===n._peerConnectionId){var o=t.dataChannel,c=o.id;if('number'==typeof c&&-1!==c){var s=new S.default(n._peerConnectionId,o.label,o);n._dataChannelIds.add(c),n.dispatchEvent(new E.default('datachannel',{channel:s}))}}})]}},{key:"createDataChannel",value:function(n,t){var c,s=this._dataChannelIds;if(t&&'id'in t){if('number'!=typeof(c=t.id))throw new TypeError('DataChannel id must be a number: '+c);if(s.has(c))throw new ResourceInUse('DataChannel id already in use: '+c)}else{for(c=0;c<65535&&s.has(c);++c);t=(0,o.default)({id:c},t)}return O.createDataChannel(this._peerConnectionId,n,t),s.add(c),new S.default(this._peerConnectionId,n,t)}}]),t})((0,v.default)(['connectionstatechange','icecandidate','icecandidateerror','iceconnectionstatechange','icegatheringstatechange','negotiationneeded','signalingstatechange','datachannel','addstream','removestream']));e.default=b},764,[2,3,16,4,5,6,9,10,765,17,769,777,775,778,779,781,782,783,784,785,786]); -__d(function(g,r,i,a,m,e,d){"use strict";var t=r(d[0]),n=r(d[1]),l=r(d[2]),o=t.LISTENERS,u=t.CAPTURE,f=t.BUBBLE,c=t.ATTRIBUTE,s=t.newNode,v=n.defineCustomEventTarget,h=l.createEventWrapper,E=l.STOP_IMMEDIATE_PROPAGATION_FLAG,p="undefined"!=typeof window&&void 0!==window.EventTarget,w=m.exports=function t(){if(!(this instanceof t)){if(1===arguments.length&&Array.isArray(arguments[0]))return v(t,arguments[0]);if(arguments.length>0){for(var n=Array(arguments.length),l=0;l=f.length)break;T=f[h++]}else{if((h=f.next()).done)break;T=h.value}var _=T;o.addTrack(_)}}else if(Array.isArray(t)){y.mediaStreamCreate(o.id);var b=t,p=Array.isArray(b),S=0;for(b=p?b:b["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var A;if(p){if(S>=b.length)break;A=b[S++]}else{if((S=b.next()).done)break;A=S.value}var R=A;o.addTrack(R)}}else{if(!('object'==typeof t&&t.streamId&&t.streamReactTag&&t.tracks))throw new TypeError("invalid type: "+typeof t);o.id=t.streamId,o._reactTag=t.streamReactTag;var w=t.tracks,x=Array.isArray(w),C=0;for(w=x?w:w["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var I;if(x){if(C>=w.length)break;I=w[C++]}else{if((C=w.next()).done)break;I=C.value}var M=I;o._tracks.push(new v.default(M))}}return o}return(0,f.default)(s,t),(0,o.default)(s,[{key:"addTrack",value:function(t){-1===this._tracks.indexOf(t)&&(this._tracks.push(t),y.mediaStreamAddTrack(this._reactTag,t.id))}},{key:"removeTrack",value:function(t){var n=this._tracks.indexOf(t);-1!==n&&(this._tracks.splice(n,1),y.mediaStreamRemoveTrack(this._reactTag,t.id))}},{key:"getTracks",value:function(){return this._tracks.slice()}},{key:"getTrackById",value:function(t){return this._tracks.find(function(n){return n.id===t})}},{key:"getAudioTracks",value:function(){return this._tracks.filter(function(t){return'audio'===t.kind})}},{key:"getVideoTracks",value:function(){return this._tracks.filter(function(t){return'video'===t.kind})}},{key:"clone",value:function(){throw new Error('Not implemented.')}},{key:"toURL",value:function(){return this._reactTag}},{key:"release",value:function(){y.mediaStreamRelease(this._reactTag)}}]),s})((0,l.default)(['active','inactive','addtrack','removetrack']));e.default=h},769,[3,4,5,6,9,10,17,765,770,775]); -__d(function(g,r,i,a,m,e,d){var v=r(d[0]),n=r(d[1]),o=n;o.v1=v,o.v4=n,m.exports=o},770,[771,774]); -__d(function(g,r,i,a,m,e,d){var n,o,s=r(d[0]),c=r(d[1]),v=0,l=0;m.exports=function(u,t,f){var k=t&&f||0,q=t||[],w=(u=u||{}).node||n,h=void 0!==u.clockseq?u.clockseq:o;if(null==w||null==h){var _=s();null==w&&(w=n=[1|_[0],_[1],_[2],_[3],_[4],_[5]]),null==h&&(h=o=16383&(_[6]<<8|_[7]))}var p=void 0!==u.msecs?u.msecs:(new Date).getTime(),x=void 0!==u.nsecs?u.nsecs:l+1,C=p-v+(x-l)/1e4;if(C<0&&void 0===u.clockseq&&(h=h+1&16383),(C<0||p>v)&&void 0===u.nsecs&&(x=0),x>=1e4)throw new Error('uuid.v1(): Can\'t create more than 10M uuids/sec');v=p,l=x,o=h;var D=(1e4*(268435455&(p+=122192928e5))+x)%4294967296;q[k++]=D>>>24&255,q[k++]=D>>>16&255,q[k++]=D>>>8&255,q[k++]=255&D;var E=p/4294967296*1e4&268435455;q[k++]=E>>>8&255,q[k++]=255&E,q[k++]=E>>>24&15|16,q[k++]=E>>>16&255,q[k++]=h>>>8|128,q[k++]=255&h;for(var M=0;M<6;++M)q[k+M]=w[M];return t||c(q)}},771,[772,773]); -__d(function(g,r,i,a,m,e,d){var n='undefined'!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||'undefined'!=typeof msCrypto&&'function'==typeof window.msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto);if(n){var t=new Uint8Array(16);m.exports=function(){return n(t),t}}else{var o=new Array(16);m.exports=function(){for(var n,t=0;t<16;t++)0==(3&t)&&(n=4294967296*Math.random()),o[t]=n>>>((3&t)<<3)&255;return o}}},772,[]); -__d(function(g,r,i,a,m,e,d){for(var n=[],t=0;t<256;++t)n[t]=(t+256).toString(16).substr(1);m.exports=function(t,o){var u=o||0,f=n;return[f[t[u++]],f[t[u++]],f[t[u++]],f[t[u++]],'-',f[t[u++]],f[t[u++]],'-',f[t[u++]],f[t[u++]],'-',f[t[u++]],f[t[u++]],'-',f[t[u++]],f[t[u++]],f[t[u++]],f[t[u++]],f[t[u++]],f[t[u++]]].join('')}},773,[]); -__d(function(g,r,i,a,m,e,d){var n=r(d[0]),o=r(d[1]);m.exports=function(t,f,u){var l=f&&u||0;'string'==typeof t&&(f='binary'===t?new Array(16):null,t=null);var v=(t=t||{}).random||(t.rng||n)();if(v[6]=15&v[6]|64,v[8]=63&v[8]|128,f)for(var y=0;y<16;++y)f[l+y]=v[y];return f||o(v)}},774,[772,773]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),o=t(r(d[2])),l=t(r(d[3])),u=t(r(d[4])),s=t(r(d[5])),c=r(d[6]),f=t(r(d[7])),h=(t(r(d[8])),c.NativeModules.WebRTCModule),v=(function(t){function c(t){var o;(0,n.default)(this,c),o=(0,l.default)(this,(0,u.default)(c).call(this));var s=t.readyState.toLowerCase();return o._enabled=t.enabled,o.id=t.id,o.kind=t.kind,o.label=t.label,o.muted=!1,o.readonly=!0,o.remote=t.remote,o.readyState="initializing"===s||"live"===s?"live":"ended",o}return(0,s.default)(c,t),(0,o.default)(c,[{key:"stop",value:function(){h.mediaStreamTrackSetEnabled(this.id,!1),this.readyState='ended'}},{key:"_switchCamera",value:function(){if(this.remote)throw new Error('Not implemented for remote tracks');if('video'!==this.kind)throw new Error('Only implemented for video tracks');h.mediaStreamTrackSwitchCamera(this.id)}},{key:"applyConstraints",value:function(){throw new Error('Not implemented.')}},{key:"clone",value:function(){throw new Error('Not implemented.')}},{key:"getCapabilities",value:function(){throw new Error('Not implemented.')}},{key:"getConstraints",value:function(){throw new Error('Not implemented.')}},{key:"getSettings",value:function(){throw new Error('Not implemented.')}},{key:"release",value:function(){h.mediaStreamTrackRelease(this.id)}},{key:"enabled",get:function(){return this._enabled},set:function(t){t!==this._enabled&&(h.mediaStreamTrackSetEnabled(this.id,!this._enabled),this._enabled=!this._enabled,this.muted=!this._enabled)}}]),c})((0,f.default)(['ended','mute','unmute','overconstrained']));e.default=v},775,[3,4,5,6,9,10,17,765,776]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])),f=t(r(d[2]));e.default=function t(l,n){(0,f.default)(this,t),this.type=l.toString(),(0,u.default)(this,n)}},776,[3,16,4]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])),f=t(r(d[2]));e.default=function t(l,n){(0,f.default)(this,t),this.type=l.toString(),(0,u.default)(this,n)}},777,[3,16,4]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])),f=t(r(d[2]));e.default=function t(l,n){(0,f.default)(this,t),this.type=l.toString(),(0,u.default)(this,n)}},778,[3,16,4]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),o=t(r(d[2])),s=t(r(d[3])),f=t(r(d[4])),u=t(r(d[5])),l=t(r(d[6])),c=r(d[7]),h=t(r(d[8])),y=t(r(d[9])),p=t(r(d[10])),v=t(r(d[11])),b=c.NativeModules.WebRTCModule,_=((function(t){function n(){return(0,o.default)(this,n),(0,s.default)(this,(0,f.default)(n).apply(this,arguments))}(0,u.default)(n,t)})((0,l.default)(Error)),(function(t){function l(t,n,u){var c;return(0,o.default)(this,l),(c=(0,s.default)(this,(0,f.default)(l).call(this))).binaryType='arraybuffer',c.bufferedAmount=0,c.bufferedAmountLowThreshold=0,c.maxPacketLifeTime=null,c.maxRetransmits=null,c.negotiated=!1,c.ordered=!0,c.protocol='',c.readyState='connecting',c._peerConnectionId=t,c.label=n,c.id='id'in u?u.id:-1,c.ordered=!!u.ordered,c.maxPacketLifeTime=u.maxPacketLifeTime,c.maxRetransmits=u.maxRetransmits,c.protocol=u.protocol||'',c.negotiated=!!u.negotiated,c._registerEvents(),c}return(0,u.default)(l,t),(0,n.default)(l,[{key:"send",value:function(t){if('string'!=typeof t){if(ArrayBuffer.isView(t))t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength);else{if(!(t instanceof ArrayBuffer))throw new TypeError('Data must be either string, ArrayBuffer, or ArrayBufferView');t=new Uint8Array(t)}b.dataChannelSend(this._peerConnectionId,this.id,h.default.fromByteArray(t),'binary')}else b.dataChannelSend(this._peerConnectionId,this.id,t,'text')}},{key:"close",value:function(){'closing'!==this.readyState&&'closed'!==this.readyState&&(this.readyState='closing',b.dataChannelClose(this._peerConnectionId,this.id))}},{key:"_unregisterEvents",value:function(){this._subscriptions.forEach(function(t){return t.remove()}),this._subscriptions=[]}},{key:"_registerEvents",value:function(){var t=this;this._subscriptions=[c.DeviceEventEmitter.addListener('dataChannelStateChanged',function(n){n.peerConnectionId===t._peerConnectionId&&n.id===t.id&&(t.readyState=n.state,'open'===t.readyState?t.dispatchEvent(new v.default('open',{channel:t})):'close'===t.readyState&&(t.dispatchEvent(new v.default('close',{channel:t})),t._unregisterEvents()))}),c.DeviceEventEmitter.addListener('dataChannelReceiveMessage',function(n){if(n.peerConnectionId===t._peerConnectionId&&n.id===t.id){var o=n.data;'binary'===n.type&&(o=h.default.toByteArray(n.data).buffer),t.dispatchEvent(new p.default('message',{data:o}))}})]}}]),l})((0,y.default)(['open','message','bufferedamountlow','close','error'])));e.default=_},779,[3,5,4,6,9,10,98,17,126,765,780,781]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])),f=t(r(d[2]));e.default=function t(l,n){(0,f.default)(this,t),this.type=l.toString(),(0,u.default)(this,n)}},780,[3,16,4]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])),f=t(r(d[2]));e.default=function t(l,n){(0,f.default)(this,t),this.type=l.toString(),(0,u.default)(this,n)}},781,[3,16,4]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])),s=t(r(d[2])),n=(function(){function t(s){(0,u.default)(this,t),this.sdp=s.sdp,this.type=s.type}return(0,s.default)(t,[{key:"toJSON",value:function(){return{sdp:this.sdp,type:this.type}}}]),t})();e.default=n},782,[3,4,5]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),s=t(r(d[2])),u=(function(){function t(s){(0,n.default)(this,t),this.candidate=s.candidate,this.sdpMLineIndex=s.sdpMLineIndex,this.sdpMid=s.sdpMid}return(0,s.default)(t,[{key:"toJSON",value:function(){return{candidate:this.candidate,sdpMLineIndex:this.sdpMLineIndex,sdpMid:this.sdpMid}}}]),t})();e.default=u},783,[3,4,5]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1]));e.default=function t(u,c){(0,n.default)(this,t),this.type=u.toString(),this.candidate=null,c&&c.candidate&&(this.candidate=c.candidate)}},784,[3,4]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])),f=t(r(d[2]));e.default=function t(l,n){(0,f.default)(this,t),this.type=l.toString(),(0,u.default)(this,n)}},785,[3,16,4]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.normalizeOfferAnswerOptions=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o={};if(!t)return o;t.mandatory&&(t=t.mandatory);for(var f=Object.entries(t),c=0;c0&&void 0!==arguments[0]?arguments[0]:{};if('object'!=typeof o)return Promise.reject(new TypeError('constraints is not a dictionary'));if(!(void 0!==o.audio&&o.audio||void 0!==o.video&&o.video))return Promise.reject(new TypeError('audio and/or video is required'));var t=[];(o=u.normalizeConstraints(o)).audio?t.push(v.default.request({name:'microphone'})):t.push(Promise.resolve(!1));o.video?t.push(v.default.request({name:'camera'})):t.push(Promise.resolve(!1));return new Promise(function(s,u){Promise.all(t).then(function(t){var v=(0,n.default)(t,2),p=v[0],h=v[1];if(p||h){p||delete o.audio,h||delete o.video;f.getUserMedia(o,function(o,t){var n={streamId:o,streamReactTag:o,tracks:t};s(new c.default(n))},function(o,t){var n;switch(o){case'TypeError':n=new TypeError(t)}n||(n=new l.default({message:t,name:o}));u(n)})}else{u(new l.default({message:'Permission denied.',name:'SecurityError'}))}})})};var n=t(r(d[2])),s=r(d[3]),u=o(r(d[4])),c=t(r(d[5])),l=t(r(d[6])),v=t(r(d[7])),f=s.NativeModules.WebRTCModule},793,[2,3,26,17,786,769,794,795]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var s=t(r(d[1]));e.default=function t(n){(0,s.default)(this,t),this.name=n.name,this.message=n.message,this.constraintName=n.constraintName}},794,[3,4]); -__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=n(r(d[1])),o=n(r(d[2])),s=r(d[3]),u=s.NativeModules.WebRTCModule,P=new((function(){function n(){(0,t.default)(this,n),this.RESULT={DENIED:'denied',GRANTED:'granted',PROMPT:'prompt'},this.VALID_PERMISSIONS=['camera','microphone'],this._lastReq=Promise.resolve()}return(0,o.default)(n,[{key:"_requestPermissionAndroid",value:function(n){return new Promise(function(t,o){s.PermissionsAndroid.request(n).then(function(n){return t(!0===n||n===s.PermissionsAndroid.RESULTS.GRANTED)},function(){return t(!1)})})}},{key:"_validatePermissionDescriptior",value:function(n){if("object"!=typeof n)throw new TypeError("Argument 1 of Permissions.query is not an object.");if(void 0===n.name)throw new TypeError("Missing required 'name' member of PermissionDescriptor.");if(-1===this.VALID_PERMISSIONS.indexOf(n.name))throw new TypeError("'name' member of PermissionDescriptor is not a valid value for enumeration PermissionName.")}},{key:"query",value:function(n){var t=this;try{this._validatePermissionDescriptior(n)}catch(n){return Promise.reject(n)}if('android'===s.Platform.OS){var o='camera'===n.name?s.PermissionsAndroid.PERMISSIONS.CAMERA:s.PermissionsAndroid.PERMISSIONS.RECORD_AUDIO;return new Promise(function(n,u){s.PermissionsAndroid.check(o).then(function(o){return n(o?t.RESULT.GRANTED:t.RESULT.PROMPT)},function(){return n(t.RESULT.PROMPT)})})}return'ios'===s.Platform.OS?u.checkPermission(n.name):Promise.reject(new TypeError("Unsupported platform."))}},{key:"request",value:function(n){var t=this;try{this._validatePermissionDescriptior(n)}catch(n){return Promise.reject(n)}if('android'===s.Platform.OS){var o='camera'===n.name?s.PermissionsAndroid.PERMISSIONS.CAMERA:s.PermissionsAndroid.PERMISSIONS.RECORD_AUDIO,P=function(){return t._requestPermissionAndroid(o)};return this._lastReq=this._lastReq.then(P,P),this._lastReq}return'ios'===s.Platform.OS?u.requestPermission(n.name):Promise.reject(new TypeError("Unsupported platform."))}}]),n})());e.default=P},795,[3,4,5,17]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=r(d[0]).StyleSheet.create({videoTranformedView:{flex:1},videoTransformedViewContainer:{overflow:'hidden'},video:{flex:1}});e.default=o},796,[17]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var s=n(r(d[2])),o=n(r(d[3])),l=n(r(d[4])),u=n(r(d[5])),h=n(r(d[6])),f=n(r(d[7])),c=n(r(d[8])),v=n(r(d[9])),p=t(r(d[10])),_=r(d[11]),y=r(d[12]),P=r(d[13]),T=n(r(d[14])),S={scale:1,translateX:0,translateY:0},R=5,M=(function(t){function n(t){var s;return(0,l.default)(this,n),(s=(0,h.default)(this,(0,f.default)(n).call(this,t))).state={layout:null,transform:s._getSavedTransform(t.streamId)||S},s._didMove=s._didMove.bind((0,v.default)((0,v.default)(s))),s._getTransformStyle=s._getTransformStyle.bind((0,v.default)((0,v.default)(s))),s._onGesture=s._onGesture.bind((0,v.default)((0,v.default)(s))),s._onLayout=s._onLayout.bind((0,v.default)((0,v.default)(s))),s._onMoveShouldSetPanResponder=s._onMoveShouldSetPanResponder.bind((0,v.default)((0,v.default)(s))),s._onPanResponderGrant=s._onPanResponderGrant.bind((0,v.default)((0,v.default)(s))),s._onPanResponderMove=s._onPanResponderMove.bind((0,v.default)((0,v.default)(s))),s._onPanResponderRelease=s._onPanResponderRelease.bind((0,v.default)((0,v.default)(s))),s._onStartShouldSetPanResponder=s._onStartShouldSetPanResponder.bind((0,v.default)((0,v.default)(s))),s.moveThreshold=_.PixelRatio.get()*R,s.gestureHandlers=_.PanResponder.create({onPanResponderGrant:s._onPanResponderGrant,onPanResponderMove:s._onPanResponderMove,onPanResponderRelease:s._onPanResponderRelease,onPanResponderTerminationRequest:function(){return!0},onMoveShouldSetPanResponder:s._onMoveShouldSetPanResponder,onShouldBlockNativeResponder:function(){return!1},onStartShouldSetPanResponder:s._onStartShouldSetPanResponder}),s}return(0,c.default)(n,t),(0,u.default)(n,[{key:"componentDidUpdate",value:function(t,n){t.streamId!==this.props.streamId&&(this._storeTransform(t.streamId,n.transform),this._restoreTransform(this.props.streamId))}},{key:"componentWillUnmount",value:function(){this._storeTransform(this.props.streamId,this.state.transform)}},{key:"render",value:function(){var t=this.props,n=t.children,s=t.style;return p.default.createElement(_.View,(0,o.default)({onLayout:this._onLayout,pointerEvents:"box-only",style:[T.default.videoTransformedViewContainer,s]},this.gestureHandlers.panHandlers),p.default.createElement(_.View,{style:[T.default.videoTranformedView,this._getTransformStyle()]},n))}},{key:"_calculateTransformIncrement",value:function(t){var n=this.state.transform,s=n.scale,o=n.translateX,l=n.translateY,u=t.scale,h=t.translateX,f=t.translateY;return{scale:s=Math.min(s*(u||1),5),translateX:o+=(h||0)/s,translateY:l+=(f||0)/s}}},{key:"_didMove",value:function(t){var n=t.dx,s=t.dy;return Math.abs(n)>this.moveThreshold||Math.abs(s)>this.moveThreshold}},{key:"_getSavedTransform",value:function(t){var n=this.props,s=n.enabled,o=n._transforms;return s&&o[t]||null}},{key:"_getTouchDistance",value:function(t){var n=t.nativeEvent.touches,s=Math.abs(n[0].pageX-n[1].pageX),o=Math.abs(n[0].pageY-n[1].pageY);return Math.sqrt(Math.pow(s,2)+Math.pow(o,2))}},{key:"_getTouchPosition",value:function(t){var n=t.nativeEvent.touches;return{x:n[0].pageX,y:n[0].pageY}}},{key:"_getTransformStyle",value:function(){if(!this.props.enabled)return null;var t=this.state.transform;return{transform:[{scale:t.scale},{translateX:t.translateX},{translateY:t.translateY}]}}},{key:"_limitAndApplyTransformation",value:function(t){var n=this.state.layout;if(n){var s=this.state.transform.scale,o=t.scale,l=t.translateX,u=t.translateY,h=Math.max(o,1),f={a:{x:n.x,y:n.y},d:{x:n.x+n.width,y:n.y+n.height}},c={x:(n.x+n.width)/2+l*h,y:(n.y+n.height)/2+u*h},v={height:n.height*h,width:n.width*h},p={a:{x:c.x-v.width/2,y:c.y-v.height/2},d:{x:c.x+v.width/2,y:c.y+v.height/2}},_=100;o0&&void 0!==arguments[0]?arguments[0]:{};return function(n,c){var o=t.devices||[u.MEDIA_TYPE.AUDIO,u.MEDIA_TYPE.VIDEO],s={dispatch:n,getState:c},l=function(o){if((0,T.getLocalTrack)(c()['features/base/tracks'],o,!0))throw new Error("Local track for "+o+" already exists");var l=(0,T.createLocalTracksF)({cameraDeviceId:t.cameraDeviceId,devices:[o],facingMode:t.facingMode||u.CAMERA_FACING_MODE.USER,micDeviceId:t.micDeviceId},!1,s).then(function(t){if(1!==t.length)throw new Error("Expected exactly 1 track, but was given "+t.length+" tracks for device: "+o+".");return l.canceled?I(t).then(function(){return n(M(o))}):n(v(t[0]))},function(t){return n(l.canceled?M(o):h(t,o))});l.cancel=function(){return l.canceled=!0,l},n({type:f.TRACK_WILL_CREATE,track:{gumProcess:l,local:!0,mediaType:o}})},E=o,A=Array.isArray(E),k=0;for(E=A?E:E["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var D;if(A){if(k>=E.length)break;D=E[k++]}else{if((k=E.next()).done)break;D=k.value}l(D)}}}function A(t){return{type:f.TRACK_NO_DATA_FROM_SOURCE,track:t}}function k(t){return function(n,c){var u,s=(0,T.getTrackByJitsiTrack)(c()['features/base/tracks'],t);if(s){if(s.isReceivingData)u=void 0;else{var f=(0,o.showErrorNotification)({descriptionKey:'dialog.cameraNotSendingData',titleKey:'dialog.cameraNotSendingDataTitle'});n(f),u={uid:f.uid}}n(_(t,u))}}}function v(t){return function(n,T){t.on(c.JitsiTrackEvents.TRACK_MUTE_CHANGED,function(){return n(D(t))}),t.on(c.JitsiTrackEvents.TRACK_VIDEOTYPE_CHANGED,function(c){return n(R(t,c))});var l,E,v,_=t.isLocal(),p=t.getType();if(_){var y=(0,s.getLocalParticipant)(T);if(y&&(v=y.id),l=t.isReceivingData(),t.on(c.JitsiTrackEvents.NO_DATA_FROM_SOURCE,function(){return n(A({jitsiTrack:t}))}),!l)if(p===u.MEDIA_TYPE.AUDIO){var C=(0,o.showNotification)({descriptionKey:'dialog.micNotSendingData',titleKey:'dialog.micNotSendingDataTitle'});n(C),E={uid:C.uid}}else{E={timeout:setTimeout(function(){return n(k(t))},5e3)}}}else v=t.getParticipantId(),l=!0;return n({type:f.TRACK_ADDED,track:{jitsiTrack:t,isReceivingData:l,local:_,mediaType:p,mirror:S(t),muted:t.isMuted(),noDataFromSourceNotificationInfo:E,participantId:v,videoStarted:!1,videoType:t.videoType}})}}function D(t){return{type:f.TRACK_UPDATED,track:{jitsiTrack:t,muted:t.isMuted()}}}function _(t,n){return{type:f.TRACK_UPDATED,track:{jitsiTrack:t,noDataFromSourceNotificationInfo:n}}}function p(t){return t.removeAllListeners(c.JitsiTrackEvents.TRACK_MUTE_CHANGED),t.removeAllListeners(c.JitsiTrackEvents.TRACK_VIDEOTYPE_CHANGED),t.removeAllListeners(c.JitsiTrackEvents.NO_DATA_FROM_SOURCE),{type:f.TRACK_REMOVED,track:{jitsiTrack:t}}}function R(t,n){return{type:f.TRACK_UPDATED,track:{jitsiTrack:t,videoType:n}}}function y(t){var n=function(t){return l.default.error('gumProcess.cancel failed',JSON.stringify(t))};return Promise.all(t()['features/base/tracks'].filter(function(t){return t.local}).map(function(t){var c=t.gumProcess;return c&&c.cancel().catch(n)}))}function C(t){return function(n){return I(t).then(function(){return Promise.all(t.map(function(t){return n(p(t))}))})}}function I(t){return Promise.all(t.map(function(t){return t.dispose().catch(function(t){if(t.name!==c.JitsiTrackErrors.TRACK_IS_DISPOSED)throw t})}))}function h(t,n){var c=t.gum;return function(t){if(c){var o=c.error;o&&t({type:f.TRACK_CREATE_ERROR,permissionDenied:'SecurityError'===o.name,trackType:n})}}}function S(t){return t&&t.isLocal()&&t.isVideoTrack()&&t.getCameraFacingMode()===u.CAMERA_FACING_MODE.USER}function M(t){return{type:f.TRACK_CREATE_CANCELED,trackType:t}}},801,[3,385,388,592,751,537,802,803,898]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.TRACK_WILL_CREATE=e.TRACK_UPDATED=e.TRACK_REMOVED=e.TRACK_NO_DATA_FROM_SOURCE=e.TRACK_CREATE_ERROR=e.TRACK_CREATE_CANCELED=e.TRACK_ADDED=e.TOGGLE_SCREENSHARING=void 0;e.TOGGLE_SCREENSHARING='TOGGLE_SCREENSHARING';e.TRACK_ADDED='TRACK_ADDED';e.TRACK_CREATE_CANCELED='TRACK_CREATE_CANCELED';e.TRACK_CREATE_ERROR='TRACK_CREATE_ERROR';e.TRACK_NO_DATA_FROM_SOURCE='TRACK_NO_DATA_FROM_SOURCE';e.TRACK_REMOVED='TRACK_REMOVED';e.TRACK_UPDATED='TRACK_UPDATED';e.TRACK_WILL_CREATE='TRACK_WILL_CREATE'},802,[]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.createLocalTracksF=function(t,n,u){t||(t={});var l=t,v=l.cameraDeviceId,k=l.micDeviceId;if('undefined'!=typeof APP){u||(u=APP.store);var T=u.getState();void 0!==v&&null!==v||(v=(0,s.getUserSelectedCameraDeviceId)(T)),void 0!==k&&null!==k||(k=(0,s.getUserSelectedMicDeviceId)(T))}var p=u.getState(),S=p['features/base/config'],h=S.constraints,I=S.desktopSharingFrameRate,D=S.firefox_fake_device,E=S.resolution;return(p['features/blur'].blurEnabled?(0,c.getBlurEffect)().then(function(t){return[t]}).catch(function(t){return f.default.error('Failed to obtain the blur effect instance with error: ',t),Promise.resolve([])}):Promise.resolve([])).then(function(c){return o.default.createLocalTracks({cameraDeviceId:v,constraints:h,desktopSharingExtensionExternalInstallation:t.desktopSharingExtensionExternalInstallation,desktopSharingFrameRate:I,desktopSharingSourceDevice:t.desktopSharingSourceDevice,desktopSharingSources:t.desktopSharingSources,devices:t.devices.slice(0),effects:c,firefox_fake_device:D,micDeviceId:k,resolution:E},n).catch(function(n){return f.default.error('Failed to create local tracks',t.devices,n),Promise.reject(n)})})},e.getLocalAudioTrack=function(t){return l(t,u.MEDIA_TYPE.AUDIO)},e.getLocalTrack=l,e.getLocalTracks=v,e.getLocalVideoTrack=function(t){return l(t,u.MEDIA_TYPE.VIDEO)},e.getTrackByMediaTypeAndParticipant=k,e.getTrackByJitsiTrack=function(t,n){return t.find(function(t){return t.jitsiTrack===n})},e.getTracksByMediaType=function(t,n){return t.filter(function(t){return t.mediaType===n})},e.isLocalTrackMuted=function(t,n){var c=l(t,n);return!c||c.muted},e.isRemoteTrackMuted=function(t,n,c){var o=k(t,n,c);return!o||o.muted},e.isUserInteractionRequiredForUnmute=function(t){return o.browser.isUserInteractionRequiredForUnmute()&&window&&window.self!==window.top&&!t['features/base/user-interaction'].interacted},e.setTrackMuted=function(t,n){if(n=Boolean(n),t.isMuted()===n)return Promise.resolve();var c=n?'mute':'unmute';return t[c]().catch(function(t){t.name!==o.JitsiTrackErrors.TRACK_IS_DISPOSED&&f.default.error("set track "+c+" failed",t)})};var c=r(d[2]),o=n(r(d[3])),u=r(d[4]),s=r(d[5]),f=t(r(d[6]));function l(t,n){return v(t,arguments.length>2&&void 0!==arguments[2]&&arguments[2]).find(function(t){return t.mediaType===n})}function v(t){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return t.filter(function(t){return t.local&&(t.jitsiTrack||n)})}function k(t,n,c){return t.find(function(t){return t.participantId===c&&t.mediaType===n})}},803,[3,2,804,388,751,844,898]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})});var u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}})}),r(d[3])},804,[805,819,807,831]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.toggleBlurEffect=function(t){return function(u,s){var E=s();if(E['features/blur'].blurEnabled!==t){var b=(0,n.getLocalVideoTrack)(E['features/base/tracks']),v=b.jitsiTrack;return(0,f.getBlurEffect)().then(function(n){return v.setEffect(t?n:void 0).then(function(){u(t?o():l())}).catch(function(n){u(t?l():o()),c.default.error('setEffect failed with error:',n)})}).catch(function(t){u(l()),c.default.error('getBlurEffect failed with error:',t)})}return Promise.resolve()}},e.blurEnabled=o,e.blurDisabled=l;var n=r(d[1]),u=r(d[2]),f=r(d[3]),c=t(r(d[4]));function o(){return{type:u.BLUR_ENABLED}}function l(){return{type:u.BLUR_DISABLED}}},805,[3,800,806,807,818]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.BLUR_DISABLED=e.BLUR_ENABLED=void 0;e.BLUR_ENABLED='BLUR_ENABLED';e.BLUR_DISABLED='BLUR_DISABLED'},806,[]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.getBlurEffect=function(){var f=(0,t.getJitsiMeetGlobalNS)();if(f.effects&&f.effects.createBlurEffect)return f.effects.createBlurEffect();return(0,t.loadScript)('libs/video-blur-effect.min.js').then(function(){return f.effects.createBlurEffect()})};var t=r(d[0])},807,[808]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})});var u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}})});var o=r(d[3]);Object.keys(o).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return o[t]}})});var c=r(d[4]);Object.keys(c).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return c[t]}})})},808,[809,810,812,813,815]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.createDeferred=function(){var n={};return n.promise=new Promise(function(o,t){n.resolve=o,n.reject=t}),n},e.escapeRegexp=function(o){if('string'!=typeof o)throw new TypeError('Expected a string');return o.replace(n,'\\$&')},e.getBaseUrl=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window,o=n.document.querySelector('base');if(o&&o.href)return o.href;var t=n.location,u=t.protocol,c=t.host;return u+"//"+c},e.getJitsiMeetGlobalNS=function(){window.JitsiMeetJS||(window.JitsiMeetJS={});window.JitsiMeetJS.app||(window.JitsiMeetJS.app={});return window.JitsiMeetJS.app},e.assignIfDefined=function(n,o){var t=Object(n);for(var u in o)if(o.hasOwnProperty(u)){var c=o[u];void 0!==c&&(t[u]=c)}return t},e.reportError=function(n){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:'';console.error(o,n),window.onerror&&window.onerror(o,null,null,null,n)};var n=/[|\\{}()[\]^$+*?.-]/g},809,[]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.doGetJSON=function(o,u){var c=fetch(o).then(function(t){var n=t.json();return t.ok?n:n.then(function(t){return Promise.reject(t)})});if(u)return(0,t.timeoutPromise)(c,n).catch(function(o){return o.status>=400&&o.status<500?Promise.reject(o):(0,t.timeoutPromise)(c,n)});return c};var t=r(d[0]),n=3e3},810,[811]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.timeoutPromise=function(t,n){return new Promise(function(o,u){var c=setTimeout(function(){return u(new Error('timeout'))},n);t.then(function(t){o(t),clearTimeout(c)},function(t){u(t),clearTimeout(c)})})}},811,[]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.loadScript=function(t){var u,s,c,l,f,p,w,h,x,b,v,_=arguments;return n.default.async(function(k){for(;;)switch(k.prev=k.next){case 0:if(u=_.length>1&&void 0!==_[1]?_[1]:o,s=_.length>2&&void 0!==_[2]&&_[2],c=new URL(t),l=c.hostname,f=c.pathname,p=c.protocol,l&&f&&p){k.next=5;break}throw new Error("unexpected url: "+t);case 5:return w=new AbortController,h=w.signal,x=setTimeout(function(){w.abort()},u),k.next=10,n.default.awrap(fetch(t,{signal:h}));case 10:b=k.sent,clearTimeout(x),k.t0=b.status,k.next=200===k.t0?15:21;break;case 15:return k.next=17,n.default.awrap(b.text());case 17:if(v=k.sent,!s){k.next=20;break}return k.abrupt("return",v);case 20:return k.abrupt("return",eval.call(window,v));case 21:throw new Error("loadScript error: "+b.statusText);case 22:case"end":return k.stop()}},null,this)};var n=t(r(d[1])),o=5e3},812,[3,268]); -__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.openURLInBrowser=function(n){o.Linking.openURL(n).catch(function(o){t.default.error("An error occurred while trying to open "+n,o)})};var o=r(d[1]),t=n(r(d[2]))},813,[3,17,814]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=(0,r(d[0]).getLogger)('features/base/util');e.default=t},814,[581]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.getBackendSafeRoomName=function(n){if(!n)return n;try{n=decodeURIComponent(n)}catch(t){}return n=(n=(0,t.normalizeNFKC)(n)).toLowerCase(),(n=encodeURIComponent(n)).toLowerCase()},e.getLocationContextRoot=c,e.parseStandardURIString=u,e.parseURIString=function(t){if('string'!=typeof t)return;var n=u(h(t));n.contextRoot=c(n);var o=n.pathname,f=o.lastIndexOf('/'),v=o.substring(f+1)||void 0;if(v){var p=s(v);p!==v&&(v=p,n.pathname=o.substring(0,f+1)+(v||''))}return n.room=v,n},e.toURLString=function(t){var n;switch(typeof t){case'object':t&&(n=t instanceof URL?t.href:p(t));break;case'string':n=String(t)}return n},e.urlObjectToString=p,e.URI_PROTOCOL_PATTERN=e.APP_LINK_SCHEME=void 0;var t=r(d[0]);e.APP_LINK_SCHEME='org.jitsi.meet:';var n='[\\:\\?#\\[\\]@!$&\'()*+,;=>0&&void 0!==arguments[0]?arguments[0]:{},n=[];for(var o in t)try{n.push(o+"="+encodeURIComponent(JSON.stringify(t[o])))}catch(t){console.warn("Error encoding "+o+": "+t)}return n}function u(t){var n,s,h,c={toString:v};if(t=t.replace(/\s/g,''),(s=(n=new RegExp(o,'gi')).exec(t))&&(c.protocol=s[1].toLowerCase(),t=t.substring(n.lastIndex)),s=(n=new RegExp("^(//[^/?#]+)",'gi')).exec(t)){var f=s[1].substring(2);t=t.substring(n.lastIndex);var u=f.indexOf('@');-1!==u&&(f=f.substring(u+1)),c.host=f;var p=f.lastIndexOf(':');-1!==p&&(c.port=f.substring(p+1),f=f.substring(0,p)),c.hostname=f}if((s=(n=new RegExp("^([^?#]*)",'gi')).exec(t))&&(h=s[1],t=t.substring(n.lastIndex)),h?h.startsWith('/')||(h="/"+h):h='/',c.pathname=h,t.startsWith('?')){var l=t.indexOf('#',1);-1===l&&(l=t.length),c.search=t.substring(0,l),t=t.substring(l)}else c.search='';return c.hash=t.startsWith('#')?t:'',c}function v(t){var n=t||this,o=n.hash,s=n.host,h=n.pathname,c=n.protocol,f=n.search,u='';return c&&(u+=c),s&&(u+="//"+s),u+=h||'/',f&&(u+=f),o&&(u+=o),u}function p(t){var n=u(h(t.serverURL&&t.room?new URL(t.room,t.serverURL).toString():t.room?t.room:t.url||''));if(!n.protocol){var o=t.protocol||t.scheme;o&&(o.endsWith(':')||(o+=':'),n.protocol=o)}var s=n.pathname;if(!n.host){var c=t.domain||t.host||t.hostname;if(c){var v=u(h("org.jitsi.meet://"+c)),p=v.host,l=v.hostname,R=v.pathname,x=v.port;p&&(n.host=p,n.hostname=l,n.port=x),'/'===s&&'/'!==R&&(s=R)}}var O=t.roomName||t.room;!O||!n.pathname.endsWith('/')&&n.pathname.endsWith("/"+O)||(s.endsWith('/')||(s+='/'),s+=O),n.pathname=s;var b=t.jwt;if(b){var w=n.search;-1===w.indexOf('?jwt=')&&-1===w.indexOf('&jwt=')&&(w.startsWith('?')||(w="?"+w),1===w.length||(w+='&'),w+="jwt="+b,n.search=w)}for(var I=n.hash,C=['config','interfaceConfig','devices'],L=0;L>8&255]>o&&(v[n]=u),u},function(t,n,o){return o?t(n,o):new C(n,null)},function(t,n,o){var v;if(n=55296&&t<=56319},C.isLowSurrogate=function(t){return t>=56320&&t<=57343},C.prototype.prepFeature=function(){this.feature||(this.feature=C.fromCharCode(this.codepoint,!0).feature)},C.prototype.toString=function(){if(this.codepoint<65536)return String.fromCharCode(this.codepoint);var t=this.codepoint-65536;return String.fromCharCode(Math.floor(t/1024)+55296,t%1024+56320)},C.prototype.getDecomp=function(){return this.prepFeature(),this.feature[0]||null},C.prototype.isCompatibility=function(){return this.prepFeature(),!!this.feature[1]&&256&this.feature[1]},C.prototype.isExclude=function(){return this.prepFeature(),!!this.feature[1]&&512&this.feature[1]},C.prototype.getCanonicalClass=function(){return this.prepFeature(),this.feature[1]?255&this.feature[1]:0},C.prototype.getComposite=function(t){if(this.prepFeature(),!this.feature[2])return null;var n=this.feature[2][t.codepoint];return n?C.fromCharCode(n):null};var F=function(t){this.str=t,this.cursor=0};F.prototype.next=function(){if(this.str&&this.cursor0;--o){if(this.resBuf[o-1].getCanonicalClass()<=t)break}this.resBuf.splice(o,0,n)}while(0!==t);return this.resBuf.shift()};var S=function(t){this.it=t,this.procBuf=[],this.resBuf=[],this.lastClass=null};S.prototype.next=function(){for(;0===this.resBuf.length;){var t=this.it.next();if(!t){this.resBuf=this.procBuf,this.procBuf=[];break}if(0===this.procBuf.length)this.lastClass=t.getCanonicalClass(),this.procBuf.push(t);else{var n=this.procBuf[0].getComposite(t),o=t.getCanonicalClass();n&&(this.lastClass0&&void 0!==arguments[0]?arguments[0]:{};switch((arguments.length>1?arguments[1]:void 0).type){case l.BLUR_ENABLED:return(0,t.default)({},u,{blurEnabled:!0});case l.BLUR_DISABLED:return(0,t.default)({},u,{blurEnabled:!1})}return u})},831,[3,54,539,832,806]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0});var n={PersistenceRegistry:!0};Object.defineProperty(e,"PersistenceRegistry",{enumerable:!0,get:function(){return o.default}});var c=r(d[1]);Object.keys(c).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(n,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return c[t]}}))});var o=t(r(d[2]));r(d[3])},832,[3,833,840,843]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},833,[834]); -__d(function(g,r,i,a,m,e,d){r(d[0])},834,[835]); -__d(function(g,r,i,a,m,e,d){var o,t=r(d[0])(r(d[1]));void 0===(o=g||window||this).localStorage&&(o.localStorage=new t.default('@jitsi-meet/')),void 0===o.sessionStorage&&(o.sessionStorage=new t.default)},835,[3,836]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),l=t(r(d[2])),u=t(r(d[3])),f=t(r(d[4])),o=(function(){function t(n){var u=this;(0,l.default)(this,t),this._keyPrefix=n;var f=this._initializeAsync();f&&(this._initializing=f,f.finally(function(){u._initializing===f&&(u._initializing=void 0)}))}return(0,u.default)(t,[{key:"clear",value:function(){for(var t=Object.keys(this),n=0;n=s.length)break;v=s[y++]}else{if((y=s.next()).done)break;v=y.value}var c=v,k=(0,n.default)(c,2),_=k[0],P=k[1];_=_.substring(o),t.hasOwnProperty(_)||(t[_]=P)}l()})})})}},{key:"key",value:function(t){var n=Object.keys(this);return t "+u),this._checksum=u}}},{key:"register",value:function(t){var s=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],u=arguments.length>2?arguments[2]:void 0;this._elements[t]=s,this._defaultStates[t]=u}},{key:"_calculateChecksum",value:function(t){try{return n.default.hex(JSON.stringify(t)||'')}catch(s){return c.default.error('Error calculating checksum for state',t,s),''}}},{key:"_getFilteredState",value:function(t){for(var s={},u=Object.keys(this._elements),l=0;l>2]|=t[n]<>6,R[f++]=128|63&h):h<55296||h>=57344?(R[f++]=224|h>>12,R[f++]=128|h>>6&63,R[f++]=128|63&h):(h=65536+((1023&h)<<10|1023&t.charCodeAt(++n)),R[f++]=240|h>>18,R[f++]=128|h>>12&63,R[f++]=128|h>>6&63,R[f++]=128|63&h);else for(f=this.start;n>2]|=h<>2]|=(192|h>>6)<>2]|=(128|63&h)<=57344?(u[f>>2]|=(224|h>>12)<>2]|=(128|h>>6&63)<>2]|=(128|63&h)<>2]|=(240|h>>18)<>2]|=(128|h>>12&63)<>2]|=(128|h>>6&63)<>2]|=(128|63&h)<=64?(this.start=f-64,this.hash(),this.hashed=!0):this.start=f}return this}},Md5.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var t=this.blocks,s=this.lastByteIndex;t[s>>2]|=EXTRA[3&s],s>=56&&(this.hashed||this.hash(),t[0]=t[16],t[16]=t[1]=t[2]=t[3]=t[4]=t[5]=t[6]=t[7]=t[8]=t[9]=t[10]=t[11]=t[12]=t[13]=t[14]=t[15]=0),t[14]=this.bytes<<3,this.hash()}},Md5.prototype.hash=function(){var t,s,o,h,f,n,A=this.blocks;this.first?s=((s=((t=((t=A[0]-680876937)<<7|t>>>25)-271733879<<0)^(o=((o=(-271733879^(h=((h=(-1732584194^2004318071&t)+A[1]-117830708)<<12|h>>>20)+t<<0)&(-271733879^t))+A[2]-1126478375)<<17|o>>>15)+h<<0)&(h^t))+A[3]-1316259209)<<22|s>>>10)+o<<0:(t=this.h0,s=this.h1,o=this.h2,s=((s+=((t=((t+=((h=this.h3)^s&(o^h))+A[0]-680876936)<<7|t>>>25)+s<<0)^(o=((o+=(s^(h=((h+=(o^t&(s^o))+A[1]-389564586)<<12|h>>>20)+t<<0)&(t^s))+A[2]+606105819)<<17|o>>>15)+h<<0)&(h^t))+A[3]-1044525330)<<22|s>>>10)+o<<0),s=((s+=((t=((t+=(h^s&(o^h))+A[4]-176418897)<<7|t>>>25)+s<<0)^(o=((o+=(s^(h=((h+=(o^t&(s^o))+A[5]+1200080426)<<12|h>>>20)+t<<0)&(t^s))+A[6]-1473231341)<<17|o>>>15)+h<<0)&(h^t))+A[7]-45705983)<<22|s>>>10)+o<<0,s=((s+=((t=((t+=(h^s&(o^h))+A[8]+1770035416)<<7|t>>>25)+s<<0)^(o=((o+=(s^(h=((h+=(o^t&(s^o))+A[9]-1958414417)<<12|h>>>20)+t<<0)&(t^s))+A[10]-42063)<<17|o>>>15)+h<<0)&(h^t))+A[11]-1990404162)<<22|s>>>10)+o<<0,s=((s+=((t=((t+=(h^s&(o^h))+A[12]+1804603682)<<7|t>>>25)+s<<0)^(o=((o+=(s^(h=((h+=(o^t&(s^o))+A[13]-40341101)<<12|h>>>20)+t<<0)&(t^s))+A[14]-1502002290)<<17|o>>>15)+h<<0)&(h^t))+A[15]+1236535329)<<22|s>>>10)+o<<0,s=((s+=((h=((h+=(s^o&((t=((t+=(o^h&(s^o))+A[1]-165796510)<<5|t>>>27)+s<<0)^s))+A[6]-1069501632)<<9|h>>>23)+t<<0)^t&((o=((o+=(t^s&(h^t))+A[11]+643717713)<<14|o>>>18)+h<<0)^h))+A[0]-373897302)<<20|s>>>12)+o<<0,s=((s+=((h=((h+=(s^o&((t=((t+=(o^h&(s^o))+A[5]-701558691)<<5|t>>>27)+s<<0)^s))+A[10]+38016083)<<9|h>>>23)+t<<0)^t&((o=((o+=(t^s&(h^t))+A[15]-660478335)<<14|o>>>18)+h<<0)^h))+A[4]-405537848)<<20|s>>>12)+o<<0,s=((s+=((h=((h+=(s^o&((t=((t+=(o^h&(s^o))+A[9]+568446438)<<5|t>>>27)+s<<0)^s))+A[14]-1019803690)<<9|h>>>23)+t<<0)^t&((o=((o+=(t^s&(h^t))+A[3]-187363961)<<14|o>>>18)+h<<0)^h))+A[8]+1163531501)<<20|s>>>12)+o<<0,s=((s+=((h=((h+=(s^o&((t=((t+=(o^h&(s^o))+A[13]-1444681467)<<5|t>>>27)+s<<0)^s))+A[2]-51403784)<<9|h>>>23)+t<<0)^t&((o=((o+=(t^s&(h^t))+A[7]+1735328473)<<14|o>>>18)+h<<0)^h))+A[12]-1926607734)<<20|s>>>12)+o<<0,s=((s+=((n=(h=((h+=((f=s^o)^(t=((t+=(f^h)+A[5]-378558)<<4|t>>>28)+s<<0))+A[8]-2022574463)<<11|h>>>21)+t<<0)^t)^(o=((o+=(n^s)+A[11]+1839030562)<<16|o>>>16)+h<<0))+A[14]-35309556)<<23|s>>>9)+o<<0,s=((s+=((n=(h=((h+=((f=s^o)^(t=((t+=(f^h)+A[1]-1530992060)<<4|t>>>28)+s<<0))+A[4]+1272893353)<<11|h>>>21)+t<<0)^t)^(o=((o+=(n^s)+A[7]-155497632)<<16|o>>>16)+h<<0))+A[10]-1094730640)<<23|s>>>9)+o<<0,s=((s+=((n=(h=((h+=((f=s^o)^(t=((t+=(f^h)+A[13]+681279174)<<4|t>>>28)+s<<0))+A[0]-358537222)<<11|h>>>21)+t<<0)^t)^(o=((o+=(n^s)+A[3]-722521979)<<16|o>>>16)+h<<0))+A[6]+76029189)<<23|s>>>9)+o<<0,s=((s+=((n=(h=((h+=((f=s^o)^(t=((t+=(f^h)+A[9]-640364487)<<4|t>>>28)+s<<0))+A[12]-421815835)<<11|h>>>21)+t<<0)^t)^(o=((o+=(n^s)+A[15]+530742520)<<16|o>>>16)+h<<0))+A[2]-995338651)<<23|s>>>9)+o<<0,s=((s+=((h=((h+=(s^((t=((t+=(o^(s|~h))+A[0]-198630844)<<6|t>>>26)+s<<0)|~o))+A[7]+1126891415)<<10|h>>>22)+t<<0)^((o=((o+=(t^(h|~s))+A[14]-1416354905)<<15|o>>>17)+h<<0)|~t))+A[5]-57434055)<<21|s>>>11)+o<<0,s=((s+=((h=((h+=(s^((t=((t+=(o^(s|~h))+A[12]+1700485571)<<6|t>>>26)+s<<0)|~o))+A[3]-1894986606)<<10|h>>>22)+t<<0)^((o=((o+=(t^(h|~s))+A[10]-1051523)<<15|o>>>17)+h<<0)|~t))+A[1]-2054922799)<<21|s>>>11)+o<<0,s=((s+=((h=((h+=(s^((t=((t+=(o^(s|~h))+A[8]+1873313359)<<6|t>>>26)+s<<0)|~o))+A[15]-30611744)<<10|h>>>22)+t<<0)^((o=((o+=(t^(h|~s))+A[6]-1560198380)<<15|o>>>17)+h<<0)|~t))+A[13]+1309151649)<<21|s>>>11)+o<<0,s=((s+=((h=((h+=(s^((t=((t+=(o^(s|~h))+A[4]-145523070)<<6|t>>>26)+s<<0)|~o))+A[11]-1120210379)<<10|h>>>22)+t<<0)^((o=((o+=(t^(h|~s))+A[2]+718787259)<<15|o>>>17)+h<<0)|~t))+A[9]-343485551)<<21|s>>>11)+o<<0,this.first?(this.h0=t+1732584193<<0,this.h1=s-271733879<<0,this.h2=o-1732584194<<0,this.h3=h+271733878<<0,this.first=!1):(this.h0=this.h0+t<<0,this.h1=this.h1+s<<0,this.h2=this.h2+o<<0,this.h3=this.h3+h<<0)},Md5.prototype.hex=function(){this.finalize();var t=this.h0,s=this.h1,o=this.h2,h=this.h3;return HEX_CHARS[t>>4&15]+HEX_CHARS[15&t]+HEX_CHARS[t>>12&15]+HEX_CHARS[t>>8&15]+HEX_CHARS[t>>20&15]+HEX_CHARS[t>>16&15]+HEX_CHARS[t>>28&15]+HEX_CHARS[t>>24&15]+HEX_CHARS[s>>4&15]+HEX_CHARS[15&s]+HEX_CHARS[s>>12&15]+HEX_CHARS[s>>8&15]+HEX_CHARS[s>>20&15]+HEX_CHARS[s>>16&15]+HEX_CHARS[s>>28&15]+HEX_CHARS[s>>24&15]+HEX_CHARS[o>>4&15]+HEX_CHARS[15&o]+HEX_CHARS[o>>12&15]+HEX_CHARS[o>>8&15]+HEX_CHARS[o>>20&15]+HEX_CHARS[o>>16&15]+HEX_CHARS[o>>28&15]+HEX_CHARS[o>>24&15]+HEX_CHARS[h>>4&15]+HEX_CHARS[15&h]+HEX_CHARS[h>>12&15]+HEX_CHARS[h>>8&15]+HEX_CHARS[h>>20&15]+HEX_CHARS[h>>16&15]+HEX_CHARS[h>>28&15]+HEX_CHARS[h>>24&15]},Md5.prototype.toString=Md5.prototype.hex,Md5.prototype.digest=function(){this.finalize();var t=this.h0,s=this.h1,o=this.h2,h=this.h3;return[255&t,t>>8&255,t>>16&255,t>>24&255,255&s,s>>8&255,s>>16&255,s>>24&255,255&o,o>>8&255,o>>16&255,o>>24&255,255&h,h>>8&255,h>>16&255,h>>24&255]},Md5.prototype.array=Md5.prototype.digest,Md5.prototype.arrayBuffer=function(){this.finalize();var t=new ArrayBuffer(16),s=new Uint32Array(t);return s[0]=this.h0,s[1]=this.h1,s[2]=this.h2,s[3]=this.h3,t},Md5.prototype.buffer=Md5.prototype.arrayBuffer,Md5.prototype.base64=function(){for(var t,s,o,h='',f=this.array(),n=0;n<15;)t=f[n++],s=f[n++],o=f[n++],h+=BASE64_ENCODE_CHAR[t>>>2]+BASE64_ENCODE_CHAR[63&(t<<4|s>>>4)]+BASE64_ENCODE_CHAR[63&(s<<2|o>>>6)]+BASE64_ENCODE_CHAR[63&o];return t=f[n],h+=BASE64_ENCODE_CHAR[t>>>2]+BASE64_ENCODE_CHAR[t<<4&63]+'=='};var exports=createMethod();COMMON_JS?m.exports=exports:(root.md5=exports,AMD&&define(function(){return exports}))})()},841,[]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=(0,r(d[0]).getLogger)('features/base/storage');e.default=t},842,[581]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=t(r(d[1])),u=r(d[2]),o=t(r(d[3])),f=n.default.throttle(function(t){return o.default.persistState(t)},2e3);'function'==typeof window.addEventListener&&window.addEventListener('unload',function(){f.flush()}),u.MiddlewareRegistry.register(function(t){return function(n){return function(o){var c=(0,u.toState)(t),s=n(o),l=(0,u.toState)(t);return c===l||f(l),s}}})},843,[3,541,539,840]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})});var u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}})});var o=r(d[3]);Object.keys(o).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return o[t]}})}),r(d[4]),r(d[5])},844,[845,846,847,848,886,893]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.updateSettings=function(n){return{type:t.SETTINGS_UPDATED,settings:n}};var t=r(d[0])},845,[846]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.SETTINGS_UPDATED=void 0;e.SETTINGS_UPDATED='SETTINGS_UPDATED'},846,[]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.DEFAULT_SERVER_URL=void 0;e.DEFAULT_SERVER_URL='https://meet.jit.si'},847,[]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var n={handleCallIntegrationChange:!0};e.handleCallIntegrationChange=function(n){c.setUseConnectionService&&c.setUseConnectionService(!n)};var t=r(d[0]),o=r(d[1]);Object.keys(o).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(n,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return o[t]}}))});var c=t.NativeModules.AudioMode},848,[17,849]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.getPropertyValue=function(t,v,n){n=(0,c.default)({config:!0,jwt:!0,settings:!0,urlParams:!0},n);var l=(0,u.toState)(t);if(n.jwt){var f=l['features/base/jwt'][v];if(void 0!==f)return f[v]}if(n.urlParams&&-1!==s.CONFIG_WHITELIST.indexOf(v)){var o=(0,s.parseURLParams)(l['features/base/connection'].locationURL),b=o["config."+v];if(void 0!==b)return b}if(n.settings){var D=l['features/base/settings'][v];if(void 0!==D)return D}if(n.config){var S=l['features/base/config'][v];if(void 0!==S)return S}return},e.getServerURL=function(t){return(0,u.toState)(t)['features/base/settings'].serverURL||v.DEFAULT_SERVER_URL},e.getUserSelectedCameraDeviceId=function(t){var c=(0,u.toState)(t),s=c['features/base/settings'],v=s.userSelectedCameraDeviceId,l=s.userSelectedCameraDeviceLabel;return n({availableDevices:c['features/base/devices'].availableDevices.videoInput,matchRegex:/\s#\d*(?!.*\s#\d*)/,userSelectedDeviceId:v,userSelectedDeviceLabel:l,replacement:''})},e.getUserSelectedMicDeviceId=function(t){var c=(0,u.toState)(t),s=c['features/base/settings'],v=s.userSelectedMicDeviceId,l=s.userSelectedMicDeviceLabel;return n({availableDevices:c['features/base/devices'].availableDevices.audioInput,matchRegex:/\s\(\d*-\s(?!.*\s\(\d*-\s)/,userSelectedDeviceId:v,userSelectedDeviceLabel:l,replacement:' ('})},e.getUserSelectedOutputDeviceId=function(t){var c=(0,u.toState)(t),s=c['features/base/settings'],v=s.userSelectedAudioOutputDeviceId,l=s.userSelectedAudioOutputDeviceLabel;return n({availableDevices:c['features/base/devices'].availableDevices.audioOutput,matchRegex:void 0,userSelectedDeviceId:v,userSelectedDeviceLabel:l,replacement:void 0})};var c=t(r(d[1])),s=r(d[2]),u=r(d[3]),v=r(d[4]);function n(t){var c=t.availableDevices,s=t.matchRegex,u=t.userSelectedDeviceId,v=t.userSelectedDeviceLabel,n=t.replacement;if(!v||!u)return u;if(c.find(function(t){return t.deviceId===u}))return u;var l=s?v.replace(s,n):v,f=c.find(function(t){var c=t.label;if(!c)return!1;if(l===c)return!0;var u=c.replace(s,n);return l===u});return f?f.deviceId:u}},849,[3,54,850,539,847]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0});var n={CONFIG_WHITELIST:!0};Object.defineProperty(e,"CONFIG_WHITELIST",{enumerable:!0,get:function(){return u.default}});var o=r(d[1]);Object.keys(o).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(n,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return o[t]}}))});var c=r(d[2]);Object.keys(c).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(n,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return c[t]}}))});var u=t(r(d[3])),f=r(d[4]);Object.keys(f).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(n,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return f[t]}}))}),r(d[5]),r(d[6])},850,[3,851,875,879,877,884,885]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.configWillLoad=function(n,o){return{type:t.CONFIG_WILL_LOAD,locationURL:n,room:o}},e.loadConfigError=function(n,o){return{type:t.LOAD_CONFIG_ERROR,error:n,locationURL:o}},e.setConfig=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return function(o,c){var u=c()['features/base/connection'].locationURL;u&&(0,f.setConfigFromURLParams)(n,window.interfaceConfig,window.loggingConfig,u),o({type:t.SET_CONFIG,config:n})}},e.storeConfig=function(t,f){return function(u){var l=!1;try{void 0!==window.config&&window.config===f||(window.localStorage.setItem(c._CONFIG_STORE_PREFIX+"/"+t,JSON.stringify(f)),l=!0)}catch(n){}if(l)try{u((0,n.addKnownDomains)((0,o.parseURIString)(t).host))}catch(n){}return l}};var n=r(d[0]),o=r(d[1]),t=r(d[2]),c=r(d[3]),f=r(d[4])},851,[852,808,875,876,877]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})}),r(d[2]),r(d[3])},852,[853,854,855,874]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.addKnownDomains=function(o){return{type:n.ADD_KNOWN_DOMAINS,knownDomains:'string'==typeof o?[o]:o}};var n=r(d[0])},853,[854]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.ADD_KNOWN_DOMAINS=void 0;e.ADD_KNOWN_DOMAINS='ADD_KNOWN_DOMAINS'},854,[]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]),o=r(d[2]),s=r(d[3]),c=r(d[4]),u=r(d[5]);function f(t){var n,o=t.dispatch,s=(0,t.getState)()['features/base/connection'].locationURL;s&&(n=s.host)&&o((0,u.addKnownDomains)(n))}s.MiddlewareRegistry.register(function(s){return function(h){return function(R){var _,p,w,L,S=h(R);switch(R.type){case n.APP_WILL_MOUNT:p=(_=s).dispatch,w=_.getState,L=(0,c.parseURIString)((0,t.getDefaultURL)(w)),p((0,u.addKnownDomains)(L.host));break;case o.SET_ROOM:f(s)}return S}}})},855,[381,856,383,539,808,853]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})});var u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}})});var o=r(d[3]);Object.keys(o).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return o[t]}})}),r(d[4])},856,[857,858,859,872,873]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.appWillMount=function(t){return function(p){'object'==typeof APP&&APP.API.init(),p({type:n.APP_WILL_MOUNT,app:t})}},e.appWillUnmount=function(t){return{type:n.APP_WILL_UNMOUNT,app:t}};var n=r(d[0])},857,[858]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.APP_WILL_UNMOUNT=e.APP_WILL_MOUNT=void 0;e.APP_WILL_MOUNT='APP_WILL_MOUNT';e.APP_WILL_UNMOUNT='APP_WILL_UNMOUNT'},858,[]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"BaseApp",{enumerable:!0,get:function(){return n.default}});var n=t(r(d[1]))},859,[3,860]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=n(r(d[2])),u=n(r(d[3])),l=n(r(d[4])),s=n(r(d[5])),c=n(r(d[6])),f=n(r(d[7])),v=t(r(d[8])),h=r(d[9]),p=r(d[10]),y=r(d[11]),_=n(r(d[12])),P=r(d[13]),E=r(d[14]),w=r(d[15]),S=r(d[16]),k=r(d[17]),M=n(r(d[18])),R=(function(t){function n(t){var u;return(0,o.default)(this,n),(u=(0,l.default)(this,(0,s.default)(n).call(this,t))).state={route:{},store:void 0},u}return(0,c.default)(n,t),(0,u.default)(n,[{key:"componentDidMount",value:function(){var t=this;this._init=this._initStorage().catch(function(t){M.default.error(t)}).then(function(){return new Promise(function(n){t.setState({store:t._createStore()},n)})}).then(function(){return t.state.store.dispatch((0,k.appWillMount)(t))}).catch(function(t){M.default.error(t)})}},{key:"componentWillUnmount",value:function(){this.state.store.dispatch((0,k.appWillUnmount)(this))}},{key:"_initStorage",value:function(){return window.localStorage._initializing||Promise.resolve()}},{key:"render",value:function(){var t=this.state,n=t.route.component,o=t.store;return o?v.default.createElement(h.I18nextProvider,{i18n:P.i18next},v.default.createElement(p.Provider,{store:o},v.default.createElement(v.Fragment,null,this._createMainElement(n),v.default.createElement(w.SoundCollection,null),this._createExtraElement(),this._renderDialogContainer()))):null}},{key:"_createExtraElement",value:function(){return null}},{key:"_createMainElement",value:function(t,n){return t?v.default.createElement(t,n||{}):null}},{key:"_createStore",value:function(){var t,n=E.ReducerRegistry.combineReducers(),o=E.MiddlewareRegistry.applyMiddleware(_.default);'object'==typeof window&&(t=window.devToolsExtension)&&(o=(0,y.compose)(o,t()));var u=(0,y.createStore)(n,S.PersistenceRegistry.getPersistedState(),o);return E.StateListenerRegistry.subscribe(u),'undefined'!=typeof APP&&(APP.store=u),u}},{key:"_navigate",value:function(t){var n=this;return f.default.isEqual(t,this.state.route)?Promise.resolve():t.href?(window.location.href=t.href,Promise.resolve()):new Promise(function(o){n.setState({route:t},o)})}}]),n})(v.Component);e.default=R},860,[2,3,4,5,6,9,10,541,13,711,542,561,861,612,539,862,832,857,871]); -__d(function(g,r,i,a,m,e,d){'use strict';function t(t){return function(n){var u=n.dispatch,c=n.getState;return function(n){return function(f){return'function'==typeof f?f(u,c,t):n(f)}}}}e.__esModule=!0;var n=t();n.withExtraArgument=t,e.default=n},861,[]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})});var u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}})}),r(d[3]),r(d[4])},862,[863,864,866,868,870]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e._addAudioElement=function(t,u){return{type:n._ADD_AUDIO_ELEMENT,audioElement:u,soundId:t}},e._removeAudioElement=function(t){return{type:n._REMOVE_AUDIO_ELEMENT,soundId:t}},e.playSound=function(t){return{type:n.PLAY_SOUND,soundId:t}},e.registerSound=function(u,o){var _=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return{type:n.REGISTER_SOUND,soundId:u,src:(0,t.getSoundsPath)()+"/"+o,options:_}},e.stopSound=function(t){return{type:n.STOP_SOUND,soundId:t}},e.unregisterSound=function(t){return{type:n.UNREGISTER_SOUND,soundId:t}};var n=r(d[0]),t=r(d[1])},863,[864,865]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.UNREGISTER_SOUND=e.STOP_SOUND=e.REGISTER_SOUND=e.PLAY_SOUND=e._REMOVE_AUDIO_ELEMENT=e._ADD_AUDIO_ELEMENT=void 0;e._ADD_AUDIO_ELEMENT='_ADD_AUDIO_ELEMENT';e._REMOVE_AUDIO_ELEMENT='_REMOVE_AUDIO_ELEMENT';e.PLAY_SOUND='PLAY_SOUND';e.REGISTER_SOUND='REGISTER_SOUND';e.STOP_SOUND='STOP_SOUND';e.UNREGISTER_SOUND='UNREGISTER_SOUND'},864,[]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.getSoundsPath=function(){return(0,t.getSdkBundlePath)()};var t=r(d[0])},865,[381]); -__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"SoundCollection",{enumerable:!0,get:function(){return t.default}});var t=n(r(d[1]))},866,[3,867]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e._mapDispatchToProps=A,e.default=void 0;var o=n(r(d[2])),u=n(r(d[3])),s=n(r(d[4])),f=n(r(d[5])),l=n(r(d[6])),p=n(r(d[7])),c=t(r(d[8])),_=r(d[9]),v=r(d[10]),h=r(d[11]),y=(function(t){function n(){return(0,u.default)(this,n),(0,f.default)(this,(0,l.default)(n).apply(this,arguments))}return(0,p.default)(n,t),(0,s.default)(n,[{key:"render",value:function(){var t=0,n=[],u=this.props._sounds.entries(),s=Array.isArray(u),f=0;for(u=s?u:u["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var l;if(s){if(f>=u.length)break;l=u[f++]}else{if((f=u.next()).done)break;l=f.value}var p=l,v=(0,o.default)(p,2),h=v[0],y=v[1],A=y.options,b=y.src;n.push(c.default.createElement(_.Audio,{key:t,setRef:this._setRef.bind(this,h),src:b,loop:A.loop})),t+=1}return n}},{key:"_setRef",value:function(t,n){n?this.props._addAudioElement(t,n):this.props._removeAudioElement(t)}}]),n})(c.Component);function A(t){return{_addAudioElement:function(n,o){t((0,h._addAudioElement)(n,o))},_removeAudioElement:function(n){t((0,h._removeAudioElement)(n))}}}var b=(0,v.connect)(function(t){return{_sounds:t['features/base/sounds']}},A)(y);e.default=b},867,[2,3,26,4,5,6,9,10,13,751,539,863]); -__d(function(g,r,i,a,m,e,d){var n=r(d[0]),t=r(d[1]),o=r(d[2]),u=n(r(d[3]));function s(n,t){var o=(0,n.getState)()['features/base/sounds'].get(t);o?o.audioElement?o.audioElement.play():u.default.warn("PLAY_SOUND: sound not loaded yet for id: "+t):u.default.warn("PLAY_SOUND: no sound found for id: "+t)}function f(n,t){var o=(0,n.getState)()['features/base/sounds'].get(t);if(o){var s=o.audioElement;s?s.stop():u.default.warn("STOP_SOUND: sound not loaded yet for id: "+t)}else u.default.warn("STOP_SOUND: no sound found for id: "+t)}t.MiddlewareRegistry.register(function(n){return function(t){return function(u){switch(u.type){case o.PLAY_SOUND:s(n,u.soundId);break;case o.STOP_SOUND:f(n,u.soundId)}return t(u)}}})},868,[3,539,864,869]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=(0,r(d[0]).getLogger)('features/base/sounds');e.default=t},869,[581]); -__d(function(g,r,i,a,m,e,d){var n=r(d[0]),t=r(d[1]),s=r(d[2]),u=n(r(d[3])),o=new Map;function E(n,o){var E=o.type===s._ADD_AUDIO_ELEMENT,c=new Map(n),_=o.soundId,f=c.get(_);return f?E?c.set(_,(0,t.assign)(f,{audioElement:o.audioElement})):c.set(_,(0,t.assign)(f,{audioElement:void 0})):u.default.warn(o.type+": no sound for id: "+_),c}function c(n,t){var s=new Map(n);return s.set(t.soundId,{src:t.src,options:t.options}),s}function _(n,t){var s=new Map(n);return s.delete(t.soundId),s}t.ReducerRegistry.register('features/base/sounds',function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:o,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case s._ADD_AUDIO_ELEMENT:case s._REMOVE_AUDIO_ELEMENT:return E(n,t);case s.REGISTER_SOUND:return c(n,t);case s.UNREGISTER_SOUND:return _(n,t);default:return n}})},870,[3,539,864,869]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=(0,r(d[0]).getLogger)('features/base/app');e.default=t},871,[581]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.getAppProp=function(p,n){var o=(0,t.toState)(p)['features/base/app'];if(o){var u=o.app;if(u)return u.props[n]}return};var t=r(d[0])},872,[539]); -__d(function(g,r,i,a,m,e,d){var p=r(d[0])(r(d[1])),t=r(d[2]),n=r(d[3]);t.ReducerRegistry.register('features/base/app',function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},u=arguments.length>1?arguments[1]:void 0;switch(u.type){case n.APP_WILL_MOUNT:var f=u.app;if(t.app!==f)return(0,p.default)({},t,{app:f});break;case n.APP_WILL_UNMOUNT:if(t.app===u.app)return(0,p.default)({},t,{app:void 0})}return t})},873,[3,54,539,858]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.DEFAULT_STATE=void 0;var t=r(d[0]),n=r(d[1]),s=r(d[2]),o=r(d[3]),u=['alpha.jitsi.net','beta.meet.jit.si','meet.jit.si','8x8.vc'];e.DEFAULT_STATE=u;function f(t,n){var s=Array.isArray(t)?t:[];if(Array.isArray(n)){s=Array.from(t);var o=n,u=Array.isArray(o),f=0;for(o=u?o:o["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var y;if(u){if(f>=o.length)break;y=o[f++]}else{if((f=o.next()).done)break;y=f.value}var A=y;A=A.toLowerCase(),!s.includes(A)&&s.push(A)}}return s}s.PersistenceRegistry.register("features/base/known-domains"),n.ReducerRegistry.register("features/base/known-domains",function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:u,s=arguments.length>1?arguments[1]:void 0;switch(s.type){case o.ADD_KNOWN_DOMAINS:return f(n,s.knownDomains);case t.APP_WILL_MOUNT:return f(n,u);default:return n}})},874,[856,539,832,854]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e._UPDATE_CONFIG=e.SET_CONFIG=e.LOAD_CONFIG_ERROR=e.CONFIG_WILL_LOAD=void 0;e.CONFIG_WILL_LOAD='CONFIG_WILL_LOAD';e.LOAD_CONFIG_ERROR='LOAD_CONFIG_ERROR';e.SET_CONFIG='SET_CONFIG';e._UPDATE_CONFIG='_UPDATE_CONFIG'},875,[]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e._CONFIG_STORE_PREFIX=void 0;e._CONFIG_STORE_PREFIX='config.js'},876,[]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t={_cleanupConfig:!0};e._cleanupConfig=function(t){t.analytics.scriptURLs=[],l.NativeModules.AppInfo.LIBRE_BUILD&&(delete t.analytics.amplitudeAPPKey,delete t.analytics.googleAnalyticsTrackingId,delete t.callStatsID,delete t.callStatsSecret)};var l=r(d[0]),n=r(d[1]);Object.keys(n).forEach(function(l){"default"!==l&&"__esModule"!==l&&(Object.prototype.hasOwnProperty.call(t,l)||Object.defineProperty(e,l,{enumerable:!0,get:function(){return n[l]}}))})},877,[17,878]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.createFakeConfig=function(t){var n=new URL(t);return{hosts:{domain:n.hostname,muc:"conference."+n.hostname},bosh:t+"http-bind",clientNode:'https://jitsi.org/jitsi-meet',p2p:{enabled:!0}}},e.overrideConfigJSON=v,e.restoreConfig=function(t){var n,o=f._CONFIG_STORE_PREFIX+"/"+t;try{var u=(n=window.localStorage).getItem(o);if(u)return JSON.parse(u)||void 0}catch(t){n&&n.removeItem(o)}return},e.setConfigFromURLParams=function(t,n,o,f){var u=(0,c.default)(f),l={};t&&(l.config={}),n&&(l.interfaceConfig={}),o&&(l.loggingConfig={});for(var s=Object.keys(u),p=0;p=O.length)break;S=O[k++]}else{if((k=O.next()).done)break;S=k.value}var _=S;b=b[_]=b[_]||{}}b[C]=u[y]}v(t,n,o,l)},Object.defineProperty(e,"parseURLParams",{enumerable:!0,get:function(){return c.default}}),Object.defineProperty(e,"getRoomName",{enumerable:!0,get:function(){return s.default}});var n=t(r(d[1])),o=t(r(d[2])),f=r(d[3]),u=t(r(d[4])),c=t(r(d[5])),l=t(r(d[6])),s=t(r(d[7]));function v(t,o,f,u){for(var c=Object.keys(u),s=0;s1&&void 0!==arguments[1]&&arguments[1],h=arguments.length>2&&void 0!==arguments[2]?arguments[2]:'hash',s='search'===h?n.search:n.hash,l={},u=s&&s.substr(1).split('&')||[];if('hash'===h&&1===u.length){var v=u[0];if(v.startsWith('/')&&1===v.split('&').length)return l}return u.forEach(function(n){var h=n.split('='),s=h[0];if(s){var u;try{if(u=h[1],!o){var v=decodeURIComponent(u).replace(/\\&/,'&');u='undefined'===v?void 0:JSON.parse(v)}}catch(n){return void(0,t.reportError)(n,"Failed to parse URL parameter value: "+String(u))}l[s]=u}}),l};var t=r(d[0])},881,[808]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=(0,r(d[0]).getLogger)('features/base/config');e.default=t},882,[581]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){var t=window.location.pathname,o=t.substring(t.lastIndexOf('/')+1)||void 0;return(0,n.getBackendSafeRoomName)(o)};var n=r(d[0])},883,[808]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]),o=r(d[2]),s=r(d[3]),u=r(d[4]),c=r(d[5]);function f(t,o,u){var f=o(u),v=window.localStorage;if(v){for(var _=c._CONFIG_STORE_PREFIX+"/",w=[],h=0;;++h){var l=v.key(h);if(!l)break;var p=void 0;if(l.startsWith(_)&&(p=l.substring(_.length))){var P=(0,s.parseURIString)(p),b=void 0;P&&(b=P.host)&&w.push(b)}}w.length&&t.dispatch((0,n.addKnownDomains)(w))}return f}function v(t,n,o){var s=t.dispatch,c=t.getState,f=n(o),v=c(),_=v['features/base/settings'],w={};return void 0!==_.disableP2P&&(w.p2p={enabled:!_.disableP2P}),s({type:u._UPDATE_CONFIG,config:w}),void 0!==window.config&&(window.config=v['features/base/config']),f}o.MiddlewareRegistry.register(function(n){return function(o){return function(s){switch(s.type){case t.APP_WILL_MOUNT:return f(n,o,s);case u.SET_CONFIG:return v(n,o,s)}return o(s)}}})},884,[856,852,539,808,875,876]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=t(r(d[1])),o=t(r(d[2])),c=t(r(d[3])),l=t(r(d[4])),u=t(r(d[5])),f=r(d[6]),s=r(d[7]),v=r(d[8]),y={},p='ReactNative'===navigator.product&&!('ios'===u.default.OS&&10===u.default.Version),R={analytics:{},disableAudioLevels:!0,disableH264:!p,p2p:{disableH264:!p,preferH264:p}};function b(){return'ReactNative'===navigator.product?R:y}function _(t,n){var o=n.config;o=L(o);var c=l.default.merge({},o,{error:void 0},b());return(0,v._cleanupConfig)(c),(0,f.equals)(t,c)?t:c}function L(t){var l=t,u={analytics:[['analyticsScriptUrls','scriptURLs'],['googleAnalyticsTrackingId','googleAnalyticsTrackingId']]};return Object.keys(u).forEach(function(s){'object'!=typeof t[s]&&(l=(0,f.set)(l,s,{}));var v=u[s],y=Array.isArray(v),p=0;for(v=y?v:v["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var R;if(y){if(p>=v.length)break;R=v[p++]}else{if((p=v.next()).done)break;R=p.value}var b=R,_=(0,c.default)(b,2),L=_[0],O=_[1];if(L in l&&!(O in l[s])){var A=l[L];l===t&&(l=(0,o.default)({},l)),delete l[L],l[s]=(0,o.default)({},l[s],(0,n.default)({},O,A))}}}),l}function O(t,n){var o=n.config,c=l.default.merge({},t,o);return(0,v._cleanupConfig)(c),(0,f.equals)(t,c)?t:c}f.ReducerRegistry.register('features/base/config',function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:b(),n=arguments.length>1?arguments[1]:void 0;switch(n.type){case s._UPDATE_CONFIG:return O(t,n);case s.CONFIG_WILL_LOAD:return{error:void 0,locationURL:n.locationURL};case s.LOAD_CONFIG_ERROR:if(t.locationURL===n.locationURL)return{error:n.error};break;case s.SET_CONFIG:return _(t,n)}return t})},885,[3,55,54,26,541,413,539,875,877]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0])(r(d[1])),n=r(d[2]),o=r(d[3]),s=r(d[4]),l=r(d[5]),c=r(d[6]),u=r(d[7]);function f(t){var n=(0,t.getState)()['features/base/settings'].disableCallIntegration;'boolean'==typeof n&&(0,u.handleCallIntegrationChange)(n)}function p(t){switch(t){case'displayName':return'name'}return t}function h(t){var n=t.settings.disableCallIntegration;'boolean'==typeof n&&(0,u.handleCallIntegrationChange)(n)}function y(t,n){var s=t.dispatch,l=n.settings.startAudioOnly;'boolean'==typeof l&&s((0,o.setAudioOnly)(l,!0))}function b(n,o){var l=n.dispatch,c=n.getState,u=o.settings,f=(0,s.getLocalParticipant)(c()),h=(0,t.default)({},f);for(var y in u)u.hasOwnProperty(y)&&(h[p(y)]=u[y]);l((0,s.participantUpdated)(h))}l.MiddlewareRegistry.register(function(t){return function(o){return function(s){var l=o(s);switch(s.type){case n.APP_WILL_MOUNT:f(t);break;case c.SETTINGS_UPDATED:h(s),y(t,s),b(t,s)}return l}}})},886,[3,54,856,887,537,539,846,848]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})}),r(d[2])},887,[888,890,892]); -__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.setAudioOnly=f,e.toggleAudioOnly=function(){return function(n,t){var u=t()['features/base/audio-only'].enabled;return n(f(!u,!0))}};var t=n(r(d[1])),u=r(d[2]),o=r(d[3]),l=n(r(d[4]));function f(n){var f=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return function(y,s){s()['features/base/audio-only'].enabled!==n&&((0,u.sendAnalytics)((0,u.createAudioOnlyChangedEvent)(n)),l.default.log("Audio-only "+(n?'enabled':'disabled')),y({type:o.SET_AUDIO_ONLY,audioOnly:n,ensureVideoTrack:f}),'undefined'!=typeof APP&&APP.UI.emitEvent(t.default.TOGGLE_AUDIO_ONLY,n))}}},888,[3,889,385,890,891]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;e.default={NICKNAME_CHANGED:'UI.nickname_changed',EMAIL_CHANGED:'UI.email_changed',AUDIO_MUTED:'UI.audio_muted',VIDEO_MUTED:'UI.video_muted',ETHERPAD_CLICKED:'UI.etherpad_clicked',SHARED_VIDEO_CLICKED:'UI.start_shared_video',UPDATE_SHARED_VIDEO:'UI.update_shared_video',TOGGLE_FULLSCREEN:'UI.toogle_fullscreen',FULLSCREEN_TOGGLED:'UI.fullscreen_toggled',AUTH_CLICKED:'UI.auth_clicked',TOGGLE_AUDIO_ONLY:'UI.toggle_audioonly',TOGGLE_FILMSTRIP:'UI.toggle_filmstrip',TOGGLE_SCREENSHARING:'UI.toggle_screensharing',HANGUP:'UI.hangup',LOGOUT:'UI.logout',VIDEO_DEVICE_CHANGED:'UI.video_device_changed',AUDIO_DEVICE_CHANGED:'UI.audio_device_changed',LOCAL_FLIPX_CHANGED:'UI.local_flipx_changed',RESOLUTION_CHANGED:'UI.resolution_changed',EXTERNAL_INSTALLATION_CANCELED:'UI.external_installation_canceled',SIDE_TOOLBAR_CONTAINER_TOGGLED:'UI.side_container_toggled',LOCAL_RAISE_HAND_CHANGED:'UI.local_raise_hand_changed',LARGE_VIDEO_AVATAR_VISIBLE:'UI.large_video_avatar_visible',LARGE_VIDEO_ID_CHANGED:'UI.large_video_id_changed'}},889,[]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.SET_AUDIO_ONLY=void 0;e.SET_AUDIO_ONLY='SET_AUDIO_ONLY'},890,[]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=(0,r(d[0]).getLogger)('features/base/audio-only');e.default=o},891,[581]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0])(r(d[1])),n=r(d[2]),u=r(d[3]),l={enabled:!1};n.ReducerRegistry.register('features/base/audio-only',function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:l,o=arguments.length>1?arguments[1]:void 0;switch(o.type){case u.SET_AUDIO_ONLY:return(0,t.default)({},n,{enabled:o.audioOnly});default:return n}})},892,[3,54,539,890]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]),o=t(r(d[1])),c=r(d[2]),l=t(r(d[3])),s=r(d[4]),u=r(d[5]),v=r(d[6]),n=r(d[7]),I=r(d[8]),f=r(d[9]),D=t(r(d[10])),p={audioOutputDeviceId:void 0,avatarID:void 0,avatarURL:void 0,cameraDeviceId:void 0,disableCallIntegration:void 0,disableP2P:void 0,displayName:void 0,email:void 0,localFlipX:!0,micDeviceId:void 0,serverURL:void 0,startAudioOnly:!1,startWithAudioMuted:!1,startWithVideoMuted:!1,userSelectedAudioOutputDeviceId:void 0,userSelectedCameraDeviceId:void 0,userSelectedMicDeviceId:void 0,userSelectedAudioOutputDeviceLabel:void 0,userSelectedCameraDeviceLabel:void 0,userSelectedMicDeviceLabel:void 0},w={};function S(){var t=window.localStorage.getItem('features/base/profile');if(t)try{if((t=JSON.parse(t))&&'object'==typeof t)return t.profile||t}catch(t){D.default.warn('Error parsing persisted legacy profile',t)}return{}}function b(t){var o=t,s=window.localStorage.getItem('displayname'),v=window.localStorage.getItem('email'),n=l.default.escape(window.localStorage.getItem('avatarId')),f=null===s?void 0:l.default.escape(s),D=null===v?void 0:l.default.escape(v);if(n||(n=(0,c.randomHexString)(32)),o=(0,I.assignIfDefined)({avatarID:n,displayName:f,email:D},o),!u.browser.isReactNative()){var p=JSON.parse(window.localStorage.getItem('localFlipX')||'true'),w=window.localStorage.getItem('cameraDeviceId')||'',b=window.localStorage.getItem('micDeviceId')||'',y=window.localStorage.getItem('audioOutputDeviceId')||'default';o=(0,I.assignIfDefined)({audioOutputDeviceId:y,cameraDeviceId:w,localFlipX:p,micDeviceId:b},o)}var O=S();return o=(0,I.assignIfDefined)(O,o)}Object.keys(p).forEach(function(t){w[t]=!0}),w.audioOutputDeviceId=!1,w.cameraDeviceId=!1,w.micDeviceId=!1,n.PersistenceRegistry.register("features/base/settings",w),v.ReducerRegistry.register("features/base/settings",function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:p,c=arguments.length>1?arguments[1]:void 0;switch(c.type){case s.APP_WILL_MOUNT:return b(t);case f.SETTINGS_UPDATED:return(0,o.default)({},t,c.settings)}return t})},893,[3,54,894,541,856,388,539,832,808,846,897]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})})},894,[895,896]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.randomAlphanumString=function(t){return f(t,n)},e.randomElement=o,e.randomHexDigit=function(){return o(t)},e.randomHexString=function(n){return f(n,t)},e.randomInt=u;var n='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',t='0123456789abcdef';function o(n){return n[u(0,n.length-1)]}function u(n,t){return Math.floor(Math.random()*(t-n+1))+n}function f(n,t){for(var u='',f=0;f=0)return!0;return!1}},896,[895]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=(0,r(d[0]).getLogger)('features/base/settings');e.default=t},897,[581]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=(0,r(d[0]).getLogger)('features/base/tracks');e.default=t},898,[581]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]),c=r(d[1]),o=r(d[2]),n=r(d[3]),s=t(r(d[4])),u=r(d[5]),T=r(d[6]),E=r(d[7]);function f(t,o){var n=t.getState,s=t.dispatch,T=(0,E.getTrackByJitsiTrack)(n()['features/base/tracks'],o.track.jitsiTrack);if(T&&T.local){var f=T.jitsiTrack;if(T.mediaType===c.MEDIA_TYPE.AUDIO&&T.isReceivingData&&k(t,o.track),T.mediaType===c.MEDIA_TYPE.VIDEO){var A=T.noDataFromSourceNotificationInfo,D=void 0===A?{}:A;if(T.isReceivingData)D.timeout&&(clearTimeout(D.timeout),s((0,u.trackNoDataFromSourceNotificationInfoChanged)(f,void 0))),k(t,o.track);else{if(D.timeout)return;var I=setTimeout(function(){return s((0,u.showNoDataFromSourceVideoError)(f))},5e3);s((0,u.trackNoDataFromSourceNotificationInfoChanged)(f,{timeout:I}))}}}}function A(t,c){var o=t.getState,n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return(0,E.getLocalTrack)(o()['features/base/tracks'],c,n)}function k(t,c){var n=t.getState,s=t.dispatch,T=(0,E.getTrackByJitsiTrack)(n()['features/base/tracks'],c.jitsiTrack)||{},f=T.jitsiTrack,A=T.noDataFromSourceNotificationInfo,k=void 0===A?{}:A;k&&k.uid&&(s((0,o.hideNotification)(k.uid)),s((0,u.trackNoDataFromSourceNotificationInfoChanged)(f,void 0)))}function D(t,c,o){var n=c.ensureTrack,s=c.muted,T=A(t,o,!0);if(T){var f=T.jitsiTrack;f&&(0,E.setTrackMuted)(f,s)}else!s&&n&&'undefined'==typeof APP&&t.dispatch((0,u.createLocalTracksA)({devices:[o]}))}n.MiddlewareRegistry.register(function(t){return function(o){return function(n){switch(n.type){case T.TRACK_NO_DATA_FROM_SOURCE:var u=o(n);return f(t,n),u;case T.TRACK_REMOVED:k(t,n.track);break;case c.SET_AUDIO_MUTED:if(!n.muted&&(0,E.isUserInteractionRequiredForUnmute)(t.getState()))return;D(t,n,c.MEDIA_TYPE.AUDIO);break;case c.SET_CAMERA_FACING_MODE:var I,_=A(t,c.MEDIA_TYPE.VIDEO);_&&(I=_.jitsiTrack)&&I.getCameraFacingMode()!==n.cameraFacingMode&&t.dispatch((0,c.toggleCameraFacingMode)());break;case c.SET_VIDEO_MUTED:if(!n.muted&&(0,E.isUserInteractionRequiredForUnmute)(t.getState()))return;D(t,n,c.MEDIA_TYPE.VIDEO);break;case c.TOGGLE_CAMERA_FACING_MODE:var P,M=A(t,c.MEDIA_TYPE.VIDEO);if(M&&(P=M.jitsiTrack)){P._switchCamera();var v=P.getCameraFacingMode()===c.CAMERA_FACING_MODE.USER;t.dispatch({type:T.TRACK_UPDATED,track:{jitsiTrack:P,mirror:v}})}break;case T.TOGGLE_SCREENSHARING:'object'==typeof APP&&APP.UI.emitEvent(s.default.TOGGLE_SCREENSHARING);break;case T.TRACK_UPDATED:if('undefined'!=typeof APP){var S=n.track.jitsiTrack,C=S.isMuted(),R=S.getParticipantId();S.isVideoTrack()?(S.isLocal()?APP.conference.setVideoMuteStatus(C):APP.UI.setVideoMuted(R,C),APP.UI.onPeerVideoTypeChanged(R,S.videoType)):S.isLocal()?APP.conference.setAudioMuteStatus(C):APP.UI.setAudioMuted(R,C)}}return o(n)}}})},899,[3,751,592,539,889,801,802,803]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]),c=t(r(d[1])),n=t(r(d[2])),u=r(d[3]),T=r(d[4]),s=r(d[5]);function R(t,c){switch(c.type){case u.PARTICIPANT_ID_CHANGED:if(t.participantId===c.oldValue)return(0,n.default)({},t,{participantId:c.newValue});break;case s.TRACK_UPDATED:var T=c.track;if(t.jitsiTrack===T.jitsiTrack)for(var R in T)if(t[R]!==T[R])return(0,n.default)({},t,T);break;case s.TRACK_NO_DATA_FROM_SOURCE:var A=c.track;if(t.jitsiTrack===A.jitsiTrack){var _=A.jitsiTrack.isReceivingData();if(t.isReceivingData!==_)return(0,n.default)({},t,{isReceivingData:_})}}return t}T.ReducerRegistry.register('features/base/tracks',function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1?arguments[1]:void 0;switch(n.type){case u.PARTICIPANT_ID_CHANGED:case s.TRACK_NO_DATA_FROM_SOURCE:case s.TRACK_UPDATED:return t.map(function(t){return R(t,n)});case s.TRACK_ADDED:var T=t;return n.track.local&&(T=t.filter(function(t){return!t.local||t.mediaType!==n.track.mediaType})),(0,c.default)(T).concat([n.track]);case s.TRACK_CREATE_CANCELED:case s.TRACK_CREATE_ERROR:return t.filter(function(t){return!t.local||t.mediaType!==n.trackType});case s.TRACK_REMOVED:return t.filter(function(t){return t.jitsiTrack!==n.track.jitsiTrack});case s.TRACK_WILL_CREATE:return(0,c.default)(t).concat([n.track]);default:return t}})},900,[3,32,54,537,539,802]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.isVideoMutedByAudioOnly=function(t){return u(t,n.VIDEO_MUTISM_AUTHORITY.AUDIO_ONLY)},e.isVideoMutedByUser=function(t){return u(t,n.VIDEO_MUTISM_AUTHORITY.USER)},e.shouldRenderVideoTrack=function(t,n){return t&&!t.muted&&(!n||t.videoStarted)};var t=r(d[0]),n=r(d[1]);function u(n,u){var o=(0,t.toState)(n)['features/base/media'].video.muted;return Boolean(o&u)}},901,[539,754]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]),u=r(d[2]),o=r(d[3]),s=r(d[4]),c=t(r(d[5])),l=r(d[6]),A=r(d[7]),T=r(d[8]),_=r(d[9]),y=r(d[10]),M=t(r(d[11])),E=r(d[12]);function I(t,u,o){var s=t.dispatch,c='active'!==o.appState;return(0,n.sendAnalytics)((0,n.createTrackMutedEvent)('video','background mode',c)),s((0,_.setVideoMuted)(c,y.VIDEO_MUTISM_AUTHORITY.BACKGROUND)),u(o)}function S(t,u,o){var s=t.dispatch,c=o.audioOnly,l=o.ensureVideoTrack;return(0,n.sendAnalytics)((0,n.createTrackMutedEvent)('video','audio-only mode',c)),s((0,_.setVideoMuted)(c,y.VIDEO_MUTISM_AUTHORITY.AUDIO_ONLY,l)),u(o)}function O(t,u,l){var T,I=t.dispatch,S=(0,t.getState)(),O=l.room,f=(0,s.isRoomValid)(O),v={config:!0,settings:!0,urlParams:!0,jwt:!1},D=f?Boolean((0,A.getPropertyValue)(S,'startWithAudioMuted',v)):E._AUDIO_INITIAL_MEDIA_STATE.muted,p=f?Boolean((0,A.getPropertyValue)(S,'startWithVideoMuted',v)):E._VIDEO_INITIAL_MEDIA_STATE.muted;return(0,n.sendAnalytics)((0,n.createStartMutedConfigurationEvent)('local',D,p)),M.default.log("Start muted: "+(D?'audio, ':'')+(p?'video':'')),I((0,_.setAudioMuted)(D)),I((0,_.setCameraFacingMode)(y.CAMERA_FACING_MODE.USER)),I((0,_.setVideoMuted)(p)),T=!c.default.mediaDevices.supportsVideo()||Boolean((0,A.getPropertyValue)(S,'startAudioOnly',{config:f,urlParams:!0,jwt:!1,settings:!0})),(0,n.sendAnalytics)((0,n.createStartAudioOnlyEvent)(T)),M.default.log("Start audio only set to "+T.toString()),I((0,o.setAudioOnly)(T,!1)),u(l)}function f(t,u){var o=(0,t.getState)()['features/base/media'],s=Boolean(o[u.mediaType].muted);u.muted!==s&&((0,n.sendAnalytics)((0,n.createSyncTrackStateEvent)(u.mediaType,s)),M.default.log("Sync "+u.mediaType+" track muted state to "+(s?'muted':'unmuted')),u.muted=s,(0,T.setTrackMuted)(u.jitsiTrack,s))}l.MiddlewareRegistry.register(function(t){return function(n){return function(c){switch(c.type){case u.APP_STATE_CHANGED:return I(t,n,c);case o.SET_AUDIO_ONLY:return S(t,n,c);case s.SET_ROOM:return O(t,n,c);case T.TRACK_ADDED:var l=n(c),A=c.track;return A.local&&f(t,A),l}return n(c)}}})},902,[3,385,903,887,383,388,539,844,800,752,754,760,908]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})}),r(d[2]),r(d[3])},903,[904,905,906,907]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e._setAppStateListener=function(n){return{type:t._SET_APP_STATE_LISTENER,listener:n}},e.appStateChanged=function(n){return{type:t.APP_STATE_CHANGED,appState:n}};var t=r(d[0])},904,[905]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.APP_STATE_CHANGED=e._SET_APP_STATE_LISTENER=void 0;e._SET_APP_STATE_LISTENER='_SET_APP_STATE_LISTENER';e.APP_STATE_CHANGED='APP_STATE_CHANGED'},905,[]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]),s=r(d[2]),p=r(d[3]),c=r(d[4]);function u(t,n){t((0,p.appStateChanged)(n))}function _(n,s,p){var c=n.getState,u=c()['features/background'].appStateListener,_=s(p),o=c()['features/background'].appStateListener;return u!==o&&(u&&t.AppState.removeEventListener('change',u),o&&t.AppState.addEventListener('change',o)),_}s.MiddlewareRegistry.register(function(t){return function(s){return function(o){switch(o.type){case c._SET_APP_STATE_LISTENER:return _(t,s,o);case n.APP_WILL_MOUNT:var L=t.dispatch;L((0,p._setAppStateListener)(u.bind(void 0,L)));break;case n.APP_WILL_UNMOUNT:t.dispatch((0,p._setAppStateListener)(void 0))}return s(o)}}})},906,[17,856,539,904,905]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0])(r(d[1])),n=r(d[2]),u=r(d[3]),p={appState:'active'};n.ReducerRegistry.register('features/background',function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:p,c=arguments.length>1?arguments[1]:void 0;switch(c.type){case u._SET_APP_STATE_LISTENER:return(0,t.default)({},n,{appStateListener:c.listener});case u.APP_STATE_CHANGED:return(0,t.default)({},n,{appState:c.appState})}return n})},907,[3,54,539,905]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e._VIDEO_INITIAL_MEDIA_STATE=e._AUDIO_INITIAL_MEDIA_STATE=void 0;var E=t(r(d[1])),n=t(r(d[2])),u=r(d[3]),_=r(d[4]),A=r(d[5]),f=r(d[6]),s=r(d[7]),I=r(d[8]),l={available:!0,muted:!1};e._AUDIO_INITIAL_MEDIA_STATE=l;var c={available:!0,facingMode:I.CAMERA_FACING_MODE.USER,muted:0,transforms:{}};function o(t){return(0,n.default)({},t,{transforms:c.transforms})}function M(t,u){var _=u.streamId,A=u.transform;return(0,n.default)({},t,{transforms:(0,n.default)({},t.transforms,(0,E.default)({},_,A))})}function T(t,E){var u=E.track.jitsiTrack;if(u){var _=u.getStreamId();if(_&&_ in t.transforms){var A=(0,n.default)({},t.transforms);return delete A[_],(0,n.default)({},t,{transforms:A})}}return t}e._VIDEO_INITIAL_MEDIA_STATE=c,A.ReducerRegistry.register('features/base/media',(0,u.combineReducers)({audio:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:l,E=arguments.length>1?arguments[1]:void 0;switch(E.type){case s.SET_AUDIO_AVAILABLE:return(0,n.default)({},t,{available:E.available});case s.SET_AUDIO_MUTED:return(0,n.default)({},t,{muted:E.muted});default:return t}},video:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:c,E=arguments.length>1?arguments[1]:void 0;switch(E.type){case _.CONFERENCE_FAILED:case _.CONFERENCE_LEFT:return o(t);case s.SET_CAMERA_FACING_MODE:return(0,n.default)({},t,{facingMode:E.cameraFacingMode});case s.SET_VIDEO_AVAILABLE:return(0,n.default)({},t,{available:E.available});case s.SET_VIDEO_MUTED:return(0,n.default)({},t,{muted:E.muted});case s.STORE_VIDEO_TRANSFORM:return M(t,E);case s.TOGGLE_CAMERA_FACING_MODE:var u=t.facingMode;return u=u===I.CAMERA_FACING_MODE.USER?I.CAMERA_FACING_MODE.ENVIRONMENT:I.CAMERA_FACING_MODE.USER,(0,n.default)({},t,{facingMode:u});case f.TRACK_REMOVED:return T(t,E);default:return t}}}))},908,[3,55,54,561,383,539,800,753,754]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.PARTICIPANT_ROLE=e.PARTICIPANT_LEFT_SOUND_ID=e.PARTICIPANT_JOINED_SOUND_ID=e.MAX_DISPLAY_NAME_LENGTH=e.LOCAL_PARTICIPANT_DEFAULT_ID=e.JIGASI_PARTICIPANT_ICON=e.DEFAULT_AVATAR_RELATIVE_PATH=void 0;var A=r(d[0]);e.DEFAULT_AVATAR_RELATIVE_PATH='images/avatar.png';var I=A.IconPhone;e.JIGASI_PARTICIPANT_ICON=I;e.LOCAL_PARTICIPANT_DEFAULT_ID='local';e.MAX_DISPLAY_NAME_LENGTH=50;e.PARTICIPANT_JOINED_SOUND_ID='PARTICIPANT_JOINED_SOUND';e.PARTICIPANT_LEFT_SOUND_ID='PARTICIPANT_LEFT_SOUND';e.PARTICIPANT_ROLE={MODERATOR:'moderator',NONE:'none',PARTICIPANT:'participant'}},909,[403]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.preloadImage=function(t){if((0,o.isIconUrl)(t))return Promise.resolve(t);return new Promise(function(o,u){n.Image.prefetch(t).then(function(){return o(t)},u)})};var n=r(d[0]),o=r(d[1])},910,[17,748]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"ParticipantView",{enumerable:!0,get:function(){return n.default}});var n=t(r(d[1]))},911,[3,912]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=n(r(d[2])),s=n(r(d[3])),c=n(r(d[4])),l=n(r(d[5])),p=n(r(d[6])),u=n(r(d[7])),f=t(r(d[8])),v=r(d[9]),E=r(d[10]),I=r(d[11]),h=r(d[12]),T=r(d[13]),_=r(d[14]),C=r(d[15]),y=r(d[16]),P=r(d[17]),V=r(d[18]),k=n(r(d[19])),b=(function(t){function n(){return(0,s.default)(this,n),(0,l.default)(this,(0,p.default)(n).apply(this,arguments))}return(0,u.default)(n,t),(0,c.default)(n,[{key:"_renderConnectionInfo",value:function(t){var n;switch(t){case h.JitsiParticipantConnectionStatus.INACTIVE:n='connection.LOW_BANDWIDTH';break;case h.JitsiParticipantConnectionStatus.INTERRUPTED:n='connection.USER_CONNECTION_INTERRUPTED';break;default:return null}var s=this.props,c=s.avatarSize,l=s._participantName,p=s.t,u=(0,o.default)({},k.default.connectionInfoContainer,{width:1.5*c});return f.default.createElement(v.View,{pointerEvents:"box-none",style:u},f.default.createElement(v.Text,{style:k.default.connectionInfoText},p(n,{displayName:l})))}},{key:"render",value:function(){var t=this.props,n=t._connectionStatus,s=t._renderVideo,c=t._videoTrack,l=t.onPress,p=t.tintStyle,u=n!==h.JitsiParticipantConnectionStatus.ACTIVE,I=u||this.props.tintEnabled,C=this.props.testHintId?this.props.testHintId:"org.jitsi.meet.Participant#"+this.props.participantId;return f.default.createElement(_.Container,{onClick:s?void 0:l,style:(0,o.default)({},k.default.participantView,this.props.style),touchFeedback:!1},f.default.createElement(y.TestHint,{id:C,onPress:l,value:""}),s&&f.default.createElement(T.VideoTrack,{onPress:l,videoTrack:c,waitForVideoStarted:!1,zOrder:this.props.zOrder,zoomEnabled:this.props.zoomEnabled}),!s&&f.default.createElement(v.View,{style:k.default.avatarContainer},f.default.createElement(E.Avatar,{participantId:this.props.participantId,size:this.props.avatarSize})),I&&f.default.createElement(_.TintedView,{style:u?void 0:p}),this.props.useConnectivityInfoLabel&&this._renderConnectionInfo(n))}}]),n})(f.Component);var S=(0,I.translate)((0,C.connect)(function(t,n){var o=n.disableVideo,s=n.participantId;return{_connectionStatus:h.JitsiParticipantConnectionStatus.ACTIVE,_participantName:void 0,_renderVideo:(0,V.shouldRenderParticipantVideo)(t,s)&&!o,_videoTrack:(0,P.getTrackByMediaTypeAndParticipant)(t['features/base/tracks'],T.MEDIA_TYPE.VIDEO,s)}})(b));e.default=S},912,[2,3,54,4,5,6,9,10,13,17,399,612,388,751,394,539,913,800,748,926]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"TestConnectionInfo",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(e,"TestHint",{enumerable:!0,get:function(){return u.default}});var n=t(r(d[1])),u=t(r(d[2]))},913,[3,914,924]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=n(r(d[2])),s=n(r(d[3])),l=n(r(d[4])),c=n(r(d[5])),u=n(r(d[6])),f=n(r(d[7])),p=t(r(d[8])),_=r(d[9]),S=r(d[10]),b=r(d[11]),h=r(d[12]),v=r(d[13]),U=(function(t){function n(t){var s;return(0,o.default)(this,n),(s=(0,l.default)(this,(0,c.default)(n).call(this,t)))._onStatsUpdated=s._onStatsUpdated.bind((0,f.default)((0,f.default)(s))),s.state={stats:{bitrate:{download:0,upload:0}}},s}return(0,u.default)(n,t),(0,s.default)(n,[{key:"_onStatsUpdated",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.setState({stats:{bitrate:{download:t.bitrate.download,upload:t.bitrate.upload}}})}},{key:"componentDidMount",value:function(){b.statsEmitter.subscribeToClientStats(this.props._localUserId,this._onStatsUpdated)}},{key:"componentDidUpdate",value:function(t){t._localUserId!==this.props._localUserId&&(b.statsEmitter.unsubscribeToClientStats(t._localUserId,this._onStatsUpdated),b.statsEmitter.subscribeToClientStats(this.props._localUserId,this._onStatsUpdated))}},{key:"componentWillUnmount",value:function(){b.statsEmitter.unsubscribeToClientStats(this.props._localUserId,this._onStatsUpdated)}},{key:"render",value:function(){return this.props._testMode?p.default.createElement(p.Fragment,{accessible:!1},p.default.createElement(h.TestHint,{id:"org.jitsi.meet.conference.connectionState",value:this.props._conferenceConnectionState}),p.default.createElement(h.TestHint,{id:"org.jitsi.meet.conference.joinedState",value:this.props._conferenceJoinedState}),p.default.createElement(h.TestHint,{id:"org.jitsi.meet.stats.rtp",value:JSON.stringify(this.state.stats)})):null}}]),n})(p.Component);var E=(0,S.connect)(function(t){var n=Boolean(t['features/base/conference'].conference),o=(0,_.getLocalParticipant)(t);return{_conferenceConnectionState:t['features/testing'].connectionState,_conferenceJoinedState:n.toString(),_localUserId:o&&o.id,_testMode:(0,v.isTestModeEnabled)(t)}})(U);e.default=E},914,[2,3,4,5,6,9,10,8,13,537,539,915,913,923]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0});var n={statsEmitter:!0};Object.defineProperty(e,"statsEmitter",{enumerable:!0,get:function(){return u.default}});var o=r(d[1]);Object.keys(o).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(n,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return o[t]}}))});var u=t(r(d[2]));r(d[3])},915,[3,916,920,922]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},916,[917]); -__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"ConnectionIndicator",{enumerable:!0,get:function(){return t.default}});var t=n(r(d[1]))},917,[3,918]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),l=t(r(d[2])),o=t(r(d[3])),u=t(r(d[4])),c=t(r(d[5])),f=t(r(d[6])),s=r(d[7]),v=r(d[8]),I=r(d[9]),h=t(r(d[10])),O=r(d[11]),_=[s.IconSignalLevel0,s.IconSignalLevel1,s.IconSignalLevel2],S=(function(t){function s(t){var l;return(0,n.default)(this,s),(l=(0,o.default)(this,(0,u.default)(s).call(this,t))).state={autoHideTimeout:void 0,showIndicator:!1,stats:{}},l}return(0,c.default)(s,t),(0,l.default)(s,[{key:"render",value:function(){var t=this.state,n=t.showIndicator,l=t.stats.percent;if(!n||void 0===l)return null;var o=Math.floor(l/33.4);return f.default.createElement(v.BaseIndicator,{icon:_[o],iconStyle:{color:O.CONNECTOR_INDICATOR_COLORS[o]}})}}]),s})(h.default),C=(0,I.connect)()(S);e.default=C},918,[3,4,5,6,9,10,13,403,394,539,919,921]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.INDICATOR_DISPLAY_THRESHOLD=void 0;var n=t(r(d[1])),o=t(r(d[2])),u=t(r(d[3])),s=t(r(d[4])),p=t(r(d[5])),c=t(r(d[6])),l=t(r(d[7])),f=r(d[8]),h=t(r(d[9]));e.INDICATOR_DISPLAY_THRESHOLD=30;var I=(function(t){function f(t){var n;return(0,o.default)(this,f),(n=(0,s.default)(this,(0,p.default)(f).call(this,t)))._onStatsUpdated=n._onStatsUpdated.bind((0,l.default)((0,l.default)(n))),n}return(0,c.default)(f,t),(0,u.default)(f,[{key:"componentDidMount",value:function(){h.default.subscribeToClientStats(this.props.participantId,this._onStatsUpdated)}},{key:"componentDidUpdate",value:function(t){t.participantId!==this.props.participantId&&(h.default.unsubscribeToClientStats(t.participantId,this._onStatsUpdated),h.default.subscribeToClientStats(this.props.participantId,this._onStatsUpdated))}},{key:"componentWillUnmount",value:function(){h.default.unsubscribeToClientStats(this.props.participantId,this._onStatsUpdated),clearTimeout(this.autoHideTimeout)}},{key:"_onStatsUpdated",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=t.connectionQuality,u=void 0===o?{}:{percent:o},s=(0,n.default)({},this.state.stats,t,u);this.setState({stats:s}),this._updateIndicatorAutoHide(s.percent)}},{key:"_updateIndicatorAutoHide",value:function(t){var n=this;t<30?(clearTimeout(this.autoHideTimeout),this.autoHideTimeout=void 0,this.setState({showIndicator:!0})):this.autoHideTimeout||(this.autoHideTimeout=setTimeout(function(){n.setState({showIndicator:!1})},'undefined'==typeof interfaceConfig?5e3:interfaceConfig.CONNECTION_INDICATOR_AUTO_HIDE_TIMEOUT))}}]),f})(f.Component);e.default=I},919,[3,16,4,5,6,9,10,8,13,920]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),o=t(r(d[2])),s=r(d[3]),u={},f={startListeningForStats:function(t){var n=this;t.on(s.JitsiConnectionQualityEvents.LOCAL_STATS_UPDATED,function(o){return n._onStatsUpdated(t.myUserId(),o)}),t.on(s.JitsiConnectionQualityEvents.REMOTE_STATS_UPDATED,function(t,o){return n._emitStatsUpdate(t,o)}),t.on(s.JitsiE2ePingEvents.E2E_RTT_CHANGED,function(t,o){var s={e2eRtt:o,region:t.getProperty('region')};n._emitStatsUpdate(t.getId(),s)})},subscribeToClientStats:function(t,n){t&&(u[t]||(u[t]=[]),u[t].push(n))},unsubscribeToClientStats:function(t,n){if(u[t]){var o=u[t].filter(function(t){return t!==n});o.length?u[t]=o:delete u[t]}},_emitStatsUpdate:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};(u[t]||[]).forEach(function(t){t(n)})},_onStatsUpdated:function(t,s){var u=this,f=s.framerate||{},c=s.resolution||{},l=(0,n.default)({},s,{framerate:f[t],resolution:c[t]});this._emitStatsUpdate(t,l);var _=Object.keys(f),v=Object.keys(c);o.default.union(_,v).filter(function(n){return n!==t}).forEach(function(t){var n={},o=f[t];o&&(n.framerate=o);var s=c[t];s&&(n.resolution=s),u._emitStatsUpdate(t,n)})}};e.default=f},920,[3,16,541,388]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.CONNECTOR_INDICATOR_COLORS=void 0;var C=r(d[0]),O=[C.ColorPalette.red,C.ColorPalette.Y200,C.ColorPalette.green];e.CONNECTOR_INDICATOR_COLORS=O},921,[406]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]),s=r(d[2]);t.MiddlewareRegistry.register(function(t){return function(t){return function(c){switch(c.type){case n.CONFERENCE_JOINED:s.statsEmitter.startListeningForStats(c.conference)}return t(c)}}})},922,[539,383,915]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.isTestModeEnabled=function(t){var n=t['features/base/config'].testing;return Boolean(n&&n.testMode)}},923,[]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var s=n(r(d[2])),u=n(r(d[3])),l=n(r(d[4])),o=n(r(d[5])),p=n(r(d[6])),f=t(r(d[7])),c=r(d[8]),h=r(d[9]),v=r(d[10]),_=(function(t){function n(){return(0,s.default)(this,n),(0,l.default)(this,(0,o.default)(n).apply(this,arguments))}return(0,p.default)(n,t),(0,u.default)(n,[{key:"render",value:function(){return this.props._testModeEnabled?f.default.createElement(c.Text,{accessibilityLabel:this.props.value,onPress:this.props.onPress,testID:this.props.id}):null}}]),n})(f.Component),b=(0,h.connect)(v._mapStateToProps)(_);e.default=b},924,[2,3,4,5,6,9,10,13,17,539,925]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e._mapStateToProps=function(n){return{_testModeEnabled:(0,t.isTestModeEnabled)(n)}};var t=r(d[0])},925,[923]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=r(d[0]),t={avatarContainer:{alignItems:'center',justifyContent:'center'},connectionInfoText:{color:n.ColorPalette.white,fontSize:12,marginVertical:n.BoxModel.margin,marginHorizontal:n.BoxModel.margin,textAlign:'center'},connectionInfoContainer:{alignSelf:'center',backgroundColor:n.ColorPalette.darkGrey,borderRadius:20,marginTop:n.BoxModel.margin},participantView:{alignItems:'stretch',flex:1,justifyContent:'center'}};e.default=t},926,[406]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0])(r(d[1])),n=r(d[2]),c=r(d[3]),s=r(d[4]),o=r(d[5]),I=r(d[6]),f=r(d[7]),P=r(d[8]),A=r(d[9]),p=r(d[10]),u=r(d[11]),T=r(d[12]),_=r(d[13]);function N(t,n,c){var s=t.getState,o=t.dispatch,I=n(c),f=s()['features/base/settings'];return o((0,A.localParticipantJoined)({avatarID:f.avatarID,avatarURL:f.avatarURL,email:f.email,name:f.displayName})),I}function l(t,n,c){var s=t.dispatch,o=n(c);return s((0,A.localParticipantLeft)()),o}function L(t,n){var s=t.getState,o=t.dispatch,I=s(),f=I['features/base/config'].startAudioMuted;if(!n.participant.local&&(!f||(0,T.getParticipantCount)(I)=s.length)break;f=s[I++]}else{if((I=s.next()).done)break;f=I.value}var P=f;!P.local&&(!t||P.conference!==t)&&c((0,A.participantLeft)(P.id,P.conference))}}),f.StateListenerRegistry.register(function(t){return t['features/base/conference']},function(t,n){var c,s=t.leaving,I=n.dispatch,f=(0,n.getState)(),P=(0,T.getLocalParticipant)(f);P&&(c=P.id)!==u.LOCAL_PARTICIPANT_DEFAULT_ID&&((0,o.forEachConference)(f,function(t){return t===s||t.myUserId()!==c})&&I((0,A.localParticipantIdChanged)(u.LOCAL_PARTICIPANT_DEFAULT_ID)))}),f.StateListenerRegistry.register(function(t){return t['features/base/conference'].conference},function(t,n){t?t.on(I.JitsiConferenceEvents.PARTICIPANT_PROPERTY_CHANGED,function(c,s,o,I){switch(s){case'features_jigasi':n.dispatch((0,A.participantUpdated)({conference:t,id:c.getId(),isJigasi:I}));break;case'features_screen-sharing':n.dispatch((0,A.participantUpdated)({conference:t,id:c.getId(),features:{'screen-sharing':!0}}));break;case'raisedHand':E(n,t,c.getId(),I)}}):E(n,t,void 0,!1)})},927,[3,889,592,928,856,383,388,539,862,538,747,909,748,932]); -__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})})},928,[929,931]); -__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"PresenceLabel",{enumerable:!0,get:function(){return t.default}});var t=n(r(d[1]))},929,[3,930]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=n(r(d[2])),l=n(r(d[3])),s=n(r(d[4])),c=n(r(d[5])),f=n(r(d[6])),p=n(r(d[7])),o=t(r(d[8])),v=r(d[9]),_=r(d[10]),h=r(d[11]),y=r(d[12]),P=r(d[13]),T=(function(t){function n(){return(0,l.default)(this,n),(0,c.default)(this,(0,f.default)(n).apply(this,arguments))}return(0,p.default)(n,t),(0,s.default)(n,[{key:"render",value:function(){var t=this._getPresenceText();if(null===t)return null;var n=this.props,l=n.style,s=n.className;return o.default.createElement(h.Text,(0,u.default)({className:s},l),t)}},{key:"_getPresenceText",value:function(){var t=this.props,n=t._presence,u=t.t;if(!n)return null;var l=P.STATUS_TO_I18N_KEY[n];return l?u(l):n}}]),n})(o.Component);T.defaultProps={_presence:''};var x=(0,v.translate)((0,y.connect)(function(t,n){var u=(0,_.getParticipantById)(t,n.participantID);return{_presence:u&&u.presence||n.defaultPresence}})(T));e.default=x},930,[2,3,16,4,5,6,9,10,13,612,537,394,539,931]); -__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.STATUS_TO_I18N_KEY=e.DISCONNECTED=e.CONNECTED_PHONE_NUMBER=e.CONNECTING2=e.CONNECTING=e.INITIALIZING_CALL=e.EXPIRED=e.IGNORED=e.REJECTED=e.BUSY=e.CONNECTED_USER=e.RINGING=e.CALLING=e.INVITED=void 0;var t,c=n(r(d[1]));e.INVITED="Invited";e.CALLING="calling";e.RINGING="ringing";e.CONNECTED_USER="connected";e.BUSY="busy";e.REJECTED="rejected";e.IGNORED="ignored";e.EXPIRED="expired";e.INITIALIZING_CALL="Initializing Call";e.CONNECTING="Connecting";e.CONNECTING2="Connecting*";e.CONNECTED_PHONE_NUMBER="Connected";e.DISCONNECTED="Disconnected";var N=(t={},(0,c.default)(t,"Invited",'presenceStatus.invited'),(0,c.default)(t,"ringing",'presenceStatus.ringing'),(0,c.default)(t,"calling",'presenceStatus.calling'),(0,c.default)(t,"busy",'presenceStatus.busy'),(0,c.default)(t,"rejected",'presenceStatus.rejected'),(0,c.default)(t,"ignored",'presenceStatus.ignored'),(0,c.default)(t,"expired",'presenceStatus.expired'),(0,c.default)(t,"Initializing Call",'presenceStatus.initializingCall'),(0,c.default)(t,"Connecting",'presenceStatus.connecting'),(0,c.default)(t,"Connecting*",'presenceStatus.connecting2'),(0,c.default)(t,"Connected",'presenceStatus.connected'),(0,c.default)(t,"connected",'presenceStatus.connected'),(0,c.default)(t,"Disconnected",'presenceStatus.disconnected'),t);e.STATUS_TO_I18N_KEY=N},931,[3,55]); +__d(function(g,r,i,a,m,e,d){var l=r(d[0]),t=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[2])),f=t(r(d[3])),n=l(r(d[4])),o=function(l){return f.default.createElement(n.default,(0,u.default)({width:10,height:6,viewBox:"0 0 10 6",fill:"none"},l),f.default.createElement(n.Path,{fillRule:"evenodd",clipRule:"evenodd",d:"M8.07001 0.248238C8.3471 -0.0596449 8.82132 -0.0846038 9.1292 0.192491C9.43709 0.469585 9.46205 0.943802 9.18495 1.25168L5.65622 5.19348C5.35829 5.52451 4.83922 5.52451 4.54128 5.19348L1.06752 1.25168C0.79043 0.943802 0.81539 0.469585 1.12327 0.192491C1.43115 -0.0846038 1.90537 -0.0596449 2.18247 0.248238L5.09875 3.57062L8.07001 0.248238Z",fill:"#5E6D7A"}))};e.default=o},466,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),u=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=u(r(d[2])),c=u(r(d[3])),f=t(r(d[4])),n=function(t){return c.default.createElement(f.default,(0,l.default)({width:32,height:32,viewBox:"0 0 32 32"},t),c.default.createElement(f.Path,{d:"M16 12c2.188 0 4 1.813 4 4s-1.813 4-4 4-4-1.813-4-4 1.813-4 4-4zM16 22.688c3.688 0 6.688-3 6.688-6.688s-3-6.688-6.688-6.688-6.688 3-6.688 6.688 3 6.688 6.688 6.688zM16 6c6.688 0 12.375 4.125 14.688 10-2.313 5.875-8 10-14.688 10s-12.375-4.125-14.688-10c2.313-5.875 8-10 14.688-10z"}))};e.default=n},467,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var c=l(r(d[2])),u=l(r(d[3])),f=t(r(d[4])),n=function(t){return u.default.createElement(f.default,(0,c.default)({width:32,height:32,viewBox:"0 0 32 32"},t),u.default.createElement(f.Path,{d:"M15.813 12h0.188c2.188 0 4 1.813 4 4v0.25zM10.063 13.063c-0.438 0.875-0.75 1.875-0.75 2.938 0 3.688 3 6.688 6.688 6.688 1.063 0 2.063-0.313 2.938-0.75l-2.063-2.063c-0.25 0.063-0.563 0.125-0.875 0.125-2.188 0-4-1.813-4-4 0-0.313 0.063-0.625 0.125-0.875zM2.688 5.688l1.688-1.688 23.625 23.625-1.688 1.688c-1.499-1.48-3.008-2.95-4.5-4.438-1.813 0.75-3.75 1.125-5.813 1.125-6.688 0-12.375-4.125-14.688-10 1.063-2.625 2.813-4.875 5-6.625-1.219-1.218-2.416-2.459-3.625-3.688zM16 9.313c-0.875 0-1.688 0.188-2.438 0.5l-2.875-2.875c1.625-0.625 3.438-0.938 5.313-0.938 6.688 0 12.313 4.125 14.625 10-1 2.5-2.563 4.625-4.563 6.313l-3.875-3.875c0.313-0.75 0.5-1.563 0.5-2.438 0-3.688-3-6.688-6.688-6.688z"}))};e.default=n},468,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),v=l(r(d[3])),c=t(r(d[4])),f=function(t){return v.default.createElement(c.default,(0,u.default)({width:32,height:32,viewBox:"0 0 32 32"},t),v.default.createElement(c.Path,{d:"M18.688 4.313c5.375 1.188 9.313 6 9.313 11.688s-3.938 10.5-9.313 11.688v-2.75c3.875-1.125 6.625-4.688 6.625-8.938s-2.75-7.813-6.625-8.938v-2.75zM22 16c0 2.375-1.313 4.375-3.313 5.375v-10.75c2 1 3.313 3 3.313 5.375zM4 12h5.313l6.688-6.688v21.375l-6.688-6.688h-5.313v-8z"}))};e.default=f},469,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var c=l(r(d[2])),f=l(r(d[3])),s=t(r(d[4])),u=function(t){return f.default.createElement(s.default,(0,c.default)({width:32,height:32,viewBox:"0 0 32 32"},t),f.default.createElement(s.Path,{fill:"#a4b8d1",d:"M14.667 12c0 1.473-1.194 2.667-2.667 2.667s-2.667-1.194-2.667-2.667c0-1.473 1.194-2.667 2.667-2.667s2.667 1.194 2.667 2.667z"}),f.default.createElement(s.Path,{fill:"#a4b8d1",d:"M22.667 12c0 1.473-1.194 2.667-2.667 2.667s-2.667-1.194-2.667-2.667c0-1.473 1.194-2.667 2.667-2.667s2.667 1.194 2.667 2.667z"}),f.default.createElement(s.Path,{fill:"#a4b8d1",d:"M14.667 20c0 1.473-1.194 2.667-2.667 2.667s-2.667-1.194-2.667-2.667c0-1.473 1.194-2.667 2.667-2.667s2.667 1.194 2.667 2.667z"}),f.default.createElement(s.Path,{fill:"#a4b8d1",d:"M13.333 26.667c0 0.736-0.597 1.333-1.333 1.333s-1.333-0.597-1.333-1.333c0-0.736 0.597-1.333 1.333-1.333s1.333 0.597 1.333 1.333z"}),f.default.createElement(s.Path,{fill:"#a4b8d1",d:"M21.333 26.667c0 0.736-0.597 1.333-1.333 1.333s-1.333-0.597-1.333-1.333c0-0.736 0.597-1.333 1.333-1.333s1.333 0.597 1.333 1.333z"}),f.default.createElement(s.Path,{fill:"#a4b8d1",d:"M6.667 20c0 0.736-0.597 1.333-1.333 1.333s-1.333-0.597-1.333-1.333c0-0.736 0.597-1.333 1.333-1.333s1.333 0.597 1.333 1.333z"}),f.default.createElement(s.Path,{fill:"#a4b8d1",d:"M6.667 12c0 0.736-0.597 1.333-1.333 1.333s-1.333-0.597-1.333-1.333c0-0.736 0.597-1.333 1.333-1.333s1.333 0.597 1.333 1.333z"}),f.default.createElement(s.Path,{fill:"#a4b8d1",d:"M28 20c0 0.736-0.597 1.333-1.333 1.333s-1.333-0.597-1.333-1.333c0-0.736 0.597-1.333 1.333-1.333s1.333 0.597 1.333 1.333z"}),f.default.createElement(s.Path,{fill:"#a4b8d1",d:"M28 12c0 0.736-0.597 1.333-1.333 1.333s-1.333-0.597-1.333-1.333c0-0.736 0.597-1.333 1.333-1.333s1.333 0.597 1.333 1.333z"}),f.default.createElement(s.Path,{fill:"#a4b8d1",d:"M13.333 5.333c0 0.736-0.597 1.333-1.333 1.333s-1.333-0.597-1.333-1.333c0-0.736 0.597-1.333 1.333-1.333s1.333 0.597 1.333 1.333z"}),f.default.createElement(s.Path,{fill:"#a4b8d1",d:"M21.333 5.333c0 0.736-0.597 1.333-1.333 1.333s-1.333-0.597-1.333-1.333c0-0.736 0.597-1.333 1.333-1.333s1.333 0.597 1.333 1.333z"}),f.default.createElement(s.Path,{fill:"#a4b8d1",d:"M22.667 20c0 1.473-1.194 2.667-2.667 2.667s-2.667-1.194-2.667-2.667c0-1.473 1.194-2.667 2.667-2.667s2.667 1.194 2.667 2.667z"}))};e.default=u},470,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),c=l(r(d[3])),f=t(r(d[4])),v=function(t){return c.default.createElement(f.default,(0,u.default)({width:32,height:32,viewBox:"0 0 32 32"},t),c.default.createElement(f.Path,{d:"M22.688 14l5.313-5.313v14.625l-5.313-5.313v4.688c0 0.75-0.625 1.313-1.375 1.313h-16c-0.75 0-1.313-0.563-1.313-1.313v-13.375c0-0.75 0.563-1.313 1.313-1.313h16c0.75 0 1.375 0.563 1.375 1.313v4.688z"}))};e.default=v},471,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),c=l(r(d[3])),f=t(r(d[4])),n=function(t){return c.default.createElement(f.default,(0,u.default)({width:32,height:32,viewBox:"0 0 32 32"},t),c.default.createElement(f.Path,{d:"M4.375 2.688l23.625 23.625-1.688 1.688-4.25-4.25c-0.188 0.125-0.5 0.25-0.75 0.25h-16c-0.75 0-1.313-0.563-1.313-1.313v-13.375c0-0.75 0.563-1.313 1.313-1.313h1l-3.625-3.625zM28 8.688v14.25l-14.938-14.938h8.25c0.75 0 1.375 0.563 1.375 1.313v4.688z"}))};e.default=n},472,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),f=l(r(d[3])),n=t(r(d[4])),o=function(t){return f.default.createElement(n.default,(0,u.default)({width:24,height:24,viewBox:"0 0 24 24"},t),f.default.createElement(n.Path,{d:"M17.016 15.609l-3.609-3.609 3.609-3.609-1.406-1.406-3.609 3.609-3.609-3.609-1.406 1.406 3.609 3.609-3.609 3.609 1.406 1.406 3.609-3.609 3.609 3.609zM12 2.016q4.125 0 7.055 2.93t2.93 7.055-2.93 7.055-7.055 2.93-7.055-2.93-2.93-7.055 2.93-7.055 7.055-2.93z"}))};e.default=o},473,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),f=l(r(d[3])),v=t(r(d[4])),c=function(t){return f.default.createElement(v.default,(0,u.default)({width:32,height:32,viewBox:"0 0 32 32"},t),f.default.createElement(v.Path,{d:"M26.688 21.313v-16h-21.375v18.688l2.688-2.688h18.688zM26.688 2.688c1.438 0 2.625 1.188 2.625 2.625v16c0 1.438-1.188 2.688-2.625 2.688h-18.688l-5.313 5.313v-24c0-1.438 1.188-2.625 2.625-2.625h21.375z"}))};e.default=c},474,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),f=l(r(d[3])),n=t(r(d[4])),v=function(t){return f.default.createElement(n.default,(0,u.default)({width:24,height:24,viewBox:"0 0 24 24"},t),f.default.createElement(n.Path,{d:"M2.016 21v-6.984l15-2.016-15-2.016v-6.984l21 9z"}))};e.default=v},475,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),v=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var h=v(r(d[2])),l=v(r(d[3])),u=t(r(d[4])),f=function(t){return l.default.createElement(u.default,(0,h.default)({width:24,height:24,viewBox:"0 0 24 24"},t),l.default.createElement(u.Path,{d:"M18 8.016v-2.016h-12v2.016h12zM14.016 14.016v-2.016h-8.016v2.016h8.016zM6 9v2.016h12v-2.016h-12zM20.016 2.016c1.078 0 1.969 0.891 1.969 1.969v12c0 1.078-0.891 2.016-1.969 2.016h-14.016l-3.984 3.984v-18c0-1.078 0.891-1.969 1.969-1.969h16.031z"}))};e.default=f},476,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),f=l(r(d[3])),n=t(r(d[4])),o=function(t){return f.default.createElement(n.default,(0,u.default)({width:24,height:24,viewBox:"0 0 24 24"},t),f.default.createElement(n.Path,{d:"M9 16.172l10.594-10.594 1.406 1.406-12 12-5.578-5.578 1.406-1.406z"}))};e.default=o},477,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),f=l(r(d[3])),n=t(r(d[4])),o=function(t){return f.default.createElement(n.default,(0,u.default)({width:24,height:24,viewBox:"0 0 24 24"},t),f.default.createElement(n.Path,{d:"M18.984 6.422l-5.578 5.578 5.578 5.578-1.406 1.406-5.578-5.578-5.578 5.578-1.406-1.406 5.578-5.578-5.578-5.578 1.406-1.406 5.578 5.578 5.578-5.578z"}))};e.default=o},478,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var v=r(d[0]),h=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=h(r(d[2])),c=h(r(d[3])),u=v(r(d[4])),l=function(v){return c.default.createElement(u.default,(0,t.default)({width:24,height:24,viewBox:"0 0 24 24"},v),c.default.createElement(u.Path,{d:"M18 11.016v-1.031c0-0.563-0.422-0.984-0.984-0.984h-3c-0.563 0-1.031 0.422-1.031 0.984v4.031c0 0.563 0.469 0.984 1.031 0.984h3c0.563 0 0.984-0.422 0.984-0.984v-1.031h-1.5v0.516h-2.016v-3h2.016v0.516h1.5zM11.016 11.016v-1.031c0-0.563-0.469-0.984-1.031-0.984h-3c-0.563 0-0.984 0.422-0.984 0.984v4.031c0 0.563 0.422 0.984 0.984 0.984h3c0.563 0 1.031-0.422 1.031-0.984v-1.031h-1.5v0.516h-2.016v-3h2.016v0.516h1.5zM18.984 3.984c1.078 0 2.016 0.938 2.016 2.016v12c0 1.078-0.938 2.016-2.016 2.016h-13.969c-1.125 0-2.016-0.938-2.016-2.016v-12c0-1.078 0.891-2.016 2.016-2.016h13.969z"}))};e.default=l},479,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),c=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var v=c(r(d[2])),u=c(r(d[3])),l=t(r(d[4])),f=function(t){return u.default.createElement(l.default,(0,v.default)({width:32,height:32,viewBox:"0 0 32 32"},t),u.default.createElement(l.Path,{d:"M28 0c2.209 0 4 1.791 4 4v24c0 2.209-1.791 4-4 4s-4-1.791-4-4v-24c0-2.209 1.791-4 4-4zM16 8c2.209 0 4 1.791 4 4v16c0 2.209-1.791 4-4 4s-4-1.791-4-4v-16c0-2.209 1.791-4 4-4zM4 20v0c2.209 0 4 1.791 4 4v4c0 2.209-1.791 4-4 4s-4-1.791-4-4v-4c0-2.209 1.791-4 4-4v0z"}))};e.default=f},480,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),c=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=c(r(d[2])),u=c(r(d[3])),f=t(r(d[4])),n=function(t){return u.default.createElement(f.default,(0,l.default)({width:24,height:24,viewBox:"0 0 24 24"},t),u.default.createElement(f.Path,{d:"M7.75 13c-0.010-0.35 0.15-0.69 0.42-0.92 0.75 0.16 1.45 0.47 2.080 0.92 0 0.68-0.56 1.24-1.25 1.24s-1.24-0.55-1.25-1.24zM13.75 13c0.63-0.44 1.33-0.75 2.080-0.91 0.27 0.23 0.43 0.57 0.42 0.91 0 0.7-0.56 1.26-1.25 1.26s-1.25-0.56-1.25-1.26v0zM12 9c-2.77-0.040-5.5 0.65-7.93 2l-0.070 1c0 1.23 0.29 2.44 0.84 3.54 2.37-0.36 4.76-0.54 7.16-0.54s4.79 0.18 7.16 0.54c0.55-1.1 0.84-2.31 0.84-3.54l-0.070-1c-2.43-1.35-5.16-2.040-7.93-2zM12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10c-5.523 0-10-4.477-10-10s4.477-10 10-10z"}))};e.default=n},481,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var l=r(d[0]),t=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[2])),f=t(r(d[3])),n=l(r(d[4])),o=function(l){return f.default.createElement(n.default,(0,u.default)({width:24,height:24,viewBox:"0 0 24 24",fill:"none"},l),f.default.createElement(n.Path,{fillRule:"evenodd",clipRule:"evenodd",d:"M4 4C4 2.89543 4.89543 2 6 2H14C15.1046 2 16 2.89543 16 4H6V18C4.89543 18 4 17.1046 4 16V4ZM10 8V20H18V8H10ZM10 6H18C19.1046 6 20 6.89543 20 8V20C20 21.1046 19.1046 22 18 22H10C8.89543 22 8 21.1046 8 20V8C8 6.89543 8.89543 6 10 6Z",fill:"#5E6D7A"}))};e.default=o},482,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),f=l(r(d[3])),v=t(r(d[4])),c=function(t){return f.default.createElement(v.default,(0,u.default)({width:24,height:24,viewBox:"0 0 24 24"},t),f.default.createElement(v.Path,{d:"M12.891 16.313l-1.875-1.922v3.797zM11.016 5.813v3.797l1.875-1.922zM15.703 7.688l-4.313 4.313 4.313 4.313-5.719 5.672h-0.984v-7.594l-4.594 4.594-1.406-1.406 5.578-5.578-5.578-5.578 1.406-1.406 4.594 4.594v-7.594h0.984zM19.547 6.703c0.938 1.5 1.453 3.328 1.453 5.203 0 1.969-0.563 3.75-1.547 5.297l-1.172-1.172c0.609-1.219 0.984-2.578 0.984-4.031s-0.375-2.813-0.984-4.031zM14.25 12l2.297-2.297c0.281 0.703 0.469 1.5 0.469 2.297s-0.188 1.641-0.469 2.344z"}))};e.default=c},483,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),c=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=c(r(d[2])),u=c(r(d[3])),f=t(r(d[4])),n=function(t){return u.default.createElement(f.default,(0,l.default)({width:24,height:24,viewBox:"0 0 24 24"},t),u.default.createElement(f.Path,{d:"M15 12c0-1.641-1.359-3-3-3v-2.016c2.766 0 5.016 2.25 5.016 5.016h-2.016zM18.984 12c0-3.891-3.094-6.984-6.984-6.984v-2.016c4.969 0 9 4.031 9 9h-2.016zM20.016 15.516c0.563 0 0.984 0.422 0.984 0.984v3.516c0 0.563-0.422 0.984-0.984 0.984-9.375 0-17.016-7.641-17.016-17.016 0-0.563 0.422-0.984 0.984-0.984h3.516c0.563 0 0.984 0.422 0.984 0.984 0 1.266 0.188 2.438 0.563 3.563 0.094 0.328 0.047 0.75-0.234 1.031l-2.203 2.203c1.453 2.859 3.797 5.156 6.609 6.609l2.203-2.203c0.281-0.281 0.703-0.328 1.031-0.234 1.125 0.375 2.297 0.563 3.563 0.563z"}))};e.default=n},484,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),u=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var v=u(r(d[2])),c=u(r(d[3])),l=t(r(d[4])),f=function(t){return c.default.createElement(l.default,(0,v.default)({width:24,height:24,viewBox:"0 0 24 24"},t),c.default.createElement(l.Path,{d:"M12 0.984c4.969 0 9 4.031 9 9v7.031c0 1.641-1.359 3-3 3h-3v-8.016h3.984v-2.016c0-3.891-3.094-6.984-6.984-6.984s-6.984 3.094-6.984 6.984v2.016h3.984v8.016h-3c-1.641 0-3-1.359-3-3v-7.031c0-4.969 4.031-9 9-9z"}))};e.default=f},485,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),c=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=c(r(d[2])),l=c(r(d[3])),v=t(r(d[4])),f=function(t){return l.default.createElement(v.default,(0,u.default)({width:28,height:28,viewBox:"0 0 28 28"},t),l.default.createElement(v.Path,{d:"M26 10c1.109 0 2 0.891 2 2s-0.891 2-2 2v6c0 1.094-0.906 2-2 2-2.781-2.312-7.266-5.484-12.688-5.938-1.859 0.625-2.5 2.797-1.281 4.047-1.094 1.797 0.313 3.063 1.969 4.359-0.969 1.906-5 1.937-6.438 0.609-0.906-2.781-2.25-5.563-1.156-9.078h-1.906c-1.375 0-2.5-1.125-2.5-2.5v-3c0-1.375 1.125-2.5 2.5-2.5h7.5c6 0 11-3.5 14-6 1.094 0 2 0.906 2 2v6zM24 19.437v-14.906c-4.078 3.125-8.031 4.922-12 5.359v4.219c3.969 0.438 7.922 2.203 12 5.328z"}))};e.default=f},486,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var l=r(d[0]),t=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var C=t(r(d[2])),u=t(r(d[3])),f=l(r(d[4])),n=function(l){return u.default.createElement(f.default,(0,C.default)({width:24,height:24,viewBox:"0 0 24 24",fill:"none"},l),u.default.createElement(f.Path,{fillRule:"evenodd",clipRule:"evenodd",d:"M11 13.3705V5C11 4.44772 11.4477 4 12 4C12.5523 4 13 4.44772 13 5V13.4667L15.631 10.5433C16.0005 10.1328 16.6328 10.0995 17.0433 10.469C17.4538 10.8384 17.4871 11.4707 17.1176 11.8812L12.1064 17.4492C12.0727 17.4867 12.0139 17.4867 11.9802 17.4492L6.96897 11.8812C6.59951 11.4707 6.63278 10.8384 7.04329 10.469C7.4538 10.0995 8.08609 10.1328 8.45555 10.5433L11 13.3705ZM20 15C20 14.4477 20.4477 14 21 14C21.5523 14 22 14.4477 22 15V21C22 21.5523 21.5523 22 21 22H3C2.96548 22 2.93137 21.9983 2.89776 21.9948C2.3935 21.9436 2 21.5178 2 21V15C2 14.4477 2.44772 14 3 14C3.55228 14 4 14.4477 4 15V20H20V15Z",fill:"#A4B8D1"}))};e.default=n},487,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),u=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=u(r(d[2])),f=u(r(d[3])),c=t(r(d[4])),n=function(t){return f.default.createElement(c.default,(0,l.default)({width:24,height:24,viewBox:"0 0 24 24"},t),f.default.createElement(c.Path,{d:"m 5.6875,10.59375 h 12.625 c 0.779062,0 1.40625,0.627187 1.40625,1.40625 0,0.779062 -0.627188,1.40625 -1.40625,1.40625 H 5.6875 c -0.7790625,0 -1.40625,-0.627188 -1.40625,-1.40625 0,-0.779063 0.6271875,-1.40625 1.40625,-1.40625 z",id:"rect3711"}))};e.default=n},488,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),v=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var h=v(r(d[2])),u=v(r(d[3])),l=t(r(d[4])),c=function(t){return u.default.createElement(l.default,(0,h.default)({width:24,height:24,viewBox:"0 0 24 24"},t),u.default.createElement(l.Path,{d:"M14.016 14.016v1.969h-7.031v-1.969h7.031zM18.984 18.984v-10.969h-13.969v10.969h13.969zM18.984 3c1.078 0 2.016 0.938 2.016 2.016v13.969c0 1.078-0.938 2.016-2.016 2.016h-13.969c-1.125 0-2.016-0.938-2.016-2.016v-13.969c0-1.078 0.891-2.016 2.016-2.016h0.984v-2.016h2.016v2.016h7.969v-2.016h2.016v2.016h0.984zM17.016 9.984v2.016h-10.031v-2.016h10.031z"}))};e.default=c},489,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var l=r(d[0]),t=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var C=t(r(d[2])),u=t(r(d[3])),f=l(r(d[4])),n=function(l){return u.default.createElement(f.default,(0,C.default)({width:16,height:16,viewBox:"0 0 16 16",fill:"none"},l),u.default.createElement(f.Path,{fillRule:"evenodd",clipRule:"evenodd",d:"M1.33331 8.00004C1.33331 11.6819 4.31808 14.6667 7.99998 14.6667C11.6819 14.6667 14.6666 11.6819 14.6666 8.00004C14.6666 4.31814 11.6819 1.33337 7.99998 1.33337C4.31808 1.33337 1.33331 4.31814 1.33331 8.00004ZM13.3333 8.00005C13.3333 10.9456 10.9455 13.3334 7.99998 13.3334C5.05446 13.3334 2.66665 10.9456 2.66665 8.00005C2.66665 5.05453 5.05446 2.66672 7.99998 2.66672C10.9455 2.66672 13.3333 5.05453 13.3333 8.00005ZM7.33331 4.66673C7.33331 4.29854 7.63179 4.00006 7.99998 4.00006C8.36817 4.00006 8.66665 4.29854 8.66665 4.66673V8.00006C8.66665 8.36825 8.36817 8.66673 7.99998 8.66673C7.63179 8.66673 7.33331 8.36825 7.33331 8.00006V4.66673ZM7.99998 10C7.63179 10 7.33331 10.2985 7.33331 10.6667C7.33331 11.0349 7.63179 11.3334 7.99998 11.3334C8.36817 11.3334 8.66665 11.0349 8.66665 10.6667C8.66665 10.2985 8.36817 10 7.99998 10Z",fill:"white"}))};e.default=n},490,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),C=l(r(d[3])),f=t(r(d[4])),n=function(t){return C.default.createElement(f.default,(0,u.default)({width:16,height:16,viewBox:"0 0 16 16"},t),C.default.createElement(f.Path,{fillRule:"evenodd",clipRule:"evenodd",d:"M8 14.6667C4.3181 14.6667 1.33333 11.682 1.33333 8.00007C1.33333 4.31817 4.3181 1.3334 8 1.3334C11.6819 1.3334 14.6667 4.31817 14.6667 8.00007C14.6667 11.682 11.6819 14.6667 8 14.6667ZM7.33333 4.66676C7.33333 4.29857 7.6318 4.00009 8 4.00009C8.36819 4.00009 8.66666 4.29857 8.66666 4.66676V8.00009C8.66666 8.36828 8.36819 8.66676 8 8.66676C7.6318 8.66676 7.33333 8.36828 7.33333 8.00009V4.66676ZM8 10.0001C7.63181 10.0001 7.33333 10.2985 7.33333 10.6667C7.33333 11.0349 7.63181 11.3334 8 11.3334C8.36818 11.3334 8.66666 11.0349 8.66666 10.6667C8.66666 10.2985 8.36818 10.0001 8 10.0001Z"}))};e.default=n},491,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),v=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var h=v(r(d[2])),u=v(r(d[3])),l=t(r(d[4])),f=function(t){return u.default.createElement(l.default,(0,h.default)({width:32,height:32,viewBox:"0 0 32 32"},t),u.default.createElement(l.Path,{d:"M21.313 10.688h4v2.625h-6.625v-6.625h2.625v4zM18.688 25.313v-6.625h6.625v2.625h-4v4h-2.625zM10.688 10.688v-4h2.625v6.625h-6.625v-2.625h4zM6.688 21.313v-2.625h6.625v6.625h-2.625v-4h-4z"}))};e.default=f},492,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var c=l(r(d[2])),u=l(r(d[3])),f=t(r(d[4])),v=function(t){return u.default.createElement(f.default,(0,c.default)({width:32,height:32,viewBox:"0 0 32 32"},t),u.default.createElement(f.Path,{d:"M1.333 28h5.333v-16h-5.333v16zM30.667 13.333c0-1.467-1.2-2.667-2.667-2.667h-8.413l1.267-6.093 0.040-0.427c0-0.547-0.227-1.053-0.587-1.413l-1.413-1.4-8.773 8.787c-0.493 0.48-0.787 1.147-0.787 1.88v13.333c0 1.467 1.2 2.667 2.667 2.667h12c1.107 0 2.053-0.667 2.453-1.627l4.027-9.4c0.12-0.307 0.187-0.627 0.187-0.973v-2.547l-0.013-0.013 0.013-0.107z"}))};e.default=v},493,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),v=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var h=v(r(d[2])),u=v(r(d[3])),l=t(r(d[4])),f=function(t){return u.default.createElement(l.default,(0,h.default)({width:32,height:32,viewBox:"0 0 32 32"},t),u.default.createElement(l.Path,{d:"M18.688 6.688h6.625v6.625h-2.625v-4h-4v-2.625zM22.688 22.688v-4h2.625v6.625h-6.625v-2.625h4zM6.688 13.313v-6.625h6.625v2.625h-4v4h-2.625zM9.313 18.688v4h4v2.625h-6.625v-6.625h2.625z"}))};e.default=f},494,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),c=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=c(r(d[2])),u=c(r(d[3])),f=t(r(d[4])),n=function(t){return u.default.createElement(f.default,(0,l.default)({width:32,height:32,viewBox:"0 0 32 32"},t),u.default.createElement(f.Path,{d:"M16 12c-2.125 0-4.188 0.313-6.125 0.938v4.125c0 0.5-0.313 1.063-0.75 1.25-1.313 0.625-2.5 1.438-3.563 2.438-0.25 0.25-0.563 0.375-0.938 0.375s-0.688-0.125-0.938-0.375l-3.313-3.313c-0.25-0.25-0.375-0.563-0.375-0.938s0.125-0.688 0.375-0.938c4.063-3.875 9.563-6.25 15.625-6.25s11.563 2.375 15.625 6.25c0.25 0.25 0.375 0.563 0.375 0.938s-0.125 0.688-0.375 0.938l-3.313 3.313c-0.25 0.25-0.563 0.375-0.938 0.375s-0.688-0.125-0.938-0.375c-1.063-1-2.25-1.813-3.563-2.438-0.438-0.188-0.75-0.625-0.75-1.188v-4.125c-1.938-0.625-4-1-6.125-1z"}))};e.default=n},495,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),c=l(r(d[3])),f=t(r(d[4])),n=function(t){return c.default.createElement(f.default,(0,u.default)({width:24,height:24,viewBox:"0 0 24 24"},t),c.default.createElement(f.Path,{fill:"none",d:"M0 0h24v24H0z"}),c.default.createElement(f.Path,{d:"M11 18h2v-2h-2v2zm1-16C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm0-14c-2.21 0-4 1.79-4 4h2c0-1.1.9-2 2-2s2 .9 2 2c0 2-3 1.75-3 5h2c0-2.25 3-2.5 3-5 0-2.21-1.79-4-4-4z"}))};e.default=n},496,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),u=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=u(r(d[2])),f=u(r(d[3])),v=t(r(d[4])),h=function(t){return f.default.createElement(v.default,(0,l.default)({width:32,height:32,viewBox:"0 0 32 32"},t),f.default.createElement(v.Path,{d:"M16 2.667c-7.36 0-13.333 5.973-13.333 13.333s5.973 13.333 13.333 13.333 13.333-5.973 13.333-13.333-5.973-13.333-13.333-13.333zM17.333 22.667h-2.667v-8h2.667v8zM17.333 12h-2.667v-2.667h2.667v2.667z"}))};e.default=h},497,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),u=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var v=u(r(d[2])),h=u(r(d[3])),l=t(r(d[4])),f=function(t){return h.default.createElement(l.default,(0,v.default)({width:24,height:24,viewBox:"0 0 24 24"},t),h.default.createElement(l.Path,{d:"M18.984 12.984h-6v6h-1.969v-6h-6v-1.969h6v-6h1.969v6h6v1.969z"}))};e.default=f},498,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),f=l(r(d[3])),n=t(r(d[4])),h=function(t){return f.default.createElement(n.default,(0,u.default)({width:32,height:32,viewBox:"0 0 32 32"},t),f.default.createElement(n.Path,{d:"M16 6.688l8.875 13.313h-17.75zM6.688 22.688h18.625v2.625h-18.625v-2.625z"}))};e.default=h},499,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),c=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=c(r(d[2])),u=c(r(d[3])),v=t(r(d[4])),f=function(t){return u.default.createElement(v.default,(0,l.default)({width:24,height:24,viewBox:"0 0 24 24"},t),u.default.createElement(v.Path,{d:"M17.906 17.391c1.313-1.406 2.109-3.328 2.109-5.391 0-3.328-2.063-6.234-5.016-7.406v0.422c0 1.078-0.938 1.969-2.016 1.969h-1.969v2.016c0 0.563-0.469 0.984-1.031 0.984h-1.969v2.016h6c0.563 0 0.984 0.422 0.984 0.984v3h0.984c0.891 0 1.641 0.609 1.922 1.406zM11.016 19.922v-1.922c-1.078 0-2.016-0.938-2.016-2.016v-0.984l-4.781-4.781c-0.141 0.563-0.234 1.172-0.234 1.781 0 4.078 3.094 7.453 7.031 7.922zM12 2.016c5.531 0 9.984 4.453 9.984 9.984s-4.453 9.984-9.984 9.984-9.984-4.453-9.984-9.984 4.453-9.984 9.984-9.984z"}))};e.default=f},500,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),u=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var v=u(r(d[2])),h=u(r(d[3])),l=t(r(d[4])),f=function(t){return h.default.createElement(l.default,(0,v.default)({width:24,height:24,viewBox:"0 0 24 24"},t),h.default.createElement(l.Path,{d:"M3 6h18v2.016h-18v-2.016zM3 12.984v-1.969h18v1.969h-18zM3 18v-2.016h18v2.016h-18z"}))};e.default=f},501,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),f=l(r(d[3])),n=t(r(d[4])),o=function(t){return f.default.createElement(n.default,(0,u.default)({width:32,height:32,viewBox:"0 0 32 32"},t),f.default.createElement(n.Path,{d:"M22.125 11.438l1.875 1.875-8 8-8-8 1.875-1.875 6.125 6.125z"}))};e.default=o},502,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),u=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=u(r(d[2])),f=u(r(d[3])),c=t(r(d[4])),n=function(t){return f.default.createElement(c.default,(0,l.default)({width:24,height:24,viewBox:"0 0 24 24"},t),f.default.createElement(c.Path,{d:"M12 15.984c1.078 0 2.016 0.938 2.016 2.016s-0.938 2.016-2.016 2.016-2.016-0.938-2.016-2.016 0.938-2.016 2.016-2.016zM12 9.984c1.078 0 2.016 0.938 2.016 2.016s-0.938 2.016-2.016 2.016-2.016-0.938-2.016-2.016 0.938-2.016 2.016-2.016zM12 8.016c-1.078 0-2.016-0.938-2.016-2.016s0.938-2.016 2.016-2.016 2.016 0.938 2.016 2.016-0.938 2.016-2.016 2.016z"}))};e.default=n},503,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),f=l(r(d[3])),n=t(r(d[4])),o=function(t){return f.default.createElement(n.default,(0,u.default)({width:32,height:32,viewBox:"0 0 32 32"},t),f.default.createElement(n.Path,{d:"M16 10.688l8 8-1.875 1.875-6.125-6.125-6.125 6.125-1.875-1.875z"}))};e.default=o},504,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),f=l(r(d[3])),n=t(r(d[4])),h=function(t){return f.default.createElement(n.default,(0,u.default)({width:24,height:24,viewBox:"0 0 24 24"},t),f.default.createElement(n.Path,{d:"M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-2 12H6v-2h12v2zm0-3H6V9h12v2zm0-3H6V6h12v2z"}),f.default.createElement(n.Path,{d:"M0 0h24v24H0z",fill:"none"}))};e.default=h},505,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),h=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=h(r(d[2])),c=h(r(d[3])),u=t(r(d[4])),f=function(t){return c.default.createElement(u.default,(0,l.default)({width:38,height:12,viewBox:"0 0 38 12",fill:"#5E6D7A"},t),c.default.createElement(u.Rect,{width:3,height:12,rx:1}),c.default.createElement(u.Rect,{x:5,width:3,height:12,rx:1}),c.default.createElement(u.Rect,{x:10,width:3,height:12,rx:1}),c.default.createElement(u.Rect,{x:15,width:3,height:12,rx:1}),c.default.createElement(u.Rect,{x:20,width:3,height:12,rx:1}),c.default.createElement(u.Rect,{x:25,width:3,height:12,rx:1}),c.default.createElement(u.Rect,{x:30,width:3,height:12,rx:1}),c.default.createElement(u.Rect,{x:35,width:3,height:12,rx:1}))};e.default=f},506,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var c=l(r(d[2])),u=l(r(d[3])),v=t(r(d[4])),f=function(t){return u.default.createElement(v.default,(0,c.default)({width:32,height:32,viewBox:"0 0 32 32"},t),u.default.createElement(v.Path,{d:"M5.688 4l22.313 22.313-1.688 1.688-5.563-5.563c-1 0.625-2.25 1-3.438 1.188v4.375h-2.625v-4.375c-4.375-0.625-8-4.375-8-8.938h2.25c0 4 3.375 6.75 7.063 6.75 1.063 0 2.125-0.25 3.063-0.688l-2.188-2.188c-0.25 0.063-0.563 0.125-0.875 0.125-2.188 0-4-1.813-4-4v-1l-8-8zM20 14.875l-8-7.938v-0.25c0-2.188 1.813-4 4-4s4 1.813 4 4v8.188zM25.313 14.688c0 1.563-0.438 3.063-1.188 4.375l-1.625-1.688c0.375-0.813 0.563-1.688 0.563-2.688h2.25z"}))};e.default=f},507,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),c=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=c(r(d[2])),l=c(r(d[3])),f=t(r(d[4])),v=function(t){return l.default.createElement(f.default,(0,u.default)({width:32,height:32,viewBox:"0 0 32 32"},t),l.default.createElement(f.Path,{d:"M23.063 14.688h2.25c0 4.563-3.625 8.313-8 8.938v4.375h-2.625v-4.375c-4.375-0.625-8-4.375-8-8.938h2.25c0 4 3.375 6.75 7.063 6.75s7.063-2.75 7.063-6.75zM16 18.688c-2.188 0-4-1.813-4-4v-8c0-2.188 1.813-4 4-4s4 1.813 4 4v8c0 2.188-1.813 4-4 4z"}))};e.default=v},508,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var C=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=l(r(d[2])),u=l(r(d[3])),f=C(r(d[4])),n=function(C){return u.default.createElement(f.default,(0,t.default)({width:24,height:24,viewBox:"0 0 24 24",fill:"none"},C),u.default.createElement(f.Path,{fillRule:"evenodd",clipRule:"evenodd",d:"M16 6C16 3.79086 14.2091 2 12 2C9.79086 2 8 3.79086 8 6V12C8 13.8666 9.27853 15.4346 11.0076 15.8759C11.0026 15.9166 11 15.958 11 16V17.917C8.16229 17.441 6 14.973 6 12C6 11.4477 5.55228 11 5 11C4.44772 11 4 11.4477 4 12C4 16.0796 7.05369 19.446 11 19.9381V21C11 21.5523 11.4477 22 12 22C12.5523 22 13 21.5523 13 21V19.9381C16.9463 19.446 20 16.0796 20 12C20 11.4477 19.5523 11 19 11C18.4477 11 18 11.4477 18 12C18 14.973 15.8377 17.441 13 17.917V16C13 15.958 12.9974 15.9166 12.9924 15.8759C14.7215 15.4346 16 13.8666 16 12V6ZM12 4C10.8954 4 10 4.89543 10 6V12C10 13.1046 10.8954 14 12 14C13.1046 14 14 13.1046 14 12V6C14 4.89543 13.1046 4 12 4Z",fill:"#A4B8D1"}))};e.default=n},509,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),f=l(r(d[3])),n=t(r(d[4])),o=function(t){return f.default.createElement(n.default,(0,u.default)({width:32,height:32,viewBox:"0 0 32 32"},t),f.default.createElement(n.Path,{d:"M16 20.563l5 3-1.313-5.688 4.438-3.875-5.875-0.5-2.25-5.375-2.25 5.375-5.875 0.5 4.438 3.875-1.313 5.688zM29.313 12.313l-7.25 6.313 2.188 9.375-8.25-5-8.25 5 2.188-9.375-7.25-6.313 9.563-0.813 3.75-8.813 3.75 8.813z"}))};e.default=o},510,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var C=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=l(r(d[2])),L=l(r(d[3])),u=C(r(d[4])),f=function(C){return L.default.createElement(u.default,(0,t.default)({width:24,height:24,viewBox:"0 0 24 24",fill:"none"},C),L.default.createElement(u.G,{clipPath:"url(#clip0)"},L.default.createElement(u.Path,{fillRule:"evenodd",clipRule:"evenodd",d:"M6 13.078V15C6 16.3999 6.9589 17.5759 8.25572 17.907C8.25195 17.9374 8.25 17.9685 8.25 18V19.4378C6.12171 19.0807 4.5 17.2297 4.5 15C4.5 14.5858 4.16421 14.25 3.75 14.25C3.33579 14.25 3 14.5858 3 15C3 18.0597 5.29027 20.5845 8.25 20.9536V21.75C8.25 22.1642 8.58579 22.5 9 22.5C9.41421 22.5 9.75 22.1642 9.75 21.75V20.9536C10.8412 20.8175 11.8415 20.3884 12.6694 19.7475L15.1986 22.2766C15.4964 22.5744 15.9791 22.5745 16.2768 22.2768C16.5745 21.9791 16.5744 21.4964 16.2766 21.1986L13.7475 18.6694C13.7502 18.6659 13.753 18.6623 13.7557 18.6588L12.6831 17.5861C12.6805 17.5898 12.6779 17.5935 12.6753 17.5972L11.5911 16.513C11.5934 16.5091 11.5957 16.5051 11.598 16.5011L10.4566 15.3596C10.4554 15.3647 10.4541 15.3697 10.4528 15.3748L7.5 12.422V12.403L6 10.903V10.922L2.80143 7.72339C2.50364 7.4256 2.02091 7.42553 1.72322 7.72322C1.42553 8.02091 1.4256 8.50364 1.72339 8.80143L6 13.078ZM7.5 14.578V15C7.5 15.8284 8.17157 16.5 9 16.5C9.1294 16.5 9.25498 16.4836 9.37476 16.4528L7.5 14.578ZM10.513 17.5911C10.2756 17.73 10.0175 17.8372 9.74428 17.907C9.74805 17.9374 9.75 17.9685 9.75 18V19.4378C10.4295 19.3238 11.0573 19.0575 11.5972 18.6753L10.513 17.5911ZM12 14.747L10.5 13.247V10.5C10.5 9.67157 9.82843 9 9 9C8.25144 9 7.63095 9.54832 7.51827 10.2652L6.34845 9.09541C6.85223 8.14635 7.85064 7.5 9 7.5C10.6569 7.5 12 8.84315 12 10.5V14.747ZM13.3623 16.1092L14.5462 17.2932C14.8386 16.5867 15 15.8122 15 15C15 14.5858 14.6642 14.25 14.25 14.25C13.8358 14.25 13.5 14.5858 13.5 15C13.5 15.3828 13.4522 15.7544 13.3623 16.1092Z",fill:"#A4B8D1"}),L.default.createElement(u.Path,{fillRule:"evenodd",clipRule:"evenodd",d:"M16 4.71869V6C16 6.93329 16.6393 7.71727 17.5038 7.93797C17.5013 7.95829 17.5 7.97899 17.5 8V8.95852C16.0811 8.72048 15 7.4865 15 6C15 5.72386 14.7761 5.5 14.5 5.5C14.2239 5.5 14 5.72386 14 6C14 8.03981 15.5268 9.723 17.5 9.96905V10.5C17.5 10.7761 17.7239 11 18 11C18.2761 11 18.5 10.7761 18.5 10.5V9.96905C19.2275 9.87834 19.8943 9.59227 20.4463 9.16499L22.1324 10.8511C22.3309 11.0496 22.6527 11.0496 22.8512 10.8512C23.0496 10.6527 23.0496 10.3309 22.8511 10.1324L21.165 8.4463C21.1668 8.44393 21.1687 8.44155 21.1705 8.43918L20.4554 7.7241C20.4537 7.72656 20.4519 7.72903 20.4502 7.73149L19.7274 7.00869C19.7289 7.00603 19.7305 7.00338 19.732 7.00072L18.9711 6.23977C18.9702 6.24313 18.9694 6.24649 18.9685 6.24984L17 4.28131V4.26869L16 3.26869V3.28131L13.8676 1.14893C13.6691 0.950402 13.3473 0.950351 13.1488 1.14881C12.9504 1.34727 12.9504 1.6691 13.1489 1.86762L16 4.71869ZM17 5.71869V6C17 6.55228 17.4477 7 18 7C18.0863 7 18.17 6.98908 18.2498 6.96854L17 5.71869ZM19.0087 7.72738C18.8504 7.81999 18.6783 7.89148 18.4962 7.93797C18.4987 7.95829 18.5 7.97899 18.5 8V8.95852C18.953 8.88252 19.3715 8.70502 19.7315 8.45019L19.0087 7.72738ZM20 5.83131L19 4.83131V3C19 2.44772 18.5523 2 18 2C17.501 2 17.0873 2.36555 17.0122 2.84348L16.2323 2.06361C16.5682 1.4309 17.2338 1 18 1C19.1046 1 20 1.89543 20 3V5.83131ZM20.9082 6.73948L21.6975 7.52877C21.8924 7.05778 22 6.54145 22 6C22 5.72386 21.7761 5.5 21.5 5.5C21.2239 5.5 21 5.72386 21 6C21 6.25519 20.9681 6.50294 20.9082 6.73948Z",fill:"#A4B8D1"})),L.default.createElement(u.Defs,null,L.default.createElement(u.ClipPath,{id:"clip0"},L.default.createElement(u.Rect,{width:24,height:24,fill:"white"}))))};e.default=f},511,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var C=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=l(r(d[2])),L=l(r(d[3])),u=C(r(d[4])),f=function(C){return L.default.createElement(u.default,(0,t.default)({width:24,height:24,viewBox:"0 0 24 24",fill:"none"},C),L.default.createElement(u.G,{clipPath:"url(#clip0)"},L.default.createElement(u.Path,{fillRule:"evenodd",clipRule:"evenodd",d:"M6 13.078V15C6 16.3999 6.9589 17.5759 8.25572 17.907C8.25195 17.9374 8.25 17.9685 8.25 18V19.4378C6.12171 19.0807 4.5 17.2297 4.5 15C4.5 14.5858 4.16421 14.25 3.75 14.25C3.33579 14.25 3 14.5858 3 15C3 18.0597 5.29027 20.5845 8.25 20.9536V21.75C8.25 22.1642 8.58579 22.5 9 22.5C9.41421 22.5 9.75 22.1642 9.75 21.75V20.9536C10.8412 20.8175 11.8415 20.3884 12.6694 19.7475L15.1986 22.2766C15.4964 22.5744 15.9791 22.5745 16.2768 22.2768C16.5745 21.9791 16.5744 21.4964 16.2766 21.1986L13.7475 18.6694C13.7502 18.6659 13.753 18.6623 13.7557 18.6588L12.6831 17.5861C12.6805 17.5898 12.6779 17.5935 12.6753 17.5972L11.5911 16.513C11.5934 16.5091 11.5957 16.5051 11.598 16.5011L10.4566 15.3596C10.4554 15.3647 10.4541 15.3697 10.4528 15.3748L7.5 12.422V12.403L6 10.903V10.922L2.80143 7.72339C2.50364 7.4256 2.02091 7.42553 1.72322 7.72322C1.42553 8.02091 1.4256 8.50364 1.72339 8.80143L6 13.078ZM7.5 14.578V15C7.5 15.8284 8.17157 16.5 9 16.5C9.1294 16.5 9.25498 16.4836 9.37476 16.4528L7.5 14.578ZM10.513 17.5911C10.2756 17.73 10.0175 17.8372 9.74428 17.907C9.74805 17.9374 9.75 17.9685 9.75 18V19.4378C10.4295 19.3238 11.0573 19.0575 11.5972 18.6753L10.513 17.5911ZM12 14.747L10.5 13.247V10.5C10.5 9.67157 9.82843 9 9 9C8.25144 9 7.63095 9.54832 7.51827 10.2652L6.34845 9.09541C6.85223 8.14635 7.85064 7.5 9 7.5C10.6569 7.5 12 8.84315 12 10.5V14.747ZM13.3623 16.1092L14.5462 17.2932C14.8386 16.5867 15 15.8122 15 15C15 14.5858 14.6642 14.25 14.25 14.25C13.8358 14.25 13.5 14.5858 13.5 15C13.5 15.3828 13.4522 15.7544 13.3623 16.1092Z",fill:"white"}),L.default.createElement(u.Path,{fillRule:"evenodd",clipRule:"evenodd",d:"M16 4.71869V6C16 6.93329 16.6393 7.71727 17.5038 7.93797C17.5013 7.95829 17.5 7.97899 17.5 8V8.95852C16.0811 8.72048 15 7.4865 15 6C15 5.72386 14.7761 5.5 14.5 5.5C14.2239 5.5 14 5.72386 14 6C14 8.03981 15.5268 9.723 17.5 9.96905V10.5C17.5 10.7761 17.7239 11 18 11C18.2761 11 18.5 10.7761 18.5 10.5V9.96905C19.2275 9.87834 19.8943 9.59227 20.4463 9.16499L22.1324 10.8511C22.3309 11.0496 22.6527 11.0496 22.8512 10.8512C23.0496 10.6527 23.0496 10.3309 22.8511 10.1324L21.165 8.4463C21.1668 8.44393 21.1687 8.44155 21.1705 8.43918L20.4554 7.7241C20.4537 7.72656 20.4519 7.72903 20.4502 7.73149L19.7274 7.00869C19.7289 7.00603 19.7305 7.00338 19.732 7.00072L18.9711 6.23977C18.9702 6.24313 18.9694 6.24649 18.9685 6.24984L17 4.28131V4.26869L16 3.26869V3.28131L13.8676 1.14893C13.6691 0.950402 13.3473 0.950351 13.1488 1.14881C12.9504 1.34727 12.9504 1.6691 13.1489 1.86762L16 4.71869ZM17 5.71869V6C17 6.55228 17.4477 7 18 7C18.0863 7 18.17 6.98908 18.2498 6.96854L17 5.71869ZM19.0087 7.72738C18.8504 7.81999 18.6783 7.89148 18.4962 7.93797C18.4987 7.95829 18.5 7.97899 18.5 8V8.95852C18.953 8.88252 19.3715 8.70502 19.7315 8.45019L19.0087 7.72738ZM20 5.83131L19 4.83131V3C19 2.44772 18.5523 2 18 2C17.501 2 17.0873 2.36555 17.0122 2.84348L16.2323 2.06361C16.5682 1.4309 17.2338 1 18 1C19.1046 1 20 1.89543 20 3V5.83131ZM20.9082 6.73948L21.6975 7.52877C21.8924 7.05778 22 6.54145 22 6C22 5.72386 21.7761 5.5 21.5 5.5C21.2239 5.5 21 5.72386 21 6C21 6.25519 20.9681 6.50294 20.9082 6.73948Z",fill:"white"})),L.default.createElement(u.Defs,null,L.default.createElement(u.ClipPath,{id:"clip0"},L.default.createElement(u.Rect,{width:24,height:24,fill:"white"}))))};e.default=f},512,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),f=l(r(d[3])),n=t(r(d[4])),o=function(t){return f.default.createElement(n.default,(0,u.default)({width:24,height:24,viewBox:"0 0 24 24"},t),f.default.createElement(n.Path,{d:"M9.984 6l6 6-6 6-1.406-1.406 4.594-4.594-4.594-4.594z"}))};e.default=o},513,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),v=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var h=v(r(d[2])),l=v(r(d[3])),u=t(r(d[4])),f=function(t){return l.default.createElement(u.default,(0,h.default)({width:24,height:24,viewBox:"0 0 24 24"},t),l.default.createElement(u.Path,{d:"M14.016 3h6.984v6.984h-2.016v-3.563l-9.797 9.797-1.406-1.406 9.797-9.797h-3.563v-2.016zM18.984 18.984v-6.984h2.016v6.984c0 1.078-0.938 2.016-2.016 2.016h-13.969c-1.125 0-2.016-0.938-2.016-2.016v-13.969c0-1.078 0.891-2.016 2.016-2.016h6.984v2.016h-6.984v13.969h13.969z"}))};e.default=f},514,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),c=l(r(d[3])),f=t(r(d[4])),n=function(t){return c.default.createElement(f.default,(0,u.default)({width:24,height:24,viewBox:"0 0 24 24"},t),c.default.createElement(f.Path,{d:"M6.609 10.781c1.453 2.813 3.797 5.156 6.609 6.609l2.203-2.203c0.281-0.281 0.703-0.375 1.031-0.234 1.125 0.375 2.344 0.563 3.563 0.563 0.563 0 0.984 0.422 0.984 0.984v3.516c0 0.563-0.422 0.984-0.984 0.984-9.375 0-17.016-7.641-17.016-17.016 0-0.563 0.422-0.984 0.984-0.984h3.516c0.563 0 0.984 0.422 0.984 0.984 0 1.266 0.188 2.438 0.563 3.563 0.094 0.328 0.047 0.75-0.234 1.031z"}))};e.default=n},515,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),v=l(r(d[3])),h=t(r(d[4])),f=function(t){return v.default.createElement(h.default,(0,u.default)({width:24,height:24,viewBox:"0 0 24 24"},t),v.default.createElement(h.Path,{d:"M21 19.031v-14.063h-18v14.063h18zM21 3q0.797 0 1.406 0.609t0.609 1.406v13.969q0 0.797-0.609 1.406t-1.406 0.609h-18q-0.797 0-1.406-0.609t-0.609-1.406v-13.969q0-0.797 0.609-1.406t1.406-0.609h18zM14.016 15.984l-2.016 2.531-2.016-2.531h4.031zM6 9.984v4.031l-2.484-2.016zM18 9.984l2.484 2.016-2.484 2.016v-4.031zM12 5.484l2.016 2.531h-4.031z"}))};e.default=f},516,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),h=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=h(r(d[2])),u=h(r(d[3])),v=t(r(d[4])),c=function(t){return u.default.createElement(v.default,(0,l.default)({width:34,height:32,viewBox:"0 0 34 32"},t),u.default.createElement(v.Path,{d:"M29.765 0.154h-25.584c-2.275 0-4.131 1.895-4.131 4.224v23.46c0 2.327 1.855 4.222 4.131 4.222h25.584c2.279 0 4.135-1.895 4.135-4.222v-23.46c0-2.329-1.856-4.224-4.135-4.224zM29.573 27.636h-25.192v-23.057h25.188l0.004 23.057z"}),u.default.createElement(v.Path,{d:"M21.43 8.921h6.778v17.711h-6.778v-17.711z"}),u.default.createElement(v.Path,{d:"M13.396 12.937h6.778v13.694h-6.778v-13.694z"}),u.default.createElement(v.Path,{d:"M5.386 16.954h6.755v9.677h-6.755v-9.677z"}))};e.default=c},517,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),v=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var c=v(r(d[2])),l=v(r(d[3])),u=t(r(d[4])),f=function(t){return l.default.createElement(u.default,(0,c.default)({width:32,height:32,viewBox:"0 0 32 32"},t),l.default.createElement(u.Path,{d:"M30.688 7.313v19.375c0 2.938-2.438 5.313-5.375 5.313h-9.688c-1.438 0-2.813-0.563-3.813-1.563l-10.5-10.688s1.688-1.625 1.75-1.625c0.313-0.25 0.688-0.375 1.063-0.375 0.313 0 0.563 0.063 0.813 0.188 0.063 0 5.75 3.25 5.75 3.25v-15.875c0-1.125 0.875-2 2-2s2 0.875 2 2v9.375h1.313v-12.688c0-1.125 0.875-2 2-2s2 0.875 2 2v12.688h1.313v-11.375c0-1.125 0.875-2 2-2s2 0.875 2 2v11.375h1.375v-7.375c0-1.125 0.875-2 2-2s2 0.875 2 2z"}))};e.default=f},518,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var h=r(d[0]),t=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var v=t(r(d[2])),c=t(r(d[3])),l=h(r(d[4])),u=function(h){return c.default.createElement(l.default,(0,v.default)({width:32,height:32,viewBox:"0 0 32 32"},h),c.default.createElement(l.Path,{d:"M16 32c-8.837 0-16-7.163-16-16s7.163-16 16-16c8.837 0 16 7.163 16 16s-7.163 16-16 16zM18.167 18.444h-3.456v-1.851h3.261v-1.26h-3.261v-1.777h3.456v-1.361h-5.052v7.61h5.052v-1.361zM23.087 20c1.839 0 3.181-1.134 3.313-2.779h-1.554c-0.153 0.838-0.84 1.376-1.754 1.376-1.205 0-1.95-0.997-1.95-2.6s0.745-2.595 1.945-2.595c0.909 0 1.601 0.575 1.754 1.45h1.554c-0.116-1.656-1.501-2.853-3.308-2.853-2.214 0-3.578 1.524-3.578 3.997 0 2.479 1.369 4.003 3.578 4.003zM7.196 17.047h1.305l1.422 2.758h1.807l-1.607-3.006c0.877-0.348 1.385-1.192 1.385-2.162 0-1.514-1.030-2.442-2.706-2.442h-3.202v7.61h1.596v-2.758zM7.196 13.482v2.341h1.4c0.803 0 1.274-0.432 1.274-1.165 0-0.722-0.497-1.176-1.289-1.176h-1.385z"}))};e.default=u},519,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),f=l(r(d[3])),c=t(r(d[4])),n=function(t){return f.default.createElement(c.default,(0,u.default)({width:22,height:28,viewBox:"0 0 22 28"},t),f.default.createElement(c.Path,{d:"M21.625 14.484l-20.75 11.531c-0.484 0.266-0.875 0.031-0.875-0.516v-23c0-0.547 0.391-0.781 0.875-0.516l20.75 11.531c0.484 0.266 0.484 0.703 0 0.969z"}))};e.default=n},520,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),u=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=u(r(d[2])),c=u(r(d[3])),f=t(r(d[4])),n=function(t){return c.default.createElement(f.default,(0,l.default)({width:24,height:28,viewBox:"0 0 24 28"},t),c.default.createElement(f.Path,{d:"M24 3v22c0 0.547-0.453 1-1 1h-22c-0.547 0-1-0.453-1-1v-22c0-0.547 0.453-1 1-1h22c0.547 0 1 0.453 1 1z"}))};e.default=n},521,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),f=l(r(d[3])),n=t(r(d[4])),c=function(t){return f.default.createElement(n.default,(0,u.default)({width:24,height:24,viewBox:"0 0 24 24"},t),f.default.createElement(n.Path,{d:"M10 9V5l-7 7 7 7v-4.1c5 0 8.5 1.6 11 5.1-1-5-4-10-11-11z"}),f.default.createElement(n.Path,{d:"M0 0h24v24H0z",fill:"none"}))};e.default=c},522,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),c=l(r(d[3])),f=t(r(d[4])),n=function(t){return c.default.createElement(f.default,(0,u.default)({width:24,height:24,viewBox:"0 0 24 24"},t),c.default.createElement(f.Path,{d:"M12 8.016h1.5v4.219l3.516 2.109-0.75 1.219-4.266-2.578v-4.969zM12.984 3c4.969 0 9 4.031 9 9s-4.031 9-9 9c-2.484 0-4.688-0.984-6.328-2.625l1.406-1.453c1.266 1.266 3 2.063 4.922 2.063 3.891 0 7.031-3.094 7.031-6.984s-3.141-6.984-7.031-6.984-6.984 3.094-6.984 6.984h3l-4.031 4.031-0.094-0.141-3.891-3.891h3c0-4.969 4.031-9 9-9z"}))};e.default=n},523,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),c=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=c(r(d[2])),v=c(r(d[3])),h=t(r(d[4])),l=function(t){return v.default.createElement(h.default,(0,u.default)({width:32,height:32,viewBox:"0 0 32 32"},t),v.default.createElement(h.Path,{d:"M24 26.688v-13.375h-16v13.375h16zM24 10.688c1.438 0 2.688 1.188 2.688 2.625v13.375c0 1.438-1.25 2.625-2.688 2.625h-16c-1.438 0-2.688-1.188-2.688-2.625v-13.375c0-1.438 1.25-2.625 2.688-2.625h12.125v-2.688c0-2.25-1.875-4.125-4.125-4.125s-4.125 1.875-4.125 4.125h-2.563c0-3.688 3-6.688 6.688-6.688s6.688 3 6.688 6.688v2.688h1.313zM16 22.688c-1.438 0-2.688-1.25-2.688-2.688s1.25-2.688 2.688-2.688 2.688 1.25 2.688 2.688-1.25 2.688-2.688 2.688z"}))};e.default=l},524,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),v=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var c=v(r(d[2])),u=v(r(d[3])),h=t(r(d[4])),l=function(t){return u.default.createElement(h.default,(0,c.default)({width:32,height:32,viewBox:"0 0 32 32"},t),u.default.createElement(h.Path,{d:"M24 26.688v-13.375h-16v13.375h16zM11.875 8v2.688h8.25v-2.688c0-2.25-1.875-4.125-4.125-4.125s-4.125 1.875-4.125 4.125zM24 10.688c1.438 0 2.688 1.188 2.688 2.625v13.375c0 1.438-1.25 2.625-2.688 2.625h-16c-1.438 0-2.688-1.188-2.688-2.625v-13.375c0-1.438 1.25-2.625 2.688-2.625h1.313v-2.688c0-3.688 3-6.688 6.688-6.688s6.688 3 6.688 6.688v2.688h1.313zM16 22.688c-1.438 0-2.688-1.25-2.688-2.688s1.25-2.688 2.688-2.688 2.688 1.25 2.688 2.688-1.25 2.688-2.688 2.688z"}))};e.default=l},525,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),f=l(r(d[3])),c=t(r(d[4])),n=function(t){return f.default.createElement(c.default,(0,u.default)({width:24,height:24,viewBox:"0 0 24 24"},t),f.default.createElement(c.Path,{d:"M9.516 14.016c2.484 0 4.5-2.016 4.5-4.5s-2.016-4.5-4.5-4.5-4.5 2.016-4.5 4.5 2.016 4.5 4.5 4.5zM15.516 14.016l4.969 4.969-1.5 1.5-4.969-4.969v-0.797l-0.281-0.281c-1.125 0.984-2.625 1.547-4.219 1.547-3.609 0-6.516-2.859-6.516-6.469s2.906-6.516 6.516-6.516 6.469 2.906 6.469 6.516c0 1.594-0.563 3.094-1.547 4.219l0.281 0.281h0.797z"}))};e.default=n},526,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var l=r(d[0]),c=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=c(r(d[2])),u=c(r(d[3])),f=l(r(d[4])),n=function(l){return u.default.createElement(f.default,(0,t.default)({width:32,height:32,viewBox:"0 0 32 32"},l),u.default.createElement(f.Path,{d:"M16 20.688c2.563 0 4.688-2.125 4.688-4.688s-2.125-4.688-4.688-4.688-4.688 2.125-4.688 4.688 2.125 4.688 4.688 4.688zM25.938 17.313l2.813 2.188c0.25 0.188 0.313 0.563 0.125 0.875l-2.688 4.625c-0.188 0.313-0.5 0.375-0.813 0.25l-3.313-1.313c-0.688 0.5-1.438 1-2.25 1.313l-0.5 3.5c-0.063 0.313-0.313 0.563-0.625 0.563h-5.375c-0.313 0-0.563-0.25-0.625-0.563l-0.5-3.5c-0.813-0.313-1.563-0.75-2.25-1.313l-3.313 1.313c-0.313 0.125-0.625 0.063-0.813-0.25l-2.688-4.625c-0.188-0.313-0.125-0.688 0.125-0.875l2.813-2.188c-0.063-0.438-0.063-0.875-0.063-1.313s0-0.875 0.063-1.313l-2.813-2.188c-0.25-0.188-0.313-0.563-0.125-0.875l2.688-4.625c0.188-0.313 0.5-0.375 0.813-0.25l3.313 1.313c0.688-0.5 1.438-1 2.25-1.313l0.5-3.5c0.063-0.313 0.313-0.563 0.625-0.563h5.375c0.313 0 0.563 0.25 0.625 0.563l0.5 3.5c0.813 0.313 1.563 0.75 2.25 1.313l3.313-1.313c0.313-0.125 0.625-0.063 0.813 0.25l2.688 4.625c0.188 0.313 0.125 0.688-0.125 0.875l-2.813 2.188c0.063 0.438 0.063 0.875 0.063 1.313s0 0.875-0.063 1.313z"}))};e.default=n},527,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),f=l(r(d[3])),n=t(r(d[4])),v=function(t){return f.default.createElement(n.default,(0,u.default)({width:24,height:24,viewBox:"0 0 24 24"},t),f.default.createElement(n.Path,{d:"M21.984 2.016v19.969h-19.969zM20.016 6.844l-13.172 13.172h13.172v-13.172z"}))};e.default=v},528,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),v=l(r(d[3])),h=t(r(d[4])),f=function(t){return v.default.createElement(h.default,(0,u.default)({width:24,height:24,viewBox:"0 0 24 24"},t),v.default.createElement(h.Path,{d:"M2.016 21.984l19.969-19.969v6h-3.984v13.969h-15.984zM20.016 21.984v-1.969h1.969v1.969h-1.969zM20.016 18v-8.016h1.969v8.016h-1.969z"}))};e.default=f},529,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),f=l(r(d[3])),n=t(r(d[4])),o=function(t){return f.default.createElement(n.default,(0,u.default)({width:24,height:24,viewBox:"0 0 24 24"},t),f.default.createElement(n.Path,{d:"M2.016 21.984l19.969-19.969v19.969h-19.969z"}))};e.default=o},530,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var c=l(r(d[2])),u=l(r(d[3])),n=t(r(d[4])),f=function(t){return u.default.createElement(n.default,(0,c.default)({viewBox:"0 0 50 50",enableBackground:"new 0 0 50 50"},t),u.default.createElement(n.Path,{d:"M30.3 13.7L25 8.4l-5.3 5.3-1.4-1.4L25 5.6l6.7 6.7z"}),u.default.createElement(n.Path,{d:"M24 7h2v21h-2z"}),u.default.createElement(n.Path,{d:"M35 40H15c-1.7 0-3-1.3-3-3V19c0-1.7 1.3-3 3-3h7v2h-7c-.6 0-1 .4-1 1v18c0 .6.4 1 1 1h20c.6 0 1-.4 1-1V19c0-.6-.4-1-1-1h-7v-2h7c1.7 0 3 1.3 3 3v18c0 1.7-1.3 3-3 3z"}))};e.default=f},531,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),h=l(r(d[3])),v=t(r(d[4])),c=function(t){return h.default.createElement(v.default,(0,u.default)({width:32,height:32,viewBox:"0 0 32 32"},t),h.default.createElement(v.Path,{d:"M28 22.688v-16h-24v16h24zM28 4c1.438 0 2.688 1.25 2.688 2.688l-0.063 16c0 1.438-1.188 2.625-2.625 2.625h-6.688v2.688h-10.625v-2.688h-6.688c-1.438 0-2.688-1.188-2.688-2.625v-16c0-1.438 1.25-2.688 2.688-2.688h24z"}))};e.default=c},532,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var h=l(r(d[2])),u=l(r(d[3])),v=t(r(d[4])),f=function(t){return u.default.createElement(v.default,(0,h.default)({width:32,height:32,viewBox:"0 0 32 32"},t),u.default.createElement(v.Path,{d:"M17.313 12h7.375l-7.375-7.313v7.313zM21.313 18.688v-2.688h-10.625v2.688h10.625zM21.313 24v-2.688h-10.625v2.688h10.625zM18.688 2.688l8 8v16c0 1.438-1.25 2.625-2.688 2.625h-16c-1.438 0-2.688-1.188-2.688-2.625l0.063-21.375c0-1.438 1.188-2.625 2.625-2.625h10.688z"}))};e.default=f},533,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),f=l(r(d[3])),n=t(r(d[4])),c=function(t){return f.default.createElement(n.default,(0,u.default)({width:32,height:32,viewBox:"0 0 32 32"},t),f.default.createElement(n.Path,{d:"M16 26.688c5.875 0 10.688-4.813 10.688-10.688s-4.813-10.688-10.688-10.688-10.688 4.813-10.688 10.688 4.813 10.688 10.688 10.688zM16 2.688c7.375 0 13.313 5.938 13.313 13.313s-5.938 13.313-13.313 13.313-13.313-5.938-13.313-13.313 5.938-13.313 13.313-13.313zM13.313 22v-12l8 6z"}))};e.default=c},534,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),v=l(r(d[3])),h=t(r(d[4])),c=function(t){return v.default.createElement(h.default,(0,u.default)({width:32,height:32,viewBox:"0 0 32 32"},t),v.default.createElement(h.Path,{d:"M20 20.688l4.688-4.688-4.688-4.688v3.375h-8v-3.375l-4.688 4.688 4.688 4.688v-3.375h8v3.375zM26.688 5.313c1.438 0 2.625 1.25 2.625 2.688v16c0 1.438-1.188 2.688-2.625 2.688h-21.375c-1.438 0-2.625-1.25-2.625-2.688v-16c0-1.438 1.188-2.688 2.625-2.688h4.25l2.438-2.625h8l2.438 2.625h4.25z"}))};e.default=c},535,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var c=r(d[0]),v=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var h=v(r(d[2])),t=v(r(d[3])),u=c(r(d[4])),l=function(c){return t.default.createElement(u.default,(0,h.default)({width:24,height:24,viewBox:"0 0 24 24"},c),t.default.createElement(u.Path,{d:"M2.667 0h5.333c1.473 0 2.667 1.194 2.667 2.667v5.333c0 1.473-1.194 2.667-2.667 2.667h-5.333c-1.473 0-2.667-1.194-2.667-2.667v-5.333c0-1.473 1.194-2.667 2.667-2.667zM4 2.667c-0.736 0-1.333 0.597-1.333 1.333v2.667c0 0.736 0.597 1.333 1.333 1.333h2.667c0.736 0 1.333-0.597 1.333-1.333v-2.667c0-0.736-0.597-1.333-1.333-1.333h-2.667zM2.667 13.333h5.333c1.473 0 2.667 1.194 2.667 2.667v5.333c0 1.473-1.194 2.667-2.667 2.667h-5.333c-1.473 0-2.667-1.194-2.667-2.667v-5.333c0-1.473 1.194-2.667 2.667-2.667zM4 16c-0.736 0-1.333 0.597-1.333 1.333v2.667c0 0.736 0.597 1.333 1.333 1.333h2.667c0.736 0 1.333-0.597 1.333-1.333v-2.667c0-0.736-0.597-1.333-1.333-1.333h-2.667zM16 0h5.333c1.473 0 2.667 1.194 2.667 2.667v5.333c0 1.473-1.194 2.667-2.667 2.667h-5.333c-1.473 0-2.667-1.194-2.667-2.667v-5.333c0-1.473 1.194-2.667 2.667-2.667zM17.333 2.667c-0.736 0-1.333 0.597-1.333 1.333v2.667c0 0.736 0.597 1.333 1.333 1.333h2.667c0.736 0 1.333-0.597 1.333-1.333v-2.667c0-0.736-0.597-1.333-1.333-1.333h-2.667zM16 13.333h5.333c1.473 0 2.667 1.194 2.667 2.667v5.333c0 1.473-1.194 2.667-2.667 2.667h-5.333c-1.473 0-2.667-1.194-2.667-2.667v-5.333c0-1.473 1.194-2.667 2.667-2.667zM17.333 16c-0.736 0-1.333 0.597-1.333 1.333v2.667c0 0.736 0.597 1.333 1.333 1.333h2.667c0.736 0 1.333-0.597 1.333-1.333v-2.667c0-0.736-0.597-1.333-1.333-1.333h-2.667z"}))};e.default=l},536,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),c=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=c(r(d[2])),u=c(r(d[3])),f=t(r(d[4])),n=function(t){return u.default.createElement(f.default,(0,l.default)({width:32,height:32,viewBox:"0 0 32 32"},t),u.default.createElement(f.Path,{d:"M22.667 16c0 3.682-2.985 6.667-6.667 6.667s-6.667-2.985-6.667-6.667c0-3.682 2.985-6.667 6.667-6.667s6.667 2.985 6.667 6.667z"}),u.default.createElement(f.Path,{d:"M16 24c4.418 0 8-3.582 8-8s-3.582-8-8-8v0c-4.418 0-8 3.582-8 8s3.582 8 8 8v0zM16 25.333c-5.155 0-9.333-4.179-9.333-9.333s4.179-9.333 9.333-9.333v0c5.155 0 9.333 4.179 9.333 9.333s-4.179 9.333-9.333 9.333v0z"}))};e.default=n},537,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),h=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=h(r(d[2])),c=h(r(d[3])),u=t(r(d[4])),v=function(t){return c.default.createElement(u.default,(0,l.default)({width:32,height:32,viewBox:"0 0 32 32"},t),c.default.createElement(u.Path,{d:"M16 32c-8.837 0-16-7.163-16-16s7.163-16 16-16c8.837 0 16 7.163 16 16s-7.163 16-16 16zM9.633 19.897h1.788l-2.74-7.891h-1.941l-2.74 7.891h1.657l0.607-1.881h2.773l0.596 1.881zM14.434 12.005h-1.652v5.168c0 1.75 1.285 2.926 3.303 2.926 2.023 0 3.309-1.176 3.309-2.926v-5.168h-1.652v4.998c0 0.995-0.596 1.63-1.657 1.63-1.055 0-1.652-0.634-1.652-1.63v-4.998zM21.32 12v7.897h3.106c2.363 0 3.702-1.438 3.702-4.003 0-2.472-1.356-3.894-3.702-3.894h-3.106zM22.971 13.411v5.075h1.192c1.46 0 2.28-0.897 2.28-2.565 0-1.597-0.848-2.51-2.28-2.51h-1.192zM7.609 13.646l-0.99 3.095h2.067l-0.979-3.095h-0.098z"}))};e.default=v},538,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),h=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var v=h(r(d[2])),u=h(r(d[3])),l=t(r(d[4])),c=function(t){return u.default.createElement(l.default,(0,v.default)({width:32,height:32,viewBox:"0 0 32 32"},t),u.default.createElement(l.Path,{d:"M16 32c-8.837 0-16-7.163-16-16s7.163-16 16-16c8.837 0 16 7.163 16 16s-7.163 16-16 16zM15.042 20v-7.994h-1.696v3.224h-3.65v-3.224h-1.696v7.994h1.696v-3.341h3.65v3.341h1.696zM17.008 12v8h3.19c2.426 0 3.802-1.457 3.802-4.055 0-2.504-1.393-3.945-3.802-3.945h-3.19zM18.704 13.429v5.141h1.224c1.499 0 2.342-0.909 2.342-2.598 0-1.618-0.87-2.543-2.342-2.543h-1.224z"}))};e.default=c},539,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),h=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=h(r(d[2])),l=h(r(d[3])),v=t(r(d[4])),c=function(t){return l.default.createElement(v.default,(0,u.default)({width:32,height:32,viewBox:"0 0 32 32"},t),l.default.createElement(v.Path,{d:"M16 32c-8.837 0-16-7.163-16-16s7.163-16 16-16c8.837 0 16 7.163 16 16s-7.163 16-16 16zM14.762 18.459h-3.511v-6.453h-1.652v7.891h5.162v-1.438zM16.261 12v7.897h3.106c2.363 0 3.702-1.438 3.702-4.003 0-2.472-1.356-3.894-3.702-3.894h-3.106zM17.913 13.411v5.075h1.192c1.46 0 2.28-0.897 2.28-2.565 0-1.597-0.848-2.51-2.28-2.51h-1.192z"}))};e.default=c},540,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),c=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=c(r(d[2])),u=c(r(d[3])),h=t(r(d[4])),f=function(t){return u.default.createElement(h.default,(0,l.default)({width:32,height:32,viewBox:"0 0 32 32"},t),u.default.createElement(h.Path,{d:"M16 32c-8.837 0-16-7.163-16-16s7.163-16 16-16c8.837 0 16 7.163 16 16s-7.163 16-16 16zM8.8 17.901c0.060 1.471 1.28 2.395 3.161 2.395 1.98 0 3.199-0.973 3.199-2.565 0-1.225-0.684-1.909-2.27-2.242l-0.952-0.202c-0.924-0.197-1.302-0.476-1.302-0.963 0-0.602 0.547-0.984 1.373-0.984 0.798 0 1.378 0.416 1.455 1.039h1.553c-0.049-1.405-1.28-2.379-3.019-2.379-1.821 0-3.019 0.979-3.019 2.466 0 1.203 0.705 1.952 2.144 2.253l1.028 0.219c0.968 0.208 1.362 0.498 1.362 1.001 0 0.596-0.607 1.012-1.466 1.012-0.93 0-1.575-0.41-1.652-1.050h-1.597zM16.719 12.197v7.897h3.106c2.363 0 3.702-1.438 3.702-4.003 0-2.472-1.356-3.894-3.702-3.894h-3.106zM18.37 13.608v5.075h1.192c1.46 0 2.28-0.897 2.28-2.565 0-1.597-0.848-2.51-2.28-2.51h-1.192z"}))};e.default=f},541,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var l=r(d[0]),t=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var C=t(r(d[2])),u=t(r(d[3])),f=l(r(d[4])),n=function(l){return u.default.createElement(f.default,(0,C.default)({width:24,height:24,viewBox:"0 0 24 24",fill:"none"},l),u.default.createElement(f.Path,{fillRule:"evenodd",clipRule:"evenodd",d:"M11.1799 3.68341L6 8H3C2.44772 8 2 8.44771 2 9V15C2 15.5523 2.44772 16 3 16H6L11.1799 20.3166C11.2698 20.3915 11.383 20.4325 11.5 20.4325C11.7761 20.4325 12 20.2086 12 19.9325V4.06752C12 3.95055 11.959 3.83728 11.8841 3.74743C11.7073 3.53529 11.392 3.50662 11.1799 3.68341ZM4 10H6.7241L10 7.27008V16.7299L6.7241 14H4V10ZM14 8C16.2091 8 18 9.79086 18 12C18 14.2091 16.2091 16 14 16V14C15.1046 14 16 13.1046 16 12C16 10.8954 15.1046 10 14 10V8ZM14 4C18.4183 4 22 7.58172 22 12C22 16.4183 18.4183 20 14 20V18C17.3137 18 20 15.3137 20 12C20 8.68629 17.3137 6 14 6V4Z",fill:"#A4B8D1"}))};e.default=n},542,[2,3,16,13,420]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])),n=t(r(d[2])),o=t(r(d[3])),f=t(r(d[4])),l=t(r(d[5])),c=(function(t){function c(){return(0,u.default)(this,c),(0,o.default)(this,(0,f.default)(c).apply(this,arguments))}return(0,l.default)(c,t),(0,n.default)(c,[{key:"_isIcon",value:function(t){return Boolean(t)&&('object'==typeof t||'function'==typeof t)}}]),c})(r(d[6]).PureComponent);e.default=c},543,[3,4,5,6,9,10,13]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),o=r(d[2]),l=r(d[3]),u={avatarContainer:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:65;return{alignItems:'center',borderRadius:t/2,height:t,justifyContent:'center',overflow:'hidden',width:t}},avatarContent:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:65;return{height:t,width:t}},badge:function(){var t,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:65;switch(arguments.length>1?arguments[1]:void 0){case'available':t='rgb(110, 176, 5)';break;case'away':t='rgb(250, 201, 20)';break;case'busy':t='rgb(233, 0, 27)';break;case'idle':t='rgb(172, 172, 172)'}return{backgroundColor:t,borderRadius:n/2,bottom:0,height:.3*n,position:'absolute',width:.3*n}},badgeContainer:(0,n.default)({},o.StyleSheet.absoluteFillObject),initialsContainer:{alignItems:'center',alignSelf:'stretch',flex:1,justifyContent:'center'},initialsText:function(){return{color:'rgba(255, 255, 255, 0.6)',fontSize:.45*(arguments.length>0&&void 0!==arguments[0]?arguments[0]:65),fontWeight:'100'}},staticAvatar:{backgroundColor:l.ColorPalette.lightGrey,opacity:.4}};e.default=u},544,[3,54,17,406]); +__d(function(g,r,i,a,m,e,d){m.exports=r(d[0]).registerAsset({__packager_asset:!0,httpServerLocation:"/assets/images",width:200,height:200,scales:[1],hash:"d424259cf27ba5c430d387e32c8cca56",name:"avatar",type:"png"})},545,[178]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),o=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e._mapStateToProps=S,e.default=e.DEFAULT_SIZE=void 0;var l=o(r(d[2])),n=o(r(d[3])),s=o(r(d[4])),u=o(r(d[5])),v=o(r(d[6])),c=o(r(d[7])),f=t(r(d[8])),p=r(d[9]),_=r(d[10]),A=r(d[11]),h=r(d[12]),E=r(d[13]);e.DEFAULT_SIZE=65;var L=(function(t){function o(t){var n;return(0,l.default)(this,o),(n=(0,s.default)(this,(0,u.default)(o).call(this,t))).state={avatarFailed:!1},n._onAvatarLoadError=n._onAvatarLoadError.bind((0,c.default)((0,c.default)(n))),n}return(0,v.default)(o,t),(0,n.default)(o,[{key:"componentDidUpdate",value:function(t){t.url!==this.props.url&&this.setState({avatarFailed:!1})}},{key:"render",value:function(){var t=this.props,o=t._initialsBase,l=t._loadableAvatarUrl,n=t.className,s=t.colorBase,u=t.id,v=t.size,c=t.status,p=t.url,_={className:n,color:void 0,id:u,initials:void 0,onAvatarLoadError:void 0,size:v,status:c,url:void 0},A=!this.state.avatarFailed&&p||l;A&&(_.onAvatarLoadError=this._onAvatarLoadError,_.url=A);var L=(0,h.getInitials)(o);return L&&(_.color=(0,h.getAvatarColor)(s||o),_.initials=L),f.default.createElement(E.StatelessAvatar,_)}},{key:"_onAvatarLoadError",value:function(){this.setState({avatarFailed:!0})}}]),o})(f.PureComponent);function S(t,o){var l,n=o.colorBase,s=o.displayName,u=o.participantId,v=u&&(0,_.getParticipantById)(t,u),c=null!=(l=null==v?void 0:v.name)?l:s,f=t['features/video-layout'].screenShares||[],A=null==v?void 0:v.loadableAvatarUrl;return u&&f.includes(u)&&(A=p.IconShareDesktop),{_initialsBase:c,_loadableAvatarUrl:A,colorBase:!n&&v?v.id:n}}var y=(0,A.connect)(S)(L);e.default=y},546,[2,3,4,5,6,9,10,8,13,403,547,549,934,400]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})});var u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}})});var o=r(d[3]);Object.keys(o).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return o[t]}})});var c=r(d[4]);Object.keys(c).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return c[t]}})}),r(d[5]),r(d[6])},547,[548,761,910,908,762,926,933]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.dominantSpeakerChanged=function(t,n){return{type:p.DOMINANT_SPEAKER_CHANGED,participant:{conference:n,id:t}}},e.kickParticipant=function(t){return{type:p.KICK_PARTICIPANT,id:t}},e.localParticipantConnectionStatusChanged=function(t){return function(n,c){var o=(0,u.getLocalParticipant)(c);if(o)return n(f(o.id,t))}},e.localParticipantIdChanged=function(t){return function(n,c){var o=(0,u.getLocalParticipant)(c);if(o)return n({type:p.PARTICIPANT_ID_CHANGED,conference:void 0,newValue:t,oldValue:o.id})}},e.localParticipantJoined=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return l((0,c.set)(t,'local',!0))},e.localParticipantLeft=function(){return function(t,n){var c=(0,u.getLocalParticipant)(n);if(c)return t(P(c.id,void 0))}},e.localParticipantRoleChanged=function(t){return function(n,c){var o=(0,u.getLocalParticipant)(c);if(o)return n(I(o.id,t))}},e.muteRemoteParticipant=function(t){return{type:p.MUTE_REMOTE_PARTICIPANT,id:t}},e.participantConnectionStatusChanged=f,e.participantJoined=l,e.hiddenParticipantJoined=function(t,n){return{type:p.HIDDEN_PARTICIPANT_JOINED,id:t,displayName:n}},e.hiddenParticipantLeft=function(t){return{type:p.HIDDEN_PARTICIPANT_LEFT,id:t}},e.participantLeft=P,e.participantPresenceChanged=function(t,n){return A({id:t,presence:n})},e.participantRoleChanged=I,e.participantUpdated=A,e.participantMutedUs=function(t){return function(n,c){t&&n((0,o.showNotification)({descriptionKey:'notify.mutedRemotelyDescription',titleKey:'notify.mutedRemotelyTitle',titleArguments:{participantDisplayName:(0,u.getParticipantDisplayName)(c,t.getId())}}))}},e.participantKicked=function(t,n){return function(c,f){c({type:p.PARTICIPANT_KICKED,kicked:n.getId(),kicker:t.getId()}),c((0,o.showNotification)({titleArguments:{kicked:(0,u.getParticipantDisplayName)(f,n.getId()),kicker:(0,u.getParticipantDisplayName)(f,t.getId())},titleKey:'notify.kickParticipant'},2*o.NOTIFICATION_TIMEOUT))}},e.pinParticipant=function(t){return{type:p.PIN_PARTICIPANT,participant:{id:t}}},e.setLoadableAvatarUrl=function(t,n){return{type:p.SET_LOADABLE_AVATAR_URL,participant:{id:t,loadableAvatarUrl:n}}};var n=t(r(d[1])),c=r(d[2]),o=r(d[3]),p=r(d[4]),u=r(d[5]);function f(t,n){return{type:p.PARTICIPANT_UPDATED,participant:{connectionStatus:n,id:t}}}function l(t){if(t.local)return{type:p.PARTICIPANT_JOINED,participant:t};var n=t.conference;if(!n)throw Error('A remote participant must be associated with a JitsiConference!');return function(c,o){var u=o()['features/base/conference'];if(n===u.conference||n===u.joining)return c({type:p.PARTICIPANT_JOINED,participant:t})}}function P(t,n){return{type:p.PARTICIPANT_LEFT,participant:{conference:n,id:t}}}function I(t,n){return A({id:t,role:n})}function A(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},c=(0,n.default)({},t);return t.name&&(c.name=(0,u.getNormalizedDisplayName)(t.name)),{type:p.PARTICIPANT_UPDATED,participant:c}}},548,[3,54,549,602,761,762]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0});var n={MiddlewareRegistry:!0,ReducerRegistry:!0,StateListenerRegistry:!0};Object.defineProperty(e,"MiddlewareRegistry",{enumerable:!0,get:function(){return c.default}}),Object.defineProperty(e,"ReducerRegistry",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(e,"StateListenerRegistry",{enumerable:!0,get:function(){return f.default}});var u=r(d[1]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(n,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}}))});var c=t(r(d[2])),o=t(r(d[3])),f=t(r(d[4]))},549,[3,550,587,588,589]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.assign=function(t,n){var u=t;for(var f in n)u=c(u,f,n[f],u===t);return u},e.connect=function(t,n){return(0,o.connect)(t,n)},e.equals=function(t,n){return f.default.isEqual(t,n)},e.set=function(t,n,u){return c(t,n,u,!0)},e.toState=function(t){if(t){if('function'==typeof t)return t();var n=t.getState;if('function'==typeof n)return n()}return t};var n=t(r(d[1])),u=t(r(d[2])),f=t(r(d[3])),o=r(d[4]);function c(t,f,o,c){if(void 0===o&&Object.prototype.hasOwnProperty.call(t,f)){var l=c?(0,u.default)({},t):t;if(delete l[f])return l}if(t[f]!==o){if(c)return(0,u.default)({},t,(0,n.default)({},f,o));t[f]=o}return t}},550,[3,55,54,551,552]); +__d(function(n,t,r,e,u,i,o){(function(){var t,r=200,e='Unsupported core-js use. Try https://npms.io/search?q=ponyfill.',o='Expected a function',f='__lodash_hash_undefined__',a=500,c='__lodash_placeholder__',l=1,s=2,h=4,p=1,v=2,_=1,g=2,d=4,y=8,x=16,b=32,w=64,m=128,j=256,A=512,k=30,z='...',O=800,I=16,R=1,E=2,S=1/0,L=9007199254740991,W=1.7976931348623157e308,C=NaN,T=4294967295,U=4294967294,B=2147483647,$=[['ary',m],['bind',_],['bindKey',g],['curry',y],['curryRight',x],['flip',A],['partial',b],['partialRight',w],['rearg',j]],D='[object Arguments]',M='[object Array]',F='[object AsyncFunction]',N='[object Boolean]',P='[object Date]',Z='[object DOMException]',q='[object Error]',K='[object Function]',V='[object GeneratorFunction]',G='[object Map]',H='[object Number]',J='[object Null]',Y='[object Object]',Q='[object Proxy]',X='[object RegExp]',nn='[object Set]',tn='[object String]',rn='[object Symbol]',en='[object Undefined]',un='[object WeakMap]',on='[object WeakSet]',fn='[object ArrayBuffer]',an='[object DataView]',cn='[object Float32Array]',ln='[object Float64Array]',sn='[object Int8Array]',hn='[object Int16Array]',pn='[object Int32Array]',vn='[object Uint8Array]',_n='[object Uint8ClampedArray]',gn='[object Uint16Array]',dn='[object Uint32Array]',yn=/\b__p \+= '';/g,xn=/\b(__p \+=) '' \+/g,bn=/(__e\(.*?\)|\b__t\)) \+\n'';/g,wn=/&(?:amp|lt|gt|quot|#39);/g,mn=/[&<>"']/g,jn=RegExp(wn.source),An=RegExp(mn.source),kn=/<%-([\s\S]+?)%>/g,zn=/<%([\s\S]+?)%>/g,On=/<%=([\s\S]+?)%>/g,In=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Rn=/^\w*$/,En=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Sn=/[\\^$.*+?()[\]{}|]/g,Ln=RegExp(Sn.source),Wn=/^\s+|\s+$/g,Cn=/^\s+/,Tn=/\s+$/,Un=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Bn=/\{\n\/\* \[wrapped with (.+)\] \*/,$n=/,? & /,Dn=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Mn=/\\(\\)?/g,Fn=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Nn=/\w*$/,Pn=/^[-+]0x[0-9a-f]+$/i,Zn=/^0b[01]+$/i,qn=/^\[object .+?Constructor\]$/,Kn=/^0o[0-7]+$/i,Vn=/^(?:0|[1-9]\d*)$/,Gn=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Hn=/($^)/,Jn=/['\n\r\u2028\u2029\\]/g,Yn="[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]",Qn="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",Xn="(?:\\ud83c[\\udde6-\\uddff]){2}",nt="[\\ud800-\\udbff][\\udc00-\\udfff]",tt="[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?"+("(?:\\u200d(?:"+["[^\\ud800-\\udfff]",Xn,nt].join('|')+")[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?)*"),rt='(?:'+["[\\u2700-\\u27bf]",Xn,nt].join('|')+')'+tt,et='(?:'+["[^\\ud800-\\udfff][\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]?",Qn,Xn,nt,"[\\ud800-\\udfff]"].join('|')+')',ut=RegExp("['\u2019]",'g'),it=RegExp(Qn,'g'),ot=RegExp("\\ud83c[\\udffb-\\udfff](?=\\ud83c[\\udffb-\\udfff])|"+et+tt,'g'),ft=RegExp(["[A-Z\\xc0-\\xd6\\xd8-\\xde]?[a-z\\xdf-\\xf6\\xf8-\\xff]+(?:['\u2019](?:d|ll|m|re|s|t|ve))?(?="+[Yn,"[A-Z\\xc0-\\xd6\\xd8-\\xde]",'$'].join('|')+')',"(?:[A-Z\\xc0-\\xd6\\xd8-\\xde]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?(?="+[Yn,"[A-Z\\xc0-\\xd6\\xd8-\\xde](?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])",'$'].join('|')+')',"[A-Z\\xc0-\\xd6\\xd8-\\xde]?(?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['\u2019](?:d|ll|m|re|s|t|ve))?","[A-Z\\xc0-\\xd6\\xd8-\\xde]+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?",'\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])','\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])','\\d+',rt].join('|'),'g'),at=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]"),ct=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,lt=['Array','Buffer','DataView','Date','Error','Float32Array','Float64Array','Function','Int8Array','Int16Array','Int32Array','Map','Math','Object','Promise','RegExp','Set','String','Symbol','TypeError','Uint8Array','Uint8ClampedArray','Uint16Array','Uint32Array','WeakMap','_','clearTimeout','isFinite','parseInt','setTimeout'],st=-1,ht={};ht[cn]=ht[ln]=ht[sn]=ht[hn]=ht[pn]=ht[vn]=ht[_n]=ht[gn]=ht[dn]=!0,ht[D]=ht[M]=ht[fn]=ht[N]=ht[an]=ht[P]=ht[q]=ht[K]=ht[G]=ht[H]=ht[Y]=ht[X]=ht[nn]=ht[tn]=ht[un]=!1;var pt={};pt[D]=pt[M]=pt[fn]=pt[an]=pt[N]=pt[P]=pt[cn]=pt[ln]=pt[sn]=pt[hn]=pt[pn]=pt[G]=pt[H]=pt[Y]=pt[X]=pt[nn]=pt[tn]=pt[rn]=pt[vn]=pt[_n]=pt[gn]=pt[dn]=!0,pt[q]=pt[K]=pt[un]=!1;var vt={'\\':'\\',"'":"'",'\n':'n','\r':'r',"\u2028":'u2028',"\u2029":'u2029'},_t=parseFloat,gt=parseInt,dt='object'==typeof n&&n&&n.Object===Object&&n,yt='object'==typeof self&&self&&self.Object===Object&&self,xt=dt||yt||Function('return this')(),bt='object'==typeof i&&i&&!i.nodeType&&i,wt=bt&&'object'==typeof u&&u&&!u.nodeType&&u,mt=wt&&wt.exports===bt,jt=mt&&dt.process,At=(function(){try{var n=wt&&wt.require&&wt.require('util').types;return n||jt&&jt.binding&&jt.binding('util')}catch(n){}})(),kt=At&&At.isArrayBuffer,zt=At&&At.isDate,Ot=At&&At.isMap,It=At&&At.isRegExp,Rt=At&&At.isSet,Et=At&&At.isTypedArray;function St(n,t,r){switch(r.length){case 0:return n.call(t);case 1:return n.call(t,r[0]);case 2:return n.call(t,r[0],r[1]);case 3:return n.call(t,r[0],r[1],r[2])}return n.apply(t,r)}function Lt(n,t,r,e){for(var u=-1,i=null==n?0:n.length;++u-1}function $t(n,t,r){for(var e=-1,u=null==n?0:n.length;++e-1;);return r}function lr(n,t){for(var r=n.length;r--&&Ht(t,n[r],0)>-1;);return r}function sr(n,t){for(var r=n.length,e=0;r--;)n[r]===t&&++e;return e}var hr=nr({'\xc0':'A','\xc1':'A','\xc2':'A','\xc3':'A','\xc4':'A','\xc5':'A','\xe0':'a','\xe1':'a','\xe2':'a','\xe3':'a','\xe4':'a','\xe5':'a','\xc7':'C','\xe7':'c','\xd0':'D','\xf0':'d','\xc8':'E','\xc9':'E','\xca':'E','\xcb':'E','\xe8':'e','\xe9':'e','\xea':'e','\xeb':'e','\xcc':'I','\xcd':'I','\xce':'I','\xcf':'I','\xec':'i','\xed':'i','\xee':'i','\xef':'i','\xd1':'N','\xf1':'n','\xd2':'O','\xd3':'O','\xd4':'O','\xd5':'O','\xd6':'O','\xd8':'O','\xf2':'o','\xf3':'o','\xf4':'o','\xf5':'o','\xf6':'o','\xf8':'o','\xd9':'U','\xda':'U','\xdb':'U','\xdc':'U','\xf9':'u','\xfa':'u','\xfb':'u','\xfc':'u','\xdd':'Y','\xfd':'y','\xff':'y','\xc6':'Ae','\xe6':'ae','\xde':'Th','\xfe':'th','\xdf':'ss',"\u0100":'A',"\u0102":'A',"\u0104":'A',"\u0101":'a',"\u0103":'a',"\u0105":'a',"\u0106":'C',"\u0108":'C',"\u010a":'C',"\u010c":'C',"\u0107":'c',"\u0109":'c',"\u010b":'c',"\u010d":'c',"\u010e":'D',"\u0110":'D',"\u010f":'d',"\u0111":'d',"\u0112":'E',"\u0114":'E',"\u0116":'E',"\u0118":'E',"\u011a":'E',"\u0113":'e',"\u0115":'e',"\u0117":'e',"\u0119":'e',"\u011b":'e',"\u011c":'G',"\u011e":'G',"\u0120":'G',"\u0122":'G',"\u011d":'g',"\u011f":'g',"\u0121":'g',"\u0123":'g',"\u0124":'H',"\u0126":'H',"\u0125":'h',"\u0127":'h',"\u0128":'I',"\u012a":'I',"\u012c":'I',"\u012e":'I',"\u0130":'I',"\u0129":'i',"\u012b":'i',"\u012d":'i',"\u012f":'i',"\u0131":'i',"\u0134":'J',"\u0135":'j',"\u0136":'K',"\u0137":'k',"\u0138":'k',"\u0139":'L',"\u013b":'L',"\u013d":'L',"\u013f":'L',"\u0141":'L',"\u013a":'l',"\u013c":'l',"\u013e":'l',"\u0140":'l',"\u0142":'l',"\u0143":'N',"\u0145":'N',"\u0147":'N',"\u014a":'N',"\u0144":'n',"\u0146":'n',"\u0148":'n',"\u014b":'n',"\u014c":'O',"\u014e":'O',"\u0150":'O',"\u014d":'o',"\u014f":'o',"\u0151":'o',"\u0154":'R',"\u0156":'R',"\u0158":'R',"\u0155":'r',"\u0157":'r',"\u0159":'r',"\u015a":'S',"\u015c":'S',"\u015e":'S',"\u0160":'S',"\u015b":'s',"\u015d":'s',"\u015f":'s',"\u0161":'s',"\u0162":'T',"\u0164":'T',"\u0166":'T',"\u0163":'t',"\u0165":'t',"\u0167":'t',"\u0168":'U',"\u016a":'U',"\u016c":'U',"\u016e":'U',"\u0170":'U',"\u0172":'U',"\u0169":'u',"\u016b":'u',"\u016d":'u',"\u016f":'u',"\u0171":'u',"\u0173":'u',"\u0174":'W',"\u0175":'w',"\u0176":'Y',"\u0177":'y',"\u0178":'Y',"\u0179":'Z',"\u017b":'Z',"\u017d":'Z',"\u017a":'z',"\u017c":'z',"\u017e":'z',"\u0132":'IJ',"\u0133":'ij',"\u0152":'Oe',"\u0153":'oe',"\u0149":"'n","\u017f":'s'}),pr=nr({'&':'&','<':'<','>':'>','"':'"',"'":'''});function vr(n){return'\\'+vt[n]}function _r(n,r){return null==n?t:n[r]}function gr(n){return at.test(n)}function dr(n){return ct.test(n)}function yr(n){for(var t,r=[];!(t=n.next()).done;)r.push(t.value);return r}function xr(n){var t=-1,r=Array(n.size);return n.forEach(function(n,e){r[++t]=[e,n]}),r}function br(n,t){return function(r){return n(t(r))}}function wr(n,t){for(var r=-1,e=n.length,u=0,i=[];++r','"':'"',''':"'"});function Rr(n){for(var t=ot.lastIndex=0;ot.test(n);)++t;return t}function Er(n){return n.match(ot)||[]}function Sr(n){return n.match(ft)||[]}var Lr=(function n(u){var i,Dn=(u=null==u?xt:Lr.defaults(xt.Object(),u,Lr.pick(xt,lt))).Array,Yn=u.Date,Qn=u.Error,Xn=u.Function,nt=u.Math,tt=u.Object,rt=u.RegExp,et=u.String,ot=u.TypeError,ft=Dn.prototype,at=Xn.prototype,ct=tt.prototype,vt=u['__core-js_shared__'],dt=at.toString,yt=ct.hasOwnProperty,bt=0,wt=(i=/[^.]+$/.exec(vt&&vt.keys&&vt.keys.IE_PROTO||''))?'Symbol(src)_1.'+i:'',jt=ct.toString,At=dt.call(tt),Zt=xt._,qt=rt('^'+dt.call(yt).replace(Sn,'\\$&').replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,'$1.*?')+'$'),nr=mt?u.Buffer:t,Ar=u.Symbol,Rr=u.Uint8Array,Er=nr?nr.allocUnsafe:t,Wr=br(tt.getPrototypeOf,tt),Cr=tt.create,Tr=ct.propertyIsEnumerable,Ur=ft.splice,Br=Ar?"function"==typeof Ar?Ar.isConcatSpreadable:"@@isConcatSpreadable":t,$r=Ar?"function"==typeof Ar?Ar.iterator:"@@iterator":t,Dr=Ar?"function"==typeof Ar?Ar.toStringTag:"@@toStringTag":t,Mr=(function(){try{var n=co(tt,'defineProperty');return n({},'',{}),n}catch(n){}})(),Fr=u.clearTimeout!==xt.clearTimeout&&u.clearTimeout,Nr=Yn&&Yn.now!==xt.Date.now&&Yn.now,Pr=u.setTimeout!==xt.setTimeout&&u.setTimeout,Zr=nt.ceil,qr=nt.floor,Kr=tt.getOwnPropertySymbols,Vr=nr?nr.isBuffer:t,Gr=u.isFinite,Hr=ft.join,Jr=br(tt.keys,tt),Yr=nt.max,Qr=nt.min,Xr=Yn.now,ne=u.parseInt,te=nt.random,re=ft.reverse,ee=co(u,'DataView'),ue=co(u,'Map'),ie=co(u,'Promise'),oe=co(u,'Set'),fe=co(u,'WeakMap'),ae=co(tt,'create'),ce=fe&&new fe,le={},se=Ko(ee),he=Ko(ue),pe=Ko(ie),ve=Ko(oe),_e=Ko(fe),ge=Ar?"function"==typeof Ar?Ar.prototype:"@@prototype":t,de=ge?ge.valueOf:t,ye=ge?ge.toString:t;function xe(n){if(sa(n)&&!na(n)&&!(n instanceof je)){if(n instanceof me)return n;if(yt.call(n,'__wrapped__'))return Go(n)}return new me(n)}var be=(function(){function n(){}return function(r){if(!la(r))return{};if(Cr)return Cr(r);n.prototype=r;var e=new n;return n.prototype=t,e}})();function we(){}function me(n,r){this.__wrapped__=n,this.__actions__=[],this.__chain__=!!r,this.__index__=0,this.__values__=t}function je(n){this.__wrapped__=n,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=T,this.__views__=[]}function Ae(n){var t=-1,r=null==n?0:n.length;for(this.clear();++t=r?n:r)),n}function Ne(n,r,e,u,i,o){var f,a=r&l,c=r&s,p=r&h;if(e&&(f=i?e(n,u,i,o):e(n)),f!==t)return f;if(!la(n))return n;var v=na(n);if(v){if(f=yo(n),!a)return bi(n,f)}else{var _=po(n),g=_==K||_==V;if(ua(n))return hi(n,a);if(_==Y||_==D||g&&!i){if(f=c||g?{}:xo(n),!a)return c?ji(n,$e(f,n)):mi(n,Be(f,n))}else{if(!pt[_])return i?n:{};f=bo(n,_,a)}}o||(o=new Ie);var d=o.get(n);if(d)return d;o.set(n,f),ga(n)?n.forEach(function(t){f.add(Ne(t,r,e,t,n,o))}):ha(n)&&n.forEach(function(t,u){f.set(u,Ne(t,r,e,u,n,o))});var y=v?t:(p?c?ro:to:c?Na:Fa)(n);return Wt(y||n,function(t,u){y&&(t=n[u=t]),Ce(f,u,Ne(t,r,e,u,n,o))}),f}function Pe(n){var t=Fa(n);return function(r){return Ze(r,n,t)}}function Ze(n,r,e){var u=e.length;if(null==n)return!u;for(n=tt(n);u--;){var i=e[u],o=r[i],f=n[i];if(f===t&&!(i in n)||!o(f))return!1}return!0}function qe(n,r,e){if('function'!=typeof n)throw new ot(o);return Do(function(){n.apply(t,e)},r)}function Ke(n,t,e,u){var i=-1,o=Bt,f=!0,a=n.length,c=[],l=t.length;if(!a)return c;e&&(t=Dt(t,or(e))),u?(o=$t,f=!1):t.length>=r&&(o=ar,f=!1,t=new Oe(t));n:for(;++i-1},ke.prototype.set=function(n,t){var r=this.__data__,e=Te(r,n);return e<0?(++this.size,r.push([n,t])):r[e][1]=t,this},ze.prototype.clear=function(){this.size=0,this.__data__={hash:new Ae,map:new(ue||ke),string:new Ae}},ze.prototype.delete=function(n){var t=fo(this,n).delete(n);return this.size-=t?1:0,t},ze.prototype.get=function(n){return fo(this,n).get(n)},ze.prototype.has=function(n){return fo(this,n).has(n)},ze.prototype.set=function(n,t){var r=fo(this,n),e=r.size;return r.set(n,t),this.size+=r.size==e?0:1,this},Oe.prototype.add=Oe.prototype.push=function(n){return this.__data__.set(n,f),this},Oe.prototype.has=function(n){return this.__data__.has(n)},Ie.prototype.clear=function(){this.__data__=new ke,this.size=0},Ie.prototype.delete=function(n){var t=this.__data__,r=t.delete(n);return this.size=t.size,r},Ie.prototype.get=function(n){return this.__data__.get(n)},Ie.prototype.has=function(n){return this.__data__.has(n)},Ie.prototype.set=function(n,t){var r=this.__data__;if(r instanceof ke){var e=r.__data__;if(!ue||e.length<199)return e.push([n,t]),this.size=++r.size,this;r=this.__data__=new ze(e)}return r.set(n,t),this.size=r.size,this};var Ve=zi(ru),Ge=zi(eu,!0);function He(n,t){var r=!0;return Ve(n,function(n,e,u){return r=!!t(n,e,u)}),r}function Je(n,r,e){for(var u=-1,i=n.length;++ui?0:i+e),(u=u===t||u>i?i:Aa(u))<0&&(u+=i),u=e>u?0:ka(u);e0&&r(f)?t>1?Xe(f,t-1,r,e,u):Mt(u,f):e||(u[u.length]=f)}return u}var nu=Oi(),tu=Oi(!0);function ru(n,t){return n&&nu(n,t,Fa)}function eu(n,t){return n&&tu(n,t,Fa)}function uu(n,t){return Ut(t,function(t){return fa(n[t])})}function iu(n,r){for(var e=0,u=(r=ai(r,n)).length;null!=n&&et}function cu(n,t){return null!=n&&yt.call(n,t)}function lu(n,t){return null!=n&&t in tt(n)}function su(n,t,r){return n>=Qr(t,r)&&n=120&&s.length>=120)?new Oe(f&&s):t}s=n[0];var h=-1,p=a[0];n:for(;++h-1;)f!==n&&Ur.call(f,a,1),Ur.call(n,a,1);return n}function Tu(n,t){for(var r=n?t.length:0,e=r-1;r--;){var u=t[r];if(r==e||u!==i){var i=u;jo(u)?Ur.call(n,u,1):ni(n,u)}}return n}function Uu(n,t){return n+qr(te()*(t-n+1))}function Bu(n,t,r,e){for(var u=-1,i=Yr(Zr((t-n)/(r||1)),0),o=Dn(i);i--;)o[e?i:++u]=n,n+=r;return o}function $u(n,t){var r='';if(!n||t<1||t>L)return r;do{t%2&&(r+=n),(t=qr(t/2))&&(n+=n)}while(t);return r}function Du(n,t){return Mo(Co(n,t,pc),n+'')}function Mu(n){return Ee(Ja(n))}function Fu(n,t){var r=Ja(n);return Po(r,Fe(t,0,r.length))}function Nu(n,r,e,u){if(!la(n))return n;for(var i=-1,o=(r=ai(r,n)).length,f=o-1,a=n;null!=a&&++iu?0:u+t),(r=r>u?u:r)<0&&(r+=u),u=t>r?0:r-t>>>0,t>>>=0;for(var i=Dn(u);++e>>1,o=n[i];null!==o&&!ya(o)&&(r?o<=t:o=r){var l=t?null:qi(n);if(l)return mr(l);f=!1,i=ar,c=new Oe}else c=t?[]:a;n:for(;++u=u?n:Ku(n,r,e)}var si=Fr||function(n){return xt.clearTimeout(n)};function hi(n,t){if(t)return n.slice();var r=n.length,e=Er?Er(r):new n.constructor(r);return n.copy(e),e}function pi(n){var t=new n.constructor(n.byteLength);return new Rr(t).set(new Rr(n)),t}function vi(n,t){var r=t?pi(n.buffer):n.buffer;return new n.constructor(r,n.byteOffset,n.byteLength)}function _i(n,t){var r=t?pi(n.buffer):n.buffer;return new n.constructor(r,n.byteOffset,n.length)}function gi(n,r){if(n!==r){var e=n!==t,u=null===n,i=n==n,o=ya(n),f=r!==t,a=null===r,c=r==r,l=ya(r);if(!a&&!l&&!o&&n>r||o&&f&&c&&!a&&!l||u&&f&&c||!e&&c||!i)return 1;if(!u&&!o&&!l&&n=f?a:a*('desc'==r[e]?-1:1)}return n.index-t.index}function yi(n,t,r,e){for(var u=-1,i=n.length,o=r.length,f=-1,a=t.length,c=Yr(i-o,0),l=Dn(a+c),s=!e;++f1?e[i-1]:t,f=i>2?e[2]:t;for(o=n.length>3&&'function'==typeof o?(i--,o):t,f&&Ao(e[0],e[1],f)&&(o=i<3?t:o,i=1),r=tt(r);++u-1?i[o?r[f]:f]:t}}function Ci(n){return no(function(r){var e=r.length,u=e,i=me.prototype.thru;for(n&&r.reverse();u--;){var f=r[u];if('function'!=typeof f)throw new ot(o);if(i&&!a&&'wrapper'==uo(f))var a=new me([],!0)}for(u=a?u:e;++u1&&g.reverse(),s&&c<_&&(g.length=c),this&&this!==xt&&this instanceof t&&(A=y||Si(A)),A.apply(j,g)}}function Ui(n,t){return function(r,e){return pu(r,n,t(e),{})}}function Bi(n,r){return function(e,u){var i;if(e===t&&u===t)return r;if(e!==t&&(i=e),u!==t){if(i===t)return u;'string'==typeof e||'string'==typeof u?(e=Qu(e),u=Qu(u)):(e=Yu(e),u=Yu(u)),i=n(e,u)}return i}}function $i(n){return no(function(t){return t=Dt(t,or(oo())),Du(function(r){var e=this;return n(t,function(n){return St(n,e,r)})})})}function Di(n,r){var e=(r=r===t?' ':Qu(r)).length;if(e<2)return e?$u(r,n):r;var u=$u(r,Zr(n/zr(r)));return gr(r)?li(Or(u),0,n).join(''):u.slice(0,n)}function Mi(n,t,r,e){var u=t&_,i=Si(n);return function t(){for(var o=-1,f=arguments.length,a=-1,c=e.length,l=Dn(c+f),s=this&&this!==xt&&this instanceof t?i:n;++aa))return!1;var l=o.get(n);if(l&&o.get(r))return l==r;var s=-1,h=!0,_=e&v?new Oe:t;for(o.set(n,r),o.set(r,n);++s1?'& ':'')+t[e],t=t.join(r>2?', ':' '),n.replace(Un,'{\n/* [wrapped with '+t+'] */\n')}function mo(n){return na(n)||Xf(n)||!!(Br&&n&&n[Br])}function jo(n,t){var r=typeof n;return!!(t=null==t?L:t)&&('number'==r||'symbol'!=r&&Vn.test(n))&&n>-1&&n%1==0&&n0){if(++r>=O)return arguments[0]}else r=0;return n.apply(t,arguments)}}function Po(n,r){var e=-1,u=n.length,i=u-1;for(r=r===t?u:r;++e1?n[r-1]:t;return _f(n,e='function'==typeof e?(n.pop(),e):t)});function mf(n){var t=xe(n);return t.__chain__=!0,t}function jf(n,t){return t(n)}var Af=no(function(n){var r=n.length,e=r?n[0]:0,u=this.__wrapped__,i=function(t){return Me(t,n)};return!(r>1||this.__actions__.length)&&u instanceof je&&jo(e)?((u=u.slice(e,+e+(r?1:0))).__actions__.push({func:jf,args:[i],thisArg:t}),new me(u,this.__chain__).thru(function(n){return r&&!n.length&&n.push(t),n})):this.thru(i)});var kf=Ai(function(n,t,r){yt.call(n,r)?++n[r]:De(n,r,1)});var zf=Wi(Qo),Of=Wi(Xo);function If(n,t){return(na(n)?Wt:Ve)(n,oo(t,3))}function Rf(n,t){return(na(n)?Ct:Ge)(n,oo(t,3))}var Ef=Ai(function(n,t,r){yt.call(n,r)?n[r].push(t):De(n,r,[t])});var Sf=Du(function(n,t,r){var e=-1,u='function'==typeof t,i=ra(n)?Dn(n.length):[];return Ve(n,function(n){i[++e]=u?St(t,n,r):vu(n,t,r)}),i}),Lf=Ai(function(n,t,r){De(n,r,t)});function Wf(n,t){return(na(n)?Dt:Au)(n,oo(t,3))}var Cf=Ai(function(n,t,r){n[r?0:1].push(t)},function(){return[[],[]]});var Tf=Du(function(n,t){if(null==n)return[];var r=t.length;return r>1&&Ao(n,t[0],t[1])?t=[]:r>2&&Ao(t[0],t[1],t[2])&&(t=[t[0]]),Eu(n,Xe(t,1),[])}),Uf=Nr||function(){return xt.Date.now()};function Bf(n,r,e){return r=e?t:r,r=n&&null==r?n.length:r,Vi(n,m,t,t,t,t,r)}function $f(n,r){var e;if('function'!=typeof r)throw new ot(o);return n=Aa(n),function(){return--n>0&&(e=r.apply(this,arguments)),n<=1&&(r=t),e}}var Df=Du(function(n,t,r){var e=_;if(r.length){var u=wr(r,io(Df));e|=b}return Vi(n,e,t,r,u)}),Mf=Du(function(n,t,r){var e=3;if(r.length){var u=wr(r,io(Mf));e|=b}return Vi(t,e,n,r,u)});function Ff(n,r,e){var u,i,f,a,c,l,s=0,h=!1,p=!1,v=!0;if('function'!=typeof n)throw new ot(o);function _(r){var e=u,o=i;return u=i=t,s=r,a=n.apply(o,e)}function g(n){return s=n,c=Do(x,r),h?_(n):a}function d(n){var t=r-(n-l);return p?Qr(t,f-(n-s)):t}function y(n){var e=n-l;return l===t||e>=r||e<0||p&&n-s>=f}function x(){var n=Uf();if(y(n))return b(n);c=Do(x,d(n))}function b(n){return c=t,v&&u?_(n):(u=i=t,a)}function w(){var n=Uf(),e=y(n);if(u=arguments,i=this,l=n,e){if(c===t)return g(l);if(p)return si(c),c=Do(x,r),_(l)}return c===t&&(c=Do(x,r)),a}return r=za(r)||0,la(e)&&(h=!!e.leading,f=(p='maxWait'in e)?Yr(za(e.maxWait)||0,r):f,v='trailing'in e?!!e.trailing:v),w.cancel=function(){c!==t&&si(c),s=0,u=l=i=c=t},w.flush=function(){return c===t?a:b(Uf())},w}var Nf=Du(function(n,t){return qe(n,1,t)}),Pf=Du(function(n,t,r){return qe(n,za(t)||0,r)});function Zf(n,t){if('function'!=typeof n||null!=t&&'function'!=typeof t)throw new ot(o);var r=function r(){var e=arguments,u=t?t.apply(this,e):e[0],i=r.cache;if(i.has(u))return i.get(u);var o=n.apply(this,e);return r.cache=i.set(u,o)||i,o};return r.cache=new(Zf.Cache||ze),r}function qf(n){if('function'!=typeof n)throw new ot(o);return function(){var t=arguments;switch(t.length){case 0:return!n.call(this);case 1:return!n.call(this,t[0]);case 2:return!n.call(this,t[0],t[1]);case 3:return!n.call(this,t[0],t[1],t[2])}return!n.apply(this,t)}}Zf.Cache=ze;var Kf=ci(function(n,t){var r=(t=1==t.length&&na(t[0])?Dt(t[0],or(oo())):Dt(Xe(t,1),or(oo()))).length;return Du(function(e){for(var u=-1,i=Qr(e.length,r);++u=t}),Xf=_u((function(){return arguments})())?_u:function(n){return sa(n)&&yt.call(n,'callee')&&!Tr.call(n,'callee')},na=Dn.isArray,ta=kt?or(kt):function(n){return sa(n)&&fu(n)==fn};function ra(n){return null!=n&&ca(n.length)&&!fa(n)}function ea(n){return sa(n)&&ra(n)}var ua=Vr||zc,ia=zt?or(zt):function(n){return sa(n)&&fu(n)==P};function oa(n){if(!sa(n))return!1;var t=fu(n);return t==q||t==Z||'string'==typeof n.message&&'string'==typeof n.name&&!va(n)}function fa(n){if(!la(n))return!1;var t=fu(n);return t==K||t==V||t==F||t==Q}function aa(n){return'number'==typeof n&&n==Aa(n)}function ca(n){return'number'==typeof n&&n>-1&&n%1==0&&n<=L}function la(n){var t=typeof n;return null!=n&&('object'==t||'function'==t)}function sa(n){return null!=n&&'object'==typeof n}var ha=Ot?or(Ot):function(n){return sa(n)&&po(n)==G};function pa(n){return'number'==typeof n||sa(n)&&fu(n)==H}function va(n){if(!sa(n)||fu(n)!=Y)return!1;var t=Wr(n);if(null===t)return!0;var r=yt.call(t,'constructor')&&t.constructor;return'function'==typeof r&&r instanceof r&&dt.call(r)==At}var _a=It?or(It):function(n){return sa(n)&&fu(n)==X};var ga=Rt?or(Rt):function(n){return sa(n)&&po(n)==nn};function da(n){return'string'==typeof n||!na(n)&&sa(n)&&fu(n)==tn}function ya(n){return'symbol'==typeof n||sa(n)&&fu(n)==rn}var xa=Et?or(Et):function(n){return sa(n)&&ca(n.length)&&!!ht[fu(n)]};var ba=Ni(ju),wa=Ni(function(n,t){return n<=t});function ma(n){if(!n)return[];if(ra(n))return da(n)?Or(n):bi(n);if($r&&n[$r])return yr(n[$r]());var t=po(n);return(t==G?xr:t==nn?mr:Ja)(n)}function ja(n){return n?(n=za(n))===S||n===-1/0?(n<0?-1:1)*W:n==n?n:0:0===n?n:0}function Aa(n){var t=ja(n),r=t%1;return t==t?r?t-r:t:0}function ka(n){return n?Fe(Aa(n),0,T):0}function za(n){if('number'==typeof n)return n;if(ya(n))return C;if(la(n)){var t='function'==typeof n.valueOf?n.valueOf():n;n=la(t)?t+'':t}if('string'!=typeof n)return 0===n?n:+n;n=n.replace(Wn,'');var r=Zn.test(n);return r||Kn.test(n)?gt(n.slice(2),r?2:8):Pn.test(n)?C:+n}function Oa(n){return wi(n,Na(n))}function Ia(n){return null==n?'':Qu(n)}var Ra=ki(function(n,t){if(Io(t)||ra(t))wi(t,Fa(t),n);else for(var r in t)yt.call(t,r)&&Ce(n,r,t[r])}),Ea=ki(function(n,t){wi(t,Na(t),n)}),Sa=ki(function(n,t,r,e){wi(t,Na(t),n,e)}),La=ki(function(n,t,r,e){wi(t,Fa(t),n,e)}),Wa=no(Me);var Ca=Du(function(n,r){n=tt(n);var e=-1,u=r.length,i=u>2?r[2]:t;for(i&&Ao(r[0],r[1],i)&&(u=1);++e1),t}),wi(n,ro(n),r),e&&(r=Ne(r,7,Ji));for(var u=t.length;u--;)ni(r,t[u]);return r});var Ka=no(function(n,t){return null==n?{}:Su(n,t)});function Va(n,t){if(null==n)return{};var r=Dt(ro(n),function(n){return[n]});return t=oo(t),Lu(n,r,function(n,r){return t(n,r[0])})}var Ga=Ki(Fa),Ha=Ki(Na);function Ja(n){return null==n?[]:fr(n,Fa(n))}var Ya=Ei(function(n,t,r){return t=t.toLowerCase(),n+(r?Qa(t):t)});function Qa(n){return oc(Ia(n).toLowerCase())}function Xa(n){return(n=Ia(n))&&n.replace(Gn,hr).replace(it,'')}var nc=Ei(function(n,t,r){return n+(r?'-':'')+t.toLowerCase()}),tc=Ei(function(n,t,r){return n+(r?' ':'')+t.toLowerCase()}),rc=Ri('toLowerCase');var ec=Ei(function(n,t,r){return n+(r?'_':'')+t.toLowerCase()});var uc=Ei(function(n,t,r){return n+(r?' ':'')+oc(t)});var ic=Ei(function(n,t,r){return n+(r?' ':'')+t.toUpperCase()}),oc=Ri('toUpperCase');function fc(n,r,e){return n=Ia(n),(r=e?t:r)===t?dr(n)?Sr(n):Kt(n):n.match(r)||[]}var ac=Du(function(n,r){try{return St(n,t,r)}catch(n){return oa(n)?n:new Qn(n)}}),cc=no(function(n,t){return Wt(t,function(t){t=qo(t),De(n,t,Df(n[t],n))}),n});function lc(n){return function(){return n}}var sc=Ci(),hc=Ci(!0);function pc(n){return n}function vc(n){return bu('function'==typeof n?n:Ne(n,l))}var _c=Du(function(n,t){return function(r){return vu(r,n,t)}}),gc=Du(function(n,t){return function(r){return vu(n,r,t)}});function dc(n,t,r){var e=Fa(t),u=uu(t,e);null!=r||la(t)&&(u.length||!e.length)||(r=t,t=n,n=this,u=uu(t,Fa(t)));var i=!(la(r)&&'chain'in r&&!r.chain),o=fa(n);return Wt(u,function(r){var e=t[r];n[r]=e,o&&(n.prototype[r]=function(){var t=this.__chain__;if(i||t){var r=n(this.__wrapped__);return(r.__actions__=bi(this.__actions__)).push({func:e,args:arguments,thisArg:n}),r.__chain__=t,r}return e.apply(n,Mt([this.value()],arguments))})}),n}function yc(){}var xc=$i(Dt),bc=$i(Tt),wc=$i(Pt);function mc(n){return ko(n)?Xt(qo(n)):Wu(n)}var jc=Fi(),Ac=Fi(!0);function kc(){return[]}function zc(){return!1}var Oc=Bi(function(n,t){return n+t},0),Ic=Zi('ceil'),Rc=Bi(function(n,t){return n/t},1),Ec=Zi('floor');var Sc,Lc=Bi(function(n,t){return n*t},1),Wc=Zi('round'),Cc=Bi(function(n,t){return n-t},0);return xe.after=function(n,t){if('function'!=typeof t)throw new ot(o);return n=Aa(n),function(){if(--n<1)return t.apply(this,arguments)}},xe.ary=Bf,xe.assign=Ra,xe.assignIn=Ea,xe.assignInWith=Sa,xe.assignWith=La,xe.at=Wa,xe.before=$f,xe.bind=Df,xe.bindAll=cc,xe.bindKey=Mf,xe.castArray=function(){if(!arguments.length)return[];var n=arguments[0];return na(n)?n:[n]},xe.chain=mf,xe.chunk=function(n,r,e){r=(e?Ao(n,r,e):r===t)?1:Yr(Aa(r),0);var u=null==n?0:n.length;if(!u||r<1)return[];for(var i=0,o=0,f=Dn(Zr(u/r));i>>0)?(n=Ia(n))&&('string'==typeof r||null!=r&&!_a(r))&&!(r=Qu(r))&&gr(n)?li(Or(n),0,e):n.split(r,e):[]},xe.spread=function(n,t){if('function'!=typeof n)throw new ot(o);return t=null==t?0:Yr(Aa(t),0),Du(function(r){var e=r[t],u=li(r,0,t);return e&&Mt(u,e),St(n,this,u)})},xe.tail=function(n){var t=null==n?0:n.length;return t?Ku(n,1,t):[]},xe.take=function(n,r,e){return n&&n.length?Ku(n,0,(r=e||r===t?1:Aa(r))<0?0:r):[]},xe.takeRight=function(n,r,e){var u=null==n?0:n.length;return u?Ku(n,(r=u-(r=e||r===t?1:Aa(r)))<0?0:r,u):[]},xe.takeRightWhile=function(n,t){return n&&n.length?ri(n,oo(t,3),!1,!0):[]},xe.takeWhile=function(n,t){return n&&n.length?ri(n,oo(t,3)):[]},xe.tap=function(n,t){return t(n),n},xe.throttle=function(n,t,r){var e=!0,u=!0;if('function'!=typeof n)throw new ot(o);return la(r)&&(e='leading'in r?!!r.leading:e,u='trailing'in r?!!r.trailing:u),Ff(n,t,{leading:e,maxWait:t,trailing:u})},xe.thru=jf,xe.toArray=ma,xe.toPairs=Ga,xe.toPairsIn=Ha,xe.toPath=function(n){return na(n)?Dt(n,qo):ya(n)?[n]:bi(Zo(Ia(n)))},xe.toPlainObject=Oa,xe.transform=function(n,t,r){var e=na(n),u=e||ua(n)||xa(n);if(t=oo(t,4),null==r){var i=n&&n.constructor;r=u?e?new i:[]:la(n)&&fa(i)?be(Wr(n)):{}}return(u?Wt:ru)(n,function(n,e,u){return t(r,n,e,u)}),r},xe.unary=function(n){return Bf(n,1)},xe.union=sf,xe.unionBy=hf,xe.unionWith=pf,xe.uniq=function(n){return n&&n.length?Xu(n):[]},xe.uniqBy=function(n,t){return n&&n.length?Xu(n,oo(t,2)):[]},xe.uniqWith=function(n,r){return r='function'==typeof r?r:t,n&&n.length?Xu(n,t,r):[]},xe.unset=function(n,t){return null==n||ni(n,t)},xe.unzip=vf,xe.unzipWith=_f,xe.update=function(n,t,r){return null==n?n:ti(n,t,fi(r))},xe.updateWith=function(n,r,e,u){return u='function'==typeof u?u:t,null==n?n:ti(n,r,fi(e),u)},xe.values=Ja,xe.valuesIn=function(n){return null==n?[]:fr(n,Na(n))},xe.without=gf,xe.words=fc,xe.wrap=function(n,t){return Vf(fi(t),n)},xe.xor=df,xe.xorBy=yf,xe.xorWith=xf,xe.zip=bf,xe.zipObject=function(n,t){return ii(n||[],t||[],Ce)},xe.zipObjectDeep=function(n,t){return ii(n||[],t||[],Nu)},xe.zipWith=wf,xe.entries=Ga,xe.entriesIn=Ha,xe.extend=Ea,xe.extendWith=Sa,dc(xe,xe),xe.add=Oc,xe.attempt=ac,xe.camelCase=Ya,xe.capitalize=Qa,xe.ceil=Ic,xe.clamp=function(n,r,e){return e===t&&(e=r,r=t),e!==t&&(e=(e=za(e))==e?e:0),r!==t&&(r=(r=za(r))==r?r:0),Fe(za(n),r,e)},xe.clone=function(n){return Ne(n,h)},xe.cloneDeep=function(n){return Ne(n,5)},xe.cloneDeepWith=function(n,r){return Ne(n,5,r='function'==typeof r?r:t)},xe.cloneWith=function(n,r){return Ne(n,h,r='function'==typeof r?r:t)},xe.conformsTo=function(n,t){return null==t||Ze(n,t,Fa(t))},xe.deburr=Xa,xe.defaultTo=function(n,t){return null==n||n!=n?t:n},xe.divide=Rc,xe.endsWith=function(n,r,e){n=Ia(n),r=Qu(r);var u=n.length,i=e=e===t?u:Fe(Aa(e),0,u);return(e-=r.length)>=0&&n.slice(e,i)==r},xe.eq=Jf,xe.escape=function(n){return(n=Ia(n))&&An.test(n)?n.replace(mn,pr):n},xe.escapeRegExp=function(n){return(n=Ia(n))&&Ln.test(n)?n.replace(Sn,'\\$&'):n},xe.every=function(n,r,e){var u=na(n)?Tt:He;return e&&Ao(n,r,e)&&(r=t),u(n,oo(r,3))},xe.find=zf,xe.findIndex=Qo,xe.findKey=function(n,t){return Vt(n,oo(t,3),ru)},xe.findLast=Of,xe.findLastIndex=Xo,xe.findLastKey=function(n,t){return Vt(n,oo(t,3),eu)},xe.floor=Ec,xe.forEach=If,xe.forEachRight=Rf,xe.forIn=function(n,t){return null==n?n:nu(n,oo(t,3),Na)},xe.forInRight=function(n,t){return null==n?n:tu(n,oo(t,3),Na)},xe.forOwn=function(n,t){return n&&ru(n,oo(t,3))},xe.forOwnRight=function(n,t){return n&&eu(n,oo(t,3))},xe.get=Ua,xe.gt=Yf,xe.gte=Qf,xe.has=function(n,t){return null!=n&&go(n,t,cu)},xe.hasIn=Ba,xe.head=tf,xe.identity=pc,xe.includes=function(n,t,r,e){n=ra(n)?n:Ja(n),r=r&&!e?Aa(r):0;var u=n.length;return r<0&&(r=Yr(u+r,0)),da(n)?r<=u&&n.indexOf(t,r)>-1:!!u&&Ht(n,t,r)>-1},xe.indexOf=function(n,t,r){var e=null==n?0:n.length;if(!e)return-1;var u=null==r?0:Aa(r);return u<0&&(u=Yr(e+u,0)),Ht(n,t,u)},xe.inRange=function(n,r,e){return r=ja(r),e===t?(e=r,r=0):e=ja(e),su(n=za(n),r,e)},xe.invoke=Ma,xe.isArguments=Xf,xe.isArray=na,xe.isArrayBuffer=ta,xe.isArrayLike=ra,xe.isArrayLikeObject=ea,xe.isBoolean=function(n){return!0===n||!1===n||sa(n)&&fu(n)==N},xe.isBuffer=ua,xe.isDate=ia,xe.isElement=function(n){return sa(n)&&1===n.nodeType&&!va(n)},xe.isEmpty=function(n){if(null==n)return!0;if(ra(n)&&(na(n)||'string'==typeof n||'function'==typeof n.splice||ua(n)||xa(n)||Xf(n)))return!n.length;var t=po(n);if(t==G||t==nn)return!n.size;if(Io(n))return!wu(n).length;for(var r in n)if(yt.call(n,r))return!1;return!0},xe.isEqual=function(n,t){return gu(n,t)},xe.isEqualWith=function(n,r,e){var u=(e='function'==typeof e?e:t)?e(n,r):t;return u===t?gu(n,r,t,e):!!u},xe.isError=oa,xe.isFinite=function(n){return'number'==typeof n&&Gr(n)},xe.isFunction=fa,xe.isInteger=aa,xe.isLength=ca,xe.isMap=ha,xe.isMatch=function(n,t){return n===t||yu(n,t,ao(t))},xe.isMatchWith=function(n,r,e){return e='function'==typeof e?e:t,yu(n,r,ao(r),e)},xe.isNaN=function(n){return pa(n)&&n!=+n},xe.isNative=function(n){if(Oo(n))throw new Qn(e);return xu(n)},xe.isNil=function(n){return null==n},xe.isNull=function(n){return null===n},xe.isNumber=pa,xe.isObject=la,xe.isObjectLike=sa,xe.isPlainObject=va,xe.isRegExp=_a,xe.isSafeInteger=function(n){return aa(n)&&n>=-9007199254740991&&n<=L},xe.isSet=ga,xe.isString=da,xe.isSymbol=ya,xe.isTypedArray=xa,xe.isUndefined=function(n){return n===t},xe.isWeakMap=function(n){return sa(n)&&po(n)==un},xe.isWeakSet=function(n){return sa(n)&&fu(n)==on},xe.join=function(n,t){return null==n?'':Hr.call(n,t)},xe.kebabCase=nc,xe.last=of,xe.lastIndexOf=function(n,r,e){var u=null==n?0:n.length;if(!u)return-1;var i=u;return e!==t&&(i=(i=Aa(e))<0?Yr(u+i,0):Qr(i,u-1)),r==r?kr(n,r,i):Gt(n,Yt,i,!0)},xe.lowerCase=tc,xe.lowerFirst=rc,xe.lt=ba,xe.lte=wa,xe.max=function(n){return n&&n.length?Je(n,pc,au):t},xe.maxBy=function(n,r){return n&&n.length?Je(n,oo(r,2),au):t},xe.mean=function(n){return Qt(n,pc)},xe.meanBy=function(n,t){return Qt(n,oo(t,2))},xe.min=function(n){return n&&n.length?Je(n,pc,ju):t},xe.minBy=function(n,r){return n&&n.length?Je(n,oo(r,2),ju):t},xe.stubArray=kc,xe.stubFalse=zc,xe.stubObject=function(){return{}},xe.stubString=function(){return''},xe.stubTrue=function(){return!0},xe.multiply=Lc,xe.nth=function(n,r){return n&&n.length?Ru(n,Aa(r)):t},xe.noConflict=function(){return xt._===this&&(xt._=Zt),this},xe.noop=yc,xe.now=Uf,xe.pad=function(n,t,r){n=Ia(n);var e=(t=Aa(t))?zr(n):0;if(!t||e>=t)return n;var u=(t-e)/2;return Di(qr(u),r)+n+Di(Zr(u),r)},xe.padEnd=function(n,t,r){n=Ia(n);var e=(t=Aa(t))?zr(n):0;return t&&er){var u=n;n=r,r=u}if(e||n%1||r%1){var i=te();return Qr(n+i*(r-n+_t('1e-'+((i+'').length-1))),r)}return Uu(n,r)},xe.reduce=function(n,t,r){var e=na(n)?Ft:tr,u=arguments.length<3;return e(n,oo(t,4),r,u,Ve)},xe.reduceRight=function(n,t,r){var e=na(n)?Nt:tr,u=arguments.length<3;return e(n,oo(t,4),r,u,Ge)},xe.repeat=function(n,r,e){return r=(e?Ao(n,r,e):r===t)?1:Aa(r),$u(Ia(n),r)},xe.replace=function(){var n=arguments,t=Ia(n[0]);return n.length<3?t:t.replace(n[1],n[2])},xe.result=function(n,r,e){var u=-1,i=(r=ai(r,n)).length;for(i||(i=1,n=t);++uL)return[];var r=T,e=Qr(n,T);t=oo(t),n-=T;for(var u=ur(e,t);++r=o)return n;var a=e-zr(u);if(a<1)return u;var c=f?li(f,0,a).join(''):n.slice(0,a);if(i===t)return c+u;if(f&&(a+=c.length-a),_a(i)){if(n.slice(a).search(i)){var l,s=c;for(i.global||(i=rt(i.source,Ia(Nn.exec(i))+'g')),i.lastIndex=0;l=i.exec(s);)var h=l.index;c=c.slice(0,h===t?a:h)}}else if(n.indexOf(Qu(i),a)!=a){var p=c.lastIndexOf(i);p>-1&&(c=c.slice(0,p))}return c+u},xe.unescape=function(n){return(n=Ia(n))&&jn.test(n)?n.replace(wn,Ir):n},xe.uniqueId=function(n){var t=++bt;return Ia(n)+t},xe.upperCase=ic,xe.upperFirst=oc,xe.each=If,xe.eachRight=Rf,xe.first=tf,dc(xe,(Sc={},ru(xe,function(n,t){yt.call(xe.prototype,t)||(Sc[t]=n)}),Sc),{chain:!1}),xe.VERSION="4.17.13",Wt(['bind','bindKey','curry','curryRight','partial','partialRight'],function(n){xe[n].placeholder=xe}),Wt(['drop','take'],function(n,r){je.prototype[n]=function(e){e=e===t?1:Yr(Aa(e),0);var u=this.__filtered__&&!r?new je(this):this.clone();return u.__filtered__?u.__takeCount__=Qr(e,u.__takeCount__):u.__views__.push({size:Qr(e,T),type:n+(u.__dir__<0?'Right':'')}),u},je.prototype[n+'Right']=function(t){return this.reverse()[n](t).reverse()}}),Wt(['filter','map','takeWhile'],function(n,t){var r=t+1,e=r==R||3==r;je.prototype[n]=function(n){var t=this.clone();return t.__iteratees__.push({iteratee:oo(n,3),type:r}),t.__filtered__=t.__filtered__||e,t}}),Wt(['head','last'],function(n,t){var r='take'+(t?'Right':'');je.prototype[n]=function(){return this[r](1).value()[0]}}),Wt(['initial','tail'],function(n,t){var r='drop'+(t?'':'Right');je.prototype[n]=function(){return this.__filtered__?new je(this):this[r](1)}}),je.prototype.compact=function(){return this.filter(pc)},je.prototype.find=function(n){return this.filter(n).head()},je.prototype.findLast=function(n){return this.reverse().find(n)},je.prototype.invokeMap=Du(function(n,t){return'function'==typeof n?new je(this):this.map(function(r){return vu(r,n,t)})}),je.prototype.reject=function(n){return this.filter(qf(oo(n)))},je.prototype.slice=function(n,r){n=Aa(n);var e=this;return e.__filtered__&&(n>0||r<0)?new je(e):(n<0?e=e.takeRight(-n):n&&(e=e.drop(n)),r!==t&&(e=(r=Aa(r))<0?e.dropRight(-r):e.take(r-n)),e)},je.prototype.takeRightWhile=function(n){return this.reverse().takeWhile(n).reverse()},je.prototype.toArray=function(){return this.take(T)},ru(je.prototype,function(n,r){var e=/^(?:filter|find|map|reject)|While$/.test(r),u=/^(?:head|last)$/.test(r),i=xe[u?'take'+('last'==r?'Right':''):r],o=u||/^find/.test(r);i&&(xe.prototype[r]=function(){var r=this.__wrapped__,f=u?[1]:arguments,a=r instanceof je,c=f[0],l=a||na(r),s=function(n){var t=i.apply(xe,Mt([n],f));return u&&h?t[0]:t};l&&e&&'function'==typeof c&&1!=c.length&&(a=l=!1);var h=this.__chain__,p=!!this.__actions__.length,v=o&&!h,_=a&&!p;if(!o&&l){r=_?r:new je(this);var g=n.apply(r,f);return g.__actions__.push({func:jf,args:[s],thisArg:t}),new me(g,h)}return v&&_?n.apply(this,f):(g=this.thru(s),v?u?g.value()[0]:g.value():g)})}),Wt(['pop','push','shift','sort','splice','unshift'],function(n){var t=ft[n],r=/^(?:push|sort|unshift)$/.test(n)?'tap':'thru',e=/^(?:pop|shift)$/.test(n);xe.prototype[n]=function(){var n=arguments;if(e&&!this.__chain__){var u=this.value();return t.apply(na(u)?u:[],n)}return this[r](function(r){return t.apply(na(r)?r:[],n)})}}),ru(je.prototype,function(n,t){var r=xe[t];if(r){var e=r.name+'';yt.call(le,e)||(le[e]=[]),le[e].push({name:t,func:r})}}),le[Ti(t,g).name]=[{name:'wrapper',func:t}],je.prototype.clone=function(){var n=new je(this.__wrapped__);return n.__actions__=bi(this.__actions__),n.__dir__=this.__dir__,n.__filtered__=this.__filtered__,n.__iteratees__=bi(this.__iteratees__),n.__takeCount__=this.__takeCount__,n.__views__=bi(this.__views__),n},je.prototype.reverse=function(){if(this.__filtered__){var n=new je(this);n.__dir__=-1,n.__filtered__=!0}else(n=this.clone()).__dir__*=-1;return n},je.prototype.value=function(){var n=this.__wrapped__.value(),t=this.__dir__,r=na(n),e=t<0,u=r?n.length:0,i=vo(0,u,this.__views__),o=i.start,f=i.end,a=f-o,c=e?f:o-1,l=this.__iteratees__,s=l.length,h=0,p=Qr(a,this.__takeCount__);if(!r||!e&&u==a&&p==a)return ei(n,this.__actions__);var v=[];n:for(;a--&&h=this.__values__.length;return{done:n,value:n?t:this.__values__[this.__index__++]}},xe.prototype.plant=function(n){for(var r,e=this;e instanceof we;){var u=Go(e);u.__index__=0,u.__values__=t,r?i.__wrapped__=u:r=u;var i=u;e=e.__wrapped__}return i.__wrapped__=n,r},xe.prototype.reverse=function(){var n=this.__wrapped__;if(n instanceof je){var r=n;return this.__actions__.length&&(r=new je(this)),(r=r.reverse()).__actions__.push({func:jf,args:[lf],thisArg:t}),new me(r,this.__chain__)}return this.thru(lf)},xe.prototype.toJSON=xe.prototype.valueOf=xe.prototype.value=function(){return ei(this.__wrapped__,this.__actions__)},xe.prototype.first=xe.prototype.head,$r&&(xe.prototype[$r]=function(){return this}),xe})();'function'==typeof define&&'object'==typeof define.amd&&define.amd?(xt._=Lr,define(function(){return Lr})):wt?((wt.exports=Lr)._=Lr,bt._=Lr):xt._=Lr}).call(this)},551,[]); +__d(function(g,r,i,a,m,e,d){"use strict";var t=r(d[0]);e.__esModule=!0;var u=t(r(d[1]));e.Provider=u.default;var c=t(r(d[2]));e.connectAdvanced=c.default;var s=r(d[3]);e.ReactReduxContext=s.ReactReduxContext;var l=t(r(d[4]));e.connect=l.default;var o=r(d[5]);e.useDispatch=o.useDispatch;var v=r(d[6]);e.useSelector=v.useSelector;var n=r(d[7]);e.useStore=n.useStore;var h=r(d[8]),_=r(d[9]);e.batch=_.unstable_batchedUpdates;var b=t(r(d[10]));e.shallowEqual=b.default,(0,h.setBatch)(_.unstable_batchedUpdates)},552,[3,553,561,558,568,582,585,583,560,586,569]); +__d(function(g,r,i,a,m,e,d){"use strict";var t=r(d[0]),s=r(d[1]);e.__esModule=!0,e.default=void 0;var n=s(r(d[2])),o=s(r(d[3])),u=t(r(d[4])),c=s(r(d[5])),b=r(d[6]),p=s(r(d[7])),f=(function(t){function s(s){var o;o=t.call(this,s)||this;var u=s.store;o.notifySubscribers=o.notifySubscribers.bind((0,n.default)(o));var c=new p.default(u);return c.onStateChange=o.notifySubscribers,o.state={store:u,subscription:c},o.previousState=u.getState(),o}(0,o.default)(s,t);var c=s.prototype;return c.componentDidMount=function(){this._isMounted=!0,this.state.subscription.trySubscribe(),this.previousState!==this.props.store.getState()&&this.state.subscription.notifyNestedSubs()},c.componentWillUnmount=function(){this.unsubscribe&&this.unsubscribe(),this.state.subscription.tryUnsubscribe(),this._isMounted=!1},c.componentDidUpdate=function(t){if(this.props.store!==t.store){this.state.subscription.tryUnsubscribe();var s=new p.default(this.props.store);s.onStateChange=this.notifySubscribers,this.setState({store:this.props.store,subscription:s})}},c.notifySubscribers=function(){this.state.subscription.notifyNestedSubs()},c.render=function(){var t=this.props.context||b.ReactReduxContext;return u.default.createElement(t.Provider,{value:this.state},this.props.children)},s})(u.Component);f.propTypes={store:c.default.shape({subscribe:c.default.func.isRequired,dispatch:c.default.func.isRequired,getState:c.default.func.isRequired}),context:c.default.object,children:c.default.any};var h=f;e.default=h},553,[2,3,8,554,13,555,558,559]); +__d(function(g,r,i,a,m,e,d){m.exports=function(t,o){t.prototype=Object.create(o.prototype),t.prototype.constructor=t,t.__proto__=o}},554,[]); +__d(function(g,r,i,a,m,e,d){m.exports=r(d[0])()},555,[556]); +__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]);function t(){}function o(){}o.resetWarningCache=t,m.exports=function(){function p(t,o,p,c,s,y){if(y!==n){var f=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw f.name='Invariant Violation',f}}function c(){return p}p.isRequired=p;var s={array:p,bool:p,func:p,number:p,object:p,string:p,symbol:p,any:p,arrayOf:c,element:p,elementType:p,instanceOf:c,node:p,objectOf:c,oneOf:c,oneOfType:c,shape:c,exact:c,checkPropTypes:o,resetWarningCache:t};return s.PropTypes=s,s}},556,[557]); +__d(function(g,r,i,a,m,e,d){'use strict';m.exports='SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'},557,[]); +__d(function(g,r,i,a,m,e,d){"use strict";var t=r(d[0]);e.__esModule=!0,e.default=e.ReactReduxContext=void 0;var u=t(r(d[1])).default.createContext(null);e.ReactReduxContext=u;var l=u;e.default=l},558,[3,13]); +__d(function(g,r,i,a,m,e,d){"use strict";e.__esModule=!0,e.default=void 0;var t=r(d[0]),n=null,s={notify:function(){}};var u=(function(){function u(t,n){this.store=t,this.parentSub=n,this.unsubscribe=null,this.listeners=s,this.handleChangeWrapper=this.handleChangeWrapper.bind(this)}var h=u.prototype;return h.addNestedSub=function(t){return this.trySubscribe(),this.listeners.subscribe(t)},h.notifyNestedSubs=function(){this.listeners.notify()},h.handleChangeWrapper=function(){this.onStateChange&&this.onStateChange()},h.isSubscribed=function(){return Boolean(this.unsubscribe)},h.trySubscribe=function(){var s,u,h;this.unsubscribe||(this.unsubscribe=this.parentSub?this.parentSub.addNestedSub(this.handleChangeWrapper):this.store.subscribe(this.handleChangeWrapper),this.listeners=(s=(0,t.getBatch)(),u=[],h=[],{clear:function(){h=n,u=n},notify:function(){var t=u=h;s(function(){for(var n=0;n. You may also pass a {context : MyContext} option to connect");var L=j;return function(n){var v=n.displayName||n.name||'Component',x=N(v),M=(0,o.default)({},k,{getDisplayName:N,methodName:P,renderCountProp:E,shouldHandleStateChanges:T,storeKey:K,displayName:x,wrappedComponentName:v,WrappedComponent:n}),b=k.pure;function S(n){return t(n.dispatch,M)}var D=b?f.useMemo:function(t){return t()};function _(t){var c=(0,f.useMemo)(function(){var n=t.forwardedRef,o=(0,u.default)(t,["forwardedRef"]);return[t.context,n,o]},[t]),v=c[0],M=c[1],N=c[2],b=(0,f.useMemo)(function(){return v&&v.Consumer&&(0,l.isContextConsumer)(f.default.createElement(v.Consumer,null))?v:L},[v,L]),P=(0,f.useContext)(b),E=Boolean(t.store),_=Boolean(P)&&Boolean(P.store);(0,s.default)(E||_,"Could not find \"store\" in the context of \""+x+"\". Either wrap the root component in a , or pass a custom React context provider to and the corresponding React context consumer to "+x+" in connect options.");var K=t.store||P.store,A=(0,f.useMemo)(function(){return S(K)},[K]),B=(0,f.useMemo)(function(){if(!T)return C;var t=new p.default(K,E?null:P.subscription),n=t.notifyNestedSubs.bind(t);return[t,n]},[K,E,P]),H=B[0],W=B[1],U=(0,f.useMemo)(function(){return E?P:(0,o.default)({},P,{subscription:H})},[E,P,H]),j=(0,f.useReducer)(y,h,R),k=j[0],O=k[0],Y=j[1];if(O&&O.error)throw O.error;var q=(0,f.useRef)(),z=(0,f.useRef)(N),F=(0,f.useRef)(),G=(0,f.useRef)(!1),I=D(function(){return F.current&&N===z.current?F.current:A(K.getState(),N)},[K,O,N]);w(function(){z.current=N,q.current=I,G.current=!1,F.current&&(F.current=null,W())}),w(function(){if(T){var t=!1,n=null,o=function(){if(!t){var o,u,c=K.getState();try{o=A(c,z.current)}catch(t){u=t,n=t}u||(n=null),o===q.current?G.current||W():(q.current=o,F.current=o,G.current=!0,Y({type:'STORE_UPDATED',payload:{latestStoreState:c,error:u}}))}};H.onStateChange=o,H.trySubscribe(),o();return function(){if(t=!0,H.tryUnsubscribe(),n)throw n}}},[K,H,A]);var J=(0,f.useMemo)(function(){return f.default.createElement(n,(0,o.default)({},I,{ref:M}))},[M,n,I]),Q=(0,f.useMemo)(function(){return T?f.default.createElement(b.Provider,{value:U},J):J},[b,J,U]);return Q}var A=b?f.default.memo(_):_;if(A.WrappedComponent=n,A.displayName=x,W){var B=f.default.forwardRef(function(t,n){return f.default.createElement(A,(0,o.default)({},t,{forwardedRef:n}))});return B.displayName=x,B.WrappedComponent=n,(0,c.default)(B,n)}return(0,c.default)(A,n)}};var o=n(r(d[2])),u=n(r(d[3])),c=n(r(d[4])),s=n(r(d[5])),f=t(r(d[6])),l=r(d[7]),p=n(r(d[8])),v=r(d[9]),h=[],C=[null,null];function y(t,n){var o=t[1];return[n.payload,o+1]}var R=function(){return[null,0]},w='undefined'!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement?f.useLayoutEffect:f.useEffect},561,[2,3,16,57,562,565,13,566,559,558]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},p={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},y={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},n={};function s(p){return t.isMemo(p)?y:n[p.$$typeof]||o}n[t.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0};var c=Object.defineProperty,f=Object.getOwnPropertyNames,l=Object.getOwnPropertySymbols,u=Object.getOwnPropertyDescriptor,O=Object.getPrototypeOf,P=Object.prototype;m.exports=function t(o,y,n){if('string'!=typeof y){if(P){var v=O(y);v&&v!==P&&t(o,v,n)}var b=f(y);l&&(b=b.concat(l(y)));for(var j=s(o),T=s(y),$=0;$=0;u--){var p=o[u](t);if(p)return p}return function(o,u){throw new Error("Invalid value of type "+typeof t+" for "+n+" argument when connecting component "+u.wrappedComponentName+".")}}function P(t,o){return t===o}function E(t){var E=void 0===t?{}:t,q=E.connectHOC,S=void 0===q?u.default:q,h=E.mapStateToPropsFactories,w=void 0===h?l.default:h,M=E.mapDispatchToPropsFactories,T=void 0===M?s.default:M,C=E.mergePropsFactories,y=void 0===C?c.default:C,D=E.selectorFactory,F=void 0===D?f.default:D;return function(t,u,s,l){void 0===l&&(l={});var c=l,f=c.pure,E=void 0===f||f,q=c.areStatesEqual,h=void 0===q?P:q,M=c.areOwnPropsEqual,C=void 0===M?p.default:M,D=c.areStatePropsEqual,O=void 0===D?p.default:D,_=c.areMergedPropsEqual,N=void 0===_?p.default:_,H=(0,n.default)(c,["pure","areStatesEqual","areOwnPropsEqual","areStatePropsEqual","areMergedPropsEqual"]),B=v(t,w,'mapStateToProps'),I=v(u,T,'mapDispatchToProps'),b=v(s,y,'mergeProps');return S(F,(0,o.default)({methodName:'connect',getDisplayName:function(t){return"Connect("+t+")"},shouldHandleStateChanges:Boolean(t),initMapStateToProps:B,initMapDispatchToProps:I,initMergeProps:b,pure:E,areStatesEqual:h,areOwnPropsEqual:C,areStatePropsEqual:O,areMergedPropsEqual:N},H))}}var q=E();e.default=q},568,[3,16,57,561,569,570,578,579,580]); +__d(function(g,r,i,a,m,e,d){"use strict";e.__esModule=!0,e.default=function(u,o){if(n(u,o))return!0;if('object'!=typeof u||null===u||'object'!=typeof o||null===o)return!1;var f=Object.keys(u),l=Object.keys(o);if(f.length!==l.length)return!1;for(var c=0;c'),t};var n=r(d[1]),u=t(r(d[2])),o=r(d[3])},584,[3,13,565,558]); +__d(function(g,r,i,a,m,e,d){"use strict";var t=r(d[0]);e.__esModule=!0,e.useSelector=function(t,l){void 0===l&&(l=f);(0,u.default)(t,"You must pass a selector to useSelectors");var h,v=(0,c.useReduxContext)(),w=v.store,y=v.subscription,b=(0,n.useReducer)(function(t){return t+1},0)[1],S=(0,n.useMemo)(function(){return new o.default(w,y)},[w,y]),R=(0,n.useRef)(),p=(0,n.useRef)(),_=(0,n.useRef)();try{h=t!==p.current||R.current?t(w.getState()):_.current}catch(t){var E="An error occured while selecting the store state: "+t.message+".";throw R.current&&(E+="\nThe error may be correlated with this previous error:\n"+R.current.stack+"\n\nOriginal stack trace:"),new Error(E)}return s(function(){p.current=t,_.current=h,R.current=void 0}),s(function(){function t(){try{var t=p.current(w.getState());if(l(t,_.current))return;_.current=t}catch(t){R.current=t}b({})}return S.onStateChange=t,S.trySubscribe(),t(),function(){return S.tryUnsubscribe()}},[w,S]),h};var n=r(d[1]),u=t(r(d[2])),c=r(d[3]),o=t(r(d[4])),s='undefined'!=typeof window?n.useLayoutEffect:n.useEffect,f=function(t,n){return t===n}},585,[3,13,565,584,559]); +__d(function(g,r,i,a,m,e,d){"use strict";e.__esModule=!0;var t=r(d[0]);e.unstable_batchedUpdates=t.unstable_batchedUpdates},586,[17]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),l=t(r(d[2])),u=t(r(d[3])),f=r(d[4]),o=new((function(){function t(){(0,l.default)(this,t),this._elements=[]}return(0,u.default)(t,[{key:"applyMiddleware",value:function(){for(var t=arguments.length,l=new Array(t),u=0;u0&&void 0!==arguments[0]?arguments[0]:{};return(0,f.combineReducers)((0,n.default)({},this._elements,t))}},{key:"register",value:function(t,n){this._elements[t]=n}}]),t})());e.default=o},588,[3,54,4,5,571]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var s=t(r(d[1])),n=t(r(d[2])),o=t(r(d[3])),l=new((function(){function t(){(0,s.default)(this,t),this._selectorListeners=new Set}return(0,n.default)(t,[{key:"_listener",value:function(t){var s=t.prevSelections,n=t.store,l=this._selectorListeners,u=Array.isArray(l),c=0;for(l=u?l:l["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var f;if(u){if(c>=l.length)break;f=l[c++]}else{if((c=l.next()).done)break;f=c.value}var v=f,b=s.get(v);try{var y=v.selector(n.getState(),b);b!==y&&(s.set(v,y),v.listener(y,n,b))}catch(t){o.default.error(t)}}}},{key:"register",value:function(t,s){this._selectorListeners.add({listener:s,selector:t})}},{key:"subscribe",value:function(t){this._selectorListeners.size&&t.subscribe(this._listener.bind(this,{prevSelections:new Map,store:t}))}}]),t})());e.default=l},589,[3,4,5,590]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=(0,r(d[0]).getLogger)('features/base/redux');e.default=t},590,[591]); +__d(function(g,r,i,a,m,e,d){var o=r(d[0]),t=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.getLogger=function(o){var t='ReactNative'===navigator.product?f:v;return(0,n.getLogger)(o,void 0,t)},e._initLogging=void 0;var l=t(r(d[2])),n=o(r(d[3])),u=t(r(d[4])),v={},f={disableCallerInfo:!0};var s=l.default.once(function(){if('ReactNative'===navigator.product){var o=r(d[5]).default;n.default.setGlobalOptions(f),o.setGlobalLogOptions(f),n.default.removeGlobalTransport(console),o.removeGlobalLogTransport(console),n.default.addGlobalTransport(u.default),o.addGlobalLogTransport(u.default)}});e._initLogging=s},591,[2,3,551,592,595,389]); +__d(function(g,r,i,a,m,e,d){var o=r(d[0]),l=r(d[1]),t={},n=[],s=o.levels.TRACE;m.exports={addGlobalTransport:function(l){o.addGlobalTransport(l)},removeGlobalTransport:function(l){o.removeGlobalTransport(l)},setGlobalOptions:function(l){o.setGlobalOptions(l)},getLogger:function(l,v,f){var u=new o(s,l,v,f);return l?(t[l]=t[l]||[],t[l].push(u)):n.push(u),u},setLogLevelById:function(o,l){for(var s=l?t[l]||[]:n,v=0;v1&&O.push("<"+h.methodName+">: ");var N=O.concat(f);b.bind(v).apply(v,N)}}}function c(n,o,l,c){this.id=o,this.options=c||{},this.transports=l,this.transports||(this.transports=[]),this.level=t[n];for(var f=Object.keys(t),h=0;h=this.maxEntryLength&&this._flush(!0,!0)},s.prototype.start=function(){this._reschedulePublishInterval()},s.prototype._reschedulePublishInterval=function(){this.storeLogsIntervalID&&(window.clearTimeout(this.storeLogsIntervalID),this.storeLogsIntervalID=null),this.storeLogsIntervalID=window.setTimeout(this._flush.bind(this,!1,!0),this.storeInterval)},s.prototype.flush=function(){this._flush(!1,!0)},s.prototype._flush=function(t,s){this.totalLen>0&&(this.logStorage.isReady()||t)&&(this.logStorage.isReady()?(this.outputCache.length&&(this.outputCache.forEach(function(t){this.logStorage.storeLogs(t)}.bind(this)),this.outputCache=[]),this.logStorage.storeLogs(this.queue)):this.outputCache.push(this.queue),this.queue=[],this.totalLen=0),s&&this._reschedulePublishInterval()},s.prototype.stop=function(){this._flush(!1,!1)},m.exports=s},594,[593]); +__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=n(r(d[1])),o=r(d[2]),u=r(d[3]),f=o.NativeModules.LogBridge;function c(n){var t,o=n.stack;return'function'==typeof n.cause&&(t=n.cause())&&(o+="\nCaused by: "+c(t)),o}var s=['trace','debug','info','log','warn','error'].reduce(function(n,o){return n[o]=function(n){for(var s=arguments.length,v=new Array(s>1?s-1:0),l=1;l=l)return t;switch(t){case'%s':return String(c[u++]);case'%d':return Number(c[u++]);case'%j':try{return JSON.stringify(c[u++])}catch(t){return'[Circular]'}default:return t}}),f=c[u];u=3&&(o.depth=arguments[2]),arguments.length>=4&&(o.colors=arguments[3]),E(n)?o.showHidden=n:n&&e._extend(o,n),D(o.showHidden)&&(o.showHidden=!1),D(o.depth)&&(o.depth=2),D(o.colors)&&(o.colors=!1),D(o.customInspect)&&(o.customInspect=!0),o.colors&&(o.stylize=l),y(o,t,o.depth)}function l(t,n){var o=s.styles[n];return o?"\x1b["+s.colors[o][0]+'m'+t+"\x1b["+s.colors[o][1]+'m':t}function p(t,n){return t}function f(t){var n={};return t.forEach(function(t,o){n[t]=!0}),n}function y(t,n,o){if(t.customInspect&&n&&F(n.inspect)&&n.inspect!==e.inspect&&(!n.constructor||n.constructor.prototype!==n)){var u=n.inspect(o,t);return x(u)||(u=y(t,u,o)),u}var c=b(t,n);if(c)return c;var s=Object.keys(n),l=f(s);if(t.showHidden&&(s=Object.getOwnPropertyNames(n)),$(n)&&(s.indexOf('message')>=0||s.indexOf('description')>=0))return h(n);if(0===s.length){if(F(n)){var p=n.name?': '+n.name:'';return t.stylize('[Function'+p+']','special')}if(P(n))return t.stylize(RegExp.prototype.toString.call(n),'regexp');if(T(n))return t.stylize(Date.prototype.toString.call(n),'date');if($(n))return h(n)}var E,S='',z=!1,D=['{','}'];(w(n)&&(z=!0,D=['[',']']),F(n))&&(S=' [Function'+(n.name?': '+n.name:'')+']');return P(n)&&(S=' '+RegExp.prototype.toString.call(n)),T(n)&&(S=' '+Date.prototype.toUTCString.call(n)),$(n)&&(S=' '+h(n)),0!==s.length||z&&0!=n.length?o<0?P(n)?t.stylize(RegExp.prototype.toString.call(n),'regexp'):t.stylize('[Object]','special'):(t.seen.push(n),E=z?v(t,n,o,l,s):s.map(function(u){return O(t,n,o,l,u,z)}),t.seen.pop(),j(E,S,D)):D[0]+S+D[1]}function b(t,n){if(D(n))return t.stylize('undefined','undefined');if(x(n)){var o='\''+JSON.stringify(n).replace(/^"|"$/g,'').replace(/'/g,"\\'").replace(/\\"/g,'"')+'\'';return t.stylize(o,'string')}return z(n)?t.stylize(''+n,'number'):E(n)?t.stylize(''+n,'boolean'):S(n)?t.stylize('null','null'):void 0}function h(t){return'['+Error.prototype.toString.call(t)+']'}function v(t,n,o,u,c){for(var s=[],l=0,p=n.length;l-1&&(p=s?p.split('\n').map(function(t){return' '+t}).join('\n').substr(2):'\n'+p.split('\n').map(function(t){return' '+t}).join('\n')):p=t.stylize('[Circular]','special')),D(l)){if(s&&c.match(/^\d+$/))return p;(l=JSON.stringify(''+c)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(l=l.substr(1,l.length-2),l=t.stylize(l,'name')):(l=l.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),l=t.stylize(l,'string'))}return l+': '+p}function j(t,n,o){return t.reduce(function(t,n){return 0,n.indexOf('\n')>=0&&0,t+n.replace(/\u001b\[\d\d?m/g,'').length+1},0)>60?o[0]+(''===n?'':n+'\n ')+' '+t.join(',\n ')+' '+o[1]:o[0]+n+' '+t.join(', ')+' '+o[1]}function w(t){return Array.isArray(t)}function E(t){return'boolean'==typeof t}function S(t){return null===t}function z(t){return'number'==typeof t}function x(t){return'string'==typeof t}function D(t){return void 0===t}function P(t){return N(t)&&'[object RegExp]'===_(t)}function N(t){return'object'==typeof t&&null!==t}function T(t){return N(t)&&'[object Date]'===_(t)}function $(t){return N(t)&&('[object Error]'===_(t)||t instanceof Error)}function F(t){return'function'==typeof t}function _(t){return Object.prototype.toString.call(t)}function k(t){return t<10?'0'+t.toString(10):t.toString(10)}e.debuglog=function(t){if(t=t.toUpperCase(),!o[t])if(u.test(t)){var n=process.pid;o[t]=function(){var o=e.format.apply(e,arguments);console.error('%s %d: %s',t,n,o)}}else o[t]=function(){};return o[t]},e.inspect=s,s.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]},s.styles={special:'cyan',number:'yellow',boolean:'yellow',undefined:'grey',null:'bold',string:'green',date:'magenta',regexp:'red'},e.types=r(d[0]),e.isArray=w,e.isBoolean=E,e.isNull=S,e.isNullOrUndefined=function(t){return null==t},e.isNumber=z,e.isString=x,e.isSymbol=function(t){return'symbol'==typeof t},e.isUndefined=D,e.isRegExp=P,e.types.isRegExp=P,e.isObject=N,e.isDate=T,e.types.isDate=T,e.isError=$,e.types.isNativeError=$,e.isFunction=F,e.isPrimitive=function(t){return null===t||'boolean'==typeof t||'number'==typeof t||'string'==typeof t||'symbol'==typeof t||void 0===t},e.isBuffer=r(d[1]);var A=['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];function R(t,n){return Object.prototype.hasOwnProperty.call(t,n)}e.log=function(){var t,n;console.log('%s - %s',(t=new Date,n=[k(t.getHours()),k(t.getMinutes()),k(t.getSeconds())].join(':'),[t.getDate(),A[t.getMonth()],n].join(' ')),e.format.apply(e,arguments))},e.inherits=r(d[2]),e._extend=function(t,n){if(!n||!N(n))return t;for(var o=Object.keys(n),u=o.length;u--;)t[o[u]]=n[o[u]];return t};var U='undefined'!=typeof Symbol?Symbol('util.promisify.custom'):void 0;function J(t,n){if(!t){var o=new Error('Promise was rejected with a falsy value');o.reason=t,t=o}return n(t)}e.promisify=function(n){if('function'!=typeof n)throw new TypeError('The "original" argument must be of type Function');if(U&&n[U]){var o;if('function'!=typeof(o=n[U]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(o,U,{value:o,enumerable:!1,writable:!1,configurable:!0}),o}function o(){for(var t,o,u=new Promise(function(n,u){t=n,o=u}),c=[],s=0;s=0&&'[object Array]'!==o.call(t)&&'[object Function]'===o.call(t.callee)},l=(function(){return n(arguments)})();n.isLegacyArguments=c,m.exports=l?n:c},599,[]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=Object.prototype.toString,o=Function.prototype.toString,n=/^\s*(?:function)?\*/,c='function'==typeof Symbol&&'symbol'==typeof("function"==typeof Symbol?Symbol.toStringTag:"@@toStringTag"),u=Object.getPrototypeOf,f=(function(){if(!c)return!1;try{return Function('return function*() {}')()}catch(t){}})(),y=f?u(f):{};m.exports=function(f){return'function'==typeof f&&(!!n.test(o.call(f))||(c?u(f)===y:'[object GeneratorFunction]'===t.call(f)))}},600,[]); +__d(function(g,r,i,a,m,e,d){'function'==typeof Object.create?m.exports=function(t,o){t.super_=o,t.prototype=Object.create(o.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}})}:m.exports=function(t,o){t.super_=o;var p=function(){};p.prototype=o.prototype,t.prototype=new p,t.prototype.constructor=t}},601,[]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})});var u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}})});var o=r(d[3]);Object.keys(o).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return o[t]}})});var c=r(d[4]);Object.keys(c).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return c[t]}})}),r(d[5]),r(d[6])},602,[603,617,619,618,758,759,760]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.clearNotifications=function(){return{type:u.CLEAR_NOTIFICATIONS}},e.hideNotification=function(t){return{type:u.HIDE_NOTIFICATION,uid:t}},e.setNotificationsEnabled=function(t){return{type:u.SET_NOTIFICATIONS_ENABLED,enabled:t}},e.showErrorNotification=function(t){return f((0,n.default)({},t,{appearance:c.NOTIFICATION_TYPE.ERROR}))},e.showNotification=f,e.showWarningNotification=function(t){return f((0,n.default)({},t,{appearance:c.NOTIFICATION_TYPE.WARNING}))},e.showParticipantJoinedNotification=function(t){return I.push(t),function(t){return N(t)}};var n=t(r(d[1])),o=t(r(d[2])),u=r(d[3]),c=r(d[4]);function f(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;return{type:u.SHOW_NOTIFICATION,props:t,timeout:n,uid:window.Date.now()}}var I=[],N=(0,o.default)(function(t){var n,o=I.length;o>=3?n={titleArguments:{name:I[0],count:o-1},titleKey:'notify.connectedThreePlusMembers'}:2===o?n={titleArguments:{first:I[0],second:I[1]},titleKey:'notify.connectedTwoMembers'}:o&&(n={titleArguments:{name:I[0]},titleKey:'notify.connectedOneMember'}),n&&t(f(n,c.NOTIFICATION_TIMEOUT)),I=[]},500,{leading:!1})},603,[3,54,604,617,618]); +__d(function(g,r,i,a,m,e,d){var n=r(d[0]),t=r(d[1]),o='Expected a function';m.exports=function(f,l,c){var u=!0,p=!0;if('function'!=typeof f)throw new TypeError(o);return t(c)&&(u='leading'in c?!!c.leading:u,p='trailing'in c?!!c.trailing:p),n(f,l,{leading:u,maxWait:l,trailing:p})}},604,[605,606]); +__d(function(g,r,i,a,m,e,d){var n=r(d[0]),t=r(d[1]),o=r(d[2]),u='Expected a function',f=Math.max,c=Math.min;m.exports=function(v,l,s){var T,p,h,x,y,w,E=0,M=!1,W=!1,_=!0;if('function'!=typeof v)throw new TypeError(u);function b(n){var t=T,o=p;return T=p=void 0,E=n,x=v.apply(o,t)}function j(n){return E=n,y=setTimeout(z,l),M?b(n):x}function k(n){var t=l-(n-w);return W?c(t,h-(n-E)):t}function q(n){var t=n-w;return void 0===w||t>=l||t<0||W&&n-E>=h}function z(){var n=t();if(q(n))return A(n);y=setTimeout(z,k(n))}function A(n){return y=void 0,_&&T?b(n):(T=p=void 0,x)}function B(){var n=t(),o=q(n);if(T=arguments,p=this,w=n,o){if(void 0===y)return j(w);if(W)return clearTimeout(y),y=setTimeout(z,l),b(w)}return void 0===y&&(y=setTimeout(z,l)),x}return l=o(l)||0,n(s)&&(M=!!s.leading,h=(W='maxWait'in s)?f(o(s.maxWait)||0,l):h,_='trailing'in s?!!s.trailing:_),B.cancel=function(){void 0!==y&&clearTimeout(y),E=0,T=w=p=y=void 0},B.flush=function(){return void 0===y?x:A(t())},B}},605,[606,607,610]); +__d(function(g,r,i,a,m,e,d){m.exports=function(n){var t=typeof n;return null!=n&&('object'==t||'function'==t)}},606,[]); +__d(function(g,r,i,a,m,e,d){var n=r(d[0]);m.exports=function(){return n.Date.now()}},607,[608]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),f='object'==typeof self&&self&&self.Object===Object&&self,s=t||f||Function('return this')();m.exports=s},608,[609]); +__d(function(g,r,i,a,m,e,d){var t='object'==typeof g&&g&&g.Object===Object&&g;m.exports=t},609,[]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),f=r(d[1]),n=NaN,u=/^\s+|\s+$/g,s=/^[-+]0x[0-9a-f]+$/i,o=/^0b[01]+$/i,p=/^0o[0-7]+$/i,c=parseInt;m.exports=function(v){if('number'==typeof v)return v;if(f(v))return n;if(t(v)){var l='function'==typeof v.valueOf?v.valueOf():v;v=t(l)?l+'':l}if('string'!=typeof v)return 0===v?v:+v;v=v.replace(u,'');var $=o.test(v);return $||p.test(v)?c(v.slice(2),$?2:8):s.test(v)?n:+v}},610,[606,611]); +__d(function(g,r,i,a,m,e,d){var o=r(d[0]),t=r(d[1]),n='[object Symbol]';m.exports=function(b){return'symbol'==typeof b||t(b)&&o(b)==n}},611,[612,616]); +__d(function(g,r,i,a,m,e,d){var n=r(d[0]),t=r(d[1]),o=r(d[2]),c='[object Null]',u='[object Undefined]',f=n?"function"==typeof n?n.toStringTag:"@@toStringTag":void 0;m.exports=function(n){return null==n?void 0===n?u:c:f&&f in Object(n)?t(n):o(n)}},612,[613,614,615]); +__d(function(g,r,i,a,m,e,d){var o=r(d[0]).Symbol;m.exports=o},613,[608]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),o=Object.prototype,n=o.hasOwnProperty,c=o.toString,l=t?"function"==typeof t?t.toStringTag:"@@toStringTag":void 0;m.exports=function(t){var o=n.call(t,l),p=t[l];try{t[l]=void 0}catch(t){}var v=c.call(t);return o?t[l]=p:delete t[l],v}},614,[613]); +__d(function(g,r,i,a,m,e,d){var t=Object.prototype.toString;m.exports=function(n){return t.call(n)}},615,[]); +__d(function(g,r,i,a,m,e,d){m.exports=function(n){return null!=n&&'object'==typeof n}},616,[]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.SET_NOTIFICATIONS_ENABLED=e.SHOW_NOTIFICATION=e.HIDE_NOTIFICATION=e.CLEAR_NOTIFICATIONS=void 0;e.CLEAR_NOTIFICATIONS='CLEAR_NOTIFICATIONS';e.HIDE_NOTIFICATION='HIDE_NOTIFICATION';e.SHOW_NOTIFICATION='SHOW_NOTIFICATION';e.SET_NOTIFICATIONS_ENABLED='SET_NOTIFICATIONS_ENABLED'},617,[]); +__d(function(g,r,i,a,m,e,d){var I=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.NOTIFICATION_TYPE_PRIORITIES=e.NOTIFICATION_TYPE=e.NOTIFICATION_TIMEOUT=void 0;var O,T=I(r(d[1]));e.NOTIFICATION_TIMEOUT=2500;var N={ERROR:'error',INFO:'info',NORMAL:'normal',SUCCESS:'success',WARNING:'warning'};e.NOTIFICATION_TYPE=N;var R=(O={},(0,T.default)(O,N.ERROR,5),(0,T.default)(O,N.INFO,3),(0,T.default)(O,N.NORMAL,3),(0,T.default)(O,N.SUCCESS,3),(0,T.default)(O,N.WARNING,4),O);e.NOTIFICATION_TYPE_PRIORITIES=R},618,[3,55]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},619,[620]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"Notification",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(e,"NotificationsContainer",{enumerable:!0,get:function(){return o.default}});var n=t(r(d[1])),o=t(r(d[2]))},620,[3,621,756]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),l=t(r(d[2])),u=t(r(d[3])),s=t(r(d[4])),o=t(r(d[5])),f=t(r(d[6])),c=r(d[7]),y=r(d[8]),p=r(d[9]),h=t(r(d[10])),v=t(r(d[11])),E=(function(t){function y(){return(0,n.default)(this,y),(0,u.default)(this,(0,s.default)(y).apply(this,arguments))}return(0,o.default)(y,t),(0,l.default)(y,[{key:"render",value:function(){var t=this.props.isDismissAllowed;return f.default.createElement(c.View,{pointerEvents:"box-none",style:v.default.notification},f.default.createElement(c.View,{style:v.default.contentColumn},f.default.createElement(c.View,{pointerEvents:"box-none",style:v.default.notificationContent},this._renderContent())),t&&f.default.createElement(c.TouchableOpacity,{onPress:this._onDismissed},f.default.createElement(p.Icon,{src:p.IconClose,style:v.default.dismissIcon})))}},{key:"_renderContent",value:function(){var t=this.props,n=t.t,l=t.title,u=t.titleArguments,s=t.titleKey,o=l||s&&n(s,u),y=this._getDescription();return y&&y.length?y.map(function(t,n){return f.default.createElement(c.Text,{key:n,numberOfLines:1,style:v.default.contentText},t)}):f.default.createElement(c.Text,{numberOfLines:1,style:v.default.contentText},o)}}]),y})(h.default),_=(0,y.translate)(E);e.default=_},621,[3,4,5,6,9,10,13,17,622,403,754,755]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0});var n={i18next:!0,DEFAULT_LANGUAGE:!0,LANGUAGES:!0};Object.defineProperty(e,"i18next",{enumerable:!0,get:function(){return c.default}}),Object.defineProperty(e,"DEFAULT_LANGUAGE",{enumerable:!0,get:function(){return c.DEFAULT_LANGUAGE}}),Object.defineProperty(e,"LANGUAGES",{enumerable:!0,get:function(){return c.LANGUAGES}});var o=r(d[1]);Object.keys(o).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(n,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return o[t]}}))});var u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(n,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}}))});var c=t(r(d[3]))},622,[2,623,724,625]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.getLocalizedDateFormatter=function(t){return(0,n.default)(t).locale(o())},e.getLocalizedDurationFormatter=function(t){if('0'!==n.default.duration(t).format('h'))return n.default.duration(t).format('h:mm:ss');return n.default.duration(t).format('mm:ss',{trim:!1})};var n=t(r(d[1])),u=t(r(d[2]));function o(){var t,o=u.default.language;if(o){var f=new RegExp('^([a-z]{2,2})(-)*([a-z]{2,2})*$').exec(o.toLowerCase());if(f){var l=new RegExp("^"+f[1]+"(-)*"+("("+f[3]+")*"||''));t=n.default.locales().find(function(t){return l.exec(t)})}}return t||'en'}r(d[3]),r(d[4]),r(d[5]),r(d[6]),r(d[7]),r(d[8]),r(d[9]),r(d[10]),r(d[11]),r(d[12]),r(d[13]),r(d[14]),r(d[15]),r(d[16]),r(d[17]),r(d[18]),r(d[19]),r(d[20])},623,[3,624,625,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723]); +__d(function(g,r,i,a,m,e,d){var t,n;t=this,n=function(){'use strict';var t,n;function s(){return t.apply(null,arguments)}function o(t){return t instanceof Array||'[object Array]'===Object.prototype.toString.call(t)}function u(t){return null!=t&&'[object Object]'===Object.prototype.toString.call(t)}function l(t){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(t).length;var n;for(n in t)if(t.hasOwnProperty(n))return!1;return!0}function h(t){return void 0===t}function c(t){return'number'==typeof t||'[object Number]'===Object.prototype.toString.call(t)}function f(t){return t instanceof Date||'[object Date]'===Object.prototype.toString.call(t)}function _(t,n){var s,o=[];for(s=0;s>>0,o=0;o0)for(s=0;s=0?s?'+':'':'-')+Math.pow(10,Math.max(0,u)).toString().substr(1)+o}var $=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,J=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,q={},B={};function Q(t,n,s,o){var u=o;'string'==typeof o&&(u=function(){return this[o]()}),t&&(B[t]=u),n&&(B[n[0]]=function(){return Z(u.apply(this,arguments),n[1],n[2])}),s&&(B[s]=function(){return this.localeData().ordinal(u.apply(this,arguments),t)})}function X(t){var n,s,o,u=t.match($);for(n=0,s=u.length;n=0&&J.test(t);)t=t.replace(J,o),J.lastIndex=0,s-=1;return t}var te=/\d/,ne=/\d\d/,se=/\d{3}/,ie=/\d{4}/,re=/[+-]?\d{6}/,ae=/\d\d?/,oe=/\d\d\d\d?/,ue=/\d\d\d\d\d\d?/,le=/\d{1,3}/,de=/\d{1,4}/,he=/[+-]?\d{1,6}/,ce=/\d+/,fe=/[+-]?\d+/,me=/Z|[+-]\d\d:?\d\d/gi,_e=/Z|[+-]\d\d(?::?\d\d)?/gi,ye=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,ge={};function ve(t,n,s){ge[t]=N(n)?n:function(t,o){return t&&s?s:n}}function pe(t,n){return y(ge,t)?ge[t](n._strict,n._locale):new RegExp(we(t.replace('\\','').replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,n,s,o,u){return n||s||o||u})))}function we(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,'\\$&')}var Me={};function ke(t,n){var s,o=n;for('string'==typeof t&&(t=[t]),c(n)&&(o=function(t,s){s[n]=b(t)}),s=0;s68?1900:2e3)};var Ne,He=Le('FullYear',!0);function Le(t,n){return function(o){return null!=o?(Ve(this,t,o),s.updateOffset(this,n),this):Ge(this,t)}}function Ge(t,n){return t.isValid()?t._d['get'+(t._isUTC?'UTC':'')+n]():NaN}function Ve(t,n,s){t.isValid()&&!isNaN(s)&&('FullYear'===n&&Ue(t.year())&&1===t.month()&&29===t.date()?t._d['set'+(t._isUTC?'UTC':'')+n](s,t.month(),je(s,t.month())):t._d['set'+(t._isUTC?'UTC':'')+n](s))}function je(t,n){if(isNaN(t)||isNaN(n))return NaN;var s,o=(n%(s=12)+s)%s;return t+=(n-o)/12,1===o?Ue(t)?29:28:31-o%7%2}Ne=Array.prototype.indexOf?Array.prototype.indexOf:function(t){var n;for(n=0;n=0&&isFinite(c.getFullYear())&&c.setFullYear(t),c}function Xe(t){var n=new Date(Date.UTC.apply(null,arguments));return t<100&&t>=0&&isFinite(n.getUTCFullYear())&&n.setUTCFullYear(t),n}function Ke(t,n,s){var o=7+n-s;return-((7+Xe(t,0,o).getUTCDay()-n)%7)+o-1}function et(t,n,s,o,u){var l,h,c=1+7*(n-1)+(7+s-o)%7+Ke(t,o,u);return c<=0?h=Fe(l=t-1)+c:c>Fe(t)?(l=t+1,h=c-Fe(t)):(l=t,h=c),{year:l,dayOfYear:h}}function tt(t,n,s){var o,u,l=Ke(t.year(),n,s),h=Math.floor((t.dayOfYear()-l-1)/7)+1;return h<1?o=h+nt(u=t.year()-1,n,s):h>nt(t.year(),n,s)?(o=h-nt(t.year(),n,s),u=t.year()+1):(u=t.year(),o=h),{week:o,year:u}}function nt(t,n,s){var o=Ke(t,n,s),u=Ke(t+1,n,s);return(Fe(t)-o+u)/7}Q('w',['ww',2],'wo','week'),Q('W',['WW',2],'Wo','isoWeek'),V('week','w'),V('isoWeek','W'),A('week',5),A('isoWeek',5),ve('w',ae),ve('ww',ae,ne),ve('W',ae),ve('WW',ae,ne),Se(['w','ww','W','WW'],function(t,n,s,o){n[o.substr(0,1)]=b(t)});function st(t,n){return'string'!=typeof t?t:isNaN(t)?'number'==typeof(t=n.weekdaysParse(t))?t:null:parseInt(t,10)}function it(t,n){return'string'==typeof t?n.weekdaysParse(t)%7||7:isNaN(t)?null:t}Q('d',0,'do','day'),Q('dd',0,0,function(t){return this.localeData().weekdaysMin(this,t)}),Q('ddd',0,0,function(t){return this.localeData().weekdaysShort(this,t)}),Q('dddd',0,0,function(t){return this.localeData().weekdays(this,t)}),Q('e',0,0,'weekday'),Q('E',0,0,'isoWeekday'),V('day','d'),V('weekday','e'),V('isoWeekday','E'),A('day',11),A('weekday',11),A('isoWeekday',11),ve('d',ae),ve('e',ae),ve('E',ae),ve('dd',function(t,n){return n.weekdaysMinRegex(t)}),ve('ddd',function(t,n){return n.weekdaysShortRegex(t)}),ve('dddd',function(t,n){return n.weekdaysRegex(t)}),Se(['dd','ddd','dddd'],function(t,n,s,o){var u=s._locale.weekdaysParse(t,o,s._strict);null!=u?n.d=u:w(s).invalidWeekday=t}),Se(['d','e','E'],function(t,n,s,o){n[o]=b(t)});var rt='Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_');var at='Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_');var ot='Su_Mo_Tu_We_Th_Fr_Sa'.split('_');function ut(t,n,s){var o,u,l,h=t.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],o=0;o<7;++o)l=p([2e3,1]).day(o),this._minWeekdaysParse[o]=this.weekdaysMin(l,'').toLocaleLowerCase(),this._shortWeekdaysParse[o]=this.weekdaysShort(l,'').toLocaleLowerCase(),this._weekdaysParse[o]=this.weekdays(l,'').toLocaleLowerCase();return s?'dddd'===n?-1!==(u=Ne.call(this._weekdaysParse,h))?u:null:'ddd'===n?-1!==(u=Ne.call(this._shortWeekdaysParse,h))?u:null:-1!==(u=Ne.call(this._minWeekdaysParse,h))?u:null:'dddd'===n?-1!==(u=Ne.call(this._weekdaysParse,h))?u:-1!==(u=Ne.call(this._shortWeekdaysParse,h))?u:-1!==(u=Ne.call(this._minWeekdaysParse,h))?u:null:'ddd'===n?-1!==(u=Ne.call(this._shortWeekdaysParse,h))?u:-1!==(u=Ne.call(this._weekdaysParse,h))?u:-1!==(u=Ne.call(this._minWeekdaysParse,h))?u:null:-1!==(u=Ne.call(this._minWeekdaysParse,h))?u:-1!==(u=Ne.call(this._weekdaysParse,h))?u:-1!==(u=Ne.call(this._shortWeekdaysParse,h))?u:null}var lt=ye;var dt=ye;var ht=ye;function ct(){function t(t,n){return n.length-t.length}var n,s,o,u,l,h=[],c=[],f=[],_=[];for(n=0;n<7;n++)s=p([2e3,1]).day(n),o=this.weekdaysMin(s,''),u=this.weekdaysShort(s,''),l=this.weekdays(s,''),h.push(o),c.push(u),f.push(l),_.push(o),_.push(u),_.push(l);for(h.sort(t),c.sort(t),f.sort(t),_.sort(t),n=0;n<7;n++)c[n]=we(c[n]),f[n]=we(f[n]),_[n]=we(_[n]);this._weekdaysRegex=new RegExp('^('+_.join('|')+')','i'),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp('^('+f.join('|')+')','i'),this._weekdaysShortStrictRegex=new RegExp('^('+c.join('|')+')','i'),this._weekdaysMinStrictRegex=new RegExp('^('+h.join('|')+')','i')}function ft(){return this.hours()%12||12}function mt(t,n){Q(t,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),n)})}function _t(t,n){return n._meridiemParse}Q('H',['HH',2],0,'hour'),Q('h',['hh',2],0,ft),Q('k',['kk',2],0,function(){return this.hours()||24}),Q('hmm',0,0,function(){return''+ft.apply(this)+Z(this.minutes(),2)}),Q('hmmss',0,0,function(){return''+ft.apply(this)+Z(this.minutes(),2)+Z(this.seconds(),2)}),Q('Hmm',0,0,function(){return''+this.hours()+Z(this.minutes(),2)}),Q('Hmmss',0,0,function(){return''+this.hours()+Z(this.minutes(),2)+Z(this.seconds(),2)}),mt('a',!0),mt('A',!1),V('hour','h'),A('hour',13),ve('a',_t),ve('A',_t),ve('H',ae),ve('h',ae),ve('k',ae),ve('HH',ae,ne),ve('hh',ae,ne),ve('kk',ae,ne),ve('hmm',oe),ve('hmmss',ue),ve('Hmm',oe),ve('Hmmss',ue),ke(['H','HH'],xe),ke(['k','kk'],function(t,n,s){var o=b(t);n[xe]=24===o?0:o}),ke(['a','A'],function(t,n,s){s._isPm=s._locale.isPM(t),s._meridiem=t}),ke(['h','hh'],function(t,n,s){n[xe]=b(t),w(s).bigHour=!0}),ke('hmm',function(t,n,s){var o=t.length-2;n[xe]=b(t.substr(0,o)),n[be]=b(t.substr(o)),w(s).bigHour=!0}),ke('hmmss',function(t,n,s){var o=t.length-4,u=t.length-2;n[xe]=b(t.substr(0,o)),n[be]=b(t.substr(o,2)),n[Pe]=b(t.substr(u)),w(s).bigHour=!0}),ke('Hmm',function(t,n,s){var o=t.length-2;n[xe]=b(t.substr(0,o)),n[be]=b(t.substr(o))}),ke('Hmmss',function(t,n,s){var o=t.length-4,u=t.length-2;n[xe]=b(t.substr(0,o)),n[be]=b(t.substr(o,2)),n[Pe]=b(t.substr(u))});var yt,gt=Le('Hours',!0),vt={calendar:{sameDay:'[Today at] LT',nextDay:'[Tomorrow at] LT',nextWeek:'dddd [at] LT',lastDay:'[Yesterday at] LT',lastWeek:'[Last] dddd [at] LT',sameElse:'L'},longDateFormat:{LTS:'h:mm:ss A',LT:'h:mm A',L:'MM/DD/YYYY',LL:'MMMM D, YYYY',LLL:'MMMM D, YYYY h:mm A',LLLL:'dddd, MMMM D, YYYY h:mm A'},invalidDate:'Invalid date',ordinal:'%d',dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:'in %s',past:'%s ago',s:'a few seconds',ss:'%d seconds',m:'a minute',mm:'%d minutes',h:'an hour',hh:'%d hours',d:'a day',dd:'%d days',M:'a month',MM:'%d months',y:'a year',yy:'%d years'},months:Ee,monthsShort:Ae,week:{dow:0,doy:6},weekdays:rt,weekdaysMin:ot,weekdaysShort:at,meridiemParse:/[ap]\.?m?\.?/i},pt={},wt={};function Mt(t){return t?t.toLowerCase().replace('_','-'):t}function kt(t){for(var n,s,o,u,l=0;l0;){if(o=St(u.slice(0,n).join('-')))return o;if(s&&s.length>=n&&P(u,s,!0)>=n-1)break;n--}l++}return null}function St(t){var n=null;if(!pt[t]&&void 0!==m&&m&&m.exports)try{n=yt._abbr,r('./locale/'+t),Dt(n)}catch(t){}return pt[t]}function Dt(t,n){var s;return t&&(s=h(n)?Ot(t):Yt(t,n))&&(yt=s),yt._abbr}function Yt(t,n){if(null!==n){var s=vt;if(n.abbr=t,null!=pt[t])U('defineLocaleOverride',"use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),s=pt[t]._config;else if(null!=n.parentLocale){if(null==pt[n.parentLocale])return wt[n.parentLocale]||(wt[n.parentLocale]=[]),wt[n.parentLocale].push({name:t,config:n}),null;s=pt[n.parentLocale]._config}return pt[t]=new L(H(s,n)),wt[t]&&wt[t].forEach(function(t){Yt(t.name,t.config)}),Dt(t),pt[t]}return delete pt[t],null}function Ot(t){var n;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return yt;if(!o(t)){if(n=St(t))return n;t=[t]}return kt(t)}function Tt(t){var n,s=t._a;return s&&-2===w(t).overflow&&(n=s[Oe]<0||s[Oe]>11?Oe:s[Te]<1||s[Te]>je(s[Ye],s[Oe])?Te:s[xe]<0||s[xe]>24||24===s[xe]&&(0!==s[be]||0!==s[Pe]||0!==s[We])?xe:s[be]<0||s[be]>59?be:s[Pe]<0||s[Pe]>59?Pe:s[We]<0||s[We]>999?We:-1,w(t)._overflowDayOfYear&&(nTe)&&(n=Te),w(t)._overflowWeeks&&-1===n&&(n=Re),w(t)._overflowWeekday&&-1===n&&(n=Ce),w(t).overflow=n),t}function xt(t,n,s){return null!=t?t:null!=n?n:s}function bt(t){var n=new Date(s.now());return t._useUTC?[n.getUTCFullYear(),n.getUTCMonth(),n.getUTCDate()]:[n.getFullYear(),n.getMonth(),n.getDate()]}function Pt(t){var n,s,o,u,l,h=[];if(!t._d){for(o=bt(t),t._w&&null==t._a[Te]&&null==t._a[Oe]&&Wt(t),null!=t._dayOfYear&&(l=xt(t._a[Ye],o[Ye]),(t._dayOfYear>Fe(l)||0===t._dayOfYear)&&(w(t)._overflowDayOfYear=!0),s=Xe(l,0,t._dayOfYear),t._a[Oe]=s.getUTCMonth(),t._a[Te]=s.getUTCDate()),n=0;n<3&&null==t._a[n];++n)t._a[n]=h[n]=o[n];for(;n<7;n++)t._a[n]=h[n]=null==t._a[n]?2===n?1:0:t._a[n];24===t._a[xe]&&0===t._a[be]&&0===t._a[Pe]&&0===t._a[We]&&(t._nextDay=!0,t._a[xe]=0),t._d=(t._useUTC?Xe:Qe).apply(null,h),u=t._useUTC?t._d.getUTCDay():t._d.getDay(),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[xe]=24),t._w&&void 0!==t._w.d&&t._w.d!==u&&(w(t).weekdayMismatch=!0)}}function Wt(t){var n,s,o,u,l,h,c,f;if(null!=(n=t._w).GG||null!=n.W||null!=n.E)l=1,h=4,s=xt(n.GG,t._a[Ye],tt(Kt(),1,4).year),o=xt(n.W,1),((u=xt(n.E,1))<1||u>7)&&(f=!0);else{l=t._locale._week.dow,h=t._locale._week.doy;var _=tt(Kt(),l,h);s=xt(n.gg,t._a[Ye],_.year),o=xt(n.w,_.week),null!=n.d?((u=n.d)<0||u>6)&&(f=!0):null!=n.e?(u=n.e+l,(n.e<0||n.e>6)&&(f=!0)):u=l}o<1||o>nt(s,l,h)?w(t)._overflowWeeks=!0:null!=f?w(t)._overflowWeekday=!0:(c=et(s,o,u,l,h),t._a[Ye]=c.year,t._dayOfYear=c.dayOfYear)}var Rt=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Ct=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Ft=/Z|[+-]\d\d(?::?\d\d)?/,Ut=[['YYYYYY-MM-DD',/[+-]\d{6}-\d\d-\d\d/],['YYYY-MM-DD',/\d{4}-\d\d-\d\d/],['GGGG-[W]WW-E',/\d{4}-W\d\d-\d/],['GGGG-[W]WW',/\d{4}-W\d\d/,!1],['YYYY-DDD',/\d{4}-\d{3}/],['YYYY-MM',/\d{4}-\d\d/,!1],['YYYYYYMMDD',/[+-]\d{10}/],['YYYYMMDD',/\d{8}/],['GGGG[W]WWE',/\d{4}W\d{3}/],['GGGG[W]WW',/\d{4}W\d{2}/,!1],['YYYYDDD',/\d{7}/]],Nt=[['HH:mm:ss.SSSS',/\d\d:\d\d:\d\d\.\d+/],['HH:mm:ss,SSSS',/\d\d:\d\d:\d\d,\d+/],['HH:mm:ss',/\d\d:\d\d:\d\d/],['HH:mm',/\d\d:\d\d/],['HHmmss.SSSS',/\d\d\d\d\d\d\.\d+/],['HHmmss,SSSS',/\d\d\d\d\d\d,\d+/],['HHmmss',/\d\d\d\d\d\d/],['HHmm',/\d\d\d\d/],['HH',/\d\d/]],Ht=/^\/?Date\((\-?\d+)/i;function Lt(t){var n,s,o,u,l,h,c=t._i,f=Rt.exec(c)||Ct.exec(c);if(f){for(w(t).iso=!0,n=0,s=Ut.length;n0&&w(t).unusedInput.push(h),c=c.slice(c.indexOf(o)+o.length),_+=o.length),B[l]?(o?w(t).empty=!1:w(t).unusedTokens.push(l),De(l,o,t)):t._strict&&!o&&w(t).unusedTokens.push(l);w(t).charsLeftOver=f-_,c.length>0&&w(t).unusedInput.push(c),t._a[xe]<=12&&!0===w(t).bigHour&&t._a[xe]>0&&(w(t).bigHour=void 0),w(t).parsedDateParts=t._a.slice(0),w(t).meridiem=t._meridiem,t._a[xe]=$t(t._locale,t._a[xe],t._meridiem),Pt(t),Tt(t)}else At(t);else Lt(t)}function $t(t,n,s){var o;return null==s?n:null!=t.meridiemHour?t.meridiemHour(n,s):null!=t.isPM?((o=t.isPM(s))&&n<12&&(n+=12),o||12!==n||(n=0),n):n}function Jt(t){var n,s,o,u,l;if(0===t._f.length)return w(t).invalidFormat=!0,void(t._d=new Date(NaN));for(u=0;uthis?this:t:k()});function nn(t,n){var s,u;if(1===n.length&&o(n[0])&&(n=n[0]),!n.length)return Kt();for(s=n[0],u=1;u(l=nt(t,o,u))&&(n=l),Wn.call(this,t,n,s,o,u))}function Wn(t,n,s,o,u){var l=et(t,n,s,o,u),h=Xe(l.year,0,l.dayOfYear);return this.year(h.getUTCFullYear()),this.month(h.getUTCMonth()),this.date(h.getUTCDate()),this}Q(0,['gg',2],0,function(){return this.weekYear()%100}),Q(0,['GG',2],0,function(){return this.isoWeekYear()%100}),bn('gggg','weekYear'),bn('ggggg','weekYear'),bn('GGGG','isoWeekYear'),bn('GGGGG','isoWeekYear'),V('weekYear','gg'),V('isoWeekYear','GG'),A('weekYear',1),A('isoWeekYear',1),ve('G',fe),ve('g',fe),ve('GG',ae,ne),ve('gg',ae,ne),ve('GGGG',de,ie),ve('gggg',de,ie),ve('GGGGG',he,re),ve('ggggg',he,re),Se(['gggg','ggggg','GGGG','GGGGG'],function(t,n,s,o){n[o.substr(0,2)]=b(t)}),Se(['gg','GG'],function(t,n,o,u){n[u]=s.parseTwoDigitYear(t)}),Q('Q',0,'Qo','quarter'),V('quarter','Q'),A('quarter',7),ve('Q',te),ke('Q',function(t,n){n[Oe]=3*(b(t)-1)}),Q('D',['DD',2],'Do','date'),V('date','D'),A('date',9),ve('D',ae),ve('DD',ae,ne),ve('Do',function(t,n){return t?n._dayOfMonthOrdinalParse||n._ordinalParse:n._dayOfMonthOrdinalParseLenient}),ke(['D','DD'],Te),ke('Do',function(t,n){n[Te]=b(t.match(ae)[0])});var Rn=Le('Date',!0);Q('DDD',['DDDD',3],'DDDo','dayOfYear'),V('dayOfYear','DDD'),A('dayOfYear',4),ve('DDD',le),ve('DDDD',se),ke(['DDD','DDDD'],function(t,n,s){s._dayOfYear=b(t)}),Q('m',['mm',2],0,'minute'),V('minute','m'),A('minute',14),ve('m',ae),ve('mm',ae,ne),ke(['m','mm'],be);var Cn=Le('Minutes',!1);Q('s',['ss',2],0,'second'),V('second','s'),A('second',15),ve('s',ae),ve('ss',ae,ne),ke(['s','ss'],Pe);var Fn,Un=Le('Seconds',!1);for(Q('S',0,0,function(){return~~(this.millisecond()/100)}),Q(0,['SS',2],0,function(){return~~(this.millisecond()/10)}),Q(0,['SSS',3],0,'millisecond'),Q(0,['SSSS',4],0,function(){return 10*this.millisecond()}),Q(0,['SSSSS',5],0,function(){return 100*this.millisecond()}),Q(0,['SSSSSS',6],0,function(){return 1e3*this.millisecond()}),Q(0,['SSSSSSS',7],0,function(){return 1e4*this.millisecond()}),Q(0,['SSSSSSSS',8],0,function(){return 1e5*this.millisecond()}),Q(0,['SSSSSSSSS',9],0,function(){return 1e6*this.millisecond()}),V('millisecond','ms'),A('millisecond',16),ve('S',le,te),ve('SS',le,ne),ve('SSS',le,se),Fn='SSSS';Fn.length<=9;Fn+='S')ve(Fn,ce);function Nn(t,n){n[We]=b(1e3*('0.'+t))}for(Fn='S';Fn.length<=9;Fn+='S')ke(Fn,Nn);var Hn=Le('Milliseconds',!1);Q('z',0,0,'zoneAbbr'),Q('zz',0,0,'zoneName');var Ln=O.prototype;function Gn(t){return t}Ln.add=Sn,Ln.calendar=function(t,n){var o=t||Kt(),u=cn(o,this).startOf('day'),l=s.calendarFormat(this,u)||'sameElse',h=n&&(N(n[l])?n[l].call(this,o):n[l]);return this.format(h||this.localeData().calendar(l,this,Kt(o)))},Ln.clone=function(){return new O(this)},Ln.diff=function(t,n,s){var o,u,l;if(!this.isValid())return NaN;if(!(o=cn(t,this)).isValid())return NaN;switch(u=6e4*(o.utcOffset()-this.utcOffset()),n=j(n)){case'year':l=Yn(this,o)/12;break;case'month':l=Yn(this,o);break;case'quarter':l=Yn(this,o)/3;break;case'second':l=(this-o)/1e3;break;case'minute':l=(this-o)/6e4;break;case'hour':l=(this-o)/36e5;break;case'day':l=(this-o-u)/864e5;break;case'week':l=(this-o-u)/6048e5;break;default:l=this-o}return s?l:x(l)},Ln.endOf=function(t){return void 0===(t=j(t))||'millisecond'===t?this:('date'===t&&(t='day'),this.startOf(t).add(1,'isoWeek'===t?'week':t).subtract(1,'ms'))},Ln.format=function(t){t||(t=this.isUtc()?s.defaultFormatUtc:s.defaultFormat);var n=K(this,t);return this.localeData().postformat(n)},Ln.from=function(t,n){return this.isValid()&&(T(t)&&t.isValid()||Kt(t).isValid())?gn({to:this,from:t}).locale(this.locale()).humanize(!n):this.localeData().invalidDate()},Ln.fromNow=function(t){return this.from(Kt(),t)},Ln.to=function(t,n){return this.isValid()&&(T(t)&&t.isValid()||Kt(t).isValid())?gn({from:this,to:t}).locale(this.locale()).humanize(!n):this.localeData().invalidDate()},Ln.toNow=function(t){return this.to(Kt(),t)},Ln.get=function(t){return N(this[t=j(t)])?this[t]():this},Ln.invalidAt=function(){return w(this).overflow},Ln.isAfter=function(t,n){var s=T(t)?t:Kt(t);return!(!this.isValid()||!s.isValid())&&('millisecond'===(n=j(h(n)?'millisecond':n))?this.valueOf()>s.valueOf():s.valueOf()9999?K(t,'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'):N(Date.prototype.toISOString)?this.toDate().toISOString():K(t,'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]')},Ln.inspect=function(){if(!this.isValid())return'moment.invalid(/* '+this._i+' */)';var t='moment',n='';this.isLocal()||(t=0===this.utcOffset()?'moment.utc':'moment.parseZone',n='Z');var s='['+t+'("]',o=0<=this.year()&&this.year()<=9999?'YYYY':'YYYYYY',u=n+'[")]';return this.format(s+o+'-MM-DD[T]HH:mm:ss.SSS'+u)},Ln.toJSON=function(){return this.isValid()?this.toISOString():null},Ln.toString=function(){return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ')},Ln.unix=function(){return Math.floor(this.valueOf()/1e3)},Ln.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},Ln.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},Ln.year=He,Ln.isLeapYear=function(){return Ue(this.year())},Ln.weekYear=function(t){return Pn.call(this,t,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},Ln.isoWeekYear=function(t){return Pn.call(this,t,this.isoWeek(),this.isoWeekday(),1,4)},Ln.quarter=Ln.quarters=function(t){return null==t?Math.ceil((this.month()+1)/3):this.month(3*(t-1)+this.month()%3)},Ln.month=$e,Ln.daysInMonth=function(){return je(this.year(),this.month())},Ln.week=Ln.weeks=function(t){var n=this.localeData().week(this);return null==t?n:this.add(7*(t-n),'d')},Ln.isoWeek=Ln.isoWeeks=function(t){var n=tt(this,1,4).week;return null==t?n:this.add(7*(t-n),'d')},Ln.weeksInYear=function(){var t=this.localeData()._week;return nt(this.year(),t.dow,t.doy)},Ln.isoWeeksInYear=function(){return nt(this.year(),1,4)},Ln.date=Rn,Ln.day=Ln.days=function(t){if(!this.isValid())return null!=t?this:NaN;var n=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(t=st(t,this.localeData()),this.add(t-n,'d')):n},Ln.weekday=function(t){if(!this.isValid())return null!=t?this:NaN;var n=(this.day()+7-this.localeData()._week.dow)%7;return null==t?n:this.add(t-n,'d')},Ln.isoWeekday=function(t){if(!this.isValid())return null!=t?this:NaN;if(null!=t){var n=it(t,this.localeData());return this.day(this.day()%7?n:n-7)}return this.day()||7},Ln.dayOfYear=function(t){var n=Math.round((this.clone().startOf('day')-this.clone().startOf('year'))/864e5)+1;return null==t?n:this.add(t-n,'d')},Ln.hour=Ln.hours=gt,Ln.minute=Ln.minutes=Cn,Ln.second=Ln.seconds=Un,Ln.millisecond=Ln.milliseconds=Hn,Ln.utcOffset=function(t,n,o){var u,l=this._offset||0;if(!this.isValid())return null!=t?this:NaN;if(null!=t){if('string'==typeof t){if(null===(t=hn(_e,t)))return this}else Math.abs(t)<16&&!o&&(t*=60);return!this._isUTC&&n&&(u=fn(this)),this._offset=t,this._isUTC=!0,null!=u&&this.add(u,'m'),l!==t&&(!n||this._changeInProgress?kn(this,gn(t-l,'m'),1,!1):this._changeInProgress||(this._changeInProgress=!0,s.updateOffset(this,!0),this._changeInProgress=null)),this}return this._isUTC?l:fn(this)},Ln.utc=function(t){return this.utcOffset(0,t)},Ln.local=function(t){return this._isUTC&&(this.utcOffset(0,t),this._isUTC=!1,t&&this.subtract(fn(this),'m')),this},Ln.parseZone=function(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if('string'==typeof this._i){var t=hn(me,this._i);null!=t?this.utcOffset(t):this.utcOffset(0,!0)}return this},Ln.hasAlignedHourOffset=function(t){return!!this.isValid()&&(t=t?Kt(t).utcOffset():0,(this.utcOffset()-t)%60==0)},Ln.isDST=function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},Ln.isLocal=function(){return!!this.isValid()&&!this._isUTC},Ln.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},Ln.isUtc=mn,Ln.isUTC=mn,Ln.zoneAbbr=function(){return this._isUTC?'UTC':''},Ln.zoneName=function(){return this._isUTC?'Coordinated Universal Time':''},Ln.dates=R('dates accessor is deprecated. Use date instead.',Rn),Ln.months=R('months accessor is deprecated. Use month instead',$e),Ln.years=R('years accessor is deprecated. Use year instead',He),Ln.zone=R('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',function(t,n){return null!=t?('string'!=typeof t&&(t=-t),this.utcOffset(t,n),this):-this.utcOffset()}),Ln.isDSTShifted=R('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',function(){if(!h(this._isDSTShifted))return this._isDSTShifted;var t={};if(D(t,this),(t=Bt(t))._a){var n=t._isUTC?p(t._a):Kt(t._a);this._isDSTShifted=this.isValid()&&P(t._a,n.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted});var Vn=L.prototype;function jn(t,n,s,o){var u=Ot(),l=p().set(o,n);return u[s](l,t)}function In(t,n,s){if(c(t)&&(n=t,t=void 0),t=t||'',null!=n)return jn(t,n,s,'month');var o,u=[];for(o=0;o<12;o++)u[o]=jn(t,o,s,'month');return u}function En(t,n,s,o){'boolean'==typeof t?(c(n)&&(s=n,n=void 0),n=n||''):(s=n=t,t=!1,c(n)&&(s=n,n=void 0),n=n||'');var u,l=Ot(),h=t?l._week.dow:0;if(null!=s)return jn(n,(s+h)%7,o,'day');var f=[];for(u=0;u<7;u++)f[u]=jn(n,(u+h)%7,o,'day');return f}Vn.calendar=function(t,n,s){var o=this._calendar[t]||this._calendar.sameElse;return N(o)?o.call(n,s):o},Vn.longDateFormat=function(t){var n=this._longDateFormat[t],s=this._longDateFormat[t.toUpperCase()];return n||!s?n:(this._longDateFormat[t]=s.replace(/MMMM|MM|DD|dddd/g,function(t){return t.slice(1)}),this._longDateFormat[t])},Vn.invalidDate=function(){return this._invalidDate},Vn.ordinal=function(t){return this._ordinal.replace('%d',t)},Vn.preparse=Gn,Vn.postformat=Gn,Vn.relativeTime=function(t,n,s,o){var u=this._relativeTime[s];return N(u)?u(t,n,s,o):u.replace(/%d/i,t)},Vn.pastFuture=function(t,n){var s=this._relativeTime[t>0?'future':'past'];return N(s)?s(n):s.replace(/%s/i,n)},Vn.set=function(t){var n,s;for(s in t)N(n=t[s])?this[s]=n:this['_'+s]=n;this._config=t,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+'|'+/\d{1,2}/.source)},Vn.months=function(t,n){return t?o(this._months)?this._months[t.month()]:this._months[(this._months.isFormat||Ie).test(n)?'format':'standalone'][t.month()]:o(this._months)?this._months:this._months.standalone},Vn.monthsShort=function(t,n){return t?o(this._monthsShort)?this._monthsShort[t.month()]:this._monthsShort[Ie.test(n)?'format':'standalone'][t.month()]:o(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},Vn.monthsParse=function(t,n,s){var o,u,l;if(this._monthsParseExact)return ze.call(this,t,n,s);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),o=0;o<12;o++){if(u=p([2e3,o]),s&&!this._longMonthsParse[o]&&(this._longMonthsParse[o]=new RegExp('^'+this.months(u,'').replace('.','')+'$','i'),this._shortMonthsParse[o]=new RegExp('^'+this.monthsShort(u,'').replace('.','')+'$','i')),s||this._monthsParse[o]||(l='^'+this.months(u,'')+'|^'+this.monthsShort(u,''),this._monthsParse[o]=new RegExp(l.replace('.',''),'i')),s&&'MMMM'===n&&this._longMonthsParse[o].test(t))return o;if(s&&'MMM'===n&&this._shortMonthsParse[o].test(t))return o;if(!s&&this._monthsParse[o].test(t))return o}},Vn.monthsRegex=function(t){return this._monthsParseExact?(y(this,'_monthsRegex')||Be.call(this),t?this._monthsStrictRegex:this._monthsRegex):(y(this,'_monthsRegex')||(this._monthsRegex=qe),this._monthsStrictRegex&&t?this._monthsStrictRegex:this._monthsRegex)},Vn.monthsShortRegex=function(t){return this._monthsParseExact?(y(this,'_monthsRegex')||Be.call(this),t?this._monthsShortStrictRegex:this._monthsShortRegex):(y(this,'_monthsShortRegex')||(this._monthsShortRegex=Je),this._monthsShortStrictRegex&&t?this._monthsShortStrictRegex:this._monthsShortRegex)},Vn.week=function(t){return tt(t,this._week.dow,this._week.doy).week},Vn.firstDayOfYear=function(){return this._week.doy},Vn.firstDayOfWeek=function(){return this._week.dow},Vn.weekdays=function(t,n){return t?o(this._weekdays)?this._weekdays[t.day()]:this._weekdays[this._weekdays.isFormat.test(n)?'format':'standalone'][t.day()]:o(this._weekdays)?this._weekdays:this._weekdays.standalone},Vn.weekdaysMin=function(t){return t?this._weekdaysMin[t.day()]:this._weekdaysMin},Vn.weekdaysShort=function(t){return t?this._weekdaysShort[t.day()]:this._weekdaysShort},Vn.weekdaysParse=function(t,n,s){var o,u,l;if(this._weekdaysParseExact)return ut.call(this,t,n,s);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),o=0;o<7;o++){if(u=p([2e3,1]).day(o),s&&!this._fullWeekdaysParse[o]&&(this._fullWeekdaysParse[o]=new RegExp('^'+this.weekdays(u,'').replace('.','.?')+'$','i'),this._shortWeekdaysParse[o]=new RegExp('^'+this.weekdaysShort(u,'').replace('.','.?')+'$','i'),this._minWeekdaysParse[o]=new RegExp('^'+this.weekdaysMin(u,'').replace('.','.?')+'$','i')),this._weekdaysParse[o]||(l='^'+this.weekdays(u,'')+'|^'+this.weekdaysShort(u,'')+'|^'+this.weekdaysMin(u,''),this._weekdaysParse[o]=new RegExp(l.replace('.',''),'i')),s&&'dddd'===n&&this._fullWeekdaysParse[o].test(t))return o;if(s&&'ddd'===n&&this._shortWeekdaysParse[o].test(t))return o;if(s&&'dd'===n&&this._minWeekdaysParse[o].test(t))return o;if(!s&&this._weekdaysParse[o].test(t))return o}},Vn.weekdaysRegex=function(t){return this._weekdaysParseExact?(y(this,'_weekdaysRegex')||ct.call(this),t?this._weekdaysStrictRegex:this._weekdaysRegex):(y(this,'_weekdaysRegex')||(this._weekdaysRegex=lt),this._weekdaysStrictRegex&&t?this._weekdaysStrictRegex:this._weekdaysRegex)},Vn.weekdaysShortRegex=function(t){return this._weekdaysParseExact?(y(this,'_weekdaysRegex')||ct.call(this),t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(y(this,'_weekdaysShortRegex')||(this._weekdaysShortRegex=dt),this._weekdaysShortStrictRegex&&t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},Vn.weekdaysMinRegex=function(t){return this._weekdaysParseExact?(y(this,'_weekdaysRegex')||ct.call(this),t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(y(this,'_weekdaysMinRegex')||(this._weekdaysMinRegex=ht),this._weekdaysMinStrictRegex&&t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},Vn.isPM=function(t){return'p'===(t+'').toLowerCase().charAt(0)},Vn.meridiem=function(t,n,s){return t>11?s?'pm':'PM':s?'am':'AM'},Dt('en',{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var n=t%10;return t+(1===b(t%100/10)?'th':1===n?'st':2===n?'nd':3===n?'rd':'th')}}),s.lang=R('moment.lang is deprecated. Use moment.locale instead.',Dt),s.langData=R('moment.langData is deprecated. Use moment.localeData instead.',Ot);var An=Math.abs;function zn(t,n,s,o){var u=gn(n,s);return t._milliseconds+=o*u._milliseconds,t._days+=o*u._days,t._months+=o*u._months,t._bubble()}function Zn(t){return t<0?Math.floor(t):Math.ceil(t)}function $n(t){return 4800*t/146097}function Jn(t){return 146097*t/4800}function qn(t){return function(){return this.as(t)}}var Bn=qn('ms'),Qn=qn('s'),Xn=qn('m'),Kn=qn('h'),es=qn('d'),ts=qn('w'),ns=qn('M'),ss=qn('y');function is(t){return function(){return this.isValid()?this._data[t]:NaN}}var rs=is('milliseconds'),as=is('seconds'),os=is('minutes'),us=is('hours'),ls=is('days'),ds=is('months'),hs=is('years');var cs=Math.round,fs={ss:44,s:45,m:45,h:22,d:26,M:11};function ms(t,n,s,o,u){return u.relativeTime(n||1,!!s,t,o)}function _s(t,n,s){var o=gn(t).abs(),u=cs(o.as('s')),l=cs(o.as('m')),h=cs(o.as('h')),c=cs(o.as('d')),f=cs(o.as('M')),_=cs(o.as('y')),y=u<=fs.ss&&['s',u]||u0,y[4]=s,ms.apply(null,y)}var ys=Math.abs;function gs(t){return(t>0)-(t<0)||+t}function vs(){if(!this.isValid())return this.localeData().invalidDate();var t,n,s=ys(this._milliseconds)/1e3,o=ys(this._days),u=ys(this._months);n=x((t=x(s/60))/60),s%=60,t%=60;var l=x(u/12),h=u%=12,c=o,f=n,_=t,y=s?s.toFixed(3).replace(/\.?0+$/,''):'',v=this.asSeconds();if(!v)return'P0D';var p=v<0?'-':'',w=gs(this._months)!==gs(v)?'-':'',M=gs(this._days)!==gs(v)?'-':'',k=gs(this._milliseconds)!==gs(v)?'-':'';return p+'P'+(l?w+l+'Y':'')+(h?w+h+'M':'')+(c?M+c+'D':'')+(f||_||y?'T':'')+(f?k+f+'H':'')+(_?k+_+'M':'')+(y?k+y+'S':'')}var ps=an.prototype;return ps.isValid=function(){return this._isValid},ps.abs=function(){var t=this._data;return this._milliseconds=An(this._milliseconds),this._days=An(this._days),this._months=An(this._months),t.milliseconds=An(t.milliseconds),t.seconds=An(t.seconds),t.minutes=An(t.minutes),t.hours=An(t.hours),t.months=An(t.months),t.years=An(t.years),this},ps.add=function(t,n){return zn(this,t,n,1)},ps.subtract=function(t,n){return zn(this,t,n,-1)},ps.as=function(t){if(!this.isValid())return NaN;var n,s,o=this._milliseconds;if('month'===(t=j(t))||'year'===t)return n=this._days+o/864e5,s=this._months+$n(n),'month'===t?s:s/12;switch(n=this._days+Math.round(Jn(this._months)),t){case'week':return n/7+o/6048e5;case'day':return n+o/864e5;case'hour':return 24*n+o/36e5;case'minute':return 1440*n+o/6e4;case'second':return 86400*n+o/1e3;case'millisecond':return Math.floor(864e5*n)+o;default:throw new Error('Unknown unit '+t)}},ps.asMilliseconds=Bn,ps.asSeconds=Qn,ps.asMinutes=Xn,ps.asHours=Kn,ps.asDays=es,ps.asWeeks=ts,ps.asMonths=ns,ps.asYears=ss,ps.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*b(this._months/12):NaN},ps._bubble=function(){var t,n,s,o,u,l=this._milliseconds,h=this._days,c=this._months,f=this._data;return l>=0&&h>=0&&c>=0||l<=0&&h<=0&&c<=0||(l+=864e5*Zn(Jn(c)+h),h=0,c=0),f.milliseconds=l%1e3,t=x(l/1e3),f.seconds=t%60,n=x(t/60),f.minutes=n%60,s=x(n/60),f.hours=s%24,c+=u=x($n(h+=x(s/24))),h-=Zn(Jn(u)),o=x(c/12),c%=12,f.days=h,f.months=c,f.years=o,this},ps.clone=function(){return gn(this)},ps.get=function(t){return t=j(t),this.isValid()?this[t+'s']():NaN},ps.milliseconds=rs,ps.seconds=as,ps.minutes=os,ps.hours=us,ps.days=ls,ps.weeks=function(){return x(this.days()/7)},ps.months=ds,ps.years=hs,ps.humanize=function(t){if(!this.isValid())return this.localeData().invalidDate();var n=this.localeData(),s=_s(this,!t,n);return t&&(s=n.pastFuture(+this,s)),n.postformat(s)},ps.toISOString=vs,ps.toString=vs,ps.toJSON=vs,ps.locale=On,ps.localeData=xn,ps.toIsoString=R('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',vs),ps.lang=Tn,Q('X',0,0,'unix'),Q('x',0,0,'valueOf'),ve('x',fe),ve('X',/[+-]?\d+(\.\d{1,3})?/),ke('X',function(t,n,s){s._d=new Date(1e3*parseFloat(t,10))}),ke('x',function(t,n,s){s._d=new Date(b(t))}),s.version='2.19.4',t=Kt,s.fn=Ln,s.min=function(){return nn('isBefore',[].slice.call(arguments,0))},s.max=function(){return nn('isAfter',[].slice.call(arguments,0))},s.now=function(){return Date.now?Date.now():+new Date},s.utc=p,s.unix=function(t){return Kt(1e3*t)},s.months=function(t,n){return In(t,n,'months')},s.isDate=f,s.locale=Dt,s.invalid=k,s.duration=gn,s.isMoment=T,s.weekdays=function(t,n,s){return En(t,n,s,'weekdays')},s.parseZone=function(){return Kt.apply(null,arguments).parseZone()},s.localeData=Ot,s.isDuration=on,s.monthsShort=function(t,n){return In(t,n,'monthsShort')},s.weekdaysMin=function(t,n,s){return En(t,n,s,'weekdaysMin')},s.defineLocale=Yt,s.updateLocale=function(t,n){if(null!=n){var s,o,u=vt;null!=(o=St(t))&&(u=o._config),(s=new L(n=H(u,n))).parentLocale=pt[t],pt[t]=s,Dt(t)}else null!=pt[t]&&(null!=pt[t].parentLocale?pt[t]=pt[t].parentLocale:null!=pt[t]&&delete pt[t]);return pt[t]},s.locales=function(){return C(pt)},s.weekdaysShort=function(t,n,s){return En(t,n,s,'weekdaysShort')},s.normalizeUnits=j,s.relativeTimeRounding=function(t){return void 0===t?cs:'function'==typeof t&&(cs=t,!0)},s.relativeTimeThreshold=function(t,n){return void 0!==fs[t]&&(void 0===n?fs[t]:(fs[t]=n,'s'===t&&(fs.ss=n-1),!0))},s.calendarFormat=function(t,n){var s=t.diff(n,'days',!0);return s<-6?'sameElse':s<-1?'lastWeek':s<0?'lastDay':s<1?'sameDay':s<2?'nextDay':s<7?'nextWeek':'sameElse'},s.prototype=Ln,s},'object'==typeof e&&void 0!==m?m.exports=n():'function'==typeof define&&define.amd?define(n):t.moment=n()},624,[]); +__d(function(g,r,i,a,m,e,d){var u=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.DEFAULT_LANGUAGE=e.LANGUAGES=void 0;var l=u(r(d[1])),t=u(r(d[2])),n=u(r(d[3])),s=u(r(d[4])),f=u(r(d[5])),o=u(r(d[6])),c=Object.keys(s.default);e.LANGUAGES=c;var A=c[0];e.DEFAULT_LANGUAGE=A;var v={backend:{loadPath:'lang/{{ns}}-{{lng}}.json'},defaultNS:'main',fallbackLng:A,interpolation:{escapeValue:!1},load:'languageOnly',ns:['main','languages','countries'],react:{useSuspense:!1},returnEmptyString:!1,returnNull:!1,whitelist:c.slice()};l.default.use('ReactNative'===navigator.product?{}:t.default).use(o.default).init(v),l.default.addResourceBundle(A,'countries',n.default,!0,!0),l.default.addResourceBundle(A,'languages',s.default,!0,!0),l.default.addResourceBundle(A,'main',f.default,!0,!0),r(d[7]);var G=l.default;e.default=G},625,[3,626,645,649,650,651,652,653]); +__d(function(g,r,i,a,m,e,d){'use strict';function t(t){return t&&'object'==typeof t&&'default'in t?t.default:t}var n=t(r(d[0])),o=t(r(d[1])),s=t(r(d[2])),u=t(r(d[3])),l=t(r(d[4])),c=t(r(d[5])),f=t(r(d[6])),p=t(r(d[7])),h=t(r(d[8])),v=t(r(d[9])),y={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,n){var o;console&&console[t]&&(o=console)[t].apply(o,h(n))}},b=new((function(){function t(n){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};s(this,t),this.init(n,o)}return u(t,[{key:"init",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.prefix=n.prefix||'i18next:',this.logger=t||y,this.options=n,this.debug=n.debug}},{key:"setDebug",value:function(t){this.debug=t}},{key:"log",value:function(){for(var t=arguments.length,n=new Array(t),o=0;o-1&&o.observers[t].splice(s,1)}else delete o.observers[t]})}},{key:"emit",value:function(t){for(var n=arguments.length,o=new Array(n>1?n-1:0),s=1;s-1?t.replace(/###/g,'.'):t}function u(){return!t||'string'==typeof t}for(var l='string'!=typeof n?[].concat(n):n.split('.');l.length>1;){if(u())return{};var c=s(l.shift());!t[c]&&o&&(t[c]=new o),t=t[c]}return u()?{}:{obj:t,k:s(l.shift())}}function R(t,n,o){var s=w(t,n,Object);s.obj[s.k]=o}function O(t,n){var o=w(t,n),s=o.obj,u=o.k;if(s)return s[u]}function L(t,n,o){for(var s in n)s in t?'string'==typeof t[s]||t[s]instanceof String||'string'==typeof n[s]||n[s]instanceof String?o&&(t[s]=n[s]):L(t[s],n[s],o):t[s]=n[s];return t}function N(t){return t.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,'\\$&')}var C={'&':'&','<':'<','>':'>','"':'"',"'":''','/':'/'};function j(t){return'string'==typeof t?t.replace(/[&<>"'\/]/g,function(t){return C[t]}):t}var E=(function(t){function n(t){var o,u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{ns:['translation'],defaultNS:'translation'};return s(this,n),o=l(this,c(n).call(this)),k.call(f(o)),o.data=t||{},o.options=u,void 0===o.options.keySeparator&&(o.options.keySeparator='.'),o}return p(n,k),u(n,[{key:"addNamespaces",value:function(t){this.options.ns.indexOf(t)<0&&this.options.ns.push(t)}},{key:"removeNamespaces",value:function(t){var n=this.options.ns.indexOf(t);n>-1&&this.options.ns.splice(n,1)}},{key:"getResource",value:function(t,n,o){var s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},u=void 0!==s.keySeparator?s.keySeparator:this.options.keySeparator,l=[t,n];return o&&'string'!=typeof o&&(l=l.concat(o)),o&&'string'==typeof o&&(l=l.concat(u?o.split(u):o)),t.indexOf('.')>-1&&(l=t.split('.')),O(this.data,l)}},{key:"addResource",value:function(t,n,o,s){var u=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{silent:!1},l=this.options.keySeparator;void 0===l&&(l='.');var c=[t,n];o&&(c=c.concat(l?o.split(l):o)),t.indexOf('.')>-1&&(s=n,n=(c=t.split('.'))[1]),this.addNamespaces(n),R(this.data,c,s),u.silent||this.emit('added',t,n,o,s)}},{key:"addResources",value:function(t,n,o){var s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{silent:!1};for(var u in o)'string'!=typeof o[u]&&'[object Array]'!==Object.prototype.toString.apply(o[u])||this.addResource(t,n,u,o[u],{silent:!0});s.silent||this.emit('added',t,n,o)}},{key:"addResourceBundle",value:function(t,n,s,u,l){var c=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{silent:!1},f=[t,n];t.indexOf('.')>-1&&(u=s,s=n,n=(f=t.split('.'))[1]),this.addNamespaces(n);var p=O(this.data,f)||{};u?L(p,s,l):p=o({},p,s),R(this.data,f,p),c.silent||this.emit('added',t,n,s)}},{key:"removeResourceBundle",value:function(t,n){this.hasResourceBundle(t,n)&&delete this.data[t][n],this.removeNamespaces(n),this.emit('removed',t,n)}},{key:"hasResourceBundle",value:function(t,n){return void 0!==this.getResource(t,n)}},{key:"getResourceBundle",value:function(t,n){return n||(n=this.options.defaultNS),'v1'===this.options.compatibilityAPI?o({},{},this.getResource(t,n)):this.getResource(t,n)}},{key:"getDataByLanguage",value:function(t){return this.data[t]}},{key:"toJSON",value:function(){return this.data}}]),n})(),P={processors:{},addPostProcessor:function(t){this.processors[t.name]=t},handle:function(t,n,o,s,u){var l=this;return t.forEach(function(t){l.processors[t]&&(n=l.processors[t].process(n,o,s,u))}),n}},F=(function(t){function h(t){var n,o,u,p,v=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return s(this,h),n=l(this,c(h).call(this)),k.call(f(n)),o=['resourceStore','languageUtils','pluralResolver','interpolator','backendConnector','i18nFormat'],u=t,p=f(n),o.forEach(function(t){u[t]&&(p[t]=u[t])}),n.options=v,void 0===n.options.keySeparator&&(n.options.keySeparator='.'),n.logger=b.create('translator'),n}return p(h,k),u(h,[{key:"changeLanguage",value:function(t){t&&(this.language=t)}},{key:"exists",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{interpolation:{}},o=this.resolve(t,n);return o&&void 0!==o.res}},{key:"extractFromKey",value:function(t,n){var o=n.nsSeparator||this.options.nsSeparator;void 0===o&&(o=':');var s=void 0!==n.keySeparator?n.keySeparator:this.options.keySeparator,u=n.ns||this.options.defaultNS;if(o&&t.indexOf(o)>-1){var l=t.split(o);(o!==s||o===s&&this.options.ns.indexOf(l[0])>-1)&&(u=l.shift()),t=l.join(s)}return'string'==typeof u&&(u=[u]),{key:t,namespaces:u}}},{key:"translate",value:function(t,s){var u=this;if('object'!==n(s)&&this.options.overloadTranslationOptionHandler&&(s=this.options.overloadTranslationOptionHandler(arguments)),s||(s={}),void 0===t||null===t)return'';Array.isArray(t)||(t=[String(t)]);var l=void 0!==s.keySeparator?s.keySeparator:this.options.keySeparator,c=this.extractFromKey(t[t.length-1],s),f=c.key,p=c.namespaces,h=p[p.length-1],v=s.lng||this.language,y=s.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(v&&'cimode'===v.toLowerCase()){if(y){var b=s.nsSeparator||this.options.nsSeparator;return h+b+f}return f}var k=this.resolve(t,s),x=k&&k.res,S=k&&k.usedKey||f,w=k&&k.exactUsedKey||f,R=Object.prototype.toString.apply(x),O=void 0!==s.joinArrays?s.joinArrays:this.options.joinArrays,L=!this.i18nFormat||this.i18nFormat.handleAsObject;if(L&&x&&('string'!=typeof x&&'boolean'!=typeof x&&'number'!=typeof x)&&['[object Number]','[object Function]','[object RegExp]'].indexOf(R)<0&&('string'!=typeof O||'[object Array]'!==R)){if(!s.returnObjects&&!this.options.returnObjects)return this.logger.warn('accessing an object - but returnObjects options is not enabled!'),this.options.returnedObjectHandler?this.options.returnedObjectHandler(S,x,s):"key '".concat(f," (").concat(this.language,")' returned an object instead of string.");if(l){var N='[object Array]'===R,C=N?[]:{},j=N?w:S;for(var E in x)if(Object.prototype.hasOwnProperty.call(x,E)){var P="".concat(j).concat(l).concat(E);C[E]=this.translate(P,o({},s,{joinArrays:!1,ns:p})),C[E]===P&&(C[E]=x[E])}x=C}}else if(L&&'string'==typeof O&&'[object Array]'===R)(x=x.join(O))&&(x=this.extendTranslation(x,t,s));else{var F=!1,V=!1;if(!this.isValidLookup(x)&&void 0!==s.defaultValue){if(F=!0,void 0!==s.count){var A=this.pluralResolver.getSuffix(v,s.count);x=s["defaultValue".concat(A)]}x||(x=s.defaultValue)}this.isValidLookup(x)||(V=!0,x=f);var U=s.defaultValue&&s.defaultValue!==x&&this.options.updateMissing;if(V||F||U){this.logger.log(U?'updateKey':'missingKey',v,h,f,U?s.defaultValue:x);var T=[],K=this.languageUtils.getFallbackCodes(this.options.fallbackLng,s.lng||this.language);if('fallback'===this.options.saveMissingTo&&K&&K[0])for(var H=0;H1&&void 0!==arguments[1]?arguments[1]:{};return'string'==typeof t&&(t=[t]),t.forEach(function(t){if(!c.isValidLookup(n)){var p=c.extractFromKey(t,f),h=p.key;o=h;var v=p.namespaces;c.options.fallbackNS&&(v=v.concat(c.options.fallbackNS));var y=void 0!==f.count&&'string'!=typeof f.count,b=void 0!==f.context&&'string'==typeof f.context&&''!==f.context,k=f.lngs?f.lngs:c.languageUtils.toResolveHierarchy(f.lng||c.language,f.fallbackLng);v.forEach(function(t){c.isValidLookup(n)||(l=t,k.forEach(function(o){if(!c.isValidLookup(n)){u=o;var l,p,v=h,k=[v];if(c.i18nFormat&&c.i18nFormat.addLookupKeys)c.i18nFormat.addLookupKeys(k,h,o,t,f);else y&&(l=c.pluralResolver.getSuffix(o,f.count)),y&&b&&k.push(v+l),b&&k.push(v+="".concat(c.options.contextSeparator).concat(f.context)),y&&k.push(v+=l);for(;p=k.pop();)c.isValidLookup(n)||(s=p,n=c.getResource(o,t,p,f))}}))})}}),{res:n,usedKey:o,exactUsedKey:s,usedLng:u,usedNS:l}}},{key:"isValidLookup",value:function(t){return!(void 0===t||!this.options.returnNull&&null===t||!this.options.returnEmptyString&&''===t)}},{key:"getResource",value:function(t,n,o){var s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.i18nFormat&&this.i18nFormat.getResource?this.i18nFormat.getResource(t,n,o,s):this.resourceStore.getResource(t,n,o,s)}}]),h})();function V(t){return t.charAt(0).toUpperCase()+t.slice(1)}var A=(function(){function t(n){s(this,t),this.options=n,this.whitelist=this.options.whitelist||!1,this.logger=b.create('languageUtils')}return u(t,[{key:"getScriptPartFromCode",value:function(t){if(!t||t.indexOf('-')<0)return null;var n=t.split('-');return 2===n.length?null:(n.pop(),this.formatLanguageCode(n.join('-')))}},{key:"getLanguagePartFromCode",value:function(t){if(!t||t.indexOf('-')<0)return t;var n=t.split('-');return this.formatLanguageCode(n[0])}},{key:"formatLanguageCode",value:function(t){if('string'==typeof t&&t.indexOf('-')>-1){var n=['hans','hant','latn','cyrl','cans','mong','arab'],o=t.split('-');return this.options.lowerCaseLng?o=o.map(function(t){return t.toLowerCase()}):2===o.length?(o[0]=o[0].toLowerCase(),o[1]=o[1].toUpperCase(),n.indexOf(o[1].toLowerCase())>-1&&(o[1]=V(o[1].toLowerCase()))):3===o.length&&(o[0]=o[0].toLowerCase(),2===o[1].length&&(o[1]=o[1].toUpperCase()),'sgn'!==o[0]&&2===o[2].length&&(o[2]=o[2].toUpperCase()),n.indexOf(o[1].toLowerCase())>-1&&(o[1]=V(o[1].toLowerCase())),n.indexOf(o[2].toLowerCase())>-1&&(o[2]=V(o[2].toLowerCase()))),o.join('-')}return this.options.cleanCode||this.options.lowerCaseLng?t.toLowerCase():t}},{key:"isWhitelisted",value:function(t){return('languageOnly'===this.options.load||this.options.nonExplicitWhitelist)&&(t=this.getLanguagePartFromCode(t)),!this.whitelist||!this.whitelist.length||this.whitelist.indexOf(t)>-1}},{key:"getFallbackCodes",value:function(t,n){if(!t)return[];if('string'==typeof t&&(t=[t]),'[object Array]'===Object.prototype.toString.apply(t))return t;if(!n)return t.default||[];var o=t[n];return o||(o=t[this.getScriptPartFromCode(n)]),o||(o=t[this.formatLanguageCode(n)]),o||(o=t.default),o||[]}},{key:"toResolveHierarchy",value:function(t,n){var o=this,s=this.getFallbackCodes(n||this.options.fallbackLng||[],t),u=[],l=function(t){t&&(o.isWhitelisted(t)?u.push(t):o.logger.warn("rejecting non-whitelisted language code: ".concat(t)))};return'string'==typeof t&&t.indexOf('-')>-1?('languageOnly'!==this.options.load&&l(this.formatLanguageCode(t)),'languageOnly'!==this.options.load&&'currentOnly'!==this.options.load&&l(this.getScriptPartFromCode(t)),'currentOnly'!==this.options.load&&l(this.getLanguagePartFromCode(t))):'string'==typeof t&&l(this.formatLanguageCode(t)),s.forEach(function(t){u.indexOf(t)<0&&l(o.formatLanguageCode(t))}),u}}]),t})(),U=[{lngs:['ach','ak','am','arn','br','fil','gun','ln','mfe','mg','mi','oc','pt','pt-BR','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','et','eu','fi','fo','fur','fy','gl','gu','ha','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','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','cnr','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},{lngs:['he'],nr:[1,2,20,21],fc:22}],T={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)},22:function(t){return Number(1===t?0:2===t?1:(t<0||t>10)&&t%10==0?2:3)}};var K=(function(){function t(n){var o,u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};s(this,t),this.languageUtils=n,this.options=u,this.logger=b.create('pluralResolver'),this.rules=(o={},U.forEach(function(t){t.lngs.forEach(function(n){o[n]={numbers:t.nr,plurals:T[t.fc]}})}),o)}return u(t,[{key:"addRule",value:function(t,n){this.rules[t]=n}},{key:"getRule",value:function(t){return this.rules[t]||this.rules[this.languageUtils.getLanguagePartFromCode(t)]}},{key:"needsPlural",value:function(t){var n=this.getRule(t);return n&&n.numbers.length>1}},{key:"getPluralFormsOfKey",value:function(t,n){var o=this,s=[],u=this.getRule(t);return u?(u.numbers.forEach(function(u){var l=o.getSuffix(t,u);s.push("".concat(n).concat(l))}),s):s}},{key:"getSuffix",value:function(t,n){var o=this,s=this.getRule(t);if(s){var u=s.noAbs?s.plurals(n):s.plurals(Math.abs(n)),l=s.numbers[u];this.options.simplifyPluralSuffix&&2===s.numbers.length&&1===s.numbers[0]&&(2===l?l='plural':1===l&&(l=''));var c=function(){return o.options.prepend&&l.toString()?o.options.prepend+l.toString():l.toString()};return'v1'===this.options.compatibilityJSON?1===l?'':'number'==typeof l?"_plural_".concat(l.toString()):c():'v2'===this.options.compatibilityJSON?c():this.options.simplifyPluralSuffix&&2===s.numbers.length&&1===s.numbers[0]?c():this.options.prepend&&u.toString()?this.options.prepend+u.toString():u.toString()}return this.logger.warn("no plural rule found for: ".concat(t)),''}}]),t})(),H=(function(){function t(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};s(this,t),this.logger=b.create('interpolator'),this.init(n,!0)}return u(t,[{key:"init",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(arguments.length>1?arguments[1]:void 0)&&(this.options=t,this.format=t.interpolation&&t.interpolation.format||function(t){return t}),t.interpolation||(t.interpolation={escapeValue:!0});var n=t.interpolation;this.escape=void 0!==n.escape?n.escape:j,this.escapeValue=void 0===n.escapeValue||n.escapeValue,this.useRawValueToEscape=void 0!==n.useRawValueToEscape&&n.useRawValueToEscape,this.prefix=n.prefix?N(n.prefix):n.prefixEscaped||'{{',this.suffix=n.suffix?N(n.suffix):n.suffixEscaped||'}}',this.formatSeparator=n.formatSeparator?n.formatSeparator:n.formatSeparator||',',this.unescapePrefix=n.unescapeSuffix?'':n.unescapePrefix||'-',this.unescapeSuffix=this.unescapePrefix?'':n.unescapeSuffix||'',this.nestingPrefix=n.nestingPrefix?N(n.nestingPrefix):n.nestingPrefixEscaped||N('$t('),this.nestingSuffix=n.nestingSuffix?N(n.nestingSuffix):n.nestingSuffixEscaped||N(')'),this.maxReplaces=n.maxReplaces?n.maxReplaces:1e3,this.resetRegExp()}},{key:"reset",value:function(){this.options&&this.init(this.options)}},{key:"resetRegExp",value:function(){var t="".concat(this.prefix,"(.+?)").concat(this.suffix);this.regexp=new RegExp(t,'g');var n="".concat(this.prefix).concat(this.unescapePrefix,"(.+?)").concat(this.unescapeSuffix).concat(this.suffix);this.regexpUnescape=new RegExp(n,'g');var o="".concat(this.nestingPrefix,"(.+?)").concat(this.nestingSuffix);this.nestingRegexp=new RegExp(o,'g')}},{key:"interpolate",value:function(t,n,o,s){var u,l,c,f=this;function p(t){return t.replace(/\$/g,'$$$$')}var h=function(t){if(t.indexOf(f.formatSeparator)<0)return O(n,t);var s=t.split(f.formatSeparator),u=s.shift().trim(),l=s.join(f.formatSeparator).trim();return f.format(O(n,u),l,o)};this.resetRegExp();var v=s&&s.missingInterpolationHandler||this.options.missingInterpolationHandler;for(c=0;(u=this.regexpUnescape.exec(t))&&(l=h(u[1].trim()),t=t.replace(u[0],l),this.regexpUnescape.lastIndex=0,!(++c>=this.maxReplaces)););for(c=0;u=this.regexp.exec(t);){if(void 0===(l=h(u[1].trim())))if('function'==typeof v){var y=v(t,u,s);l='string'==typeof y?y:''}else this.logger.warn("missed to pass in variable ".concat(u[1]," for interpolating ").concat(t)),l='';else'string'==typeof l||this.useRawValueToEscape||(l=S(l));if(l=this.escapeValue?p(this.escape(l)):p(l),t=t.replace(u[0],l),this.regexp.lastIndex=0,++c>=this.maxReplaces)break}return t}},{key:"nest",value:function(t,n){var s,u,l=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},c=o({},l);function f(t,n){if(t.indexOf(',')<0)return t;var s=t.split(',');t=s.shift();var u=s.join(',');u=(u=this.interpolate(u,c)).replace(/'/g,'"');try{c=JSON.parse(u),n&&(c=o({},n,c))}catch(n){this.logger.error("failed parsing options string in nesting for key ".concat(t),n)}return t}for(c.applyPostProcessor=!1;s=this.nestingRegexp.exec(t);){if((u=n(f.call(this,s[1].trim(),c),c))&&s[0]===t&&'string'!=typeof u)return u;'string'!=typeof u&&(u=S(u)),u||(this.logger.warn("missed to resolve ".concat(s[1]," for nesting ").concat(t)),u=''),t=t.replace(s[0],u),this.regexp.lastIndex=0}return t}}]),t})();function D(t,n){for(var o=t.indexOf(n);-1!==o;)t.splice(o,1),o=t.indexOf(n)}var M=(function(t){function n(t,o,u){var p,h=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return s(this,n),p=l(this,c(n).call(this)),k.call(f(p)),p.backend=t,p.store=o,p.languageUtils=u.languageUtils,p.options=h,p.logger=b.create('backendConnector'),p.state={},p.queue=[],p.backend&&p.backend.init&&p.backend.init(u,h.backend,h),p}return p(n,k),u(n,[{key:"queueLoad",value:function(t,n,o,s){var u=this,l=[],c=[],f=[],p=[];return t.forEach(function(t){var s=!0;n.forEach(function(n){var f="".concat(t,"|").concat(n);!o.reload&&u.store.hasResourceBundle(t,n)?u.state[f]=2:u.state[f]<0||(1===u.state[f]?c.indexOf(f)<0&&c.push(f):(u.state[f]=1,s=!1,c.indexOf(f)<0&&c.push(f),l.indexOf(f)<0&&l.push(f),p.indexOf(n)<0&&p.push(n)))}),s||f.push(t)}),(l.length||c.length)&&this.queue.push({pending:c,loaded:{},errors:[],callback:s}),{toLoad:l,pending:c,toLoadLanguages:f,toLoadNamespaces:p}}},{key:"loaded",value:function(t,n,o){var s=t.split('|'),u=v(s,2),l=u[0],c=u[1];n&&this.emit('failedLoading',l,c,n),o&&this.store.addResourceBundle(l,c,o),this.state[t]=n?-1:2;var f={};this.queue.forEach(function(o){var s,u,p,h,v,y;s=o.loaded,u=c,h=w(s,[l],Object),v=h.obj,y=h.k,v[y]=v[y]||[],p&&(v[y]=v[y].concat(u)),p||v[y].push(u),D(o.pending,t),n&&o.errors.push(n),0!==o.pending.length||o.done||(Object.keys(o.loaded).forEach(function(t){f[t]||(f[t]=[]),o.loaded[t].length&&o.loaded[t].forEach(function(n){f[t].indexOf(n)<0&&f[t].push(n)})}),o.done=!0,o.errors.length?o.callback(o.errors):o.callback())}),this.emit('loaded',f),this.queue=this.queue.filter(function(t){return!t.done})}},{key:"read",value:function(t,n,o){var s=this,u=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,l=arguments.length>4&&void 0!==arguments[4]?arguments[4]:250,c=arguments.length>5?arguments[5]:void 0;return t.length?this.backend[o](t,n,function(f,p){f&&p&&u<5?setTimeout(function(){s.read.call(s,t,n,o,u+1,2*l,c)},l):c(f,p)}):c(null,{})}},{key:"prepareLoading",value:function(t,n){var o=this,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},u=arguments.length>3?arguments[3]:void 0;if(!this.backend)return this.logger.warn('No backend was added via i18next.use. Will not load resources.'),u&&u();'string'==typeof t&&(t=this.languageUtils.toResolveHierarchy(t)),'string'==typeof n&&(n=[n]);var l=this.queueLoad(t,n,s,u);if(!l.toLoad.length)return l.pending.length||u(),null;l.toLoad.forEach(function(t){o.loadOne(t)})}},{key:"load",value:function(t,n,o){this.prepareLoading(t,n,{},o)}},{key:"reload",value:function(t,n,o){this.prepareLoading(t,n,{reload:!0},o)}},{key:"loadOne",value:function(t){var n=this,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:'',s=t.split('|'),u=v(s,2),l=u[0],c=u[1];this.read(l,c,'read',null,null,function(s,u){s&&n.logger.warn("".concat(o,"loading namespace ").concat(c," for language ").concat(l," failed"),s),!s&&u&&n.logger.log("".concat(o,"loaded namespace ").concat(c," for language ").concat(l),u),n.loaded(t,s,u)})}},{key:"saveMissing",value:function(t,n,s,u,l){var c=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};this.backend&&this.backend.create&&this.backend.create(t,n,s,u,null,o({},c,{isUpdate:l})),t&&t[0]&&this.store.addResource(t[0],n,s,u)}}]),n})();function I(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=t.whitelist.concat(['cimode'])),t}function B(){}var q=new((function(t){function h(){var t,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=arguments.length>1?arguments[1]:void 0;if(s(this,h),t=l(this,c(h).call(this)),k.call(f(t)),t.options=I(n),t.services={},t.logger=b,t.modules={external:[]},o&&!t.isInitialized&&!n.isClone){if(!t.options.initImmediate)return t.init(n,o),l(t,f(t));setTimeout(function(){t.init(n,o)},0)}return t}return p(h,k),u(h,[{key:"init",value:function(){var t=this,s=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},u=arguments.length>1?arguments[1]:void 0;function l(t){return t?'function'==typeof t?new t:t:null}if('function'==typeof s&&(u=s,s={}),this.options=o({},{debug:!1,initImmediate:!0,ns:['translation'],defaultNS:['translation'],fallbackLng:['dev'],fallbackNS:!1,whitelist:!1,nonExplicitWhitelist:!1,load:'all',preload:!1,simplifyPluralSuffix:!0,keySeparator:'.',nsSeparator:':',pluralSeparator:'_',contextSeparator:'_',partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:'fallback',saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,returnNull:!0,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:function(){},parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:function(t){var o={};if('object'===n(t[1])&&(o=t[1]),'string'==typeof t[1]&&(o.defaultValue=t[1]),'string'==typeof t[2]&&(o.tDescription=t[2]),'object'===n(t[2])||'object'===n(t[3])){var s=t[3]||t[2];Object.keys(s).forEach(function(t){o[t]=s[t]})}return o},interpolation:{escapeValue:!0,format:function(t,n,o){return t},prefix:'{{',suffix:'}}',formatSeparator:',',unescapePrefix:'-',nestingPrefix:'$t(',nestingSuffix:')',maxReplaces:1e3}},this.options,I(s)),this.format=this.options.interpolation.format,u||(u=B),!this.options.isClone){this.modules.logger?b.init(l(this.modules.logger),this.options):b.init(null,this.options);var c=new A(this.options);this.store=new E(this.options.resources,this.options);var f=this.services;f.logger=b,f.resourceStore=this.store,f.languageUtils=c,f.pluralResolver=new K(c,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),f.interpolator=new H(this.options),f.backendConnector=new M(l(this.modules.backend),f.resourceStore,f,this.options),f.backendConnector.on('*',function(n){for(var o=arguments.length,s=new Array(o>1?o-1:0),u=1;u1?o-1:0),u=1;u0&&void 0!==arguments[0]?arguments[0]:B;if(!this.options.resources||this.options.partialBundledLanguages){if(this.language&&'cimode'===this.language.toLowerCase())return n();var o=[],s=function(n){n&&t.services.languageUtils.toResolveHierarchy(n).forEach(function(t){o.indexOf(t)<0&&o.push(t)})};if(this.language)s(this.language);else this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(function(t){return s(t)});this.options.preload&&this.options.preload.forEach(function(t){return s(t)}),this.services.backendConnector.load(o,this.options.ns,n)}else n(null)}},{key:"reloadResources",value:function(t,n,o){var s=x();return t||(t=this.languages),n||(n=this.options.ns),o||(o=B),this.services.backendConnector.reload(t,n,function(t){s.resolve(),o(t)}),s}},{key:"use",value:function(t){return'backend'===t.type&&(this.modules.backend=t),('logger'===t.type||t.log&&t.warn&&t.error)&&(this.modules.logger=t),'languageDetector'===t.type&&(this.modules.languageDetector=t),'i18nFormat'===t.type&&(this.modules.i18nFormat=t),'postProcessor'===t.type&&P.addPostProcessor(t),'3rdParty'===t.type&&this.modules.external.push(t),this}},{key:"changeLanguage",value:function(t,n){var o=this,s=x();this.emit('languageChanging',t);var u=function(t,u){o.translator.changeLanguage(u),u&&(o.emit('languageChanged',u),o.logger.log('languageChanged',u)),s.resolve(function(){return o.t.apply(o,arguments)}),n&&n(t,function(){return o.t.apply(o,arguments)})},l=function(t){t&&(o.language=t,o.languages=o.services.languageUtils.toResolveHierarchy(t),o.translator.language||o.translator.changeLanguage(t),o.services.languageDetector&&o.services.languageDetector.cacheUserLanguage(t)),o.loadResources(function(n){u(n,t)})};return t||!this.services.languageDetector||this.services.languageDetector.async?!t&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect(l):l(t):l(this.services.languageDetector.detect()),s}},{key:"getFixedT",value:function(t,s){var u=this,l=function t(s,l){var c=o({},l);if('object'!==n(l)){for(var f=arguments.length,p=new Array(f>2?f-2:0),h=2;h0?this.languages[0]:this.language),!t)return'rtl';return['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'].indexOf(this.services.languageUtils.getLanguagePartFromCode(t))>=0?'rtl':'ltr'}},{key:"createInstance",value:function(){return new h(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},arguments.length>1?arguments[1]:void 0)}},{key:"cloneInstance",value:function(){var t=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:B,u=o({},this.options,n,{isClone:!0}),l=new h(u);return['store','services','language'].forEach(function(n){l[n]=t[n]}),l.translator=new F(l.services,l.options),l.translator.on('*',function(t){for(var n=arguments.length,o=new Array(n>1?n-1:0),s=1;s3&&o&&o(u.responseText,u)},u.send(l)}catch(t){console&&console.log(t)}}var v=(function(){function t(o){var s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};n(this,t),this.init(o,s),this.type='backend'}return o(t,[{key:"init",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.services=t,this.options=p(n,this.options||{},{loadPath:'/locales/{{lng}}/{{ns}}.json',addPath:'/locales/add/{{lng}}/{{ns}}',allowMultiLoading:!1,parse:JSON.parse,crossDomain:!1,ajax:h})}},{key:"readMulti",value:function(t,n,o){var s=this.options.loadPath;'function'==typeof this.options.loadPath&&(s=this.options.loadPath(t,n));var l=this.services.interpolator.interpolate(s,{lng:t.join('+'),ns:n.join('+')});this.loadUrl(l,o)}},{key:"read",value:function(t,n,o){var s=this.options.loadPath;'function'==typeof this.options.loadPath&&(s=this.options.loadPath([t],[n]));var l=this.services.interpolator.interpolate(s,{lng:t,ns:n});this.loadUrl(l,o)}},{key:"loadUrl",value:function(t,n){var o=this;this.options.ajax(t,this.options,function(s,l){if(l.status>=500&&l.status<600)return n('failed loading '+t,!0);if(l.status>=400&&l.status<500)return n('failed loading '+t,!1);var c,u;try{c=o.options.parse(s,t)}catch(n){u='failed parsing '+t+' to json'}if(u)return n(u,!1);n(null,c)})}},{key:"create",value:function(t,n,o,s){var l=this;'string'==typeof t&&(t=[t]);var c={};c[o]=s||'',t.forEach(function(t){var o=l.services.interpolator.interpolate(l.options.addPath,{lng:t,ns:n});l.options.ajax(o,l.options,function(t,n){},c)})}}]),t})();v.type='backend',m.exports=v},645,[646,647,648]); +__d(function(g,r,i,a,m,e,d){m.exports=function(n,o){if(!(n instanceof o))throw new TypeError("Cannot call a class as a function")}},646,[]); +__d(function(g,r,i,a,m,e,d){function n(n,t){for(var o=0;o{{room}} has not yet started. If you are the host then please authenticate. Otherwise, please wait for the host to arrive.",WaitForHostMsgWOk:"The conference {{room}} has not yet started. If you are the host then please press Ok to authenticate. Otherwise, please wait for the host to arrive.",WaitingForHost:"Waiting for the host ...",Yes:"Yes",yourEntireScreen:"Your entire screen"},dialOut:{statusMessage:"is now {{status}}"},documentSharing:{title:"Shared Document"},feedback:{average:"Average",bad:"Bad",detailsLabel:"Tell us more about it.",good:"Good",rateExperience:"Rate your meeting experience",veryBad:"Very Bad",veryGood:"Very Good"},incomingCall:{answer:"Answer",audioCallTitle:"Incoming call",decline:"Dismiss",productLabel:"from Jitsi Meet",videoCallTitle:"Incoming video call"},info:{accessibilityLabel:"Show info",addPassword:"Add $t(lockRoomPassword)",cancelPassword:"Cancel $t(lockRoomPassword)",conferenceURL:"Link:",country:"Country",dialANumber:"To join your meeting, dial one of these numbers and then enter the pin.",dialInConferenceID:"PIN:",dialInNotSupported:"Sorry, dialing in is currently not supported.",dialInNumber:"Dial-in:",dialInSummaryError:"Error fetching dial-in info now. Please try again later.",dialInTollFree:"Toll Free",genericError:"Whoops, something went wrong.",inviteLiveStream:"To view the live stream of this meeting, click this link: {{url}}",invitePhone:"To join by phone instead, tap this: {{number}},,{{conferenceID}}#\n",invitePhoneAlternatives:"Looking for a different dial-in number?\nSee meeting dial-in numbers: {{url}}\n\n\nIf also dialing-in through a room phone, join without connecting to audio: {{silentUrl}}",inviteURLFirstPartGeneral:"You are invited to join a meeting.",inviteURLFirstPartPersonal:"{{name}} is inviting you to a meeting.\n",inviteURLSecondPart:"\nJoin the meeting:\n{{url}}\n",liveStreamURL:"Live stream:",moreNumbers:"More numbers",noNumbers:"No dial-in numbers.",noPassword:"None",noRoom:"No room was specified to dial-in into.",numbers:"Dial-in Numbers",password:"$t(lockRoomPasswordUppercase):",title:"Share",tooltip:"Share link and dial-in info for this meeting",label:"Meeting info"},inviteDialog:{alertText:"Failed to invite some participants.",header:"Invite",searchCallOnlyPlaceholder:"Enter phone number",searchPeopleOnlyPlaceholder:"Search for participants",searchPlaceholder:"Participant or phone number",send:"Send"},inlineDialogFailure:{msg:"We stumbled a bit.",retry:"Try again",support:"Support",supportMsg:"If this keeps happening, reach out to"},keyboardShortcuts:{focusLocal:"Focus on your video",focusRemote:"Focus on another person's video",fullScreen:"View or exit full screen",keyboardShortcuts:"Keyboard shortcuts",localRecording:"Show or hide local recording controls",mute:"Mute or unmute your microphone",pushToTalk:"Push to talk",raiseHand:"Raise or lower your hand",showSpeakerStats:"Show speaker stats",toggleChat:"Open or close the chat",toggleFilmstrip:"Show or hide video thumbnails",toggleScreensharing:"Switch between camera and screen sharing",toggleShortcuts:"Show or hide keyboard shortcuts",videoMute:"Start or stop your camera",videoQuality:"Manage call quality"},liveStreaming:{busy:"We're working on freeing streaming resources. Please try again in a few minutes.",busyTitle:"All streamers are currently busy",changeSignIn:"Switch accounts.",choose:"Choose a live stream",chooseCTA:"Choose a streaming option. You're currently logged in as {{email}}.",enterStreamKey:"Enter your YouTube live stream key here.",error:"Live Streaming failed. Please try again.",errorAPI:"An error occurred while accessing your YouTube broadcasts. Please try logging in again.",errorLiveStreamNotEnabled:"Live Streaming is not enabled on {{email}}. Please enable live streaming or log into an account with live streaming enabled.",expandedOff:"The live streaming has stopped",expandedOn:"The meeting is currently being streamed to YouTube.",expandedPending:"The live streaming is being started...",failedToStart:"Live Streaming failed to start",getStreamKeyManually:"We weren\u2019t able to fetch any live streams. Try getting your live stream key from YouTube.",invalidStreamKey:"Live stream key may be incorrect.",off:"Live Streaming stopped",offBy:"{{name}} stopped the live streaming",on:"Live Streaming",onBy:"{{name}} started the live streaming",pending:"Starting Live Stream...",serviceName:"Live Streaming service",signedInAs:"You are currently signed in as:",signIn:"Sign in with Google",signInCTA:"Sign in or enter your live stream key from YouTube.",signOut:"Sign out",start:"Start a live stream",streamIdHelp:"What's this?",unavailableTitle:"Live Streaming unavailable",youtubeTerms:"YouTube terms of services",googlePrivacyPolicy:"Google Privacy Policy"},localRecording:{clientState:{off:"Off",on:"On",unknown:"Unknown"},dialogTitle:"Local Recording Controls",duration:"Duration",durationNA:"N/A",encoding:"Encoding",label:"LOR",labelToolTip:"Local recording is engaged",localRecording:"Local Recording",me:"Me",messages:{engaged:"Local recording engaged.",finished:"Recording session {{token}} finished. Please send the recorded file to the moderator.",finishedModerator:"Recording session {{token}} finished. The recording of the local track has been saved. Please ask the other participants to submit their recordings.",notModerator:"You are not the moderator. You cannot start or stop local recording."},moderator:"Moderator",no:"No",participant:"Participant",participantStats:"Participant Stats",sessionToken:"Session Token",start:"Start Recording",stop:"Stop Recording",yes:"Yes"},lockRoomPassword:"password",lockRoomPasswordUppercase:"Password",me:"me",notify:{connectedOneMember:"{{name}} joined the meeting",connectedThreePlusMembers:"{{name}} and {{count}} others joined the meeting",connectedTwoMembers:"{{first}} and {{second}} joined the meeting",disconnected:"disconnected",focus:"Conference focus",focusFail:"{{component}} not available - retry in {{ms}} sec",grantedTo:"Moderator rights granted to {{to}}!",invitedOneMember:"{{name}} has been invited",invitedThreePlusMembers:"{{name}} and {{count}} others have been invited",invitedTwoMembers:"{{first}} and {{second}} have been invited",kickParticipant:"{{kicked}} was kicked by {{kicker}}",me:"Me",moderator:"Moderator rights granted!",muted:"You have started the conversation muted.",mutedTitle:"You're muted!",mutedRemotelyTitle:"You have been muted by {{participantDisplayName}}!",mutedRemotelyDescription:"You can always unmute when you're ready to speak. Mute back when you're done to keep noise away from the meeting.",passwordRemovedRemotely:"$t(lockRoomPasswordUppercase) removed by another participant",passwordSetRemotely:"$t(lockRoomPasswordUppercase) set by another participant",raisedHand:"{{name}} would like to speak.",somebody:"Somebody",startSilentTitle:"You joined with no audio output!",startSilentDescription:"Rejoin the meeting to enable audio",suboptimalBrowserWarning:"We are afraid your meeting experience isn't going to be that great here. We are looking for ways to improve this, but until then please try using one of the fully supported browsers.",suboptimalExperienceTitle:"Browser Warning",unmute:"Unmute",newDeviceCameraTitle:"New camera detected",newDeviceAudioTitle:"New audio device detected",newDeviceAction:"Use",OldElectronAPPTitle:"Security vulnerability!",oldElectronClientDescription1:"You appear to be using an old verion of the Jitsi Meet client which has known security vulnerabilities. Please make sure you update to our ",oldElectronClientDescription2:"latest build",oldElectronClientDescription3:" now!"},passwordSetRemotely:"set by another participant",passwordDigitsOnly:"Up to {{number}} digits",poweredby:"powered by",presenceStatus:{busy:"Busy",calling:"Calling...",connected:"Connected",connecting:"Connecting...",connecting2:"Connecting*...",disconnected:"Disconnected",expired:"Expired",ignored:"Ignored",initializingCall:"Initializing Call...",invited:"Invited",rejected:"Rejected",ringing:"Ringing..."},profile:{setDisplayNameLabel:"Set your display name",setEmailInput:"Enter e-mail",setEmailLabel:"Set your gravatar email",title:"Profile"},raisedHand:"Would like to speak",recording:{authDropboxText:"Upload to Dropbox",availableSpace:"Available space: {{spaceLeft}} MB (approximately {{duration}} minutes of recording)",beta:"BETA",busy:"We're working on freeing recording resources. Please try again in a few minutes.",busyTitle:"All recorders are currently busy",error:"Recording failed. Please try again.",expandedOff:"Recording has stopped",expandedOn:"The meeting is currently being recorded.",expandedPending:"Recording is being started...",failedToStart:"Recording failed to start",fileSharingdescription:"Share recording with meeting participants",live:"LIVE",loggedIn:"Logged in as {{userName}}",off:"Recording stopped",offBy:"{{name}} stopped the recording",on:"Recording",onBy:"{{name}} started the recording",pending:"Preparing to record the meeting...",rec:"REC",serviceDescription:"Your recording will be saved by the recording service",serviceName:"Recording service",signIn:"Sign in",signOut:"Sign out",unavailable:"Oops! The {{serviceName}} is currently unavailable. We're working on resolving the issue. Please try again later.",unavailableTitle:"Recording unavailable"},sectionList:{pullToRefresh:"Pull to refresh"},settings:{calendar:{about:"The {{appName}} calendar integration is used to securely access your calendar so it can read upcoming events.",disconnect:"Disconnect",microsoftSignIn:"Sign in with Microsoft",signedIn:"Currently accessing calendar events for {{email}}. Click the Disconnect button below to stop accessing calendar events.",title:"Calendar"},devices:"Devices",followMe:"Everyone follows me",language:"Language",loggedIn:"Logged in as {{name}}",microphones:"Microphones",moderator:"Moderator",more:"More",name:"Name",noDevice:"None",selectAudioOutput:"Audio output",selectCamera:"Camera",selectMic:"Microphone",speakers:"Speakers",startAudioMuted:"Everyone starts muted",startVideoMuted:"Everyone starts hidden",title:"Settings"},settingsView:{advanced:"Advanced",alertOk:"OK",alertTitle:"Warning",alertURLText:"The entered server URL is invalid",buildInfoSection:"Build Information",conferenceSection:"Conference",disableCallIntegration:"Disable native call integration",disableP2P:"Disable Peer-To-Peer mode",displayName:"Display name",email:"Email",header:"Settings",profileSection:"Profile",serverURL:"Server URL",showAdvanced:"Show advanced settings",startWithAudioMuted:"Start with audio muted",startWithVideoMuted:"Start with video muted",version:"Version"},share:{dialInfoText:"\n\n=====\n\nJust want to dial in on your phone?\n\n{{defaultDialInNumber}}Click this link to see the dial in phone numbers for this meeting\n{{dialInfoPageUrl}}",mainText:"Click the following link to join the meeting:\n{{roomUrl}}"},speaker:"Speaker",speakerStats:{hours:"{{count}}h",minutes:"{{count}}m",name:"Name",seconds:"{{count}}s",speakerStats:"Speaker Stats",speakerTime:"Speaker Time"},startupoverlay:{policyText:" ",title:"{{app}} needs to use your microphone and camera."},suspendedoverlay:{rejoinKeyTitle:"Rejoin",text:"Press the Rejoin button to reconnect.",title:"Your video call was interrupted because this computer went to sleep."},toolbar:{accessibilityLabel:{audioOnly:"Toggle audio only",audioRoute:"Select the sound device",callQuality:"Manage video quality",cc:"Toggle subtitles",chat:"Toggle chat window",document:"Toggle shared document",download:"Download our apps",feedback:"Leave feedback",fullScreen:"Toggle full screen",hangup:"Leave the call",help:"Help",invite:"Invite people",kick:"Kick participant",localRecording:"Toggle local recording controls",lockRoom:"Toggle meeting password",moreActions:"Toggle more actions menu",moreActionsMenu:"More actions menu",moreOptions:"Show more options",mute:"Toggle mute audio",muteEveryone:"Mute everyone",pip:"Toggle Picture-in-Picture mode",privateMessage:"Send private message",profile:"Edit your profile",raiseHand:"Toggle raise hand",recording:"Toggle recording",remoteMute:"Mute participant",Settings:"Toggle settings",sharedvideo:"Toggle Youtube video sharing",shareRoom:"Invite someone",shareYourScreen:"Toggle screenshare",shortcuts:"Toggle shortcuts",show:"Show on stage",speakerStats:"Toggle speaker statistics",tileView:"Toggle tile view",toggleCamera:"Toggle camera",toggleFilmstrip:"Toggle filmstrip",videomute:"Toggle mute video",videoblur:"Toggle video blur"},addPeople:"Add people to your call",audioOnlyOff:"Disable low bandwidth mode",audioOnlyOn:"Enable low bandwidth mode",audioRoute:"Select the sound device",authenticate:"Authenticate",callQuality:"Manage video quality",chat:"Open / Close chat",closeChat:"Close chat",documentClose:"Close shared document",documentOpen:"Open shared document",download:"Download our apps",enterFullScreen:"View full screen",enterTileView:"Enter tile view",exitFullScreen:"Exit full screen",exitTileView:"Exit tile view",feedback:"Leave feedback",hangup:"Leave",help:"Help",invite:"Invite people",login:"Login",logout:"Logout",lowerYourHand:"Lower your hand",moreActions:"More actions",moreOptions:"More options",mute:"Mute / Unmute",muteEveryone:"Mute everyone",noAudioSignalTitle:"There is no input coming from your mic!",noAudioSignalDesc:"If you did not purposely mute it from system settings or hardware, consider switching the device.",noAudioSignalDescSuggestion:"If you did not purposely mute it from system settings or hardware, consider switching to the suggested device.",noAudioSignalDialInDesc:"You can also dial-in using:",noAudioSignalDialInLinkDesc:"Dial-in numbers",noisyAudioInputTitle:"Your microphone appears to be noisy!",noisyAudioInputDesc:"It sounds like your microphone is making noise, please consider muting or changing the device.",openChat:"Open chat",pip:"Enter Picture-in-Picture mode",privateMessage:"Send private message",profile:"Edit your profile",raiseHand:"Raise / Lower your hand",raiseYourHand:"Raise your hand",Settings:"Settings",sharedvideo:"Share a YouTube video",shareRoom:"Invite someone",shortcuts:"View shortcuts",speakerStats:"Speaker stats",startScreenSharing:"Start screen sharing",startSubtitles:"Start subtitles",stopScreenSharing:"Stop screen sharing",stopSubtitles:"Stop subtitles",stopSharedVideo:"Stop YouTube video",talkWhileMutedPopup:"Trying to speak? You are muted.",tileViewToggle:"Toggle tile view",toggleCamera:"Toggle camera",videomute:"Start / Stop camera",startvideoblur:"Blur my background",stopvideoblur:"Disable background blur"},transcribing:{ccButtonTooltip:"Start / Stop subtitles",error:"Transcribing failed. Please try again.",expandedLabel:"Transcribing is currently on",failedToStart:"Transcribing failed to start",labelToolTip:"The meeting is being transcribed",off:"Transcribing stopped",pending:"Preparing to transcribe the meeting...",start:"Start showing subtitles",stop:"Stop showing subtitles",tr:"TR"},userMedia:{androidGrantPermissions:"Select Allow when your browser asks for permissions.",chromeGrantPermissions:"Select Allow when your browser asks for permissions.",edgeGrantPermissions:"Select Yes when your browser asks for permissions.",electronGrantPermissions:"Please grant permissions to use your camera and microphone",firefoxGrantPermissions:"Select Share Selected Device when your browser asks for permissions.",iexplorerGrantPermissions:"Select OK when your browser asks for permissions.",nwjsGrantPermissions:"Please grant permissions to use your camera and microphone",operaGrantPermissions:"Select Allow when your browser asks for permissions.","react-nativeGrantPermissions":"Select Allow when your browser asks for permissions.",safariGrantPermissions:"Select OK when your browser asks for permissions."},videoSIPGW:{busy:"We're working on freeing resources. Please try again in a few minutes.",busyTitle:"The Room service is currently busy",errorAlreadyInvited:"{{displayName}} already invited",errorInvite:"Conference not established yet. Please try again later.",errorInviteFailed:"We're working on resolving the issue. Please try again later.",errorInviteFailedTitle:"Inviting {{displayName}} failed",errorInviteTitle:"Error inviting room",pending:"{{displayName}} has been invited"},videoStatus:{audioOnly:"AUD",audioOnlyExpanded:"You are in low bandwidth mode. In this mode you will receive only audio and screen sharing.",callQuality:"Video Quality",hd:"HD",hdTooltip:"Viewing high definition video",highDefinition:"High definition",labelTooiltipNoVideo:"No video",labelTooltipAudioOnly:"Low bandwidth mode enabled",ld:"LD",ldTooltip:"Viewing low definition video",lowDefinition:"Low definition",onlyAudioAvailable:"Only audio is available",onlyAudioSupported:"We only support audio in this browser.",p2pEnabled:"Peer to Peer Enabled",p2pVideoQualityDescription:"In peer to peer mode, received video quality can only be toggled between high and audio only. Other settings will not be honored until peer to peer is exited.",recHighDefinitionOnly:"Will prefer high definition.",sd:"SD",sdTooltip:"Viewing standard definition video",standardDefinition:"Standard definition"},videothumbnail:{domute:"Mute",domuteOthers:"Mute everyone else",flip:"Flip",kick:"Kick out",moderator:"Moderator",mute:"Participant is muted",muted:"Muted",remoteControl:"Start / Stop remote control",show:"Show on stage",videomute:"Participant has stopped the camera"},welcomepage:{accessibilityLabel:{join:"Tap to join",roomname:"Enter room name"},appDescription:"Go ahead, video chat with the whole team. In fact, invite everyone you know. {{app}} is a fully encrypted, 100% open source video conferencing solution that you can use all day, every day, for free \u2014 with no account needed.",audioVideoSwitch:{audio:"Voice",video:"Video"},calendar:"Calendar",connectCalendarButton:"Connect your calendar",connectCalendarText:"Connect your calendar to view all your meetings in {{app}}. Plus, add {{provider}} meetings to your calendar and start them with one click.",enterRoomTitle:"Start a new meeting",getHelp:"Get help",roomNameAllowedChars:"Meeting name should not contain any of these characters: ?, &, :, ', \", %, #.",go:"GO",goSmall:"GO",join:"CREATE / JOIN",info:"Info",privacy:"Privacy",recentList:"Recent",recentListDelete:"Delete",recentListEmpty:"Your recent list is currently empty. Chat with your team and you will find all your recent meetings here.",reducedUIText:"Welcome to {{app}}!",roomname:"Enter room name",roomnameHint:"Enter the name or URL of the room you want to join. You may make a name up, just let the people you are meeting know it so that they enter the same name.",sendFeedback:"Send feedback",terms:"Terms",title:"Secure, fully featured, and completely free video conferencing"},lonelyMeetingExperience:{button:"Invite others",youAreAlone:"You are the only one in the meeting"},helpView:{header:"Help centre"}}},651,[]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=r(d[0]),o={cacheUserLanguage:Function.prototype,detect:function(){return t.NativeModules.LocaleDetector.locale.replace(/_/,'-')},init:Function.prototype,type:'languageDetector'};e.default=o},652,[17]); +__d(function(g,r,i,a,m,e,d){var n=r(d[0])(r(d[1])),u={af:{languages:r(d[2]),main:r(d[3])},bg:{languages:r(d[4]),main:r(d[5])},de:{languages:r(d[6]),main:r(d[7])},enGB:{languages:r(d[8]),main:r(d[9])},eo:{languages:r(d[10]),main:r(d[11])},es:{languages:r(d[12]),main:r(d[13])},esUS:{languages:r(d[14]),main:r(d[15])},et:{languages:r(d[16]),main:r(d[17])},fi:{languages:r(d[18]),main:r(d[19])},fr:{languages:r(d[20]),main:r(d[21])},frCA:{languages:r(d[22]),main:r(d[23])},hr:{languages:r(d[24]),main:r(d[25])},hu:{languages:r(d[26]),main:r(d[27])},it:{languages:r(d[28]),main:r(d[29])},ja:{languages:r(d[30]),main:r(d[31])},ko:{languages:r(d[32]),main:r(d[33])},nl:{languages:r(d[34]),main:r(d[35])},oc:{languages:r(d[36]),main:r(d[37])},pl:{languages:r(d[38]),main:r(d[39])},ptBR:{languages:r(d[40]),main:r(d[41])},ru:{languages:r(d[42]),main:r(d[43])},sv:{languages:r(d[44]),main:r(d[45])},vi:{languages:r(d[46]),main:r(d[47])},zhCN:{languages:r(d[48]),main:r(d[49])},zhTW:{languages:r(d[50]),main:r(d[51])},mn:{languages:r(d[52]),main:r(d[53])}};for(var l in u){var s=u[l],f=s.languages,o=s.main;n.default.addResourceBundle(l,'languages',f,!0,!0),n.default.addResourceBundle(l,'main',o,!0,!0)}},653,[3,626,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705]); +__d(function(s,e,a,n,i,o,r){i.exports={en:"Engels",af:"",az:"Azerbeidjans",bg:"Bulgaars",cs:"Tsjeggies",de:"Duits",el:"Grieks",eo:"Esperanto",es:"Spaans",fr:"Frans",hy:"Armeens",it:"Italiaans",ja:"Japannees",ko:"Koreaans",nb:"Bokmal-Noorweegs",oc:"Oksitaans",pl:"Pools",ptBR:"Portugees (Brasili\xeb)",ru:"Russies",sk:"Slowaaks",sl:"Sloweens",sv:"Sweeds",tr:"Turks",vi:"Vi\xebtnamees",zhCN:"Sjinees (Sjina)"}},654,[]); +__d(function(e,i,n,o,r,a,t){r.exports={addPeople:{add:"Nooi uit",countryNotSupported:"Ons ondersteun nog nie di\xe9 bestemming nie.",countryReminder:"",disabled:"U kan nie mense nooi nie.",failedToAdd:"",footerText:"",loading:"",loadingNumber:"Valideer tans foonnommer",loadingPeople:"",noResults:"Geen soekresultate wat pas nie",noValidNumbers:"Gee asseblief \u2019n foonnommer",searchNumbers:"Voeg foonnommers by",searchPeople:"Soek mense",searchPeopleAndNumbers:"Soek mense of voeg hulle foonnommers by",telephone:"Telefoon: {{number}}",title:"Nooi mense na di\xe9 vergadering"},audioDevices:{bluetooth:"Bluetooth",headphones:"Oorfone",phone:"Foon",speaker:"Luidspreker"},audioOnly:{audioOnly:"Net klank"},calendarSync:{addMeetingURL:"Voeg \u2019n vergaderingskakel by",confirmAddLink:"Wil u \u2019n Jitsi-skakel by di\xe9 geleentheid voeg?",error:{appConfiguration:"",generic:"",notSignedIn:""},join:"Sluit aan",joinTooltip:"Sluit aan by die vergadering",nextMeeting:"volgende vergadering",noEvents:"Geen komende geleenthede is geskeduleer nie.",ongoingMeeting:"vergadering onderweg",permissionButton:"Open instellings",permissionMessage:"",refresh:"Verfris kalender",today:"Vandag"},chat:{error:"",messagebox:"",nickname:{popover:"Kies \u2019n bynaam",title:""},title:""},connectingOverlay:{joiningRoom:""},connection:{ATTACHED:"",AUTHENTICATING:"Verifieer",AUTHFAIL:"",CONNECTED:"Gekoppel",CONNECTING:"Koppel tans",CONNFAIL:"Koppeling het misluk",DISCONNECTED:"Ontkoppeld",DISCONNECTING:"Ontkoppel tans",ERROR:"Fout",RECONNECTING:"\u2019n Netwerkprobleem het voorgekom. Herkoppel tans..."},connectionindicator:{address:"Adres:",bandwidth:"Geraamde bandwydte:",bitrate:"Bistempo:",bridgeCount:"Aantal bedieners: ",connectedTo:"Gekoppel aan:",framerate:"Raampietempo:",less:"Wys minder",localaddress:"Plaaslike adres:",localaddress_plural:"Plaaslike adresse:",localport:"Plaaslike poort:",localport_plural:"Plaaslike poorte:",more:"Wys meer",packetloss:"Pakkies verloor:",quality:{good:"Goed",inactive:"Onaktief",lost:"",nonoptimal:"",poor:"Swak"},remoteaddress:"Afgele\xeb adres:",remoteaddress_plural:"Afgele\xeb adresse:",remoteport:"Afgele\xeb poort:",remoteport_plural:"Afgele\xeb poorte:",resolution:"Resolusie:",status:"Verbinding:",transport:"",transport_plural:"",turn:""},dateUtils:{earlier:"Vroe\xebr",today:"Vandag",yesterday:"Gister"},deepLinking:{appNotInstalled:"",description:"",descriptionWithoutWeb:"",downloadApp:"",launchWebButton:"",openApp:"",title:"",tryAgainButton:""},defaultLink:"bv. {{url}}",deviceError:{cameraError:"Toegang na u kamera het misluk",cameraPermission:"Fout met verkryging van kameratoestemming",microphoneError:"Toegang na u mikrofoon het misluk",microphonePermission:"Fout met verkryging van mikrofoontoestemming"},deviceSelection:{noPermission:"Toestemming nie gegee nie",previewUnavailable:"Voorskou nie beskikbaar nie",selectADevice:"Kies 'n toestel",testAudio:"Speel \u2019n toetsklank"},dialog:{accessibilityLabel:{liveStreaming:"Regstreekse stroom"},allow:"Laat toe",alreadySharedVideoMsg:"",alreadySharedVideoTitle:"Slegs een gedeelde video op \u2019n slag word toegelaat",applicationWindow:"Toepassingsvenster",Back:"Terug",cameraConstraintFailedError:"Die kamera voldoen nie aan sekere van die vereistes nie.",cameraNotFoundError:"Kamera is nie gevind nie.",cameraNotSendingData:"Ons kry nie toegang tot u kamera nie. Kontroleer of \u2019n ander toepassing di\xe9 toestel gebruik, kies asb. \u2019n ander toestel by die instellingskieslys of probeer om die toepassing op nuut te laai.",cameraNotSendingDataTitle:"Kan nie toegang tot kamera kry nie",cameraPermissionDeniedError:"U het nie toestemming gegee om u kamera te gebruik nie. U kan steeds by die konferensie aansluit, maar ander sal u nie kan sien nie. Gebruik die kameraknoppie in die adresbalk om dit reg te stel.",cameraUnknownError:"Kan weens onbekende rede nie die kamera gebruik nie.",cameraUnsupportedResolutionError:"Die kamera ondersteun nie die nodige videoresolusie nie.",Cancel:"Kanselleer",close:"Sluit",conferenceDisconnectMsg:"Kontroleer dalk die netwerkverbinding. Gaan oor {{seconds}} sekondes weer koppel...",conferenceDisconnectTitle:"Die verbinding is verbreek.",conferenceReloadMsg:"Ons probeer om dit reg te stel. Gaan herkoppel oor {{seconds}} sekondes...",conferenceReloadTitle:"Iets het ongelukkig skeefgeloop.",confirm:"Bevestig",confirmNo:"Nee",confirmYes:"Ja",connectError:"Oeps! Iets het skeefgeloop en ons kon nie aan die konferensie koppel nie.",connectErrorWithMsg:"Oeps! Iets het skeefgeloop en ons kon nie aan die konferensie koppel nie: {{msg}}",connecting:"Koppel tans",contactSupport:"Kontak ondersteuning",copy:"Kopieer",dismiss:"Weier",displayNameRequired:"",done:"Klaar",enterDisplayName:"",error:"Fout",externalInstallationMsg:"U moet ons uitbreiding vir werkskermdeling installeer.",externalInstallationTitle:"Uitbreiding is nodig",goToStore:"Gaan na die webwinkel",gracefulShutdown:"Ons diens is tans buite werking t.w.v. onderhoud. Probeer gerus weer later.",IamHost:"Ek is die gasheer",incorrectRoomLockPassword:"",incorrectPassword:"Verkeerde gebruikernaam of wagwoord",inlineInstallationMsg:"U moet ons uitbreiding vir werkskermdeling installeer.",inlineInstallExtension:"Installeer nou",internalError:"Oeps! Iets het skeefgeloop. Die volgende fout het voorgekom: {{error}}",internalErrorTitle:"Interne fout",kickMessage:"",kickParticipantButton:"",kickParticipantDialog:"",kickParticipantTitle:"",kickTitle:"",liveStreaming:"Regstreekse stroom",liveStreamingDisabledForGuestTooltip:"Gaste kan nie regstreekse strome begin nie.",liveStreamingDisabledTooltip:"Begin van regstreekse stroom gedeaktiveer.",lockMessage:"Kon nie die konferensie sluit nie.",lockRoom:"",lockTitle:"Sluit het misluk",logoutQuestion:"Wil u definitief afmeld en die konferensie stop?",logoutTitle:"Meld af",maxUsersLimitReached:"",maxUsersLimitReachedTitle:"",micConstraintFailedError:"Die mikrofoon voldoen nie aan sekere van die vereistes nie.",micNotFoundError:"Mikrofoon is nie gevind nie.",micNotSendingData:"",micNotSendingDataTitle:"",micPermissionDeniedError:"U het nie toestemming gegee om u mikrofoon te gebruik nie. U kan steeds by die konferensie aansluit, maar ander sal u nie kan hoor nie. Gebruik die kameraknoppie in die adresbalk om dit reg te stel.",micUnknownError:"Kan weens onbekende rede nie die mikrofoon gebruik nie.",muteParticipantBody:"U sal hulle nie kan ontdemp nie, maar hulle sal hulself enige tyd kan ontdemp.",muteParticipantButton:"Demp",muteParticipantDialog:"",muteParticipantTitle:"",Ok:"Regso",passwordLabel:"",passwordNotSupported:"Die instel van \u2019n vergaderingwagwoord word nie ondersteun nie.",passwordNotSupportedTitle:"",passwordRequired:"",popupError:"U blaaier blokkeer opspringers vanaf hierdie werf. Aktiveer opspringers in die blaaier se sekuriteitopsies en probeer weer.",popupErrorTitle:"Opspringer geblok",recording:"Neem tans op",recordingDisabledForGuestTooltip:"Gaste kan nie opnames begin nie.",recordingDisabledTooltip:"Begin van opname gedeaktiveer.",rejoinNow:"Sluit nou weer aan",remoteControlAllowedMessage:"",remoteControlDeniedMessage:"",remoteControlErrorMessage:"",remoteControlRequestMessage:"",remoteControlShareScreenWarning:"",remoteControlStopMessage:"",remoteControlTitle:"",Remove:"Verwyder",removePassword:"",removeSharedVideoMsg:"Wil u definitief u gedeelde video verwyder?",removeSharedVideoTitle:"Verwyder gedeelde video",reservationError:"",reservationErrorMsg:"Foutkode: {{code}}, boodskap: {{msg}}",retry:"Herprobeer",screenSharingFailedToInstall:"Oeps! Die uitbreiding vir skermdeling kon nie installeer nie.",screenSharingFailedToInstallTitle:"Uitbreiding vir skermdeling kon nie installeer nie",screenSharingFirefoxPermissionDeniedError:"Iets het skeefgeloop toe ons die skerm probeer deel het. Maak seker dat ons dei toestemming gegee word om dit te doen. ",screenSharingFirefoxPermissionDeniedTitle:"Oeps! Ons kon nie skermdeling begin nie!",screenSharingPermissionDeniedError:"",serviceUnavailable:"Diens nie beskikbaar nie",sessTerminated:"Oproep gestaak",Share:"Deel",shareVideoLinkError:"Gee asb. \u2019n korrekte YouTube-skakel.",shareVideoTitle:"Deel \u2019n video",shareYourScreen:"Deel u skerm",shareYourScreenDisabled:"Skermdeling gedeaktiveer.",shareYourScreenDisabledForGuest:"Gaste kan nie skerms deel nie.",startLiveStreaming:"Begin regstreekse stroom",startRecording:"Begin opname",startRemoteControlErrorMessage:"",stopLiveStreaming:"Stop regstreekse stroom",stopRecording:"Stop opname",stopRecordingWarning:"Wil u definitief die opname stop?",stopStreamingWarning:"Wil u definitief die regstreekse stroom stop?",streamKey:"Sleutel vir regstreekse stroom",Submit:"Dien in",thankYou:"Dankie dat u {{appName}} gebruik!",token:"",tokenAuthFailed:"Jammer! U mag nie by di\xe9 oproep aansluit nie.",tokenAuthFailedTitle:"",transcribing:"Transkribering",unlockRoom:"",userPassword:"gebruikerwagwoord",WaitForHostMsg:"",WaitForHostMsgWOk:"",WaitingForHost:"Wag tans vir die gasheer ...",Yes:"Ja",yourEntireScreen:"U hele skerm"},dialOut:{statusMessage:"is nou {{status}}"},feedback:{average:"Gemiddeld",bad:"Sleg",detailsLabel:"Vertel ons meer.",good:"Goed",rateExperience:"",veryBad:"Baie sleg",veryGood:"Baie goed"},incomingCall:{answer:"Antwoord",audioCallTitle:"Inkomende oproep",decline:"Weier",productLabel:"vanaf Jitsi Meet",videoCallTitle:"Inkomende video-oproep"},info:{accessibilityLabel:"Wys inligting",addPassword:"",cancelPassword:"",conferenceURL:"Skakel:",country:"Land",dialANumber:"",dialInConferenceID:"PIN:",dialInNotSupported:"Jammer. Inbel word nie tans ondersteun nie.",dialInNumber:"Inbel:",dialInSummaryError:"",dialInTollFree:"",genericError:"Oeps! Iets het skeefgeloop.",inviteLiveStream:"Om die regstreekse stroom van di\xe9 vergadering te sien, klik di\xe9 skakel: {{url}}",invitePhone:"",invitePhoneAlternatives:"",inviteURLFirstPartGeneral:"",inviteURLFirstPartPersonal:"",inviteURLSecondPart:"",liveStreamURL:"Regstreekse stroom:",moreNumbers:"Meer nommers",noNumbers:"Geen inbelnommers.",noPassword:"Geen",noRoom:"Geen kamer is gegee om na in te bel nie.",numbers:"Inbelnommers",password:"",title:"Deel",tooltip:"Deelskakel en inbelinligting vir di\xe9 vergadering",label:""},inviteDialog:{alertText:"",header:"Nooi uit",searchCallOnlyPlaceholder:"",searchPeopleOnlyPlaceholder:"",searchPlaceholder:"",send:""},inlineDialogFailure:{msg:"Ons het gestruikel.",retry:"Probeer weer",support:"Ondersteuning",supportMsg:"Indien dit aanhou, maak kontak met"},keyboardShortcuts:{focusLocal:"Fokus op u video",focusRemote:"Fokus op \u2019n ander persoon se video",fullScreen:"Bekyk of verlaat volskerm",keyboardShortcuts:"Sleutelbordkortpaaie",localRecording:"Wys of versteek kontroles vir plaaslike opname",mute:"Demp of ontdemp jou mikrofoon",pushToTalk:"Druk om te praat",raiseHand:"Steek hand op of laat sak hom",showSpeakerStats:"Wys sprekerstatistiek",toggleChat:"Maak gesels oop of toe",toggleFilmstrip:"Wys of versteek duimnaels vir video\u2019s",toggleScreensharing:"Wissel tussen kamera- en skermdeling",toggleShortcuts:"Wys of versteek sleutelbordkortpaaie",videoMute:"Begin of stop u kamera"},liveStreaming:{busy:"",busyTitle:"Alle opnemers is tans besig",changeSignIn:"Wissel rekeninge.",choose:"Kies \u2019n regstreekse stroom",chooseCTA:"Kies \u2019n stroomopsie. U is tans aangemeld as {{email}}.",enterStreamKey:"Gee u sleutel vir regstreekse stroom by YouTube hier.",error:"Kon nie regstreeks stroom nie. Probeer gerus weer.",errorAPI:"\u2019n Fout het voorgekom tydens toegang tot u YouTube-uitsendings. Probeer om weer aan te meld.",errorLiveStreamNotEnabled:"Regstreekse stroom is nie geaktiveer op {{email}} nie. Aktiveer asb. regstreekse strome of meld aan met \u2019n rekening met regstreekse strome geaktiveer.",expandedOff:"Die regstreekse stroom het gestop",expandedOn:"Die vergadering word tans gestroom na YouTube.",expandedPending:"Die regstreekse stroom begin tans...",failedToStart:"Regstreekse stroom kon nie begin nie",getStreamKeyManually:"",invalidStreamKey:"",off:"Regstreekse stroom het gestop",on:"Regstreekse stroom",pending:"Begin tans regstreekse stroom...",serviceName:"Regstreekse stroomdiens",signedInAs:"U is tans aangemeld as:",signIn:"Meld aan met Google",signInCTA:"Meld aan of gee u sleutel vir regstreekse stroom vanaf YouTube.",signOut:"Meld af",start:"Begin \u2019n regstreekse stroom",streamIdHelp:"Wat\u2019s di\xe9?",unavailableTitle:"Regstreekse strome nie beskikbaar nie"},localRecording:{clientState:{off:"Af",on:"Aan",unknown:"Onbekend"},dialogTitle:"Kontroles vir plaaslike opname",duration:"Duur",durationNA:"",encoding:"Enkodering",label:"",labelToolTip:"",localRecording:"Plaaslike opname",me:"Ek",messages:{engaged:"",finished:"",finishedModerator:"",notModerator:"U is nie die moderator nie. U kan nie \u2019n plaaslike opname begin of stop nie."},moderator:"Moderator",no:"Nee",participant:"Deelnemer",participantStats:"Deelnemerstatistiek",sessionToken:"",start:"Begin opname",stop:"Stop opname",yes:"Ja"},lockRoomPassword:"Wagwoord",lockRoomPasswordUppercase:"Wagwoord",me:"ek",notify:{connectedOneMember:"",connectedThreePlusMembers:"",connectedTwoMembers:"",disconnected:"ontkoppel",focus:"",focusFail:"",grantedTo:"{{to}} is nou moderator!",invitedOneMember:"",invitedThreePlusMembers:"",invitedTwoMembers:"",kickParticipant:"",me:"Ek",moderator:"U is ou moderator!",muted:"U het die gesprek gedemp begin.",mutedTitle:"U is gedemp!",mutedRemotelyTitle:"",mutedRemotelyDescription:"",passwordRemovedRemotely:"",passwordSetRemotely:"",raisedHand:"",somebody:"Iemand",startSilentTitle:"",startSilentDescription:"",suboptimalExperienceDescription:"Gits... ons is bevrees u ervaring met {{appName}} gaan nie so goed wees hier nie. Ons soek maniere om dit die hoof te bied, maar probeer intussen een van die volledig ondersteunde blaaiers.",suboptimalExperienceTitle:"Blaaierwaarskuwing",unmute:"",newDeviceCameraTitle:"",newDeviceAudioTitle:"",newDeviceAction:""},passwordSetRemotely:"",passwordDigitsOnly:"",poweredby:"aangedryf deur",presenceStatus:{busy:"Besig",calling:"Bel tans...",connected:"Gekoppel",connecting:"Koppel tans...",connecting2:"Koppel tans*...",disconnected:"Ontkoppeld",expired:"Verval",ignored:"Ge\xefgnoreer",initializingCall:"Inisialiseer tans oproep...",invited:"Uitgenooi",rejected:"Geweier",ringing:"Lui tans..."},profile:{setDisplayNameLabel:"Stel u vertoonnaam",setEmailInput:"Gee e-posadres",setEmailLabel:"Stel u gravatar-e-posadres",title:"Profiel"},recording:{authDropboxText:"Laai op na Dropbox",availableSpace:"Beskikbare spasie: {{spaceLeft}} MB (ongeveer {{duration}} minute se opname)",beta:"",busy:"",busyTitle:"Alle opnemers is tans besig",error:"Opname het misluk. Probeer gerus weer.",expandedOff:"Opname het gestop",expandedOn:"Die vergadering word tans opgeneem.",expandedPending:"Opname word begin...",failedToStart:"Kon nie begin opneem nie",fileSharingdescription:"",live:"",loggedIn:"Aangemeld as {{name}}",off:"Opname gestop",on:"Neem tans op",pending:"Berei voor om vergadering op te neem...",rec:"",serviceDescription:"",serviceName:"Opneemdiens",signIn:"meld aan",signOut:"Meld af",unavailable:"",unavailableTitle:""},sectionList:{pullToRefresh:""},settings:{calendar:{about:"",disconnect:"Ontkoppel",microsoftSignIn:"Meld aan met Microsoft",signedIn:"",title:"Kalender"},devices:"Toestelle",followMe:"Almal volg my",language:"Taal",loggedIn:"Aangemeld as {{name}}",moderator:"Moderator",more:"Meer",name:"Naam",noDevice:"Geen",selectAudioOutput:"Klankafvoer",selectCamera:"Kamera",selectMic:"Mikrofoon",startAudioMuted:"Almal begin gedemp",startVideoMuted:"Almal begin versteek",title:"Instellings"},settingsView:{alertOk:"Regso",alertTitle:"Waarskuwing",alertURLText:"Die gegewe bediener-URL is ongeldig",buildInfoSection:"",conferenceSection:"Konferensie",displayName:"Vertoonnaam",email:"E-pos",header:"Instellings",profileSection:"Profiel",serverURL:"Bediener-URL",startWithAudioMuted:"Begin met klank gedemp",startWithVideoMuted:"Begin met video gedemp",version:""},share:{dialInfoText:"",mainText:"Klik die volgende skakel om by die vergadering aan te sluit:\n{{roomUrl}}"},speaker:"Luidspreker",speakerStats:{hours:"{{count}}h",minutes:"{{count}}m",name:"Naam",seconds:"{{count}}s",speakerStats:"Sprekerstatistiek",speakerTime:"Sprekertyd"},startupoverlay:{policyText:"",title:"{{app}} benodig u mikrofoon en kamera."},suspendedoverlay:{rejoinKeyTitle:"Sluit weer aan",text:"Druk die Sluit weer aan-knoppie om te herkoppel.",title:"U video-oproep is onderbreek omdat die rekenaar gaan slaap het."},toolbar:{accessibilityLabel:{audioOnly:"Wissel Net klank",audioRoute:"Kies die klanktoestel",callQuality:"",cc:"Wissel onderskrifte",chat:"Wissel geselsvenster",document:"Wissel gedeelde dokument",feedback:"Laat terugvoer",fullScreen:"Wissel volskerm",hangup:"Verlaat die oproep",invite:"Nooi mense",kick:"",localRecording:"Wissel kontroles vir plaaslike opname",lockRoom:"",moreActions:"Wissel kieslys vir meer aksies",moreActionsMenu:"Kieslys vir meer aksies",mute:"",pip:"Wissel Prent-in-Prent-modus",profile:"Redigeer u profiel",raiseHand:"Wissel handopsteek",recording:"Wissel opname",remoteMute:"",Settings:"Wissel instellings",sharedvideo:"Wissel Youtube-videodeling",shareRoom:"Nooi iemand",shareYourScreen:"Wissel skermdeling",shortcuts:"Wissel kortpaaie",show:"",speakerStats:"Wissel sprekerstatistiek",tileView:"Wissel te\xeblaansig",toggleCamera:"Wissel kamera",videomute:"",videoblur:""},addPeople:"Voeg mense by die oproep",audioOnlyOff:"Deaktiveer Net klank-modus",audioOnlyOn:"Deaktiveer Net klank-modus",audioRoute:"Kies die klanktoestel",authenticate:"Verifieer",callQuality:"Bestuur oproepkwaliteit",chat:"Open / sluit gesels",closeChat:"",documentClose:"Sluit gedeelde dokument",documentOpen:"Open gedeelde dokument",enterFullScreen:"Volskermaansig",enterTileView:"",exitFullScreen:"Verlaat volskerm",exitTileView:"",feedback:"Laat terugvoer",hangup:"Verlaat",invite:"Nooi mense",login:"Meld aan",logout:"Meld af",lowerYourHand:"",moreActions:"Meer aksies",mute:"Demp / ontdemp",openChat:"",pip:"Betree Prent-in-Prent-modus",profile:"Redigeer u profiel",raiseHand:"Lig / laat sak u hand",raiseYourHand:"",Settings:"Instellings",sharedvideo:"Deel \u2019n YouTube-video",shareRoom:"Nooi iemand",shortcuts:"Sien kortpaaie",speakerStats:"Sprekerstatistiek",startScreenSharing:"",startSubtitles:"",stopScreenSharing:"",stopSubtitles:"",stopSharedVideo:"Stop YouTube-video",talkWhileMutedPopup:"Besig om te praat? U is gedemp.",tileViewToggle:"Wissel te\xeblaansig",toggleCamera:"Wissel kamera",videomute:"Begin / stop kamera",startvideoblur:"",stopvideoblur:""},transcribing:{ccButtonTooltip:"",error:"Opname het misluk. Probeer gerus weer.",expandedLabel:"",failedToStart:"",labelToolTip:"Die vergadering word getranskribeer",off:"",pending:"Berei tans voor om die vergadering te transkribeer...",start:"",stop:"",tr:""},userMedia:{androidGrantPermissions:"Kies Allow wanneer die blaaier vir toestemming vra.",chromeGrantPermissions:"Kies Allow wanneer die blaaier vir toestemming vra.",edgeGrantPermissions:"Kies Yes wanneer die blaaier vir toestemming vra.",electronGrantPermissions:"Gee asb. toestemming vir die gebruik van u kamera en mikrofoon",firefoxGrantPermissions:"Kies Deel gekose toestel wanneer die blaaier vir toestemming vra.",iexplorerGrantPermissions:"Kies OK wanneer die blaaier vir toestemming vra.",nwjsGrantPermissions:"Gee asb. toestemming vir die gebruik van u kamera en mikrofoon",operaGrantPermissions:"Kies Allow wanneer die blaaier vir toestemming vra.","react-nativeGrantPermissions":"Kies Allow wanneer die blaaier vir toestemming vra.",safariGrantPermissions:"Kies OK wanneer die blaaier vir toestemming vra."},videoSIPGW:{busy:"Ons probeer tans hulpbronne vry te stel. Probeer gerus weer oor \u2019n paar minute.",busyTitle:"Die Kamerdiens is tans besig",errorAlreadyInvited:"{{displayName}} is reeds genooi",errorInvite:"Konferensie is nog nie gestig nie. Probeer gerus weer later.",errorInviteFailed:"Ons werk aan \u2019n oplossing vir die probleem. Probeer gerus weer later.",errorInviteFailedTitle:"Kon nie {{displayName}} nooi nie",errorInviteTitle:"",pending:"{{displayName}} is genooi"},videoStatus:{audioOnly:"",audioOnlyExpanded:"U is in Net klank-modus. Di\xe9 modus spaar bandwydte maar u sal nie video\u2019s van ander sien nie.",callQuality:"",hd:"HD",highDefinition:"Ho\xebdefinisie",labelTooiltipNoVideo:"Geen video",labelTooltipAudioOnly:"Net klank-modus geaktiveer",ld:"LD",lowDefinition:"Laedefinisie",onlyAudioAvailable:"Net klank is beskikbaar",onlyAudioSupported:"Op di\xe9 blaaier ondersteun ons slegs klank.",p2pEnabled:"",p2pVideoQualityDescription:"",recHighDefinitionOnly:"",sd:"SD",standardDefinition:"Standaarddefinisie"},videothumbnail:{domute:"Demp",flip:"Swaai om",kick:"Skop uit",moderator:"Moderator",mute:"",muted:"Gedemp",remoteControl:"",show:"",videomute:""},welcomepage:{accessibilityLabel:{join:"Raak om aan te sluit",roomname:"Gee kamernaam"},appDescription:"Hou gerus \u2019n videogesprek met die hele span. Om die waarheid te s\xea, nooi sommer almal. {{app}} is \u2019n 100% oopbronoplossing vir ge\xebnkripteerde videokonferensies wat mens heeldag, elke dag gratis kan geniet \u2014 geen rekening nodig nie.",audioVideoSwitch:{audio:"Stem",video:"Video"},calendar:"Kalender",connectCalendarButton:"Koppel u kalender",connectCalendarText:"",enterRoomTitle:"Begin \u2019n nuwe vergadering",go:"GAAN",join:"SLUIT AAN",info:"",privacy:"Privaatheid",recentList:"Onlangs",recentListDelete:"Skrap",recentListEmpty:"Die lys van onlangse gesprekke is leeg. Gesels met u span en al u onlangse gesprekke sal hier wys.",reducedUIText:"",roomname:"Gee kamernaam",roomnameHint:"Gee die naam of URL van die kamer waar u wil aansluit. Dink gerus enige naam uit. Laat weet net die mense wat u ontmoet wat dit is sodat hulle die selfde naam gee.",sendFeedback:"Stuur terugvoer",terms:"Voorwaardes",title:"Veilige en volledig gratis videokonferensies propvol funksionaliteit"}}},655,[]); +__d(function(e,r,f,h,n,o,s){n.exports={en:"\u0410\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438",af:"\u0410\u0444\u0440\u0438\u043a\u0430\u043d\u0441",bg:"\u0411\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438",ca:"\u041a\u0430\u0442\u0430\u043b\u043e\u043d\u0441\u043a\u0438",cs:"\u0427\u0435\u0448\u043a\u0438",de:"\u041d\u0435\u043c\u0441\u043a\u0438",el:"\u0413\u0440\u044a\u0446\u043a\u0438",enGB:"\u0410\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438 (\u0412\u0435\u043b\u0438\u043a\u043e\u0431\u0440\u0438\u0442\u0430\u043d\u0438\u044f)",eo:"\u0415\u0441\u043f\u0435\u0440\u0430\u043d\u0442\u043e",es:"\u0418\u0441\u043f\u0430\u043d\u0441\u043a\u0438",esUS:"\u0418\u0441\u043f\u0430\u043d\u0441\u043a\u0438 (\u041b\u0430\u0442\u0438\u043d\u0441\u043a\u0430 \u0410\u043c\u0435\u0440\u0438\u043a\u0430)",fi:"\u0424\u0438\u043d\u0441\u043a\u0438",fr:"\u0424\u0440\u0435\u043d\u0441\u043a\u0438",frCA:"\u0424\u0440\u0435\u043d\u0441\u043a\u0438 (\u041a\u0430\u043d\u0430\u0434\u0430)",hr:"\u0425\u044a\u0440\u0432\u0430\u0442\u0441\u043a\u0438",hu:"\u0423\u043d\u0433\u0430\u0440\u0441\u043a\u0438",hy:"\u0410\u0440\u043c\u0435\u043d\u0441\u043a\u0438",it:"\u0418\u0442\u0430\u043b\u0438\u0430\u043d\u0441\u043a\u0438",ja:"\u042f\u043f\u043e\u043d\u0441\u043a\u0438",ko:"\u041a\u043e\u0440\u0435\u0439\u0441\u043a\u0438",nl:"\u041d\u0438\u0434\u0435\u0440\u043b\u0430\u043d\u0434\u0441\u043a\u0438",oc:"\u041e\u043a\u0441\u0438\u0442\u0430\u043d\u0441\u043a\u0438",pl:"\u041f\u043e\u043b\u0441\u043a\u0438",ptBR:"\u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u0441\u043a\u0438 (\u0411\u0440\u0430\u0437\u0438\u043b\u0438\u044f)",ru:"\u0420\u0443\u0441\u043a\u0438",sv:"\u0428\u0432\u0435\u0434\u0441\u043a\u0438",tr:"\u0422\u0443\u0440\u0441\u043a\u0438",vi:"\u0412\u0438\u0435\u0442\u043d\u0430\u043c\u0441\u043a\u0438",zhCN:"\u041a\u0438\u0442\u0430\u0439\u0441\u043a\u0438 (\u041a\u0438\u0442\u0430\u0439)",zhTW:"\u0422\u0430\u0439\u0432\u0430\u043d\u0441\u043a\u0438"}},656,[]); +__d(function(e,o,i,r,t,n,a){t.exports={addPeople:{add:"\u041f\u043e\u043a\u0430\u043d\u0438",countryNotSupported:"\u0416\u0435\u043b\u0430\u043d\u0430\u0442\u0430 \u0434\u0435\u0441\u0442\u0438\u043d\u0430\u0446\u0438\u044f \u043d\u0435 \u0441\u0435 \u043f\u043e\u0434\u0434\u044a\u0440\u0436\u0430.",countryReminder:"\u041c\u0435\u0436\u0434\u0443\u043d\u0430\u0440\u043e\u0434\u043d\u043e \u043e\u0431\u0430\u0436\u0434\u0430\u043d\u0435? \u0417\u0430\u043f\u043e\u0447\u043d\u0435\u0442\u0435 \u043d\u043e\u043c\u0435\u0440\u0430 \u0441 \u043c\u0435\u0436\u0434\u0443\u043d\u0430\u0440\u043e\u0434\u043d\u0438\u044f\u0442 \u043a\u043e\u0434!",disabled:"\u041d\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0434\u0430 \u043a\u0430\u043d\u0438\u0442\u0435 \u0445\u043e\u0440\u0430.",failedToAdd:"\u041d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u0446\u0438",footerText:"\u0418\u0437\u0445\u043e\u0434\u044f\u0449\u0438\u0442\u0435 \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440\u0438 \u043d\u0435 \u0441\u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438.",loading:"\u0422\u044a\u0440\u0441\u0435\u043d\u0435 \u043d\u0430 \u0445\u043e\u0440\u0430 \u0438 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u043d\u0438 \u043d\u043e\u043c\u0435\u0440\u0430",loadingNumber:"\u0412\u0430\u043b\u0438\u0434\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043d\u043e\u043c\u0435\u0440\u0430",loadingPeople:"\u0422\u044a\u0440\u0441\u0435\u043d\u0435 \u043d\u0430 \u0445\u043e\u0440\u0430",noResults:"\u041d\u044f\u043c\u0430 \u0440\u0435\u0437\u0443\u043b\u0442\u0430\u0442\u0438",noValidNumbers:"\u041c\u043e\u043b\u044f \u0432\u044a\u0432\u0435\u0434\u0435\u0442\u0435 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0435\u043d \u043d\u043e\u043c\u0435\u0440",searchNumbers:"\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u043d\u043e\u043c\u0435\u0440\u0430",searchPeople:"\u0422\u044a\u0440\u0441\u0435\u043d\u0435 \u043d\u0430 \u0445\u043e\u0440\u0430",searchPeopleAndNumbers:"\u0422\u044a\u0440\u0441\u0435\u043d\u0435 \u043d\u0430 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u0446\u0438 \u0438\u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u0441 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0438 \u043d\u043e\u043c\u0435\u0440\u0430",telephone:"\u0422\u0435\u043b\u0435\u0444\u043e\u043d: {{number}}",title:"\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u0446\u0438 \u0432 \u0441\u0440\u0435\u0449\u0430\u0442\u0430"},audioDevices:{bluetooth:"Bluetooth",headphones:"\u0421\u043b\u0443\u0448\u0430\u043b\u043a\u0438",phone:"\u0422\u0435\u043b\u0435\u0444\u043e\u043d",speaker:"\u0413\u043e\u0432\u043e\u0440\u0435\u0449",none:"\u041d\u044f\u043c\u0430 \u043d\u0430\u043b\u0438\u0447\u043d\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0437\u0430 \u0437\u0432\u0443\u043a"},audioOnly:{audioOnly:"\u041d\u0438\u0441\u044a\u043a \u0434\u0435\u0431\u0438\u0442"},calendarSync:{addMeetingURL:"\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u0432\u0440\u044a\u0437\u043a\u0430 \u0437\u0430 \u0441\u0440\u0435\u0449\u0430",confirmAddLink:"\u0418\u0441\u043a\u0430\u0442\u0435 \u043b\u0438 \u0434\u0430 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u0435 \u0432\u0440\u044a\u0437\u043a\u0430 \u043a\u044a\u043c \u0442\u043e\u0432\u0430 \u0441\u044a\u0431\u0438\u0442\u0438\u0435?",error:{appConfiguration:"\u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f\u0442\u0430 \u0441 \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u0430 \u043d\u0435 \u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u0430.",generic:"\u0413\u0440\u0435\u0448\u043a\u0430, \u043c\u043e\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0442\u0430 \u0437\u0430 \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u0430 \u0438\u043b\u0438 \u0433\u043e \u043e\u0431\u043d\u043e\u0432\u0435\u0442\u0435.",notSignedIn:"\u0413\u0440\u0435\u0448\u043a\u0430 \u043f\u0440\u0438 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0437\u0430 \u0438\u0437\u0442\u0435\u0433\u043b\u044f\u043d\u0435 \u043d\u0430 \u0441\u044a\u0431\u0438\u0442\u0438\u044f. \u041c\u043e\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438\u0442\u0435 \u043d\u0430 \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u0430 \u0438 \u043e\u043f\u0438\u0442\u0430\u0439\u0442\u0435 \u043e\u0442\u043d\u043e\u0432\u043e."},join:"\u0412\u043b\u0438\u0437\u0430\u043d\u0435",joinTooltip:"\u0412\u043b\u0438\u0437\u0430\u043d\u0435 \u0432 \u0441\u0440\u0435\u0449\u0430\u0442\u0430",nextMeeting:"\u0441\u043b\u0435\u0434\u0432\u0430\u0449\u0430 \u0441\u0440\u0435\u0449\u0430",noEvents:"\u041d\u044f\u043c\u0430 \u043d\u0430\u0441\u0440\u043e\u0447\u0435\u043d\u0438 \u0431\u044a\u0434\u0435\u0449\u0438 \u0441\u044a\u0431\u0438\u0442\u0438\u044f.",ongoingMeeting:"\u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0430 \u0441\u0440\u0435\u0449\u0430",permissionButton:"\u041e\u0442\u0432\u0430\u0440\u044f\u043d\u0435 \u043d\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438",permissionMessage:"\u0417\u0430 \u043f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0441\u0440\u0435\u0449\u0438\u0442\u0435 \u0432\u0438 \u0435 \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0435\u043d\u0438\u0435 \u0437\u0430 \u043f\u043e\u043b\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u0430.",refresh:"\u041e\u0431\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u0430",today:"\u0414\u043d\u0435\u0441"},chat:{error:"\u0413\u0440\u0435\u0448\u043a\u0430: \u0432\u0430\u0448\u0435\u0442\u043e \u0441\u044a\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043d\u0435 \u0431\u0435 \u0438\u0437\u043f\u0440\u0430\u0442\u0435\u043d\u043e, \u043f\u0440\u0430\u0434\u0438: {{error}}",fieldPlaceHolder:"\u0412\u044a\u0432\u0435\u0434\u0435\u0442\u0435 \u0441\u044a\u043e\u0431\u0449\u0435\u043d\u0438\u0435\u0442\u043e",messagebox:"\u0412\u044a\u0432\u0435\u0434\u0435\u0442\u0435 \u0441\u044a\u043e\u0431\u0449\u0435\u043d\u0438\u0435",messageTo:"\u041b\u0438\u0447\u043d\u043e \u0441\u044a\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0434\u043e {{recipient}}",noMessagesMessage:"\u0412\u0441\u0435 \u043e\u0449\u0435 \u043d\u044f\u043c\u0430 \u0441\u044a\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0432 \u0441\u0440\u0435\u0449\u0430\u0442\u0430. \u0417\u0430\u043f\u043e\u0447\u043d\u0435\u0442\u0435 \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440 \u0442\u0443\u043a!",nickname:{popover:"\u0418\u0437\u0431\u043e\u0440 \u043d\u0430 \u0438\u043c\u0435",title:"\u0412\u044a\u0432\u0435\u0434\u0435\u0442\u0435 \u0438\u043c\u0435 \u0437\u0430 \u0434\u0430 \u043e\u0431\u043c\u0435\u043d\u044f\u0442\u0435 \u0441\u044a\u043e\u0431\u0449\u0435\u043d\u0438\u044f"},privateNotice:"\u041b\u0438\u0447\u043d\u043e \u0441\u044a\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0434\u043e {{recipient}}",title:"\u0422\u0435\u043a\u0441\u0442\u043e\u0432\u0438 \u0441\u044a\u043e\u0431\u0449\u0435\u043d\u0438\u044f",you:"\u0432\u0438\u0435"},connectingOverlay:{joiningRoom:"\u0421\u0432\u044a\u0440\u0437\u0432\u0430\u043d\u0435 \u0441 \u0432\u0430\u0448\u0430\u0442\u0430 \u0441\u0440\u0435\u0449\u0430..."},connection:{ATTACHED:"\u041f\u0440\u0438\u043a\u0440\u0435\u043f\u0435\u043d",AUTHENTICATING:"\u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f",AUTHFAIL:"\u041d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u0430 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f",CONNECTED:"\u0421\u0432\u044a\u0440\u0437\u0430\u043d",CONNECTING:"\u0421\u0432\u044a\u0440\u0437\u0432\u0430\u043d\u0435",CONNFAIL:"\u0412\u0440\u044a\u0437\u043a\u0430\u0442\u0430 \u0435 \u043d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u0430",DISCONNECTED:"\u0418\u0437\u043a\u043b\u044e\u0447\u0435\u043d",DISCONNECTING:"\u041f\u0440\u0435\u043a\u044a\u0441\u0432\u0430\u043d\u0435 \u043d\u0430 \u0432\u0440\u044a\u0437\u043a\u0430\u0442\u0430",ERROR:"\u0413\u0440\u0435\u0448\u043a\u0430",RECONNECTING:"\u041f\u043e\u044f\u0432\u0438 \u0441\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 \u043c\u0440\u0435\u0436\u0430\u0442\u0430. \u0412\u0440\u044a\u0437\u0432\u0430\u043c\u0435 \u0441\u0435 \u043d\u0430\u043d\u043e\u0432\u043e...",LOW_BANDWIDTH:"\u0412\u0438\u0435\u043e\u0442\u043e \u043d\u0430 {{displayName}} \u0431\u0435\u0448\u0435 \u0438\u0437\u043a\u043b\u044e\u0447\u0435\u043d\u043e \u043f\u043e\u0440\u0430\u0434\u0438 \u0441\u043b\u0430\u0431\u0430 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u0432\u0440\u044a\u0437\u043a\u0430",GOT_SESSION_ID:"\u041e\u0442\u0432\u0430\u0440\u044f\u043d\u0435 \u043d\u0430 \u0441\u0435\u0441\u0438\u044f\u0442\u0430...\u0417\u0430\u0432\u044a\u0440\u0448\u0438",GET_SESSION_ID_ERROR:"\u0413\u0440\u0435\u0448\u043a\u0430 \u043f\u0440\u0438 \u043e\u0442\u0432\u0430\u0440\u044f\u043d\u0435 \u043d\u0430 \u0441\u0435\u0441\u0438\u044f\u0442\u0430: {{code}}",FETCH_SESSION_ID:"\u041e\u0442\u0432\u0430\u0440\u044f\u043d\u0435 \u043d\u0430 \u0441\u0435\u0441\u0438\u044f..."},connectionindicator:{address:"\u0410\u0434\u0440\u0435\u0441:",bandwidth:"\u041f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u043c\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442:",bitrate:"\u0421\u043a\u043e\u0440\u043e\u0441\u0442:",bridgeCount:"\u0411\u0440\u043e\u0439 \u0441\u044a\u0440\u0432\u044a\u0440\u0438: ",connectedTo:"\u0421\u0432\u044a\u0440\u0437\u0430\u043d \u043a\u044a\u043c:",framerate:"\u041a\u0430\u0434\u0440\u0438 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0430:",less:"\u0421\u043a\u0440\u0438\u0432\u0430\u043d\u0435",localaddress:"\u041b\u043e\u043a\u0430\u043b\u0435\u043d \u0430\u0434\u0440\u0435\u0441:",localaddress_plural:"\u041b\u043e\u043a\u0430\u043b\u043d\u0438 \u0430\u0434\u0440\u0435\u0441\u0438:",localport:"\u041b\u043e\u043a\u0430\u043b\u0435\u043d \u043f\u043e\u0440\u0442:",localport_plural:"\u041b\u043e\u043a\u0430\u043b\u043d\u0438 \u043f\u043e\u0440\u0442\u043e\u0432\u0435:",more:"\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435",packetloss:"\u0417\u0430\u0433\u0443\u0431\u0430 \u043d\u0430 \u043f\u0430\u043a\u0435\u0442\u0438:",quality:{good:"\u0414\u043e\u0431\u0440\u0430",inactive:"\u041d\u044f\u043c\u0430",lost:"\u0420\u0430\u0437\u043a\u0430\u0447\u0435\u043d\u0430",nonoptimal:"\u041d\u0435\u043e\u043f\u0442\u0438\u043c\u0430\u043b\u043d\u0430",poor:"\u041b\u043e\u0448\u0430"},remoteaddress:"\u041e\u0442\u0434\u0430\u043b\u0435\u0447\u0435\u043d \u0430\u0434\u0440\u0435\u0441:",remoteaddress_plural:"\u041e\u0442\u0434\u0430\u043b\u0435\u0447\u0435\u043d\u0438 \u0430\u0434\u0440\u0435\u0441\u0438:",remoteport:"\u041e\u0442\u0434\u0430\u043b\u0435\u0447\u0435\u043d \u043f\u043e\u0440\u0442:",remoteport_plural:"\u041e\u0442\u0434\u0430\u043b\u0435\u0447\u0435\u043d\u0438 \u043f\u043e\u0440\u0442\u043e\u0432\u0435:",resolution:"\u0420\u0435\u0437\u043e\u043b\u044e\u0446\u0438\u044f:",status:"\u0412\u0440\u044a\u0437\u043a\u0430:",transport:"\u0422\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442:",transport_plural:"\u0422\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u0438:"},dateUtils:{earlier:"\u041f\u043e-\u0440\u0430\u043d\u043e",today:"\u0414\u043d\u0435\u0441",yesterday:"\u0412\u0447\u0435\u0440\u0430"},deepLinking:{appNotInstalled:"\u0418\u043c\u0430\u0442\u0435 \u043d\u0443\u0436\u0434\u0430 \u043e\u0442 \u043c\u043e\u0431\u0438\u043b\u043d\u043e\u0442\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 {{app}} \u0437\u0430 \u0432\u043b\u0438\u0437\u0430\u043d\u0435 \u0432 \u0442\u0430\u0437\u0438 \u0441\u0440\u0435\u0449\u0430 \u043e\u0442 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430.",description:"\u041d\u0438\u0449\u043e \u043d\u0435 \u0441\u0435 \u0441\u043b\u0443\u0447\u0432\u0430? \u041e\u043f\u0438\u0442\u0430\u0445\u043c\u0435 \u0441\u0435 \u0434\u0430 \u0437\u0430\u0440\u0435\u0434\u0438\u043c \u0441\u0440\u0435\u0449\u0430\u0442\u0430 \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u0442\u043e {{app}}. \u041f\u0440\u043e\u0431\u0432\u0430\u0439\u0442\u0435 \u043e\u0442\u043d\u043e\u0432\u043e \u0438\u043b\u0438 \u0432\u043b\u0435\u0437\u0442\u0435 \u0447\u0440\u0435\u0437 \u0443\u0435\u0431 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u0442\u043e {{app}}.",descriptionWithoutWeb:"\u041d\u0438\u0449\u043e \u043d\u0435 \u0441\u0435 \u0441\u043b\u0443\u0447\u0432\u0430? \u041e\u043f\u0438\u0442\u0430\u0445\u043c\u0435 \u0441\u0435 \u0434\u0430 \u0437\u0430\u0440\u0435\u0434\u0438\u043c \u0441\u0440\u0435\u0449\u0430\u0442\u0430 \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u0442\u043e {{app}}.",downloadApp:"\u0421\u0432\u0430\u043b\u0435\u0442\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u0442\u043e",launchWebButton:"\u0417\u0430\u0440\u0435\u0434\u0435\u0442\u0435 \u0443\u0435\u0431 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u0442\u0430",openApp:"\u041f\u0440\u043e\u0434\u044a\u043b\u0436\u0435\u0442\u0435 \u043a\u044a\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u0442\u043e",title:"\u0417\u0430\u0440\u0435\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u0441\u0440\u0435\u0449\u0430\u0442\u0430 \u0432 {{app}}...",tryAgainButton:"\u041f\u0440\u043e\u0431\u0432\u0430\u0439\u0442\u0435 \u043e\u0442\u043d\u043e\u0432\u043e"},defaultLink:"\u043d\u0430\u043f\u0440. {{url}}",defaultNickname:"\u043d\u0430\u043f\u0440. \u0418\u0432\u0430\u043d \u0418\u0432\u0430\u043d\u043e\u0432",deviceError:{cameraError:"\u041a\u0430\u043c\u0435\u0440\u0430\u0442\u0430 \u0435 \u043d\u0435\u0434\u043e\u0441\u0442\u044a\u043f\u043d\u0430",cameraPermission:"\u0413\u0440\u0435\u0448\u043a\u0430 \u043f\u0440\u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0437\u0430 \u0434\u043e\u0441\u0442\u044a\u043f \u0434\u043e \u043a\u0430\u043c\u0435\u0440\u0430\u0442\u0430",microphoneError:"\u041c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u044a\u0442 \u0435 \u043d\u0435\u0434\u043e\u0441\u0442\u044a\u043f\u0435\u043d",microphonePermission:"\u0413\u0440\u0435\u0448\u043a\u0430 \u043f\u0440\u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0437\u0430 \u0434\u043e\u0441\u0442\u044a\u043f \u0434\u043e \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u0430"},deviceSelection:{noPermission:"\u041d\u0435 \u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043e \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435",previewUnavailable:"\u041d\u044f\u043c\u0430 \u0432\u044a\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442 \u0437\u0430 \u043f\u0440\u0435\u0433\u043b\u0435\u0434",selectADevice:"\u0418\u0437\u0431\u0435\u0440\u0435\u0442\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e",testAudio:"\u041f\u0443\u0441\u043d\u0438 \u043f\u0440\u043e\u0431\u0435\u043d \u0437\u0432\u0443\u043a"},dialog:{accessibilityLabel:{liveStreaming:"\u0418\u0437\u043b\u044a\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u0436\u0438\u0432\u043e"},allow:"\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0432\u0430\u043d\u0435",alreadySharedVideoMsg:"\u0414\u0440\u0443\u0433 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a \u0432\u0435\u0447\u0435 \u0435 \u0441\u043f\u043e\u0434\u0435\u043b\u0438\u043b \u0432\u0438\u0434\u0435\u043e. \u0422\u0430\u0437\u0438 \u0441\u0440\u0435\u0449\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0432\u0430 \u0441\u0430\u043c\u043e \u0435\u0434\u043d\u043e \u0441\u043f\u043e\u0434\u0435\u043b\u0435\u043d\u043e \u0432\u0438\u0434\u0435\u043e.",alreadySharedVideoTitle:"\u0420\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u043e \u0435 \u0441\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435\u0442\u043e \u0441\u0430\u043c\u043e \u043d\u0430 \u0435\u0434\u043d\u043e \u0432\u0438\u0434\u0435\u043e \u0432 \u0434\u0430\u0434\u0435\u043d \u043c\u043e\u043c\u0435\u043d\u0442",applicationWindow:"\u041f\u0440\u043e\u0437\u043e\u0440\u0435\u0446\u0430 \u043d\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u0430\u0442\u0430",Back:"\u041d\u0430\u0437\u0430\u0434",cameraConstraintFailedError:"\u041a\u0430\u043c\u0435\u0440\u0430\u0442\u0430 \u0412\u0438 \u043d\u0435 \u043f\u043e\u043a\u0440\u0438\u0432\u0430 \u043d\u044f\u043a\u043e\u0438 \u043e\u0442 \u0438\u0437\u0438\u0441\u043a\u0432\u0430\u043d\u0438\u044f\u0442\u0430.",cameraNotFoundError:"\u041d\u0435 \u0435 \u043e\u0442\u043a\u0440\u0438\u0442\u0430 \u043a\u0430\u043c\u0435\u0440\u0430.",cameraNotSendingData:"\u041a\u0430\u043c\u0435\u0440\u0430\u0442\u0430 \u0435 \u043d\u0435\u0434\u043e\u0441\u0442\u044a\u043f\u043d\u0430. \u041c\u043e\u043b\u044f, \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u0442\u0435 \u0434\u0430\u043b\u0438 \u0434\u0440\u0443\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0435 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430 \u0442\u043e\u0432\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e, \u0438\u0437\u0431\u0435\u0440\u0435\u0442\u0435 \u0434\u0440\u0443\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043e\u0442 \u043c\u0435\u043d\u044e\u0442\u043e \u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438\u0442\u0435, \u0438\u043b\u0438 \u043f\u0440\u0435\u0437\u0430\u0440\u0435\u0434\u0435\u0442\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u0442\u043e.",cameraNotSendingDataTitle:"\u041a\u0430\u043c\u0435\u0440\u0430\u0442\u0430 \u0435 \u043d\u0435\u0434\u043e\u0441\u0442\u044a\u043f\u043d\u0430",cameraPermissionDeniedError:"\u041d\u0435 \u0441\u0442\u0435 \u0434\u0430\u043b\u0438 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0437\u0430 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u043a\u0430\u043c\u0435\u0440\u0430\u0442\u0430. \u0429\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0434\u0430 \u0441\u0435 \u043f\u0440\u0438\u0441\u044a\u0435\u0434\u0438\u043d\u0438\u0442\u0435 \u0432 \u0431\u0435\u0441\u0435\u0434\u0430\u0442\u0430, \u043d\u043e \u0434\u0440\u0443\u0433\u0438\u0442\u0435 \u043d\u044f\u043c\u0430 \u0434\u0430 \u0412\u0438 \u0432\u0438\u0436\u0434\u0430\u0442. \u0418\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u0439\u0442\u0435 \u0431\u0443\u0442\u043e\u043d\u0430 \u0441 \u043a\u0430\u043c\u0435\u0440\u0430\u0442\u0430 \u0432 \u0430\u0434\u0440\u0435\u0441\u043d\u0430\u0442\u0430 \u043b\u0435\u043d\u0442\u0430, \u0437\u0430 \u0434\u0430 \u043e\u043f\u0440\u0430\u0432\u0438\u0442\u0435 \u0442\u043e\u0432\u0430.",cameraUnknownError:"\u041d\u0435\u0432\u044a\u0437\u043c\u043e\u0436\u0435\u043d \u0434\u043e\u0441\u0442\u044a\u043f \u0434\u043e \u043a\u0430\u043c\u0435\u0440\u0430\u0442\u0430 \u043f\u043e \u043d\u0435\u044f\u0441\u043d\u0430 \u043f\u0440\u0438\u0447\u0438\u043d\u0430.",cameraUnsupportedResolutionError:"\u041a\u0430\u043c\u0435\u0440\u0430\u0442\u0430 \u0412\u0438 \u043d\u0435 \u043f\u043e\u0434\u0434\u044a\u0440\u0436\u0430 \u043d\u0443\u0436\u043d\u0430\u0442\u0430 \u0440\u0435\u0437\u043e\u043b\u044e\u0446\u0438\u044f.",Cancel:"\u041e\u0442\u043a\u0430\u0437",close:"\u0417\u0430\u0442\u0432\u0430\u0440\u044f\u043d\u0435",conferenceDisconnectMsg:"\u041c\u043e\u0436\u0435 \u0431\u0438 \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u0435 \u043c\u0440\u0435\u0436\u043e\u0432\u0430\u0442\u0430 \u0441\u0438 \u0432\u0440\u044a\u0437\u043a\u0430. \u041f\u043e\u0432\u0442\u043e\u0440\u043d\u043e \u0441\u0432\u044a\u0440\u0437\u0432\u0430\u043d\u0435 \u0441\u043b\u0435\u0434 {{seconds}} \u0441\u0435\u043a\u2026",conferenceDisconnectTitle:"\u0412\u0440\u044a\u0437\u043a\u0430\u0442\u0430 \u0441\u0435 \u0440\u0430\u0437\u043f\u0430\u0434\u043d\u0430.",conferenceReloadMsg:"\u041e\u043f\u0438\u0442\u0432\u0430\u043c\u0435 \u0441\u0435 \u0434\u0430 \u043e\u043f\u0440\u0430\u0432\u0438\u043c \u043d\u0435\u0449\u0430\u0442\u0430. \u041f\u043e\u0432\u0442\u043e\u0440\u043d\u043e \u0441\u0432\u044a\u0440\u0437\u0432\u0430\u043d\u0435 \u0441\u043b\u0435\u0434 {{seconds}} \u0441\u0435\u043a\u2026",conferenceReloadTitle:"\u0417\u0430 \u0441\u044a\u0436\u0430\u043b\u0435\u043d\u0438\u0435, \u043d\u0435\u0449\u043e \u0441\u0435 \u043e\u0431\u044a\u0440\u043a\u0430.",confirm:"\u041f\u043e\u0442\u0432\u044a\u0440\u0436\u0434\u0435\u043d\u0438\u0435",confirmNo:"\u041d\u0435",confirmYes:"\u0414\u0430",connectError:"\u041e\u043f\u0430! \u041d\u0435\u0449\u043e \u0441\u0435 \u043e\u0431\u044a\u0440\u043a\u0430 \u0438 \u043d\u0435 \u0443\u0441\u043f\u044f\u0445\u043c\u0435 \u0434\u0430 \u0441\u0435 \u0441\u0432\u044a\u0440\u0436\u0435\u043c \u0441 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f\u0442\u0430.",connectErrorWithMsg:"\u041e\u043f\u0430! \u041d\u0435\u0449\u043e \u0441\u0435 \u043e\u0431\u044a\u0440\u043a\u0430 \u0438 \u043d\u0435 \u0443\u0441\u043f\u044f\u0445\u043c\u0435 \u0434\u0430 \u0441\u0435 \u0441\u0432\u044a\u0440\u0436\u0435\u043c \u0441 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f\u0442\u0430: {{msg}}",connecting:"\u0421\u0432\u044a\u0440\u0437\u0432\u0430\u043d\u0435",contactSupport:"\u0412\u0440\u044a\u0437\u043a\u0430 \u0441 \u043e\u0442\u0434\u0435\u043b\u0430 \u043f\u043e \u043f\u043e\u0434\u0434\u0440\u044a\u0436\u043a\u0430",copy:"\u041a\u043e\u043f\u0438\u0440\u0430\u043d\u0435",dismiss:"\u041e\u0442\u0445\u0432\u044a\u0440\u043b\u044f\u043d\u0435",displayNameRequired:"\u0417\u0434\u0440\u0430\u0432\u0435\u0439! \u041a\u0430\u043a \u0441\u0435 \u043a\u0430\u0437\u0432\u0430\u0448?",done:"\u0413\u043e\u0442\u043e\u0432\u043e",enterDisplayName:"\u041c\u043e\u043b\u044f \u0432\u044a\u0432\u0435\u0434\u0435\u0442\u0435 \u0432\u0430\u0448\u0435\u0442\u043e \u0438\u043c\u0435",error:"\u0413\u0440\u0435\u0448\u043a\u0430",externalInstallationMsg:"\u0422\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u0442\u0435 \u0440\u0430\u0437\u0448\u0438\u0440\u0435\u043d\u0438\u0435\u0442\u043e \u0437\u0430 \u0441\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435 \u043d\u0430 \u0435\u043a\u0440\u0430\u043d\u0430.",externalInstallationTitle:"\u041d\u0443\u0436\u043d\u043e \u0435 \u0440\u0430\u0437\u0448\u0438\u0440\u0435\u043d\u0438\u0435",goToStore:"\u041a\u044a\u043c \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0430 \u0432 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442",gracefulShutdown:"\u0423\u0441\u043b\u0443\u0433\u0430\u0442\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u043d\u0435 \u0435 \u0434\u043e\u0441\u0442\u044a\u043f\u043d\u0430 \u043f\u043e\u0440\u0430\u0434\u0438 \u043f\u0440\u043e\u0444\u0438\u043b\u0430\u043a\u0442\u0438\u043a\u0430. \u041c\u043e\u043b\u044f \u043e\u043f\u0438\u0442\u0430\u0439\u0442\u0435 \u043f\u043e-\u043a\u044a\u0441\u043d\u043e.",IamHost:"\u0410\u0437 \u0441\u044a\u043c \u0434\u043e\u043c\u0430\u043a\u0438\u043d\u0430",incorrectRoomLockPassword:"\u0413\u0440\u0435\u0448\u043d\u0430 \u043f\u0430\u0440\u043e\u043b\u0430",incorrectPassword:"\u041d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u043d\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0441\u043a\u043e \u0438\u043c\u0435 \u0438\u043b\u0438 \u043f\u0430\u0440\u043e\u043b\u0430",inlineInstallationMsg:"\u0422\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u0442\u0435 \u0440\u0430\u0437\u0448\u0438\u0440\u0435\u043d\u0438\u0435\u0442\u043e \u0437\u0430 \u0441\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435 \u043d\u0430 \u0435\u043a\u0440\u0430\u043d\u0430.",inlineInstallExtension:"\u0418\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0435 \u0441\u0435\u0433\u0430",internalError:"\u041e\u043f\u0430! \u041d\u0435\u0449\u043e \u0441\u0435 \u043e\u0431\u044a\u0440\u043a\u0430. \u0412\u044a\u0437\u043d\u0438\u043a\u043d\u0430 \u0441\u043b\u0435\u0434\u043d\u0430\u0442\u0430 \u0433\u0440\u0435\u0448\u043a\u0430: {{error}}",internalErrorTitle:"\u0412\u044a\u0442\u0440\u0435\u0448\u043d\u0430 \u0433\u0440\u0435\u0448\u043a\u0430",kickMessage:"\u041c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0441\u0432\u044a\u0440\u0436\u0435\u0442\u0435 \u0441 {{participantDisplayName}} \u0437\u0430 \u043f\u043e\u0432\u0435\u0447\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438.",kickParticipantButton:"\u0418\u0437\u0433\u043e\u043d\u0438",kickParticipantDialog:"\u0421\u0438\u0433\u0443\u0440\u043d\u0438 \u043b\u0438 \u0441\u0442\u0435 \u0447\u0435 \u0438\u0441\u043a\u0430\u0442\u0435 \u0434\u0430 \u0438\u0437\u0433\u043e\u043d\u0438\u0442\u0435 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0430?",kickParticipantTitle:"\u0418\u0437\u0433\u043e\u043d\u0432\u0430\u043d\u0435 \u043d\u0430 \u0442\u043e\u0437\u0438 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a?",kickTitle:"\u0410\u0443\u0447! {{participantDisplayName}} \u0432\u0438 \u0438\u0437\u0433\u043e\u043d\u0438 \u043e\u0442 \u0442\u0430\u0437\u0438 \u0441\u0440\u0435\u0449\u0430",liveStreaming:"\u0418\u0437\u043b\u044a\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u0436\u0438\u0432\u043e",liveStreamingDisabledForGuestTooltip:"\u0413\u043e\u0441\u0442\u0438\u0442\u0435 \u043d\u0435 \u043c\u043e\u0433\u0430\u0442 \u0434\u0430 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u0442 \u0438\u0437\u043b\u044a\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u0436\u0438\u0432\u043e.",liveStreamingDisabledTooltip:"\u0418\u0437\u043b\u044a\u0447\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0436\u0438\u0432\u043e \u0435 \u0434\u0435\u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0430\u043d\u043e.",lockMessage:"\u041d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0437\u0430\u043a\u043b\u044e\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f\u0442\u0430.",lockRoom:"\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 $t(lockRoomPasswordUppercase) \u0437\u0430 \u0441\u0440\u0435\u0449\u0430\u0442\u0430",lockTitle:"\u041d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0437\u0430\u043a\u043b\u044e\u0447\u0432\u0430\u043d\u0435",logoutQuestion:"\u0421\u0438\u0433\u0443\u0440\u043d\u0438 \u043b\u0438 \u0441\u0442\u0435, \u0447\u0435 \u0438\u0441\u043a\u0430\u0442\u0435 \u0434\u0430 \u0438\u0437\u043b\u0435\u0437\u0435\u0442\u0435 \u0438 \u0434\u0430 \u043f\u0440\u0435\u043a\u044a\u0441\u043d\u0435\u0442\u0435 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f\u0442\u0430?",logoutTitle:"\u0418\u0437\u0445\u043e\u0434",maxUsersLimitReached:"\u041b\u0438\u043c\u0438\u0442\u044a\u0442 \u0437\u0430 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u0435\u043d \u0431\u0440\u043e\u0439 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u0446\u0438 \u0431\u0435 \u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0430\u0442. \u041a\u0430\u043f\u0430\u0446\u0438\u0442\u0435\u0442\u0430 \u043d\u0430 \u0441\u0440\u0435\u0449\u0430\u0442\u0430 \u0435 \u0437\u0430\u043f\u044a\u043b\u043d\u0435\u043d. \u041c\u043e\u043b\u044f \u0441\u0432\u044a\u0440\u0436\u0435\u0442\u0435 \u0441\u0435 \u0441 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0442\u043e\u0440\u0430 \u0438\u043b\u0438 \u043e\u043f\u0438\u0442\u0430\u0439\u0442\u0435 \u043f\u043e-\u043a\u044a\u0441\u043d\u043e!",maxUsersLimitReachedTitle:"\u0414\u043e\u0441\u0442\u0438\u0433\u043d\u0430\u0442 \u0435 \u043b\u0438\u043c\u0438\u0442\u0430 \u0437\u0430 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u0435\u043d \u0431\u0440\u043e\u0439 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u0446\u0438",micConstraintFailedError:"\u041c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u044a\u0442 \u0412\u0438 \u043d\u0435 \u043f\u043e\u043a\u0440\u0438\u0432\u0430 \u043d\u044f\u043a\u043e\u0438 \u043e\u0442 \u0438\u0437\u0438\u0441\u043a\u0432\u0430\u043d\u0438\u044f\u0442\u0430.",micNotFoundError:"\u041d\u0435 \u0435 \u043e\u0442\u043a\u0440\u0438\u0442 \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d.",micNotSendingData:"\u041f\u0443\u0441\u043d\u0435\u0442\u0435 \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u0430 \u0441\u0438 \u043e\u0442 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u0438\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043d\u0430 \u043a\u043e\u043c\u043f\u044e\u0442\u044a\u0440\u0430 \u0432\u0438",micNotSendingDataTitle:"\u041c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u0430 \u0432\u0438 \u0435 \u0441\u043f\u0440\u044f\u043d \u043e\u0442 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u0438\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438",micPermissionDeniedError:"\u041d\u0435 \u0441\u0442\u0435 \u0434\u0430\u043b\u0438 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0437\u0430 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u0430. \u0429\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0434\u0430 \u0441\u0435 \u043f\u0440\u0438\u0441\u044a\u0435\u0434\u0438\u043d\u0438\u0442\u0435 \u0432 \u0431\u0435\u0441\u0435\u0434\u0430\u0442\u0430, \u043d\u043e \u0434\u0440\u0443\u0433\u0438\u0442\u0435 \u043d\u044f\u043c\u0430 \u0434\u0430 \u0412\u0438 \u0447\u0443\u0432\u0430\u0442. \u0418\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u0439\u0442\u0435 \u0431\u0443\u0442\u043e\u043d\u0430 \u0441 \u043a\u0430\u043c\u0435\u0440\u0430\u0442\u0430 \u0432 \u0430\u0434\u0440\u0435\u0441\u043d\u0430\u0442\u0430 \u043b\u0435\u043d\u0442\u0430, \u0437\u0430 \u0434\u0430 \u043e\u043f\u0440\u0430\u0432\u0438\u0442\u0435 \u0442\u043e\u0432\u0430.",micUnknownError:"\u041d\u0435\u0432\u044a\u0437\u043c\u043e\u0436\u0435\u043d \u0434\u043e\u0441\u0442\u044a\u043f \u0434\u043e \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u0430 \u043f\u043e \u043d\u0435\u044f\u0441\u043d\u0430 \u043f\u0440\u0438\u0447\u0438\u043d\u0430.",muteParticipantBody:"\u0412\u0438\u0435 \u043d\u044f\u043c\u0430 \u0434\u0430 \u043c\u043e\u0436\u0435\u0442\u0435 \u0434\u0430 \u0441\u043f\u0440\u0435\u0442\u0435 \u0437\u0430\u0433\u043b\u0443\u0448\u0430\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0430, \u043d\u043e \u0442\u043e\u0439 \u0449\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0433\u043e \u043d\u0430\u043f\u0440\u0430\u0432\u0438 \u043f\u043e \u0432\u0441\u044f\u043a\u043e \u0432\u0440\u0435\u043c\u0435.",muteParticipantButton:"\u0418\u0437\u043a\u043b\u044e\u0447\u0438 \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u0430",muteParticipantDialog:"\u0421\u0438\u0433\u0443\u0440\u043d\u0438 \u043b\u0438 \u0441\u0442\u0435 \u0447\u0435 \u0438\u0441\u043a\u0430\u0442\u0435 \u0434\u0430 \u0437\u0430\u0433\u043b\u0443\u0448\u0438\u0442\u0435 \u0442\u043e\u0437\u0438 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a? \u041d\u044f\u043c\u0430 \u0434\u0430 \u043c\u043e\u0436\u0435\u0442\u0435 \u0434\u0430 \u043f\u0443\u0441\u043d\u0435\u0442\u0435 \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0437\u0432\u0443\u043a\u0430 \u043c\u0443, \u043d\u043e \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u044a\u0442 \u0449\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u043d\u0430\u043f\u0440\u0430\u0432\u0438 \u0442\u043e\u0432\u0430 \u0441\u0430\u043c.",muteParticipantTitle:"\u0421\u043f\u0438\u0440\u0430\u043d\u0435 \u0437\u0432\u0443\u043a\u0430 \u043d\u0430 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a?",Ok:"\u0413\u043e\u0442\u043e\u0432\u043e",passwordLabel:"\u0422\u0430\u0437\u0438 \u0441\u0440\u0435\u0449\u0430 \u0435 \u0437\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0430. \u041c\u043e\u043b\u044f \u0432\u044a\u0432\u0435\u0434\u0435\u0442\u0435 $t(lockRoomPassword) \u0437\u0430 \u0434\u0430 \u0432\u043b\u0435\u0437\u043d\u0435\u0442\u0435.",passwordNotSupported:"\u0417\u0430\u0434\u0430\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 $t(lockRoomPassword) \u0437\u0430 \u0441\u0440\u0435\u0449\u0430\u0442\u0430 \u043d\u0435 \u0441\u0435 \u043f\u043e\u0434\u0434\u044a\u0440\u0436\u0430.",passwordNotSupportedTitle:"$t(lockRoomPasswordUppercase) \u043d\u0435 \u0441\u0435 \u043f\u043e\u0434\u0434\u044a\u0440\u0436\u0430",passwordRequired:"\u0418\u0437\u0438\u0441\u043a\u0432\u0430 \u0441\u0435 $t(lockRoomPassword)",popupError:"\u0411\u0440\u0430\u0443\u0437\u044a\u0440\u044a\u0442 \u0412\u0438 \u0431\u043b\u043e\u043a\u0438\u0440\u0430 \u0438\u0437\u0441\u043a\u0430\u0447\u0430\u0449\u0438\u0442\u0435 \u043f\u0440\u043e\u0437\u043e\u0440\u0446\u0438 \u043e\u0442 \u0442\u043e\u0437\u0438 \u0443\u0435\u0431 \u0441\u0430\u0439\u0442. \u041c\u043e\u043b\u044f, \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u0442\u0435 \u0438\u0437\u0441\u043a\u0430\u0447\u0430\u0449\u0438\u0442\u0435 \u043f\u0440\u043e\u0437\u043e\u0440\u0446\u0438 \u043e\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438\u0442\u0435 \u0437\u0430 \u0441\u0438\u0433\u0443\u0440\u043d\u043e\u0441\u0442 \u043d\u0430 \u0431\u0440\u0430\u0443\u0437\u044a\u0440\u0430 \u0441\u0438 \u0438 \u0441\u043b\u0435\u0434 \u0442\u043e\u0432\u0430 \u043e\u043f\u0438\u0442\u0430\u0439\u0442\u0435 \u043e\u0442\u043d\u043e\u0432\u043e.",popupErrorTitle:"\u0411\u043b\u043e\u043a\u0438\u0440\u0430\u043d \u0438\u0437\u0441\u043a\u0430\u0447\u0430\u0449 \u043f\u0440\u043e\u0437\u043e\u0440\u0435\u0446",recording:"\u0417\u0430\u043f\u0438\u0441",recordingDisabledForGuestTooltip:"\u0413\u043e\u0441\u0442\u0438\u0442\u0435 \u043d\u0435 \u043c\u043e\u0433\u0430\u0442 \u0434\u0430 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u0442 \u0437\u0430\u043f\u0438\u0441.",recordingDisabledTooltip:"\u0421\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0437\u0430\u043f\u0438\u0441 \u0435 \u0441\u043f\u0440\u044f\u043d\u043e.",rejoinNow:"\u041f\u043e\u0432\u0442\u043e\u0440\u043d\u043e \u043f\u0440\u0438\u0441\u044a\u0435\u0434\u0438\u043d\u044f\u0432\u0430\u043d\u0435 \u0441\u0435\u0433\u0430",remoteControlAllowedMessage:"{{user}} \u043f\u0440\u0438\u0435 \u0437\u0430\u044f\u0432\u043a\u0430\u0442\u0430 \u0412\u0438 \u0437\u0430 \u043e\u0442\u0434\u0430\u043b\u0435\u0447\u0435\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435!",remoteControlDeniedMessage:"{{user}} \u043e\u0442\u043a\u0430\u0437\u0430 \u0437\u0430\u044f\u0432\u043a\u0430\u0442\u0430 \u0412\u0438 \u0437\u0430 \u043e\u0442\u0434\u0430\u043b\u0435\u0447\u0435\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435!",remoteControlErrorMessage:"\u0412\u044a\u0437\u043d\u0438\u043a\u043d\u0430 \u0433\u0440\u0435\u0448\u043a\u0430 \u043f\u0440\u0438 \u043e\u043f\u0438\u0442\u0430 \u0437\u0430 \u0438\u0441\u043a\u0430\u043d\u0435 \u043d\u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0437\u0430 \u043e\u0442\u0434\u0430\u043b\u0435\u0447\u0435\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e\u0442 {{user}}!",remoteControlRequestMessage:"\u0429\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442\u0435 \u043b\u0438 \u043d\u0430 {{user}} \u0434\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0432\u0430 \u043e\u0442\u0434\u0430\u043b\u0435\u0447\u0435\u043d\u043e \u043a\u043e\u043c\u043f\u044e\u0442\u044a\u0440\u0430 \u0412\u0438?",remoteControlShareScreenWarning:"\u0410\u043a\u043e \u043d\u0430\u0442\u0438\u0441\u043d\u0435\u0442\u0435 \u201e\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0432\u0430\u043d\u0435\u201c, \u0449\u0435 \u0441\u043f\u043e\u0434\u0435\u043b\u0438\u0442\u0435 \u0435\u043a\u0440\u0430\u043d\u0430 \u0441\u0438!",remoteControlStopMessage:"\u0421\u0435\u0441\u0438\u044f\u0442\u0430 \u0437\u0430 \u043e\u0442\u0434\u0430\u043b\u0435\u0447\u0435\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u043a\u043b\u044e\u0447\u0438!",remoteControlTitle:"\u041e\u0442\u0434\u0430\u043b\u0435\u0447\u0435\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 \u043a\u043e\u043c\u043f\u044e\u0442\u044a\u0440\u0430",Remove:"\u041f\u0440\u0435\u043c\u0430\u0445\u0432\u0430\u043d\u0435",removePassword:"\u041f\u0440\u0435\u043c\u0430\u0445\u0432\u0430\u043d\u0435 \u043d\u0430 $t(lockRoomPassword)",removeSharedVideoMsg:"\u041d\u0430\u0438\u0441\u0442\u0438\u043d\u0430 \u043b\u0438 \u0438\u0441\u043a\u0430\u0442\u0435 \u0434\u0430 \u043f\u0440\u0435\u043c\u0430\u0445\u043d\u0435\u0442\u0435 \u0441\u043f\u043e\u0434\u0435\u043b\u0435\u043d\u043e\u0442\u043e \u0441\u0438 \u0432\u0438\u0434\u0435\u043e?",removeSharedVideoTitle:"\u041a\u0440\u0430\u0439 \u043d\u0430 \u0441\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435\u0442\u043e \u043d\u0430 \u0432\u0438\u0434\u0435\u043e",reservationError:"\u0413\u0440\u0435\u0448\u043a\u0430 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0442\u0430 \u0437\u0430 \u0440\u0435\u0437\u0435\u0440\u0432\u0430\u0446\u0438\u0438",reservationErrorMsg:"\u0413\u0440\u0435\u0448\u043a\u0430 \u043d\u043e\u043c\u0435\u0440: {{code}}, \u0441\u044a\u043e\u0431\u0449\u0435\u043d\u0438\u0435: {{msg}}",retry:"\u041f\u043e\u0432\u0442\u043e\u0440\u0435\u043d \u043e\u043f\u0438\u0442",screenSharingFailedToInstall:"\u041e\u043f\u0430! \u0420\u0430\u0437\u0448\u0438\u0440\u0435\u043d\u0438\u0435\u0442\u043e \u0437\u0430 \u0441\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435 \u043d\u0430 \u0435\u043a\u0440\u0430\u043d\u0430 \u043d\u0435 \u0443\u0441\u043f\u044f \u0434\u0430 \u0441\u0435 \u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430.",screenSharingFailedToInstallTitle:"\u0420\u0430\u0437\u0448\u0438\u0440\u0435\u043d\u0438\u0435\u0442\u043e \u0437\u0430 \u0441\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435 \u043d\u0430 \u0435\u043a\u0440\u0430\u043d\u0430 \u043d\u0435 \u0443\u0441\u043f\u044f \u0434\u0430 \u0441\u0435 \u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430",screenSharingFirefoxPermissionDeniedError:"\u041d\u0435\u0449\u043e \u0441\u0435 \u043e\u0431\u044a\u0440\u043a\u0430 \u0434\u043e\u043a\u0430\u0442\u043e \u0441\u0435 \u043e\u043f\u0438\u0442\u0432\u0430\u0445\u043c\u0435 \u0434\u0430 \u0441\u043f\u043e\u0434\u0435\u043b\u0438\u043c \u0435\u043a\u0440\u0430\u043d\u0430. \u041c\u043e\u043b\u044f \u0443\u0432\u0435\u0440\u0435\u0442\u0435 \u0441\u0435 \u0447\u0435 \u0441\u0442\u0435 \u0434\u0430\u043b\u0438 \u043f\u0440\u0430\u0432\u0430 \u0437\u0430 \u0442\u043e\u0432\u0430. ",screenSharingFirefoxPermissionDeniedTitle:"\u0423\u043f\u0441! \u041d\u0435 \u0443\u0441\u043f\u044f\u0445\u043c\u0435 \u0434\u0430 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043c\u0435 \u0441\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435\u0442\u043e \u043d\u0430 \u0435\u043a\u0440\u0430\u043d\u0430!",screenSharingPermissionDeniedError:"\u041e\u043f\u0430! \u041d\u0435\u0449\u043e \u0441\u0435 \u043e\u0431\u044a\u0440\u043a\u0430 \u0441 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f\u0442\u0430 \u043d\u0430 \u0440\u0430\u0437\u0448\u0438\u0440\u0435\u043d\u0438\u0435\u0442\u043e \u0437\u0430 \u0441\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435 \u043d\u0430 \u0435\u043a\u0440\u0430\u043d\u0430. \u041c\u043e\u043b\u044f, \u043f\u0440\u0435\u0437\u0430\u0440\u0435\u0434\u0435\u0442\u0435 \u0438 \u043e\u043f\u0438\u0442\u0430\u0439\u0442\u0435 \u043e\u0442\u043d\u043e\u0432\u043e.",sendPrivateMessage:"\u041d\u0430\u0441\u043a\u043e\u0440\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0445\u0442\u0435 \u043b\u0438\u0447\u043d\u043e \u0441\u044a\u043e\u0431\u0449\u0435\u043d\u0438\u0435. \u0418\u0441\u043a\u0430\u0442\u0435 \u0434\u0430 \u043e\u0442\u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0435 \u043d\u0430 \u0442\u043e\u0432\u0430 \u0441\u044a\u043e\u0431\u0448\u0435\u043d\u0438\u0435 \u0438\u043b\u0438 \u0434\u0430 \u0438\u0437\u043f\u0440\u0430\u0442\u0438\u0442\u0435 \u0434\u043e \u0432\u0441\u0438\u0447\u043a\u0438?",sendPrivateMessageCancel:"\u0418\u0437\u043f\u0440\u0430\u0442\u0438 \u0434\u043e \u0432\u0441\u0438\u0447\u043a\u0438",sendPrivateMessageOk:"\u0418\u0437\u043f\u0440\u0430\u0442\u0438 \u043b\u0438\u0447\u043d\u043e",sendPrivateMessageTitle:"\u0414\u0430 \u0441\u0435 \u0438\u0437\u043f\u0440\u0430\u0442\u0438 \u043b\u0438\u0447\u043d\u043e?",serviceUnavailable:"\u0423\u0441\u043b\u0443\u0433\u0430\u0442\u0430 \u043d\u0435 \u0435 \u043d\u0430\u043b\u0438\u0447\u043d\u0430",sessTerminated:"\u0420\u0430\u0437\u0433\u043e\u0432\u043e\u0440\u044a\u0442 \u043f\u0440\u0438\u043a\u043b\u044e\u0447\u0438",Share:"\u0421\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435",shareVideoLinkError:"\u041c\u043e\u043b\u044f \u0432\u044a\u0432\u0435\u0434\u0435\u0442\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043d\u0430 \u0432\u0440\u044a\u0437\u043a\u0430 \u043a\u044a\u043c YouTube.",shareVideoTitle:"\u0421\u043f\u043e\u0434\u0435\u043b\u0438 \u0432\u0438\u0434\u0435\u043e",shareYourScreen:"\u0421\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435 \u043d\u0430 \u0435\u043a\u0440\u0430\u043d\u0430",shareYourScreenDisabled:"\u0421\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435\u0442\u043e \u043d\u0430 \u0435\u043a\u0440\u0430\u043d\u0430 \u043d\u0435 \u0441\u0435 \u043f\u043e\u0434\u0434\u044a\u0440\u0436\u0430.",shareYourScreenDisabledForGuest:"\u0413\u043e\u0441\u0442\u0438\u0442\u0435 \u043d\u0435 \u043c\u043e\u0433\u0430\u0442 \u0434\u0430 \u0441\u043f\u043e\u0434\u0435\u043b\u044f\u0442 \u0435\u043a\u0440\u0430\u043d\u0430.",startLiveStreaming:"\u0417\u0430\u043f\u043e\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u0438\u0437\u043b\u044a\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u0436\u0438\u0432\u043e",startRecording:"\u0421\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0437\u0430\u043f\u0438\u0441",startRemoteControlErrorMessage:"\u0412\u044a\u0437\u043d\u0438\u043a\u043d\u0430 \u0433\u0440\u0435\u0448\u043a\u0430 \u043f\u0440\u0438 \u043e\u043f\u0438\u0442\u0430 \u0437\u0430 \u0437\u0430\u043f\u043e\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u0441\u0435\u0441\u0438\u044f\u0442\u0430 \u0437\u0430 \u043e\u0442\u0434\u0430\u043b\u0435\u0447\u0435\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435!",stopLiveStreaming:"\u0421\u043f\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0438\u0437\u043b\u044a\u0447\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0436\u0438\u0432\u043e",stopRecording:"\u041a\u0440\u0430\u0439 \u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u0430",stopRecordingWarning:"\u041d\u0430\u0438\u0441\u0442\u0438\u043d\u0430 \u043b\u0438 \u0438\u0441\u043a\u0430\u0442\u0435 \u0434\u0430 \u0441\u043f\u0440\u0435\u043c \u0437\u0430\u043f\u0438\u0441\u0430?",stopStreamingWarning:"\u041d\u0430\u0438\u0441\u0442\u0438\u043d\u0430 \u043b\u0438 \u0438\u0441\u043a\u0430\u0442\u0435 \u0434\u0430 \u0441\u043f\u0440\u0435\u0442\u0435 \u0438\u0437\u043b\u044a\u0447\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0436\u0438\u0432\u043e?",streamKey:"\u041a\u043b\u044e\u0447 \u0437\u0430 \u0438\u0437\u043b\u044a\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u0436\u0438\u0432\u043e",Submit:"\u0418\u0437\u043f\u0440\u0430\u0449\u0430\u043d\u0435",thankYou:"\u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u0438\u043c, \u0447\u0435 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u0445\u0442\u0435 {{appName}}!",token:"\u043a\u043e\u0434 \u0437\u0430 \u0434\u043e\u0441\u0442\u044a\u043f",tokenAuthFailed:"\u0421\u044a\u0436\u0430\u043b\u044f\u0432\u0430\u043c\u0435, \u043d\u043e \u043d\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0434\u0430 \u0441\u0435 \u043f\u0440\u0438\u0441\u044a\u0435\u0434\u0438\u043d\u0438\u0442\u0435 \u043a\u044a\u043c \u0442\u043e\u0437\u0438 \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440.",tokenAuthFailedTitle:"\u041d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u0430 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f",transcribing:"\u0422\u0440\u0430\u043d\u0441\u043a\u0440\u0438\u043f\u0446\u0438\u044f",unlockRoom:"\u041f\u0440\u0435\u043c\u0430\u0445\u0432\u0430\u043d\u0435 $t(lockRoomPassword) \u043e\u0442 \u0441\u0440\u0435\u0449\u0430\u0442\u0430",userPassword:"\u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0441\u043a\u0430 \u043f\u0430\u0440\u043e\u043b\u0430",WaitForHostMsg:"\u041a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f\u0442\u0430 {{room}} \u0432\u0441\u0435 \u043e\u0449\u0435 \u043d\u0435 \u0435 \u0437\u0430\u043f\u043e\u0447\u043d\u0430\u043b\u0430. \u0410\u043a\u043e \u0441\u0442\u0435 \u0434\u043e\u043c\u0430\u043a\u0438\u043d\u044a\u0442 \u0442\u043e\u0433\u0430\u0432\u0430 \u0441\u0435 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u0430\u0439\u0442\u0435. \u0412 \u043f\u0440\u043e\u0442\u0438\u0432\u0435\u043d \u0441\u043b\u0443\u0447\u0430\u0439 \u0438\u0437\u0447\u0430\u043a\u0430\u0439\u0442\u0435 \u0434\u043e\u043a\u0430\u0442\u043e \u0434\u043e\u043c\u0430\u043a\u0438\u043d\u044a\u0442 \u043f\u0440\u0438\u0441\u0442\u0438\u0433\u043d\u0435.",WaitForHostMsgWOk:"\u041a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f\u0442\u0430 {{room}} \u0432\u0441\u0435 \u043e\u0449\u0435 \u043d\u0435 \u0435 \u0437\u0430\u043f\u043e\u0447\u043d\u0430\u043b\u0430. \u0410\u043a\u043e \u0441\u0442\u0435 \u0434\u043e\u043c\u0430\u043a\u0438\u043d\u044a\u0442 \u0442\u043e\u0433\u0430\u0432\u0430 \u043d\u0430\u0442\u0438\u0441\u043d\u0435\u0442\u0435 \u0431\u0443\u0442\u043e\u043d\u0430 \u0437\u0430 \u0434\u0430 \u0441\u0435 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u0430\u0442\u0435. \u0412 \u043f\u0440\u043e\u0442\u0438\u0432\u0435\u043d \u0441\u043b\u0443\u0447\u0430\u0439 \u0438\u0437\u0447\u0430\u043a\u0430\u0439\u0442\u0435 \u0434\u043e\u043a\u0430\u0442\u043e \u0434\u043e\u043c\u0430\u043a\u0438\u043d\u044a\u0442 \u043f\u0440\u0438\u0441\u0442\u0438\u0433\u043d\u0435.",WaitingForHost:"\u0427\u0430\u043a\u0430\u043c\u0435 \u0434\u043e\u043c\u0430\u043a\u0438\u043d\u0430 ...",Yes:"\u0414\u0430",yourEntireScreen:"\u0426\u0435\u043b\u0438\u044f \u0435\u043a\u0440\u0430\u043d",screenSharingAudio:"\u0421\u043f\u043e\u0434\u0435\u043b\u0438 \u0438 \u0437\u0432\u0443\u043a\u0430",muteEveryoneStartMuted:"\u0412\u0441\u0438\u0447\u043a\u0438 \u0434\u0430 \u0432\u043b\u0438\u0437\u0430\u0442 \u0431\u0435\u0437 \u0437\u0432\u0443\u043a",muteEveryoneSelf:"\u0441\u0435\u0431\u0435 \u0441\u0438",muteEveryoneTitle:"\u0417\u0430\u0433\u043b\u0443\u0448\u0438 \u0432\u0441\u0438\u0447\u043a\u0438?",muteEveryoneDialog:"\u0421\u0438\u0433\u0443\u0440\u043d\u0438 \u043b\u0438 \u0441\u0442\u0435, \u0447\u0435 \u0438\u0441\u043a\u0430\u0442\u0435 \u0434\u0430 \u0437\u0430\u0433\u043b\u0443\u0448\u0438\u0442\u0435 \u0432\u0441\u0438\u0447\u043a\u0438? \u041d\u044f\u043c\u0430 \u0434\u0430 \u043c\u043e\u0436\u0435\u0442\u0435 \u0434\u0430 \u043f\u0443\u0441\u043d\u0435\u0442\u0435 \u0437\u0432\u0443\u043a\u0430 \u0438\u043c \u043e\u0442\u043d\u043e\u0432\u043e, \u043d\u043e \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u0446\u0438\u0442\u0435 \u0449\u0435 \u043c\u043e\u0433\u0430\u0442 \u0434\u0430 \u043d\u0430\u043f\u0440\u0430\u0432\u044f\u0442 \u0442\u043e\u0432\u0430 \u0441\u0430\u043c\u0438.",muteEveryoneElseTitle:"\u0417\u0430\u0433\u043b\u0443\u0448\u0435\u0442\u0435 \u0432\u0441\u0438\u0447\u043a\u0438 \u043e\u0441\u0432\u0435\u043d {{whom}}?",muteEveryoneElseDialog:"\u0421\u043b\u0435\u0434 \u043a\u0430\u0442\u043e \u0437\u0430\u0433\u043b\u0443\u0448\u0438\u0442\u0435 \u043d\u044f\u043a\u043e\u0439, \u043d\u044f\u043c\u0430 \u0434\u0430 \u043c\u043e\u0436\u0435\u0442\u0435 \u0434\u0430 \u043f\u0443\u0441\u043d\u0435\u0442\u0435 \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0437\u0432\u0443\u043a\u0430 \u043c\u0443, \u043d\u043e \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u044a\u0442 \u0449\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u043d\u0430\u043f\u0440\u0430\u0432\u0438 \u0442\u043e\u0432\u0430 \u0441\u0430\u043c."},dialOut:{statusMessage:"\u0432 \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u0435 {{status}}"},documentSharing:{title:"\u0421\u043f\u043e\u0434\u0435\u043b\u0435\u043d \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442"},feedback:{average:"\u0421\u0440\u0435\u0434\u043d\u043e",bad:"\u041b\u043e\u0448\u043e",detailsLabel:"\u0420\u0430\u0437\u043a\u0430\u0436\u0435\u0442\u0435 \u043d\u0438 \u043f\u043e\u0432\u0435\u0447\u0435.",good:"\u0414\u043e\u0431\u0440\u0430",rateExperience:"\u041c\u043e\u043b\u044f, \u043e\u0446\u0435\u043d\u0435\u0442\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e\u0442\u043e \u043d\u0430 \u0441\u0440\u0435\u0449\u0430\u0442\u0430",veryBad:"\u041c\u043d\u043e\u0433\u043e \u043b\u043e\u0448\u043e",veryGood:"\u041c\u043d\u043e\u0433\u043e \u0434\u043e\u0431\u0440\u0430"},incomingCall:{answer:"\u0412\u0434\u0438\u0433\u043d\u0438",audioCallTitle:"\u0412\u0445\u043e\u0434\u044f\u0449 \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440",decline:"\u041e\u0442\u0445\u0432\u044a\u0440\u043b\u044f\u043d\u0435",productLabel:"\u043e\u0442 Jitsi Meet",videoCallTitle:"\u0412\u0445\u043e\u0434\u044f\u0449 \u0432\u0438\u0434\u0435\u043e \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440"},info:{accessibilityLabel:"\u041f\u043e\u043a\u0430\u0436\u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f",addPassword:"\u0414\u043e\u0431\u0430\u0432\u0438 $t(lockRoomPassword)",cancelPassword:"\u041f\u0440\u0435\u043c\u0430\u0445\u043d\u0438 $t(lockRoomPassword)",conferenceURL:"\u0412\u0440\u044a\u0437\u043a\u0430:",country:"\u0421\u0442\u0440\u0430\u043d\u0430",dialANumber:"\u0417\u0430 \u0432\u043b\u0438\u0437\u0430\u043d\u0435 \u0432 \u0441\u0440\u0435\u0449\u0430\u0442\u0430, \u043d\u0430\u0431\u0435\u0440\u0435\u0442\u0435 \u0435\u0434\u0438\u043d \u043e\u0442 \u0438\u0437\u0431\u0440\u043e\u0435\u043d\u0438\u0442\u0435 \u043d\u043e\u043c\u0435\u0440\u0430 \u0438 \u0432\u044a\u0432\u0435\u0434\u0435\u0442\u0435 \u043a\u043e\u0434\u0430.",dialInConferenceID:"\u041a\u043e\u0434:",dialInNotSupported:"\u0421\u044a\u0436\u0430\u043b\u044f\u0432\u0430\u043c\u0435, \u043e\u0431\u0430\u0436\u0434\u0430\u043d\u0435\u0442\u043e \u0432 \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u043d\u0435 \u0441\u0435 \u043f\u043e\u0434\u0434\u044a\u0440\u0436\u0430.",dialInNumber:"\u0422\u0435\u043b:",dialInSummaryError:"\u041f\u0440\u043e\u0431\u043b\u0435\u043c \u043f\u0440\u0438 \u0434\u043e\u0441\u0442\u044a\u043f\u0430 \u043d\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0437\u0430 \u043e\u043f\u0446\u0438\u0438\u0442\u0435 \u0437\u0430 \u0432\u043b\u0438\u0437\u0430\u043d\u0435 \u043f\u0440\u0435\u0437 \u0442\u0435\u043b\u0435\u0444\u043e\u043d. \u041c\u043e\u043b\u044f \u043e\u043f\u0438\u0442\u0430\u0439\u0442\u0435 \u043e\u0442\u043d\u043e\u0432\u043e \u043f\u043e-\u043a\u044a\u0441\u043d\u043e.",dialInTollFree:"\u0411\u0435\u0437\u043f\u043b\u0430\u0442\u0435\u043d",genericError:"\u0423\u043f\u0441, \u043d\u0435\u0449\u043e \u0441\u0435 \u0441\u043b\u0443\u0447\u0438.",inviteLiveStream:"\u0417\u0430 \u0434\u0430 \u0432\u0438\u0434\u0438\u0442\u0435 \u043f\u0440\u0435\u0434\u0430\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0436\u0438\u0432\u043e \u043d\u0430 \u0441\u0440\u0435\u0449\u0430\u0442\u0430, \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0439\u0442\u0435 \u0442\u0430\u0437\u0438 \u0432\u0440\u044a\u0437\u043a\u0430: {{url}}",invitePhone:"\u0417\u0430 \u0432\u043b\u0438\u0437\u0430\u043d\u0435 \u043f\u0440\u0435\u0437 \u0442\u0435\u043b\u0435\u0444\u043e\u043d, \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u0439\u0442\u0435: {{number}},,{{conferenceID}}#\n",invitePhoneAlternatives:"\u0412\u0438\u0436\u0442\u0435 \u043e\u0449\u0435 \u043d\u043e\u043c\u0435\u0440\u0430: {{url}}\n\n\n\u0410\u043a\u043e \u0432\u0435\u0447\u0435 \u0441\u0442\u0435 \u043d\u0430\u0431\u0440\u0430\u043b\u0438 \u043e\u0442 \u0442\u0435\u043b\u0435\u0444\u043e\u043d \u0432 \u0441\u0442\u0430\u044f\u0442\u0430, \u0432\u043b\u0435\u0437\u0442\u0435 \u0431\u0435\u0437 \u0434\u0430 \u0435 \u043f\u0443\u0441\u043d\u0430\u0442 \u0437\u0432\u0443\u043a\u0430: {{silentUrl}}",inviteURLFirstPartGeneral:"\u041f\u043e\u043a\u0430\u043d\u0435\u043d\u0438 \u0441\u0442\u0435 \u0434\u0430 \u0441\u0435 \u043f\u0440\u0438\u0441\u044a\u0435\u0434\u0438\u043d\u0438\u0442\u0435 \u043a\u044a\u043c \u0441\u0440\u0435\u0449\u0430.",inviteURLFirstPartPersonal:"{{name}} \u0432\u0438 \u043a\u0430\u043d\u0438 \u0437\u0430 \u0441\u0440\u0435\u0449\u0430.\n",inviteURLSecondPart:"\n\u0412\u043b\u0435\u0437\u0442\u0435 \u0432 \u0441\u0440\u0435\u0449\u0430\u0442\u0430:\n{{url}}\n",liveStreamURL:"\u0418\u0437\u043b\u044a\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u0436\u0438\u0432\u043e:",moreNumbers:"\u041f\u043e\u0432\u0435\u0447\u0435 \u043d\u043e\u043c\u0435\u0440\u0430",noNumbers:"\u041d\u044f\u043c\u0430 \u043d\u043e\u043c\u0435\u0440\u0430 \u0437\u0430 \u043d\u0430\u0431\u0438\u0440\u0430\u043d\u0435.",noPassword:"\u041d\u044f\u043c\u0430",noRoom:"\u041d\u044f\u043c\u0430 \u043f\u043e\u0441\u043e\u0447\u0435\u043d\u0430 \u0441\u0442\u0430\u044f \u0437\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0437\u0430 \u043d\u043e\u043c\u0435\u0440\u0430 \u0437\u0430 \u043d\u0430\u0431\u0438\u0440\u0430\u043d\u0435.",numbers:"\u041d\u043e\u043c\u0435\u0440\u0430",password:"$t(lockRoomPasswordUppercase):",title:"\u0421\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435",tooltip:"\u0421\u043f\u043e\u0434\u0435\u043b\u0435\u0442\u0435 \u0432\u0440\u044a\u0437\u043a\u0430\u0442\u0430 \u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f\u0442\u0430 \u0437\u0430 \u043d\u043e\u043c\u0435\u0440\u0430 \u0441\u0432\u044a\u0440\u0437\u0430\u043d\u0438 \u0441\u044a\u0441 \u0441\u0440\u0435\u0449\u0430\u0442\u0430",label:"\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0437\u0430 \u0441\u0440\u0435\u0449\u0430\u0442\u0430"},inviteDialog:{alertText:"\u041d\u0435 \u0443\u0441\u043f\u044f\u0445 \u0434\u0430 \u043f\u043e\u043a\u0430\u043d\u044f \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u0446\u0438\u0442\u0435.",header:"\u041f\u043e\u043a\u0430\u043d\u0438",searchCallOnlyPlaceholder:"\u0412\u044a\u0432\u0435\u0434\u0435\u0442\u0435 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0435\u043d \u043d\u043e\u043c\u0435\u0440",searchPeopleOnlyPlaceholder:"\u0422\u044a\u0440\u0441\u0435\u043d\u0435 \u043d\u0430 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u0446\u0438",searchPlaceholder:"\u0423\u0447\u0430\u0441\u0442\u043d\u0438\u043a \u0438\u043b\u0438 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0435\u043d \u043d\u043e\u043c\u0435\u0440",send:"\u0418\u0437\u043f\u0440\u0430\u0442\u0438"},inlineDialogFailure:{msg:"\u0418\u043c\u0430\u0448\u0435 \u0433\u0440\u0435\u0448\u043a\u0430.",retry:"\u041e\u043f\u0438\u0442\u0430\u0439\u0442\u0435 \u043e\u0442\u043d\u043e\u0432\u043e",support:"\u041f\u043e\u0434\u0434\u0440\u044a\u0436\u043a\u0430",supportMsg:"\u0410\u043a\u043e \u0442\u043e\u0432\u0430 \u0441\u0435 \u0441\u043b\u0443\u0447\u0432\u0430 \u0447\u0435\u0441\u0442\u043e, \u0441\u0432\u044a\u0440\u0436\u0435\u0442\u0435 \u0441\u0435 \u0441 \u043d\u0430\u0448\u0430\u0442\u0430"},keyboardShortcuts:{focusLocal:"\u0424\u043e\u043a\u0443\u0441\u0438\u0440\u0430\u043d\u0435 \u0432\u044a\u0440\u0445\u0443 \u0412\u0430\u0448\u0435\u0442\u043e \u0432\u0438\u0434\u0435\u043e",focusRemote:"\u0424\u043e\u043a\u0443\u0441\u0438\u0440\u0430\u0439 \u0432\u0438\u0434\u0435\u043e\u0442\u043e \u043d\u0430 \u0434\u0440\u0443\u0433 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a",fullScreen:"\u0412\u043b\u0438\u0437\u0430\u043d\u0435/\u0438\u0437\u043b\u0438\u0437\u0430\u043d\u0435 \u043e\u0442 \u0440\u0435\u0436\u0438\u043c \u043d\u0430 \u0446\u044f\u043b \u0435\u043a\u0440\u0430\u043d",keyboardShortcuts:"\u041a\u043b\u0430\u0432\u0438\u0448\u043d\u0438 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0438",localRecording:"\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u0438\u043b\u0438 \u0441\u043a\u0440\u0438\u0432\u0430\u043d\u0435 \u043d\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0442\u0435 \u0437\u0430 \u043b\u043e\u043a\u0430\u043b\u0435\u043d \u0437\u0430\u043f\u0438\u0441",mute:"\u0421\u043f\u0438\u0440\u0430\u043d\u0435/\u043f\u0443\u0441\u043a\u0430\u043d\u0435 \u043d\u0430 \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u0430",pushToTalk:"\u041d\u0430\u0442\u0438\u0441\u043d\u0435\u0442\u0435, \u0437\u0430 \u0434\u0430 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0435",raiseHand:"\u0412\u0434\u0438\u0433\u043d\u0435\u0442\u0435 \u0438\u043b\u0438 \u0441\u0432\u0430\u043b\u0435\u0442\u0435 \u0440\u044a\u043a\u0430",showSpeakerStats:"\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u0437\u0430 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0435\u043b\u044f",toggleChat:"\u041e\u0442\u0432\u0430\u0440\u044f\u043d\u0435/\u0441\u043a\u0440\u0438\u0432\u0430\u043d\u0435 \u043d\u0430 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u0438\u0442\u0435 \u0441\u044a\u043e\u0431\u0449\u0435\u043d\u0438\u044f",toggleFilmstrip:"\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u0438\u043b\u0438 \u0441\u043a\u0440\u0438\u0432\u0430\u043d\u0435 \u043d\u0430 \u0432\u0438\u0434\u0435\u043e \u043c\u0438\u043d\u0438\u0430\u0442\u044e\u0440\u0438\u0442\u0435",toggleScreensharing:"\u0421\u043c\u044f\u043d\u0430 \u043c\u0435\u0436\u0434\u0443 \u043a\u0430\u043c\u0435\u0440\u0430 \u0438 \u0441\u043f\u043e\u0434\u0435\u043b\u0435\u043d \u0435\u043a\u0440\u0430\u043d",toggleShortcuts:"\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u0438\u043b\u0438 \u0441\u043a\u0440\u0438\u0432\u0430\u043d\u0435 \u043d\u0430 \u043a\u043b\u0430\u0432\u0438\u0448\u043d\u0438\u0442\u0435 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0438",videoMute:"\u041f\u0443\u0441\u043a\u0430\u043d\u0435/\u0441\u043f\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043a\u0430\u043c\u0435\u0440\u0430\u0442\u0430",videoQuality:"\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u043d\u0430 \u043e\u0431\u0430\u0436\u0434\u0430\u043d\u0435\u0442\u043e"},liveStreaming:{busy:"\u0420\u0430\u0431\u043e\u0442\u0438\u043c \u0432\u044a\u0440\u0445\u0443 \u0442\u043e\u0432\u0430 \u0434\u0430 \u043e\u0441\u0432\u043e\u0431\u043e\u0434\u0438\u043c \u0440\u0435\u0441\u0443\u0440\u0441\u0438 \u0437\u0430 \u0438\u0437\u043b\u044a\u0447\u0432\u0430\u043d\u0435. \u041c\u043e\u043b\u044f, \u043e\u043f\u0438\u0442\u0430\u0439\u0442\u0435 \u043e\u0442\u043d\u043e\u0432\u043e \u0441\u043b\u0435\u0434 \u043d\u044f\u043a\u043e\u043b\u043a\u043e \u043c\u0438\u043d\u0443\u0442\u0438.",busyTitle:"\u0412\u0441\u0438\u0447\u043a\u0438 \u0438\u0437\u043b\u044a\u0447\u0432\u0430\u0442\u0435\u043b\u0438 \u0432 \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u0441\u0430 \u0437\u0430\u0435\u0442\u0438",changeSignIn:"\u0421\u043c\u044f\u043d\u0430 \u043d\u0430 \u0430\u043a\u0430\u0443\u043d\u0442\u0438.",choose:"\u0418\u0437\u0431\u0435\u0440\u0435\u0442\u0435 \u043f\u0440\u0435\u0434\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u0436\u0438\u0432\u043e",chooseCTA:"\u0418\u0437\u0431\u0435\u0440\u0435\u0442\u0435 \u043e\u043f\u0446\u0438\u044f \u0437\u0430 \u043f\u0440\u0435\u0434\u0430\u0432\u0430\u043d\u0435. \u0412\u043b\u0435\u0437\u043b\u0438 \u0441\u0442\u0435 \u043a\u0430\u0442\u043e {{email}}.",enterStreamKey:"\u0412\u044a\u0432\u0435\u0434\u0435\u0442\u0435 \u043a\u043b\u044e\u0447\u0430 \u043e\u0442 YouTube \u0437\u0430 \u043f\u0440\u0435\u0434\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u0436\u0438\u0432\u043e.",error:"\u0418\u0437\u043b\u044a\u0447\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0436\u0438\u0432\u043e \u0431\u0435\u0448\u0435 \u043d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e. \u041c\u043e\u043b\u044f, \u043e\u043f\u0438\u0442\u0430\u0439\u0442\u0435 \u043e\u0442\u043d\u043e\u0432\u043e.",errorAPI:"\u0418\u0437\u043d\u0438\u043a\u043d\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 \u0432\u0440\u044a\u0437\u043a\u0430\u0442\u0430 \u043a\u044a\u043c YouTube. \u041c\u043e\u043b\u044f \u043e\u043f\u0438\u0442\u0430\u0439\u0442\u0435 \u043e\u0442\u043d\u043e\u0432\u043e.",errorLiveStreamNotEnabled:"\u041f\u0440\u0435\u0434\u0430\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0436\u0438\u0432\u043e \u043d\u0435 \u0435 \u043f\u0443\u0441\u043d\u0430\u0442\u043e \u0437\u0430 {{email}}. \u041c\u043e\u043b\u044f \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0430\u0439\u0442\u0435 \u0433\u043e \u0438\u043b\u0438 \u0441\u043c\u0435\u043d\u0435\u0442\u0435 \u0430\u043a\u0430\u0443\u043d\u0442\u0430.",expandedOff:"\u041f\u0440\u0435\u0434\u0430\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0436\u0438\u0432\u043e \u0431\u0435 \u0441\u043f\u0440\u044f\u043d\u043e",expandedOn:"\u0421\u0440\u0435\u0449\u0430\u0442\u0430 \u0441\u0435 \u0438\u0437\u043b\u044a\u0447\u0432\u0430 \u043d\u0430 \u0436\u0438\u0432\u043e \u0432 YouTube.",expandedPending:"\u0418\u0437\u043b\u044a\u0447\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0436\u0438\u0432\u043e \u0441\u0435 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430...",failedToStart:"\u0418\u0437\u043b\u044a\u0447\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0436\u0438\u0432\u043e \u043d\u0435 \u0443\u0441\u043f\u044f \u0434\u0430 \u0437\u0430\u043f\u043e\u0447\u043d\u0435",getStreamKeyManually:"\u041d\u0435 \u0443\u0441\u043f\u044f\u0445\u043c\u0435 \u0434\u0430 \u043e\u0442\u043a\u0440\u0438\u0435\u043c \u043d\u0438\u043a\u0430\u043a\u0432\u043e \u043f\u0440\u0435\u0434\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u0436\u0438\u0432\u043e. \u041e\u043f\u0438\u0442\u0430\u0439\u0442\u0435 \u0434\u0430 \u0432\u0437\u0435\u043c\u0435\u0442\u0435 \u043a\u043b\u044e\u0447\u0430 \u0437\u0430 \u0442\u0430\u043a\u043e\u0432\u0430 \u043e\u0442 YouTube.",invalidStreamKey:"\u041a\u043b\u044e\u0447\u044a\u0442 \u0437\u0430 \u043f\u0440\u0435\u0434\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u0436\u0438\u0432\u043e \u0435 \u0433\u0440\u0435\u0448\u0435\u043d.",off:"\u041a\u0440\u0430\u0439 \u043d\u0430 \u0438\u0437\u043b\u044a\u0447\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0436\u0438\u0432\u043e",offBy:"{{name}} \u0441\u043f\u0440\u044f \u0438\u0437\u043b\u044a\u0447\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0436\u0438\u0432\u043e",on:"\u0418\u0437\u043b\u044a\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u0436\u0438\u0432\u043e",onBy:"{{name}} \u043f\u0443\u0441\u043d\u0430 \u0438\u0437\u043b\u044a\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u0436\u0438\u0432\u043e",pending:"\u0417\u0430\u043f\u043e\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u0438\u0437\u043b\u044a\u0447\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0436\u0438\u0432\u043e\u2026",serviceName:"\u041f\u0440\u0435\u0434\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u0436\u0438\u0432\u043e",signedInAs:"\u0412 \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u0441\u0442\u0435 \u0432\u043b\u0435\u0437\u043b\u0438 \u043a\u0430\u0442\u043e:",signIn:"\u0412\u043b\u0435\u0437\u0442\u0435 \u0441 \u0413\u0443\u0433\u044a\u043b",signInCTA:"\u0412\u043b\u0435\u0437\u0442\u0435 \u0438\u043b\u0438 \u0432\u044a\u0432\u0435\u0434\u0435\u0442\u0435 \u043a\u043b\u044e\u0447\u044a\u0442 \u0437\u0430 \u0438\u0437\u043b\u044a\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u0436\u0438\u0432\u043e \u043e\u0442 YouTube.",signOut:"\u0418\u0437\u043b\u0438\u0437\u0430\u043d\u0435",start:"\u0417\u0430\u043f\u043e\u0447\u043d\u0438 \u0438\u0437\u043b\u044a\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u0436\u0438\u0432\u043e",streamIdHelp:"\u041a\u0430\u043a\u0432\u043e \u0435 \u0442\u043e\u0432\u0430?",unavailableTitle:"\u0418\u0437\u043b\u044a\u0447\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0436\u0438\u0432\u043e \u0435 \u043d\u0435\u0434\u043e\u0441\u0442\u044a\u043f\u043d\u043e",googlePrivacyPolicy:"\u041f\u043e\u043b\u0438\u0442\u0438\u043a\u0430 \u0437\u0430 \u043f\u043e\u0432\u0435\u0440\u0438\u0442\u0435\u043b\u043d\u043e\u0441\u0442 \u043d\u0430 Google",youtubeTerms:"\u0423\u0441\u043b\u043e\u0432\u0438\u044f \u0437\u0430 \u043f\u043e\u043b\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 YouTube"},localRecording:{clientState:{off:"\u0418\u0437\u043a\u043b\u044e\u0447\u0435\u043d\u043e",on:"\u0412\u043a\u043b\u044e\u0447\u0435\u043d\u043e",unknown:"\u041d\u0435\u043f\u043e\u0437\u043d\u0430\u0442"},dialogTitle:"\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 \u043b\u043e\u043a\u0430\u043b\u0435\u043d \u0437\u0430\u043f\u0438\u0441",duration:"\u041f\u0440\u043e\u0434\u044a\u043b\u0436\u0438\u0442\u0435\u043b\u043d\u043e\u0441\u0442",durationNA:"\u041d\u044f\u043c\u0430",encoding:"\u041a\u043e\u0434\u0435\u043a",label:"\u0415\u0442\u0438\u043a\u0435\u0442",labelToolTip:"\u041b\u043e\u043a\u0430\u043b\u043d\u0438\u044f \u0437\u0430\u043f\u0438\u0441 \u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d",localRecording:"\u041b\u043e\u043a\u0430\u043b\u0435\u043d \u0437\u0430\u043f\u0438\u0441",me:"\u0410\u0437",messages:{engaged:"\u041b\u043e\u043a\u0430\u043b\u043d\u0438\u044f \u0437\u0430\u043f\u0438\u0441 \u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d.",finished:"\u0417\u0430\u043f\u0438\u0441\u0430 \u043d\u0430 \u0441\u0435\u0441\u0438\u044f\u0442\u0430 {{token}} \u043f\u0440\u0438\u043a\u043b\u044e\u0447\u0438. \u041c\u043e\u043b\u044f \u0438\u0437\u043f\u0440\u0430\u0442\u0435\u0442\u0435 \u0437\u0430\u043f\u0438\u0441\u0430 \u043d\u0430 \u0432\u0430\u0448\u0438\u044f\u0442 \u0434\u043e\u043c\u0430\u043a\u0438\u043d.",finishedModerator:"\u0421\u0435\u0441\u0438\u044f\u0442\u0430 {{token}} \u0437\u0430 \u0437\u0430\u043f\u0438\u0441 \u043f\u0440\u0438\u043a\u043b\u044e\u0447\u0438. \u041b\u043e\u043a\u0430\u043b\u043d\u0438\u044f\u0442 \u0437\u0430\u043f\u0438\u0441 \u0431\u0435\u0448\u0435 \u0437\u0430\u043f\u0430\u0437\u0435\u043d. \u041c\u043e\u043b\u044f \u043f\u043e\u043a\u0430\u043d\u0435\u0442\u0435 \u043e\u0441\u0442\u0430\u043d\u0430\u043b\u0438\u0442\u0435 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u0446\u0438 \u0434\u0430 \u0432\u0438 \u0438\u0437\u043f\u0440\u0430\u0442\u044f\u0442 \u0442\u0435\u0445\u043d\u0438\u0442\u0435 \u0437\u0430\u043f\u0438\u0441\u0438.",notModerator:"\u041d\u044f\u043c\u0430\u0442\u0435 \u043f\u0440\u0430\u0432\u0430 \u0434\u0430 \u043f\u0443\u0441\u043a\u0430\u0442\u0435 \u0441\u043f\u0438\u0440\u0430\u0442\u0435 \u043b\u043e\u043a\u0430\u043b\u0435\u043d \u0437\u0430\u043f\u0438\u0441."},moderator:"\u041c\u043e\u0434\u0435\u0440\u0430\u0442\u043e\u0440",no:"\u041d\u0435",participant:"\u0423\u0447\u0430\u0441\u0442\u043d\u0438\u043a",participantStats:"\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u043d\u0430 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a",sessionToken:"\u0422\u043e\u0443\u043a\u044a\u043d \u0437\u0430 \u0441\u0435\u0441\u0438\u044f\u0442\u0430",start:"\u0417\u0430\u043f\u043e\u0447\u043d\u0438 \u0437\u0430\u043f\u0438\u0441",stop:"\u0421\u043f\u0440\u0438 \u0437\u0430\u043f\u0438\u0441\u0430",yes:"\u0414\u0430"},lockRoomPassword:"\u043f\u0430\u0440\u043e\u043b\u0430",lockRoomPasswordUppercase:"\u041f\u0430\u0440\u043e\u043b\u0430",me:"\u0430\u0437",notify:{connectedOneMember:"{{name}} \u0432\u043b\u0435\u0437\u043d\u0430 \u0432 \u0441\u0440\u0435\u0449\u0430\u0442\u0430",connectedThreePlusMembers:"{{name}} \u0438 \u043e\u0449\u0435 {{count}} \u0432\u043b\u0435\u0437\u043d\u0430\u0445\u0430 \u0432 \u0441\u0440\u0435\u0449\u0430\u0442\u0430",connectedTwoMembers:"{{first}} \u0438 {{second}} \u0432\u043b\u0435\u0437\u043d\u0430\u0445\u0430 \u0432 \u0441\u0440\u0435\u0449\u0430\u0442\u0430",disconnected:"\u041d\u0430\u043f\u0443\u0441\u043d\u0430 \u0441\u0440\u0435\u0449\u0430\u0442\u0430",focus:"\u041a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0442\u0435\u043d \u0444\u043e\u043a\u0443\u0441",focusFail:"{{component}} \u043d\u0435 \u0435 \u043d\u0430 \u0440\u0430\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 - \u0441\u043b\u0435\u0434\u0432\u0430\u0449 \u043e\u043f\u0438\u0442 \u0441\u043b\u0435\u0434 {{ms}} \u0441\u0435\u043a\u0443\u043d\u0434\u0438",grantedTo:"\u0414\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u0440\u043e\u043b\u044f \u043c\u043e\u0434\u0435\u0440\u0430\u0442\u043e\u0440 \u043d\u0430 {{to}}!",invitedOneMember:"{{name}} \u0431\u0435 \u043f\u043e\u043a\u0430\u043d\u0435\u043d",invitedThreePlusMembers:"{{name}} \u0438 \u043e\u0449\u0435 {{count}} \u0431\u044f\u0445\u0430 \u043f\u043e\u043a\u0430\u043d\u0435\u043d\u0438",invitedTwoMembers:"{{first}} \u0438 {{second}} \u0431\u044f\u0445\u0430 \u043f\u043e\u043a\u0430\u043d\u0435\u043d\u0438",kickParticipant:"{{kicked}} \u0431\u0435\u0448\u0435 \u0438\u0437\u0433\u043e\u043d\u0435\u043d \u043e\u0442 {{kicker}}",me:"\u0410\u0437",moderator:"\u041f\u0440\u0438\u0434\u043e\u0431\u0438\u0445\u0442\u0435 \u043f\u0440\u0430\u0432\u0430 \u043d\u0430 \u043c\u043e\u0434\u0435\u0440\u0430\u0442\u043e\u0440!",muted:"\u0417\u0430\u043f\u043e\u0447\u0432\u0430\u0442\u0435 \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440\u0430 \u0431\u0435\u0437 \u0437\u0432\u0443\u043a.",mutedTitle:"\u0417\u0432\u0443\u043a\u044a\u0442 \u0432\u0438 \u0435 \u0441\u043f\u0440\u044f\u043d!",mutedRemotelyTitle:"\u041c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u044a\u0442 \u0432\u0438 \u0431\u0435 \u0441\u043f\u0440\u044f\u043d \u043e\u0442 {{participantDisplayName}}!",mutedRemotelyDescription:"\u0412\u0438\u043d\u0430\u0433\u0438 \u043c\u043e\u0436\u0435\u0442\u0435 \u0434\u0430 \u043f\u0443\u0441\u043d\u0435\u0442\u0435 \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u0430 \u0441\u0438 \u043a\u043e\u0433\u0430\u0442\u043e \u0441\u0442\u0435 \u0433\u043e\u0442\u043e\u0432\u0438 \u0434\u0430 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0435. \u0417\u0430\u0433\u043b\u0443\u0448\u0435\u0442\u0435 \u0433\u043e \u043e\u0442\u043d\u043e\u0432\u043e \u0437\u0430 \u0434\u0430 \u043d\u0435 \u0438\u0437\u043f\u0440\u0430\u0449\u0430\u0442\u0435 \u0448\u0443\u043c \u0432 \u0441\u0440\u0435\u0449\u0430\u0442\u0430.",passwordRemovedRemotely:"$t(lockRoomPasswordUppercase) \u0435 \u043f\u0440\u0435\u043c\u0430\u0445\u043d\u0430\u0442\u0430 \u043e\u0442 \u0434\u0440\u0443\u0433 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b",passwordSetRemotely:"$t(lockRoomPasswordUppercase) \u0441\u044a\u0437\u0434\u0430\u0434\u0435\u043d\u0430 \u043e\u0442 \u0434\u0440\u0443\u0433 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b",raisedHand:"{{name}} \u0438\u0441\u043a\u0430 \u0434\u0443\u043c\u0430\u0442\u0430.",somebody:"\u041d\u044f\u043a\u043e\u0439",startSilentTitle:"\u0412\u043b\u044f\u0437\u043e\u0445\u0442\u0435 \u0441 \u043e\u043f\u0446\u0438\u044f \u0434\u0430 \u043d\u0435 \u0447\u0443\u0432\u0430\u0442\u0435 \u0430\u0443\u0434\u0438\u043e!",startSilentDescription:"\u0412\u043b\u0435\u0437\u0442\u0435 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e \u0437\u0430 \u0434\u0430 \u043f\u0443\u0441\u043d\u0435\u0442\u0435 \u0437\u0432\u0443\u043a\u0430",suboptimalBrowserWarning:"\u041e\u043f\u0430\u0441\u044f\u0432\u0430\u043c\u0435 \u0441\u0435, \u0447\u0435 \u043d\u044f\u043c\u0430 \u0434\u0430 \u043c\u043e\u0436\u0435\u0442\u0435 \u0434\u0430 \u0441\u0435 \u043d\u0430\u0441\u043b\u0430\u0434\u0438\u0442\u0435 \u043d\u0430 \u0441\u0440\u0435\u0449\u0430\u0442\u0430. \u0420\u0430\u0431\u043e\u0442\u0438\u043c \u043f\u043e \u0432\u044a\u043f\u0440\u043e\u0441\u0430, \u043c\u0435\u0436\u0434\u0443\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u0439\u0442\u0435 \u043d\u044f\u043a\u043e\u0439 \u043e\u0442 \u043d\u0430\u043f\u044a\u043b\u043d\u043e \u043f\u043e\u0434\u0434\u044a\u0440\u0436\u0430\u043d\u0438\u0442\u0435 \u0431\u0440\u0430\u0443\u0437\u044a\u0440\u0438.",suboptimalExperienceTitle:"\u0412\u043d\u0438\u043c\u0430\u043d\u0438\u0435",unmute:"\u041f\u0443\u0441\u043a\u0430\u043d\u0435 \u043d\u0430 \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u0430",newDeviceCameraTitle:"\u0417\u0430\u0441\u0435\u0447\u0435\u043d\u0430 \u0435 \u043d\u043e\u0432\u0430 \u043a\u0430\u043c\u0435\u0440\u0430",newDeviceAudioTitle:"\u041d\u043e\u0432\u043e \u0430\u0443\u0434\u0438\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0435 \u0437\u0430\u0441\u0435\u0447\u0435\u043d\u043e",newDeviceAction:"\u0418\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u0439"},passwordSetRemotely:"\u0437\u0430\u0434\u0430\u0434\u0435\u043d\u0430 \u043e\u0442 \u0434\u0440\u0443\u0433 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a",passwordDigitsOnly:"\u0414\u043e {{number}} \u0446\u0438\u0444\u0440\u0438",poweredby:"\u0441 \u043f\u043e\u0434\u043a\u0440\u0435\u043f\u0430\u0442\u0430 \u043d\u0430",presenceStatus:{busy:"\u0417\u0430\u0435\u0442",calling:"\u041e\u0431\u0430\u0436\u0434\u0430\u043d\u0435...",connected:"\u0421\u0432\u044a\u0440\u0437\u0430\u043d",connecting:"\u0421\u0432\u044a\u0440\u0437\u0432\u0430\u043d\u0435...",connecting2:"\u0421\u0432\u044a\u0440\u0437\u0432\u0430\u043d\u0435*...",disconnected:"\u0418\u0437\u043a\u043b\u044e\u0447\u0435\u043d",expired:"\u0418\u0437\u0442\u0435\u043a\u044a\u043b",ignored:"\u041f\u0440\u0435\u043d\u0435\u0431\u0440\u0435\u0433\u043d\u0430\u0442",initializingCall:"\u0421\u0432\u044a\u0440\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u043e\u0431\u0430\u0436\u0434\u0430\u043d\u0435\u0442\u043e...",invited:"\u041f\u043e\u043a\u0430\u043d\u0435\u043d",rejected:"\u041e\u0442\u0445\u0432\u044a\u0440\u043b\u0435\u043d",ringing:"\u0417\u0432\u044a\u043d\u0438..."},profile:{setDisplayNameLabel:"\u0417\u0430\u0434\u0430\u0439\u0442\u0435 \u0435\u043a\u0440\u0430\u043d\u043d\u043e\u0442\u043e \u0441\u0438 \u0438\u043c\u0435",setEmailInput:"\u0412\u044a\u0432\u0435\u0434\u0435\u0442\u0435 \u0435-\u043f\u043e\u0449\u0430",setEmailLabel:"\u0417\u0430\u0434\u0430\u0439\u0442\u0435 \u0435-\u043f\u043e\u0449\u0430\u0442\u0430 \u0441\u0438 \u0432 \u201egravatar\u201c",title:"\u041f\u0440\u043e\u0444\u0438\u043b"},raisedHand:"\u0418\u0441\u043a\u0430 \u0434\u0443\u043c\u0430\u0442\u0430",recording:{authDropboxText:"\u041a\u0430\u0447\u0435\u0442\u0435 \u0432 Dropbox",availableSpace:"\u041d\u0430\u043b\u0438\u0447\u043d\u043e \u043c\u044f\u0441\u0442\u043e: {{spaceLeft}} MB (\u043f\u0440\u0438\u0431\u043b\u0438\u0437\u0438\u0442\u0435\u043b\u043d\u043e {{duration}} \u043c\u0438\u043d\u0443\u0442\u0438 \u0437\u0430\u043f\u0438\u0441)",beta:"\u0411\u0415\u0422\u0410",busy:"\u0420\u0430\u0431\u043e\u0442\u0438\u043c \u0432\u044a\u0440\u0445\u0443 \u0442\u043e\u0432\u0430 \u0434\u0430 \u043e\u0441\u0432\u043e\u0431\u043e\u0434\u0438\u043c \u0440\u0435\u0441\u0443\u0440\u0441\u0438 \u0437\u0430 \u0437\u0430\u043f\u0438\u0441. \u041c\u043e\u043b\u044f, \u043e\u043f\u0438\u0442\u0430\u0439\u0442\u0435 \u043e\u0442\u043d\u043e\u0432\u043e \u0441\u043b\u0435\u0434 \u043d\u044f\u043a\u043e\u043b\u043a\u043e \u043c\u0438\u043d\u0443\u0442\u0438.",busyTitle:"\u0412\u0441\u0438\u0447\u043a\u0438 \u0432\u044a\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0437\u0430 \u0437\u0430\u043f\u0438\u0441 \u0432 \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u0441\u0430 \u0437\u0430\u0435\u0442\u0438",error:"\u0413\u0440\u0435\u0448\u043a\u0430 \u043f\u0440\u0438 \u043e\u043f\u0438\u0442 \u0437\u0430 \u0437\u0430\u043f\u0438\u0441. \u041c\u043e\u043b\u044f \u043e\u043f\u0438\u0442\u0430\u0439\u0442\u0435 \u043e\u0442\u043d\u043e\u0432\u043e.",expandedOff:"\u0417\u0430\u043f\u0438\u0441\u044a\u0442 \u0441\u043f\u0440\u044f",expandedOn:"\u0421\u0440\u0435\u0449\u0430\u0442\u0430 \u0441\u0435 \u0437\u0430\u043f\u0438\u0441\u0432\u0430 \u0432 \u043c\u043e\u043c\u0435\u043d\u0442\u0430.",expandedPending:"\u0417\u0430\u043f\u0438\u0441\u044a\u0442 \u0437\u0430\u043f\u043e\u0447\u0432\u0430...",failedToStart:"\u041d\u0435\u0443\u0441\u043f\u0435\u0448\u0435\u043d \u043e\u043f\u0438\u0442 \u0437\u0430 \u0437\u0430\u043f\u0438\u0441\u0432\u0430\u043d\u0435",fileSharingdescription:"\u0421\u043f\u043e\u0434\u0435\u043b\u0435\u0442\u0435 \u0437\u0430\u043f\u0438\u0441\u0430 \u0441 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u0446\u0438\u0442\u0435 \u0432 \u0441\u0440\u0435\u0449\u0430\u0442\u0430",live:"\u041d\u0430 \u0416\u0438\u0432\u043e",loggedIn:"\u0412\u043b\u0435\u0437\u043b\u0438 \u0441\u0442\u0435 \u043a\u0430\u0442\u043e {{userName}}",off:"\u0417\u0430\u043f\u0438\u0441\u044a\u0442 \u0441\u043f\u0440\u044f\u043d",offBy:"{{name}} \u0441\u043f\u0440\u044f \u0437\u0430\u043f\u0438\u0441\u044a\u0442",on:"\u0417\u0430\u043f\u0438\u0441",onBy:"{{name}} \u043f\u0443\u0441\u043d\u0430 \u0437\u0430\u043f\u0438\u0441",pending:"\u0421\u0442\u0430\u0440\u0442\u0438\u0440\u0430 \u0437\u0430\u043f\u0438\u0441 \u043d\u0430 \u0441\u0440\u0435\u0449\u0430\u0442\u0430...",rec:"\u0417\u0410\u041f\u0418\u0421",serviceDescription:"\u0417\u0430\u043f\u0438\u0441\u044a\u0442 \u0432\u0438 \u0449\u0435 \u0441\u0435 \u0437\u0430\u043f\u0438\u0448\u0435 \u043e\u0442 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u0432\u0430\u0449\u0430 \u0443\u0441\u043b\u0443\u0433\u0430",serviceName:"\u0417\u0430\u043f\u0438\u0441\u0432\u0430\u0449\u0430 \u0443\u0441\u043b\u0443\u0433\u0430",signIn:"\u0412\u043b\u0438\u0437\u0430\u043d\u0435",signOut:"\u0418\u0437\u043b\u0438\u0437\u0430\u043d\u0435",unavailable:"\u0423\u043f\u0441! \u0412 \u043c\u043e\u043c\u0435\u043d\u0442 {{serviceName}} \u0435 \u043d\u0435\u0434\u043e\u0441\u0442\u044a\u043f\u043d\u0430. \u0412 \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u0441\u0435 \u043e\u043f\u0438\u0442\u0432\u0430\u043c\u0435 \u0434\u0430 \u0440\u0435\u0448\u0438\u043c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430. \u041c\u043e\u043b\u044f \u043e\u043f\u0438\u0442\u0430\u0439\u0442\u0435 \u043e\u0442\u043d\u043e\u0432\u043e \u043c\u0430\u043b\u043a\u043e \u043f\u043e-\u043a\u044a\u0441\u043d\u043e.",unavailableTitle:"\u0417\u0430\u043f\u0438\u0441\u044a\u0442 \u0435 \u043d\u0435\u0432\u044a\u0437\u043c\u043e\u0436\u0435\u043d"},sectionList:{pullToRefresh:"\u0418\u0437\u0434\u044a\u0440\u043f\u0430\u0439 \u0437\u0430 \u0434\u0430 \u0441\u0435 \u043e\u0431\u043d\u043e\u0432\u0438"},settings:{calendar:{about:"\u041a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u043d\u0430\u0442\u0430 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u043d\u0430 {{appName}} \u0441\u0438\u0433\u0443\u0440\u043d\u043e \u0434\u043e\u0441\u0442\u044a\u043f\u0432\u0430 \u0432\u0430\u0448\u0438\u044f \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440 \u0437\u0430 \u0434\u0430 \u043f\u043e\u043a\u0430\u0436\u0435 \u043d\u0430\u0441\u0442\u044a\u043f\u0432\u0430\u0449\u0438\u0442\u0435 \u0441\u044a\u0431\u0438\u0442\u0438\u044f.",disconnect:"\u0420\u0430\u0437\u043a\u0430\u0447\u0438",microsoftSignIn:"\u0412\u043b\u0435\u0437 \u0441 Microsoft \u0430\u043a\u0430\u0443\u043d\u0442",signedIn:"\u0412 \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u0434\u043e\u0441\u0442\u044a\u043f\u0432\u0430 \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u0430 \u0441 {{email}}. \u041d\u0430\u0442\u0438\u0441\u043d\u0435\u0442\u0435 \u0431\u0443\u0442\u043e\u043d\u0430 \u0420\u0430\u0437\u043a\u0430\u0447\u0438 \u0437\u0430 \u0434\u0430 \u0441\u043f\u0440\u0435\u0442\u0435 \u0434\u043e\u0441\u0442\u044a\u043f\u0430.",title:"\u041a\u0430\u043b\u0435\u043d\u0434\u0430\u0440"},devices:"\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430",followMe:"\u0412\u0441\u0438\u0447\u043a\u0438 \u043c\u0435 \u0441\u043b\u0435\u0434\u0432\u0430\u0442",language:"\u0415\u0437\u0438\u043a",loggedIn:"\u0412\u043b\u0435\u0437\u043b\u0438 \u0441\u0442\u0435 \u043a\u0430\u0442\u043e {{name}}",moderator:"\u041c\u043e\u0434\u0435\u0440\u0430\u0442\u043e\u0440",more:"\u041f\u043e\u0432\u0435\u0447\u0435",name:"\u0418\u043c\u0435",noDevice:"\u041d\u044f\u043c\u0430",selectAudioOutput:"\u0417\u0432\u0443\u043a\u043e\u0432 \u0438\u0437\u0445\u043e\u0434",selectCamera:"\u041a\u0430\u043c\u0435\u0440\u0430",selectMic:"\u041c\u0438\u043a\u0440\u043e\u0444\u043e\u043d",startAudioMuted:"\u0412\u0441\u0438\u0447\u043a\u0438 \u0437\u0430\u043f\u043e\u0447\u0432\u0430\u0442 \u0437\u0430\u0433\u043b\u0443\u0448\u0435\u043d\u0438",startVideoMuted:"\u0412\u0441\u0438\u0447\u043a\u0438 \u0437\u0430\u043f\u043e\u0447\u0432\u0430\u0442 \u0441\u043a\u0440\u0438\u0442\u0438",title:"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438",speakers:"\u0413\u043e\u0432\u043e\u0440\u0438\u0442\u0435\u043b\u0438",microphones:"\u041c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u0438"},settingsView:{advanced:"\u0420\u0430\u0437\u0448\u0438\u0440\u0435\u043d\u0438",alertOk:"\u041f\u043e\u0442\u0432\u044a\u0440\u0434\u0438",alertTitle:"\u0412\u043d\u0438\u043c\u0430\u043d\u0438\u0435",alertURLText:"\u0412\u044a\u0432\u0435\u0434\u0435\u043d\u0430\u0442\u0430 \u0432\u0440\u044a\u0437\u043a\u0430 \u0437\u0430 \u0441\u044a\u0440\u0432\u044a\u0440 \u0435 \u043d\u0435\u0432\u0430\u043b\u0438\u0434\u043d\u0430",buildInfoSection:"\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0437\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u0430\u0442\u0430",conferenceSection:"\u041a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f",disableCallIntegration:"\u0414\u0435\u043a\u0430\u0442\u0438\u0432\u0438\u0440\u043d\u0430\u0435 \u043d\u0430 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0441 \u043e\u0431\u0430\u0436\u0434\u0430\u043d\u0438\u044f\u0442\u0430",disableP2P:"\u0414\u0435\u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043e\u043f\u0446\u0438\u044f\u0442\u0430 \u0437\u0430 \u043f\u0440\u044f\u043a\u0430 \u0432\u0440\u044a\u0437\u043a\u0430 (p2p)",displayName:"\u0418\u043c\u0435",email:"\u041f\u043e\u0449\u0430",header:"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438",profileSection:"\u041f\u0440\u043e\u0444\u0438\u043b",serverURL:"\u041b\u0438\u043d\u043a \u043d\u0430 \u0441\u044a\u0440\u0432\u044a\u0440\u0430",showAdvanced:"\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0440\u0430\u0437\u0448\u0438\u0440\u0435\u043d\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438",startWithAudioMuted:"\u0417\u0430\u043f\u043e\u0447\u043d\u0438 \u0441\u044a\u0441 \u0441\u043f\u0440\u044f\u043d \u0437\u0432\u0443\u043a",startWithVideoMuted:"\u0417\u0430\u043f\u043e\u0447\u043d\u0438 \u0441\u044a\u0441 \u0441\u043f\u0440\u044f\u043d\u043e \u0432\u0438\u0434\u0435\u043e",version:"\u0412\u0435\u0440\u0441\u0438\u044f"},share:{dialInfoText:"\n\n=====\n\n\u0418\u0441\u043a\u0430\u0442\u0435 \u0434\u0430 \u043d\u0430\u0431\u0435\u0440\u0435\u0442\u0435 \u043e\u0442 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430?\n\n{{defaultDialInNumber}}\u0418\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u0439\u0442\u0435 \u0442\u043e\u0437\u0438 \u043b\u0438\u043d\u043a \u0437\u0430 \u043f\u043e\u0432\u0435\u0447\u0435 \u043d\u043e\u043c\u0435\u0440\u0430\n{{dialInfoPageUrl}}",mainText:"\u0418\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u0439\u0442\u0435 \u043b\u0438\u043d\u043a\u0430 \u0437\u0430 \u0434\u0430 \u0432\u043b\u0435\u0437\u0435\u0442\u0435 \u0432 \u0441\u0440\u0435\u0449\u0430\u0442\u0430:\n{{roomUrl}}"},speaker:"\u0413\u043e\u0432\u043e\u0440\u0435\u0449",speakerStats:{hours:"{{count}}\u0447",minutes:"{{count}}\u043c\u0438\u043d",name:"\u0418\u043c\u0435",seconds:"{{count}}\u0441\u0435\u043a",speakerStats:"\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u043d\u0430 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0435\u043b\u044f",speakerTime:"\u0412\u0440\u0435\u043c\u0435 \u043d\u0430 \u0433\u043e\u0432\u043e\u0440\u0435\u043d\u0435"},startupoverlay:{policyText:" ",title:"\u201e{{app}}\u201c \u0441\u0435 \u043d\u0443\u0436\u0434\u0430\u0435 \u043e\u0442 \u0434\u043e\u0441\u0442\u044a\u043f \u0434\u043e \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u0430 \u0438 \u043a\u0430\u043c\u0435\u0440\u0430\u0442\u0430."},suspendedoverlay:{rejoinKeyTitle:"\u041f\u043e\u0432\u0442\u043e\u0440\u043d\u043e \u043f\u0440\u0438\u0441\u044a\u0435\u0434\u0438\u043d\u044f\u0432\u0430\u043d\u0435",text:"\u041d\u0430\u0442\u0438\u0441\u043d\u0435\u0442\u0435 \u0431\u0443\u0442\u043e\u043d\u0430 \u041f\u043e\u0432\u0442\u043e\u0440\u043d\u043e \u043f\u0440\u0438\u0441\u044a\u0435\u0434\u0438\u043d\u044f\u0432\u0430\u043d\u0435, \u0437\u0430 \u0434\u0430 \u0441\u0435 \u0441\u0432\u044a\u0440\u0436\u0435\u0442\u0435 \u043e\u0442\u043d\u043e\u0432\u043e.",title:"\u0412\u0430\u0448\u0438\u044f\u0442 \u0432\u0438\u0434\u0435\u043e \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440 \u0431\u0435\u0448\u0435 \u043f\u0440\u0435\u043a\u044a\u0441\u043d\u0430\u0442, \u0442\u044a\u0439 \u043a\u0430\u0442\u043e \u043a\u043e\u043c\u043f\u044e\u0442\u044a\u0440\u044a\u0442 \u0412\u0438 \u0437\u0430\u0441\u043f\u0430."},toolbar:{accessibilityLabel:{audioOnly:"\u041f\u0443\u0441\u043a\u0430\u043d\u0435 \u043d\u0430 \u0440\u0435\u0436\u0438\u043c \u0441\u0430\u043c\u043e \u0441 \u0437\u0432\u0443\u043a",audioRoute:"\u0418\u0437\u0431\u0435\u0440\u0435\u0442\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0437\u0430 \u0437\u0432\u0443\u043a",callQuality:"\u041f\u0440\u043e\u043c\u044f\u043d\u0430 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e\u0442\u043e \u043d\u0430 \u0432\u0438\u0434\u0435\u043e\u0442\u043e",cc:"\u041f\u0443\u0441\u043a\u0430\u043d\u0435 \u043d\u0430 \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u0438",chat:"\u0410\u043a\u0442\u0438\u0432\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043f\u0440\u043e\u0437\u043e\u0440\u0435\u0446 \u0437\u0430 \u0441\u044a\u043e\u0431\u0449\u0435\u043d\u0438\u044f",document:"\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0441\u043f\u043e\u0434\u0435\u043b\u0435\u043d \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442",download:"\u0421\u0432\u0430\u043b\u0435\u0442\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u0442\u043e",feedback:"\u041e\u0442\u0437\u0438\u0432\u0438",fullScreen:"\u041f\u0443\u0441\u043a\u0430\u043d\u0435/\u0421\u043f\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0438\u0437\u0433\u043b\u0435\u0434 \u0432 \u0446\u044f\u043b \u0435\u043a\u0440\u0430\u043d",hangup:"\u041d\u0430\u043f\u0443\u0441\u043a\u0430\u043d\u0435 \u043d\u0430 \u0441\u0440\u0435\u0449\u0430\u0442\u0430",help:"\u041f\u043e\u043c\u043e\u0449",invite:"\u041f\u043e\u043a\u0430\u043d\u0435\u0442\u0435 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u0446\u0438",kick:"\u0418\u0437\u0433\u043e\u043d\u0438 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a",localRecording:"\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438 \u0437\u0430 \u043b\u043e\u043a\u0430\u043b\u0435\u043d \u0437\u0430\u043f\u0438\u0441",lockRoom:"\u0421\u043c\u044f\u043d\u0430 \u043f\u0430\u0440\u043e\u043b\u0430 \u043d\u0430 \u0441\u0440\u0435\u0449\u0430",moreActions:"\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u043c\u0435\u043d\u044e \u0441 \u043f\u043e\u0432\u0435\u0447\u0435 \u043e\u043f\u0446\u0438\u0438",moreActionsMenu:"\u041c\u0435\u043d\u044e \u0441 \u043f\u043e\u0432\u0435\u0447\u0435 \u043e\u043f\u0446\u0438\u0438",mute:"\u041f\u0443\u0441\u043a\u0430\u043d\u0435/\u0441\u043f\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0432\u0438\u0434\u0435\u043e\u0442\u043e",pip:"\u041f\u0443\u0441\u043a\u0430\u043d\u0435 \u043d\u0430 \u041a\u0430\u0440\u0442\u0438\u043d\u0430-\u0432-\u041a\u0430\u0440\u0442\u0438\u043d\u0430",privateMessage:"\u0418\u0437\u043f\u0440\u0430\u0442\u0438 \u043b\u0438\u0447\u043d\u043e \u0441\u044a\u043e\u0431\u0449\u0435\u043d\u0438\u0435",profile:"\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043f\u0440\u043e\u0444\u0438\u043b\u0430",raiseHand:"\u0421\u043c\u044f\u043d\u0430 \u0438\u0441\u043a\u0430\u043d\u0435 \u043d\u0430 \u0434\u0443\u043c\u0430\u0442\u0430",recording:"\u041f\u0443\u0441\u043a\u0430\u043d\u0435/\u0441\u043f\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0437\u0430\u043f\u0438\u0441",remoteMute:"\u0417\u0430\u0433\u043b\u0443\u0448\u0438 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a",Settings:"\u041f\u0440\u043e\u043c\u044f\u043d\u0430 \u043d\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438",sharedvideo:"\u0421\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435 \u043d\u0430 YouTube \u0432\u0438\u0434\u0435\u043e",shareRoom:"\u0414\u043e\u0431\u0430\u0432\u0435\u0442\u0435 \u043d\u044f\u043a\u043e\u0433\u043e",shareYourScreen:"\u0421\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435 \u043d\u0430 \u0435\u043a\u0440\u0430\u043d\u0430",shortcuts:"\u0411\u044a\u0440\u0437\u0438 \u043a\u043b\u0430\u0432\u0438\u0448\u0438",show:"\u041f\u043e\u043a\u0430\u0436\u0438 \u043d\u0430 \u0433\u043b\u0430\u0432\u043d\u0438\u044f \u0435\u043a\u0440\u0430\u043d",speakerStats:"\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438 \u0437\u0430 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u0446\u0438\u0442\u0435",tileView:"\u041f\u0440\u0435\u0432\u043a\u043b\u044e\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u0438\u0437\u0433\u043b\u0435\u0434 \u0433\u0430\u043b\u0435\u0440\u0438\u044f",toggleCamera:"\u041f\u0443\u0441\u043a\u0430\u043d\u0435/\u0441\u043f\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043a\u0430\u043c\u0435\u0440\u0430",videomute:"\u041f\u0443\u0441\u043a\u0430\u043d\u0435/\u0441\u043f\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0432\u0438\u0434\u0435\u043e\u0442\u043e",videoblur:"\u041f\u0443\u0441\u043a\u0430\u043d\u0435/\u0441\u043f\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0437\u0430\u043c\u044a\u0433\u043b\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u0432\u0438\u0434\u0435\u043e\u0442\u043e",toggleFilmstrip:"\u041f\u0440\u0435\u0432\u043a\u043b\u044e\u0447\u0438 \u0432\u0438\u0434\u0435\u043e \u043c\u0438\u043d\u0438\u0430\u0442\u044e\u0440\u0438\u0442\u0435",muteEveryone:"\u0417\u0430\u0433\u043b\u0443\u0448\u0438 \u0432\u0441\u0438\u0447\u043a\u0438",moreOptions:"\u041f\u043e\u043a\u0430\u0436\u0438 \u043f\u043e\u0432\u0435\u0447\u0435 \u043e\u043f\u0446\u0438\u0438"},addPeople:"\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u0446\u0438 \u0432 \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440\u0430",audioOnlyOff:"\u0421\u043f\u0438\u0440\u0430\u043d\u0435 \u0440\u0435\u0436\u0438\u043c\u0430 \u0441 \u043d\u0438\u0441\u044a\u043a \u0442\u0440\u0430\u0444\u0438\u043a",audioOnlyOn:"\u041f\u0443\u0441\u043a\u0430\u043d\u0435 \u0440\u0435\u0436\u0438\u043c\u0430 \u0441 \u043d\u0438\u0441\u044a\u043a \u0442\u0440\u0430\u0444\u0438\u043a",audioRoute:"\u0418\u0437\u0431\u0435\u0440\u0435\u0442\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0437\u0430 \u0437\u0432\u0443\u043a",authenticate:"\u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f",callQuality:"\u041f\u0440\u043e\u043c\u044f\u043d\u0430 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e\u0442\u043e \u043d\u0430 \u0432\u0438\u0434\u0435\u043e\u0442\u043e",chat:"\u041e\u0442\u0432\u0430\u0440\u044f\u043d\u0435/\u0437\u0430\u0442\u0432\u0430\u0440\u044f\u043d\u0435 \u043d\u0430 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u0438\u0442\u0435 \u0441\u044a\u043e\u0431\u0449\u0435\u043d\u0438\u044f",closeChat:"\u0417\u0430\u0442\u0432\u0430\u0440\u044f\u043d\u0435 \u043d\u0430 \u0441\u044a\u043e\u0431\u0449\u0435\u043d\u0438\u044f\u0442\u0430",documentClose:"\u0417\u0430\u0442\u0432\u0430\u0440\u044f\u043d\u0435 \u043d\u0430 \u0441\u043f\u043e\u0434\u0435\u043b\u0435\u043d\u0438\u044f\u0442 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442",documentOpen:"\u041e\u0442\u0432\u0430\u0440\u044f\u043d\u0435 \u043d\u0430 \u0441\u043f\u043e\u0434\u0435\u043b\u0435\u043d \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442",download:"\u0421\u0432\u0430\u043b\u0435\u0442\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u0442\u043e",enterFullScreen:"\u0412\u0438\u0436\u0442\u0435 \u043d\u0430 \u0446\u044f\u043b \u0435\u043a\u0440\u0430\u043d",enterTileView:"\u0412\u043b\u0438\u0437\u0430\u043d\u0435 \u0432 \u0438\u0437\u0433\u043b\u0435\u0434 \u0433\u0430\u043b\u0435\u0440\u0438\u044f",exitFullScreen:"\u0418\u0437\u0445\u043e\u0434 \u043e\u0442 \u0446\u044f\u043b \u0435\u043a\u0440\u0430\u043d",exitTileView:"\u0421\u043f\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0438\u0437\u0433\u043b\u0435\u0434 \u0433\u0430\u043b\u0435\u0440\u0438\u044f",feedback:"\u041e\u0442\u0437\u0438\u0432\u0438",hangup:"\u041d\u0430\u043f\u0443\u0441\u043a\u0430\u043d\u0435",help:"\u041f\u043e\u043c\u043e\u0449",invite:"\u041f\u043e\u043a\u0430\u043d\u0435\u0442\u0435 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u0446\u0438",login:"\u0412\u043b\u0435\u0437",logout:"\u0418\u0437\u0445\u043e\u0434",lowerYourHand:"\u041c\u0430\u0445\u043d\u0438 \u0438\u0441\u043a\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0434\u0443\u043c\u0430\u0442\u0430",moreActions:"\u041e\u0449\u0435 \u043e\u043f\u0446\u0438\u0438",mute:"\u0421\u043f\u0438\u0440\u0430\u043d\u0435/\u043f\u0443\u0441\u043a\u0430\u043d\u0435 \u043d\u0430 \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u0430",noAudioSignalTitle:"\u041d\u044f\u043c\u0430 \u0441\u0438\u0433\u043d\u0430\u043b \u0438\u0434\u0432\u0430\u0449 \u043e\u0442 \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u0430!",noAudioSignalDesc:"\u0410\u043a\u043e \u043d\u0435 \u0441\u0442\u0435 \u0441\u043f\u0440\u0435\u043b\u0438 \u0437\u0432\u0443\u043a\u0430 \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u0442\u043e \u043e\u0442 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u0438\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438, \u0441\u043c\u0435\u043d\u0435\u0442\u0435 \u0441 \u0434\u0440\u0443\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e.",noAudioSignalDescSuggestion:"\u0410\u043a\u043e \u043d\u0435 \u0441\u0442\u0435 \u0441\u043f\u0440\u0435\u043b\u0438 \u0437\u0432\u0443\u043a\u0430 \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u0442\u043e \u043e\u0442 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u0438\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438, \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u0439\u0442\u0435 \u043d\u044f\u043a\u043e\u0435 \u043e\u0442 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0442\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430.",openChat:"\u041e\u0442\u0432\u043e\u0440\u0438 \u0441\u044a\u043e\u0431\u0449\u0435\u043d\u0438\u044f\u0442\u0430",pip:"\u041f\u0443\u0441\u043d\u0438 \u041a\u0430\u0440\u0442\u0438\u043d\u0430-\u0432-\u041a\u0430\u0440\u0442\u0438\u043d\u0430",privateMessage:"\u0418\u0437\u043f\u0440\u0430\u0442\u0438 \u043b\u0438\u0447\u043d\u043e \u0441\u044a\u043e\u0431\u0449\u0435\u043d\u0438\u0435",profile:"\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043f\u0440\u043e\u0444\u0438\u043b\u0430",raiseHand:"\u0412\u0434\u0438\u0433\u0430\u043d\u0435/\u0441\u0432\u0430\u043b\u044f\u043d\u0435 \u043d\u0430 \u0440\u044a\u043a\u0430",raiseYourHand:"\u041f\u043e\u0438\u0441\u043a\u0430\u0439 \u0434\u0443\u043c\u0430\u0442\u0430",Settings:"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438",sharedvideo:"\u041f\u0443\u0441\u043a\u0430\u043d\u0435/\u0441\u043f\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0441\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435\u0442\u043e \u043d\u0430 \u0435\u043a\u0440\u0430\u043d\u0430",shareRoom:"\u0414\u043e\u0431\u0430\u0432\u0435\u0442\u0435 \u043d\u044f\u043a\u043e\u0433\u043e",shortcuts:"\u0412\u0438\u0436 \u0431\u044a\u0440\u0437\u0438\u0442\u0435 \u043a\u043b\u0430\u0432\u0438\u0448\u0438",speakerStats:"\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u0437\u0430 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0435\u043b\u0438\u0442\u0435",startScreenSharing:"\u0417\u0430\u043f\u043e\u0447\u043d\u0438 \u0441\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435 \u043d\u0430 \u0435\u043a\u0440\u0430\u043d\u0430",startSubtitles:"\u041f\u0443\u0441\u043a\u0430\u043d\u0435 \u043d\u0430 \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u0438",stopScreenSharing:"\u0421\u043f\u0438\u0440\u0430\u043d\u0435 \u0441\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435 \u043d\u0430 \u0435\u043a\u0440\u0430\u043d\u0430",stopSubtitles:"\u0421\u043f\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u0438",stopSharedVideo:"\u0421\u043f\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 YouTube \u0432\u0438\u0434\u0435\u043e",talkWhileMutedPopup:"\u041e\u043f\u0438\u0442\u0432\u0430\u0442\u0435 \u0441\u0435 \u0434\u0430 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0435? \u0412 \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u044a\u0442 \u0412\u0438 \u0435 \u0437\u0430\u0433\u043b\u0443\u0448\u0435\u043d.",tileViewToggle:"\u041f\u0440\u0435\u0432\u043a\u043b\u044e\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u0438\u0437\u0433\u043b\u0435\u0434 \u0433\u0430\u043b\u0435\u0440\u0438\u044f",toggleCamera:"\u041f\u0443\u0441\u043a\u0430\u043d\u0435/\u0441\u043f\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043a\u0430\u043c\u0435\u0440\u0430",videomute:"\u041f\u0443\u0441\u043a\u0430\u043d\u0435/\u0441\u043f\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043a\u0430\u043c\u0435\u0440\u0430\u0442\u0430",startvideoblur:"\u0417\u0430\u043c\u044a\u0433\u043b\u0438 \u0444\u043e\u043d\u0430 \u043c\u0438",stopvideoblur:"\u0421\u043f\u0438\u0440\u0430\u043d\u0435 \u0437\u0430\u043c\u044a\u0433\u043b\u044f\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0444\u043e\u043d\u0430",noisyAudioInputDesc:"\u0418\u0437\u0433\u043b\u0435\u0436\u0434\u0430 \u0434\u043e\u0441\u0442\u0430 \u0448\u0443\u043c \u0438\u0434\u0432\u0430 \u043e\u0442 \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u0430 \u0432\u0438, \u0437\u0430\u0433\u043b\u0443\u0448\u0435\u0442\u0435 \u0433\u043e \u0438\u043b\u0438 \u0441\u043c\u0435\u043d\u0435\u0442\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u0442\u043e.",noisyAudioInputTitle:"\u0418\u0437\u0433\u043b\u0435\u0436\u0434\u0430 \u0435 \u0448\u0443\u043c\u043d\u043e \u043e\u043a\u043e\u043b\u043e \u0432\u0430\u0441!",noAudioSignalDialInLinkDesc:"\u041d\u043e\u043c\u0435\u0440\u0430 \u0437\u0430 \u043e\u0431\u0430\u0436\u0434\u0430\u043d\u0435",noAudioSignalDialInDesc:"\u041c\u043e\u0436\u0435 \u0434\u0430 \u0432\u043b\u0435\u0437\u043d\u0435\u0442\u0435 \u0447\u0440\u0435\u0437 \u043e\u0431\u0430\u0436\u0434\u0430\u043d\u0435 \u043d\u0430:",muteEveryone:"\u0417\u0430\u0433\u043b\u0443\u0448\u0438 \u0432\u0441\u0438\u0447\u043a\u0438",moreOptions:"\u041f\u043e\u0432\u0435\u0447\u0435 \u043e\u043f\u0446\u0438\u0438"},transcribing:{ccButtonTooltip:"\u041f\u0443\u0441\u043a\u0430\u043d\u0435 / \u0421\u043f\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u0438",error:"\u0413\u0440\u0435\u0448\u043a\u0430 \u043f\u0440\u0438 \u043e\u043f\u0438\u0442 \u0437\u0430 \u0442\u0440\u0430\u043d\u0441\u043a\u0440\u0438\u0431\u0438\u0440\u0430\u043d\u0435. \u041c\u043e\u043b\u044f \u043e\u043f\u0438\u0442\u0430\u0439\u0442\u0435 \u043e\u0442\u043d\u043e\u0432\u043e.",expandedLabel:"\u0422\u0440\u0430\u043d\u0441\u043a\u0440\u0438\u0431\u0438\u0440\u0430\u043d\u0435\u0442\u043e \u0435 \u043f\u0443\u0441\u043d\u0430\u0442\u043e",failedToStart:"\u0422\u0440\u0430\u043d\u0441\u043a\u0440\u0438\u0431\u0438\u0440\u0430\u043d\u0435\u0442\u043e \u043d\u0435 \u0443\u0441\u043f\u044f \u043f\u0440\u0438 \u043f\u0443\u0441\u043a\u0430\u043d\u0435",labelToolTip:"\u0422\u0430\u0437\u0438 \u0441\u0440\u0435\u0449\u0430 \u0441\u0435 \u0442\u0440\u0430\u043d\u0441\u043a\u0440\u0438\u0431\u0438\u0440\u0430",off:"\u0422\u0440\u0430\u043d\u0441\u043a\u0440\u0438\u0431\u0438\u0440\u0430\u043d\u0435\u0442\u043e \u0441\u043f\u0440\u044f",pending:"\u0421\u0442\u0430\u0440\u0442\u0438\u0440\u0430 \u0441\u0435 \u0442\u0440\u0430\u043d\u0441\u043a\u0440\u0438\u0431\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0441\u0440\u0435\u0449\u0430\u0442\u0430...",start:"\u0417\u0430\u043f\u043e\u0447\u0432\u0430 \u043f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u0438",stop:"\u0421\u043f\u0438\u0440\u0430 \u043f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u0438",tr:"\u0421\u0423\u0411"},userMedia:{androidGrantPermissions:"\u0418\u0437\u0431\u0435\u0440\u0435\u0442\u0435 \u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0432\u0430\u043d\u0435, \u043a\u043e\u0433\u0430\u0442\u043e \u0431\u0440\u0430\u0443\u0437\u044a\u0440\u044a\u0442 \u0412\u0438 \u043f\u043e\u043c\u043e\u043b\u0438 \u0437\u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435.",chromeGrantPermissions:"\u0418\u0437\u0431\u0435\u0440\u0435\u0442\u0435 \u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0432\u0430\u043d\u0435, \u043a\u043e\u0433\u0430\u0442\u043e \u0431\u0440\u0430\u0443\u0437\u044a\u0440\u044a\u0442 \u0412\u0438 \u043f\u043e\u043c\u043e\u043b\u0438 \u0437\u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435.",edgeGrantPermissions:"\u0418\u0437\u0431\u0435\u0440\u0435\u0442\u0435 \u0414\u0430, \u043a\u043e\u0433\u0430\u0442\u043e \u0431\u0440\u0430\u0443\u0437\u044a\u0440\u044a\u0442 \u0412\u0438 \u043f\u043e\u043c\u043e\u043b\u0438 \u0437\u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435.",electronGrantPermissions:"\u041c\u043e\u043b\u044f, \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u0442\u0435 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u043a\u0430\u043c\u0435\u0440\u0430\u0442\u0430 \u0438 \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u0430",firefoxGrantPermissions:"\u0418\u0437\u0431\u0435\u0440\u0435\u0442\u0435 \u0421\u043f\u043e\u0434\u0435\u043b\u044f\u043d\u0435 \u043d\u0430 \u0438\u0437\u0431\u0440\u0430\u043d\u043e\u0442\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e, \u043a\u043e\u0433\u0430\u0442\u043e \u0431\u0440\u0430\u0443\u0437\u044a\u0440\u044a\u0442 \u0412\u0438 \u043f\u043e\u043c\u043e\u043b\u0438 \u0437\u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435.",iexplorerGrantPermissions:"\u0418\u0437\u0431\u0435\u0440\u0435\u0442\u0435 \u0414\u043e\u0431\u0440\u0435, \u043a\u043e\u0433\u0430\u0442\u043e \u0431\u0440\u0430\u0443\u0437\u044a\u0440\u044a\u0442 \u0412\u0438 \u043f\u043e\u043c\u043e\u043b\u0438 \u0437\u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435.",nwjsGrantPermissions:"\u041c\u043e\u043b\u044f, \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u0442\u0435 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u043a\u0430\u043c\u0435\u0440\u0430\u0442\u0430 \u0438 \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u0430",operaGrantPermissions:"\u0418\u0437\u0431\u0435\u0440\u0435\u0442\u0435 \u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0432\u0430\u043d\u0435, \u043a\u043e\u0433\u0430\u0442\u043e \u0431\u0440\u0430\u0443\u0437\u044a\u0440\u044a\u0442 \u0412\u0438 \u043f\u043e\u043c\u043e\u043b\u0438 \u0437\u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435.","react-nativeGrantPermissions":"\u0418\u0437\u0431\u0435\u0440\u0435\u0442\u0435 \u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0432\u0430\u043d\u0435, \u043a\u043e\u0433\u0430\u0442\u043e \u0431\u0440\u0430\u0443\u0437\u044a\u0440\u044a\u0442 \u0412\u0438 \u043f\u043e\u043c\u043e\u043b\u0438 \u0437\u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435.",safariGrantPermissions:"\u0418\u0437\u0431\u0435\u0440\u0435\u0442\u0435 \u0414\u043e\u0431\u0440\u0435, \u043a\u043e\u0433\u0430\u0442\u043e \u0431\u0440\u0430\u0443\u0437\u044a\u0440\u044a\u0442 \u0412\u0438 \u043f\u043e\u043c\u043e\u043b\u0438 \u0437\u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435."},videoSIPGW:{busy:"\u0420\u0430\u0431\u043e\u0442\u0438\u043c \u043f\u043e \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u0440\u0435\u0441\u0443\u0440\u0441\u0438. \u041c\u043e\u043b\u044f, \u043e\u043f\u0438\u0442\u0430\u0439\u0442\u0435 \u0441\u043b\u0435\u0434 \u043d\u044f\u043a\u043e\u043b\u043a\u043e \u043c\u0438\u043d\u0443\u0442\u0438.",busyTitle:"\u0423\u0441\u043b\u0443\u0433\u0430\u0442\u0430 \u0437\u0430 \u0441\u0442\u0430\u0438 \u0432 \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u0435 \u0437\u0430\u0435\u0442\u0430",errorAlreadyInvited:"{{displayName}} \u0432\u0435\u0447\u0435 \u0435 \u043f\u043e\u043a\u0430\u043d\u0435\u043d",errorInvite:"\u041a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f\u0442\u0430 \u043d\u0435 \u0435 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0430. \u041c\u043e\u043b\u044f, \u043e\u043f\u0438\u0442\u0430\u0439\u0442\u0435 \u043f\u043e-\u043a\u044a\u0441\u043d\u043e.",errorInviteFailed:"\u0420\u0430\u0431\u043e\u0442\u0438\u043c \u043f\u043e \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0432\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c. \u041c\u043e\u043b\u044f, \u043e\u043f\u0438\u0442\u0430\u0439\u0442\u0435 \u043f\u043e-\u043a\u044a\u0441\u043d\u043e.",errorInviteFailedTitle:"\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435\u0442\u043e \u043d\u0430 {{displayName}} \u043d\u0435 \u0443\u0441\u043f\u044f",errorInviteTitle:"\u0413\u0440\u0435\u0448\u043a\u0430 \u043f\u0440\u0438 \u0434\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u0441\u0442\u0430\u044f",pending:"{{displayName}} \u0431\u0435 \u043f\u043e\u043a\u0430\u043d\u0435\u043d"},videoStatus:{audioOnly:"\u0410\u0423\u0414\u0418\u041e",audioOnlyExpanded:"\u0412\u0438\u0435 \u0441\u0442\u0435 \u0432 \u0440\u0435\u0436\u0438\u043c \u043d\u0430 \u043d\u0438\u0441\u044a\u043a \u0442\u0440\u0430\u0444\u0438\u043a. \u0412 \u0442\u043e\u0437\u0438 \u0440\u0435\u0436\u0438\u043c \u0449\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0432\u0430\u0442\u0435 \u0441\u0430\u043c\u043e \u0430\u0443\u0434\u0438\u043e \u0438\u043b\u0438 \u0441\u043f\u043e\u0434\u0435\u043b\u0435\u043d\u0438 \u0435\u043a\u0440\u0430\u043d\u0438.",callQuality:"\u041a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u043d\u0430 \u0432\u0438\u0434\u0435\u043e\u0442\u043e",hd:"\u0412\u041a",hdTooltip:"\u0413\u043b\u0435\u0434\u0430\u0442\u0435 \u0432\u0438\u0441\u043e\u043a\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u043d\u0430 \u0432\u0438\u0434\u0435\u043e\u0442\u043e",highDefinition:"\u0412\u0438\u0441\u043e\u043a\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e",labelTooiltipNoVideo:"\u041d\u044f\u043c\u0430 \u0432\u0438\u0434\u0435\u043e",labelTooltipAudioOnly:"\u041f\u0443\u0441\u043d\u0430\u0442 \u0440\u0435\u0436\u0438\u043c \u043d\u0430 \u043d\u0438\u0441\u044a\u043a \u0442\u0440\u0430\u0444\u0438\u043a",ld:"\u041d\u041a",ldTooltip:"\u0412\u0438\u0436\u0434\u0430\u0442\u0435 \u043d\u0438\u0441\u043a\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u043d\u0430 \u0432\u0438\u0434\u0435\u043e\u0442\u043e",lowDefinition:"\u041d\u0438\u0441\u043a\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e",onlyAudioAvailable:"\u0421\u0430\u043c\u043e \u0430\u0443\u0434\u0438\u043e \u0435 \u043d\u0430\u043b\u0438\u0447\u043d\u043e",onlyAudioSupported:"\u0422\u043e\u0437\u0438 \u0431\u0440\u0430\u0443\u0437\u044a\u0440 \u043f\u043e\u0434\u0434\u044a\u0440\u0436\u0430 \u0441\u0430\u043c\u043e \u0430\u0443\u0434\u0438\u043e.",p2pEnabled:"\u0412\u043a\u043b. \u0434\u0438\u0440\u0435\u043a\u0442\u043d\u043e \u0441\u0432\u044a\u0440\u0437\u0432\u0430\u043d\u0435",p2pVideoQualityDescription:"\u0412 \u0434\u0438\u0440\u0435\u043a\u0442\u043d\u0430 \u0432\u0440\u044a\u0437\u043a\u0430, \u043f\u043e\u043b\u0443\u0447\u0430\u0432\u0430\u043d\u043e\u0442\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0441\u043c\u0435\u043d\u044f \u043c\u0435\u0436\u0434\u0443 \u0432\u0438\u0441\u043e\u043a\u043e \u0438 \u0441\u0430\u043c\u043e \u0430\u0443\u0434\u0438\u043e. \u041e\u0441\u0442\u0430\u043d\u0430\u043b\u0438\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0449\u0435 \u0441\u0430 \u0434\u043e\u0441\u0442\u044a\u043f\u043d\u0438 \u043a\u043e\u0433\u0430\u0442\u043e \u0432\u0440\u044a\u0437\u043a\u0430\u0442\u0430 \u043d\u0435 \u0435 \u0434\u0438\u0440\u0435\u043a\u0442\u043d\u0430.",recHighDefinitionOnly:"\u0429\u0435 \u0441\u0435 \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0438\u0442\u0430 \u0432\u0438\u0441\u043e\u043a\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e.",sd:"\u0421\u041a",sdTooltip:"\u0413\u043b\u0435\u0434\u0430\u0442\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u043d\u0430 \u0432\u0438\u0434\u0435\u043e\u0442\u043e",standardDefinition:"\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e"},videothumbnail:{domute:"\u0418\u0437\u043a\u043b\u044e\u0447\u0438 \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u0430",flip:"\u041e\u0433\u043b\u0435\u0434\u0430\u043b\u043d\u043e",kick:"\u0418\u0437\u0433\u043e\u043d\u0438",moderator:"\u041c\u043e\u0434\u0435\u0440\u0430\u0442\u043e\u0440",mute:"\u0423\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0430 \u0435 \u0441 \u0438\u0437\u043a\u043b\u044e\u0447\u0435\u043d \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d",muted:"\u0418\u0437\u043a\u043b\u044e\u0447\u0435\u043d \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d",remoteControl:"\u041e\u0442\u0434\u0430\u043b\u0435\u0447\u0435\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435",show:"\u041f\u043e\u043a\u0430\u0436\u0438 \u043d\u0430 \u0433\u043b\u0430\u0432\u043d\u0438\u044f \u0435\u043a\u0440\u0430\u043d",videomute:"\u0423\u0447\u0430\u0441\u0442\u043d\u0438\u043a \u0435 \u0441\u043f\u0440\u044f\u043b \u043a\u0430\u043c\u0435\u0440\u0430\u0442\u0430 \u0441\u0438",domuteOthers:"\u0417\u0430\u0433\u043b\u0443\u0448\u0435\u0442\u0435 \u0432\u0441\u0438\u0447\u043a\u0438 \u043e\u0441\u0442\u0430\u043d\u0430\u043b\u0438"},welcomepage:{accessibilityLabel:{join:"\u041d\u0430\u0442\u0438\u0441\u043d\u0435\u0442\u0435 \u0437\u0430 \u0434\u0430 \u0432\u043b\u0435\u0437\u0435\u0442\u0435",roomname:"\u0412\u044a\u0432\u0435\u0434\u0435\u0442\u0435 \u0438\u043c\u0435 \u043d\u0430 \u0441\u0442\u0430\u044f\u0442\u0430"},appDescription:"\u0425\u0430\u0439\u0434\u0435 \u043d\u0430 \u0432\u0438\u0434\u0435\u043e \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440 \u0441 \u0446\u0435\u043b\u0438\u044f \u0435\u043a\u0438\u043f! \u0412\u0441\u044a\u0449\u043d\u043e\u0441\u0442, \u043f\u043e\u043a\u0430\u043d\u0435\u0442\u0435 \u0432\u0441\u0438\u0447\u043a\u0438 \u0441\u0432\u043e\u0438 \u043f\u043e\u0437\u043d\u0430\u0442\u0438! {{app}} \u0435 \u043d\u0430\u043f\u044a\u043b\u043d\u043e \u0437\u0430\u0449\u0438\u0442\u0435\u043d\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0437\u0430 \u0432\u0438\u0434\u0435\u043e\u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438 \u0441\u044a\u0441 100% \u043e\u0442\u0432\u043e\u0440\u0435\u043d \u043a\u043e\u0434, \u043a\u043e\u0435\u0442\u043e \u043c\u043e\u0436\u0435 \u0434\u0430 \u043f\u043e\u043b\u0437\u0432\u0430\u0442\u0435 \u043f\u043e \u0446\u044f\u043b \u0434\u0435\u043d, \u0432\u0441\u0435\u043a\u0438 \u0434\u0435\u043d, \u0431\u0435\u0437\u043f\u043b\u0430\u0442\u043d\u043e - \u0431\u0435\u0437 \u0434\u0430 \u0432\u0438 \u0435 \u043d\u0443\u0436\u043d\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f.",audioVideoSwitch:{audio:"\u0413\u043b\u0430\u0441",video:"\u0412\u0438\u0434\u0435\u043e"},calendar:"\u041a\u0430\u043b\u0435\u043d\u0434\u0430\u0440",connectCalendarButton:"\u0421\u0432\u044a\u0440\u0436\u0435\u0442\u0435 \u0432\u0430\u0448\u0438\u044f \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440",connectCalendarText:"\u0421\u0432\u044a\u0440\u0436\u0435\u0442\u0435 \u0432\u0430\u0448\u0438\u044f \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440 \u0437\u0430 \u0434\u0430 \u0432\u0438\u0434\u0438\u0442\u0435 \u0441\u0440\u0435\u0449\u0438\u0442\u0435 \u0441\u0438 \u0432 {{app}}. \u0414\u043e\u0431\u0430\u0432\u044f\u0439\u043a\u0438 {{provider}} \u0441\u0440\u0435\u0449\u0438\u0442\u0435 \u0432 \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u0430 \u0441\u0438 \u0449\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0434\u0430 \u0433\u0438 \u0441\u0442\u0430\u0440\u0438\u0440\u0430\u0442\u0435 \u0441 \u0435\u0434\u043d\u043e \u0434\u043e\u043a\u043e\u0441\u0432\u0430\u043d\u0435.",enterRoomTitle:"\u0417\u0430\u043f\u043e\u0447\u043d\u0438 \u043d\u043e\u0432\u0430 \u0441\u0440\u0435\u0449\u0430",roomNameAllowedChars:"\u0418\u043c\u0435\u0442\u043e \u043d\u0430 \u0441\u0440\u0435\u0449\u0430\u0442\u0430 \u043d\u0435 \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0441\u044a\u0434\u044a\u0440\u0436\u0430 \u043d\u044f\u043a\u043e\u0439 \u043e\u0442 \u0441\u0438\u043c\u0432\u043e\u043b\u0438\u0442\u0435: ?, &, :, ', \", %, #.",go:"\u041d\u0410\u041f\u0420\u0415\u0414",goSmall:"\u041d\u0410\u041f\u0420\u0415\u0414",join:"\u0421\u044a\u0437\u0434\u0430\u0439 / \u0412\u043b\u0435\u0437",info:"\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f",privacy:"\u041f\u043e\u0432\u0435\u0440\u0438\u0442\u0435\u043b\u043d\u043e\u0441\u0442",recentList:"\u0421\u043a\u043e\u0440\u043e\u0448\u043d\u0438 \u0441\u0440\u0435\u0449\u0438",recentListDelete:"\u0418\u0437\u0442\u0440\u0438\u0439",recentListEmpty:"\u0421\u043f\u0438\u0441\u044a\u043a\u0430 \u0441 \u0441\u043a\u043e\u0440\u043e\u0448\u043d\u0438 \u0441\u0440\u0435\u0449\u0438 \u0435 \u043f\u0440\u0430\u0437\u0435\u043d. \u0421\u043b\u0435\u0434 \u043a\u0430\u0442\u043e \u0443\u0447\u0430\u0441\u0442\u0432\u0430\u0442\u0435 \u0432 \u043d\u044f\u043a\u043e\u044f \u0441\u0440\u0435\u0449\u0430, \u0449\u0435 \u044f \u043d\u0430\u043c\u0435\u0440\u0438\u0442\u0435 \u0442\u0443\u043a.",reducedUIText:"\u0414\u043e\u0431\u0440\u0435 \u0434\u043e\u0448\u043b\u0438 \u0432 {{app}}!",roomname:"\u0412\u044a\u0432\u0435\u0434\u0435\u0442\u0435 \u0438\u043c\u0435 \u043d\u0430 \u0441\u0442\u0430\u044f\u0442\u0430",roomnameHint:"\u0412\u044a\u0432\u0435\u0434\u0435\u0442\u0435 \u0438\u043c\u0435\u0442\u043e \u0438\u043b\u0438 \u0432\u0440\u044a\u0437\u043a\u0430\u0442\u0430 \u043d\u0430 \u0441\u0442\u0430\u044f\u0442\u0430 \u0432 \u043a\u043e\u044f\u0442\u043e \u0438\u0441\u043a\u0430\u0442\u0435 \u0434\u0430 \u0432\u043b\u0435\u0437\u0435\u0442\u0435. \u0421\u044a\u0449\u043e \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0438 \u0438\u0437\u043c\u0438\u0441\u043b\u0438\u0442\u0435 \u0438\u043c\u0435. \u0421\u0430\u043c\u043e \u0433\u043e \u0441\u043f\u043e\u0434\u0435\u043b\u0435\u0442\u0435 \u0441 \u043d\u044f\u043a\u043e\u0439, \u0437\u0430 \u0434\u0430 \u043c\u043e\u0436\u0435 \u0438 \u0442\u043e\u0439 \u0434\u0430 \u0432\u044a\u0432\u0435\u0434\u0435 \u0441\u044a\u0449\u043e\u0442\u043e \u0438\u043c\u0435 \u0437\u0430 \u0434\u0430 \u0441\u0435 \u0441\u0440\u0435\u0449\u043d\u0435\u0442\u0435.",sendFeedback:"\u0418\u0437\u043f\u0440\u0430\u0449\u0430\u043d\u0435 \u043d\u0430 \u043e\u0442\u0437\u0438\u0432\u0438",terms:"\u0423\u0441\u043b\u043e\u0432\u0438\u044f",title:"\u0421\u0438\u0433\u0443\u0440\u043d\u0430, \u0441 \u043c\u043d\u043e\u0433\u043e \u0432\u044a\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438, \u0438 \u043d\u0430\u043f\u044a\u043b\u043d\u043e \u0431\u0435\u0437\u043f\u043b\u0430\u0442\u043d\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u0437\u0430 \u0432\u0438\u0434\u0435\u043e \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438",getHelp:"\u0422\u044a\u0440\u0441\u0435\u043d\u0435 \u043d\u0430 \u043f\u043e\u043c\u043e\u0449"},helpView:{header:"\u041c\u044f\u0441\u0442\u043e \u0437\u0430 \u043f\u043e\u043c\u043e\u0449"},lonelyMeetingExperience:{youAreAlone:"\u0412\u0438\u0435 \u0441\u0442\u0435 \u0441\u0430\u043c\u0438 \u0432 \u0441\u0440\u0435\u0449\u0430\u0442\u0430",button:"\u041f\u043e\u043a\u0430\u043d\u0435\u0442\u0435 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u0446\u0438"},chromeExtensionBanner:{dontShowAgain:"\u041d\u0435 \u043f\u043e\u043a\u0430\u0437\u0432\u0430\u0439 \u043f\u043e\u0432\u0435\u0447\u0435",buttonText:"\u0418\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u0439\u0442\u0435 \u0440\u0430\u0437\u0448\u0438\u0440\u0435\u043d\u0438\u0435\u0442\u043e \u0437\u0430 Chrome",installExtensionText:"\u0418\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u0439\u0442\u0435 \u0440\u0430\u0437\u0448\u0438\u0440\u0435\u043d\u0438\u044f\u0442\u0430 \u0437\u0430 Google Calendar \u0438 Office 365"}}},657,[]); +__d(function(s,i,h,c,e,a,n){e.exports={en:"Englisch",af:"Afrikaans",az:"Aserbaidschanisch",bg:"Bulgarisch",cs:"Tschechisch",de:"Deutsch",el:"Griechisch",eo:"Esperanto",es:"Spanisch",fr:"Franz\xf6sisch",hy:"Armenisch",it:"Italienisch",ja:"Japanisch",ko:"Koreanisch",nb:"Norwegisch (Bokmal)",oc:"Okzitanisch",pl:"Polnisch",ptBR:"Portugiesisch (Brasilien)",ru:"Russisch",sk:"Slowakisch",sl:"Slowenisch",sv:"Schwedisch",tr:"T\xfcrkisch",vi:"Vietnamesisch",zhCN:"Chinesisch (China)"}},658,[]); +__d(function(e,n,i,r,t,a,s){t.exports={addPeople:{add:"Einladen",countryNotSupported:"Wir unterst\xfctzen dieses Land noch nicht.",countryReminder:"Telefonnummer nicht in den USA? Bitte sicherstellen, dass die Telefonnummer mit dem L\xe4ndercode beginnt.",disabled:"Sie k\xf6nnen keine Teilnehmer einladen.",failedToAdd:"Fehler beim Hinzuf\xfcgen von Teilnehmern",footerText:"Abgehender Ruf ist deaktiviert.",loading:"Suche nach Teilnehmern und Telefonnummern",loadingNumber:"Telefonnummer wird \xfcberpr\xfcft",loadingPeople:"Suche nach einzuladenden Teilnehmern",noResults:"Keine passenden Ergebnisse",noValidNumbers:"Telefonnummer eingeben",searchNumbers:"Telefonnummern hinzuf\xfcgen",searchPeople:"Nach Teilnehmern suchen",searchPeopleAndNumbers:"Nach Teilnehmen suchen oder deren Telefonnummern hinzuf\xfcgen",telephone:"Telefon: {{number}}",title:"Teilnehmer zu dieser Konferenz einladen"},audioDevices:{bluetooth:"Bluetooth",headphones:"Kopfh\xf6rer",phone:"H\xf6rer",speaker:"Lautsprecher",none:"Keine Audioger\xe4te verf\xfcgbar"},audioOnly:{audioOnly:"Nur Audio"},calendarSync:{addMeetingURL:"Meeting-Link hinzuf\xfcgen",confirmAddLink:"M\xf6chten Sie einen Jitsi-Link zu diesem Termin hinzuf\xfcgen?",error:{appConfiguration:"Kalenderintegration ist nicht richtig konfiguriert.",generic:"Ein Fehler ist aufgetreten. Pr\xfcfen Sie Ihre Kalendereinstellungen oder versuchen Sie, den Kalender zu aktualisieren.",notSignedIn:"Ein Fehler ist w\xe4hrend der Authentifizierung zur Anzeige von Kalenderterminen aufgetreten. Pr\xfcfen Sie Ihre Kalendereinstellungen oder versuchen Sie, sich erneut anzumelden."},join:"Teilnehmen",joinTooltip:"Am Meeting teilnehmen",nextMeeting:"N\xe4chste Konferenz",noEvents:"Es gibt keine bevorstehenden Termine.",ongoingMeeting:"Laufendes Meeting",permissionButton:"Einstellungen \xf6ffnen",permissionMessage:"Die App ben\xf6tigt Zugriff auf den Kalender, um Termine und Konferenzen anzuzeigen.",refresh:"Kalender aktualisieren",today:"Heute"},chat:{error:"Fehler: Ihre Nachricht wurde nicht versendet. Grund: {{error}}",fieldPlaceHolder:"Geben Sie Ihre Nachricht hier ein",messagebox:"Nachricht eingeben",messageTo:"Private Nachricht an {{recipient}}",noMessagesMessage:"Es gibt noch keine Nachricht in dieser Konferenz. Starten Sie hier eine Unterhaltung!",nickname:{popover:"Name",title:"Geben Sie einen Alias zum Chatten ein"},privateNotice:"Private Nachricht an {{recipient}}",title:"Chatten",you:"Sie"},chromeExtensionBanner:{installExtensionText:"Installieren Sie die Erweiterung f\xfcr die Integration von Google Calendar und Office 365",buttonText:"Chrome-Erweiterung installieren",dontShowAgain:"Hinweis nicht mehr anzeigen"},connectingOverlay:{joiningRoom:"Eine Verbindung zu Ihrem Meeting wird hergestellt\u2026"},connection:{ATTACHED:"Angeh\xe4ngt",AUTHENTICATING:"Anmeldung l\xe4uft",AUTHFAIL:"Authentifizierung fehlgeschlagen",CONNECTED:"Verbunden",CONNECTING:"Verbindung wird hergestellt",CONNFAIL:"Verbindungsaufbau gescheitert",DISCONNECTED:"Getrennt",DISCONNECTING:"Verbindung wird getrennt",ERROR:"Fehler",FETCH_SESSION_ID:"Sitzungs-ID erhalten...",GET_SESSION_ID_ERROR:"Sitzungs-ID-Fehler erhalten: {{code}}",GOT_SESSION_ID:"Sitzungs-ID erhalten... Beendet",LOW_BANDWIDTH:"Video f\xfcr {{displayName}} wurde ausgeschaltet, um Bandbreite einzusparen"},connectionindicator:{address:"Adresse:",bandwidth:"Gesch\xe4tzte Bandbreite:",bitrate:"Bitrate:",bridgeCount:"Serverzahl: ",connectedTo:"Verbunden mit:",e2e_rtt:"E2E RTT:",framerate:"Bildwiederholrate:",less:"Weniger anzeigen",localaddress:"Lokale Adresse:",localaddress_plural:"Lokale Adressen:",localport:"Lokaler Port:",localport_plural:"Lokale Ports:",more:"Mehr anzeigen",packetloss:"Paketverlust:",quality:{good:"Gut",inactive:"Inaktiv",lost:"Verloren",nonoptimal:"Nicht optimal",poor:"D\xfcrftig"},remoteaddress:"Entfernte Adresse:",remoteaddress_plural:"Entfernte Adressen:",remoteport:"Entfernter Port:",remoteport_plural:"Entfernte Ports:",resolution:"Aufl\xf6sung:",status:"Verbindung:",transport:"Protokoll:",transport_plural:"Protokolle:"},dateUtils:{earlier:"Fr\xfcher",today:"Heute",yesterday:"Gestern"},deepLinking:{appNotInstalled:"Sie ben\xf6tigen die \u201e{{app}}\u201c-App, um der Konferenz auf dem Smartphone beizutreten.",description:"Nichts passiert? Wir haben versucht, die Konferenz in {{app}} zu \xf6ffnen. Versuchen Sie es erneut oder treten Sie der Konferenz in {{app}} im Web bei.",descriptionWithoutWeb:"Ist nichts passiert? Wir haben versucht, Ihre Besprechung in der \u201e{{{app}}}\u201c-Desktop-App zu starten.",downloadApp:"App herunterladen",launchWebButton:"Im Web \xf6ffnen",openApp:"In der App fortfahren",title:"Die Konferenz wird in {{app}} ge\xf6ffnet...",tryAgainButton:"Erneut mit der nativen Applikation versuchen"},defaultLink:"Bsp.: {{url}}",defaultNickname:"Z.B. Jane Pink",deviceError:{cameraError:"Fehler beim Zugriff auf die Kamera",cameraPermission:"Fehler beim Bezug der Kamera-Zugriffsberechtigungen",microphoneError:"Fehler beim Zugriff auf das Mikrofon",microphonePermission:"Fehler beim Bezug der Mikrofon-Zugriffsberechtigungen"},deviceSelection:{noPermission:"Berechtigungen nicht erteilt",previewUnavailable:"Keine Vorschau verf\xfcgbar",selectADevice:"Ein Ger\xe4t w\xe4hlen",testAudio:"Pr\xfcfton wiedergeben"},dialog:{accessibilityLabel:{liveStreaming:"Livestream:"},allow:"Erlauben",alreadySharedVideoMsg:"Ein anderer Teilnehmer gibt bereits ein Video weiter. Bei dieser Konferenz ist jeweils nur ein geteiltes Video m\xf6glich.",alreadySharedVideoTitle:"Nur ein geteiltes Video gleichzeitig",applicationWindow:"Anwendungsfenster",Back:"Zur\xfcck",cameraConstraintFailedError:"Ihre Kamera erf\xfcllt die notwendigen Anforderungen nicht.",cameraNotFoundError:"Kamera nicht gefunden.",cameraNotSendingData:"Die Kamera ist nicht verf\xfcgbar. Bitte pr\xfcfen, ob eine andere Applikation die Kamera verwendet, eine andere Kamera vom Einstellungs-Men\xfc ausw\xe4hlen oder die Applikation neu laden.",cameraNotSendingDataTitle:"Zugriff auf Kamera nicht m\xf6glich",cameraPermissionDeniedError:"Die Berechtigung zur Verwendung der Kamera wurde nicht erteilt. Sie k\xf6nnen trotzdem an der Konferenz teilnehmen, aber die anderen Teilnehmer k\xf6nnen Sie nicht sehen. Verwenden Sie die Kamera-Schaltfl\xe4che in der Adressleiste um die Berechtigungen zu erteilen.",cameraUnknownError:"Die Kamera kann aus einem unbekannten Grund nicht verwendet werden.",cameraUnsupportedResolutionError:"Die Kamera unterst\xfctzt die erforderliche Aufl\xf6sung nicht.",Cancel:"Abbrechen",close:"Schlie\xdfen",conferenceDisconnectMsg:"Pr\xfcfen Sie allenfalls Ihre Netzwerkverbindung. Verbinde in {{seconds}} Sekunden...",conferenceDisconnectTitle:"Ihre Verbindung ist getrennt worden.",conferenceReloadMsg:"Wir versuchen das zu beheben. Verbinde in {{seconds}} Sekunden...",conferenceReloadTitle:"Leider ist etwas schiefgegangen.",confirm:"Best\xe4tigen",confirmNo:"Nein",confirmYes:"Ja",connectError:"Oh! Es hat etwas nicht geklappt und der Konferenz konnte nicht beigetreten werden.",connectErrorWithMsg:"Oh! Es hat etwas nicht geklappt und der Konferenz konnte nicht beigetreten werden: {{msg}}",connecting:"Verbindung wird hergestellt",contactSupport:"Support kontaktieren",copy:"Kopieren",dismiss:"OK",displayNameRequired:"Hallo! Wie ist Ihr Name?",done:"Fertig",enterDisplayName:"Bitte geben Sie hier Ihren Namen ein",error:"Fehler",externalInstallationMsg:"Die Bildschirmfreigabe-Erweiterung muss installiert werden.",externalInstallationTitle:"Erweiterung erforderlich",goToStore:"Zum Store",gracefulShutdown:"Der Dienst steht momentan wegen Wartungsarbeiten nicht zur Verf\xfcgung. Bitte versuchen Sie es sp\xe4ter noch einmal.",IamHost:"Ich bin der Organisator",incorrectRoomLockPassword:"Falsches Passwort",incorrectPassword:"Benutzername oder Passwort ung\xfcltig",inlineInstallationMsg:"Die Bildschirmfreigabe-Erweiterung muss installiert werden.",inlineInstallExtension:"Jetzt installieren",internalError:"Oh! Es hat etwas nicht funktioniert. Der folgende Fehler ist aufgetreten: {{error}}",internalErrorTitle:"Interner Fehler",kickMessage:"Sie k\xf6nnen sich f\xfcr mehr Details an {{participantDisplayName}} wenden.",kickParticipantButton:"Entfernen",kickParticipantDialog:"Wollen Sie diesen Teilnehmer wirklich entfernen?",kickParticipantTitle:"Teilnehmer entfernen?",kickTitle:"Autsch! {{participantDisplayName}} hat Sie aus dem Meeting geworfen.",liveStreaming:"Livestreaming",liveStreamingDisabledForGuestTooltip:"G\xe4ste k\xf6nnen kein Livestreaming starten.",liveStreamingDisabledTooltip:"Starten des Livestreams deaktiviert.",lockMessage:"Die Konferenz konnte nicht gesperrt werden.",lockRoom:"Meeting-$t(lockRoomPasswordUppercase) hinzuf\xfcgen",lockTitle:"Sperren fehlgeschlagen",logoutQuestion:"Sind Sie sicher, dass Sie sich abmelden und die Konferenz verlassen m\xf6chten?",logoutTitle:"Abmelden",maxUsersLimitReached:"Das Limit f\xfcr die maximale Teilnehmerzahl ist erreicht. Die Konferenz ist voll. Bitte wenden Sie sich an den Besitzer des Meetings oder versuchen Sie es sp\xe4ter noch einmal!",maxUsersLimitReachedTitle:"Maximales Teilnehmerlimit erreicht",micConstraintFailedError:"Ihr Mikrofon erf\xfcllt die notwendigen Anforderungen nicht.",micNotFoundError:"Mikrofon nicht gefunden.",micNotSendingData:"Gehen Sie zu den Einstellungen Ihres Computers, um die Stummschaltung Ihres Mikrofons aufzuheben und seinen Pegel einzustellen.",micNotSendingDataTitle:"Ihr Mikrofon ist durch Ihre Systemeinstellungen stumm geschaltet.",micPermissionDeniedError:"Die Berechtigung zur Verwendung des Mikrofons wurde nicht erteilt. Sie k\xf6nnen trotzdem an der Konferenz teilnehmen, aber die anderen Teilnehmer k\xf6nnen Sie nicht h\xf6ren. Verwenden Sie die Kamera-Schaltfl\xe4che in der Adressleiste um die Berechtigungen zu erteilen.",micUnknownError:"Das Mikrofon kann aus einem unbekannten Grund nicht verwendet werden.",muteEveryoneElseDialog:"Einmal stummgeschaltet, k\xf6nnen Sie deren Stummschaltung nicht mehr beenden, aber sie k\xf6nnen ihre Stummschaltung jederzeit selbst beenden.",muteEveryoneElseTitle:"Alle au\xdfer {{whom}} stummschaten?",muteEveryoneDialog:"Wollen Sie wirklich alle stummschalten? Sie k\xf6nnen deren Stummschaltung nicht mehr beenden, aber sie k\xf6nnen ihre Stummschaltung jederzeit selbst beenden.",muteEveryoneTitle:"Alle stummschalten?",muteEveryoneSelf:"sich selbst",muteEveryoneStartMuted:"Alle beginnen von jetzt an stummgeschaltet",muteParticipantBody:"Sie k\xf6nnen die Stummschaltung anderer Teilnehmer nicht aufheben, aber ein Teilnehmer kann seine eigene Stummschaltung jederzeit beenden.",muteParticipantButton:"Stummschalten",muteParticipantDialog:"Wollen Sie diesen Teilnehmer wirklich stummschalten? Sie k\xf6nnen die Stummschaltung nicht wieder aufheben, der Teilnehmer kann dies aber jederzeit selbst tun.",muteParticipantTitle:"Teilnehmer stummschalten?",Ok:"OK",passwordLabel:"$t(lockRoomPasswordUppercase)",passwordNotSupported:"Setzen eines Konferenz-Passworts ist nicht unterst\xfctzt",passwordNotSupportedTitle:"$t(lockRoomPasswordUppercase) nicht unterst\xfctzt",passwordRequired:"$t(lockRoomPasswordUppercase) erforderlich",popupError:"Ihr Browser blockiert Pop-ups von dieser Website. Bitte aktivieren Sie Pop-ups in den Sicherheitseinstellungen des Browsers und versuchen Sie es erneut.",popupErrorTitle:"Pop-up blockiert",recording:"Aufnahme",recordingDisabledForGuestTooltip:"G\xe4ste k\xf6nnen keine Aufzeichnungen starten.",recordingDisabledTooltip:"Start der Aufzeichnung deaktiviert.",rejoinNow:"Jetzt erneut beitreten",remoteControlAllowedMessage:"{{user}} hat die Anfrage zur Fernsteuerung angenommen.",remoteControlDeniedMessage:"{{user}} hat die Anfrage zur Fernsteuerung verweigert.",remoteControlErrorMessage:"Beim Anfordern der Fernsteuerungsberechtigung von {{user}} ist ein Fehler aufgetreten.",remoteControlRequestMessage:"M\xf6chten Sie {{user}} erlauben, den Computer fernzusteuern?",remoteControlShareScreenWarning:"Achtung, wenn Sie die Anfrage genehmigen, starten Sie die Bildschirmfreigabe!",remoteControlStopMessage:"Die Fernsteuerung wurde beendet.",remoteControlTitle:"Fernsteuerung",Remove:"Entfernen",removePassword:"$t(lockRoomPassword) entfernen",removeSharedVideoMsg:"Sind Sie sicher, dass Sie das geteilte Video entfernen m\xf6chten?",removeSharedVideoTitle:"Freigegebenes Video entfernen",reservationError:"Fehler im Reservierungssystem",reservationErrorMsg:"Fehler, Nummer: {{code}}, Nachricht: {{msg}}",retry:"Wiederholen",screenSharingFailedToInstall:"Oh! Die Erweiterung f\xfcr die Bildschirmfreigabe konnte nicht installiert werden.",screenSharingFailedToInstallTitle:"Bildschirmfreigabe-Erweiterung konnte nicht installiert werden",screenSharingFirefoxPermissionDeniedError:"Die Bildschirmfreigabe ist leider fehlgeschlagen. Bitte stellen Sie sicher, dass die Berechtigung f\xfcr die Bildschirmfreigabe im Browser erteilt wurde.",screenSharingFirefoxPermissionDeniedTitle:"Die Bildschirmfreigabe konnte nicht gestartet werden.",screenSharingPermissionDeniedError:"Oh! Beim Anfordern der Bildschirmfreigabe-Berechtigungen hat etwas nicht funktioniert. Bitte aktualisieren und erneut versuchen.",sendPrivateMessage:"Sie haben k\xfcrzlich eine private Nachricht erhalten. Hatten Sie die Absicht, darauf privat zu antworten, oder wollen Sie Ihre Nachricht an die Gruppe senden?",sendPrivateMessageCancel:"An die Gruppe senden",sendPrivateMessageOk:"Privat antworten",sendPrivateMessageTitle:"Privat antworten?",serviceUnavailable:"Dienst nicht verf\xfcgbar",sessTerminated:"Konferenz beendet",Share:"Teilen",shareVideoLinkError:"Bitte einen g\xfcltigen YouTube-Link angeben.",shareVideoTitle:"Video teilen",shareYourScreen:"Bildschirm freigeben",shareYourScreenDisabled:"Bildschirmfreigabe deaktiviert.",shareYourScreenDisabledForGuest:"G\xe4ste k\xf6nnen den Bildschirm nicht freigeben.",startLiveStreaming:"Einen Livestream starten",startRecording:"Aufnahme starten",startRemoteControlErrorMessage:"Beim Versuch die Fernsteuerung zu starten ist ein Fehler aufgetreten.",stopLiveStreaming:"Livestreaming stoppen",stopRecording:"Aufnahme stoppen",stopRecordingWarning:"Sind Sie sicher, dass Sie die Aufnahme stoppen m\xf6chten?",stopStreamingWarning:"Sind Sie sicher, dass Sie das Livestreaming stoppen m\xf6chten?",streamKey:"Name/Schl\xfcssel f\xfcr den Stream",Submit:"OK",thankYou:"Danke f\xfcr die Verwendung von {{appName}}!",token:"Token",tokenAuthFailed:"Sie sind nicht berechtigt, dieser Konferenz beizutreten.",tokenAuthFailedTitle:"Authentifizierung fehlgeschlagen",transcribing:"Wird transkribiert",unlockRoom:"Meeting-$t(lockRoomPassword) entfernen",userPassword:"Benutzerpasswort",WaitForHostMsg:"Die Konferenz {{room}} wurde noch nicht gestartet. Wenn Sie der Organisator sind, authentifizieren Sie sich. Warten Sie andernfalls, bis der Organisator erscheint.",WaitForHostMsgWOk:"Die Konferenz {{room}} wurde noch nicht gestartet. Wenn Sie der Organisator sind, dr\xfccken Sie zum Authentifizieren auf OK. Warten Sie andernfalls, bis der Organisator erscheint.",WaitingForHost:"Warten auf den Organisator...",Yes:"Ja",yourEntireScreen:"Ganzer Bildschirm"},dialOut:{statusMessage:"ist jetzt {{status}}"},documentSharing:{title:"Freigegebenes Dokument"},feedback:{average:"Durchschnittlich",bad:"Schlecht",detailsLabel:"Sagen Sie uns mehr dazu.",good:"Gut",rateExperience:"Bitte bewerten Sie diese Konferenz",veryBad:"Sehr schlecht",veryGood:"Sehr gut"},incomingCall:{answer:"Antworten",audioCallTitle:"Eingehender Anruf",decline:"OK",productLabel:"von Jitsi Meet",videoCallTitle:"Eingehender Videoanruf"},info:{accessibilityLabel:"Informationen anzeigen",addPassword:"$t(lockRoomPassword) hinzuf\xfcgen",cancelPassword:"$t(lockRoomPassword) l\xf6schen",conferenceURL:"Link:",country:"Land",dialANumber:"Um am Meeting teilzunehmen, m\xfcssen Sie eine dieser Nummern w\xe4hlen und dann die PIN eingeben.",dialInConferenceID:"PIN:",dialInNotSupported:"Entschuldigung, leider wird das Einw\xe4hlen derzeit nicht unterst\xfctzt.",dialInNumber:"Einw\xe4hlen:",dialInSummaryError:"Fehler beim Abrufen der Einwahlinformationen. Versuchen Sie es sp\xe4ter erneut.",dialInTollFree:"Geb\xfchrenfrei",genericError:"Es ist leider etwas schiefgegangen.",inviteLiveStream:"Klicken Sie auf {{url}} um den Livestream dieser Konferenz zu \xf6ffnen",invitePhone:"Wenn Sie stattdessen per Telefon beitreten m\xf6chten, tippen Sie hier: {{number}},,{{conferenceID}}#\n",invitePhoneAlternatives:"Suche nach einer anderen Einwahlnummer?\nMeetings-Einwahlnummern sehen: {{{url}}\n\n\n\nWenn Sie sich auch \xfcber ein Raumtelefon einw\xe4hlen, nehmen Sie teil, ohne sich mit dem Ton zu verbinden: {{silentUrl}}",inviteURLFirstPartGeneral:"Sie wurden zur Teilnahme an einem Meeting eingeladen.",inviteURLFirstPartPersonal:"{{name}} l\xe4dt Sie zu einem Meeting ein.\n",inviteURLSecondPart:"\nAm Meeting teilnehmen:\n{{url}}\n",liveStreamURL:"Livestream:",moreNumbers:"Weitere Telefonnummern",noNumbers:"Keine Telefonnummern verf\xfcgbar.",noPassword:"Kein",noRoom:"Keine Konferenz f\xfcr die Einwahlinformationen angegeben.",numbers:"Einw\xe4hlnummern",password:"$t(lockRoomPasswordUppercase):",title:"Teilen",tooltip:"Freigabe-Link und Einwahlinformationen f\xfcr dieses Meeting",label:"Meeting-Informationen"},inviteDialog:{alertText:"Die Einladung einiger Teilnehmer ist fehlgeschlagen.",header:"Einladen",searchCallOnlyPlaceholder:"Telefonnummer eingeben",searchPeopleOnlyPlaceholder:"Nach Teilnehmern suchen",searchPlaceholder:"Teilnehmer oder Telefonnummer",send:"Senden"},inlineDialogFailure:{msg:"Es ist ein Fehler aufgetreten.",retry:"Erneut versuchen",support:"Support",supportMsg:"Wenn der Fehler erneut auftritt, bitte kontaktieren Sie"},keyboardShortcuts:{focusLocal:"Lokales Video fokussieren",focusRemote:"Auf das Video eines anderen Teilnehmers fokussieren",fullScreen:"Vollbildmodus aktivieren / deaktivieren",keyboardShortcuts:"Tastenk\xfcrzel",localRecording:"Lokale Aufzeichnungssteuerelemente ein- oder ausblenden",mute:"Stummschaltung aktivieren oder deaktivieren",pushToTalk:"Push-to-Talk (Sprechtaste)",raiseHand:"Hand erheben",showSpeakerStats:"Statistiken f\xfcr Sprecher anzeigen",toggleChat:"Chat \xf6ffnen oder schlie\xdfen",toggleFilmstrip:"Video-Miniaturansichten ein- oder ausblenden",toggleScreensharing:"Zwischen Kamera und Bildschirmfreigabe wechseln",toggleShortcuts:"Tastenkombinationen ein- oder ausblenden",videoMute:"Kamera starten oder stoppen",videoQuality:"Anrufqualit\xe4t verwalten"},liveStreaming:{busy:"Es werden Ressourcen zum Streamen bereitgestellt. Bitte in ein paar Minuten erneut versuchen.",busyTitle:"Alle Streaming-Instanzen sind in Gebrauch",changeSignIn:"Konten wechseln.",choose:"Livestream ausw\xe4hlen",chooseCTA:"Streaming-Option ausw\xe4hlen. Sie sind aktuell als {{email}} angemeldet.",enterStreamKey:"Name/Schl\xfcssel f\xfcr den YouTube-Livestream hier eingeben.",error:"Das Livestreaming ist fehlgeschlagen. Bitte versuchen Sie es erneut.",errorAPI:"Beim Abrufen der YouTube-Livestreams ist ein Fehler aufgetreten. Bitte versuchen Sie, sich erneut anzumelden.",errorLiveStreamNotEnabled:"Livestreaming ist f\xfcr {{email}} nicht aktiviert. Aktivieren Sie das Livestreaming oder melden Sie sich bei einem Konto mit aktiviertem Livestreaming an.",expandedOff:"Livestreaming wurde angehalten",expandedOn:"Das Meeting wird momentan an YouTube gestreamt.",expandedPending:"Livestreaming wird gestartet...",failedToStart:"Livestreaming konnte nicht gestartet werden",getStreamKeyManually:"Wir waren nicht in der Lage, Livestreams abzurufen. Versuchen Sie, Ihren Livestream-Schl\xfcssel von YouTube zu erhalten.",invalidStreamKey:"Der Livestream-Schl\xfcssel ist u. U. falsch.",off:"Livestreaming gestoppt",offBy:"{{name}} stoppte das Livestreaming",on:"Livestreaming",onBy:"{{name}} startete das Livestreaming",pending:"Livestream wird gestartet...",serviceName:"Livestreaming-Dienst",signedInAs:"Sie sind derzeit angemeldet als:",signIn:"Mit Google anmelden",signInCTA:"Anmelden oder den Namen/Schl\xfcssel des YouTube-Livestreams eingeben.",signOut:"Abmelden",start:"Einen Livestream starten",streamIdHelp:"Was ist das?",unavailableTitle:"Livestreaming nicht verf\xfcgbar"},localRecording:{clientState:{off:"Aus",on:"Ein",unknown:"Unbekannt"},dialogTitle:"Lokale Aufzeichnungssteuerelemente",duration:"Dauer",durationNA:"N. v.",encoding:"Kodierung",label:"LOR",labelToolTip:"Lokale Aufzeichnung ist aktiviert",localRecording:"Lokale Aufzeichnung",me:"Ich",messages:{engaged:"Lokale Aufzeichnung ist aktiviert",finished:"Aufzeichnung der Sitzung {{token}} ist beendet. Senden Sie die aufgezeichnete Datei an den Moderator.",finishedModerator:"Aufzeichnung der Sitzung {{token}} ist beendet. Die Aufzeichnung des lokalen Verlaufs wurde gespeichert. Bitten Sie die anderen Teilnehmer, ihre Aufzeichnungen zu \xfcbermitteln.",notModerator:"Sie sind nicht der Moderator. Sie k\xf6nnen die lokale Aufzeichnung nicht starten oder stoppen."},moderator:"Moderator",no:"Nein",participant:"Teilnehmer",participantStats:"Teilnehmerstatistik",sessionToken:"Sitzungs-Token",start:"Aufnahme starten",stop:"Aufnahme stoppen",yes:"Ja"},lockRoomPassword:"Passwort",lockRoomPasswordUppercase:"Passwort",me:"ich",notify:{connectedOneMember:"{{name}} nimmt am Meeting teil",connectedThreePlusMembers:"{{name}} und {{count}} andere Personen nehmen am Meeting teil",connectedTwoMembers:"{{first}} und {{second}} nehmen am Meeting teil",disconnected:"getrennt",focus:"Konferenz-Organisator",focusFail:"{{component}} ist im Moment nicht verf\xfcgbar - wiederholen in {{ms}} Sekunden",grantedTo:"Moderatorenrechte an {{to}} vergeben.",invitedOneMember:"{{displayName}} wurde eingeladen",invitedThreePlusMembers:"{{name}} und {{count}} andere wurden eingeladen",invitedTwoMembers:"{{first}} und {{second}} wurden eingeladen",kickParticipant:"Sie k\xf6nnen sich f\xfcr mehr Details an {{participantDisplayName}} wenden.",me:"Ich",moderator:"Moderatorenrechte vergeben",muted:"Der Konferenz wurde stumm beigetreten.",mutedTitle:"Stummschaltung aktiv!",mutedRemotelyTitle:"Sie wurden von {{participantDisplayName}} stummgeschaltet!",mutedRemotelyDescription:"Sie k\xf6nnen jederzeit die Stummschaltung aufheben, wenn Sie bereit sind zu sprechen. Wenn Sie fertig sind, k\xf6nnen sich wieder stummschalten, um Ger\xe4usche vom Meeting fernzuhalten.",passwordRemovedRemotely:"$t(lockRoomPasswordUppercase) von einem anderen Teilnehmer entfernt",passwordSetRemotely:"$t(lockRoomPasswordUppercase) von einem anderen Teilnehmer gesetzt",raisedHand:"{{name}} m\xf6chte sprechen.",somebody:"Jemand",startSilentTitle:"Sie sind ohne Audioausgabe beigetreten!",startSilentDescription:"Treten Sie dem Meeting noch einmal bei, um Ihr Audio zu aktivieren",suboptimalBrowserWarning:"Tut uns leid, aber die Konferenz wird mit {{appName}} kein gro\xdfartiges Erlebnis. Wir versuchen immer die Situation zu verbessern, bis dahin empfehlen wir aber die Verwendung einer der vollst\xe4ndig unterst\xfctzen Browser.",suboptimalExperienceTitle:"Browserwarnung",unmute:"Stummschaltung aufheben",newDeviceCameraTitle:"Neue Kamera erkannt",newDeviceAudioTitle:"Neues Audioger\xe4t erkannt",newDeviceAction:"Verwenden"},passwordSetRemotely:"von einem anderen Teilnehmer gesetzt",passwordDigitsOnly:"Bis zu {{number}} Ziffern",poweredby:"Betrieben von",presenceStatus:{busy:"Besch\xe4ftigt",calling:"Wird angerufen\u2026",connected:"Verbunden",connecting:"Verbindung wird hergestellt",connecting2:"Wird verbunden*\u2026",disconnected:"Getrennt",expired:"Abgelaufen",ignored:"Ignoriert",initializingCall:"Anruf wird initialisiert\u2026",invited:"Einladen",rejected:"Abgelehnt",ringing:"Es klingelt\u2026"},profile:{setDisplayNameLabel:"Anzeigename festlegen",setEmailInput:"E-Mail eingeben",setEmailLabel:"E-Mail-Adresse f\xfcr Gravatar",title:"Profil"},raisedHand:"Ich m\xf6chte sprechen",recording:{authDropboxText:"In Dropbox hochladen",availableSpace:"Verf\xfcgbarer Speicherplatz: {{spaceLeft}} MB (ca. {{duration}} Minuten Aufzeichnung)",beta:"BETA",busy:"Es werden Ressourcen f\xfcr eine Aufnahme bereitgestellt. Bitte in ein paar Minuten erneut versuchen.",busyTitle:"Alle Aufnahme-Instanzen sind in Gebrauch",error:"Die Aufzeichnung ist fehlgeschlagen. Bitte versuchen Sie es erneut.",expandedOff:"Aufzeichnung wurde gestoppt",expandedOn:"Das Meeting wird momentan aufgezeichnet.",expandedPending:"Aufzeichnung wird gestartet\u2026",failedToStart:"Die Aufnahme konnte nicht gestartet werden",fileSharingdescription:"Aufzeichnung mit Meeting-Teilnehmer teilen",live:"LIVE",loggedIn:"Als {{userName}} angemeldet",off:"Aufnahme gestoppt",offBy:"{{name}} stoppte die Aufnahme",on:"Aufnahme",onBy:"{{name}} startete die Aufnahme",pending:"Aufzeichnung des Meetings wird vorbereitet\u2026",rec:"AUFZ",serviceDescription:"Ihre Aufzeichnung wird vom Aufzeichnungsdienst gespeichert",serviceName:"Aufnahmedienst",signIn:"Anmelden",signOut:"Abmelden",unavailable:"Oh! Der {{serviceName}} ist aktuell nicht verf\xfcgbar. Wir arbeiten an der Behebung des Problems. Bitte versuchen Sie es sp\xe4ter noch einmal.",unavailableTitle:"Aufnahme nicht verf\xfcgbar"},sectionList:{pullToRefresh:"Ziehen, um zu aktualisieren"},settings:{calendar:{about:"Die Kalenderintegration von {{appName}} wird verwendet, um ein sicheres Zugreifen auf Ihren Kalender und Auslesen der bevorstehenden Termine zu erm\xf6glichen.",disconnect:"Getrennt",microsoftSignIn:"Mit Microsoft anmelden",signedIn:"Momentan wird auf Kalendertermine von {{email}} zugegriffen. Klicken Sie auf die folgende Schaltfl\xe4che \u201eTrennen\u201c, um den Zugriff auf die Kalendertermine zu stoppen.",title:"Kalender"},devices:"Ger\xe4te",followMe:"Follow-me f\xfcr alle Teilnehmer",language:"Sprache",loggedIn:"Als {{name}} angemeldet",moderator:"Moderator",more:"Mehr",name:"Name",noDevice:"Kein",selectAudioOutput:"Audioausgabe",selectCamera:"Kamera",selectMic:"Mikrofon",startAudioMuted:"Alle Teilnehmer treten stumm geschaltet bei",startVideoMuted:"Alle Teilnehmer treten ohne Video bei",title:"Einstellungen"},settingsView:{advanced:"Erweitert",alertOk:"OK",alertTitle:"Warnung",alertURLText:"Die angegebene Server-URL ist ung\xfcltig",buildInfoSection:"Build-Informationen",conferenceSection:"Konferenz",disableCallIntegration:"Native Anrufintegration deaktivieren",disableP2P:"Ende-zu-Ende-Modus deaktivieren",displayName:"Anzeigename",email:"E-Mail",header:"Einstellungen",profileSection:"Profil",serverURL:"Server-URL",showAdvanced:"Erweiterte Einstellungen anzeigen",startWithAudioMuted:"Stumm beitreten",startWithVideoMuted:"Ohne Video beitreten",version:"Version"},share:{dialInfoText:"\n\n=====\n\nWollen Sie sich nur auf Ihrem Telefon einw\xe4hlen?\n\n{{{defaultDialInNumber}}}Klicken Sie auf diesen Link, um die eingew\xe4hlten Telefonnummern f\xfcr dieses Meeting zu sehen\n{{dialInfoPageUrl}}",mainText:"Klicken Sie auf den folgenden Link, um dem Meeting beizutreten:\n{{roomUrl}}"},speaker:"Sprecher",speakerStats:{hours:"{{count}}h",minutes:"{{count}}m",name:"Name",seconds:"{{count}}s",speakerStats:"Sprecher-Statistiken",speakerTime:"Sprecher-Zeit"},startupoverlay:{policyText:" ",title:"{{app}} ben\xf6tigt Kamera und Mikrofon."},suspendedoverlay:{rejoinKeyTitle:"Erneut teilnehmen",text:"\u201eErneut teilnehmen\u201c-Schaltfl\xe4che bet\xe4tigen, um erneut zu verbinden.",title:"Die Konferenz wurde unterbrochen, weil der Standby-Modus aktiviert wurde."},toolbar:{accessibilityLabel:{audioOnly:"\u201eNur Audio\u201c ein-/ausschalten",audioRoute:"Audioger\xe4t ausw\xe4hlen",callQuality:"Qualit\xe4tseinstellungen",cc:"Untertitel ein-/ausschalten",chat:"Chatfenster ein-/ausblenden",document:"Geteiltes Dokument schlie\xdfen",download:"Unsere Apps herunterladen",feedback:"Feedback hinterlassen",fullScreen:"Vollbildmodus aktivieren/deaktivieren",hangup:"Anruf beenden",help:"Hilfe",invite:"Teilnehmer einladen",kick:"Teilnehmer entfernen",localRecording:"Lokale Aufzeichnungssteuerelemente ein-/ausschalten",lockRoom:"Meeting-Passwort ein-/auschalten",moreActions:"Men\xfc \u201eWeitere Aktionen\u201c ein-/ausschalten",moreActionsMenu:"Men\xfc \u201eWeitere Aktionen\u201c",moreOptions:"Men\xfc \u201eWeitere Optionen\u201c",mute:"\u201eAudio stummschalten\u201c ein-/ausschalten",muteEveryone:"Alle stummschalten",pip:"Bild-in-Bild-Modus ein-/ausschalten",privateMessage:"Private Nachricht senden",profile:"Profil bearbeiten",raiseHand:"\u201eMelden\u201c ein-/ausschalten",recording:"Aufzeichnung ein-/ausschalten",remoteMute:"Teilnehmer stummschalten",Settings:"Einstellungen ein-/ausschalten",sharedvideo:"YouTube-Videofreigabe ein-/ausschalten",shareRoom:"Person einladen",shareYourScreen:"Bildschirmfreigabe ein-/ausschalten",shortcuts:"Tastenkombinationen ein-/ausblenden",show:"Im Vordergrund anzeigen",speakerStats:"Sprecherstatistik ein-/ausblenden",tileView:"Kachelansicht ein-/ausschalten",toggleCamera:"Kamera wechseln",videomute:"\u201eVideo stummschalten\u201c ein-/ausschalten",videoblur:"Video-Unsch\xe4rfe ein-/ausschalten"},addPeople:"Teilnehmer zur Konferenz hinzuf\xfcgen",audioOnlyOff:"Modus \u201eNur Audio\u201c deaktivieren",audioOnlyOn:"Modus \u201eNur Audio\u201c aktivieren",audioRoute:"Audioger\xe4t ausw\xe4hlen",authenticate:"Anmelden",callQuality:"Qualit\xe4tseinstellungen",chat:"Chat \xf6ffnen / schlie\xdfen",closeChat:"Chat schlie\xdfen",documentClose:"Geteiltes Dokument schlie\xdfen",documentOpen:"Geteiltes Dokument \xf6ffnen",download:"Unsere Apps herunterladen",enterFullScreen:"Vollbildmodus",enterTileView:"Kachelansicht einschalten",exitFullScreen:"Vollbildmodus verlassen",exitTileView:"Kachelansicht ausschalten",feedback:"Feedback hinterlassen",hangup:"Verlassen",help:"Hilfe",invite:"Teilnehmer einladen",login:"Anmelden",logout:"Abmelden",lowerYourHand:"Hand senken",moreActions:"Weitere Einstellungen",moreOptions:"Weitere Optionen",mute:"Stummschaltung aktivieren / deaktivieren",muteEveryone:"Alle stummschalten",noAudioSignalTitle:"Es kommt kein Input von Ihrem Mikrofon!",noAudioSignalDesc:"Wenn Sie das Ger\xe4t nicht absichtlich \xfcber die Systemeinstellungen oder die Hardware stumm geschaltet haben, sollten Sie einen Wechsel des Ger\xe4ts in Erw\xe4gung ziehen.",noAudioSignalDescSuggestion:"Wenn Sie das Ger\xe4t nicht absichtlich \xfcber die Systemeinstellungen oder die Hardware stummgeschaltet haben, sollten Sie einen Wechsel auf das vorgeschlagene Ger\xe4t in Erw\xe4gung ziehen.",noAudioSignalDialInDesc:"Sie k\xf6nnen sich auch \xfcber die Einwahlnummer einw\xe4hlen:",noAudioSignalDialInLinkDesc:"Einwahlnummern:",noisyAudioInputTitle:"Ihr Mikrofon scheint l\xe4rmintensiv zu sein!",noisyAudioInputDesc:"Es klingt, als ob Ihr Mikrofon St\xf6rger\xe4usche verursacht. Bitte \xfcberlegen Sie, ob Sie das Ger\xe4t stummschalten oder austauschen wollen.",openChat:"Chat \xf6ffnen",pip:"Bild-in-Bild-Modus einschalten",privateMessage:"Private Nachricht senden",profile:"Profil bearbeiten",raiseHand:"Hand erheben",raiseYourHand:"Melden",Settings:"Einstellungen",sharedvideo:"YouTube-Video teilen",shareRoom:"Person einladen",shortcuts:"Tastenk\xfcrzel anzeigen",speakerStats:"Sprecher-Statistiken",startScreenSharing:"Bildschirmfreigabe starten",startSubtitles:"Untertitel einschalten",stopScreenSharing:"Bildschirmfreigabe stoppen",stopSubtitles:"Untertitel ausschalten",stopSharedVideo:"YouTube-Video stoppen",talkWhileMutedPopup:"Versuchen Sie zu sprechen? Ihr Mikrofon ist stummgeschaltet.",tileViewToggle:"Kachelansicht ein-/ausschalten",toggleCamera:"Kamera wechseln",videomute:"Kamera starten / stoppen",startvideoblur:"Hintergrundunsch\xe4rfe aktivieren",stopvideoblur:"Hintergrundunsch\xe4rfe deaktivieren"},transcribing:{ccButtonTooltip:"Untertitel ein-/ausschalten",error:"Die Aufzeichnung ist fehlgeschlagen. Bitte versuchen Sie es erneut.",expandedLabel:"Transkribieren ist derzeit eingeschaltet",failedToStart:"Transkribieren konnte nicht gestartet werden",labelToolTip:"Das Meeting wird transkribiert",off:"Transkribieren gestoppt",pending:"Transkribieren des Meetings wird vorbereitet\u2026",start:"Anzeige der Untertitel starten",stop:"Anzeige der Untertitel stoppen",tr:"TR"},userMedia:{androidGrantPermissions:"W\xe4hlen Sie Zulassen, wenn der Browser um Berechtigungen bittet.",chromeGrantPermissions:"W\xe4hlen Sie Zulassen, wenn der Browser um Berechtigungen bittet.",edgeGrantPermissions:"W\xe4hlen Sie Ja, wenn der Browser um Berechtigungen bittet.",electronGrantPermissions:"Bitte Berechtigungen zur Verwendung der Kamera und des Mikrofons erteilen",firefoxGrantPermissions:"W\xe4hlen Sie Erlauben, wenn der Browser um Berechtigungen bittet.",iexplorerGrantPermissions:"W\xe4hlen Sie OK, wenn der Browser um Berechtigungen bittet.",nwjsGrantPermissions:"Bitte Berechtigungen zur Verwendung der Kamera und des Mikrofons erteilen",operaGrantPermissions:"W\xe4hlen Sie Zulassen, wenn der Browser um Berechtigungen bittet.","react-nativeGrantPermissions":"W\xe4hlen Sie Erlauben, wenn der Browser um Berechtigungen bittet.",safariGrantPermissions:"W\xe4hlen Sie OK, wenn der Browser um Berechtigungen bittet."},videoSIPGW:{busy:"Es stehen keine freien Ressourcen zur Verf\xfcgung. Bitte versuchen Sie es sp\xe4ter noch einmal.",busyTitle:"Keine freien Ressourcen",errorAlreadyInvited:"{{displayName}} ist bereits eingeladen",errorInvite:"Die Konferenz konnte nicht gestartet werden. Bitte versuchen Sie es sp\xe4ter noch einmal.",errorInviteFailed:"Wir arbeiten an der Behebung des Problems. Bitte versuchen Sie es sp\xe4ter noch einmal.",errorInviteFailedTitle:"{{displayName}} konnte nicht eingeladen werden",errorInviteTitle:"Fehler beim Erstellen der Konferenz",pending:"{{displayName}} wurde eingeladen"},videoStatus:{audioOnly:"AUD",audioOnlyExpanded:"Sie befinden sich im Modus \u201eNur Audio\u201c. Dieser Modus ben\xf6tigt weniger Bandbreite, Sie sehen jedoch nicht die Videos der anderen.",callQuality:"Videoqualit\xe4t",hd:"HD",hdTooltip:"Video wird in hoher Aufl\xf6sung angezeigt",highDefinition:"Hohe Aufl\xf6sung",labelTooiltipNoVideo:"Kein Video",labelTooltipAudioOnly:"\u201eNur Audio\u201c-Modus aktiv",ld:"LD",ldTooltip:"Video wird in niedriger Aufl\xf6sung angezeigt",lowDefinition:"Niedrige Aufl\xf6sung",onlyAudioAvailable:"Nur Ton",onlyAudioSupported:"In diesem Browser wird nur Audio unterst\xfctzt.",p2pEnabled:"Ende-zu-Ende aktiviert",p2pVideoQualityDescription:"Im Ende-zu-Ende-Modus kann die empfangene Videoqualit\xe4t nur zwischen \u201eHoch\u201c und \u201eNur Audio\u201c umgeschaltet werden. Andere Einstellungen werden erst beim Verlassen des Ende-zu-Ende-Modus ber\xfccksichtigt.",recHighDefinitionOnly:"Hohe Qualit\xe4t wird bevorzugt.",sd:"SD",sdTooltip:"Video wird in Standardaufl\xf6sung angezeigt",standardDefinition:"Standardaufl\xf6sung"},videothumbnail:{domute:"Stummschalten",domuteOthers:"Alle anderen stummschalten",flip:"Spiegeln",kick:"Hinauswerfen",moderator:"Moderator",mute:"Teilnehmer ist stumm geschaltet",muted:"Stummgeschaltet",remoteControl:"Fernsteuerung",show:"Im Vordergrund anzeigen",videomute:"Teilnehmer hat die Kamera angehalten"},welcomepage:{accessibilityLabel:{join:"Zum Teilnehmen tippen",roomname:"Konferenzname eingeben"},appDescription:"Auf geht's! Starten Sie eine Videokonferenz mit dem ganzen Team. Oder besser noch: Laden Sie alle ein, die Sie kennen. {{app}} ist eine vollst\xe4ndig verschl\xfcsselte, aus 100 % Open-Source-Software bestehende Videokonferenzl\xf6sung, die Sie den ganzen Tag kostenlos verwenden k\xf6nnen \u2014 ohne Registrierung.",audioVideoSwitch:{audio:"Audio",video:"Video"},calendar:"Kalender",connectCalendarButton:"Kalender verbinden",connectCalendarText:"Verbinden Sie Ihren Kalender, um all Ihre Meetings in {{app}} anzuzeigen. F\xfcgen Sie zudem {{provider}}-Meetings in Ihren Kalender ein und starten Sie sie mit nur einem Klick.",enterRoomTitle:"Neues Meeting starten",roomNameAllowedChars:"Der Meeting-Name sollte keines der folgenden Zeichen enthalten: ?, &, :, ', \", %, #.",go:"Los",goSmall:"Los",join:"Beitreten",info:"Informationen",privacy:"Datenschutz",recentList:"Letzte",recentListDelete:"L\xf6schen",recentListEmpty:"Die Liste \u201eLetzte\u201c ist momentan leer. Chatten Sie mit Ihrem Team. Sie finden all Ihre letzten Meetings hier.",reducedUIText:"Willkommen bei {{app}}!",roomname:"Konferenzname eingeben",roomnameHint:"Name oder URL der Konferenz, der Sie beitreten m\xf6chten. Sie k\xf6nnen einen Namen erfinden, er muss nur den anderen Teilnehmern \xfcbermittelt werden, damit diese der gleichen Konferenz beitreten.",sendFeedback:"Feedback senden",terms:"AGB",title:"Sichere, mit umfassenden Funktionen ausgestattete und vollkommen kostenlose Videokonferenzen"},lonelyMeetingExperience:{button:"Andere einladen",youAreAlone:"Nur Sie sind in diesem Meeting"}}},659,[]); +__d(function(e,s,o,t,n,r,a){n.exports={en:"",af:"",az:"",bg:"",cs:"",de:"",el:"",eo:"",es:"",fr:"",hy:"",it:"",ja:"",ko:"",nb:"",oc:"",pl:"",ptBR:"",ru:"",sk:"",sl:"",sv:"",tr:"",vi:"",zhCN:""}},660,[]); +__d(function(e,o,t,r,n,i,a){n.exports={addPeople:{add:"Invite",countryNotSupported:"We do not support this destination yet.",countryReminder:"Calling outside the US? Please make sure you start with the country code!",disabled:"You can't invite people.",failedToAdd:"Failed to add members",footerText:"Dialling out is disabled.",loading:"Searching for people and phone numbers",loadingNumber:"Validating phone number",loadingPeople:"Searching for people to invite",noResults:"No matching search results",noValidNumbers:"Please enter a phone number",searchNumbers:"Add phone numbers",searchPeople:"Search for people",searchPeopleAndNumbers:"Search for people or add their phone numbers",telephone:"Telephone: {{number}}",title:"Invite people to this meeting"},audioDevices:{bluetooth:"Bluetooth",headphones:"Headphones",phone:"Phone",speaker:"Speaker"},audioOnly:{audioOnly:"Audio only"},calendarSync:{addMeetingURL:"Add a meeting link",confirmAddLink:"Do you want to add a Jitsi link to this event?",error:{appConfiguration:"Calendar integration is not properly configured.",generic:"An error has occurred. Please check your calendar settings or try refreshing the calendar.",notSignedIn:"An error occurred while authenticating to see calendar events. Please check your calendar settings and try logging in again."},join:"Join",joinTooltip:"Join the meeting",nextMeeting:"next meeting",noEvents:"There are no upcoming events scheduled.",ongoingMeeting:"ongoing meeting",permissionButton:"Open settings",permissionMessage:"The Calendar permission is required to see your meetings in the app.",refresh:"Refresh calendar",today:"Today"},chat:{error:"Error: your message \"{{originalText}}\" was not sent. Reason: {{error}}",messagebox:"Type a message",nickname:{popover:"Choose a nickname",title:"Enter a nickname to use chat"},title:"Chat"},connectingOverlay:{joiningRoom:"Connecting you to your meeting..."},connection:{ATTACHED:"Attached",AUTHENTICATING:"Authenticating",AUTHFAIL:"Authentication failed",CONNECTED:"Connected",CONNECTING:"Connecting",CONNFAIL:"Connection failed",DISCONNECTED:"Disconnected",DISCONNECTING:"Disconnecting",ERROR:"Error",RECONNECTING:"A network problem occurred. Reconnecting..."},connectionindicator:{address:"Address:",bandwidth:"Estimated bandwidth:",bitrate:"Bitrate:",bridgeCount:"Server count: ",connectedTo:"Connected to:",framerate:"Frame rate:",less:"Show less",localaddress:"Local address:",localaddress_plural:"Local addresses:",localport:"Local port:",localport_plural:"Local ports:",more:"Show more",packetloss:"Packet loss:",quality:{good:"Good",inactive:"Inactive",lost:"Lost",nonoptimal:"Nonoptimal",poor:"Poor"},remoteaddress:"Remote address:",remoteaddress_plural:"Remote addresses:",remoteport:"Remote port:",remoteport_plural:"Remote ports:",resolution:"Resolution:",status:"Connection:",transport:"Transport:",transport_plural:"Transports:",turn:" (turn)"},dateUtils:{earlier:"Earlier",today:"Today",yesterday:"Yesterday"},deepLinking:{appNotInstalled:"You need the {{app}} mobile app to join this meeting on your phone.",description:"Nothing happened? We tried launching your meeting in the {{app}} desktop app. Try again or launch it in the {{app}} web app.",descriptionWithoutWeb:"",downloadApp:"Download the app",launchWebButton:"Launch in web",openApp:"Continue to the app",title:"Launching your meeting in {{app}}...",tryAgainButton:"Try again in desktop"},defaultLink:"e.g. {{url}}",deviceError:{cameraError:"Failed to access your camera",cameraPermission:"Error obtaining camera permission",microphoneError:"Failed to access your microphone",microphonePermission:"Error obtaining microphone permission"},deviceSelection:{noPermission:"Permission not granted",previewUnavailable:"Preview unavailable",selectADevice:"Select a device",testAudio:"Play a test sound"},dialog:{accessibilityLabel:{liveStreaming:"Live Stream"},allow:"Allow",alreadySharedVideoMsg:"Another member is already sharing a video. This conference allows only one shared video at a time.",alreadySharedVideoTitle:"Only one shared video is allowed at a time",applicationWindow:"Application window",Back:"Back",cameraConstraintFailedError:"Your camera does not satisfy some of the required constraints.",cameraNotFoundError:"Camera was not found.",cameraNotSendingData:"We are unable to access your camera. Please check if another application is using this device, select another device from the settings menu or try to reload the application.",cameraNotSendingDataTitle:"Unable to access camera",cameraPermissionDeniedError:"You have not granted permission to use your camera. You can still join the conference but others won't see you. Use the camera button in the address bar to fix this.",cameraUnknownError:"Cannot use camera for an unknown reason.",cameraUnsupportedResolutionError:"Your camera does not support required video resolution.",Cancel:"Cancel",close:"Close",conferenceDisconnectMsg:"You may want to check your network connection. Reconnecting in {{seconds}} sec...",conferenceDisconnectTitle:"You have been disconnected.",conferenceReloadMsg:"We're trying to fix this. Reconnecting in {{seconds}} sec...",conferenceReloadTitle:"Unfortunately, something went wrong.",confirm:"Confirm",confirmNo:"No",confirmYes:"Yes",connectError:"Oops! Something went wrong and we couldn't connect to the conference.",connectErrorWithMsg:"Oops! Something went wrong and we couldn't connect to the conference: {{msg}}",connecting:"Connecting",contactSupport:"Contact support",copy:"Copy",dismiss:"Dismiss",displayNameRequired:"Display name is required",done:"Done",enterDisplayName:"Please enter your display name",error:"Error",externalInstallationMsg:"You need to install our desktop sharing extension.",externalInstallationTitle:"Extension required",goToStore:"Go to the webstore",gracefulShutdown:"Our service is currently down for maintenance. Please try again later.",IamHost:"I am the host",incorrectRoomLockPassword:"",incorrectPassword:"Incorrect username or password",inlineInstallationMsg:"You need to install our desktop sharing extension.",inlineInstallExtension:"Install now",internalError:"Oops! Something went wrong. The following error occurred: {{error}}",internalErrorTitle:"Internal error",kickMessage:"Ouch! You have been kicked out of the meet!",kickParticipantButton:"Kick",kickParticipantDialog:"Are you sure you want to kick this participant?",kickParticipantTitle:"Kick this member?",kickTitle:"Kicked from meeting",liveStreaming:"Live Streaming",liveStreamingDisabledForGuestTooltip:"Guests can't start live streaming.",liveStreamingDisabledTooltip:"Start live stream disabled.",lockMessage:"Failed to lock the conference.",lockRoom:"Add meeting password",lockTitle:"Lock failed",logoutQuestion:"Are you sure you want to logout and stop the conference?",logoutTitle:"Log out",maxUsersLimitReached:"The limit for maximum number of members has been reached. The conference is full. Please contact the meeting owner or try again later!",maxUsersLimitReachedTitle:"Maximum members limit reached",micConstraintFailedError:"Your microphone does not satisfy some of the required constraints.",micNotFoundError:"Microphone was not found.",micNotSendingData:"We are unable to access your microphone. Please select another device from the settings menu or try to reload the application.",micNotSendingDataTitle:"Unable to access microphone",micPermissionDeniedError:"You have not granted permission to use your microphone. You can still join the conference but others won't hear you. Use the camera button in the address bar to fix this.",micUnknownError:"Cannot use microphone for an unknown reason.",muteParticipantBody:"You won't be able to unmute them, but they can unmute themselves at any time.",muteParticipantButton:"Mute",muteParticipantDialog:"Are you sure you want to mute this participant? You won't be able to unmute them, but they can unmute themselves at any time.",muteParticipantTitle:"Mute this member?",Ok:"Ok",passwordLabel:"Password",passwordNotSupported:"Setting a meeting password is not supported.",passwordNotSupportedTitle:"Password not supported",passwordRequired:"Password required",popupError:"Your browser is blocking pop-up windows from this site. Please enable pop-ups in your browser's security settings and try again.",popupErrorTitle:"Pop-up blocked",recording:"Recording",recordingDisabledForGuestTooltip:"Guests can't start recordings.",recordingDisabledTooltip:"Start recording disabled.",rejoinNow:"Rejoin now",remoteControlAllowedMessage:"{{user}} accepted your remote control request!",remoteControlDeniedMessage:"{{user}} rejected your remote control request!",remoteControlErrorMessage:"An error occurred while trying to request remote control permissions from {{user}}!",remoteControlRequestMessage:"Will you allow {{user}} to remotely control your desktop?",remoteControlShareScreenWarning:"Note that if you press \"Allow\" you will share your screen!",remoteControlStopMessage:"The remote control session ended!",remoteControlTitle:"Remote desktop control",Remove:"Remove",removePassword:"Remove password",removeSharedVideoMsg:"Are you sure you would like to remove your shared video?",removeSharedVideoTitle:"Remove shared video",reservationError:"Reservation system error",reservationErrorMsg:"Error code: {{code}}, message: {{msg}}",retry:"Retry",screenSharingFailedToInstall:"Oops! Your screen sharing extension failed to install.",screenSharingFailedToInstallTitle:"Screen sharing extension failed to install",screenSharingFirefoxPermissionDeniedError:"Something went wrong while we were trying to share your screen. Please make sure that you have given us permission to do so. ",screenSharingFirefoxPermissionDeniedTitle:"Oops! We weren\u2019t able to start screen sharing!",screenSharingPermissionDeniedError:"Oops! Something went wrong with your screen sharing extension permissions. Please reload and try again.",serviceUnavailable:"Service unavailable",sessTerminated:"Call terminated",Share:"Share",shareVideoLinkError:"Please provide a correct youtube link.",shareVideoTitle:"Share a video",shareYourScreen:"Share your screen",shareYourScreenDisabled:"Screen sharing disabled.",shareYourScreenDisabledForGuest:"Guests can't screen share.",startLiveStreaming:"Start live stream",startRecording:"Start recording",startRemoteControlErrorMessage:"An error occurred while trying to start the remote control session!",stopLiveStreaming:"Stop live stream",stopRecording:"Stop recording",stopRecordingWarning:"Are you sure you would like to stop the recording?",stopStreamingWarning:"Are you sure you would like to stop the live streaming?",streamKey:"Live stream key",Submit:"Submit",thankYou:"Thank you for using {{appName}}!",token:"token",tokenAuthFailed:"Sorry, you're not allowed to join this call.",tokenAuthFailedTitle:"Authentication failed",transcribing:"Transcribing",unlockRoom:"Remove meeting password",userPassword:"user password",WaitForHostMsg:"The conference {{room}} has not yet started. If you are the host then please authenticate. Otherwise, please wait for the host to arrive.",WaitForHostMsgWOk:"The conference {{room}} has not yet started. If you are the host then please press Ok to authenticate. Otherwise, please wait for the host to arrive.",WaitingForHost:"Waiting for the host ...",Yes:"Yes",yourEntireScreen:"Your entire screen"},dialOut:{statusMessage:"is now {{status}}"},feedback:{average:"Average",bad:"Bad",detailsLabel:"Tell us more about it.",good:"Good",rateExperience:"Rate your meeting experience",veryBad:"Very Bad",veryGood:"Very Good"},incomingCall:{answer:"Answer",audioCallTitle:"Incoming call",decline:"Dismiss",productLabel:"from Jitsi Meet",videoCallTitle:"Incoming video call"},info:{accessibilityLabel:"Show info",addPassword:"Add password",cancelPassword:"Cancel password",conferenceURL:"Link:",country:"Country",dialANumber:"To join your meeting, dial one of these numbers and then enter the pin.",dialInConferenceID:"PIN:",dialInNotSupported:"Sorry, dialling in is currently not supported.",dialInNumber:"Dial-in:",dialInSummaryError:"Error fetching dial-in info now. Please try again later.",dialInTollFree:"Toll Free",genericError:"Whoops, something went wrong.",inviteLiveStream:"To view the live stream of this meeting, click this link: {{url}}",invitePhone:"One tap audio Dial In: {{number}},,{{conferenceID}}#",invitePhoneAlternatives:"",inviteURLFirstPartGeneral:"You are invited to join a meeting.",inviteURLFirstPartPersonal:"{{name}} is inviting you to a meeting.\n",inviteURLSecondPart:"\nJoin the meeting:\n{{url}}\n",liveStreamURL:"Live stream:",moreNumbers:"More numbers",noNumbers:"No dial-in numbers.",noPassword:"None",noRoom:"No room was specified to dial-in into.",numbers:"Dial-in Numbers",password:"Password:",title:"Share",tooltip:"Share link and dial-in info for this meeting",label:"Meeting info"},inviteDialog:{alertText:"Failed to invite some participants.",header:"Invite",searchCallOnlyPlaceholder:"Enter phone number",searchPeopleOnlyPlaceholder:"Search for participants",searchPlaceholder:"Participant or phone number",send:"Send"},inlineDialogFailure:{msg:"We stumbled a bit.",retry:"Try again",support:"Support",supportMsg:"If this keeps happening, reach out to"},keyboardShortcuts:{focusLocal:"Focus on your video",focusRemote:"Focus on another person's video",fullScreen:"View or exit full screen",keyboardShortcuts:"Keyboard shortcuts",localRecording:"Show or hide local recording controls",mute:"Mute or unmute your microphone",pushToTalk:"Push to talk",raiseHand:"Raise or lower your hand",showSpeakerStats:"Show speaker stats",toggleChat:"Open or close the chat",toggleFilmstrip:"Show or hide video thumbnails",toggleScreensharing:"Switch between camera and screen sharing",toggleShortcuts:"Show or hide keyboard shortcuts",videoMute:"Start or stop your camera"},liveStreaming:{busy:"We're working on freeing streaming resources. Please try again in a few minutes.",busyTitle:"All streamers are currently busy",changeSignIn:"Switch accounts.",choose:"Choose a live stream",chooseCTA:"Choose a streaming option. You're currently logged in as {{email}}.",enterStreamKey:"Enter your YouTube live stream key here.",error:"Live Streaming failed. Please try again.",errorAPI:"An error occurred while accessing your YouTube broadcasts. Please try logging in again.",errorLiveStreamNotEnabled:"Live Streaming is not enabled on {{email}}. Please enable live streaming or log into an account with live streaming enabled.",expandedOff:"The live streaming has stopped",expandedOn:"The meeting is currently being streamed to YouTube.",expandedPending:"The live streaming is being started...",failedToStart:"Live Streaming failed to start",getStreamKeyManually:"We weren\u2019t able to fetch any live streams. Try getting your live stream key from YouTube.",invalidStreamKey:"Live stream key may be incorrect.",off:"Live Streaming stopped",on:"Live Streaming",pending:"Starting Live Stream...",serviceName:"Live Streaming service",signedInAs:"You are currently signed in as:",signIn:"Sign in with Google",signInCTA:"Sign in or enter your live stream key from YouTube.",signOut:"Sign out",start:"Start a live stream",streamIdHelp:"What's this?",unavailableTitle:"Live Streaming unavailable"},localRecording:{clientState:{off:"Off",on:"On",unknown:"Unknown"},dialogTitle:"Local Recording Controls",duration:"Duration",durationNA:"N/A",encoding:"Encoding",label:"LOR",labelToolTip:"Local recording is engaged",localRecording:"Local Recording",me:"Me",messages:{engaged:"Local recording engaged.",finished:"Recording session {{token}} finished. Please send the recorded file to the moderator.",finishedModerator:"Recording session {{token}} finished. The recording of the local track has been saved. Please ask the other participants to submit their recordings.",notModerator:"You are not the moderator. You cannot start or stop local recording."},moderator:"Moderator",no:"No",participant:"Participant",participantStats:"Participant Stats",sessionToken:"Session Token",start:"Start Recording",stop:"Stop Recording",yes:"Yes"},lockRoomPassword:"password",lockRoomPasswordUppercase:"Password",me:"me",notify:{connectedOneMember:"{{name}} joined the meeting",connectedThreePlusMembers:"{{name}} and {{count}} others joined the meeting",connectedTwoMembers:"{{first}} and {{second}} joined the meeting",disconnected:"disconnected",focus:"Conference focus",focusFail:"{{component}} not available - retry in {{ms}} sec",grantedTo:"Moderator rights granted to {{to}}!",invitedOneMember:"{{name}} has been invited",invitedThreePlusMembers:"{{name}} and {{count}} others have been invited",invitedTwoMembers:"{{first}} and {{second}} have been invited",kickParticipant:"{{kicked}} was kicked by {{kicker}}",me:"Me",moderator:"Moderator rights granted!",muted:"You have started the conversation muted.",mutedTitle:"You're muted!",mutedRemotelyTitle:"You have been muted by {{participantDisplayName}}!",mutedRemotelyDescription:"",passwordRemovedRemotely:"",passwordSetRemotely:"",raisedHand:"{{name}} would like to speak.",somebody:"Somebody",startSilentTitle:"",startSilentDescription:"",suboptimalExperienceDescription:"Eer... we are afraid your experience with {{appName}} isn't going to be that great here. We are looking for ways to improve this but, until then, please try using one of the fully supported browsers.",suboptimalExperienceTitle:"Browser Warning",unmute:"",newDeviceCameraTitle:"New camera detected",newDeviceAudioTitle:"New audio device detected",newDeviceAction:"Use"},passwordSetRemotely:"set by another member",passwordDigitsOnly:"Up to {{number}} digits",poweredby:"powered by",presenceStatus:{busy:"Busy",calling:"Calling...",connected:"Connected",connecting:"Connecting...",connecting2:"Connecting*...",disconnected:"Disconnected",expired:"Expired",ignored:"Ignored",initializingCall:"Initialising Call...",invited:"Invited",rejected:"Rejected",ringing:"Ringing..."},profile:{setDisplayNameLabel:"Set your display name",setEmailInput:"Enter e-mail",setEmailLabel:"Set your gravatar email",title:"Profile"},recording:{authDropboxText:"Upload to Dropbox",availableSpace:"Available space: {{spaceLeft}} MB (approximately {{duration}} minutes of recording)",beta:"BETA",busy:"We're working on freeing recording resources. Please try again in a few minutes.",busyTitle:"All recorders are currently busy",error:"Recording failed. Please try again.",expandedOff:"Recording has stopped",expandedOn:"The meeting is currently being recorded.",expandedPending:"Recording is being started...",failedToStart:"Recording failed to start",fileSharingdescription:"Share recording with meeting participants",live:"LIVE",loggedIn:"Logged in as {{userName}}",off:"Recording stopped",on:"Recording",pending:"Preparing to record the meeting...",rec:"REC",serviceDescription:"Your recording will be saved by the recording service",serviceName:"Recording service",signIn:"Sign in",signOut:"Sign out",unavailable:"Oops! The {{serviceName}} is currently unavailable. We're working on resolving the issue. Please try again later.",unavailableTitle:"Recording unavailable"},sectionList:{pullToRefresh:"Pull to refresh"},settings:{calendar:{about:"The {{appName}} calendar integration is used to securely access your calendar so it can read upcoming events.",disconnect:"Disconnect",microsoftSignIn:"Sign in with Microsoft",signedIn:"Currently accessing calendar events for {{email}}. Click the Disconnect button below to stop accessing calendar events.",title:"Calendar"},devices:"Devices",followMe:"Everyone follows me",language:"Language",loggedIn:"Logged in as {{name}}",moderator:"Moderator",more:"More",name:"Name",noDevice:"None",selectAudioOutput:"Audio output",selectCamera:"Camera",selectMic:"Microphone",startAudioMuted:"Everyone starts muted",startVideoMuted:"Everyone starts hidden",title:"Settings"},settingsView:{alertOk:"OK",alertTitle:"Warning",alertURLText:"The entered server URL is invalid",buildInfoSection:"Build Information",conferenceSection:"Conference",displayName:"Display name",email:"Email",header:"Settings",profileSection:"Profile",serverURL:"Server URL",startWithAudioMuted:"Start with audio muted",startWithVideoMuted:"Start with video muted",version:"Version"},share:{dialInfoText:"\n\n=====\n\nJust want to dial in on your phone?\n\n{{defaultDialInNumber}}Click this link to see the dial in phone numbers for this meeting\n{{dialInfoPageUrl}}",mainText:"Click the following link to join the meeting:\n{{roomUrl}}"},speaker:"Speaker",speakerStats:{hours:"{{count}}h",minutes:"{{count}}m",name:"Name",seconds:"{{count}}s",speakerStats:"Speaker Stats",speakerTime:"Speaker Time"},startupoverlay:{policyText:" ",title:"{{app}} needs to use your microphone and camera."},suspendedoverlay:{rejoinKeyTitle:"Rejoin",text:"Press the Rejoin button to reconnect.",title:"Your video call was interrupted because this computer went to sleep."},toolbar:{accessibilityLabel:{audioOnly:"Toggle audio only",audioRoute:"Select the sound device",callQuality:"Manage call quality",cc:"Toggle subtitles",chat:"Toggle chat window",document:"Toggle shared document",feedback:"Leave feedback",fullScreen:"Toggle full screen",hangup:"Leave the call",invite:"Invite people",kick:"Kick participant",localRecording:"Toggle local recording controls",lockRoom:"Toggle meeting password",moreActions:"Toggle more actions menu",moreActionsMenu:"More actions menu",mute:"Toggle mute audio",pip:"Toggle Picture-in-Picture mode",profile:"Edit your profile",raiseHand:"Toggle raise hand",recording:"Toggle recording",remoteMute:"Mute participant",Settings:"Toggle settings",sharedvideo:"Toggle Youtube video sharing",shareRoom:"Invite someone",shareYourScreen:"Toggle screenshare",shortcuts:"Toggle shortcuts",show:"",speakerStats:"Toggle speaker statistics",tileView:"Toggle tile view",toggleCamera:"Toggle camera",videomute:"Toggle mute video",videoblur:""},addPeople:"Add people to your call",audioOnlyOff:"Disable audio only mode",audioOnlyOn:"Enable audio only mode",audioRoute:"Select the sound device",authenticate:"Authenticate",callQuality:"Manage call quality",chat:"Open / Close chat",closeChat:"Close chat",documentClose:"Close shared document",documentOpen:"Open shared document",enterFullScreen:"View full screen",enterTileView:"Enter tile view",exitFullScreen:"Exit full screen",exitTileView:"Exit tile view",feedback:"Leave feedback",hangup:"Leave",invite:"Invite people",login:"Log in",logout:"Log out",lowerYourHand:"Lower your hand",moreActions:"More actions",mute:"Mute / Unmute",openChat:"Open chat",pip:"Enter Picture-in-Picture mode",profile:"Edit your profile",raiseHand:"Raise / Lower your hand",raiseYourHand:"Raise your hand",Settings:"Settings",sharedvideo:"Share a YouTube video",shareRoom:"Invite someone",shortcuts:"View shortcuts",speakerStats:"Speaker stats",startScreenSharing:"Start screen sharing",startSubtitles:"Start subtitles",stopScreenSharing:"Stop screen sharing",stopSubtitles:"Stop subtitles",stopSharedVideo:"Stop YouTube video",talkWhileMutedPopup:"Trying to speak? You are muted.",tileViewToggle:"Toggle tile view",toggleCamera:"Toggle camera",videomute:"Start / Stop camera",startvideoblur:"",stopvideoblur:""},transcribing:{ccButtonTooltip:"Start / Stop subtitles",error:"Transcribing failed. Please try again.",expandedLabel:"Transcribing is currently on",failedToStart:"Transcribing failed to start",labelToolTip:"The meeting is being transcribed",off:"Transcribing stopped",pending:"Preparing to transcribe the meeting...",start:"Start showing subtitles",stop:"Stop showing subtitles",tr:"TR"},userMedia:{androidGrantPermissions:"Select Allow when your browser asks for permissions.",chromeGrantPermissions:"Select Allow when your browser asks for permissions.",edgeGrantPermissions:"Select Yes when your browser asks for permissions.",electronGrantPermissions:"Please grant permissions to use your camera and microphone",firefoxGrantPermissions:"Select Share Selected Device when your browser asks for permissions.",iexplorerGrantPermissions:"Select OK when your browser asks for permissions.",nwjsGrantPermissions:"Please grant permissions to use your camera and microphone",operaGrantPermissions:"Select Allow when your browser asks for permissions.","react-nativeGrantPermissions":"Select Allow when your browser asks for permissions.",safariGrantPermissions:"Select OK when your browser asks for permissions."},videoSIPGW:{busy:"We're working on freeing resources. Please try again in a few minutes.",busyTitle:"The Room service is currently busy",errorAlreadyInvited:"{{displayName}} already invited",errorInvite:"Conference not established yet. Please try again later.",errorInviteFailed:"We're working on resolving the issue. Please try again later.",errorInviteFailedTitle:"Inviting {{displayName}} failed",errorInviteTitle:"Error inviting room",pending:"{{displayName}} has been invited"},videoStatus:{audioOnly:"AUD",audioOnlyExpanded:"You are in audio only mode. This mode saves bandwidth but you won't see videos of others.",callQuality:"Call Quality",hd:"HD",highDefinition:"High definition",labelTooiltipNoVideo:"No video",labelTooltipAudioOnly:"Audio-only mode enabled",ld:"LD",lowDefinition:"Low definition",onlyAudioAvailable:"Only audio is available",onlyAudioSupported:"We only support audio in this browser.",p2pEnabled:"Peer to Peer Enabled",p2pVideoQualityDescription:"In peer to peer mode, received call quality can only be toggled between high and audio only. Other settings will not be honoured until peer to peer is exited.",recHighDefinitionOnly:"Will prefer high definition.",sd:"SD",standardDefinition:"Standard definition"},videothumbnail:{domute:"Mute",flip:"Flip",kick:"Kick out",moderator:"Moderator",mute:"Member is muted",muted:"Muted",remoteControl:"Remote control",show:"",videomute:"Member has stopped the camera"},welcomepage:{accessibilityLabel:{join:"Tap to join",roomname:"Enter room name"},appDescription:"Go ahead, video chat with the whole team. In fact, invite everyone you know. {{app}} is a fully encrypted, 100% open source video conferencing solution that you can use all day, every day, for free \u2014 with no account needed.",audioVideoSwitch:{audio:"Voice",video:"Video"},calendar:"Calendar",connectCalendarButton:"Connect your calendar",connectCalendarText:"",enterRoomTitle:"Start a new meeting",go:"GO",join:"JOIN",info:"Info",privacy:"Privacy",recentList:"Recent",recentListDelete:"Delete",recentListEmpty:"Your recent list is currently empty. Chat with your team and you will find all your recent meetings here.",reducedUIText:"",roomname:"Enter room name",roomnameHint:"Enter the name or URL of the room you want to join. You may make a name up, just let the people you are meeting know it so that they enter the same name.",sendFeedback:"Send feedback",terms:"Terms",title:"Secure, fully featured, and completely free video conferencing"}}},661,[]); +__d(function(a,n,r,e,l,o,s){l.exports={en:"Angla",af:"",az:"",bg:"Bulgara",cs:"",de:"Germana",el:"",eo:"Esperanto",es:"Hispana",fr:"Franca",hy:"Armena",it:"Itala",ja:"",ko:"",nb:"Norvega (Bukmola)",oc:"Okcitana",pl:"Pola",ptBR:"Portugala (Brazila)",ru:"Rusa",sk:"Slovaka",sl:"Slovena",sv:"Sveda",tr:"Turka",vi:"",zhCN:"\u0108ina (\u0108inuja)"}},662,[]); +__d(function(e,o,i,a,n,r,t){n.exports={addPeople:{add:"",countryNotSupported:"",countryReminder:"",disabled:"",failedToAdd:"",footerText:"",loading:"",loadingNumber:"",loadingPeople:"",noResults:"Nenio trovita",noValidNumbers:"",searchNumbers:"",searchPeople:"",searchPeopleAndNumbers:"",telephone:"",title:""},audioDevices:{bluetooth:"Bludento",headphones:"Kapa\u016dskultiloj",phone:"Telefono",speaker:"Parolanto"},audioOnly:{audioOnly:"Nur sono"},calendarSync:{addMeetingURL:"",confirmAddLink:"",error:{appConfiguration:"",generic:"",notSignedIn:""},join:"",joinTooltip:"",nextMeeting:"",noEvents:"",ongoingMeeting:"",permissionButton:"",permissionMessage:"",refresh:"",today:""},chat:{error:"",messagebox:"",nickname:{popover:"Elektu ka\u015dnomon",title:""},title:""},connectingOverlay:{joiningRoom:""},connection:{ATTACHED:"Kunligita",AUTHENTICATING:"A\u016dtentiganta",AUTHFAIL:"A\u016dtentigo malsukcesis",CONNECTED:"Konektita",CONNECTING:"Konektanta",CONNFAIL:"Konekto malsukcesis",DISCONNECTED:"Malkonektita",DISCONNECTING:"Malkonektanta",ERROR:"Eraro",RECONNECTING:"Reta eraro okazis. Rekonektanta..."},connectionindicator:{address:"Adreso:",bandwidth:"Anta\u016dkalkulita kapacito:",bitrate:"Bitrapido:",bridgeCount:"",connectedTo:"",framerate:"Bildrapido:",less:"Montri malpli",localaddress:"Loka adreso:",localaddress_plural:"Lokaj adresoj:",localport:"Loka pordo:",localport_plural:"Lokaj pordoj:",more:"Motri pli",packetloss:"Paketperdo:",quality:{good:"Bona",inactive:"Neaktiva",lost:"Perdita",nonoptimal:"Neideala",poor:"Malbona"},remoteaddress:"Fora adreso:",remoteaddress_plural:"Foraj adresoj:",remoteport:"Fora pordo:",remoteport_plural:"Foraj pordoj:",resolution:"Distingivo:",status:"Konekto:",transport:"Transporto:",turn:" (truni)"},dateUtils:{earlier:"",today:"",yesterday:""},deepLinking:{appNotInstalled:"",description:"",descriptionWithoutWeb:"",downloadApp:"El\u015duti la aplika\u0135on",launchWebButton:"",openApp:"",title:"",tryAgainButton:""},defaultLink:"ekz. {{url}}",deviceError:{cameraError:"Atingo de via kamerao malsukcesis",cameraPermission:"Eraro akirante permeson por kamerao",microphoneError:"Atingo de via mikrofono malsukcesis",microphonePermission:"Eraro akirante permeson por mikrofono"},deviceSelection:{noPermission:"Permeso ne estis donita",previewUnavailable:"Anta\u016drigardo ne disponeblas",selectADevice:"Elektu aparaton",testAudio:""},dialog:{accessibilityLabel:{liveStreaming:"Tuja Elsendfluo"},allow:"Permesi",alreadySharedVideoMsg:"",alreadySharedVideoTitle:"Nur unu video estas permesata samtempe.",applicationWindow:"Programa fenestro",Back:"Reen",cameraConstraintFailedError:"Via kamerao ne observas kelkajn neprajn limigojn.",cameraNotFoundError:"Kamerao ne trovita.",cameraNotSendingData:"Via kamerao ne atingeblas al ni. Bonvolu kontroli, \u0109u alia programo jam uzas la aparaton, elekti alian de la agorda menuo, a\u016d provu \u011disdatigi la programon.",cameraNotSendingDataTitle:"Kamerao ne atingeblas",cameraPermissionDeniedError:"Vi ne permesis uzi vian kameraon. Vi povas ali\u011di al la kunveno, sed aliaj ne povos vin vidi. Vi povas tion \u015dan\u011di per la kameraa butono en la adresbreto.",cameraUnknownError:"Ne eblas uzi la kameraon, pro kialo nekonata.",cameraUnsupportedResolutionError:"Via kamerao ne subtenas la bezonatan distingivon.",Cancel:"Rezigni",close:"Fermi",conferenceDisconnectMsg:"Eble kontrolu vian retkonekton. Rekonekto post {{seconds}} sekundoj\u2026",conferenceDisconnectTitle:"Vi malkonekti\u011dis.",conferenceReloadMsg:"Ni penas funkciigi \u0109i tion. Rekonekto post {{seconds}} sekundoj\u2026",conferenceReloadTitle:"Malfeli\u0109e, io misokazis.",confirm:"",confirmNo:"",confirmYes:"Jes",connectError:"Oj! Io misokazis kaj ni ne povis vin konekti al la kunveno.",connectErrorWithMsg:"Oj! Io misokazis kaj ni ne povis vin konekti al la kunveno: {{msg}}",connecting:"Konektanta",contactSupport:"Kontakti helpon",copy:"Kopii",dismiss:"Formeti",displayNameRequired:"",done:"Finita",enterDisplayName:"",error:"Eraro",externalInstallationMsg:"Vi devas instali nian ekranvidadan kromprogramon.",externalInstallationTitle:"Kromprogramo bezonata",goToStore:"Iri al la retvendejo",gracefulShutdown:"Nia servo nun estas eksterreta pro prizorgado. Bonvolu reprovi poste.",IamHost:"Mi estas la gastiganto",incorrectRoomLockPassword:"",incorrectPassword:"Mal\u011dusta pasvorto a\u016d uzantnomo",inlineInstallationMsg:"Vi devas instali nian ekranvidadan kromprogramon.",inlineInstallExtension:"Instali nun",internalError:"Oj! La jena eraro okazis: {{error}}",internalErrorTitle:"Interna eraro",kickMessage:"",kickParticipantButton:"",kickParticipantDialog:"",kickParticipantTitle:"",kickTitle:"",liveStreaming:"Tuja Elsendfluo",liveStreamingDisabledForGuestTooltip:"",liveStreamingDisabledTooltip:"",lockMessage:"\u015closo de la kunveno malsukcesis.",lockRoom:"",lockTitle:"\u015closo malsukcesis",logoutQuestion:"\u0108u vi certe volas adia\u016di kaj fini la kunvenon?",logoutTitle:"Adia\u016di",maxUsersLimitReached:"",maxUsersLimitReachedTitle:"",micConstraintFailedError:"Via mikrofono ne observas kelkajn neprajn limigojn.",micNotFoundError:"Mikrofono ne trovita.",micNotSendingData:"",micNotSendingDataTitle:"",micPermissionDeniedError:"Vi ne permesis uzi vian mikrofonon. Vi povas ali\u011di al la kunveno, sed aliaj ne povos vin a\u016ddi. Vi povas tion \u015dan\u011di per la kameraa butono en la adresbreto.",micUnknownError:"Ne eblas uzi mikrofonon pro kialo nekonata.",muteParticipantBody:"Vi ne povos \u011din malsilentigi, sed \u011di povas sin malsilentigi kiam ajn.",muteParticipantButton:"Silentigi",muteParticipantDialog:"",muteParticipantTitle:"\u0108u silentigi \u0109i tiun partoprenanton?",Ok:"Bone",passwordLabel:"",passwordNotSupported:"Agordo de kunvena pasvorto ne estas subtenata",passwordNotSupportedTitle:"",passwordRequired:"",popupError:"Via foliumilo forbaras \u015dprucfenestrojn de tiu \u0109i retejo. Bonvolu permesi \u015dprucfenestrojn en la prisekuraj agordoj de via fenestro kaj reprovi.",popupErrorTitle:"\u015cprucfenestro barita",recording:"Registranta",recordingDisabledForGuestTooltip:"",recordingDisabledTooltip:"",rejoinNow:"Reali\u011di nun",remoteControlAllowedMessage:"{{user}} akceptis vian teleregan peton!",remoteControlDeniedMessage:"{{user}} rifuzis vian teleregan peton!",remoteControlErrorMessage:"Eraro petante teleregajn permesojn de {{user}}!",remoteControlRequestMessage:"\u0108u vi permesos al {{user}} teleregi vian komputilon?",remoteControlShareScreenWarning:"Sciu, ke se vi premos \xabPermesi\xbb, vi kunhavigos vian ekranon!",remoteControlStopMessage:"Telerega seanco finita!",remoteControlTitle:"Labortabla telerego",Remove:"Forigi",removePassword:"",removeSharedVideoMsg:"\u0108u vi vere volas forigi vian kunhavatan videon?",removeSharedVideoTitle:"Forigi kunhavatan videon",reservationError:"Rezerva sistema eraro",reservationErrorMsg:"Kodo de eraro: {{code}}, mesa\u011do: {{msg}}",retry:"Reprovi",screenSharingFailedToInstall:"Oj! Via ekranvidada kromprogramo malsukcesis instalon.",screenSharingFailedToInstallTitle:"Ekranvidada kromprogramo malsukcesis instalon",screenSharingFirefoxPermissionDeniedError:"",screenSharingFirefoxPermissionDeniedTitle:"",screenSharingPermissionDeniedError:"Oj! Io misokazis pri la permesoj al via ekranvidada kromprogramo. Bonvolu reviziti kaj reprovi.",serviceUnavailable:"Servo ne disponeblas",sessTerminated:"Voko finita",Share:"Kunhavi",shareVideoLinkError:"Bonvolu doni \u011dustan ligilon de YouTube",shareVideoTitle:"Kunhavi videon",shareYourScreen:"Kunhavigi vian ekranon",shareYourScreenDisabled:"",shareYourScreenDisabledForGuest:"",startLiveStreaming:"Fini tujan elsendfluon",startRecording:"Fini registradon",startRemoteControlErrorMessage:"Eraro okazis dum komenco de la telerega seanco!",stopLiveStreaming:"Fini tujan elsendfluon",stopRecording:"Fini registradon",stopRecordingWarning:"\u0108u vi certe volas fini la registradon?",stopStreamingWarning:"\u0108u vi certe volas fini la tujan elsendfluon?",streamKey:"",Submit:"Sendi",thankYou:"Dankon \u0109ar vi uzas {{appName}}!",token:"\u0135etono",tokenAuthFailed:"Pardonu, vi ne rajtas ali\u011di al \u0109i tiu voko.",tokenAuthFailedTitle:"A\u016dtentigo malsukcesis",transcribing:"",unlockRoom:"",userPassword:"uzantopasvorto",WaitForHostMsg:"",WaitForHostMsgWOk:"",WaitingForHost:"Atendanta la gastigan komputilon ...",Yes:"Jes",yourEntireScreen:"Via tuta ekrano"},"\x05dialog":{accessibilityLabel:{}},dialOut:{statusMessage:"nun estas {{status}}"},feedback:{average:"Mezbona",bad:"Malbona",detailsLabel:"",good:"Bona",rateExperience:"Bonvolu priskribi vian sperton.",veryBad:"Tre malbona",veryGood:"Tre bona"},"\x05feedback":{},incomingCall:{answer:"",audioCallTitle:"",decline:"Formeti",productLabel:"",videoCallTitle:""},info:{accessibilityLabel:"",addPassword:"",cancelPassword:"",conferenceURL:"",country:"",dialANumber:"",dialInConferenceID:"",dialInNotSupported:"",dialInNumber:"",dialInSummaryError:"",dialInTollFree:"",genericError:"",inviteLiveStream:"",invitePhone:"",invitePhoneAlternatives:"",inviteURLFirstPartGeneral:"",inviteURLFirstPartPersonal:"",inviteURLSecondPart:"",liveStreamURL:"Tuja Elsendfluo",moreNumbers:"",noNumbers:"",noPassword:"Neniu",noRoom:"",numbers:"",password:"",title:"Kunhavi",tooltip:"",label:""},"\x05info":{},inviteDialog:{alertText:"",header:"",searchCallOnlyPlaceholder:"Enigu telefonnumeron",searchPeopleOnlyPlaceholder:"",searchPlaceholder:"",send:""},inlineDialogFailure:{msg:"Ni iom faletis.",retry:"Bonvolu reprovi",support:"Helpo",supportMsg:"Se tio \u0109i ripeti\u011dos, kontakti\u011du kun"},keyboardShortcuts:{focusLocal:"Fokusi vian propran videon",focusRemote:"Fokusi videon de alia vokano",fullScreen:"\u015calti / Mal\u015dalti tutekranan re\u011dimon",keyboardShortcuts:"Fulmoklavoj",localRecording:"",mute:"Silentigi a\u016d malsilentigi vian mikrofonon",pushToTalk:"Premi por paroli",raiseHand:"Levi a\u016d mallevi manon",showSpeakerStats:"Montri statistikon pri parolintoj",toggleChat:"Malfermi a\u016d fermi la babilon",toggleFilmstrip:"",toggleScreensharing:"Komuti inter kameraa kaj ekrana vidado",toggleShortcuts:"",videoMute:"\u015calti a\u016d mal\u015dalti vian kameraon"},"\x05keyboardShortcuts":{},liveStreaming:{busy:"Ni penas liberigi tujajn elsendilojn. Bonvolu reprovi post kelkaj minutoj.",busyTitle:"\u0108iuj elsendiloj nun okupi\u011das",changeSignIn:"",choose:"",chooseCTA:"",enterStreamKey:"",error:"Tuja elsendfluo malsukcesis. Bonvolu provi denove.",errorAPI:"",errorLiveStreamNotEnabled:"",expandedOff:"",expandedOn:"",expandedPending:"",failedToStart:"Tuja elsendfluo malsukcesis komenci",getStreamKeyManually:"",invalidStreamKey:"",off:"Tuja elsendfluo fini\u011dis",on:"Tuja Elsendfluo",pending:"Komencanta Tujan Elsendfluon...",serviceName:"",signedInAs:"",signIn:"",signInCTA:"",signOut:"",start:"Fini tujan elsendfluon",streamIdHelp:"",unavailableTitle:"Tuja elsendfluo ne disponeblas"},"\x05liveStreaming":{},localRecording:{clientState:{off:"",on:"",unknown:""},dialogTitle:"",duration:"",durationNA:"",encoding:"",label:"",labelToolTip:"",localRecording:"",me:"Mi",messages:{engaged:"",finished:"",finishedModerator:"",notModerator:""},moderator:"Kunvenestro",no:"",participant:"",participantStats:"",sessionToken:"",start:"Fini registradon",stop:"Fini registradon",yes:"Jes"},"\x05localRecording":{},lockRoomPassword:"Pasvorto",lockRoomPasswordUppercase:"Pasvorto",me:"mi",notify:{connectedOneMember:"",connectedThreePlusMembers:"",connectedTwoMembers:"",disconnected:"malkonektita",focus:"Kunvena atento",focusFail:"{{component}} ne atingelbas - reprovo post {{ms}} sekundoj",grantedTo:"Kunvenestraj rajtoj donitaj al {{to}}!",invitedOneMember:"",invitedThreePlusMembers:"",invitedTwoMembers:"",kickParticipant:"",me:"Mi",moderator:"Kunvenestraj rajtoj donitaj!",muted:"Vi komencis la interparolon silente.",mutedTitle:"Vi estas silentigita!",mutedRemotelyTitle:"",mutedRemotelyDescription:"",passwordRemovedRemotely:"",passwordSetRemotely:"",raisedHand:"",somebody:"Iu",startSilentTitle:"",startSilentDescription:"",suboptimalExperienceDescription:"",suboptimalExperienceTitle:"",unmute:"",newDeviceCameraTitle:"",newDeviceAudioTitle:"",newDeviceAction:""},passwordSetRemotely:"agordita de alia partoprenanto",passwordDigitsOnly:"",poweredby:"povigita de",presenceStatus:{busy:"",calling:"",connected:"Konektita",connecting:"Konektanta",connecting2:"Konektanta",disconnected:"Malkonektita",expired:"",ignored:"",initializingCall:"",invited:"",rejected:"",ringing:""},"\x05presenceStatus":{},profile:{setDisplayNameLabel:"Agordi vian videblan nomon",setEmailInput:"Enigu retpo\u015dtadreson",setEmailLabel:"Retpo\u015dtadreso ligita al Gravatar",title:"Profilo"},recording:{authDropboxText:"",availableSpace:"",beta:"",busy:"Ni penas liberigi registrilojn. Bonvolu reprovi post kelkaj minutoj.",busyTitle:"\u0108iuj registriloj nun okupi\u011das",error:"Registrado malsukcesis. Bonvolu provi denove.",expandedOff:"Registrado finita",expandedOn:"",expandedPending:"",failedToStart:"Registrado malsukcesis komenci",fileSharingdescription:"",live:"",loggedIn:"",off:"Registrado finita",on:"Registranta",pending:"",rec:"",serviceDescription:"",serviceName:"",signIn:"",signOut:"",unavailable:"",unavailableTitle:"Registrado ne disponeblas"},"\x05recording":{},sectionList:{pullToRefresh:""},settings:{calendar:{about:"",disconnect:"Malkonektita",microsoftSignIn:"",signedIn:"",title:""},devices:"",followMe:"\u0108iuj sekvas min",language:"",loggedIn:"",moderator:"Kunvenestro",more:"",name:"Nomo",noDevice:"Neniu",selectAudioOutput:"Sona eligo",selectCamera:"Kamerao",selectMic:"Mikrofono",startAudioMuted:"\u0108iuj komenci\u011das silentaj",startVideoMuted:"\u0108iuj komenci\u011das ka\u015ditaj",title:"Agordoj"},"\x05settings":{calendar:{}},settingsView:{alertOk:"",alertTitle:"Averto",alertURLText:"",buildInfoSection:"",conferenceSection:"",displayName:"",email:"",header:"Agordoj",profileSection:"Profilo",serverURL:"",startWithAudioMuted:"",startWithVideoMuted:"",version:""},share:{dialInfoText:"",mainText:""},speaker:"Parolanto",speakerStats:{hours:"{{count}}h",minutes:"{{count}}m",name:"Nomo",seconds:"{{count}}s",speakerStats:"Statistikoj pri parolintoj",speakerTime:"Tempoj de parolintoj"},startupoverlay:{policyText:" ",title:"{{app}} bezonas viajn mikrofonon kaj kameraon."},suspendedoverlay:{rejoinKeyTitle:"Reali\u011di",text:"Premu la butonon Reali\u011di por rekonekti\u011di.",title:"Via vidvoko estis interrompita, \u0109ar la komputilo ekdormis."},toolbar:{accessibilityLabel:{audioOnly:"",audioRoute:"",callQuality:"",cc:"",chat:"",document:"Malfermi / Fermi komunan dokumenton",feedback:"",fullScreen:"",hangup:"",invite:"Inviti homojn",kick:"",localRecording:"",lockRoom:"",moreActions:"",moreActionsMenu:"",mute:"",pip:"",profile:"Redakti vian profilon",raiseHand:"",recording:"",remoteMute:"",Settings:"",sharedvideo:"",shareRoom:"",shareYourScreen:"",shortcuts:"",show:"",speakerStats:"",tileView:"",toggleCamera:"",videomute:"",videoblur:""},addPeople:"Aldoni homojn al via voko",audioOnlyOff:"",audioOnlyOn:"",audioRoute:"",authenticate:"A\u016dtentigi",callQuality:"",chat:"Malfermi / Fermi babilon",closeChat:"",documentClose:"Malfermi / Fermi komunan dokumenton",documentOpen:"Malfermi / Fermi komunan dokumenton",enterFullScreen:"",enterTileView:"",exitFullScreen:"",exitTileView:"",feedback:"",hangup:"Foriri",invite:"Inviti homojn",login:"Saluti",logout:"Adia\u016di",lowerYourHand:"",moreActions:"",mute:"Siletnigi / Malsilentigi",openChat:"",pip:"",profile:"Redakti vian profilon",raiseHand:"Levi / Mallevi vian manon",raiseYourHand:"",Settings:"Agordoj",sharedvideo:"Kunhavi videon de YouTube",shareRoom:"",shortcuts:"",speakerStats:"Statistikoj pri parolintoj",startScreenSharing:"",startSubtitles:"",stopScreenSharing:"",stopSubtitles:"",stopSharedVideo:"",talkWhileMutedPopup:"\u0108u vi klopodas paroli? Vi estas silentigita.",tileViewToggle:"",toggleCamera:"",videomute:"\u015calti / Mal\u015dalti kameraon",startvideoblur:"",stopvideoblur:""},"\x05toolbar":{accessibilityLabel:{}},transcribing:{ccButtonTooltip:"",error:"Registrado malsukcesis. Bonvolu provi denove.",expandedLabel:"",failedToStart:"",labelToolTip:"",off:"",pending:"",start:"",stop:"",tr:""},"\x05transcribing":{},userMedia:{androidGrantPermissions:"Elektu Permesi kiam via foliumilo petos permesojn.",chromeGrantPermissions:"Elektu Permesi kiam via foliumilo petos permesojn.",edgeGrantPermissions:"Elektu Jes kiam via foliumilo petos permesojn.",electronGrantPermissions:"Bonvolu doni la permeson uzi viajn kameraon kaj mikrofonon",firefoxGrantPermissions:"Elektu Havigi elektitan aparaton kiam via foliumilo petos permesojn.",iexplorerGrantPermissions:"Elektu Bone kiam via foliumilo petos permesojn.",nwjsGrantPermissions:"Bonvolu doni la permeson uzi viajn kameraon kaj mikrofonon",operaGrantPermissions:"Elektu Permesi kiam via foliumilo petos permesojn.","react-nativeGrantPermissions":"Elektu Permesi kiam via foliumilo petos permesojn.",safariGrantPermissions:"Elektu Bone kiam via foliumilo petos permesojn."},videoSIPGW:{busy:"",busyTitle:"",errorAlreadyInvited:"",errorInvite:"",errorInviteFailed:"",errorInviteFailedTitle:"",errorInviteTitle:"",pending:""},videoStatus:{audioOnly:"",audioOnlyExpanded:"",callQuality:"",hd:"AD",highDefinition:"Altkvalita distingivo",labelTooiltipNoVideo:"",labelTooltipAudioOnly:"Nure sona re\u011dimo \u015daltita",ld:"MD",lowDefinition:"Malaltkvalito distingivo",onlyAudioAvailable:"",onlyAudioSupported:"",p2pEnabled:"Samtavola re\u011dimo \u015daltita",p2pVideoQualityDescription:"",recHighDefinitionOnly:"Preferos altkvalitan distingivon.",sd:"ND",standardDefinition:"Normalkvalita distingivo"},videothumbnail:{domute:"Silentigi",flip:"Renversi",kick:"Forpeli",moderator:"Kunvenestro",mute:"Partoprenanto silentigita",muted:"Silentigita",remoteControl:"Defora rego",show:"",videomute:""},welcomepage:{accessibilityLabel:{join:"",roomname:"Enigu nomon de \u0109ambro"},appDescription:"",audioVideoSwitch:{audio:"",video:""},calendar:"",connectCalendarButton:"",connectCalendarText:"",enterRoomTitle:"",go:"IRI",join:"ALI\u011cI",info:"",privacy:"Privateco",recentList:"",recentListDelete:"",recentListEmpty:"",reducedUIText:"",roomname:"Enigu nomon de \u0109ambro",roomnameHint:"",sendFeedback:"Sendi rimarkojn",terms:"Kondi\u0109oj",title:""}}},663,[]); +__d(function(a,o,n,e,i,r,s){i.exports={en:"Ingl\xe9s",af:"Africano",bg:"B\xfalgaro",ca:"Catal\xe1n",cs:"Checo",de:"Alem\xe1n",el:"Griego",enGB:"Ingl\xe9s (Reino Unido)",eo:"Esperanto",es:"Espa\xf1ol",esUS:"Espa\xf1ol (Am\xe9rica Latina)",fi:"Finland\xe9s",fr:"Franc\xe9s",frCA:"Franco (Canadiense)",he:"Hebreo",hr:"Croata",hu:"H\xfangaro",hy:"Armenio",it:"Italiano",ja:"Japon\xe9s",ko:"Coreano",nl:"Holand\xe9s",oc:"Occitano",pl:"Polaco",ptBR:"Portugu\xe9s (Brasil)",ru:"Ruso",sk:"Eslovaco",sv:"Sueco",tr:"Turco",vi:"Vietnamita",zhCN:"Chino (China)",zhTW:"Chino (Taiwan)"}},664,[]); +__d(function(e,a,o,r,n,i,t){n.exports={addPeople:{add:"Invitar",countryNotSupported:"A\xfan no contamos con soporte a este destino.",countryReminder:"\xbfLlamando fuera de los Estados Unidos? \xa1Por favor, aseg\xfarese de empezar con el c\xf3digo de pa\xeds!",disabled:"No puede invitar a otras personas.",failedToAdd:"Error al agregar participantes",footerText:"La marcaci\xf3n est\xe1 desactivada.",loading:"B\xfasqueda de personas y n\xfameros de tel\xe9fono",loadingNumber:"Validando el n\xfamero de tel\xe9fono",loadingPeople:"Buscando contactos a invitar",noResults:"No se encontraron coincidencias",noValidNumbers:"Por favor ingrese un n\xfamero de tel\xe9fono",searchNumbers:"Agregar n\xfameros de tel\xe9fono",searchPeople:"B\xfasqueda de personas",searchPeopleAndNumbers:"Buscar personas o a\xf1adir sus n\xfameros de tel\xe9fono",telephone:"Tel\xe9fono: {{number}}",title:"Invitar a otras personas a esta reuni\xf3n"},audioDevices:{bluetooth:"Bluetooth",headphones:"Aud\xedfonos",phone:"Tel\xe9fono",speaker:"Orador",none:"No hay dispositivos de audio disponibles"},audioOnly:{audioOnly:"Bajo consumo de Ancho de Banda"},calendarSync:{addMeetingURL:"Agregar un v\xednculo a la reuni\xf3n",confirmAddLink:"\xbfQuiere a\xf1adir un enlace de Jitsi a este evento?",error:{appConfiguration:"La integraci\xf3n del calendario no est\xe1 configurada correctamente",generic:"Se ha producido un error. Compruebe la configuraci\xf3n del calendario o pruebe a recargarlo",notSignedIn:"Se ha producido un error de autenticaci\xf3n para ver los eventos del calendario. Compruebe la configuraci\xf3n del calendario e intente iniciar sesi\xf3n de nuevo"},join:"Unir",joinTooltip:"Unirse a la reuni\xf3n",nextMeeting:"pr\xf3xima reuni\xf3n",noEvents:"No hay eventos pr\xf3ximos programados.",ongoingMeeting:"reuni\xf3n en proceso",permissionButton:"Abrir ajustes",permissionMessage:"Los permisos al calendario son necesarios para ver sus reuniones en la aplicaci\xf3n.",refresh:"Actualizar calendario",today:"Hoy"},chat:{error:"Error: su mensaje no se env\xedo. Motivo: {{error}}",fieldPlaceHolder:"Escriba su mensaje aqu\xed",messagebox:"Escriba un mensaje",messageTo:"Mensaje privado para {{recipient}}",noMessagesMessage:"No hay mensajes en la reuni\xf3n. \xa1Inicie una conversaci\xf3n!",nickname:{popover:"Seleccione un apodo",title:"Introduzca un apodo para usar el chat"},privateNotice:"Mensaje privado para {{recipient}}",title:"Chat",you:"usted"},chromeExtensionBanner:{installExtensionText:"",buttonText:"",dontShowAgain:""},connectingOverlay:{joiningRoom:"Conect\xe1ndose a su reuni\xf3n\u2026"},connection:{ATTACHED:"Adjunto",AUTHENTICATING:"Autenticando",AUTHFAIL:"Fallo\u0301 la autenticacio\u0301n",CONNECTED:"Conectado",CONNECTING:"Conectando",CONNFAIL:"Conexi\xf3n fallida",DISCONNECTED:"Desconectado",DISCONNECTING:"Desconectando",ERROR:"Error",RECONNECTING:"Ocurri\xf3 un problema en la red. Reconectando..."},connectionindicator:{address:"Direcci\xf3n:",bandwidth:"Ancho de banda estimado:",bitrate:"Tasa de bits:",bridgeCount:"Contador del servidor: ",connectedTo:"Conectado a:",framerate:"Tasa de cuadros:",less:"Mostrar menos",localaddress:"Direcci\xf3n local:",localaddress_plural:"Direcciones locales:",localport:"Puerto local:",localport_plural:"Puertos locales:",more:"Ver m\xe1s",packetloss:"P\xe9rdida de paquetes:",quality:{good:"Bueno",inactive:"Inactivo",lost:"Perdida",nonoptimal:"No \xf3ptima",poor:"Pobre"},remoteaddress:"Direcci\xf3n remota:",remoteaddress_plural:"Direcciones remotas:",remoteport:"Puerto remoto:",remoteport_plural:"Puertos remotos:",resolution:"Resolucio\u0301n:",status:"Conexi\xf3n:",transport:"Transporte:",transport_plural:"Transportes:"},dateUtils:{earlier:"Anterior",today:"Hoy",yesterday:"Ayer"},deepLinking:{appNotInstalled:"Usted necesita la aplicaci\xf3n m\xf3vil {{app}} para unirse a esta reuni\xf3n en su tel\xe9fono.",description:"\xbfNo pas\xf3 nada? Hemos intentado iniciar su reuni\xf3n en la aplicaci\xf3n de escritorio {{app}}. intente de nuevo o inicie en la aplicaci\xf3n web {{app}}.",descriptionWithoutWeb:"\xbfNo pas\xf3 nada? Intentamos iniciar su reuni\xf3n en la aplicaci\xf3n de escritorio {{app}}.",downloadApp:"Descargar la app",launchWebButton:"Iniciar en web",openApp:"Continuar a la aplicaci\xf3n",title:"Iniciar su reuni\xf3n en {{app}}...",tryAgainButton:"Intentar de nuevo en el escritorio"},defaultLink:"ej. {{url}}",defaultNickname:"ej. Juana Rosas",deviceError:{cameraError:"Error al acceder a su c\xe1mara",cameraPermission:"Error al obtener permiso de la c\xe1mara",microphoneError:"Error al acceder a tu micr\xf3fono",microphonePermission:"Error al obtener permiso del micr\xf3fono"},deviceSelection:{noPermission:"Permiso no concedido",previewUnavailable:"Vista previa no disponible",selectADevice:"Seleccionar un dispositivo",testAudio:"Reproducir un sonido de prueba"},dialog:{accessibilityLabel:{liveStreaming:"Transmisi\xf3n en Vivo"},allow:"Permitir",alreadySharedVideoMsg:"Otro participante esta compartiendo un video. Esta conferencia solo permite compartir un video a la vez.",alreadySharedVideoTitle:"Solo se permite un video compartido a la vez",applicationWindow:"Ventana de aplicaci\xf3n",Back:"Anterior",cameraConstraintFailedError:"Su c\xe1mara no satisface algunos de los requerimientos.",cameraNotFoundError:"No se encontr\xf3 la c\xe1mara.",cameraNotSendingData:"No podemos acceder a su c\xe1mara. Verifique si otra aplicaci\xf3n est\xe1 usando este dispositivo, seleccione otro dispositivo en el men\xfa de configuraci\xf3n o intente volver a cargar la aplicaci\xf3n.",cameraNotSendingDataTitle:"No se puede acceder a la c\xe1mara",cameraPermissionDeniedError:"No ha otorgado permisos para usar su c\xe1mara. Puede unirse a la conferencia, pero no lo podr\xe1n ver. Utilice el bot\xf3n en la barra de direcci\xf3n para solucionar esto.",cameraUnknownError:"No se puede usar su c\xe1mara por motivos desconocidos.",cameraUnsupportedResolutionError:"Su c\xe1mara no soporta la resoluci\xf3n de video.",Cancel:"Cancelar",close:"Cerrar",conferenceDisconnectMsg:"Es posible que desee comprobar la conexi\xf3n de red. Reconectando en {{seconds}} segundos...",conferenceDisconnectTitle:"Ha sido desconectado.",conferenceReloadMsg:"Estamos tratando de arreglar esto. Reconectando en {{seconds}} segundos...",conferenceReloadTitle:"Desafortunadamente, algo sali\xf3 mal.",confirm:"Confirmar",confirmNo:"No",confirmYes:"S\xed",connectError:"\xa1Oops! Algo salio mal y no fue posible conectarnos a la conferencia.",connectErrorWithMsg:"\xa1Oops! Algo salio mal y no fue posible conectarnos a la conferencia: {{msg}}",connecting:"Conectando",contactSupport:"Contacte al soporte t\xe9cnico",copy:"Copiar",dismiss:"Descartar",displayNameRequired:"\xa1Hola! \xbfCu\xe1l es tu nombre?",done:"Listo",enterDisplayName:"Por favor ingresa tu nombre aqu\xed",error:"Error",externalInstallationMsg:"Necesita instalar nuestra extensi\xf3n para compartir escritorio.",externalInstallationTitle:"Extensi\xf3n requerida",goToStore:"Ir al webstore",gracefulShutdown:"Nuestro servicio se encuentra en mantenimiento. Por favor, intente m\xe1s tarde.",IamHost:"Yo soy el anfitri\xf3n",incorrectRoomLockPassword:"Contrase\xf1a incorrecta",incorrectPassword:"Nombre de usuario o contrase\xf1a incorrecta",inlineInstallationMsg:"Necesita instalar nuestra extensi\xf3n para compartir escritorio.",inlineInstallExtension:"Instalar ahora",internalError:"\xa1Oops! Algo sali\xf3 mal. El siguiente error ocurri\xf3: {{error}}",internalErrorTitle:"Error interno",kickMessage:"Puede ponerse en contacto con {{participantDisplayName}} para obtener m\xe1s detalles.",kickParticipantButton:"Expulsar",kickParticipantDialog:"\xbfSeguro que quiere expulsar a este participante?",kickParticipantTitle:"\xbfExpulsar a este participante?",kickTitle:"\xa1Ay! {{participantDisplayName}} te expuls\xf3 de la reuni\xf3n",liveStreaming:"Emisi\xf3n en Directo",liveStreamingDisabledForGuestTooltip:"Los invitados no pueden iniciar transmisiones en vivo.",liveStreamingDisabledTooltip:"Iniciar transmisi\xf3n en vivo deshabilitado.",lockMessage:"No se pudo bloquear la conferencia.",lockRoom:"Agregar reunion $t(lockRoomPasswordUppercase)",lockTitle:"El bloqueo fall\xf3",logoutQuestion:"\xbfEst\xe1 seguro que desea salir y detener la conferencia?",logoutTitle:"Cerrar sesi\xf3n",maxUsersLimitReached:"El l\xedmite m\xe1ximo de participantes ha sido alcanzado. La conferencia est\xe1 llena. Por favor contacta al organizador o intenta mas tarde.",maxUsersLimitReachedTitle:"Se ha alcanzado el l\xedmite m\xe1ximo de participantes",micConstraintFailedError:"El micr\xf3fono no satisface algunos de los requerimientos.",micNotFoundError:"No se encontr\xf3 el micr\xf3fono.",micNotSendingData:"Vaya a la configuraci\xf3n de su computadora para activar el micr\xf3fono y ajustar su nivel",micNotSendingDataTitle:"Su micr\xf3fono est\xe1 silenciado en la configuraci\xf3n de su sistema",micPermissionDeniedError:"No ha otorgado permisos para usar su micr\xf3fono. Puede unirse a la conferencia, pero no lo podr\xe1n escuchar. Utilice el bot\xf3n en la barra de direcci\xf3n para solucionar esto.",micUnknownError:"No se puede usar su micr\xf3fono por motivos desconocidos.",muteParticipantBody:"No podr\xe1s quitarles el modo en silencio, pero ellos pueden quit\xe1rselo en cualquier momento.",muteParticipantButton:"Control de escritorio remoto",muteParticipantDialog:"\xbfSeguro que quiere silenciar a este participante? No podr\xe1 revertir esta acci\xf3n, pero el participante podr\xe1 hacerlo en cualquier momento",muteParticipantTitle:"\xbfSilenciar a este participante?",Ok:"Aceptar",passwordLabel:"$t(lockRoomPasswordUppercase)",passwordNotSupported:"No se soporta $t(lockRoomPassword) en la reuni\xf3n",passwordNotSupportedTitle:"$t(lockRoomPasswordUppercase) no es compatible",passwordRequired:"$t(lockRoomPasswordUppercase) necesario",popupError:"Su navegador est\xe1 bloqueando las ventanas emergentes de este sitio. Habilite las ventanas emergentes en la configuraci\xf3n de seguridad de su navegador y vuelva a intentarlo.",popupErrorTitle:"Ventana emergente bloqueada",recording:"Grabando",recordingDisabledForGuestTooltip:"Los hu\xe9spedes no pueden iniciar grabaciones.",recordingDisabledTooltip:"Inicio de grabaci\xf3n desactivado.",rejoinNow:"Reunirse ahora",remoteControlAllowedMessage:"{{user}} ha aceptado tu solicitud de control remoto!",remoteControlDeniedMessage:"{{user}} ha rechazado tu solicitud de control remoto!",remoteControlErrorMessage:"Ha ocurrido un error tratando de solicitar permiso de control remoto de {{user}}!",remoteControlRequestMessage:"\xbfPermitir\xe1 que {{user}} controle remotamente su escritorio?",remoteControlShareScreenWarning:"\xa1Tenga en cuenta que si presiona \"Permitir\" usted compartir\xe1 su pantalla!",remoteControlStopMessage:"La sesi\xf3n de control remoto ha finalizado!",remoteControlTitle:"Control de escritorio remoto",Remove:"Eliminar",removePassword:"Eliminar $t(lockRoomPassword)",removeSharedVideoMsg:"\xbfEst\xe1 seguro que desea eliminar su v\xeddeo compartido?",removeSharedVideoTitle:"Eliminar video compartido",reservationError:"Error del sistema de reservaci\xf3n",reservationErrorMsg:"C\xf3digo de error: {{code}}, message: {{msg}}",retry:"Reintentar",screenSharingFailedToInstall:"Oops! Su extensi\xf3n de uso compartido de pantalla no se pudo instalar.",screenSharingFailedToInstallTitle:"La extensi\xf3n para compartir la pantalla no se pudo instalar",screenSharingFirefoxPermissionDeniedError:"Algo sali\xf3 mal mientras trat\xe1bamos de compartir la pantalla. Por favor, aseg\xfarese de que nos ha dado permiso para hacerlo. ",screenSharingFirefoxPermissionDeniedTitle:"OOPS! \xa1 No pudimos empezar a compartir la pantalla!",screenSharingPermissionDeniedError:"Oops! Algo sali\xf3 mal con sus permisos de extensi\xf3n para compartir pantalla. Por favor, vuelva a cargar e intente de nuevo.",sendPrivateMessage:"Acaba de recibir un mensaje privado. \xbfDesea responder de forma privada?, \xbfDesea responder al grupo?",sendPrivateMessageCancel:"Enviar al grupo",sendPrivateMessageOk:"Enviar privado",sendPrivateMessageTitle:"\xbfEnviar privado?",serviceUnavailable:"Servicio no disponible",sessTerminated:"Llamada terminada",Share:"Compartir",shareVideoLinkError:"Por favor introduzca un enlace correcto de Youtube.",shareVideoTitle:"Compartir un v\xeddeo",shareYourScreen:"Compartir su pantalla",shareYourScreenDisabled:"Pantalla compartida desactivada.",shareYourScreenDisabledForGuest:"Los hu\xe9spedes no pueden compartir la pantalla.",startLiveStreaming:"Iniciar transmisi\xf3n en vivo",startRecording:"Iniciar la grabaci\xf3n",startRemoteControlErrorMessage:"\xa1Se ha producido un error al intentar iniciar la sesi\xf3n de control remoto!",stopLiveStreaming:"Detener transmisi\xf3n en vivo",stopRecording:"Parar grabaci\xf3n",stopRecordingWarning:"\xbfEst\xe1s seguro que quieres parar la grabaci\xf3n?",stopStreamingWarning:"\xbfEstas seguro que quieres parar la retransmisi\xf3n en directo?",streamKey:"Tecla de transmisi\xf3n en directo",Submit:"Enviar",thankYou:"\xa1Gracias por usar {{appName}}!",token:"token",tokenAuthFailed:"Lo siento, usted no tiene permiso para unirse a este llamada.",tokenAuthFailedTitle:"Fallo\u0301 la autenticacio\u0301n",transcribing:"Transcribiendo",unlockRoom:"Eliminar reuni\xf3n $t(lockRoomPassword)",userPassword:"contrase\xf1a del usuario",WaitForHostMsg:"La conferencia {{room}} a\xfan no ha comenzado. Si usted es el anfitri\xf3n, por favor autent\xedquese. De lo contrario, espere a que llegue el anfitri\xf3n.",WaitForHostMsgWOk:"La conferencia {{room}} a\xfan no ha comenzado. Si usted es el anfitri\xf3n, presione Ok para autenticar. De lo contrario, espere a que llegue el anfitri\xf3n.",WaitingForHost:"Esperando al anfitri\xf3n ...",Yes:"S\xed",yourEntireScreen:"Su pantalla completa"},dialOut:{statusMessage:"esta {{status}}"},documentSharing:{title:"Compartir documento"},feedback:{average:"Promedio",bad:"Malo",detailsLabel:"Nos puede decir m\xe1s al respecto.",good:"Bueno",rateExperience:"Valore la experiencia de su reuni\xf3n.",veryBad:"Muy Mal",veryGood:"Muy Bien"},incomingCall:{answer:"Contestar",audioCallTitle:"Llamada entrante",decline:"Descartar",productLabel:"de Jitsi Meet",videoCallTitle:"Llamada de v\xeddeo"},info:{accessibilityLabel:"Mostrar Informaci\xf3n",addPassword:"Agregar $t(lockRoomPassword)",cancelPassword:"Cancelar $t(lockRoomPassword)",conferenceURL:"Enlace:",country:"Pa\xeds",dialANumber:"Para unirse a la reuni\xf3n, marque uno de estos n\xfameros e introduzca el PIN",dialInConferenceID:"PIN:",dialInNotSupported:"Lo sentimos, actualmente no se admite la marcaci\xf3n.",dialInNumber:"Marcar:",dialInSummaryError:"Se ha producido un error al capturar la informaci\xf3n de marcaci\xf3n. Vuelva a intentarlo m\xe1s tarde",dialInTollFree:"N\xfamero gratuito",genericError:"Ups, algo sali\xf3 mal.",inviteLiveStream:"Marcado de un solo toque: {{number}},,{{conferenceID}}#",invitePhone:"Para unirse por tel\xe9fono, presione: {{number}},,{{conferenceID}}#\n",invitePhoneAlternatives:"\xbfBusca un n\xfamero de marcaci\xf3n diferente?\nConsulte los n\xfameros de marcaci\xf3n de la reuni\xf3n: {{url}}\n\n\nSi est\xe1 marcando a trav\xe9s del tel\xe9fono de otra reuni\xf3n, \xfanase sin conectarse al audio: {{silentUrl}}",inviteURLFirstPartGeneral:"Le han invitado a unirse a una reuni\xf3n",inviteURLFirstPartPersonal:"{{name}} te esta invitando a una sesi\xf3n.\n",inviteURLSecondPart:"\nUnirse a la reuni\xf3n:\n{{url}}\n",liveStreamURL:"Transmisi\xf3n en vivo:",moreNumbers:"M\xe1s n\xfameros",noNumbers:"Sin n\xfameros a marcar.",noPassword:"Ninguno",noRoom:"No se especific\xf3 la sala a marcar.",numbers:"N\xfameros de marcado",password:"$t(lockRoomPasswordUppercase):",title:"Compartir",tooltip:"Compartir el enlace y la informaci\xf3n de acceso telef\xf3nico para esta reuni\xf3n",label:"Informaci\xf3n de la reuni\xf3n"},inviteDialog:{alertText:"Se ha producido un error al invitar a algunos participantes",header:"Invitar",searchCallOnlyPlaceholder:"Introduzca n\xfamero de t\xe9lefono",searchPeopleOnlyPlaceholder:"Buscar participantes",searchPlaceholder:"Participante o n\xfamero de tel\xe9fono",send:"Enviar"},inlineDialogFailure:{msg:"Tuvimos un peque\xf1o tropiezo.",retry:"Intentar de nuevo",support:"Soporte",supportMsg:"Si esto sigue ocurriendo, cont\xe1ctenos para"},keyboardShortcuts:{focusLocal:"Enf\xf3cate en tu video",focusRemote:"Centrarse en el v\xeddeo de otra persona",fullScreen:"Ver o salir de pantalla completa",keyboardShortcuts:"Atajos de teclado",localRecording:"Mostrar u ocultar controles de grabaci\xf3n locales",mute:"Activar o desactivar micr\xf3fono",pushToTalk:"Presione para hablar",raiseHand:"Levantar o bajar la mano",showSpeakerStats:"Mostrar estad\xedsticas del locutor",toggleChat:"Abrir o cerrar panel de chat",toggleFilmstrip:"Mostrar/Ocultar miniaturas de video",toggleScreensharing:"Cambiar entre c\xe1mara y compartir pantalla",toggleShortcuts:"Mostrar/ocultar atajos del teclado",videoMute:"Activar o desactivar tu c\xe1mara",videoQuality:"Administrar la calidad de llamadas"},liveStreaming:{busy:"Estamos trabajando para liberar recursos de transmisi\xf3n. Por favor, int\xe9ntelo de nuevo en unos minutos.",busyTitle:"Todos los streamers est\xe1n ocupados actualmente",changeSignIn:"Cambiar cuentas.",choose:"Elija una secuencia en directo",chooseCTA:"Elija una opci\xf3n de streaming. Actualmente est\xe1 registrado como {{email}}.",enterStreamKey:"Ingrese su clave de YouTube live stream aqu\xed.",error:"La transmisi\xf3n en vivo fall\xf3. Por favor, int\xe9ntelo de nuevo.",errorAPI:"Se produjo un error al acceder a las transmisiones de YouTube. Por favor intente iniciando sesi\xf3n nuevamente.",errorLiveStreamNotEnabled:"La transmisi\xf3n en vivo no est\xe1 activada en {{email}}. Por favor, active la transmisi\xf3n en vivo o inicie sesi\xf3n en una cuenta con transmisi\xf3n en vivo activada.",expandedOff:"La transmisi\xf3n en vivo se ha detenido",expandedOn:"La reuni\xf3n se est\xe1 transmitiendo a YouTube.",expandedPending:"La transmisi\xf3n en vivo se est\xe1 iniciando ...",failedToStart:"La transmisi\xf3n en vivo no se puso iniciar",getStreamKeyManually:"No pudimos buscar ninguna transmisi\xf3n en vivo. Trate de obtener su clave de transmisi\xf3n en vivo de YouTube.",invalidStreamKey:"Es posible que la clave de transmisi\xf3n sea incorrecta",off:"Transmisi\xf3n en vivo detenida",offBy:"{{name}} transmisi\xf3n en directo",on:"Emisi\xf3n en Directo",onBy:"{{name}} transmisi\xf3n en directo iniciada",pending:"Iniciando Emisi\xf3n en Directo...",serviceName:"Servicio de streaming en vivo",signedInAs:"Actualmente est\xe1 conectado como:",signIn:"Iniciar sesi\xf3n con Google",signInCTA:"Iniciar sesi\xf3n o ingrese su clave de transmisi\xf3n en vivo de YouTube.",signOut:"Cerrar sesi\xf3n",start:"Iniciar una transmisi\xf3n en vivo",streamIdHelp:"\xbfQu\xe9 es esto?",unavailableTitle:"Transmisi\xf3n en vivo no disponible"},localRecording:{clientState:{off:"Apagado",on:"Encendido",unknown:"Desconocido"},dialogTitle:"Controles de grabaci\xf3n local",duration:"Duraci\xf3n",durationNA:"N/A",encoding:"Codificaci\xf3n",label:"GLO",labelToolTip:"Grabaci\xf3n local activada",localRecording:"Grabaci\xf3n local",me:"Yo",messages:{engaged:"Grabaci\xf3n local activada.",finished:"Sesi\xf3n de grabaci\xf3n {{token}} terminada. Por favor, env\xede el archivo grabado al moderador.",finishedModerator:"Sesi\xf3n de grabaci\xf3n {{token}} terminado. Se ha guardado la grabaci\xf3n de la pista local. Por favor pida a los dem\xe1s participantes que presenten sus grabaciones.",notModerator:"Usted no es el moderador. No puede iniciar o detener la grabaci\xf3n local."},moderator:"Moderador",no:"No",participant:"Participante",participantStats:"Estad\xedstica de participantes",sessionToken:"Token de sesi\xf3n",start:"Iniciar grabaci\xf3n",stop:"Detener grabaci\xf3n",yes:"S\xed"},lockRoomPassword:"contrase\xf1a",lockRoomPasswordUppercase:"Contrase\xf1a",me:"yo",notify:{connectedOneMember:"{{name}} se uni\xf3 a la sesi\xf3n ",connectedThreePlusMembers:"{{name}} and {{count}} otros se unieron a la sesi\xf3n",connectedTwoMembers:"{{first}} and {{second}} se han unido a la sesi\xf3n",disconnected:"desconectado",focus:"Enfocar conferencia",focusFail:"{{component}} no disponible - reintentar en {{ms}} seg",grantedTo:"\xa1Se otorgaron privilegios de moderador a {{to}}!",invitedOneMember:"{{displayName}} ha sido invitado",invitedThreePlusMembers:"{{name}} y otros {{count}} fueron invitados",invitedTwoMembers:"{{first}} y {{second}} fueron invitados",kickParticipant:"{{kicked}} desalojado por {{kicker}}",me:"Yo",moderator:"\xa1Se otorgaron privilegios de moderador!",muted:"Has iniciado la conversaci\xf3n silenciado.",mutedTitle:"\xa1Est\xe1s silenciado!",mutedRemotelyTitle:"\xa1{{Nombre del participante}} te ha silenciado!",mutedRemotelyDescription:"Siempre puedes quitar el silencio cuando est\xe9s listo para hablar. Silencie cuando termine para mantener el ruido alejado de la reuni\xf3n.",passwordRemovedRemotely:"$t(lockRoomPasswordUppercase) eliminado por otro participante",passwordSetRemotely:"$t(lockRoomPasswordUppercase) establecido por otro participante",raisedHand:"{{name}} quisiera hablar.",somebody:"Alguien",startSilentTitle:"\xa1Te uniste sin salida de audio!",startSilentDescription:"Vuelva a unirse a la reuni\xf3n para habilitar el audio",suboptimalBrowserWarning:"Tememos que su experiencia en la reuni\xf3n no sea tan buena. Estamos buscando formas de mejorar esto, pero hasta entonces intente utilizar uno de los navegadores totalmente compatibles.",suboptimalExperienceTitle:"Advertencia del Explorador",unmute:"Dejar de silenciar",newDeviceCameraTitle:"Se ha detectado una nueva c\xe1mara",newDeviceAudioTitle:"Se ha detectado un nuevo dispositivo de audio",newDeviceAction:"Usar"},passwordSetRemotely:"definido por otro participante",passwordDigitsOnly:"Hasta {{number}} d\xedgitos",poweredby:"proporcionado por",presenceStatus:{busy:"Ocupado",calling:"Llamando...",connected:"Conectado",connecting:"Conectando\u2026",connecting2:"Conectando*\u2026",disconnected:"Desconectado",expired:"Expirado",ignored:"Ignorado",initializingCall:"Iniciando llamada...",invited:"Invitado",rejected:"Rechazado",ringing:"Timbrando..."},profile:{setDisplayNameLabel:"Establecer nombre a mostrar",setEmailInput:"Introducir e-mail",setEmailLabel:"Establecer su gravatar",title:"Perfil"},raisedHand:"Desea hablar",recording:{authDropboxText:"Subir a Dropbox",availableSpace:"Espacio disponible: {{spaceLeft}} MB (aproximadamente {{duration}} minutos de grabaci\xf3n)",beta:"BETA",busy:"Estamos trabajando para liberar recursos de grabaci\xf3n. Por favor, int\xe9ntelo de nuevo en unos minutos.",busyTitle:"Todas las grabadoras est\xe1n actualmente ocupadas",error:"Falla de grabaci\xf3n. Vuelva a intentarlo.",expandedOff:"Grabaci\xf3n detenida",expandedOn:"La reuni\xf3n est\xe1 siendo grabada.",expandedPending:"La grabaci\xf3n se est\xe1 inciando...",failedToStart:"No se pudo iniciar la grabaci\xf3n",fileSharingdescription:"Compartir la grabaci\xf3n con los participantes de la reuni\xf3n",live:"Directo",loggedIn:"Sesi\xf3n iniciada como {{userName}}",off:"Grabaci\xf3n detenida",offBy:"{{name}} detuvo la grabaci\xf3n",on:"Grabando",onBy:"{{name}} comenz\xf3 la grabaci\xf3n",pending:"Preparando para grabar la reuni\xf3n...",rec:"REC",serviceDescription:"El servicio de grabaci\xf3n guardar\xe1 la grabaci\xf3n",serviceName:"Servicio de grabaci\xf3n",signIn:"Iniciar sesi\xf3n",signOut:"Cerrar sesi\xf3n",unavailable:"Oops! El {{serviceName}} no est\xe1 disponible actualmente. Estamos trabajando para resolver la situaci\xf3n. Por favor intente m\xe1s tarde.",unavailableTitle:"Grabaci\xf3n no disponible"},sectionList:{pullToRefresh:"Actualizar"},settings:{calendar:{about:"La integraci\xf3n del calendario {{appName}} se utiliza para acceder de forma segura a su calendario para que pueda leer los pr\xf3ximos eventos.",disconnect:"Desconectar",microsoftSignIn:"Iniciar sesi\xf3n con Microsoft",signedIn:"Actualmente accediendo a eventos de calendario para {{email}}. Haga clic en el bot\xf3n desconectar de abajo para detener el acceso a eventos de calendario.",title:"Calendario"},devices:"Dispositivos",followMe:"Todos me siguen",language:"Idioma",loggedIn:"Sesi\xf3n iniciada como {{name}}",moderator:"Moderador",more:"M\xe1s",name:"Nombre",noDevice:"Ninguno",selectAudioOutput:"Salida de audio",selectCamera:"Ca\u0301mara",selectMic:"Micr\xf3fono",startAudioMuted:"Todos inician en silencio",startVideoMuted:"Todos inician ocultos",title:"Ajustes"},settingsView:{advanced:"Avanzado",alertOk:"OK",alertTitle:"Aviso",alertURLText:"La direcci\xf3n URL del servidor no es v\xe1lida",buildInfoSection:"Informaci\xf3n de la compilaci\xf3n",conferenceSection:"Conferencia",disableCallIntegration:"Deshabilitar la integraci\xf3n nativa de llamadas",disableP2P:"Deshabilitar el modo punto a punto",displayName:"Nombre a mostrar",email:"Email",header:"Ajustes",profileSection:"Perfil",serverURL:"URL del servidor",showAdvanced:"Mostrar configuraci\xf3n avanzada",startWithAudioMuted:"Inicio con audio en silencio",startWithVideoMuted:"Iniciar con el v\xeddeo en silencio",version:"Versi\xf3n"},share:{dialInfoText:"\n\n===== \\ n\n\xbfSolo quieres marcar en tu tel\xe9fono? \\ N\n{{defaultDialInNumber}} Haga clic en este enlace para ver el marcado en los n\xfameros de tel\xe9fono de esta reuni\xf3n\n{{dialInfoPageUrl}}",mainText:"Presione en el siguiente enlace para unirse a la reuni\xf3n:\n{{roomUrl}}"},speaker:"Orador",speakerStats:{hours:"{{count}}h",minutes:"{{count}}m",name:"Nombre",seconds:"{{count}}s",speakerStats:"Estad\xedsticas del locutor",speakerTime:"Tiempo del locutor"},startupoverlay:{policyText:" ",title:"La video llamada se interrumpi\xf3 porque se detuvo este equipo."},suspendedoverlay:{rejoinKeyTitle:"Volver",text:"Presione el bot\xf3n Reunir para reconectarse.",title:"La video llamada se interrumpi\xf3 porque se detuvo este equipo."},toolbar:{accessibilityLabel:{audioOnly:"Alternar s\xf3lo audio",audioRoute:"Seleccione el dispositivo de sonido",callQuality:"Administrar la calidad del video",cc:"Alternar subt\xedtulos",chat:"Alternar ventana de chat",document:"Alternar documento compartido",download:"Descarga nuestras aplicaciones",feedback:"Dejar comentarios",fullScreen:"Alternar pantalla completa",hangup:"Dejar la llamada",help:"Ayuda",invite:"Invitar personas",kick:"Expulsar participante",localRecording:"Alternar controles de grabaci\xf3n locales",lockRoom:"Activar o desactivar contrase\xf1a de la reuni\xf3n",moreActions:"Men\xfa alternar m\xe1s acciones",moreActionsMenu:"Men\xfa m\xe1s acciones",mute:"Alternar audio mudo",pip:"Alternar modo de Picture-in-Picture",privateMessage:"Enviar mensaje privado",profile:"Editar tu perfil",raiseHand:"Levantar / Bajar tu mano",recording:"Activar grabaci\xf3n",remoteMute:"Silenciar participante",Settings:"Alternar configuraci\xf3n",sharedvideo:"Alternar compartir un v\xeddeo de YouTube",shareRoom:"Invitar a alguien",shareYourScreen:"Alternar compartir pantalla",shortcuts:"Alternar accesos directos",show:"Mostrar en escena",speakerStats:"Alternar estad\xedsticas del orador",tileView:"Alternar vista de mosaico",toggleCamera:"Alternar c\xe1mara",videomute:"Alternar silencio de video",videoblur:"Alternar desenfoque de video"},addPeople:"Agregar personas a su llamada",audioOnlyOff:"Deshabilitar el modo de ancho de banda bajo",audioOnlyOn:"Habilitar el modo de ancho de banda bajo",audioRoute:"Seleccione el dispositivo de sonido",authenticate:"Autenticar",callQuality:"Administrar la calidad del video",chat:"Abrir / cerrar sala de charla",closeChat:"Cerrar chat",documentClose:"Cerrar documento compartido",documentOpen:"Abrir documento compartido",download:"Descarga nuestras aplicaciones",enterFullScreen:"Ver pantalla completa",enterTileView:"Entrar en vista de mosaico",exitFullScreen:"Salir de pantalla completa",exitTileView:"Salir de vista de mosaico",feedback:"Dejar comentarios",hangup:"Salir",help:"Ayuda",invite:"Invitar personas",login:"Inicio de sesi\xf3n",logout:"Cerrar sesi\xf3n",lowerYourHand:"Bajar la mano",moreActions:"M\xe1s acciones",moreOptions:"M\xe1s opciones",mute:"Activar / Desactivar Silencio",noAudioSignalTitle:"\xa1No hay entrada proveniente de su micr\xf3fono!",noAudioSignalDesc:"Si no lo silenci\xf3 a prop\xf3sito desde la configuraci\xf3n del sistema o el dispositivo, considere cambiar el dispositivo.",noAudioSignalDescSuggestion:"Si no lo silenci\xf3 a prop\xf3sito desde la configuraci\xf3n del sistema o el dispositivo, considere usar el siguiente dispositivo:",noisyAudioInputTitle:"",noisyAudioInputDesc:"",openChat:"Abrir chat",pip:"Entra en el modo Picture-in-Picture",privateMessage:"Enviar mensaje privado",profile:"Editar tu perfil",raiseHand:"Levantar / Bajar tu mano",raiseYourHand:"Alzar la mano",Settings:"Ajustes",sharedvideo:"Compartir un v\xeddeo de YouTube",shareRoom:"Invitar a alguien",shortcuts:"Ver accesos directos",speakerStats:"Estad\xedsticas del locutor",startScreenSharing:"Comenzar a compartir pantalla",startSubtitles:"Iniciar subt\xedtulos",stopScreenSharing:"Dejar de compartir pantalla",stopSubtitles:"Detener subt\xedtulos",stopSharedVideo:"Detener v\xeddeo de YouTube",talkWhileMutedPopup:"Tratas de hablar? Est\xe1s silenciado.",tileViewToggle:"Alternar vista de mosaico",toggleCamera:"Alternar c\xe1mara",videomute:"Iniciar / detener c\xe1mara",startvideoblur:"Desenfocar mi fondo",stopvideoblur:"Desactivar desenfoque de fondo"},transcribing:{ccButtonTooltip:"Iniciar / Detener subt\xedtulos",error:"La Transcripci\xf3n fall\xf3. Por favor, int\xe9ntelo nuevamente.",expandedLabel:"Transcripci\xf3n encendida",failedToStart:"No es posible iniciar la transcripci\xf3n",labelToolTip:"La reuni\xf3n se esta transcribiendo",off:"Transcripci\xf3n detenida",pending:"Preparando la transcripci\xf3n de la reuni\xf3n...",start:"Mostrar subt\xedtulos",stop:"Dejar de mostrar subt\xedtulos",tr:"TR"},userMedia:{androidGrantPermissions:"Seleccione Permitir cuando su navegador pida permisos.",chromeGrantPermissions:"Seleccione Permitir cuando su navegador pida permisos.",edgeGrantPermissions:"Seleccione S\xed cuando su navegador pida permisos.",electronGrantPermissions:"Por favor, conceda permisos para utilizar su c\xe1mara y micr\xf3fono",firefoxGrantPermissions:"Seleccione Compartir Dispositivo Seleccionado cuando su navegador pida permisos.",iexplorerGrantPermissions:"Seleccione OK cuando su navegador pida permisos.",nwjsGrantPermissions:"Por favor, conceda permisos para utilizar su c\xe1mara y micr\xf3fono",operaGrantPermissions:"Seleccione Permitir cuando su navegador pida permisos.","react-nativeGrantPermissions":"Seleccione Permitir cuando su navegador pida permisos.",safariGrantPermissions:"Seleccione OK cuando su navegador pida permisos."},videoSIPGW:{busy:"Estamos trabajando en liberar recursos. Por favor intente nuevamente en unos minutos.",busyTitle:"El servicio de las salas est\xe1 actualmente ocupado",errorAlreadyInvited:"{{displayName}} ya ha sido invitado",errorInvite:"La conferencia no se ha establecido aun. Por favor intente m\xe1s tarde.",errorInviteFailed:"Estamos trabajando en resolver la situaci\xf3n. Por favor intente de nuevo m\xe1s tarde.",errorInviteFailedTitle:"Invitar a {{displayName}} fall\xf3",errorInviteTitle:"Error al invitar a la sala",pending:"{{displayName}} ha sido invitado"},videoStatus:{audioOnly:"AUD",audioOnlyExpanded:"Est\xe1s en modo de ancho de banda bajo. En este modo, solo recibir\xe1 audio y pantalla compartida.",callQuality:"Calidad de video",hd:"HD",hdTooltip:"Visualizando v\xeddeo en alta definici\xf3n",highDefinition:"Alta definici\xf3n",labelTooiltipNoVideo:"No hay v\xeddeo",labelTooltipAudioOnly:"Modo de ancho de banda bajo habilitado",ld:"LD",ldTooltip:"Visualizando v\xeddeo en baja definici\xf3n",lowDefinition:"Baja definici\xf3n",onlyAudioAvailable:"Solo hay audio disponible",onlyAudioSupported:"Solo soportamos audio en este navegador.",p2pEnabled:"Punto a Punto Activado",p2pVideoQualityDescription:"En el modo punto a punto, la calidad de video recibida solo se puede alternar entre calidad alta y solo audio. No se respetar\xe1n otras configuraciones hasta que se salga del modo punto a punto.",recHighDefinitionOnly:"Preferir\xe1 alta definici\xf3n.",sd:"SD",sdTooltip:"Visualizando v\xeddeo en definici\xf3n est\xe1ndar",standardDefinition:"Definici\xf3n est\xe1ndar"},videothumbnail:{domute:"Silenciar",flip:"Voltear",kick:"Expulsar",moderator:"Moderador",mute:"Participante est\xe1 silenciado",muted:"Silenciado",remoteControl:"",show:"Mostrar en escena",videomute:"El participante ha detenido la c\xe1mara."},welcomepage:{accessibilityLabel:{join:"Toque para unirse",roomname:"Introduzca un nombre de sala"},appDescription:"Adelante, video chat con todo el equipo. De hecho, invita a todos los que conozcas. {{app}} es una soluci\xf3n de videoconferencia de c\xf3digo abierto de 100%, totalmente encriptada, que puede usar todo el d\xeda, todos los d\xedas, de forma gratuita, sin necesidad de contar con ninguna cuenta.",audioVideoSwitch:{audio:"Voz",video:"Video"},calendar:"Calendario",connectCalendarButton:"Conecte su calendario",connectCalendarText:"Conecte su calendario para ver todas sus reuniones en {{app}}. Plus, add {{provider}}reuniones a tu calendario e iniciarlas con un solo clic.",enterRoomTitle:"Comenzar una reuni\xf3n",roomNameAllowedChars:"El nombre de la reuni\xf3n no debe contener ninguno de estos caracteres: ?, &, :, ', \", %, #.",go:"IR",goSmall:"IR",join:"CREAR / UNIRSE",info:"Informaci\xf3n",privacy:"Privacidad",recentList:"Reciente",recentListDelete:"Borrar",recentListEmpty:"Su lista de recientes est\xe1 actualmente vac\xeda. Chatea con tu equipo y encontrar\xe1s todas tus reuniones aqu\xed.",reducedUIText:"\xa1Bienvenido a {{app}}!",roomname:"Introduzca un nombre de sala",roomnameHint:"Introduce el nombre o URL de la sala a la que quieres unirte. Puedes crear un nombre nuevo, s\xf3lo tienes que hacer llegar este nombre al resto de participantes para que puedan unirse a esta sala.",sendFeedback:"Enviar comentarios",terms:"T\xe9rminos",title:"Seguro, lleno de funcionalidades y videoconferencias completamente gratuitas"},lonelyMeetingExperience:{button:"Invitar a otros",youAreAlone:"Eres el \xfanico en la reuni\xf3n"}}},665,[]); +__d(function(a,o,n,e,r,s,i){r.exports={en:"Ingl\xe9s",af:"Africano",bg:"B\xfalgaro",ca:"Catal\xe1n",cs:"Checo",de:"Alem\xe1n",el:"Griego",enGB:"Ingl\xe9s",eo:"Esperanto",es:"Espa\xf1ol",esUS:"Espa\xf1ol (Latinoam\xe9rica)",fi:"Finland\xe9s",fr:"Franc\xe9s",frCA:"Franc\xe9s (Canadiense)",he:"Hebreo",hr:"Croata",hu:"H\xfangaro",hy:"Armenio",it:"Italiano",ja:"Japon\xe9s",ko:"Coreano",nl:"Holand\xe9s",oc:"Occitano",pl:"Polaco",ptBR:"Portugu\xe9s (Brasil)",ru:"Ruso",sk:"Eslovaco",sv:"Sueco",tr:"Turco",vi:"Vietnamita",zhCN:"Chino (China)",zhTW:"Chino (Taiwan)"}},666,[]); +__d(function(e,a,o,n,i,r,t){i.exports={addPeople:{add:"Invitar",countryNotSupported:"Aun no contamos con soporte a este destino.",countryReminder:"\xbfLlamando fuera de los Estados Unidos? \xa1Por favor, aseg\xfarese de empezar con el c\xf3digo de pa\xeds!",disabled:"No puede invitar a otras personas.",failedToAdd:"Error al agregar participantes",footerText:"La marcaci\xf3n est\xe1 desactivada.",loading:"Buscar personas y n\xfameros de tel\xe9fono",loadingNumber:"Validando el n\xfamero de tel\xe9fono",loadingPeople:"Buscando contactos a invitar",noResults:"No se encontraron coincidencias",noValidNumbers:"Por favor ingrese un n\xfamero de tel\xe9fono",searchNumbers:"Agregar n\xfameros telef\xf3nicos",searchPeople:"B\xfasqueda de personas",searchPeopleAndNumbers:"Buscar personas o a\xf1adir sus n\xfameros de tel\xe9fono",telephone:"Tel\xe9fono: {{number}}",title:"Invitar a otras personas a esta reuni\xf3n"},audioDevices:{bluetooth:"Bluetooth",headphones:"Aud\xedfonos",phone:"Tel\xe9fono",speaker:"Altavoz",none:"No hay dispositivos de audio disponibles"},audioOnly:{audioOnly:"Ancho de banda bajo"},calendarSync:{addMeetingURL:"Agregar un v\xednculo a la reuni\xf3n",confirmAddLink:"\xbfQuiere a\xf1adir un enlace de Jitsi a este evento?",error:{appConfiguration:"La integraci\xf3n del calendario no est\xe1 configurada correctamente",generic:"Se ha producido un error. Compruebe la configuraci\xf3n del calendario o pruebe cargarlo nuevamente.",notSignedIn:"Se ha producido un error de autenticaci\xf3n para ver los eventos del calendario. Compruebe la configuraci\xf3n del calendario e intente iniciar sesi\xf3n de nuevo"},join:"Unir",joinTooltip:"Unirse a la reuni\xf3n",nextMeeting:"pr\xf3xima reuni\xf3n",noEvents:"No hay eventos pr\xf3ximos programados.",ongoingMeeting:"reuni\xf3n en proceso",permissionButton:"Abrir configuraci\xf3n",permissionMessage:"Los permisos al calendario son necesarios para ver sus reuniones en la aplicaci\xf3n.",refresh:"Actualizar calendario",today:"Hoy"},chat:{error:"Error: su mensaje no se env\xedo. Motivo: {{error}}",fieldPlaceHolder:"Escriba su mensaje aqu\xed",messagebox:"Escriba un mensaje",messageTo:"Mensaje privado para {{recipient}}",noMessagesMessage:"No hay mensajes en la reuni\xf3n. \xa1Inicie una conversaci\xf3n!",nickname:{popover:"Seleccione un apodo",title:"Introducir un apodo para usar el chat"},privateNotice:"Mensaje privado para {{recipient}}",title:"Mensajes",you:"usted"},chromeExtensionBanner:{installExtensionText:"Instalar la extensi\xf3n para Google Calendar y la integraci\xf3n con Office 365",buttonText:"Instalar extensi\xf3n de Chrome",dontShowAgain:"No mostrar nuevamente"},connectingOverlay:{joiningRoom:"Conectando a su reuni\xf3n..."},connection:{ATTACHED:"Adjunto",AUTHENTICATING:"Autenticando",AUTHFAIL:"Error de autenticaci\xf3n",CONNECTED:"Conectado",CONNECTING:"Conectando",CONNFAIL:"Error de conexi\xf3n",DISCONNECTED:"Desconectado",DISCONNECTING:"Desconectando",ERROR:"Error",RECONNECTING:"Ocurri\xf3 un problema en la red. Reconectando...",FETCH_SESSION_ID:"Obteniendo session-id...",GET_SESSION_ID_ERROR:"Obtener session-id error: {{code}}",GOT_SESSION_ID:"Obteniendo session-id... Listo",LOW_BANDWIDTH:"Video para {{displayName}} ha sido deshabilitado para economizar ancho de banda"},connectionindicator:{address:"Direcci\xf3n:",bandwidth:"Ancho de banda estimado:",bitrate:"Tasa de transferencia:",bridgeCount:"Contador del servidor: ",connectedTo:"Conectado a:",framerate:"Cuadros por segundo:",less:"Mostrar menos",localaddress:"Direcci\xf3n local:",localaddress_plural:"Direcciones locales:",localport:"Puerto local:",localport_plural:"Puertos locales:",more:"Mostrar m\xe1s",packetloss:"P\xe9rdida de paquetes:",quality:{good:"Bueno",inactive:"Inactivo",lost:"Perdido",nonoptimal:"No es \xf3ptimo",poor:"Deficiente"},remoteaddress:"Direcci\xf3n remota:",remoteaddress_plural:"Direcciones remotas:",remoteport:"Puerto remoto:",remoteport_plural:"Puertos remotos:",resolution:"Resoluci\xf3n:",status:"Conexi\xf3n:",transport:"Transporte:",transport_plural:"Transportes:"},dateUtils:{earlier:"Temprano",today:"Hoy",yesterday:"Ayer"},deepLinking:{appNotInstalled:"Necesitas la aplicaci\xf3n m\xf3vil de {{app}} para unirte a esta reuni\xf3n en el tel\xe9fono.",description:"\xbfNo pas\xf3 nada? Hemos intentado iniciar su reuni\xf3n en la aplicaci\xf3n {{app}} de escritorio. intente de nuevo o inicie en la aplicaci\xf3n {{app}} v\xeda web.",descriptionWithoutWeb:"\xbfNo pas\xf3 nada? Intentamos iniciar su reuni\xf3n en la aplicaci\xf3n {{app}} de escritorio.",downloadApp:"Descargar la aplicaci\xf3n",launchWebButton:"Iniciar en la Web",openApp:"Continuar a la aplicaci\xf3n",title:"Iniciando la reuni\xf3n en {{app}}...",tryAgainButton:"Intentar de nuevo en el escritorio"},defaultLink:"p.ej. {{url}}",defaultNickname:"p. ej. Juan P\xe9rez",deviceError:{cameraError:"Error al acceder a tu c\xe1mara",cameraPermission:"Error de permisos en la c\xe1mara",microphoneError:"Error al acceder a tu micr\xf3fono",microphonePermission:"Error al obtener permiso del micr\xf3fono"},deviceSelection:{noPermission:"Permiso no concedido",previewUnavailable:"Vista previa no disponible",selectADevice:"Seleccionar un dispositivo",testAudio:"Reproducir un sonido de prueba"},dialog:{accessibilityLabel:{liveStreaming:"Transmisi\xf3n en vivo"},allow:"Permitir",alreadySharedVideoMsg:"Otro participante ya est\xe1 compartiendo un v\xeddeo. Esta conferencia s\xf3lo permite compartir un v\xeddeo a la vez.",alreadySharedVideoTitle:"Solo se permite un video compartido por vez",applicationWindow:"Ventana de aplicaci\xf3n",Back:"Anterior",cameraConstraintFailedError:"Su c\xe1mara no satisface algunos de los requerimientos.",cameraNotFoundError:"No se encontr\xf3 la c\xe1mara.",cameraNotSendingData:"No podemos acceder a la c\xe1mara. Comprueba si otra aplicaci\xf3n est\xe1 usando este dispositivo, selecciona otro dispositivo del men\xfa de configuraci\xf3n o intenta volver a cargar la aplicaci\xf3n.",cameraNotSendingDataTitle:"No es posible acceder a la c\xe1mara",cameraPermissionDeniedError:"No has otorgado permiso para usar la c\xe1mara. Puedes unirte a la conferencia de todos modos, pero los dem\xe1s asistentes no te podr\xe1n ver. Usa el bot\xf3n de la c\xe1mara en la barra de direcciones para solucionarlo.",cameraUnknownError:"No se puede usar la c\xe1mara por un motivo desconocido.",cameraUnsupportedResolutionError:"La c\xe1mara no admite la resoluci\xf3n de video requerida.",Cancel:"Cancelar",close:"Cerrar",conferenceDisconnectMsg:"Se recomienda que compruebes la conexi\xf3n de la red. Reconectando en {{seconds}} segundos...",conferenceDisconnectTitle:"Ha sido desconectado.",conferenceReloadMsg:"Estamos tratando de arreglar esto. Reconectando en {{seconds}} segundos...",conferenceReloadTitle:"Desafortunadamente, algo sali\xf3 mal.",confirm:"Confirmar",confirmNo:"No",confirmYes:"S\xed",connectError:"\xa1Oops! Algo salio mal y no fue posible conectarnos a la conferencia.",connectErrorWithMsg:"\xa1Oops! Algo salio mal y no fue posible conectarnos a la conferencia: {{msg}}",connecting:"Conectando",contactSupport:"Contacte a soporte t\xe9cnico",copy:"Copiar",dismiss:"Descartar",displayNameRequired:"\xa1Hola! \xbfCu\xe1l es tu nombre?",done:"Listo",enterDisplayName:"Por favor ingresa tu nombre aqu\xed",error:"Error",externalInstallationMsg:"Necesita instalar nuestra extensi\xf3n para compartir escritorio.",externalInstallationTitle:"Extensi\xf3n requerida",goToStore:"Ir a la tienda web",gracefulShutdown:"Nuestro servicio se encuentra en mantenimiento. Por favor, intente m\xe1s tarde.",IamHost:"Soy el anfitri\xf3n",incorrectRoomLockPassword:"Contrase\xf1a incorrecta",incorrectPassword:"Nombre de usuario o contrase\xf1a incorrecta",inlineInstallationMsg:"Necesita instalar nuestra extensi\xf3n para compartir escritorio.",inlineInstallExtension:"Instalar ahora",internalError:"\xa1Oops! Algo sali\xf3 mal. El siguiente error ocurri\xf3: {{error}}",internalErrorTitle:"Error interno",kickMessage:"Puede ponerse en contacto con {{participantDisplayName}} para obtener m\xe1s detalles.",kickParticipantButton:"Expulsar",kickParticipantDialog:"\xbfSeguro que quiere expulsar a este participante?",kickParticipantTitle:"\xbfSacar este participante?",kickTitle:"\xa1Ay! {{participantDisplayName}} te expuls\xf3 de la reuni\xf3n",liveStreaming:"Transmisi\xf3n en vivo",liveStreamingDisabledForGuestTooltip:"Los invitados no pueden iniciar la transmisi\xf3n en vivo.",liveStreamingDisabledTooltip:"Iniciar transmisi\xf3n en vivo deshabilitado.",lockMessage:"No se pudo bloquear la conferencia.",lockRoom:"Agregar $t(lockRoomPasswordUppercase) a la reuni\xf3n",lockTitle:"El bloqueo fall\xf3",logoutQuestion:"\xbfEst\xe1 seguro que desea salir y detener la conferencia?",logoutTitle:"Cierre de sesi\xf3n",maxUsersLimitReached:"El l\xedmite m\xe1ximo de participantes ha sido alcanzado. La conferencia est\xe1 llena. Por favor contacta al organizador o intenta mas tarde.",maxUsersLimitReachedTitle:"Se ha alcanzado el l\xedmite m\xe1ximo de participantes",micConstraintFailedError:"El micr\xf3fono no satisface algunos de los requerimientos.",micNotFoundError:"No se encontr\xf3 el micr\xf3fono.",micNotSendingData:"Vaya a la configuraci\xf3n de su computadora para activar el micr\xf3fono y ajustar su nivel",micNotSendingDataTitle:"Su micr\xf3fono est\xe1 silenciado en la configuraci\xf3n de su sistema",micPermissionDeniedError:"No ha otorgado permisos para usar su micr\xf3fono. Puede unirse a la conferencia, pero no lo podr\xe1n escuchar. Utilice el bot\xf3n en la barra de direcci\xf3n para solucionar esto.",micUnknownError:"No se puede usar su micr\xf3fono por motivos desconocidos.",muteEveryoneElseDialog:"Una vez silenciados, No podr\xe1s quitarles el modo en silencio, pero ellos pueden quit\xe1rselo en cualquier momento.",muteEveryoneElseTitle:"\xbfSilenciar a todos excepto a {{whom}}?",muteEveryoneDialog:"\xbfEst\xe1 seguro que quiere silenciar a todos? No podr\xe1s quitarles el modo en silencio, pero ellos pueden quit\xe1rselo en cualquier momento.",muteEveryoneTitle:"\xbfSilenciar a todos?",muteEveryoneSelf:"Usted mismo",muteEveryoneStartMuted:"Todos inician silenciados desde ahora",muteParticipantBody:"No podr\xe1s quitarles el modo en silencio, pero ellos pueden quit\xe1rselo en cualquier momento.",muteParticipantButton:"Silenciar",muteParticipantDialog:"\xbfSeguro que quiere silenciar a este participante? No podr\xe1 revertir esta acci\xf3n, pero el participante podr\xe1 hacerlo en cualquier momento",muteParticipantTitle:"Silenciar este participante?",Ok:"Aceptar",passwordLabel:"$t(lockRoomPasswordUppercase)",passwordNotSupported:"No se soporta $t(lockRoomPassword) en la reuni\xf3n",passwordNotSupportedTitle:"$t(lockRoomPasswordUppercase) no es compatible",passwordRequired:"$t(lockRoomPasswordUppercase) necesario",popupError:"Su navegador est\xe1 bloqueando las ventanas emergentes de este sitio. Habilite las ventanas emergentes en la configuraci\xf3n de seguridad de su navegador y vuelva a intentarlo.",popupErrorTitle:"Ventana emergente bloqueada",recording:"Grabaci\xf3n",recordingDisabledForGuestTooltip:"Los invitados no pueden iniciar grabaciones.",recordingDisabledTooltip:"Inicio de grabaci\xf3n desactivado.",rejoinNow:"Reunirse ahora",remoteControlAllowedMessage:"\xa1{{user}} ha aceptado tu solicitud de control remoto!",remoteControlDeniedMessage:"\xa1{{user}} ha rechazado tu solicitud de control remoto!",remoteControlErrorMessage:"\xa1Ha ocurrido un error tratando de solicitar permiso de control remoto de {{user}}!",remoteControlRequestMessage:"\xbfPermitir\xe1 que {{user}} controle remotamente su escritorio?",remoteControlShareScreenWarning:"\xa1Tenga en cuenta que si presiona \"Permitir\" usted compartir\xe1 su pantalla!",remoteControlStopMessage:"\xa1La sesi\xf3n de control remoto ha finalizado!",remoteControlTitle:"Control de escritorio remoto",Remove:"Eliminar",removePassword:"Eliminar $t(lockRoomPassword)",removeSharedVideoMsg:"\xbfEst\xe1s seguro de que deseas eliminar el video compartido?",removeSharedVideoTitle:"Eliminar video compartido",reservationError:"Error del sistema de reservaciones",reservationErrorMsg:"C\xf3digo de error: {{code}}, mensaje: {{msg}}",retry:"Volver a intentar",screenSharingFailedToInstall:"\xa1Uy! La extensi\xf3n de uso compartido de pantalla no se pudo instalar.",screenSharingFailedToInstallTitle:"La extensi\xf3n de uso compartido de pantalla no se pudo instalar",screenSharingFirefoxPermissionDeniedError:"Algo sali\xf3 mal cuando intentamos compartir su pantalla. Aseg\xfarese de habernos dado permiso para hacerlo.",screenSharingFirefoxPermissionDeniedTitle:"\xa1Uy! No pudimos iniciar el uso compartido de la pantalla.",screenSharingPermissionDeniedError:"\xa1Uy! Algo sali\xf3 mal con sus permisos de extensi\xf3n para compartido pantalla. Vuelva a cargar la p\xe1gina e intente de nuevo.",sendPrivateMessage:"Recientemente ha recibido un mensaje privado. \xbfPretend\xeda responder a eso en privado, o quer\xeda enviar su mensaje al grupo?",sendPrivateMessageCancel:"Enviar al grupo",sendPrivateMessageOk:"Enviar en privado",sendPrivateMessageTitle:"\xbfEnviar en privado?",serviceUnavailable:"Servicio no disponible",sessTerminated:"Llamada finalizada",Share:"Compartir",shareVideoLinkError:"Proporciona un enlace de YouTube correcto.",shareVideoTitle:"Compartir un video",shareYourScreen:"Compartir su pantalla",shareYourScreenDisabled:"Uso compartido de pantalla deshabilitado.",shareYourScreenDisabledForGuest:"Los invitados no pueden compartir la pantalla.",startLiveStreaming:"Iniciar transmisi\xf3n en vivo",startRecording:"Iniciar grabaci\xf3n",startRemoteControlErrorMessage:"Se produjo un error al intentar iniciar la sesi\xf3n de control remoto.",stopLiveStreaming:"Detener transmisi\xf3n en vivo",stopRecording:"Detener grabaci\xf3n",stopRecordingWarning:"\xbfEst\xe1s seguro de que deseas detener la grabaci\xf3n?",stopStreamingWarning:"\xbfEst\xe1s seguro de que deseas detener la transmisi\xf3n en vivo?",streamKey:"Clave de transmisi\xf3n en vivo",Submit:"Enviar",thankYou:"\xa1Gracias por usar {{appName}}!",token:"token",tokenAuthFailed:"Lo sentimos, no tienes permiso para unirte a esta llamada.",tokenAuthFailedTitle:"Error de autenticaci\xf3n",transcribing:"Transcripci\xf3n",unlockRoom:"Remover la $t(lockRoomPassword) de reuni\xf3n",userPassword:"contrase\xf1a de usuario",WaitForHostMsg:"La conferencia {{room}} a\xfan no ha comenzado. Si eres el anfitri\xf3n, inicia la autenticaci\xf3n. De lo contrario, espera a que llegue el anfitri\xf3n.",WaitForHostMsgWOk:"La conferencia {{room}} a\xfan no ha comenzado. Si eres el anfitri\xf3n, presiona Aceptar para autenticar. De lo contrario, espera a que llegue el anfitri\xf3n.",WaitingForHost:"Esperando al anfitri\xf3n...",Yes:"S\xed",yourEntireScreen:"Toda su pantalla"},dialOut:{statusMessage:"ahora est\xe1 {{status}}"},documentSharing:{title:"Documento Compartido"},feedback:{average:"Promedio",bad:"Malo",detailsLabel:"Cu\xe9ntanos m\xe1s sobre eso.",good:"Bueno",rateExperience:"Califique su experiencia en la reuni\xf3n",veryBad:"Muy malo",veryGood:"Muy bueno"},incomingCall:{answer:"Respuesta",audioCallTitle:"Llamada entrante",decline:"Descartar",productLabel:"de Jitsi Meet",videoCallTitle:"Llamada de video entrante"},info:{accessibilityLabel:"Mostrar informaci\xf3n",addPassword:"Agregar la $t(lockRoomPassword)",cancelPassword:"Anular la $t(lockRoomPassword)",conferenceURL:"Enlace:",country:"Pa\xeds",dialANumber:"Para unirte a la reuni\xf3n, marca uno de estos n\xfameros y, luego introduce el PIN.",dialInConferenceID:"PIN:",dialInNotSupported:"Lo sentimos, la marcaci\xf3n desde afuera actualmente no se admite.",dialInNumber:"Marcaci\xf3n desde afuera:",dialInSummaryError:"Error al obtener informaci\xf3n de marcaci\xf3n desde afuera. Vuelva a intentar m\xe1s tarde.",dialInTollFree:"Sin cargo",genericError:"Epa, algo sali\xf3 mal.",inviteLiveStream:"Para ver la transmisi\xf3n en vivo de esta reuni\xf3n, haz clic en este enlace: {{url}}",invitePhone:"Para unirse por tel\xe9fono, marque: {{number}},,{{conferenceID}}#\n",invitePhoneAlternatives:"\xbfBusca un n\xfamero de acceso diferente?\nConsulte los n\xfameros de acceso a las reuniones : {{url}}\n\n\nSi tambi\xe9n marca a trav\xe9s de un tel\xe9fono externo, ingrese sin conectarse al audio: {{silentUrl}}",inviteURLFirstPartGeneral:"Est\xe1s invitado a unirte a una reuni\xf3n.",inviteURLFirstPartPersonal:"{{name}} lo invita a una reuni\xf3n.\n",inviteURLSecondPart:"\nIngrese a la reuni\xf3n :\n{{url}}\n",liveStreamURL:"Transmisi\xf3n en vivo:",moreNumbers:"M\xe1s n\xfameros",noNumbers:"No hay n\xfameros para marcaci\xf3n desde afuera.",noPassword:"Ninguno",noRoom:"No se especific\xf3 ninguna sala para la marcaci\xf3n desde afuera.",numbers:"N\xfameros de marcaci\xf3n desde afuera",password:"$t(lockRoomPasswordUppercase):",title:"Compartir",tooltip:"Compartir el enlace y la informaci\xf3n de marcaci\xf3n desde afuera para esta reuni\xf3n",label:"Informaci\xf3n de reuni\xf3n"},inviteDialog:{alertText:"No se pudieron invitar a algunos participantes.",header:"Invitar",searchCallOnlyPlaceholder:"Introducir n\xfamero de tel\xe9fono",searchPeopleOnlyPlaceholder:"Buscar participantes",searchPlaceholder:"Participante o n\xfamero de tel\xe9fono",send:"Enviar"},inlineDialogFailure:{msg:"Tartamudeamos un poco.",retry:"Volver a intentar",support:"Soporte",supportMsg:"Si esto sigue ocurriendo, contacta con"},keyboardShortcuts:{focusLocal:"Concentrar en su video",focusRemote:"Concentrar en el video de otra persona",fullScreen:"Ver pantalla completa o salir de ella",keyboardShortcuts:"Accesos directos del teclado",localRecording:"Mostrar u ocultar controles de grabaci\xf3n local",mute:"Silenciar o anular silencio del micr\xf3fono",pushToTalk:"Presionar para hablar",raiseHand:"Levantar o bajar la mano",showSpeakerStats:"Mostrar estad\xedsticas del altavoz",toggleChat:"Abrir o cerrar el chat",toggleFilmstrip:"Mostrar u ocultar miniaturas de video",toggleScreensharing:"Cambiar entre el uso compartido de pantalla y de c\xe1mara",toggleShortcuts:"Mostrar u ocultar accesos directos del teclado",videoMute:"Iniciar o detener la c\xe1mara",videoQuality:"Ajustar la calidad de la llamada"},liveStreaming:{busy:"Estamos trabajando para liberar recursos de transmisi\xf3n. Vuelve a intentarlo en unos minutos.",busyTitle:"Todos los transmisores est\xe1n actualmente ocupados",changeSignIn:"Cambiar cuentas.",choose:"Elegir una transmisi\xf3n en vivo",chooseCTA:"Elegir una opci\xf3n de transmisi\xf3n. Actualmente, la sesi\xf3n est\xe1 iniciada como {{email}}.",enterStreamKey:"Ingrese su clave de transmisi\xf3n en vivo YouTube aqu\xed.",error:"Error de transmisi\xf3n en vivo. Vuelve a intentarlo.",errorAPI:"Se produjo un error al acceder a sus difusiones YouTube. Vuelva a intentar iniciar su sesi\xf3n.",errorLiveStreamNotEnabled:"La transmisi\xf3n en vivo no est\xe1 habilitada en {{email}}. Habil\xedtala o inicia sesi\xf3n en una cuenta con la transmisi\xf3n en vivo habilitada.",expandedOff:"La transmisi\xf3n en vivo se ha detenido",expandedOn:"La reuni\xf3n se est\xe1 transmitiendo actualmente a YouTube.",expandedPending:"La transmisi\xf3n en vivo se est\xe1 iniciando...",failedToStart:"La transmisi\xf3n en vivo no se pudo iniciar",getStreamKeyManually:"No pudimos obtener ninguna transmisi\xf3n en vivo. Intenta obtener la clave de transmisi\xf3n en vivo de YouTube.",invalidStreamKey:"Es posible que la clave de transmisi\xf3n en vivo sea incorrecta.",off:"Transmisi\xf3n en vivo detenida",offBy:"{{name}} detuvo el streaming en directo",on:"Transmisi\xf3n en vivo",onBy:"{{name}} inici\xf3 el streaming en directo",pending:"Iniciando transmisi\xf3n en vivo...",serviceName:"Servicio de transmisi\xf3n en vivo",signedInAs:"Actualmente, la sesi\xf3n est\xe1 iniciada como:",signIn:"Iniciar sesi\xf3n con Google",signInCTA:"Inicia sesi\xf3n o introduce la clave de transmisi\xf3n en vivo de YouTube.",signOut:"Cerrar sesi\xf3n",start:"Iniciar una transmisi\xf3n en vivo",streamIdHelp:"\xbfQu\xe9 es esto?",unavailableTitle:"Transmisi\xf3n en vivo no disponible"},localRecording:{clientState:{off:"Desactivado",on:"Activado",unknown:"Desconocido"},dialogTitle:"Controles de grabaci\xf3n local",duration:"Duraci\xf3n",durationNA:"N/d",encoding:"Codificaci\xf3n",label:"LOR",labelToolTip:"La grabaci\xf3n local est\xe1 activada",localRecording:"Grabaci\xf3n local",me:"Yo",messages:{engaged:"Grabaci\xf3n local activada.",finished:"Finaliz\xf3 la grabaci\xf3n del {{token}} de la sesi\xf3n. Env\xeda el archivo grabado al moderador.",finishedModerator:"Finaliz\xf3 la grabaci\xf3n del {{token}} de la sesi\xf3n. La grabaci\xf3n de la pista local se ha guardado. P\xeddeles a los otros participantes que env\xeden sus grabaciones.",notModerator:"No eres el moderador. No puedes iniciar o detener la grabaci\xf3n local."},moderator:"Moderador",no:"No",participant:"Participante",participantStats:"Estad\xedsticas del participante",sessionToken:"Token de la sesi\xf3n",start:"Iniciar grabaci\xf3n",stop:"Detener grabaci\xf3n",yes:"S\xed"},lockRoomPassword:"clave",lockRoomPasswordUppercase:"Clave",me:"yo",notify:{connectedOneMember:"{{name}} se uni\xf3 a la reuni\xf3n",connectedThreePlusMembers:"{{name}} y {{count}} m\xe1s se unieron a la reuni\xf3n",connectedTwoMembers:"{{first}} y {{second}} se unieron a la reuni\xf3n",disconnected:"desconectado",focus:"Enfoque de la conferencia",focusFail:"{{component}} no disponible. Vuelve a intentar en {{ms}} segundos",grantedTo:"Se otorgaron derechos de moderador a {{to}}.",invitedOneMember:"{{name}} ha sido invitado",invitedThreePlusMembers:"{{name}} y {{count}} m\xe1s han sido invitados",invitedTwoMembers:"{{first}} y {{second}} han sido invitados",kickParticipant:"{{kicker}} sac\xf3 a {{kicked}}",me:"Yo",moderator:"Derechos de moderador otorgados.",muted:"Has iniciado la conversaci\xf3n con el silencio activado.",mutedTitle:"Tienes el silencio activado.",mutedRemotelyTitle:"\xa1Su micr\xf3fono fue silenciado por {{participantDisplayName}}!",mutedRemotelyDescription:"Siempre puede reactivar sur micr\xf3fono cuando est\xe9 listo para hablar. Desact\xedvelo de nuevo cuando termine para mantener el ruido al m\xednimo en la reuni\xf3n.",passwordRemovedRemotely:"$t(lockRoomPasswordUppercase) retirada por otro participante",passwordSetRemotely:"$t(lockRoomPasswordUppercase) agregada por otro participante",raisedHand:"{{name}} desea hablar.",somebody:"Alguien",startSilentTitle:"\xa1Ingres\xf3 sin salida de audio!",startSilentDescription:"Vuelva a ingresar para activar el audio",suboptimalBrowserWarning:"Nos tememos que su experiencia de reuni\xf3n no ser\xe1 tan buena aqu\xed. Estamos buscando formas de mejorar esto, pero hasta entonces, por favor, intente utilizar uno de los navegadores soportados.",suboptimalExperienceTitle:"Advertencia del navegador",unmute:"Reactivar el sonido",newDeviceCameraTitle:"Se detect\xf3 una c\xe1mara nueva",newDeviceAudioTitle:"Se detect\xf3 un dispositivo de audio nuevo",newDeviceAction:"Usar"},passwordSetRemotely:"definida por otro participante",passwordDigitsOnly:"Hasta {{number]] cifras",poweredby:"con tecnolog\xeda de",presenceStatus:{busy:"Ocupado",calling:"Llamando...",connected:"Conectado",connecting:"Conectando...",connecting2:"Conectando*...",disconnected:"Desconectado",expired:"Vencido",ignored:"Omitido",initializingCall:"Inicializando llamada...",invited:"Invitado",rejected:"Rechazado",ringing:"Timbrando..."},profile:{setDisplayNameLabel:"Configurar su nombre para mostrar",setEmailInput:"Introducir correo electr\xf3nico",setEmailLabel:"Configurar su correo electr\xf3nico de Gravatar",title:"Perfil"},raisedHand:"Desea hablar",recording:{authDropboxText:"Cargar a Dropbox",availableSpace:"Espacio disponible: {{spaceLeft}}\xa0MB (aproximadamente {{duration}} minutos de grabaci\xf3n)",beta:"BETA",busy:"Estamos trabajando para liberar recursos de grabaci\xf3n. Vuelve a intentarlo en unos minutos.",busyTitle:"Todas las grabadoras est\xe1n actualmente ocupadas",error:"Error de grabaci\xf3n. Vuelve a intentarlo.",expandedOff:"La grabaci\xf3n se ha detenido",expandedOn:"La reuni\xf3n se est\xe1 grabando en este momento.",expandedPending:"La grabaci\xf3n se est\xe1 iniciando...",failedToStart:"La grabaci\xf3n no se pudo iniciar",fileSharingdescription:"Compartir grabaci\xf3n con participantes de la reuni\xf3n",live:"EN VIVO",loggedIn:"Sesi\xf3n iniciada como {{userName}}",off:"Grabaci\xf3n detenida",offBy:"{{name}} par\xf3 la grabaci\xf3n",on:"Grabaci\xf3n",onBy:"{{name}} inici\xf3 la grabaci\xf3n",pending:"Preparando para grabar la reuni\xf3n...",rec:"REC",serviceDescription:"El servicio de grabaci\xf3n guardar\xe1 la grabaci\xf3n",serviceName:"Servicio de grabaci\xf3n",signIn:"Iniciar sesi\xf3n",signOut:"Cerrar sesi\xf3n",unavailable:"\xa1Uy! {{serviceName}} actualmente no est\xe1 disponible. Estamos trabajando para resolver el problema. Vuelve a intentarlo m\xe1s tarde.",unavailableTitle:"Grabaci\xf3n no disponible"},sectionList:{pullToRefresh:"Tirar para actualizar"},settings:{calendar:{about:"La integraci\xf3n del calendario de {{appName}} se usa para acceder al calendario de manera segura para que puedas leer los pr\xf3ximos eventos.",disconnect:"Desconectar",microsoftSignIn:"Iniciar sesi\xf3n con Microsoft",signedIn:"Actualmente se accede a eventos del calendario para {{email}}. Haz clic en el bot\xf3n Desconectar m\xe1s abajo para detener el acceso a eventos del calendario.",title:"Calendario"},devices:"Dispositivos",followMe:"Todos me siguen",language:"Idioma",loggedIn:"Sesi\xf3n iniciada como {{name}}",moderator:"Moderador",more:"M\xe1s",name:"Nombre",noDevice:"Ninguno",selectAudioOutput:"Salida de audio",selectCamera:"C\xe1mara",selectMic:"Micr\xf3fono",startAudioMuted:"Todos comienzan con el silencio activado",startVideoMuted:"Todos comienzan ocultos",title:"Configuraci\xf3n"},settingsView:{advanced:"Avanzado",alertOk:"Aceptar",alertTitle:"Advertencia",alertURLText:"La direcci\xf3n URL de servidor introducida no es v\xe1lida",buildInfoSection:"Informaci\xf3n de compilaci\xf3n",conferenceSection:"Conferencia",disableCallIntegration:"Desactivar la integraci\xf3n nativa de llamadas",disableP2P:"Desactiver el modo \"Peer-To-Peer\"",displayName:"Nombre para mostrar",email:"Correo electr\xf3nico",header:"Configuraci\xf3n",profileSection:"Perfil",serverURL:"Direcci\xf3n URL del servidor",showAdvanced:"Mostrar la configuraci\xf3n avanzada",startWithAudioMuted:"Iniciar con el audio en silencio",startWithVideoMuted:"Iniciar con el video en silencio",version:"Versi\xf3n"},share:{dialInfoText:"\n\n=====\n\n\xbfDesea llamar desde su tel\xe9fono?\n\n{{defaultDialInNumber}}La lista de n\xfameros disponibles para la reuni\xf3n est\xe1 disponible aqu\xed : \n{{dialInfoPageUrl}}",mainText:"Haz clic en el enlace siguiente para unirte a la reuni\xf3n:\n{{roomUrl}}"},speaker:"Altavoz",speakerStats:{hours:"{{count}}\xa0h",minutes:"{{count}}\xa0min",name:"Nombre",seconds:"{{count}}\xa0s",speakerStats:"Estad\xedsticas del altavoz",speakerTime:"Hora del altavoz"},startupoverlay:{policyText:" ",title:"{{app}} necesita usar el micr\xf3fono y la c\xe1mara."},suspendedoverlay:{rejoinKeyTitle:"Volver a unirme",text:"Presiona el bot\xf3n Volver a unirme para volver a conectarte.",title:"La llamada de video se interrumpi\xf3 porque el equipo entr\xf3 en modo nocturno."},toolbar:{accessibilityLabel:{audioOnly:"Alternar solo audio",audioRoute:"Seleccionar el dispositivo de sonido",callQuality:"Ajustar la calidad v\xeddeo",cc:"Alternar subt\xedtulos",chat:"Alternar ventana de chat",document:"Alternar documento compartido",download:"Descargar nuestras aplicaciones",feedback:"Dejar comentario",fullScreen:"Alternar pantalla completa",hangup:"Dejar la llamada",help:"Ayuda",invite:"Invitar personas",kick:"Echar participante",localRecording:"Alternar controles de grabaci\xf3n local",lockRoom:"Alternar contrase\xf1a de reuni\xf3n",moreActions:"Alternar men\xfa de m\xe1s acciones",moreActionsMenu:"Men\xfa de m\xe1s acciones",moreOptions:"Mostrar m\xe1s opciones",mute:"Alternar silenciar audio",muteEveryone:"Silenciar a todos",pip:"Alternar modo de imagen en imagen",privateMessage:"Enviar un mensaje privado",profile:"Editar el perfil",raiseHand:"Alternar levantar la mano",recording:"Alternar grabaci\xf3n",remoteMute:"Silenciar participante",Settings:"Alternar configuraci\xf3n",sharedvideo:"Alternar uso compartido de video de YouTube",shareRoom:"Invitar a alguien",shareYourScreen:"Alternar uso compartido de pantalla",shortcuts:"Alternar accesos directos",show:"Mostrar en primer plano",speakerStats:"Alternar estad\xedsticas del altavoz",tileView:"Alternar vista de mosaico",toggleCamera:"Alternar c\xe1mara",videomute:"Alternar silenciar video",videoblur:"Cambiar el desenfoque del fondo"},addPeople:"Agregar personas a la llamada",audioOnlyOff:"Desactivar el modo de ancho de banda bajo",audioOnlyOn:"Activar el modo de ancho de banda bajo",audioRoute:"Seleccionar el dispositivo de sonido",authenticate:"Autenticar",callQuality:"Ajustar la calidad v\xeddeo",chat:"Abrir/cerrar chat",closeChat:"Cerrar chat",documentClose:"Cerrar documento compartido",documentOpen:"Abrir documento compartido",download:"Descargar nuestras aplicaciones",enterFullScreen:"Ver pantalla completa",enterTileView:"Introducir vista de mosaico",exitFullScreen:"Salir de pantalla completa",exitTileView:"Salir de vista de mosaico",feedback:"Dejar comentario",hangup:"Dejar",help:"Ayuda",invite:"Invitar personas",login:"Inicio de sesi\xf3n",logout:"Cierre de sesi\xf3n",lowerYourHand:"Bajar la mano",moreActions:"M\xe1s acciones",moreOptions:"M\xe1s opciones",mute:"Silenciar/anular silencio",muteEveryone:"Silenciar a todos",noAudioSignalTitle:"\xa1No hay ninguna entrada que provenga de su micr\xf3fono!",noAudioSignalDesc:"Si no lo silenci\xf3 intencionalmente desde la configuraci\xf3n del sistema o el hardware, considere la posibilidad de cambiar el dispositivo.",noAudioSignalDescSuggestion:"Si no lo silenci\xf3 intencionalmente desde la configuraci\xf3n del sistema o el hardware, considere utilizar el siguiente dispositivo:",noAudioSignalDialInDesc:"Usted puede adem\xe1s llamar usando:",noAudioSignalDialInLinkDesc:"N\xfameros de llamada",noisyAudioInputTitle:"Su micr\xf3fono parece estar ruidoso",noisyAudioInputDesc:"Parece que su micr\xe1fono est\xe1 haciendo ruido, por favor considere silenciarlo o cambiar de dispositivo.",openChat:"Abrir chat",pip:"Introducir modo de imagen en imagen",privateMessage:"Enviar un mensaje privado",profile:"Editar el perfil",raiseHand:"Levantar/bajar la mano",raiseYourHand:"Levantar la mano",Settings:"Configuraci\xf3n",sharedvideo:"Compartir un video de YouTube",shareRoom:"Invitar a alguien",shortcuts:"Ver accesos directos",speakerStats:"Estad\xedsticas del altavoz",startScreenSharing:"Iniciar uso compartido de pantalla",startSubtitles:"Iniciar subt\xedtulos",stopScreenSharing:"Detener uso compartido de pantalla",stopSubtitles:"Detener subt\xedtulos",stopSharedVideo:"Detener video de YouTube",talkWhileMutedPopup:"\xbfIntentas hablar? Est\xe1s silenciado.",tileViewToggle:"Alternar vista de mosaico",toggleCamera:"Alternar c\xe1mara",videomute:"Iniciar/detener c\xe1mara",startvideoblur:"Desenfocar mi fondo",stopvideoblur:"Desactivar el desenfoque de fondo"},transcribing:{ccButtonTooltip:"Iniciar/detener subt\xedtulos",error:"Error de transcripci\xf3n. Vuelve a intentarlo.",expandedLabel:"La transcripci\xf3n est\xe1 actualmente activada",failedToStart:"La transcripci\xf3n no se pudo iniciar",labelToolTip:"La reuni\xf3n se est\xe1 transcribiendo",off:"Transcripci\xf3n detenida",pending:"Preparando para transcribir la reuni\xf3n...",start:"Comenzar a mostrar subt\xedtulos",stop:"Dejar de mostrar subt\xedtulos",tr:"TR"},userMedia:{androidGrantPermissions:"Selecciona Permitir cuando el navegador solicite permisos.",chromeGrantPermissions:"Selecciona Permitir cuando el navegador solicite permisos.",edgeGrantPermissions:"Selecciona S\xed cuando el navegador solicite permisos.",electronGrantPermissions:"Otorga permisos para usar la c\xe1mara y el micr\xf3fono",firefoxGrantPermissions:"Selecciona Compartir dispositivo seleccionado cuando el navegador solicite permisos.",iexplorerGrantPermissions:"Selecciona Aceptar cuando el navegador solicite permisos.",nwjsGrantPermissions:"Otorga permisos para usar la c\xe1mara y el micr\xf3fono",operaGrantPermissions:"Selecciona Permitir cuando el navegador solicite permisos.","react-nativeGrantPermissions":"Selecciona Permitir cuando el navegador solicite permisos.",safariGrantPermissions:"Selecciona Aceptar cuando el navegador solicite permisos."},videoSIPGW:{busy:"Estamos trabajando para liberar recursos. Vuelve a intentarlo en unos minutos.",busyTitle:"El servicio de sala est\xe1 actualmente ocupado",errorAlreadyInvited:"{{displayName}} ya est\xe1 invitado",errorInvite:"Conferencia a\xfan no establecida. Vuelve a intentarlo m\xe1s tarde.",errorInviteFailed:"Estamos trabajando para resolver el problema. Vuelve a intentarlo m\xe1s tarde.",errorInviteFailedTitle:"No se pudo invitar a {{displayName}}",errorInviteTitle:"Error al invitar en la sala",pending:"{{displayName}} ha sido invitado"},videoStatus:{audioOnly:"AUD",audioOnlyExpanded:"Se encuentra en el modo de bajo ancho de banda. En este modo s\xf3lo recibir\xe1 audio y pantalla compartida.",callQuality:"Calidad V\xeddeo",hd:"HD",hdTooltip:"Vista de video en alta definici\xf3n",highDefinition:"Alta definici\xf3n",labelTooiltipNoVideo:"Sin video",labelTooltipAudioOnly:"Modo de bajo ancho de banda habilitado",ld:"LD",ldTooltip:"Vista de video en baja definici\xf3n",lowDefinition:"Baja definici\xf3n",onlyAudioAvailable:"Modo de solo audio disponible",onlyAudioSupported:"Solo admitimos audio en este navegador.",p2pEnabled:"Punto a punto habilitado",p2pVideoQualityDescription:"En el modo \"peer to peer\", la calidad de v\xeddeo recibida s\xf3lo se puede alternar entre alta y s\xf3lo audio. No se respetar\xe1n otros ajustes hasta que se salga del modo \"peer to peer\".",recHighDefinitionOnly:"Preferir\xe9 alta definici\xf3n.",sd:"SD",sdTooltip:"Vista de video en definici\xf3n est\xe1ndar",standardDefinition:"Definici\xf3n est\xe1ndar"},videothumbnail:{domute:"Silenciar",domuteOthers:"Silenciar a todos",flip:"Dar vuelta",kick:"Echar",moderator:"Moderador",mute:"Se silenci\xf3 el participante",muted:"Silenciado",remoteControl:"",show:"Mostrar en primer plano",videomute:"El participante par\xf3 su c\xe1mara"},welcomepage:{accessibilityLabel:{join:"Toca para unirte",roomname:"Introducir nombre de sala"},appDescription:"Adelante, ten una sesi\xf3n de chat de video con todo el equipo. De hecho, invita a todas las personas que conozcas. {{app}} es una soluci\xf3n de conferencias en video en c\xf3digo abierto al 100% y completamente cifrada que puedes usar todo el d\xeda, todos los d\xedas y sin cargo, sin necesidad de tener una cuenta.",audioVideoSwitch:{audio:"Voz",video:"Video"},calendar:"Calendario",connectCalendarButton:"Conectar el calendario",connectCalendarText:"Conecte su calendario para ver todas sus reuniones en {{app}}. Adem\xe1s, agregue reuniones {{provider}} a su calendario e in\xedcielas con un solo clic.",enterRoomTitle:"Iniciar una nueva reuni\xf3n",roomNameAllowedChars:"El nombre de la reuni\xf3n no debe contener ninguno de estos caracteres: ?, &, :, ', \", %, #.",go:"IR",goSmall:"IR",join:"CREAR / INGRESAR",info:"Informaci\xf3n",privacy:"Privacidad",recentList:"Reciente",recentListDelete:"Eliminar",recentListEmpty:"Su lista reciente est\xe1 actualmente vac\xeda. Abra una sesi\xf3n de chat con su equipo y encontrar\xe1 todas sus reuniones recientes aqu\xed.",reducedUIText:"\xa1Bienvenid@ a {{app}}!",roomname:"Introducir nombre de sala",roomnameHint:"Introduce el nombre o la direcci\xf3n URL de la sala a la que deseas unirte. Puedes inventar un nombre, simplemente inf\xf3rmaselo a las personas con las que te reunir\xe1s para que introduzcan el mismo nombre.",sendFeedback:"Enviar comentario",terms:"T\xe9rminos",title:"Conferencias en video seguras, con gran variedad de funciones y completamente gratuitas"}}},667,[]); +__d(function(e,a,i,l,k,n,r){k.exports={en:"Inglise keel",af:"Afrikaani keel",bg:"Bulgaaria keel",ca:"Katalaani keel",cs:"T\u0161ehhi keel",de:"Saksa keel",el:"Kreeka keel",enGB:"Inglise keel (\xdchendkuningriik)",eo:"Esperanto keel",es:"Hispaania keel",esUS:"Hispaania keel (Ladina-Ameerika)",et:"Eesti keel",fi:"Soome keel",fr:"Prantsuse keel",frCA:"Prantsuse keel (Kanada)",hr:"Horvaadi keel",hu:"Ungari keel",hy:"Armeenia keel",it:"Itaalia keel",ja:"Jaapani keel",ko:"Korea keel",nl:"Hollandi keel",oc:"Oksitaani keel",pl:"Poola keel",ptBR:"Portigali keel (Brasiilia)",ru:"Vene keel",sv:"Roosi keel",tr:"T\xfcrgi keel",vi:"Vietnami keel",zhCN:"Hiina keel (Hiina)",zhTW:"Hiina keel (Tai)"}},668,[]); +__d(function(e,a,i,t,s,n,o){s.exports={addPeople:{add:"Lisa",countryNotSupported:"Valitud riik ei ole toetatud.",countryReminder:"Veendu, et suunakood oleks lisatud.",disabled:"Uusi kontakte ei saa k\xf5nesse lisada.",failedToAdd:"Uue kontakti k\xf5nesse lisamine eba\xf5nnestus",footerText:"Numbri valimine on keelatud.",loading:"Kontaktide otsimine...",loadingNumber:"Telefoninumbri kontrollimine...",loadingPeople:"Kontaktide otsimine k\xf5nesse lisamiseks...",noResults:"Vasteid ei leitud",noValidNumbers:"Sisesta telefoninumber",searchNumbers:"Lisa telefoninumber",searchPeople:"Kontaktide otsimine",searchPeopleAndNumbers:"Otsi kontakti v\xf5i lisa telefoninumber",telephone:"Telefoninumber: {{number}}",title:"Lisa kontakte k\xf5nesse"},audioDevices:{bluetooth:"Bluetooth",headphones:"K\xf5rvaklapid",phone:"Telefon",speaker:"K\xf5lar",none:"Heli vahendid pole k\xe4ttesaadavad"},audioOnly:{audioOnly:"Ainult heli"},calendarSync:{addMeetingURL:"Lisa k\xf5ne link",confirmAddLink:"Kas soovid k\xe4esolevale k\xf5nele lisada lingi?",error:{appConfiguration:"\xdchendus kalendriga ei ole \xf5igesti seadistatud.",generic:"Viga! Palun kontrolli kalendri seadistusi v\xf5i v\xe4rskenda kalendrit.",notSignedIn:"Viga kalendri autentimisel! Palun kontrolli kalendri seadistusi ja logi uuesti sisse."},join:"Liitu",joinTooltip:"Liitu k\xf5nega",nextMeeting:"j\xe4rgmine k\xf5ne",noEvents:"Uusi k\xf5nesid pole planeeritud..",ongoingMeeting:"aktiivne k\xf5ne",permissionButton:"Ava seadistused",permissionMessage:"Planeeritud k\xf5ne n\xe4gemiseks on vajalik kalendri ligip\xe4\xe4su\xf5igus.",refresh:"V\xe4rskenda kalendrit",today:"T\xe4na"},chat:{error:"Viga: s\xf5numi \"{{originalText}}\" saatmine eba\xf5nnestus. P\xf5hjus: {{error}}",fieldPlaceHolder:"Sisesta oma s\xf5num siia",messagebox:"Sisesta s\xf5num",messageTo:"Privaats\xf5num kasutajale {{recipient}}",noMessagesMessage:"Kirjavahetust pole veel alustatud. Alusta kirjavahetust siin!",nickname:{popover:"Sisesta nimi",title:"Sisesta nimi, et k\xf5nega alustada"},privateNotice:"Privaats\xf5num kasutajale {{recipient}}",title:"K\xf5ne",you:"you"},chromeExtensionBanner:{installExtensionText:"Paigalda Google Kalendri laiendus ja Office 365 integratsioon",buttonText:"Paigalda Chrome'i laiendus",dontShowAgain:"\xc4ra rohkem n\xe4ita"},connectingOverlay:{joiningRoom:"K\xf5nega \xfchendamine..."},connection:{ATTACHED:"\xdchendatud",AUTHENTICATING:"Autentimine...",AUTHFAIL:"Autentimine eba\xf5nnestus",CONNECTED:"\xdchendatud",CONNECTING:"\xdchendamine...",CONNFAIL:"\xdchendamine eba\xf5nnestus",DISCONNECTED:"\xdchendus katkestatud",DISCONNECTING:"\xdchenduse katkestamine...",ERROR:"Viga",FETCH_SESSION_ID:"Sessiooni-ID p\xfc\xfcdmine...",GET_SESSION_ID_ERROR:"Sessiooni-ID p\xfc\xfcdmisel tekkis viga: {{code}}",GOT_SESSION_ID:"Sessiooni-ID p\xfc\xfcdmine... Tehtud",LOW_BANDWIDTH:"Kasutaja {{displayName}} video on \xfclekandekiiruse parandamiseks v\xe4lja l\xfclitatud"},connectionindicator:{address:"Aadress:",bandwidth:"Eeldatav \xfclekandekiirus:",bitrate:"Andmeedastuskiirus:",bridgeCount:"Serverite arv: ",connectedTo:"\xdchendatud:",e2e_rtt:"E2E RTT:",framerate:"Ekraani eraldusv\xf5ime:",less:"N\xe4ita v\xe4hem",localaddress:"Lokaalne aadress:",localaddress_plural:"Lokaalsed aadressid:",localport:"Lokaalne port:",localport_plural:"Lokaalsed pordid:",more:"N\xe4ita rohkem",packetloss:"Andmepaketi kaotus:",quality:{good:"Hea",inactive:"Mitteaktiivne",lost:"Kaotatud",nonoptimal:"Mitteoptimaalne",poor:"N\xf5rk"},remoteaddress:"Kaugt\xf6\xf6 aadress:",remoteaddress_plural:"Kaugt\xf6\xf6 aadressid:",remoteport:"Kaugt\xf6\xf6 port:",remoteport_plural:"Kaugt\xf6\xf6 pordid:",resolution:"Resolutsioon:",status:"\xdchendus:",transport:"Transport:",transport_plural:"Transpordid:"},dateUtils:{earlier:"Varem",today:"T\xe4na",yesterday:"Eile"},deepLinking:{appNotInstalled:"K\xf5nega liitumiseks l\xe4bi mobiiltelefoni on vaja paigaldada {{app}} rakendus.",description:"Midagi ei juhtunud? Proovisime \xfchendust luua t\xf6\xf6laua rakendusega. Proovi uuesti v\xf5i k\xe4ivita {{app}} rakendus.",descriptionWithoutWeb:"Midagi ei juhtunud? Televastuv\xf5ttu prooviti avada t\xf6\xf6laua rakendusest {{app}}.",downloadApp:"Laadi rakendus alla",launchWebButton:"K\xe4ivita veebis",openApp:"J\xe4tka t\xf6\xf6laua rakendusega",title:"K\xf5ne avamine rakenduses {{app}}...",tryAgainButton:"Proovi t\xf6\xf6laua rakendusega uuesti "},defaultLink:"nt {{url}}",defaultNickname:"nt. Mari Maasikas",deviceError:{cameraError:"Ei saanud kaameraga \xfchendust",cameraPermission:"Puudub \xf5igus kasutada kaamerat",microphoneError:"Ei saanud mikrofoniga \xfchendust",microphonePermission:"Puudub \xf5igus kasutada mikrofoni"},deviceSelection:{noPermission:"Luba pole antud",previewUnavailable:"Eelvaade pole k\xe4ttesaadav",selectADevice:"Vali seade",testAudio:"M\xe4ngi testimiseks heli"},dialog:{accessibilityLabel:{liveStreaming:"Otse\xfclekanne"},allow:"Luba",alreadySharedVideoMsg:"Teine kasutaja jagab videot. Selles k\xf5nes on ainult \xfche video jagamine korraga lubatud.",alreadySharedVideoTitle:"Korraga on lubatud ainult \xfche video jagamine.",applicationWindow:"Rakenduse aken",Back:"Tagasi",cameraConstraintFailedError:"Kaamera ei vasta teatud piirangutele.",cameraNotFoundError:"Kaamerat ei leitud.",cameraNotSendingData:"Ei saa \xfchendust kaameraga. Kontrolli, kas vahend on m\xf5ne teise rakenduse poolt kasutusel, vali men\xfc\xfcst teine vahend v\xf5i v\xe4rskenda rakendust.",cameraNotSendingDataTitle:"Kaamera pole k\xe4ttesaadav.",cameraPermissionDeniedError:"Kaamera kasutamine on keelatud. K\xf5nega on v\xf5imalik \xfchineda ilma kaamerata. Kaamera kasutamiseks vajuta aadressiribal kaamera nupule.",cameraUnknownError:"Kaamerat ei saa kasutada! P\xf5hjus teadmata.",cameraUnsupportedResolutionError:"Kaamera ei toeta n\xf5utud resolutsiooni.",Cancel:"T\xfchista",close:"Sulge",conferenceDisconnectMsg:"Kontrolli v\xf5rgu\xfchendust. Taas\xfchendamine {{seconds}}...",conferenceDisconnectTitle:"\xdchendus on katkenud.",conferenceReloadMsg:"Lahenduse otsime. Taas\xfchendus {{seconds}} sek...",conferenceReloadTitle:"Midagi l\xe4ks valesti!",confirm:"Kinnita",confirmNo:"Ei",confirmYes:"Kinnita",connectError:"Oih, midagi l\xe4ks valesti! K\xf5nega \xfchendamine eba\xf5nnestus.",connectErrorWithMsg:"Oih, midagi l\xe4ks valesti! K\xf5nega \xfchendamine eba\xf5nnestus. P\xf5hjus: {{msg}}.",connecting:"\xdchendamine.",contactSupport:"V\xf5ta \xfchendust kasutustoega",copy:"Kopeeri",dismiss:"L\xf5peta",displayNameRequired:"Nimi on kohustuslik",done:"Valmis",enterDisplayName:"Sisesta nimi",error:"Viga",externalInstallationMsg:"T\xf6\xf6lauale on vaja paigaldada jagamise laiendus.",externalInstallationTitle:"Laiendus on kohustuslik",goToStore:"Mine veebipoodi",gracefulShutdown:"Rakendus on hoolduseks ajutiselt maas. Proovi hiljem uuesti!",IamHost:"Mina olen v\xf5\xf5rustaja",incorrectRoomLockPassword:"Vale parool",incorrectPassword:"Vale kasutajanimi v\xf5i parool",inlineInstallationMsg:"T\xf6\xf6lauale tuleb paigaldada jagamise laiendus.",inlineInstallExtension:"Paiglada kohe",internalError:"Oih, midagi l\xe4ks valesti! Veateate: {{error}}.",internalErrorTitle:"Sisemine viga",kickMessage:"Oih, oled k\xf5nest eemaldatud!",kickParticipantButton:"Eemalda k\xf5nest",kickParticipantDialog:"Oled kindel, et tahad kasutaja k\xf5nest eemaldada?",kickParticipantTitle:"Eemalda kasutaja k\xf5nest?",kickTitle:"K\xf5nest eemaldatud",liveStreaming:"Otse\xfclekanne",liveStreamingDisabledForGuestTooltip:"K\xfclalised ei saa otse\xfclekannet alustada.",liveStreamingDisabledTooltip:"Otse\xfclekande alustamine on keelatud.",lockMessage:"Eba\xf5nnestunud lukustada k\xf5net.",lockRoom:"Lisa k\xf5nele parool",lockTitle:"Lukustamine eba\xf5nnestus",logoutQuestion:"Oled kindel, et tahad k\xf5ne peatada ja v\xe4lja logida?",logoutTitle:"Logi v\xe4lja",maxUsersLimitReached:"Maksimaalne k\xf5nes osalejate arv on t\xe4is. V\xf5ta \xfchendust k\xf5ne omanikuga v\xf5i proovi hiljem uuesti!",maxUsersLimitReachedTitle:"Maksimaalne k\xf5nes osalejate arv on t\xe4is",micConstraintFailedError:"Mikrofon ei vasta teatud piirangutele.",micNotFoundError:"Mikrofoni ei leitud.",micNotSendingData:"Ei saa \xfchendust mikrofoniga. Vali men\xfc\xfcst teine vahend v\xf5i v\xe4rskenda rakendust.",micNotSendingDataTitle:"Mikrofon pole k\xe4ttesaadav.",micPermissionDeniedError:"Mikrofoni kasutamine on keelatud. K\xf5nega on v\xf5imalik \xfchineda, aga teised Sind ei kuule. Mikrofoni kasutamiseks vajuta aadressiribal mikrofoni nupule.",micUnknownError:"Mikrofoni ei saa kasutada. P\xf5hjus teadmata.",muteEveryoneElseDialog:"Peale mikrofoni vaigistamist saab ainult kasutaja ise oma mikrofoni tagasi sisse l\xfclitada.",muteEveryoneElseTitle:"Vaigista k\xf5ikide teiste mikrofonid, v\xe4lja arvatud {{whom}}?",muteEveryoneDialog:"Oled kindel, et soovid k\xf5ikide teiste mikrofonid vaigistada? Neid saab tagasi sisse l\xfclitada ainult kasutaja ise.",muteEveryoneTitle:"Vaigista k\xf5ik?",muteEveryoneSelf:"Sina ise",muteEveryoneStartMuted:"Edaspidi alustavad k\xf5ik v\xe4lja l\xfclitatud mikrofonidega",muteParticipantBody:"Teiste kasutajate mikrofoni ei saa sisse l\xfclitada. Kasutaja saab ise otsutada, kas mikrofon on sees v\xf5i v\xe4ljas.",muteParticipantButton:"L\xfclita mikrofon v\xe4lja",muteParticipantDialog:"Oled kindel, et soovid kasutaja mikrofoni v\xe4lja l\xfclitada? Seda saab ainult kasutaja ise sisse tagasi l\xfclitada.",muteParticipantTitle:"L\xfclita kasutaja mikrofon v\xe4lja?",Ok:"Jah",passwordLabel:"Parool",passwordNotSupported:"K\xf5nele ei saa parooli m\xe4\xe4rata.",passwordNotSupportedTitle:"Parooli lisamine pole toetatud",passwordRequired:"Parool on kohustuslik",popupError:"Modaalaknad on veebilehitsejas keelatud. Palun luba modaalakende kasutamine veebilehitseja turvalisuse seadistuses ning proovi uuesti.",popupErrorTitle:"Modaalaknad on keelatud",recording:"Salvetamine",recordingDisabledForGuestTooltip:"K\xfclalised ei saa k\xf5ne salvestada.",recordingDisabledTooltip:"K\xf5ne salvestamine on keelatud.",rejoinNow:"\xdchine uuesti",remoteControlAllowedMessage:"{{user}} andis kaugjuhtimiseks loa!",remoteControlDeniedMessage:"{{user}} keelas kaugjuhtimise!",remoteControlErrorMessage:"Viga kaugjuhtimiseks loa k\xfcsimisel kasutajalt {{user}}!",remoteControlRequestMessage:"Kas lubad kasutajal {{user}} oma t\xf6\xf6lauda kaugjuhtida?",remoteControlShareScreenWarning:"Kui vajutad nupule \"Luba\", siis jagad oma ekraani.",remoteControlStopMessage:"Kaugjuhtimise sessioon on l\xf5ppenud!",remoteControlTitle:"Kaugjuhtimine",Remove:"Eemalda",removePassword:"Eemalda parool",removeSharedVideoMsg:"Oled kindel, et soovid oma jagatud video eemaldada?",removeSharedVideoTitle:"Eemalda jagatud video",reservationError:"Broneerimise s\xfcsteemi viga",reservationErrorMsg:"Veakood: {{code}}, s\xf5num: {{msg}}",retry:"Proovi uuesti",screenSharingFailedToInstall:"Oih, ekraanijagamise laienduse paigaldamine eba\xf5nnestus!",screenSharingFailedToInstallTitle:"Ekraanijagamise laienduse paigaldamine eba\xf5nnestus",screenSharingFirefoxPermissionDeniedError:"Ekraani jagamisega l\xe4ks midagi valesti! Veendu, et oled ekraani jagamiseks loa andnud.",screenSharingFirefoxPermissionDeniedTitle:"Oih, ekraani jagamist ei saanud alustada!",screenSharingPermissionDeniedError:"Oih, midagi l\xe4ks valesti ekraanijagamise laienduse \xf5igustega! V\xe4rskenda ja proovi uuesti.",sendPrivateMessage:"Sulle saabus privaats\xf5num. Kas soovid vastata privaatselt v\xf5i avalikult?",sendPrivateMessageCancel:"Saada s\xf5num avalikult",sendPrivateMessageOk:"Saada s\xf5num privaatselt",sendPrivateMessageTitle:"Saada privaatselt?",serviceUnavailable:"Teenus pole k\xe4ttesaadav",sessTerminated:"K\xf5ne l\xf5petatud",Share:"Jaga",shareVideoLinkError:"Sisesta korrektne Youtube\u2019i link.",shareVideoTitle:"Jaga videot",shareYourScreen:"Jaga ekraani",shareYourScreenDisabled:"Ekraani jagamine on keelatud.",shareYourScreenDisabledForGuest:"K\xfclalised ei saa ekraani jagada.",startLiveStreaming:"Alusta otse\xfclekannet",startRecording:"Alusta salvestamist",startRemoteControlErrorMessage:"Kaugjuhtimise sessiooni alustamisel tekkis viga!",stopLiveStreaming:"L\xf5peta otse\xfclekanne",stopRecording:"L\xf5peta salvestamine",stopRecordingWarning:"Oled kindel, et soovid salvestamist l\xf5petada?",stopStreamingWarning:"Oled kindel, et soovid otse\xfclekannet l\xf5petada?",streamKey:"Otse\xfclekande v\xf5ti",Submit:"Esita",thankYou:"Ait\xe4h, et kasutasid rakendust {{appName}}!",token:"token",tokenAuthFailed:"Kahjuks ei ole k\xf5nega \xfchinemine lubatud.",tokenAuthFailedTitle:"Autentimine eba\xf5nnestus",transcribing:"Transkribeerimine",unlockRoom:"Eemalda k\xf5ne parool",userPassword:"kasutaja parool",WaitForHostMsg:"K\xf5ne {{room}} ei ole veel alanud. Autendi ennast, kui oled v\xf5\xf5rustaja. K\xfclalisena oota, kuni v\xf5\xf5rustaja saabub.",WaitForHostMsgWOk:"K\xf5ne {{room}} ei ole veel alanud. Kui oled v\xf5\xf5rustaja, vajuta OK, et ennast autentida. K\xfclalisena oota, kuni v\xf5\xf5rustaja saabub.",WaitingForHost:"V\xf5\xf5rustaja ootamine...",Yes:"Jah",yourEntireScreen:"T\xe4isekraan"},dialOut:{statusMessage:"on staatusega {{status}}"},documentSharing:{title:"Jagatud dokument"},feedback:{average:"Keskmine",bad:"Halb",detailsLabel:"Kirjelda t\xe4psemalt.",good:"Hea",rateExperience:"Hinda k\xf5ne kvaliteeti",veryBad:"V\xe4ga halb",veryGood:"V\xe4ga hea"},incomingCall:{answer:"Vasta",audioCallTitle:"Sissetulev k\xf5ne",decline:"L\xf5peta",productLabel:"Jitsi",videoCallTitle:"Sissetulev videok\xf5ne"},info:{accessibilityLabel:"N\xe4ita infot",addPassword:"Lisa parool",cancelPassword:"T\xfchista parool",conferenceURL:"Link:",country:"Riik",dialANumber:"K\xf5nega \xfchinemiseks vali number ja sisesta pin-kood.",dialInConferenceID:"PIN:",dialInNotSupported:"Oih, sissehelistamine ei ole toetatud!",dialInNumber:"Sissehelistamine:",dialInSummaryError:"Sissehelistamise info pole k\xe4ttesaadav. Proovi hiljem uuesti!",dialInTollFree:"Maksuvaba",genericError:"Oih, midagi l\xe4ks valesti!",inviteLiveStream:"Otse\xfclekande n\xe4gemiseks vajuta lingile: {{url}}",invitePhone:"\xdcks klikk heliga sissehelistamiseks: {{number}},,{{conferenceID}}#",invitePhoneAlternatives:"Otsid teist sissehelistamise numbrit?\nVaata sissehelistamise numbreid: {{url}}\n\n\nKui helistad l\xe4bi ruumi, \xfchine k\xf5nega v\xe4ljal\xfclitatud mikrofoni re\u017eiimis: {{silentUrl}}",inviteURLFirstPartGeneral:"Oled k\xf5nesse kutsutud.",inviteURLFirstPartPersonal:"{{name}} kutsub Sind k\xf5nesse.\n",inviteURLSecondPart:"\n\xdchine k\xf5nega:\n{{url}}\n",liveStreamURL:"Otse\xfclekanne:",moreNumbers:"Rohkem numbreid",noNumbers:"Sissehelistamise numbrid puuduvad.",noPassword:"Andmed puuduvad",noRoom:"Sissehelistamise ruum pole t\xe4psustatud.",numbers:"Sissehelistamise numbrid",password:"Parool:",title:"Jaga",tooltip:"Jaga linki ja helista, et k\xf5nega \xfchineda",label:"K\xf5ne info"},inviteDialog:{alertText:"Osade kasutajate kutsumine eba\xf5nnestus.",header:"Kutsu",searchCallOnlyPlaceholder:"Sisesta telefoninumber",searchPeopleOnlyPlaceholder:"Otsi kasutajaid",searchPlaceholder:"Kasutaja telefoninumber",send:"Saada"},inlineDialogFailure:{msg:"Midagi l\xe4ks valesti.",retry:"Proovi uuesti",support:"Kasutajatugi",supportMsg:"Kui see juhtub uuesti, v\xf5ta \xfchendust"},keyboardShortcuts:{focusLocal:"Keskendu videole",focusRemote:"Keskendu teise kasutaja videole",fullScreen:"Ava/sulge t\xe4isekraani vaade",keyboardShortcuts:"Klaviatuuri kiirvalikud",localRecording:"N\xe4ita/peida salvestamise v\xf5imalused",mute:"L\xfclita mikrofon sisse/v\xe4lja",pushToTalk:"Vajuta, et r\xe4\xe4kida",raiseHand:"T\xf5sta/langeta k\xe4tt",showSpeakerStats:"N\xe4ita k\xf5nelejate statistikat",toggleChat:"Ava/sulge vestluse aken",toggleFilmstrip:"N\xe4ita/peida video eelvaade",toggleScreensharing:"Vaheta kaamera ja ekraanijagamise vahel",toggleShortcuts:"N\xe4ita/peida klaviatuuri kiirvalikud",videoMute:"L\xfclita kaamera sisse/v\xe4lja",videoQuality:"Halda k\xf5ne kvaliteeti"},liveStreaming:{busy:"Toimub \xfclekande ressursi vabastamine. Proovi m\xf5ne minuti p\xe4rast uuesti.",busyTitle:"K\xf5ik \xfclekandjad on hetkel h\xf5ivatud",changeSignIn:"Vaheta kontot.",choose:"Vali otse\xfclekanne",chooseCTA:"Vali \xfclekande viis. Oled sisse logitud e-mailiga {{email}}.",enterStreamKey:"Sisesta siia oma YouTube\u2019i \xfclekande v\xf5ti.",error:"Otse\xfclekanne eba\xf5nnestus. Proovi uuesti.",errorAPI:"YouTube\u2019i kanaliga \xfchendumisel tekkis viga. Palun logi uuesti sisse.",errorLiveStreamNotEnabled:"Otse\xfclekanne ei ole e-mailiga {{email}} sisse l\xfclitatud. Luba kasutajaga otse\xfclekanded v\xf5i vaheta kontot.",expandedOff:"Otse\xfclekanne on peatatud",expandedOn:"K\xf5nest tehakse otse\xfclekanne YouTube\u2019i.",expandedPending:"Otse\xfclekanne algab...",failedToStart:"Otse\xfclekandega alustamine eba\xf5nnestus.",getStreamKeyManually:"\xdclekandjaid ei leitud. Leia YouTube\u2019st otse\xfclekande v\xf5ti.",invalidStreamKey:"Otse\xfclekande v\xf5ti v\xf5ib olla vale.",off:"Otse\xfclekanne on peatatud",offBy:"{{name}} l\xf5petas otse\xfclekande",on:"Otse\xfclekanne",onBy:"{{name}} alustas otse\xfclekandega",pending:"Otse\xfclekande alustamine...",serviceName:"Otse\xfclekande teenus",signedInAs:"Oled sisse logitud kasutajana:",signIn:"Google\u2019ga sisselogimine",signInCTA:"Logi sisse v\xf5i sisesta otse\xfclekande v\xf5ti YouTube\u2019st.",signOut:"Logi v\xe4lja",start:"Alusta otse\xfclekannet.",streamIdHelp:"Mis see on?",unavailableTitle:"Otse\xfclekanne pole k\xe4ttesaadav."},localRecording:{clientState:{off:"V\xe4ljas",on:"Sees",unknown:"Teadmata"},dialogTitle:"Kohalikud salvestamise nupud",duration:"Kestvus",durationNA:"N/A",encoding:"Kodeerimine",label:"LOR",labelToolTip:"Kohalik salvestamine on alustatud",localRecording:"Kohalik salvestamine",me:"Mina",messages:{engaged:"Local recording engaged.",finished:"Salvestamise sessioon {{token}} on l\xf5ppenud. Palun saada salvestatud fail moderaatorile.",finishedModerator:"Salvestamise sessioon {{token}} on l\xf5ppenud ja salvestatud. K\xfcsi teistelt kontaktidelt nende koopiaid.",notModerator:"Sa ei ole moderaator. Sa ei saa alustada ega l\xf5petada kohalikku salvestamist."},moderator:"Moderaator",no:"Ei",participant:"Osaleja",participantStats:"Osaleja andmed",sessionToken:"Sessiooni token",start:"Alusta salvestamist",stop:"L\xf5peta salvestamine",yes:"Jah"},lockRoomPassword:"parool",lockRoomPasswordUppercase:"Parool",me:"mina",notify:{connectedOneMember:"{{name}} \xfchines k\xf5nega",connectedThreePlusMembers:"{{name}} ja {{count}} teist kasutajat \xfchines k\xf5nega",connectedTwoMembers:"{{first}} ja {{second}} \xfchinesid k\xf5nega",disconnected:"lahti \xfchendatud",focus:"Konverentsi fookus",focusFail:"{{component}} pole k\xe4ttesaadav - proovi uuesti {{ms}} sekundi p\xe4rast.",grantedTo:"Moderaatori \xf5igused on antud kasutajale {{to}}!",invitedOneMember:"{{name}} on kutsutud",invitedThreePlusMembers:"{{name}} ja {{count}} teist kasutajat on kutsutud",invitedTwoMembers:"{{first}} ja {{second}} on kutsutud",kickParticipant:"{{kicked}} eemaldati k\xf5nest kasutaja {{kicker}} poolt",me:"Mina",moderator:"Moderaatori \xf5igused jagatud!",muted:"Alustasid k\xf5net v\xe4ljal\xfclitatud mikrofoniga.",mutedTitle:"Mikrofon on v\xe4lja l\xfclitatud!",mutedRemotelyTitle:"Sinu mikrofon l\xfclitati v\xe4lja kasutaja {{participantDisplayName}} poolt!",mutedRemotelyDescription:"Saad alati oma mikrofoni sisse l\xfclitada, kui soovid r\xe4\xe4kida. L\xfclita mikrofon peale r\xe4\xe4kimist uuesti v\xe4lja liigse m\xfcra ja kaja v\xe4ltimiseks.",passwordRemovedRemotely:"$t(lockRoomPasswordUppercase) eemaldatud teise kasutaja poolt",passwordSetRemotely:"$t(lockRoomPasswordUppercase) lisatud teise kasutaja poolt",raisedHand:"{{name}} soovib r\xe4\xe4kida.",somebody:"Keegi",startSilentTitle:"\xdchinesid ilma mikrofonita!",startSilentDescription:"Mikrofoni kasutamiseks \xfchine k\xf5nega uuesti",suboptimalExperienceDescription:"Rakenduse {{appName}} parima kvaliteedi tagamiseks palun kasuta \xfchte nendest veebilehitsejatest.",suboptimalExperienceTitle:"Veebilehitseja hoiatus",unmute:"L\xfclita mikrofon sisse",newDeviceCameraTitle:"Leitud uus kaamera",newDeviceAudioTitle:"Leitud uus heliseadeldis",newDeviceAction:"Kasuta"},passwordSetRemotely:"m\xe4\xe4ratud teise kasutaja poolt",passwordDigitsOnly:"Kuni {{number}} t\xe4hem\xe4rki",poweredby:"teieni toodud",presenceStatus:{busy:"H\xf5ivatud",calling:"Helistamine...",connected:"\xdchendatud",connecting:"\xdchendamine...",connecting2:"\xdchendamine*...",disconnected:"Lahti \xfchendatud",expired:"Aegunud",ignored:"Eiratud",initializingCall:"K\xf5ne alustamine...",invited:"Kutsutud",rejected:"Tagasi l\xfckatud",ringing:"Kutsumine..."},profile:{setDisplayNameLabel:"Sisesta nimi",setEmailInput:"Sisesta e-mail",setEmailLabel:"Sisesta gravatar email",title:"Profiil"},raisedHand:"Soovin r\xe4\xe4kida",recording:{authDropboxText:"Lisa Dropbox\u2019i",availableSpace:"Vaba ruum: {{spaceLeft}} MB (ca {{duration}} minutit salvestamist)",beta:"BETA",busy:"Salvestamise ressursi vabastamine... Proovi m\xf5ne minuti p\xe4rast uuesti.",busyTitle:"K\xf5ik salvestajad on praegu kinni",error:"Salvestamine eba\xf5nnestus. Proovi uuesti.",expandedOff:"Salvestamine peatatud",expandedOn:"K\xf5ne salvestatakse.",expandedPending:"Salvestamine on alustatud...",failedToStart:"Salvestamine eba\xf5nnestus",fileSharingdescription:"Jaga salvestust k\xf5nelejatega",live:"Otse",loggedIn:"Sisseloginud kasutajana {{userName}}",off:"Salvestamine on l\xf5petatud",offBy:"{{name}} l\xf5petas salvestamise",on:"Salvestatakse",onBy:"{{name}} alustas salvestamist",pending:"K\xf5ne salvestamise ettevalmistus...",rec:"REC",serviceDescription:"Salvestus toimub teenuse kaudu",serviceName:"Salvestamise teenus",signIn:"Logi sisse",signOut:"Logi v\xe4lja",unavailable:"Oih! {{serviceName}} ei ole hetkel k\xe4ttesaadav! Proovi hiljem uuesti.",unavailableTitle:"Salvestamine ei ole v\xf5imalik."},sectionList:{pullToRefresh:"T\xf5mba uuendamiseks"},settings:{calendar:{about:"Rakenduse {{appName}} kalender kasutab turvalist \xfchendust ning n\xe4eb eesolevaid k\xf5nesid.",disconnect:"\xdchenda lahti",microsoftSignIn:"Logi sisse Microsoft\u2019i kontoga",signedIn:"Hetkel n\xe4hakse kasutaja {{email}} kalendrit. Kalendrikutsete peitmiseks vajuta \u201c\xdchenda lahti\u201d nupule.",title:"Kalender"},devices:"Seaded",followMe:"K\xf5ik j\xe4lgivad mind",language:"Keel",loggedIn:"Logitud sisse nimega: {{name}}",moderator:"Moderaator",more:"Rohkem",name:"Nimi",noDevice:"Andmed puuduvad",selectAudioOutput:"Heli v\xe4ljund",selectCamera:"Kaamera",selectMic:"Mikrofon",startAudioMuted:"K\xf5ik alustavad v\xe4ljal\xfclitatud mikrofoniga",startVideoMuted:"K\xf5ik alustavad v\xe4ljal\xfclitatud kaameraga",title:"Seaded"},settingsView:{advanced:"T\xe4psem",alertOk:"OK",alertTitle:"Hoiatus",alertURLText:"Sisestatud link ei ole \xf5ige",buildInfoSection:"Versioon",conferenceSection:"K\xf5ne",disableCallIntegration:"L\xfclita kohaliku k\xf5ne integratsioon v\xe4lja",disableP2P:"L\xfclita otse\xfchendus v\xe4lja",displayName:"Kasutatav nimi",email:"E-mail",header:"Seaded",profileSection:"Profiil",serverURL:"Serveri link",showAdvanced:"N\xe4ita t\xe4psemaid seadistusi",startWithAudioMuted:"Alusta v\xe4ljal\xfclitatud heliga",startWithVideoMuted:"Alusta v\xe4ljal\xfclitatud videoga",version:"Versioon"},share:{dialInfoText:"\n\n=====\n\nSoovid sisse helistada oma telefonilt?\n\n{{defaultDialInNumber}}Vajuta lingile, et n\xe4ha telefoninumbreid sisse helistamiseks\n{{dialInfoPageUrl}}",mainText:"Vajuta lingile, et k\xf5nega \xfchineda:\n{{roomUrl}}"},speaker:"K\xf5neleja",speakerStats:{hours:"{{count}}t",minutes:"{{count}}m",name:"Nimi",seconds:"{{count}}s",speakerStats:"K\xf5neleja andmed",speakerTime:"K\xf5nelemise aeg"},startupoverlay:{policyText:" ",title:"{{app}} vajab ligip\xe4\xe4su mikrofonile ja kaamerale."},suspendedoverlay:{rejoinKeyTitle:"\xdchine uuesti",text:"Vajuta \xdchine uuesti nupule, et uuesti \xfchineda.",title:"K\xf5ne katkestati, sest arvuti l\xe4ks magama."},toolbar:{accessibilityLabel:{audioOnly:"Kasuta ainult heli",audioRoute:"Vali heli vahend",callQuality:"Halda k\xf5ne kvaliteeti",cc:"Kasuta subtiitreid",chat:"Kasuta vestluse akent",document:"Kasuta jagatud dokumente",download:"Laadi rakendus alla",feedback:"J\xe4ta tagasiside",fullScreen:"Kasuta t\xe4isekraani",hangup:"Lahku k\xf5nest",help:"Abi",invite:"Kutsu inimesi",kick:"Eemalda k\xf5neleja",localRecording:"N\xe4ita salvestamise paneeli",lockRoom:"Kasuta k\xf5ne parooli",moreActions:"Kasuta toimingute men\xfc\xfcd",moreActionsMenu:"Toimingute men\xfc\xfc",moreOptions:"N\xe4ita rohkem valikuid",mute:"L\xfclita heli v\xe4lja",muteEveryone:"Vaigista k\xf5ikide mikrofonid",pip:"Kasuta pilt-pildis vaadet",privateMessage:"Saada privaats\xf5num",profile:"Muuda profiili",raiseHand:"K\xe4e t\xf5stmine",recording:"Salvestamine",remoteMute:"L\xfclita kasutaja mikrofon v\xe4lja",Settings:"Seadistused",sharedvideo:"Kasuta Youtube\u2019i video jagamist",shareRoom:"Kutsu",shareYourScreen:"Jaga ekraani",shortcuts:"Kasuta kiirvalikuid",show:"N\xe4ita laval",speakerStats:"K\xf5nelejate statistika",tileView:"Paneelvaade",toggleCamera:"Kasuta kaamerat",videomute:"Video v\xe4ljal\xfclitamine",videoblur:"Video h\xe4gustamine"},addPeople:"Lisa k\xf5nesse inimesi",audioOnlyOff:"L\xfclita \u201cainult heli\u201d valik v\xe4lja",audioOnlyOn:"L\xfclita \u201cainult heli\u201d valik sisse",audioRoute:"Vali heli vahend",authenticate:"Autendi",callQuality:"Halda k\xf5ne kvaliteeti",chat:"Ava/sulge vestlus",closeChat:"Sulge vestlus",documentClose:"Sulge jagatud dokument",documentOpen:"Ava jagatud dokument",download:"Laadi rakendus alla",enterFullScreen:"Vaata t\xe4isekraanil",enterTileView:"Vaata paneelvaates",exitFullScreen:"V\xe4lju t\xe4isekraani vaatest",exitTileView:"V\xe4lju paneelvaatest",feedback:"J\xe4ta tagasiside",hangup:"Lahku",help:"Abi",invite:"Kutsu",login:"Logi sisse",logout:"Logi v\xe4lja",lowerYourHand:"Langeta k\xe4tt",moreActions:"Rohkem tegevusi",moreOptions:"Rohkem valikuid",mute:"Mikrofon sisse/v\xe4lja",muteEveryone:"Vaigista k\xf5ikide mikrofonid",noAudioSignalTitle:"Mikrofon ei p\xfc\xfca sisendit kinni!",noAudioSignalDesc:"Kui Sa ei l\xfclitanud mikrofoni seadistustest tahtlikult v\xe4lja, kaalu seadme vahetamist.",noAudioSignalDescSuggestion:"Kui Sa ei l\xfclitanud mikrofoni seadistustest tahtlikult v\xe4lja, kaalu seadme vahetamist.",noAudioSignalDialInDesc:"V\xf5id sisse helistada valides:",noAudioSignalDialInLinkDesc:"Sissehelistamise numbrid",noisyAudioInputTitle:"Mikrofonis on m\xfcra! Tundub, et l\xe4bi mikrofoni kostub palju helisid. Kaalu mikrofoni v\xe4lja l\xfclitamist v\xf5i seadme vahetamist.",noisyAudioInputDesc:"Tundub, et l\xe4bi mikrofoni kostub palju helisid. Kaalu mikrofoni v\xe4lja l\xfclitamist v\xf5i seadme vahetamist.",openChat:"Ava vestlus",pip:"Ava pilt-pildis vaade",privateMessage:"Saada privaats\xf5num",profile:"Muuda profiili",raiseHand:"T\xf5sta/langeta k\xe4tt",raiseYourHand:"T\xf5sta k\xe4tt",Settings:"Seaded",sharedvideo:"Jaga YouTube\u2019i videot",shareRoom:"Kutsu",shortcuts:"Vaata kiirvalikuid",speakerStats:"K\xf5neleja andmed",startScreenSharing:"Alust ekraani jagamist",startSubtitles:"Alusta subtiitrite n\xe4itamist",stopScreenSharing:"L\xf5peta ekraani jagamine",stopSubtitles:"L\xf5peta subtiitrite n\xe4itamine",stopSharedVideo:"L\xf5peta YouTube\u2019i video",talkWhileMutedPopup:"Soovid r\xe4\xe4kida? Mikrofon on v\xe4lja l\xfclitatud.",tileViewToggle:"N\xe4ita paneelvaadet",toggleCamera:"Kasuta kaamerat",videomute:"Kaamera sisse/v\xe4lja",startvideoblur:"Tausta h\xe4gustamine",stopvideoblur:"L\xfclita tausta h\xe4gustamine v\xe4lja"},transcribing:{ccButtonTooltip:"Subtiitrid sisse/v\xe4lja",error:"Transkribeerimine eba\xf5nnestus. Proovi uuesti.",expandedLabel:"Transkribeerimine on sisse l\xfclitatud",failedToStart:"Transkribeerimise alustamine eba\xf5nnestus",labelToolTip:"K\xf5ne transkribeeritakse",off:"Transkribeerimine peatatud",pending:"Transkribeerimise ettevalmistus...",start:"Alusta subtiitrite kuvamist",stop:"L\xf5peta subtiitrite kuvamine",tr:"TR"},userMedia:{androidGrantPermissions:"Vali Luba, kui veebilehitseja k\xfcsib n\xf5usolekut.",chromeGrantPermissions:"Vali Luba, kui veebilehitseja k\xfcsib n\xf5usolekut.",edgeGrantPermissions:"Vali Jah, kui veebilehitseja k\xfcsib n\xf5usolekut.",electronGrantPermissions:"Luba kasutada kaamerat ja mikrofoni",firefoxGrantPermissions:"Vali Jaga valitud vahendit, kui veebilehitseja k\xfcsib n\xf5usolekut.",iexplorerGrantPermissions:"Vali OK, kui veebilehitseja k\xfcsib n\xf5usolekut.",nwjsGrantPermissions:"Luba kasutada kaamerat ja mikrofoni",operaGrantPermissions:"Vali Luba, kui veebilehitseja k\xfcsib n\xf5usolekut.","react-nativeGrantPermissions":"Vali Luba, kui veebilehitseja k\xfcsib n\xf5usolekut.",safariGrantPermissions:"Vali OK, kui veebilehitseja k\xfcsib n\xf5usolekut."},videoSIPGW:{busy:"Vabastatakse ressurssi... Proovi m\xf5ne minuti p\xe4rast uuesti.",busyTitle:"Ruumi teenus on hetkel h\xf5ivatud",errorAlreadyInvited:"{{displayName}} on juba kutsutud",errorInvite:"\xdchendus ei ole veel saavutatud. Proovi hiljem uuesti.",errorInviteFailed:"Probleemi lahendatakse. Proovi hiljem uuesti.",errorInviteFailedTitle:"Kasutaja {{displayName}} kutsumine eba\xf5nnestus",errorInviteTitle:"Ruumi kutsumine eba\xf5nnestus",pending:"{{displayName}} on kutsutud"},videoStatus:{audioOnly:"AUD",audioOnlyExpanded:"Kasutad k\xf5nes ainult heli. See h\xf5ivab \xfclekandekiirust v\xe4hem, aga video jagamine on v\xe4lja l\xfclitatud.",callQuality:"K\xf5ne kvaliteet",hd:"HD",hdTooltip:"Video vaatamine k\xf5rgkvaliteediga",highDefinition:"K\xf5rgresolutsioon",labelTooiltipNoVideo:"Video puudub",labelTooltipAudioOnly:"Valitud on \u201cainult heli\u201d seadistus",ld:"LD",ldTooltip:"Video vaatamine madala kvaliteediga",lowDefinition:"Madal",onlyAudioAvailable:"Saab kasutada ainult heli",onlyAudioSupported:"Selles veebilehitsejas on toetatud ainult heli.",p2pEnabled:"Otse\xfchendus on sisse l\xfclitatud",p2pVideoQualityDescription:"Otse\xfchenduse re\u017eiimis saab vastuv\xf5etava k\xf5ne heli olla \u201cainult heli\u201c, v\xf5i k\xf5rge. Teisi seadistusi ei saa valida.",recHighDefinitionOnly:"Eelistan k\xf5rgresolutsiooni.",sd:"SD",sdTooltip:"Video vaatamine vaikekvaliteediga",standardDefinition:"Vaike resolutsioon"},videothumbnail:{domute:"L\xfclita mikrofon v\xe4lja",domuteOthers:"Vaigista teiste mikrofonid",flip:"P\xf6\xf6ra",kick:"Eemalda k\xf5nest",moderator:"Moderaator",mute:"Kasutaja mikrofon v\xe4lja l\xfclitatud",muted:"Mikrofon v\xe4lja l\xfclitatud",remoteControl:"Kaugjuhtimine",show:"N\xe4ita laval",videomute:"Kasutaja on kaamera peatanud"},welcomepage:{accessibilityLabel:{join:"Vajuta, et \xfchineda",roomname:"Sisesta ruumi nimi"},appDescription:"Lase k\xe4ia, tee video\xfclekanne kogu meeskonnaga! Kutsu k\xf5ik, keda soovid. Rakendus {{app}} on kr\xfcpteeritud. 100% vabavara \xfclekannete tegemiseks, mida saab kasutada iga p\xe4ev tasuta - ilma konto loomiseta.",audioVideoSwitch:{audio:"Heli",video:"Video"},calendar:"Kalender",connectCalendarButton:"\xdchenda kalender",connectCalendarText:"\xdchenda oma kalender, et k\xf5iki kohtumisi n\xe4ha rakenduses {{app}}. Lisa {{provider}} kohtumised kalendrisse ja alusta k\xf5nesid \xfche klikiga.",enterRoomTitle:"Alusta uut k\xf5net",roomNameAllowedChars:"Televastuv\xf5tu nimi ei tohi sisaldada s\xfcmboleid: ?, &, :, ', \", %, #.",go:"Mine",goSmall:"Mine",join:"\xdchine",info:"Info",privacy:"Privaatsus",recentList:"Hiljutised",recentListDelete:"Kustuta",recentListEmpty:"Hiljutiste valikute nimekiri on t\xfchi. Vestle kasutajatega ja leia oma hiljutised k\xf5ned siit.",reducedUIText:"Tere tulemast rakendusse {{app}}!",roomname:"Sisesta ruumi nimi",roomnameHint:"Sisesta ruumi nimi v\xf5i link, millega soovid \xfchinega. V\xf5id nime v\xe4lja m\xf5elda, aga anna osalejatele sellest teada, et nad saaksid ruumiga \xfchineda.",sendFeedback:"Saada tagasiside",terms:"Tingimused",title:"Turvaline, v\xf5imalusi t\xe4is ja tasuta keskkond videok\xf5nede jaoks."},lonelyMeetingExperience:{button:"Kutsu teisi",youAreAlone:"Asud hetkel ruumis \xfcksi"}}},669,[]); +__d(function(e,s,o,t,n,r,a){n.exports={en:"",af:"",az:"",bg:"",cs:"",de:"",el:"",eo:"",es:"",fr:"",hy:"",it:"",ja:"",ko:"",nb:"",oc:"",pl:"",ptBR:"",ru:"",sk:"",sl:"",sv:"",tr:"",vi:"",zhCN:""}},670,[]); +__d(function(t,e,i,a,o,n,s){o.exports={addPeople:{add:"Kutsu",countryNotSupported:"T\xe4t\xe4 maata ei viel\xe4 tueta.",countryReminder:"Soitatko ulkomaille? Muista lis\xe4t\xe4 alkuun maakoodi!",disabled:"Et voi l\xe4hett\xe4\xe4 kutsuja.",failedToAdd:"",footerText:"Soittaminen on estetty.",loading:"Etsit\xe4\xe4n henkil\xf6it\xe4 ja puhelinnumeroita",loadingNumber:"Tarkistetaan puhelinnumeroa",loadingPeople:"Etsit\xe4\xe4n kutsuttavia henkil\xf6it\xe4",noResults:"Ei hakua vastaavia tuloksia",noValidNumbers:"Anna puhelinnumero",searchNumbers:"Lis\xe4\xe4 puhelinnumeroita",searchPeople:"Etsi henkil\xf6it\xe4",searchPeopleAndNumbers:"Etsi henkil\xf6it\xe4 tai lis\xe4\xe4 heid\xe4n puhelinnumeronsa",telephone:"Puhelin: {{number}}",title:"Kutsu henkil\xf6it\xe4 t\xe4h\xe4n kokoukseen"},audioDevices:{bluetooth:"Bluetooth",headphones:"Kuulokkeet",phone:"Puhelin",speaker:"Puhuja"},audioOnly:{audioOnly:"Vain \xe4\xe4ni"},calendarSync:{addMeetingURL:"Lis\xe4\xe4 kokouslinkki",confirmAddLink:"Haluatko lis\xe4t\xe4 tapahtumaan Jitsi-linkin?",error:{appConfiguration:"Kalenterin integrointia ei ole m\xe4\xe4ritetty asianmukaisesti.",generic:"Tapahtui virhe. Tarkista kalenterin m\xe4\xe4ritykset tai p\xe4ivit\xe4 kalenterin\xe4kym\xe4.",notSignedIn:"Kalenterin tapahtumien tarkasteluun tarvittavassa todennuksessa tapahtui virhe. Tarkista kalenterin asetukset ja kirjaudu sis\xe4\xe4n uudelleen."},join:"Liity",joinTooltip:"Liity kokoukseen",nextMeeting:"seuraava kokous",noEvents:"Aikataulussa ei ole tulevia tapahtumia.",ongoingMeeting:"meneill\xe4\xe4n oleva kokous",permissionButton:"Avaa asetukset",permissionMessage:"Kalenterin k\xe4ytt\xf6oikeus vaaditaan, jotta kokouksesi n\xe4kyv\xe4t sovelluksessa.",refresh:"P\xe4ivit\xe4 kalenteri",today:"T\xe4n\xe4\xe4n"},chat:{error:"Virhe: viesti\xe4 \"{{originalText}}\" ei l\xe4hetetty. Syy: {{error}}",messagebox:"Kirjoita viesti",nickname:{popover:"Valitse lempinimi",title:"Anna chatiss\xe4 k\xe4ytett\xe4v\xe4 lempinimi"},title:"Chatti"},connectingOverlay:{joiningRoom:"Yhdistet\xe4\xe4n kokoukseen..."},connection:{ATTACHED:"Liitteen\xe4",AUTHENTICATING:"Todennetaan",AUTHFAIL:"Todennus ep\xe4onnistui",CONNECTED:"Yhdistetty",CONNECTING:"Yhdistet\xe4\xe4n",CONNFAIL:"Yhdist\xe4minen ep\xe4onnistui",DISCONNECTED:"Ei yhteytt\xe4",DISCONNECTING:"Yhteytt\xe4 katkaistaan",ERROR:"Virhe",RECONNECTING:"Tapahtui verkkovirhe. Yhdistet\xe4\xe4n uudelleen..."},connectionindicator:{address:"Osoite:",bandwidth:"Arvioitu kaistanleveys:",bitrate:"Bittinopeus:",bridgeCount:"Palvelimien m\xe4\xe4r\xe4: ",connectedTo:"Yhdistetty kohteeseen:",framerate:"Kuvataajuus:",less:"N\xe4yt\xe4 v\xe4hemm\xe4n",localaddress:"Paikallinen osoite:",localaddress_plural:"Paikalliset osoitteet:",localport:"Paikallinen portti:",localport_plural:"Paikalliset portit:",more:"N\xe4yt\xe4 lis\xe4\xe4",packetloss:"Pakettien menetys:",quality:{good:"Hyv\xe4",inactive:"Ep\xe4aktiivinen",lost:"Katkennut",nonoptimal:"Ei optimaalinen",poor:"Huono"},remoteaddress:"Et\xe4osoite:",remoteaddress_plural:"Et\xe4osoitteet:",remoteport:"Et\xe4portti:",remoteport_plural:"Et\xe4portit:",resolution:"Resoluutio:",status:"Yhteys:",transport:"Kuljetus:",transport_plural:"Kuljetukset:",turn:" (vuoro)"},dateUtils:{earlier:"Aikaisemmin",today:"T\xe4n\xe4\xe4n",yesterday:"Eilen"},deepLinking:{appNotInstalled:"Tarvitset mobiilisovelluksen {{app}}, jotta voit liitty\xe4 t\xe4h\xe4n kokoukseen puhelimellasi.",description:"Eik\xf6 mit\xe4\xe4n tapahtunut? Yritimme k\xe4ynnist\xe4\xe4 kokouksen ty\xf6p\xf6yt\xe4sovelluksessa {{app}}. Yrit\xe4 uudelleen tai k\xe4ynnist\xe4 se verkkosovelluksessa {{app}}.",descriptionWithoutWeb:"",downloadApp:"Lataa sovellus",launchWebButton:"K\xe4ynnist\xe4 verkossa",openApp:"Jatka sovellukseen",title:"K\xe4ynnistet\xe4\xe4n kokousta sovelluksessa {{app}}...",tryAgainButton:"Yrit\xe4 uudelleen ty\xf6p\xf6yt\xe4sovelluksella"},defaultLink:"esim. {{url}}",deviceError:{cameraError:"Kameran k\xe4ytt\xf6 ei onnistunut",cameraPermission:"Virhe kameran k\xe4ytt\xf6oikeuksien hankkimisessa",microphoneError:"Mikrofonin k\xe4ytt\xf6 ei onnistunut",microphonePermission:"Virhe mikrofonin k\xe4ytt\xf6oikeuksien hankkimisessa"},deviceSelection:{noPermission:"K\xe4ytt\xf6oikeuksia ei my\xf6nnetty",previewUnavailable:"Esikatselu ei k\xe4ytett\xe4viss\xe4",selectADevice:"Valitse laite",testAudio:"Soita testi\xe4\xe4ni"},dialog:{accessibilityLabel:{liveStreaming:"Suoratoisto"},allow:"Salli",alreadySharedVideoMsg:"",alreadySharedVideoTitle:"Vain yksi jaettu video kerrallaan",applicationWindow:"Sovellusikkuna",Back:"Takaisin",cameraConstraintFailedError:"Kamerasi ei t\xe4yt\xe4 joitain pakollisia vaatimuksia.",cameraNotFoundError:"Kameraa ei l\xf6ydy.",cameraNotSendingData:"Kameran k\xe4ytt\xf6 ei onnistu. Tarkista, k\xe4ytt\xe4\xe4k\xf6 jokin toinen sovellus t\xe4t\xe4 laitetta, valitse toinen laite asetusvalikosta tai yrit\xe4 k\xe4ynnist\xe4\xe4 sovellus uudelleen.",cameraNotSendingDataTitle:"Kameran k\xe4ytt\xf6 ei onnistu",cameraPermissionDeniedError:"Et ole my\xf6nt\xe4nyt lupaa kamerasi k\xe4ytt\xf6\xf6n. Voit liitty\xe4 kokoukseen, mutta muut eiv\xe4t n\xe4e sinua. Korjaa tilanne osoitekent\xe4n kamerapainikkeella.",cameraUnknownError:"Kameran k\xe4ytt\xf6 ei onnistu tuntemattomasta syyst\xe4.",cameraUnsupportedResolutionError:"Kamerasi ei tue vaadittua videoresoluutiota.",Cancel:"Peruuta",close:"Sulje",conferenceDisconnectMsg:"Tarkista verkkoyhteys. Yhdistet\xe4\xe4n uudelleen {{seconds}} sekunnin kuluttua...",conferenceDisconnectTitle:"Yhteys on katkennut.",conferenceReloadMsg:"Yrit\xe4mme korjata tilannetta. Yhdistet\xe4\xe4n uudelleen {{seconds}} sekunnin kuluttua...",conferenceReloadTitle:"Valitettavasti jokin meni vikaan.",confirm:"Vahvista",confirmNo:"Ei",confirmYes:"Kyll\xe4",connectError:"Hups! Jokin meni vikaan, ja kokoukseen yhdist\xe4minen ei onnistunut.",connectErrorWithMsg:"Hups! Jokin meni pieleen ja kokoukseen yhdist\xe4minen ei onnistunut: {{msg}}",connecting:"Yhdistet\xe4\xe4n",contactSupport:"Ota yhteytt\xe4 tukeen",copy:"Kopioi",dismiss:"Hylk\xe4\xe4",displayNameRequired:"",done:"Valmis",enterDisplayName:"",error:"Virhe",externalInstallationMsg:"Asenna ty\xf6p\xf6yd\xe4n jakolaajennuksemme.",externalInstallationTitle:"Laajennus vaaditaan",goToStore:"Siirry verkkokauppaan",gracefulShutdown:"Palvelu on keskeytetty huoltoa varten. Yrit\xe4 my\xf6hemmin uudelleen.",IamHost:"Olen vet\xe4j\xe4",incorrectRoomLockPassword:"",incorrectPassword:"Virheellinen k\xe4ytt\xe4j\xe4tunnus tai salasana",inlineInstallationMsg:"Asenna ty\xf6p\xf6yd\xe4n jakolaajennuksemme.",inlineInstallExtension:"Asenna nyt",internalError:"Hups! Jokin meni vikaan. Tapahtui seuraava virhe: {{error}}",internalErrorTitle:"Sis\xe4inen virhe",kickMessage:"",kickParticipantButton:"Poista",kickParticipantDialog:"Haluatko varmasti poistaa t\xe4m\xe4n osanottajan kokouksesta?",kickParticipantTitle:"",kickTitle:"",liveStreaming:"Suoratoisto",liveStreamingDisabledForGuestTooltip:"Vieraat eiv\xe4t voi aloittaa suoratoistol\xe4hetyst\xe4.",liveStreamingDisabledTooltip:"Suoratoiston aloitus ei ole k\xe4yt\xf6ss\xe4.",lockMessage:"Kokouksen lukitseminen ei onnistunut.",lockRoom:"",lockTitle:"Lukitus ep\xe4onnistui",logoutQuestion:"Haluatko varmasti kirjautua ulos ja lopettaa kokouksen?",logoutTitle:"Kirjaudu ulos",maxUsersLimitReached:"",maxUsersLimitReachedTitle:"",micConstraintFailedError:"Mikrofonisi ei t\xe4yt\xe4 joitain pakollisia vaatimuksia.",micNotFoundError:"Mikrofonia ei l\xf6ytynyt.",micNotSendingData:"",micNotSendingDataTitle:"",micPermissionDeniedError:"Et ole my\xf6nt\xe4nyt lupaa mikrofonisi k\xe4ytt\xf6\xf6n. Voit liitty\xe4 kokoukseen, mutta muut eiv\xe4t kuule sinua. Korjaa tilanne osoitekent\xe4n kamerapainikkeella.",micUnknownError:"Mikrofonin k\xe4ytt\xf6 ei onnistu tuntemattomasta syyst\xe4.",muteParticipantBody:"Et voi poistaa muiden mykistyst\xe4, mutta he voivat poistaa oman mykistyksens\xe4 milloin tahansa.",muteParticipantButton:"Mykist\xe4",muteParticipantDialog:"Haluatko varmasti mykist\xe4\xe4 t\xe4m\xe4n osanottajan? Et voi sen j\xe4lkeen poistaa mykistyst\xe4, mutta h\xe4n voi poistaa sen itse milloin tahansa.",muteParticipantTitle:"",Ok:"Ok",passwordLabel:"",passwordNotSupported:"",passwordNotSupportedTitle:"",passwordRequired:"",popupError:"Selaimesi est\xe4\xe4 t\xe4m\xe4 sivuston ponnahdusikkunat. Salli ponnahdusikkunat selaimen suojausasetuksista ja yrit\xe4 uudelleen.",popupErrorTitle:"Ponnahdusikkuna estetty",recording:"Nauhoitetaan",recordingDisabledForGuestTooltip:"Vieraat eiv\xe4t voi nauhoittaa.",recordingDisabledTooltip:"Nauhoitus ei ole k\xe4yt\xf6ss\xe4.",rejoinNow:"Liity nyt uudelleen",remoteControlAllowedMessage:"{{user}} hyv\xe4ksyi et\xe4k\xe4ytt\xf6pyynt\xf6si!",remoteControlDeniedMessage:"{{user}} hylk\xe4si et\xe4k\xe4ytt\xf6pyynt\xf6si!",remoteControlErrorMessage:"Tapahtui virhe, kun et\xe4k\xe4ytt\xf6oikeuksia pyydettiin henkil\xf6lt\xe4 {{user}}!",remoteControlRequestMessage:"Sallitko, ett\xe4 {{user}} et\xe4k\xe4ytt\xe4\xe4 tietokonettasi?",remoteControlShareScreenWarning:"Huomaa, ett\xe4 Salli-vaihtoehdon valitsemalla jaat n\xe4ytt\xf6si!",remoteControlStopMessage:"Et\xe4k\xe4ytt\xf6istunto p\xe4\xe4ttyi!",remoteControlTitle:"Tietokoneen et\xe4k\xe4ytt\xf6",Remove:"Poista",removePassword:"",removeSharedVideoMsg:"Haluatko varmasti poistaa jaetun videon?",removeSharedVideoTitle:"Poista jaettu video",reservationError:"Varausj\xe4rjestelm\xe4n virhe",reservationErrorMsg:"Virhekoodi: {{code}}, viesti: {{msg}}",retry:"Yrit\xe4 uudelleen",screenSharingFailedToInstall:"Hups! N\xe4yt\xf6njakolaajennuksen asennus ep\xe4onnistui.",screenSharingFailedToInstallTitle:"N\xe4yt\xf6njakolaajennuksen asennus ep\xe4onnistui",screenSharingFirefoxPermissionDeniedError:"Jokin meni vikaan, kun yritimme jakaa n\xe4ytt\xf6si. Tarkista, ett\xe4 annoit meille siihen luvan. ",screenSharingFirefoxPermissionDeniedTitle:"Hups! N\xe4yt\xf6njakoa ei voitu aloittaa!",screenSharingPermissionDeniedError:"Hups!Jokin meni vikaan n\xe4yt\xf6njakolaajennuksen k\xe4ytt\xf6oikeuksissa. K\xe4ynnist\xe4 uudelleen ja yrit\xe4 sitten uudelleen.",serviceUnavailable:"Palvelu ei k\xe4ytett\xe4viss\xe4",sessTerminated:"Puhelu lopetettu",Share:"Jaa",shareVideoLinkError:"Anna oikea YouTube-linkki.",shareVideoTitle:"Jaa video",shareYourScreen:"Jaa n\xe4ytt\xf6",shareYourScreenDisabled:"N\xe4yt\xf6njako ei ole k\xe4yt\xf6ss\xe4.",shareYourScreenDisabledForGuest:"Vieraat eiv\xe4t voi jakaa n\xe4ytt\xf6\xe4.",startLiveStreaming:"Aloita suoratoisto",startRecording:"Aloita nauhoitus",startRemoteControlErrorMessage:"Et\xe4k\xe4ytt\xf6istunnon aloittamisessa tapahtui virhe!",stopLiveStreaming:"Lopeta suoratoisto",stopRecording:"Lopeta nauhoitus",stopRecordingWarning:"Haluatko varmasti lopettaa nauhoituksen?",stopStreamingWarning:"Haluatko varmasti lopettaa suoratoiston?",streamKey:"Suoratoistokoodi",Submit:"L\xe4het\xe4",thankYou:"Kiitos sovelluksen {{appName}} k\xe4yt\xf6st\xe4!",token:"koodi",tokenAuthFailed:"Valitettavasti et saa osallistua t\xe4h\xe4n puheluun.",tokenAuthFailedTitle:"Todennus ep\xe4onnistui",transcribing:"Puhtaaksikirjoitus",unlockRoom:"",userPassword:"k\xe4ytt\xe4j\xe4n salasana",WaitForHostMsg:"Kokous {{room}} ei ole viel\xe4 alkanut. Jos olet vet\xe4j\xe4, todenna henkil\xf6llisyytesi. Muussa tapauksessa odota vet\xe4j\xe4n saapumista.",WaitForHostMsgWOk:"Kokous {{room}} ei ole viel\xe4 alkanut. Jos olet vet\xe4j\xe4, todenna henkil\xf6llisyytesi OK-painikkeella. Muussa tapauksessa odota vet\xe4j\xe4n saapumista.",WaitingForHost:"Odotetaan vet\xe4j\xe4\xe4...",Yes:"Kyll\xe4",yourEntireScreen:"Koko n\xe4ytt\xf6"},dialOut:{statusMessage:"on nyt tilassa {{status}}"},feedback:{average:"Keskiverto",bad:"Huono",detailsLabel:"Kerro lis\xe4\xe4.",good:"Hyv\xe4",rateExperience:"Arvioi kokouskokemus",veryBad:"Eritt\xe4in huono",veryGood:"Eritt\xe4in hyv\xe4"},incomingCall:{answer:"Vastaus",audioCallTitle:"Saapuva puhelu",decline:"Hylk\xe4\xe4",productLabel:"Jitsi Meetist\xe4",videoCallTitle:"Saapuva videopuhelu"},info:{accessibilityLabel:"N\xe4yt\xe4 tiedot",addPassword:"",cancelPassword:"",conferenceURL:"Linkki:",country:"Maa",dialANumber:"Liity kokoukseen soittamalla yhteen n\xe4ist\xe4 numeroista ja antamalla PIN-koodi.",dialInConferenceID:"PIN:",dialInNotSupported:"Valitettavasti soittoa ei t\xe4ll\xe4 hetkell\xe4 tueta.",dialInNumber:"Liittymissoitto:",dialInSummaryError:"Virhe soittotietojen noudossa. Yrit\xe4 my\xf6hemmin uudelleen.",dialInTollFree:"Maksuton",genericError:"Hupsista, jokin meni vikaan.",inviteLiveStream:"Katso suora kokousl\xe4hetys seuraavasta linkist\xe4: {{url}}",invitePhone:"",invitePhoneAlternatives:"",inviteURLFirstPartGeneral:"Olet saanut kokouskutsun.",inviteURLFirstPartPersonal:"",inviteURLSecondPart:"",liveStreamURL:"Suoratoisto:",moreNumbers:"Lis\xe4\xe4 numeroita",noNumbers:"Ei liittymispuhelinnumeroita.",noPassword:"Ei yht\xe4\xe4n",noRoom:"Liitytt\xe4v\xe4\xe4 huonetta ei valittu.",numbers:"Liittymispuhelinnumerot",password:"",title:"Jaa",tooltip:"Jaa kokouksen linkki ja liittymissoittotiedot",label:"Kokoustiedot"},inviteDialog:{alertText:"Osa kutsuista ep\xe4onnistui.",header:"Kutsu",searchCallOnlyPlaceholder:"Anna puhelinnumero",searchPeopleOnlyPlaceholder:"Etsi osanottajia",searchPlaceholder:"Osanottaja tai puhelinnumero",send:"L\xe4het\xe4"},inlineDialogFailure:{msg:"K\xf6mm\xe4hdimme.",retry:"Yrit\xe4 uudelleen",support:"Tuki",supportMsg:"Jos t\xe4m\xe4 jatkuu, ota yhteytt\xe4:"},keyboardShortcuts:{focusLocal:"Keskity omaan videoon",focusRemote:"Keskity jonkun muun videoon",fullScreen:"N\xe4yt\xe4 tai poista koko n\xe4ytt\xf6",keyboardShortcuts:"Pikan\xe4pp\xe4imet",localRecording:"N\xe4yt\xe4 tai piilota paikalliset nauhoitusohjaimet",mute:"S\xe4\xe4d\xe4 mikrofonin mykistyst\xe4",pushToTalk:"Paina ja puhu",raiseHand:"K\xe4den nosto tai lasku",showSpeakerStats:"N\xe4yt\xe4 puhujatilastot",toggleChat:"Avaa tai sulje chatti",toggleFilmstrip:"N\xe4yt\xe4 tai piilota videon pikkukuvat",toggleScreensharing:"Siirry kameran ja n\xe4yt\xf6n jakamisen v\xe4lill\xe4",toggleShortcuts:"N\xe4yt\xe4 tai piilota pikan\xe4pp\xe4imet",videoMute:"K\xe4ynnist\xe4 tai pys\xe4yt\xe4 kamera"},liveStreaming:{busy:"Yrit\xe4mme vapauttaa suoratoistoresursseja. Yrit\xe4 uudelleen muutaman minuutin kuluttua.",busyTitle:"Kaikki suoratoistokanavat ovat juuri nyt varattuja",changeSignIn:"Vaihda tili\xe4.",choose:"Valitse suoratoistol\xe4hetys",chooseCTA:"Valitse suoratoistovaihtoehto. Olet kirjautunut s\xe4hk\xf6postilla {{email}}.",enterStreamKey:"Kirjoita YouTube-suoratoistokoodi t\xe4h\xe4n.",error:"Suoratoisto ep\xe4onnistui. Yrit\xe4 uudelleen.",errorAPI:"YouTube-l\xe4hetykseen yhdist\xe4misess\xe4 tapahtui virhe. Yrit\xe4 kirjautua uudelleen sis\xe4\xe4n.",errorLiveStreamNotEnabled:"Suoratoisto ei ole k\xe4yt\xf6ss\xe4 tilill\xe4 {{email}}. Ota suoratoisto k\xe4ytt\xf6\xf6n tai kirjaudu tiliin, jossa se on k\xe4yt\xf6ss\xe4.",expandedOff:"Suoratoisto on p\xe4\xe4ttynyt",expandedOn:"Kokous n\xe4kyy parhaillaan YouTubessa suoratoistol\xe4hetyksen\xe4.",expandedPending:"Suoratoistol\xe4hetys on alkamassa...",failedToStart:"Suoratoiston aloitus ei onnistunut",getStreamKeyManually:"Suoratoistol\xe4hetysten nouto ep\xe4onnistui. Hanki suoratoistokoodi YouTubesta.",invalidStreamKey:"Suoratoistokoodi voi olla virheellinen.",off:"Suoratoisto p\xe4\xe4ttyi",on:"Suoratoisto",pending:"Suoratoisto alkamassa...",serviceName:"Suoratoistopalvelu",signedInAs:"Sis\xe4\xe4nkirjautunut k\xe4ytt\xe4j\xe4:",signIn:"Kirjaudu Googlella",signInCTA:"Kirjaudu sis\xe4\xe4n tai anna YouTube-suoratoistokoodi.",signOut:"Kirjaudu ulos",start:"Aloita suoratoisto",streamIdHelp:"Mik\xe4 t\xe4m\xe4 on?",unavailableTitle:"Suoratoisto ei k\xe4ytett\xe4viss\xe4"},localRecording:{clientState:{off:"Pois p\xe4\xe4lt\xe4",on:"P\xe4\xe4ll\xe4",unknown:"Tuntematon"},dialogTitle:"Paikalliset nauhoitusohjaimet",duration:"Kesto",durationNA:"\xad\u2013",encoding:"Koodaus",label:"LOR",labelToolTip:"Paikallinen nauhoitus k\xe4yt\xf6ss\xe4",localRecording:"Paikallinen nauhoitus",me:"Min\xe4",messages:{engaged:"Paikallinen nauhoitus k\xe4yt\xf6ss\xe4.",finished:"Nauhoitus {{token}} p\xe4\xe4ttyi. L\xe4het\xe4 nauhoite valvojalle.",finishedModerator:"Nauhoitus {{token}} p\xe4\xe4ttyi. Paikallisen raidan nauhoitus on tallennettu. Pyyd\xe4 muita osanottajia l\xe4hett\xe4m\xe4\xe4n omat nauhoituksensa.",notModerator:"Et ole valvoja. Et voi aloittaa tai lopettaa paikallista nauhoitusta."},moderator:"Valvoja",no:"Ei",participant:"Osanottaja",participantStats:"Osanottajatilastot",sessionToken:"Istuntokoodi",start:"Aloita nauhoitus",stop:"Lopeta nauhoitus",yes:"Kyll\xe4"},lockRoomPassword:"",lockRoomPasswordUppercase:"",me:"min\xe4",notify:{connectedOneMember:"{{name}} liittyi kokoukseen",connectedThreePlusMembers:"{{name}} ja {{count}} muuta liittyiv\xe4t kokoukseen",connectedTwoMembers:"{{first}} ja {{second}} liittyiv\xe4t kokoukseen",disconnected:"ei yhteytt\xe4",focus:"Kokouksen painopiste",focusFail:"{{component}} ei k\xe4ytett\xe4viss\xe4. Yrit\xe4 uudelleen {{ms}} sekunnin kuluttua",grantedTo:"Valvojan oikeudet my\xf6nnetty k\xe4ytt\xe4j\xe4lle {{to}}!",invitedOneMember:"{{name}} on kutsuttu",invitedThreePlusMembers:"",invitedTwoMembers:"",kickParticipant:"",me:"Min\xe4",moderator:"Valvojan oikeudet my\xf6nnetty!",muted:"Aloitit keskustelun mykistettyn\xe4.",mutedTitle:"Olet mykistetty!",mutedRemotelyTitle:"",mutedRemotelyDescription:"",passwordRemovedRemotely:"",passwordSetRemotely:"",raisedHand:"{{name}} pyyt\xe4\xe4 puheenvuoroa.",somebody:"Joku",startSilentTitle:"",startSilentDescription:"",suboptimalExperienceDescription:"Valitettavasti {{appName}} ei taida toimia kovin hyvin t\xe4\xe4ll\xe4. Yrit\xe4mme l\xf6yt\xe4\xe4 parannuskeinoja, mutta sill\xe4 v\xe4lin kannattaa k\xe4ytt\xe4\xe4 jotain t\xe4ysin tuettua selainta.",suboptimalExperienceTitle:"Selainvaroitus",unmute:"",newDeviceCameraTitle:"Uusi kamera havaittu",newDeviceAudioTitle:"Uusi \xe4\xe4nilaite havaittu",newDeviceAction:"K\xe4yt\xe4"},passwordSetRemotely:"",passwordDigitsOnly:"",poweredby:"tukija:",presenceStatus:{busy:"Varattu",calling:"Soitetaan...",connected:"Yhdistetty",connecting:"Yhdistet\xe4\xe4n...",connecting2:"Yhdistet\xe4\xe4n*...",disconnected:"Ei yhteytt\xe4",expired:"Vanhentunut",ignored:"Sivuutettu",initializingCall:"K\xe4ynnistet\xe4\xe4n puhelua...",invited:"Kutsuttu",rejected:"Hyl\xe4tty",ringing:"Soi..."},profile:{setDisplayNameLabel:"M\xe4\xe4rit\xe4 n\xe4ytt\xf6nimi",setEmailInput:"Anna s\xe4hk\xf6postiosoite",setEmailLabel:"M\xe4\xe4rit\xe4 Gravatar-s\xe4hk\xf6posti",title:"Profiili"},recording:{authDropboxText:"Lataa Dropboxiin",availableSpace:"Tilaa j\xe4ljell\xe4: {{spaceLeft}} Mt (noin {{duration}} minuuttia nauhoitetta)",beta:"BEETA",busy:"Yrit\xe4mme vapauttaa nauhoitusresursseja. Yrit\xe4 uudelleen muutaman minuutin kuluttua.",busyTitle:"Kaikki nauhoittimet ovat juuri nyt varattuja",error:"Nauhoitus ep\xe4onnistui. Yrit\xe4 uudelleen.",expandedOff:"Nauhoitus p\xe4\xe4ttyi",expandedOn:"T\xe4t\xe4 kokousta nauhoitetaan.",expandedPending:"Nauhoitus on alkamassa...",failedToStart:"Nauhoituksen aloitus ep\xe4onnistui",fileSharingdescription:"Jaa nauhoitus kokouksen osanottajille",live:"SUORA L\xc4HETYS",loggedIn:"Kirjautunut k\xe4ytt\xe4j\xe4n\xe4 {{userName}}",off:"Nauhoitus p\xe4\xe4ttyi",on:"Nauhoitetaan",pending:"Kokouksen nauhoitusta valmistellaan...",rec:"REC",serviceDescription:"Nauhoituspalvelu tallentaa nauhoituksen",serviceName:"Nauhoituspalvelu",signIn:"Kirjaudu sis\xe4\xe4n",signOut:"Kirjaudu ulos",unavailable:"Hups! {{serviceName}} ei ole k\xe4ytett\xe4viss\xe4. Yrit\xe4mme ratkaista ongelman. Yrit\xe4 my\xf6hemmin uudelleen.",unavailableTitle:"Nauhoitus ei k\xe4ytett\xe4viss\xe4"},sectionList:{pullToRefresh:"P\xe4ivit\xe4 vet\xe4m\xe4ll\xe4"},settings:{calendar:{about:"{{appName}} tarkistaa tulevat tapahtumat kalenteristasi turvallisesti kalenteri-integrointitoimintonsa avulla.",disconnect:"Katkaise yhteys",microsoftSignIn:"Kirjaudu Microsoftilla",signedIn:"Tarkastellaan k\xe4ytt\xe4j\xe4n {{email}} kalenteritapahtumia. Est\xe4 tarkastelu napsauttamalla Katkaise yhteys -painiketta.",title:"Kalenteri"},devices:"Laitteet",followMe:"Kaikki seuraavat minua",language:"Kieli",loggedIn:"Kirjautunut k\xe4ytt\xe4j\xe4n\xe4 {{name}}",moderator:"Valvoja",more:"Lis\xe4\xe4",name:"Nimi",noDevice:"Ei yht\xe4\xe4n",selectAudioOutput:"\xc4\xe4niulostulo",selectCamera:"Kamera",selectMic:"Mikrofoni",startAudioMuted:"Kaikki aluksi mykistettyin\xe4",startVideoMuted:"Kaikki aluksi piilotettuina",title:"Asetukset"},settingsView:{alertOk:"OK",alertTitle:"Varoitus",alertURLText:"Annettu palvelimen URL on virheellinen",buildInfoSection:"Koontiversion tiedot",conferenceSection:"Kokous",displayName:"N\xe4ytt\xf6nimi",email:"S\xe4hk\xf6posti",header:"Asetukset",profileSection:"Profiili",serverURL:"Palvelimen URL",startWithAudioMuted:"Aloita \xe4\xe4ni mykistettyn\xe4",startWithVideoMuted:"Aloita video mykistettyn\xe4",version:"Versio"},share:{dialInfoText:"",mainText:"Liity kokoukseen seuraavasta linkist\xe4:\n{{roomUrl}}"},speaker:"Puhuja",speakerStats:{hours:"{{count}} t",minutes:"{{count}} min",name:"Nimi",seconds:"{{count}} s",speakerStats:"Puhujatilastot",speakerTime:"Puhujan aika"},startupoverlay:{policyText:" ",title:"{{app}} tarvitsee mikrofoniasi ja kameraasi."},suspendedoverlay:{rejoinKeyTitle:"Liity uudelleen",text:"Yhdist\xe4 uudelleen napsauttamalla Liity uudelleen -painiketta.",title:"Videopuhelu keskeytyi, koska tietokone siirtyi lepotilaan."},toolbar:{accessibilityLabel:{audioOnly:"S\xe4\xe4d\xe4 Vain \xe4\xe4ni -tilaa",audioRoute:"Valitse \xe4\xe4nilaite",callQuality:"",cc:"S\xe4\xe4d\xe4 tekstityst\xe4",chat:"S\xe4\xe4d\xe4 chatti-ikkunaa",document:"S\xe4\xe4d\xe4 jaettua asiakirjaa",feedback:"Anna palautetta",fullScreen:"S\xe4\xe4d\xe4 koko n\xe4ytt\xf6\xe4",hangup:"Poistu puhelusta",invite:"L\xe4het\xe4 kutsuja",kick:"Poista osanottaja kokouksesta",localRecording:"S\xe4\xe4d\xe4 paikallisia nauhoitusohjaimia",lockRoom:"S\xe4\xe4d\xe4 kokouksen salasanaa",moreActions:"S\xe4\xe4d\xe4 Lis\xe4\xe4 toimintoja -valikkoa",moreActionsMenu:"Lis\xe4\xe4 toimintoja -valikko",mute:"S\xe4\xe4d\xe4 \xe4\xe4nen mykistyst\xe4",pip:"S\xe4\xe4d\xe4 Kuva kuvassa (PiP) -tilaa",profile:"Muokkaa profiilia",raiseHand:"S\xe4\xe4d\xe4 k\xe4den nostoa",recording:"S\xe4\xe4d\xe4 nauhoitusta",remoteMute:"Mykist\xe4 osanottaja",Settings:"S\xe4\xe4d\xe4 asetuksia",sharedvideo:"S\xe4\xe4d\xe4 YouTube-videon jakoa",shareRoom:"Kutsu joku",shareYourScreen:"S\xe4\xe4d\xe4 n\xe4yt\xf6n jakoa",shortcuts:"S\xe4\xe4d\xe4 pikan\xe4pp\xe4imi\xe4",show:"",speakerStats:"S\xe4\xe4d\xe4 puhujatilastoja",tileView:"S\xe4\xe4d\xe4 ruudukkon\xe4kym\xe4\xe4",toggleCamera:"S\xe4\xe4d\xe4 kameraa",videomute:"S\xe4\xe4d\xe4 videon mykistyst\xe4",videoblur:""},addPeople:"Lis\xe4\xe4 osanottajia puheluun",audioOnlyOff:"Poista Vain \xe4\xe4ni -tila k\xe4yt\xf6st\xe4",audioOnlyOn:"Ota Vain \xe4\xe4ni -tila k\xe4ytt\xf6\xf6n",audioRoute:"Valitse \xe4\xe4nilaite",authenticate:"Todenna",callQuality:"",chat:"Avaa/sulje chatti",closeChat:"Sulje chatti",documentClose:"Sulje jaettu asiakirja",documentOpen:"Avaa jaettu asiakirja",enterFullScreen:"N\xe4yt\xe4 koko n\xe4yt\xf6ss\xe4",enterTileView:"Siirry ruudukkon\xe4kym\xe4\xe4n",exitFullScreen:"Poisti koko n\xe4yt\xf6st\xe4",exitTileView:"Poistu ruudukkon\xe4kym\xe4st\xe4",feedback:"Anna palautetta",hangup:"Poistu",invite:"L\xe4het\xe4 kutsuja",login:"Kirjaudu sis\xe4\xe4n",logout:"Kirjaudu ulos",lowerYourHand:"Laske k\xe4si",moreActions:"Lis\xe4\xe4 toimintoja",mute:"Mykistys p\xe4\xe4ll\xe4/pois",openChat:"Avaa chatti",pip:"Siirry Kuva kuvassa (PiP) -tilaan",profile:"Muokkaa profiilia",raiseHand:"Nosta/laske k\xe4si",raiseYourHand:"Nosta k\xe4si",Settings:"Asetukset",sharedvideo:"Jaa YouTube-video",shareRoom:"Kutsu joku",shortcuts:"N\xe4yt\xe4 pikan\xe4pp\xe4imet",speakerStats:"Puhujatilastot",startScreenSharing:"Aloita n\xe4yt\xf6n jako",startSubtitles:"K\xe4ynnist\xe4 tekstitys",stopScreenSharing:"Lopeta n\xe4yt\xf6n jako",stopSubtitles:"Lopeta tekstitys",stopSharedVideo:"Pys\xe4yt\xe4 YouTube-video",talkWhileMutedPopup:"Yrit\xe4tk\xf6 puhua? Olet mykistettyn\xe4.",tileViewToggle:"S\xe4\xe4d\xe4 ruudukkon\xe4kym\xe4\xe4",toggleCamera:"S\xe4\xe4d\xe4 kameraa",videomute:"K\xe4ynnist\xe4/pys\xe4yt\xe4 kamera",startvideoblur:"",stopvideoblur:""},transcribing:{ccButtonTooltip:"Tekstitys p\xe4\xe4lle/pois",error:"Puhtaaksikirjoitus ep\xe4onnistui. Yrit\xe4 uudelleen.",expandedLabel:"Puhtaaksikirjoitus on k\xe4yt\xf6ss\xe4",failedToStart:"Puhtaaksikirjoituksen aloitus ep\xe4onnistui",labelToolTip:"Kokousta kirjoitetaan puhtaaksi",off:"Puhtaaksikirjoitus p\xe4\xe4ttyi",pending:"Kokouksen puhtaaksikirjoitusta valmistellaan...",start:"Aloita tekstitys",stop:"Lopeta tekstitys",tr:"TR"},userMedia:{androidGrantPermissions:"Valitse Salli, kun selain pyyt\xe4\xe4 k\xe4ytt\xf6oikeuksia.",chromeGrantPermissions:"Valitse Salli, kun selain pyyt\xe4\xe4 k\xe4ytt\xf6oikeuksia.",edgeGrantPermissions:"Valitse Kyll\xe4, kun selain pyyt\xe4\xe4 k\xe4ytt\xf6oikeuksia.",electronGrantPermissions:"My\xf6nn\xe4 k\xe4ytt\xf6oikeudet laitteesi kameran ja mikrofonin k\xe4ytt\xf6\xf6n.",firefoxGrantPermissions:"Valitse Jaa havaittu laite, kun selain pyyt\xe4\xe4 k\xe4ytt\xf6oikeuksia.",iexplorerGrantPermissions:"Valitse OK, kun selain pyyt\xe4\xe4 k\xe4ytt\xf6oikeuksia.",nwjsGrantPermissions:"My\xf6nn\xe4 k\xe4ytt\xf6oikeudet laitteesi kameran ja mikrofonin k\xe4ytt\xf6\xf6n.",operaGrantPermissions:"Valitse Salli, kun selain pyyt\xe4\xe4 k\xe4ytt\xf6oikeuksia.","react-nativeGrantPermissions":"Valitse Salli, kun selain pyyt\xe4\xe4 k\xe4ytt\xf6oikeuksia.",safariGrantPermissions:"Valitse OK, kun selain pyyt\xe4\xe4 k\xe4ytt\xf6oikeuksia."},videoSIPGW:{busy:"Yrit\xe4mme vapauttaa resursseja. Yrit\xe4 uudelleen muutaman minuutin kuluttua.",busyTitle:"Huonepalvelu on t\xe4ll\xe4 hetkell\xe4 varattu",errorAlreadyInvited:"{{displayName}} on jo kutsuttu",errorInvite:"Kokousta ei ole viel\xe4 luotu. Yrit\xe4 my\xf6hemmin uudelleen.",errorInviteFailed:"Ratkaisemme ongelmaa. Yrit\xe4 my\xf6hemmin uudelleen.",errorInviteFailedTitle:"Henkil\xf6n {{displayName}} kutsuminen ep\xe4onnistui",errorInviteTitle:"Virhe huoneen kutsumisessa",pending:"{{displayName}} on kutsuttu"},videoStatus:{audioOnly:"\xc4\xc4NI",audioOnlyExpanded:"K\xe4yt\xf6ss\xe4si on Vain \xe4\xe4ni -tila. Se s\xe4\xe4st\xe4\xe4 kaistanleveytt\xe4, mutta et n\xe4e muiden videoita.",callQuality:"",hd:"HD",highDefinition:"Ter\xe4v\xe4piirto",labelTooiltipNoVideo:"Ei videota",labelTooltipAudioOnly:"Vain \xe4\xe4ni -tila k\xe4yt\xf6ss\xe4",ld:"LD",lowDefinition:"Alhainen kuvanlaatu",onlyAudioAvailable:"Vain \xe4\xe4ni -tila on k\xe4ytett\xe4viss\xe4",onlyAudioSupported:"T\xe4ss\xe4 selaimessa tuemme vain \xe4\xe4nt\xe4.",p2pEnabled:"Vertaisverkko k\xe4yt\xf6ss\xe4",p2pVideoQualityDescription:"",recHighDefinitionOnly:"Suositaan ter\xe4v\xe4piirtoa.",sd:"SD",standardDefinition:"Vakiopiirto"},videothumbnail:{domute:"Mykist\xe4",flip:"K\xe4\xe4nn\xe4",kick:"Poista",moderator:"Valvoja",mute:"",muted:"Mykistetty",remoteControl:"Et\xe4k\xe4ytt\xf6",show:"",videomute:""},welcomepage:{accessibilityLabel:{join:"Liity napauttamalla",roomname:"Anna huoneen nimi"},appDescription:"Anna menn\xe4! Keskustele videochatiss\xe4 koko tiimin kanssa tai kutsu vaikka kaikki tutut. {{app}} on t\xe4ysin salattu, avoimen l\xe4hdekoodin videokokousratkaisu kokop\xe4iv\xe4iseen k\xe4ytt\xf6\xf6n joka p\xe4iv\xe4. Se on maksuton, eik\xe4 vaadi tili\xe4.",audioVideoSwitch:{audio:"\xc4\xe4ni",video:"Video"},calendar:"Kalenteri",connectCalendarButton:"Yhdist\xe4 oma kalenteri",connectCalendarText:"",enterRoomTitle:"Aloita uusi kokous",go:"ALOITA",join:"LIITY",info:"Tiedot",privacy:"Tietosuoja",recentList:"Viimeisimm\xe4t",recentListDelete:"Poista",recentListEmpty:"Viimeisimpien kokousten luettelo on tyhj\xe4. Kun pid\xe4t kokouksia tiimisi kanssa, niist\xe4 viimeisimm\xe4t n\xe4kyv\xe4t t\xe4\xe4ll\xe4.",reducedUIText:"",roomname:"Anna huoneen nimi",roomnameHint:"Kirjoita sen huoneen nimi tai URL-osoite, johon haluat liitty\xe4. Voit my\xf6s nimet\xe4 huoneen itse ja kertoa nimen muille, jotta he voivat l\xf6yt\xe4\xe4 sen.",sendFeedback:"L\xe4het\xe4 palautetta",terms:"Ehdot",title:"Turvallinen, t\xe4ysin varustettu ja maksuton videoneuvottelu"}}},671,[]); +__d(function(a,n,i,e,s,o,r){s.exports={en:"Anglais",af:"Afrikaans",bg:"Bulgare",ca:"Catalan",cs:"Tch\xe8que",de:"Allemand",el:"Grec",enGB:"Anglais (Royaume-Uni) ",eo:"Esp\xe9ranto",es:"Espagnol",esUS:"Espagnol (Am\xe9rique latine)",fi:"Finlandais",fr:"Fran\xe7ais",frCA:"Fran\xe7ais (Canadien)",hr:"Croate",hu:"Hongrois",hy:"Arm\xe9nien",it:"Italien",ja:"Japonais",ko:"Cor\xe9en",nl:"N\xe9erlandais",oc:"Occitan",pl:"Polonais",ptBR:"Portugais (Br\xe9sil)",ru:"Russe",sk:"Slovaque",sv:"Su\xe9dois",tr:"Turc",vi:"Vietnamien",zhCN:"Chinois (Chine)",zhTW:"Chinois (Taiwan)"}},672,[]); +__d(function(e,r,n,t,o,i,a){o.exports={addPeople:{add:"Inviter",countryNotSupported:"Nous ne supportons pas encore cette destination.",countryReminder:"Appel hors des \xc9tats-Unis ? Veuillez commencer avec le code du pays !",disabled:"Vous ne pouvez pas inviter quelqu'un.",failedToAdd:"Erreur lors de l'ajout des participants",footerText:"Appels sortants d\xe9sactiv\xe9s",loading:"Rechercher des personnes et des num\xe9ros de t\xe9l\xe9phone",loadingNumber:"Validation du num\xe9ro de t\xe9l\xe9phone",loadingPeople:"Recherche de personnes \xe0 inviter",noResults:"Aucun r\xe9sultat de recherche correspondant",noValidNumbers:"Veuillez entrer un num\xe9ro de t\xe9l\xe9phone",searchNumbers:"Ajouter des num\xe9ros de t\xe9l\xe9phone",searchPeople:"Rechercher une personne",searchPeopleAndNumbers:"Rechercher des personnes ou ajouter leurs num\xe9ros de t\xe9l\xe9phone",telephone:"T\xe9l\xe9phone: {{number}}",title:"Inviter une personne \xe0 cette r\xe9union"},audioDevices:{bluetooth:"Bluetooth",headphones:"\xc9couteurs",phone:"T\xe9l\xe9phone",speaker:"Haut-parleur",none:"Aucune source audio n'est disponible"},audioOnly:{audioOnly:"Bande passante faible"},calendarSync:{addMeetingURL:"Ajouter un lien de conf\xe9rence",confirmAddLink:"Voulez-vous ajouter un lien Jitsi \xe0 cet \xe9v\xe9nement ?",error:{appConfiguration:"l'int\xe9gration du calendrier n'est pas correctement configur\xe9e",generic:"Une erreur s'est produite. Veuillez v\xe9rifier les param\xe8tres de votre calendrier ou tenter de l'actualiser.",notSignedIn:"Une erreur s'est produite lors de l'authentification permettant d'afficher les \xe9v\xe9nements du calendrier. Veuillez v\xe9rifier les param\xe8tres de votre calendrier et essayer de vous reconnecter."},join:"Joindre",joinTooltip:"Rejoindre la r\xe9union",nextMeeting:"prochaine r\xe9union",noEvents:"Il n'y a pas d\u2019\xe9v\xe9nement \xe0 venir.",ongoingMeeting:"La r\xe9union en cours",permissionButton:"Afficher les r\xe9glages",permissionMessage:"La permission du calendrier est requise pour afficher vos r\xe9unions dans l'application.",refresh:"Rafra\xeechir le calendrier",today:"Aujourd'hui"},chat:{error:"Erreur : votre message n'a pas \xe9t\xe9 envoy\xe9. Raison : {{error}}",fieldPlaceHolder:"Tapez votre message ici",messagebox:"Saisissez un message",messageTo:"Message priv\xe9 \xe0 {{recipient}}",noMessagesMessage:"Il n'y a pas encore de messages dans cette r\xe9union. D\xe9marrez une conversation ici !",nickname:{popover:"Choisissez un pseudonyme",title:"Entrez un pseudonyme pour utiliser le chat"},privateNotice:"Message priv\xe9 \xe0 {{recipient}}",title:"Chat",you:"vous"},chromeExtensionBanner:{installExtensionText:"",buttonText:"",dontShowAgain:""},connectingOverlay:{joiningRoom:"Connexion \xe0 la r\xe9union..."},connection:{ATTACHED:"Attach\xe9e",AUTHENTICATING:"Authentification en cours",AUTHFAIL:"\xc9chec de l'authentification",CONNECTED:"Connect\xe9",CONNECTING:"Connexion en cours",CONNFAIL:"\xc9chec de la connexion",DISCONNECTED:"D\xe9connect\xe9",DISCONNECTING:"D\xe9connexion en cours",ERROR:"Erreur",RECONNECTING:"Un probl\xe8me r\xe9seau est survenue. Reconnexion en cours..."},connectionindicator:{address:"Adresse :",bandwidth:"Bande passante estim\xe9e :",bitrate:"D\xe9bit\xa0:",bridgeCount:"Nombre de serveurs :",connectedTo:"Connect\xe9 \xe0 :",framerate:"Images par seconde",less:"Cacher le d\xe9tail",localaddress:"Adresse locale :",localaddress_plural:"Adresses locales :",localport:"Port local :",localport_plural:"Ports locaux :",more:"Montrer le d\xe9tail",packetloss:"Perte de paquets :",quality:{good:"Bien",inactive:"Inactif",lost:"Perdu",nonoptimal:"Non-optimale",poor:"Mauvaise"},remoteaddress:"Adresse distante :",remoteaddress_plural:"Adresses distantes :",remoteport:"Port distant :",remoteport_plural:"Ports distants :",resolution:"R\xe9solution\xa0:",status:"Connexion :",transport:"Transport :",transport_plural:"Transports :"},dateUtils:{earlier:"Plus t\xf4t",today:"Aujourd'hui",yesterday:"Hier"},deepLinking:{appNotInstalled:"Vous avez besoin de l'application mobile {{app}} pour participer \xe0 cette r\xe9union avec votre t\xe9l\xe9phone.",description:"Rien ne s'est pass\xe9 ? Nous avons essay\xe9 de lancer votre r\xe9union dans l'application de bureau {{app}}. Essayez \xe0 nouveau ou lancez-la dans l'application web {{app}}.",descriptionWithoutWeb:"Rien ne s'est pass\xe9 ? Nous avons essay\xe9 de d\xe9marrer votre r\xe9union dans l'application bureau {{app}}.",downloadApp:"T\xe9l\xe9charger l'application",launchWebButton:"Lancer dans le navigateur",openApp:"Continuer vers l'application",title:"Lancement de votre r\xe9union dans {{app}} en cours...",tryAgainButton:"R\xe9essayez sur le bureau"},defaultLink:"ex. {{url}}",defaultNickname:"ex. Jean Dupont",deviceError:{cameraError:"Impossible d'acc\xe9der \xe0 votre cam\xe9ra",cameraPermission:"Erreur lors de l'obtention de la permission de la cam\xe9ra ",microphoneError:"Impossible d'acc\xe9der \xe0 votre microphone",microphonePermission:"Erreur lors de l'obtention de la permission du microphone"},deviceSelection:{noPermission:"Permission non accord\xe9e",previewUnavailable:"Aper\xe7u non disponible",selectADevice:"S\xe9lectionner un p\xe9riph\xe9rique",testAudio:"Tester la sortie audio"},dialog:{accessibilityLabel:{liveStreaming:"Diffusion en direct"},allow:"Autoriser",alreadySharedVideoMsg:"Un autre participant est en train de partager sa vid\xe9o. Cette conf\xe9rence ne permet de partager qu'une seule vid\xe9o \xe0 la fois.",alreadySharedVideoTitle:"Une seule vid\xe9o partag\xe9e est autoris\xe9e \xe0 la fois",applicationWindow:"Fen\xeatre d'application",Back:"Retour",cameraConstraintFailedError:"Votre cam\xe9ra ne satisfait pas certaines des contraintes n\xe9cessaires.",cameraNotFoundError:"La cam\xe9ra n'a pas \xe9t\xe9 trouv\xe9e",cameraNotSendingData:"Nous sommes incapables d'acc\xe9der \xe0 votre cam\xe9ra. Veuillez s\xe9lectionner un autre p\xe9riph\xe9rique dans les param\xe8tres ou rafra\xeechir la page",cameraNotSendingDataTitle:"Impossible d'acc\xe9der \xe0 votre cam\xe9ra",cameraPermissionDeniedError:"Vous n'avez pas autoris\xe9 l'utilisation de votre cam\xe9ra. Vous pouvez toujours participer \xe0 la conf\xe9rence, mais les autres ne vont pas vous voir. Utilisez le bouton de la cam\xe9ra dans la barre d'adresse pour r\xe9soudre ce probl\xe8me.",cameraUnknownError:"Vous ne pouvez pas utiliser la cam\xe9ra pour une raison inconnue.",cameraUnsupportedResolutionError:"Votre appareil ne prend pas en charge la r\xe9solution vid\xe9o requise.",Cancel:"Annuler",close:"Fermer",conferenceDisconnectMsg:"Veuillez v\xe9rifier votre connexion r\xe9seau. Reconnexion dans {{seconds}} sec...",conferenceDisconnectTitle:"Vous avez \xe9t\xe9 d\xe9connect\xe9.",conferenceReloadMsg:"On essaie d'arranger \xe7a. Reconnexion dans {{seconds}} secondes...",conferenceReloadTitle:"Malheureusement, un probl\xe8me est survenu",confirm:"Confirmer",confirmNo:"Non",confirmYes:"Oui",connectError:"Oups! Un probl\xe8me est survenu et la connexion \xe0 la conf\xe9rence est impossible.",connectErrorWithMsg:"Oups! Un probl\xe8me est survenu et la connexion \xe0 la conf\xe9rence est impossible: {{msg}}",connecting:"Connexion en cours",contactSupport:"Contacter le support",copy:"Copier",dismiss:"Rejeter",displayNameRequired:"Salut! Quel est votre nom ?",done:"Termin\xe9",enterDisplayName:"Merci de saisir votre nom ici",error:"Erreur",externalInstallationMsg:"Vous devez installer notre extension de partage de bureau.",externalInstallationTitle:"Extension requise : ",goToStore:"Aller sur le webstore",gracefulShutdown:"Le service est actuellement en maintenance. R\xe9essayez plus tard.",IamHost:"Je suis l\u2019h\xf4te",incorrectRoomLockPassword:"Mot de passe incorrect",incorrectPassword:"Nom d'utilisateur ou mot de passe incorrect",inlineInstallationMsg:"Vous devez installer notre extension de partage de bureau.",inlineInstallExtension:"Installer maintenant",internalError:"Oups! Quelque chose s'est mal pass\xe9e. L'erreur suivante s'est produite: {{error}}",internalErrorTitle:"Erreur interne",kickMessage:"Vous pouvez contacter {{participantDisplayName}} pour plus de d\xe9tails.",kickParticipantButton:"Expulser",kickParticipantDialog:"\xcates-vous s\xfbr(e) de vouloir expulser ce participant ?",kickParticipantTitle:"Expulser ce participant ?",kickTitle:"Oups! vous avez \xe9t\xe9 expuls\xe9(e) par {{participantDisplayName}}",liveStreaming:"Direct",liveStreamingDisabledForGuestTooltip:"Les invit\xe9s ne peuvent d\xe9marrer la diffusion en direct.",liveStreamingDisabledTooltip:"La diffusion en direct est d\xe9sactiv\xe9",lockMessage:"Impossible de verrouiller la conf\xe9rence.",lockRoom:"Ajouter un $t(lockRoomPassword) \xe0 la r\xe9union ",lockTitle:"\xc9chec du verrouillage",logoutQuestion:"Voulez-vous vraiment vous d\xe9connecter et arr\xeater la conf\xe9rence ?",logoutTitle:"D\xe9connexion",maxUsersLimitReached:"Le nombre maximal de participant est atteint. Le conf\xe9rence est compl\xe8te. Merci de contacter l'organisateur de la r\xe9union ou r\xe9essayer plus tard!",maxUsersLimitReachedTitle:"Le nombre maximal de participants est atteint",micConstraintFailedError:"Votre microphone ne satisfait pas certaines des contraintes n\xe9cessaires.",micNotFoundError:"Le microphone n'a pas \xe9t\xe9 d\xe9tect\xe9.",micNotSendingData:"Acc\xe9dez aux param\xe8tres de votre ordinateur pour r\xe9activer le micro et ajuster son niveau",micNotSendingDataTitle:"Votre micro est d\xe9sactiv\xe9 par les param\xe8tres de votre syst\xe8me",micPermissionDeniedError:"Vous n'avez pas autoris\xe9 l'utilisation de votre microphone. Vous pouvez toujours participer \xe0 la conf\xe9rence, mais les autres ne vont pas vous entendre. Utilisez le bouton du microphone dans la barre d'adresse pour r\xe9soudre ce probl\xe8me.",micUnknownError:"Vous ne pouvez pas utiliser le microphone pour une raison inconnue.",muteEveryoneElseDialog:"Une fois leur micro coup\xe9, vous ne pourrez plus le r\xe9activer, mais ils pourront l'activer par eux-m\xeames \xe0 tout moment.",muteEveryoneElseTitle:"Couper le micro de tout le monde sauf de {{whom}} ?",muteEveryoneDialog:"Etes-vous s\xfbr de vouloir couper les micros de tout le monde ? Vous ne pourrez plus r\xe9activer leur micro, mais ils pourront l'activer par eux-m\xeames \xe0 tout moment.",muteEveryoneTitle:"Couper le micro de tout le monde ?",muteEveryoneSelf:"vous",muteEveryoneStartMuted:"Tout le monde d\xe9marre avec le micro coup\xe9",muteParticipantBody:"Vous ne pourrez plus r\xe9activer son micro, mais il pourra l'activer par lui-m\xeame \xe0 tout moment.",muteParticipantButton:"Couper le micro",muteParticipantDialog:"\xcates-vous s\xfbr(e) de vouloir couper le micro de ce participant ? Seul le participant pourra ensuite r\xe9activer son micro \xe0 tout moment.",muteParticipantTitle:"Couper le micro de ce participant ?",Ok:"Ok",passwordLabel:"$t(lockRoomPasswordUppercase)",passwordNotSupported:"La d\xe9finition d'un $t(lockRoomPassword) de r\xe9union n'est pas prise en charge.",passwordNotSupportedTitle:"L'ajout d'un $t(lockRoomPassword) n'est pas support\xe9",passwordRequired:"$t(lockRoomPasswordUppercase) requis",popupError:"Votre navigateur bloque les fen\xeatres pop-up. Veuillez autoriser les fen\xeatres pop-up dans les param\xe8tres de votre navigateur.",popupErrorTitle:"Pop-up bloqu\xe9e",recording:"Enregistrement",recordingDisabledForGuestTooltip:"Les invit\xe9s ne peuvent enregistrer.",recordingDisabledTooltip:"L'enregistrement est d\xe9sactiv\xe9.",rejoinNow:"Rejoindre maintenant",remoteControlAllowedMessage:"{{user}} a accept\xe9 votre demande de prise en main \xe0 distance !",remoteControlDeniedMessage:"{{user}} a refus\xe9 votre demande de prise en main \xe0 distance !",remoteControlErrorMessage:"Une erreur s'est produite lors de la demande d\u2019autorisation de prise en main \xe0 distance avec {{user}} !",remoteControlRequestMessage:"Voulez-vous autoriser {{user}} \xe0 contr\xf4ler votre bureau ?",remoteControlShareScreenWarning:"Si vous appuyez sur \"Autoriser\", vous allez partager votre \xe9cran !",remoteControlStopMessage:"La prise en main \xe0 distance est termin\xe9e!",remoteControlTitle:"Contr\xf4le de bureau \xe0 distance",Remove:"Supprimer",removePassword:"Supprimer le $t(lockRoomPassword)",removeSharedVideoMsg:"Voulez-vous vraiment supprimer votre vid\xe9o partag\xe9e ?",removeSharedVideoTitle:"Supprimer la vid\xe9o partag\xe9e",reservationError:"Erreur du syst\xe8me de r\xe9servation",reservationErrorMsg:"Code d'erreur: {{code}}, message: {{msg}}",retry:"R\xe9essayer",screenSharingFailedToInstall:"Oups! Votre extension de partage d'\xe9cran n'a pas pu \xeatre install\xe9e.",screenSharingFailedToInstallTitle:"L'extension de partage d'\xe9cran n'a pas pu \xeatre install\xe9e",screenSharingFirefoxPermissionDeniedError:"Quelque chose s'est mal pass\xe9 pendant que nous essayions de partager votre \xe9cran. S'il vous pla\xeet assurez-vous que vous nous avez donn\xe9 la permission de le faire.",screenSharingFirefoxPermissionDeniedTitle:"Oups! Nous ne pouvions pas d\xe9marrer le partage d'\xe9cran!",screenSharingPermissionDeniedError:"Oups! Une erreur s'est produite avec vos autorisations d'extension de partage d'\xe9cran. Veuillez rafra\xeechir et r\xe9essayer.",sendPrivateMessage:"Vous avez r\xe9cemment re\xe7u un message priv\xe9. Aviez-vous l'intention d'y r\xe9pondre en priv\xe9, ou vouliez-vous envoyer votre message au groupe ?",sendPrivateMessageCancel:"Envoyer au groupe",sendPrivateMessageOk:"Envoyer en priv\xe9",sendPrivateMessageTitle:"Envoyer en priv\xe9 ?",serviceUnavailable:"Service indisponible",sessTerminated:"Appel termin\xe9",Share:"Partager",shareVideoLinkError:"Fournissez s'il vous pla\xeet un lien Youtube fonctionnel.",shareVideoTitle:"Partager une vid\xe9o",shareYourScreen:"Partagez votre \xe9cran",shareYourScreenDisabled:"Le partage d\u2019\xe9cran est d\xe9sactiv\xe9.",shareYourScreenDisabledForGuest:"Les invit\xe9s ne peuvent partager l'\xe9cran.",startLiveStreaming:"D\xe9marrer la diffusion en direct",startRecording:"Commencer l'enregistrement",startRemoteControlErrorMessage:"Une erreur est survenue lors de la tentative de d\xe9marrage de la session de contr\xf4le \xe0 distance!",stopLiveStreaming:"Arr\xeater la diffusion en direct",stopRecording:"Arr\xeater l'enregistrement",stopRecordingWarning:"D\xe9sirez-vous vraiment arr\xeater l'enregistrement ?",stopStreamingWarning:"D\xe9sirez-vous vraiment arr\xeater le direct ?",streamKey:"Cl\xe9 Live stream",Submit:"Soumettre",thankYou:"Merci d'avoir utilis\xe9 {{appName}} !",token:"jeton",tokenAuthFailed:"D\xe9sol\xe9, vous n'\xeates pas autoris\xe9 \xe0 rejoindre cette conversation.",tokenAuthFailedTitle:"\xc9chec de l'authentification",transcribing:"Transcription",unlockRoom:"Supprimer le $t(lockRoomPassword) de la r\xe9union",userPassword:"mot de passe utilisateur",WaitForHostMsg:"La conf\xe9rence {{room}} n'a pas encore commenc\xe9. Si vous en \xeates l'h\xf4te, veuillez vous authentifier. Sinon, veuillez attendre son arriv\xe9e.",WaitForHostMsgWOk:"La conf\xe9rence {{room}} n'a pas encore commenc\xe9. Si vous en \xeates l'h\xf4te, veuillez appuyer sur Ok pour vous authentifier. Sinon, veuillez attendre son arriv\xe9e.",WaitingForHost:"En attente de l'h\xf4te ...",Yes:"Oui",yourEntireScreen:"Votre \xe9cran entier"},dialOut:{statusMessage:"est maintenant {{status}}"},documentSharing:{title:"Document partag\xe9"},feedback:{average:"Moyen",bad:"Mauvais",detailsLabel:"Dites nous en plus \xe0 ce sujet.",good:"Bien",rateExperience:"Veuillez \xe9valuer votre exp\xe9rience.",veryBad:"Tr\xe8s mauvais",veryGood:"Tr\xe8s bon"},incomingCall:{answer:"R\xe9pondre",audioCallTitle:"Appel entrant",decline:"Rejeter",productLabel:"de Jitsi Meet",videoCallTitle:"Appel vid\xe9o entrant"},info:{accessibilityLabel:"Afficher les informations",addPassword:"Ajouter un $t(lockRoomPassword)",cancelPassword:"Supprimer le $t(lockRoomPassword)",conferenceURL:"Lien :",country:"Pays",dialANumber:"Pour rejoindre votre r\xe9union, composez l'un de ces num\xe9ros, puis saisissez le code confidentiel.",dialInConferenceID:"PIN :",dialInNotSupported:"D\xe9sol\xe9, l'acc\xe8s par t\xe9l\xe9phone n'est pas pris en charge pour l'instant.",dialInNumber:"Composer :",dialInSummaryError:"Erreur lors de la r\xe9cup\xe9ration des informations de num\xe9rotation. Veuillez r\xe9essayer plus tard.",dialInTollFree:"Num\xe9ro gratuit",genericError:"Oups, quelque chose a mal tourn\xe9.",inviteLiveStream:"Pour voir la diffusion en direct de cette r\xe9union, cliquez sur ce lien : {{url}}",invitePhone:"Pour rejoindre depuis un t\xe9l\xe9phone, saisissez : {{number}},,{{conferenceID}}#\n",invitePhoneAlternatives:"Vous cherchez un num\xe9ro d'appel diff\xe9rent ?\nAfficher les num\xe9ros d'appel de la r\xe9union: {{url}}\n\n\nSi vous appelez \xe9galement via un t\xe9l\xe9phone de salle, vous pouvez vous connecter sans audio: {{silentUrl}}",inviteURLFirstPartGeneral:"Vous \xeates invit\xe9(e) \xe0 participer \xe0 une r\xe9union.",inviteURLFirstPartPersonal:"{{name}} vous invite \xe0 une r\xe9union.\n",inviteURLSecondPart:"\nRejoindre la r\xe9union:\n{{url}}\n",liveStreamURL:"Diffusion en direct :",moreNumbers:"Plus de num\xe9ros ",noNumbers:"Num\xe9ros \xe0 composer non trouv\xe9s",noPassword:"Aucun",noRoom:"Aucune r\xe9union n'a \xe9t\xe9 sp\xe9cifi\xe9e pour l'appel entrant.",numbers:"Num\xe9ros d'appel",password:"$t(lockRoomPasswordUppercase) :",title:"Partager",tooltip:"Partager le lien et les informations de connexion pour cette conf\xe9rence",label:"Information de la r\xe9union"},inviteDialog:{alertText:"\xc9chec lors de l'invitation de certains participants.",header:"Inviter",searchCallOnlyPlaceholder:"Saisissez un num\xe9ro de t\xe9l\xe9phone",searchPeopleOnlyPlaceholder:"Rechercher des participants",searchPlaceholder:"Participant ou num\xe9ro de t\xe9l\xe9phone",send:"Envoyer"},inlineDialogFailure:{msg:"Nous avons tr\xe9buch\xe9 un peu.",retry:"R\xe9essayer",support:"Support",supportMsg:"Si cela continue, prenez contact avec"},keyboardShortcuts:{focusLocal:"\xc9pingler ma vid\xe9o",focusRemote:"\xc9pingler la vid\xe9o de quelqu'un d'autre",fullScreen:"Activer / D\xe9sactiver le mode plein \xe9cran",keyboardShortcuts:"Raccourcis clavier",localRecording:"Afficher ou masquer les commandes de l'enregistrement local",mute:"Activer ou d\xe9sactiver le microphone",pushToTalk:"Appuyer pour parler",raiseHand:"Lever ou baisser la main",showSpeakerStats:"Afficher les statistiques de l'interlocuteur",toggleChat:"Ouvrir ou fermer le panneau de conversation",toggleFilmstrip:"Afficher ou masquer les vignettes vid\xe9os",toggleScreensharing:"Basculer entre la cam\xe9ra et le partage d'\xe9cran",toggleShortcuts:"Afficher ou masquer les raccourcis clavier",videoMute:"D\xe9marrer ou arr\xeater votre cam\xe9ra",videoQuality:"Accorder la qualit\xe9 des appels"},liveStreaming:{busy:"Nous travaillons sur la lib\xe9ration des ressources de Streaming. Veuillez r\xe9essayez dans quelques minutes.",busyTitle:"Tous les streamers sont actuellement occup\xe9s",changeSignIn:"Changer de compte.",choose:"Choisir un flux live",chooseCTA:"Choisissez une option de diffusion. Vous \xeates actuellement connect\xe9 comme {{email}}.",enterStreamKey:"Entrez votre cl\xe9 de flux live Youtube ici",error:"Le Streaming a \xe9chou\xe9. Veuillez r\xe9essayer.",errorAPI:"Une erreur s'est produite lors de l'acc\xe8s \xe0 vos diffusions YouTube. Veuillez r\xe9essayer de vous connecter.",errorLiveStreamNotEnabled:"La diffusion en direct n'est pas activ\xe9e pour {{email}}. Merci de l'activer ou de vous connecter avec un compte o\xf9 elle est d\xe9j\xe0 activ\xe9e.",expandedOff:"La diffusion en direct a \xe9t\xe9 arr\xeat\xe9e",expandedOn:"La conf\xe9rence est en cours de diffusion sur YouTube.",expandedPending:"La diffusion en direct a commenc\xe9...",failedToStart:"Le Streaming n'as pas r\xe9ussi \xe0 d\xe9marrer",getStreamKeyManually:"Nous n'avons pu r\xe9cup\xe9rer aucun flux en direct. Essayez d\u2019obtenir votre cl\xe9 de diffusion en direct sur YouTube.",invalidStreamKey:"La cl\xe9 de diffusion en direct n'est peut-\xeatre pas correcte.",off:"Le Streaming a \xe9t\xe9 arr\xeat\xe9",offBy:"{{name}} a arr\xeat\xe9 la diffusion en continu",on:"Direct",onBy:"{{name}} d\xe9marr\xe9 la diffusion en continu",pending:"Commencer le direct...",serviceName:"Service de diffusion en direct",signedInAs:"Vous \xeates connect\xe9 en tant que :",signIn:"Se connecter avec Google",signInCTA:"Connectez vous ou entrez votre cl\xe9 de flux live provenant de Youtube.",signOut:"Se d\xe9connecter",start:"D\xe9marrer la diffusion en direct",streamIdHelp:"Qu'est-ce que c'est ?",unavailableTitle:"Le Streaming est indisponible"},localRecording:{clientState:{off:"Inactif",on:"Actif",unknown:"Inconnu"},dialogTitle:"Commandes de l'enregistrement local",duration:"Dur\xe9e",durationNA:"N/A",encoding:"Encodage",label:"ENR-LOC",labelToolTip:"L'enregistrement local est d\xe9marr\xe9",localRecording:"Enregistrement local",me:"Moi",messages:{engaged:"L'enregistrement local a d\xe9marr\xe9.",finished:"L'enregistrement de la session {{token}} s'est termin\xe9. Merci d'envoyer le fichier au mod\xe9rateur.",finishedModerator:"L'enregistrement de la session {{token}} s'est termin\xe9. La piste a bien \xe9t\xe9 sauvegard\xe9e. Merci de demander aux autres participants de soumettre leurs enregistrements.",notModerator:"Vous n'\xeates pas le mod\xe9rateur. Vous ne pouvez pas d\xe9marrer ou arr\xeater un enregistrement local."},moderator:"Moderateur",no:"Non",participant:"Participant",participantStats:"Statistiques du participant",sessionToken:"Token de la session",start:"D\xe9marrer l'enregistrement",stop:"Arr\xeater l'enregistrement",yes:"Oui"},lockRoomPassword:"mot de passe",lockRoomPasswordUppercase:"Mot de passe",me:"moi",notify:{connectedOneMember:"{{name}} a rejoint la r\xe9union.",connectedThreePlusMembers:"{{name}} et {{count}} autres personnes ont rejoint la r\xe9union.",connectedTwoMembers:"{{first}} et {{second}} ont rejoint la r\xe9union.",disconnected:"d\xe9connect\xe9",focus:"Focus de conf\xe9rence",focusFail:"{{component}} n'est pas disponible - r\xe9essayez dans {{ms}} sec",grantedTo:"Droits mod\xe9rateur accord\xe9s \xe0 {{to}} !",invitedOneMember:"{{displayName}} a \xe9t\xe9 invit\xe9(e)",invitedThreePlusMembers:"{{name}} et {{count}} autres ont \xe9t\xe9 invit\xe9s",invitedTwoMembers:"{{first}} et {{second}} ont \xe9t\xe9 invit\xe9s",kickParticipant:"{{kicked}} a \xe9t\xe9 expuls\xe9 par {{kicker}}",me:"Moi",moderator:"Droits mod\xe9rateur accord\xe9s !",muted:"Vous avez commenc\xe9 la conversation en muet.",mutedTitle:"V\xf4tre micro est coup\xe9 !",mutedRemotelyTitle:"Votre micro a \xe9t\xe9 coup\xe9 par {{participantDisplayName}}!",mutedRemotelyDescription:"Vous pouvez toujours activer votre micro pour prendre la parole. D\xe9sactivez votre micro quand vous terminez pour \xe9viter les bruits parasites.",passwordRemovedRemotely:"Le $t(lockRoomPassword) a \xe9t\xe9 supprim\xe9 par un autre participant",passwordSetRemotely:"Un $t(lockRoomPassword) a \xe9t\xe9 d\xe9fini par un autre participant",raisedHand:"{{name}} aimerait prendre la parole.",somebody:"Quelqu'un",startSilentTitle:"Vous avez rejoint sans sortie audio!",startSilentDescription:"Rejoignez la r\xe9union de nouveau pour activer l'audio",suboptimalBrowserWarning:"Nous craignons que votre exp\xe9rience de r\xe9union en ligne ne soit bonne ici. Nous cherchons des moyens d\u2019am\xe9liorer cela, mais d\u2019ici-l\xe0, essayez d\u2019utiliser l\u2019un des navigateurs support\xe9s.",suboptimalExperienceTitle:"Avertissement du navigateur",unmute:"R\xe9tablir le son",newDeviceCameraTitle:"Nouvelle cam\xe9ra d\xe9tect\xe9e",newDeviceAudioTitle:"Nouveau p\xe9riph\xe9rique audio d\xe9tect\xe9",newDeviceAction:"Utiliser"},passwordSetRemotely:"d\xe9fini par un autre participant",passwordDigitsOnly:"Jusqu'\xe0 {{number}} chiffres",poweredby:"Produit par",presenceStatus:{busy:"Occup\xe9",calling:"Appel...",connected:"Connect\xe9",connecting:"Connexion en cours...",connecting2:"Connexion en cours*...",disconnected:"D\xe9connect\xe9",expired:"Expir\xe9",ignored:"Ignor\xe9",initializingCall:"Lancement de l'appel...",invited:"Invit\xe9(e)",rejected:"Rejet\xe9",ringing:"Appel en cours..."},profile:{setDisplayNameLabel:"Choisissez un pseudo",setEmailInput:"Entrez une adresse e-mail",setEmailLabel:"D\xe9finir votre courriel Gravatar",title:"Profil"},raisedHand:"Aimerait prendre la parole",recording:{authDropboxText:"T\xe9l\xe9chargement vers Dropbox",availableSpace:"Espace disponible: {{spaceLeft}} Mo (approximativement {{duration}} minutes d'enregistrement)",beta:"BETA",busy:"Nous sommes en train de lib\xe9rer les ressources d'enregistrement. R\xe9essayez dans quelques minutes.",busyTitle:"Tous les enregistreurs sont actuellement occup\xe9s",error:"\xc9chec de l'enregistrement. Veuillez r\xe9essayer.",expandedOff:"L'enregistrement a \xe9t\xe9 arr\xeat\xe9",expandedOn:"Cette conf\xe9rence est actuellement en cours d'enregistrement.",expandedPending:"D\xe9marrage de l'enregistrement...",failedToStart:"L'enregistrement n'as pas r\xe9ussi \xe0 d\xe9marrer",fileSharingdescription:"Partager l'enregistrement avec les participants de la r\xe9union",live:"DIRECT",loggedIn:"Connect\xe9 en tant que {{userName}}",off:"Enregistrement arr\xeat\xe9",offBy:"{{name}} a arr\xeat\xe9 l'enregistrement",on:"Enregistrement",onBy:"{{name}} a d\xe9marr\xe9 l'enregistrement",pending:"Pr\xe9paration de l'enregistrement de la r\xe9union...",rec:"REC",serviceDescription:"Votre enregistrement sera enregistr\xe9 par le service d\xe9di\xe9.",serviceName:"Service d'enregistrement",signIn:"Se connecter",signOut:"Se d\xe9connecter",unavailable:"Oups! Le {{serviceName}} est actuellement indisponible. Nous travaillons sur la r\xe9solution du probl\xe8me. Veuillez r\xe9essayer plus tard.",unavailableTitle:"Enregistrement indisponible"},sectionList:{pullToRefresh:"Tirer pour recharger"},settings:{calendar:{about:"L'int\xe9gration de {{appName}} avec votre calendrier permet d\u2019acc\xe9der de mani\xe8re s\xe9curis\xe9e aux \xe9v\xe9nement \xe0 venir.",disconnect:"Se d\xe9connecter",microsoftSignIn:"Se connecter avec Microsoft",signedIn:"Acc\xe8s aux \xe9v\xe9nements du calendrier {{email}}. Cliquez sur le bouton se d\xe9connecter ci-dessous pour arr\xeater l'acc\xe8s aux \xe9v\xe9nements du calendrier.",title:"Calendrier"},devices:"P\xe9riph\xe9riques",followMe:"Tout le monde me suit",language:"Langue",loggedIn:"Connect\xe9 en tant que {{name}}",moderator:"Moderateur",more:"Plus",name:"Nom",noDevice:"Aucun",selectAudioOutput:"Sortie audio",selectCamera:"Cam\xe9ra",selectMic:"Microphone",startAudioMuted:"Tout le monde commence en muet",startVideoMuted:"Tout le monde commence sans vid\xe9o",title:"Param\xe8tres"},settingsView:{advanced:"Avanc\xe9",alertOk:"D'accord",alertTitle:"Avertissement",alertURLText:"L'URL du serveur est invalide",buildInfoSection:"Informations de build",conferenceSection:"Conf\xe9rence",disableCallIntegration:"D\xe9sactiver l'int\xe9gration d'appels native",disableP2P:"D\xe9sactiver le mode pair \xe0 pair",displayName:"Pseudo",email:"Email",header:"Param\xe8tres",profileSection:"Profil",serverURL:"URL du serveur",showAdvanced:"Afficher les param\xe8tres avanc\xe9s",startWithAudioMuted:"Commencez avec l'audio en sourdine",startWithVideoMuted:"Commencez avec la vid\xe9o en sourdine",version:"Version"},share:{dialInfoText:"\n\n=====\n\nVoulez-vous appeler depuis votre t\xe9l\xe9phone ?\n\n{{defaultDialInNumber}}Cliquez sur ce lien pour afficher les num\xe9ros d'appels pour cette r\xe9union\n{{dialInfoPageUrl}}",mainText:"Cliquez sur le lien suivant pour rejoindre une conf\xe9rence :\n{{roomUrl}}"},speaker:"Haut-parleur",speakerStats:{hours:"{{count}}h",minutes:"{{count}}m",name:"Nom",seconds:"{{count}}s",speakerStats:"Statistiques de l'interlocuteur",speakerTime:"Temps de l'interlocuteur"},startupoverlay:{policyText:" ",title:" {{app}} a besoin d'acc\xe9der \xe0 votre microphone et votre cam\xe9ra."},suspendedoverlay:{rejoinKeyTitle:"Rejoindre",text:"Cliquez sur le bouton Rejoindre pour se reconnecter.",title:"Votre visioconf\xe9rence s'est interrompue parce que votre ordinateur s'est mis en veille."},toolbar:{accessibilityLabel:{audioOnly:"Activer/d\xe9sactiver le mode voix uniquement",audioRoute:"S\xe9lectionner la source audio",callQuality:"Ajuster la qualit\xe9 vid\xe9o",cc:"Activer/d\xe9sactiver les sous-titres",chat:"Afficher/masquer la discussion instantan\xe9e",document:"Activer/d\xe9sactiver le document partag\xe9",download:"T\xe9l\xe9charger nos applications",feedback:"Laisser des commentaires",fullScreen:"Activer/d\xe9sactiver le plein \xe9cran",hangup:"Quitter la conversation",help:"Aide",invite:"Inviter des participants",kick:"Expulser le participant",localRecording:"Activer/d\xe9sactiver les contr\xf4les d'enregistrement local",lockRoom:"Activer/D\xe9sactiver le mot de passe de la r\xe9union",moreActions:"Activer/d\xe9sactiver le menu d'actions suppl\xe9mentaires",moreActionsMenu:"Menu d'actions suppl\xe9mentaires",mute:"Activer/d\xe9sactiver l'audio",pip:"Activer/d\xe9sactiver le mode Picture in Picture",privateMessage:"Envoyer un message priv\xe9",profile:"\xc9diter votre profil",raiseHand:"Lever/baisser la main",recording:"Activer/d\xe9sactiver l'enregistrement",remoteMute:"D\xe9sactiver le micro du participant",Settings:"Afficher/masquer le menu des param\xe8tres",sharedvideo:"D\xe9marrer/arr\xeater le partage de vid\xe9o Youtube",shareRoom:"Inviter quelqu'un",shareYourScreen:"Activer/d\xe9sactiver le partage d\u2019\xe9cran",shortcuts:"Afficher/masquer les raccourcis",show:"Afficher en premier plan",speakerStats:"Afficher/cacher les statistiques de parole",tileView:"Activer/d\xe9sactiver la vue mosa\xefque",toggleCamera:"Changer de cam\xe9ra",videomute:"Activer/d\xe9sactiver la vid\xe9o",videoblur:"Activer/d\xe9sactiver le flou de la vid\xe9o"},addPeople:"Ajouter des personnes \xe0 votre appel",audioOnlyOff:"D\xe9sactiver le mode bande passante r\xe9duite",audioOnlyOn:"Activer le mode bande passante r\xe9duite",audioRoute:"S\xe9lectionner la source audio",authenticate:"Authentifiez-vous",callQuality:"Ajuster la qualit\xe9 vid\xe9o",chat:"Ouvrir / Fermer le chat",closeChat:"Fermer le chat",documentClose:"Fermer le document partag\xe9",documentOpen:"Ouvrir le document partag\xe9",download:"T\xe9l\xe9charger nos applications",enterFullScreen:"Afficher en plein \xe9cran",enterTileView:"Acc\xe9der au mode mosa\xefque",exitFullScreen:"Quitter le mode plein \xe9cran",exitTileView:"Quitter le mode mosa\xefque",feedback:"Laisser des commentaires",hangup:"Quitter",help:"Aide",invite:"Inviter des participants",login:"Connexion",logout:"D\xe9connexion",lowerYourHand:"Baisser la main",moreActions:"Plus d'actions",moreOptions:"Plus d'options",mute:"Muet / Actif",muteEveryone:"Couper le micro de tout le monde",noAudioSignalTitle:"Il n'y a pas d'entr\xe9e provenant de votre micro !",noAudioSignalDesc:"Si vous n'avez pas d\xe9lib\xe9r\xe9ment coup\xe9 le son des param\xe8tres du syst\xe8me ou du mat\xe9riel, envisagez de changer le p\xe9riph\xe9rique.",noAudioSignalDescSuggestion:"Si vous n'avez pas d\xe9lib\xe9r\xe9ment coup\xe9 le son des param\xe8tres du syst\xe8me ou du mat\xe9riel, pensez \xe0 utiliser le p\xe9riph\xe9rique suivant :",noisyAudioInputTitle:"",noisyAudioInputDesc:"",openChat:"Ouvrir le chat",pip:"Entrer en mode Picture-in-Picture",privateMessage:"Envoyer un message priv\xe9",profile:"\xc9diter votre profil",raiseHand:"Lever / Baisser la main",raiseYourHand:"Lever la main",Settings:"Param\xe8tres",sharedvideo:"Partager une vid\xe9o YouTube",shareRoom:"Inviter quelqu'un",shortcuts:"Afficher les raccourcis",speakerStats:"Statistiques de l'interlocuteur",startScreenSharing:"D\xe9marrer le partage d'\xe9cran",startSubtitles:"Activer les sous-titres",stopScreenSharing:"Arr\xeater le partage d'\xe9cran",stopSubtitles:"D\xe9sactiver les sous-titres",stopSharedVideo:"Arr\xeater la vid\xe9o YouTube",talkWhileMutedPopup:"Vous voulez parler ? V\xf4tre micro est coup\xe9.",tileViewToggle:"Activer/d\xe9sactiver la vue mosa\xefque",toggleCamera:"Changer de cam\xe9ra",videomute:"D\xe9marrer / Arr\xeater la cam\xe9ra",startvideoblur:"Flouter mon arri\xe8re plan",stopvideoblur:"D\xe9sactiver le flou d'arri\xe8re-plan"},transcribing:{ccButtonTooltip:"Activer/D\xe9sactiver les sous-titres",error:"\xc9chec de la transcription. Veuillez r\xe9essayer.",expandedLabel:"La transcription est actuellement activ\xe9e",failedToStart:"\xc9chec de d\xe9marrage de la transcription",labelToolTip:"La transcription de la r\xe9union est en cours",off:"La transcription d\xe9sactiv\xe9e",pending:"Pr\xe9paration de la transcription de la r\xe9union...",start:"Afficher/masquer les sous-titres",stop:"D\xe9sactiver le sous-titrage",tr:"TR"},userMedia:{androidGrantPermissions:"S\xe9lectionnez Autoriser lorsque votre navigateur demande des autorisations.",chromeGrantPermissions:"S\xe9lectionnez Autoriser lorsque votre navigateur demande des autorisations.",edgeGrantPermissions:"S\xe9lectionnez Oui quand le navigateur demande les permissions.",electronGrantPermissions:"Merci d'autoriser le partage de votre camera et microphone",firefoxGrantPermissions:"S\xe9lectionnez Partager le p\xe9riph\xe9rique s\xe9lectionn\xe9 lorsque votre navigateur demande des autorisations.",iexplorerGrantPermissions:"S\xe9lectionnez OK quand le navigateur demande les permissions.",nwjsGrantPermissions:"Merci d'autoriser le partage de votre camera et microphone",operaGrantPermissions:"S\xe9lectionnez Autoriser lorsque votre navigateur demande des autorisations.","react-nativeGrantPermissions":"S\xe9lectionnez Autoriser lorsque votre navigateur demande des autorisations.",safariGrantPermissions:"S\xe9lectionnez OK quand le navigateur demande les permissions."},videoSIPGW:{busy:"Nous travaillons sur la lib\xe9ration des ressources. Veuillez r\xe9essayez dans quelques minutes.",busyTitle:"Le service du Salon est actuellement occup\xe9",errorAlreadyInvited:"{{displayName}} est d\xe9j\xe0 invit\xe9(e)",errorInvite:"La conf\xe9rence n'est pas encore \xe9tablie. Veuillez r\xe9essayer plus tard.",errorInviteFailed:"Nous travaillons sur la r\xe9solution du probl\xe8me. Veuillez r\xe9essayer plus tard.",errorInviteFailedTitle:"l'invitation de {{displayName}} a \xe9chou\xe9",errorInviteTitle:"Erreur lors de l'invitation",pending:"{{displayName}} a \xe9t\xe9 invit\xe9(e)"},videoStatus:{audioOnly:"VOIX",audioOnlyExpanded:"Vous \xeates en mode bande passante r\xe9duite. Dans ce mode, vous ne recevrez que le partage audio et le partage d\u2019\xe9cran.",callQuality:"Qualit\xe9 vid\xe9o",hd:"HD",hdTooltip:"Regardez la vid\xe9o en haute d\xe9finition",highDefinition:"Haute d\xe9finition",labelTooiltipNoVideo:"Aucune vid\xe9o",labelTooltipAudioOnly:"Mode bande passante r\xe9duite activ\xe9",ld:"BD",ldTooltip:"Regardez la vid\xe9o en basse d\xe9finition",lowDefinition:"Basse d\xe9finition",onlyAudioAvailable:"Seul l'audio est disponible",onlyAudioSupported:"Nous ne supportons que l'audio sur ce navigateur.",p2pEnabled:"Peer to Peer activ\xe9",p2pVideoQualityDescription:"En mode peer to peer, la qualit\xe9 vid\xe9o re\xe7ue ne peut \xeatre bascul\xe9e qu'entre haute et audio uniquement. Les autres param\xe8tres ne seront pas pris en compte jusqu'\xe0 ce que vous quittiez le mode peer to peer.",recHighDefinitionOnly:"Va pr\xe9f\xe9rer la haute d\xe9finition",sd:"MD",sdTooltip:"Regardez la vid\xe9o en d\xe9finition standard",standardDefinition:"Moyenne D\xe9finition"},videothumbnail:{domute:"Couper le micro",domuteOthers:"Couper le micro de tous les autres",flip:"Balancer",kick:"Exclure",moderator:"Moderateur",mute:"Un participant a coup\xe9 son micro",muted:"Muet",remoteControl:"",show:"Afficher en premier plan",videomute:"Le participant a arr\xeat\xe9 la cam\xe9ra"},welcomepage:{accessibilityLabel:{join:"Touchez pour rejoindre",roomname:"Saisissez un nom de salle"},appDescription:"Allez-y, chat vid\xe9o avec toute l'\xe9quipe. En fait, invitez tout le monde que vous connaissez. {{app}} est une solution de visioconf\xe9rence enti\xe8rement chiffr\xe9e et 100% open source que vous pouvez utiliser toute la journ\xe9e, tous les jours, gratuitement\u2014 aucun compte requis.",audioVideoSwitch:{audio:"Voix",video:"Vid\xe9o"},calendar:"Calendrier",connectCalendarButton:"Connecter votre calendrier",connectCalendarText:"Connectez-vous \xe0 votre calendrier pour afficher toutes les r\xe9unions {{app}}. Ajoutez \xe9galement les r\xe9unions de {{provider}} \xe0 votre calendrier et d\xe9marrez-les d'un simple clic.",enterRoomTitle:"D\xe9marrer une nouvelle r\xe9union",roomNameAllowedChars:"Le nom de la r\xe9union ne doit contenir aucun de ces caract\xe8res : ?, &, :, ', \", %, #.",go:"Cr\xe9er",goSmall:"Cr\xe9er",join:"CR\xc9ER / REJOINDRE",info:"Infos",privacy:"Confidentialit\xe9",recentList:"R\xe9cent",recentListDelete:"Supprimer",recentListEmpty:"Votre liste r\xe9cente est actuellement vide. Discuter avec votre \xe9quipe et vous trouverez toutes vos r\xe9unions r\xe9centes ici.",reducedUIText:"Bienvenue sur {{app}}!",roomname:"Saisissez un nom de salle",roomnameHint:"Entrez le nom ou l'URL de la salle que vous souhaitez rejoindre. Vous pouvez faire un nom, laissez les gens que vous rencontrerez le savoir afin qu'ils entrent le m\xeame nom.",sendFeedback:"Envoyer votre avis",terms:"Termes",title:"Vid\xe9oconf\xe9rence S\xe9curis\xe9e, enti\xe8rement en vedette et gratuite"},lonelyMeetingExperience:{button:"Inviter d'autres personnes",youAreAlone:"Vous \xeates le seul participant de la r\xe9union"},helpView:{header:"Centre d'aide"}}},673,[]); +__d(function(a,n,i,e,s,o,r){s.exports={en:"Anglais",af:"Africain",bg:"Bulgare",ca:"Catalan",cs:"Tch\xe8que",de:"Allemand",el:"Grec",enGB:"Anglais (Royaume-Uni) ",eo:"Esp\xe9ranto",es:"Espagnol",esUS:"Espagnol (Am\xe9rique latine)",fi:"Finlandais",fr:"Fran\xe7ais",frCA:"Fran\xe7ais (Canadien)",hr:"Croate",hu:"Hongrois",hy:"Arm\xe9nien",it:"Italien",ja:"Japonais",ko:"Cor\xe9en",nl:"N\xe9erlandais",oc:"Occitan",pl:"Polonais",ptBR:"Portugais (Br\xe9sil)",ru:"Russe",sk:"Slovaque",sv:"Su\xe9dois",tr:"Turc",vi:"Vietnamien",zhCN:"Chinois (Chine)",zhTW:"Chinois (Taiwan)"}},674,[]); +__d(function(e,r,n,i,t,o,a){t.exports={addPeople:{add:"Inviter",countryNotSupported:"Nous ne prenons pas encore cette destination en charge.",countryReminder:"Vous appelez en dehors des \xc9.-U.? Veuillez vous assurer de commencer par le code de pays!",disabled:"Vous ne pouvez pas inviter d'autres personnes.",failedToAdd:"L'ajout de membres a \xe9chou\xe9",footerText:"Les appels sont d\xe9sactiv\xe9s.",loading:"Rechercher des personnes et des num\xe9ros de t\xe9l\xe9phone",loadingNumber:"Validation du num\xe9ro de t\xe9l\xe9phone",loadingPeople:"Rechercher des personnes \xe0 inviter",noResults:"Aucun r\xe9sultat de recherche correspondant",noValidNumbers:"Veuillez entrer un num\xe9ro de t\xe9l\xe9phone",searchNumbers:"Ajouter des num\xe9ros de t\xe9l\xe9phone",searchPeople:"Rechercher des personnes",searchPeopleAndNumbers:"Rechercher des personnes ou ajouter des num\xe9ros de t\xe9l\xe9phone",telephone:"T\xe9l\xe9phone : {{number}}",title:"Inviter des personnes \xe0 cette r\xe9union"},audioDevices:{bluetooth:"Bluetooth",headphones:"\xc9couteurs",phone:"T\xe9l\xe9phone",speaker:"Intervenant",none:"Aucun p\xe9riph\xe9rique audio n'est disponible"},audioOnly:{audioOnly:"Bande passante faible"},calendarSync:{addMeetingURL:"Ajouter un lien de r\xe9union",confirmAddLink:"Voulez-vous ajouter un lien Jitsi Meet \xe0 cet \xe9v\xe9nement ?",error:{appConfiguration:"L'int\xe9gration de l'agenda n'est pas correctement configur\xe9e.",generic:"Une erreur s'est produite. Veuillez v\xe9rifier vos param\xe8tres d'agenda ou essayer de rafra\xeechir l'agenda.",notSignedIn:"Une erreur s'est produite lors de l'authentification des \xe9v\xe9nements d'agenda. Veuillez v\xe9rifier vos param\xe8tres d'agenda ou essayer de vous reconnecter."},join:"Rejoindre",joinTooltip:"Rejoindre la r\xe9union",nextMeeting:"prochaine r\xe9union",noEvents:"Il n'y a aucun \xe9v\xe9nement planifi\xe9 \xe0 venir.",ongoingMeeting:"r\xe9union en cours",permissionButton:"Ouvrir les param\xe8tres",permissionMessage:"L'autorisation de l'Agenda est n\xe9cessaire pour consulter vos r\xe9unions dans l'application.",refresh:"Rafra\xeechir l'agenda",today:"Aujourd'hui"},chat:{error:"Erreur : votre message n'a pas \xe9t\xe9 envoy\xe9. Raison : {{error}}",fieldPlaceHolder:"Tapez votre message ici",messagebox:"Tapez un message",messageTo:"",noMessagesMessage:"Il n'y a pas encore de messages dans cette r\xe9union. D\xe9marrez une conversation ici !",nickname:{popover:"Choisissez un nom d'affichage",title:"Entrer un nom d'affichage pour utiliser le clavardage"},privateNotice:"Message priv\xe9 \xe0 {{recipient}}",title:"Clavardage",you:"vous"},connectingOverlay:{joiningRoom:"Connexion \xe0 la r\xe9union en cours..."},connection:{ATTACHED:"Joint",AUTHENTICATING:"Authentification",AUTHFAIL:"\xc9chec de l'authentification",CONNECTED:"Connect\xe9",CONNECTING:"Connexion en cours",CONNFAIL:"\xc9chec de la connexion",DISCONNECTED:"D\xe9connect\xe9",DISCONNECTING:"D\xe9connexion en cours",ERROR:"Erreur",RECONNECTING:"Un probl\xe8me de r\xe9seau est survenu. Reconnexion en cours..."},connectionindicator:{address:"Adresse:",bandwidth:"Bande passante estim\xe9e :",bitrate:"D\xe9bit binaire :",bridgeCount:"Nombre de serveur : ",connectedTo:"Connect\xe9 \xe0 :",framerate:"Fr\xe9quence d'images :",less:"Afficher moins",localaddress:"Adresse locale :",localaddress_plural:"Adresses locales :",localport:"Port local :",localport_plural:"Ports locaux :",more:"Afficher plus",packetloss:"Perte de paquet :",quality:{good:"Bonne",inactive:"Inactive",lost:"Perdue",nonoptimal:"Non-optimale",poor:"Faible"},remoteaddress:"Adresse distante :",remoteaddress_plural:"Adresses distantes :",remoteport:"Port distant :",remoteport_plural:"Ports distants :",resolution:"R\xe9solution :",status:"Connexion :",transport:"Tranport :",transport_plural:"Transports :"},dateUtils:{earlier:"Plus t\xf4t",today:"Aujourd'hui",yesterday:"Hier"},deepLinking:{appNotInstalled:"L'application mobile {{app}} est n\xe9cessaire pour rejoindre cette r\xe9union sur votre t\xe9l\xe9phone.",description:"Il ne s'est rien pass\xe9? Nous avons essay\xe9s de d\xe9marrer votre r\xe9union dans l'application de bureau {{app}}. Veuillez r\xe9essayer ou d\xe9marrer la r\xe9union dans l'application Web {{app}}.",descriptionWithoutWeb:"Rien ne s'est pass\xe9? Nous avons essay\xe9 de d\xe9marrer votre r\xe9union dans l'application bureau {{app}}.",downloadApp:"T\xe9l\xe9charger l'application",launchWebButton:"D\xe9marrer dans l'application Web",openApp:"Continuer vers l'application",title:"D\xe9marrage de votre r\xe9union dans {{app}} en cours...",tryAgainButton:"Veuillez r\xe9essayer sur votre ordinateur"},defaultLink:"p. ex. {{url}}",defaultNickname:"p. ex. Jane Pink",deviceError:{cameraError:"\xc9chec de l'acc\xe8s \xe0 votre cam\xe9ra",cameraPermission:"Erreur lors de l'obtention de l'autorisation de la cam\xe9ra",microphoneError:"\xc9chec de l'acc\xe8s \xe0 votre micro",microphonePermission:"Erreur lors de l'obtention de l'autorisation du micro"},deviceSelection:{noPermission:"L'autorisation n'a pas \xe9t\xe9 accord\xe9e",previewUnavailable:"Pr\xe9visualisation non disponible",selectADevice:"S\xe9lectionner un dispositif",testAudio:"Jouer un son de test"},dialog:{accessibilityLabel:{liveStreaming:"Diffusion en direct"},allow:"Autoriser",alreadySharedVideoMsg:"Un autre membre partage d\xe9j\xe0 une vid\xe9o. Cette conf\xe9rence permet le partage d'une seule vid\xe9o \xe0 la fois.",alreadySharedVideoTitle:"Seulement une vid\xe9o \xe0 la fois peut \xeatre partag\xe9e",applicationWindow:"Fen\xeatre d'application",Back:"Retour",cameraConstraintFailedError:"Votre cam\xe9ra ne r\xe9pond pas \xe0 certaines exigences.",cameraNotFoundError:"Impossible de trouver la cam\xe9ra.",cameraNotSendingData:"Il est impossible d'acc\xe9der \xe0 la cam\xe9ra. Veuillez v\xe9rifier si une autre application utilise actuellement ce dispositif, s\xe9lectionner un autre dispositif \xe0 partir du menu des param\xe8tres ou essayer de recharger l'application.",cameraNotSendingDataTitle:"Impossible d'acc\xe9der \xe0 la cam\xe9ra",cameraPermissionDeniedError:"Vous n'avez pas re\xe7u l'autorisation d'utiliser votre cam\xe9ra. Vous pouvez toujours rejoindre la conf\xe9rence, mais les autres membres ne pourront pas vous voir. Utilisez le bouton de cam\xe9ra dans la barre d'adresse pour corriger cela.",cameraUnknownError:"Impossible d'utiliser la cam\xe9ra pour une raison inconnue.",cameraUnsupportedResolutionError:"Votre cam\xe9ra ne prend pas en charge la r\xe9solution vid\xe9o n\xe9cessaire.",Cancel:"Annuler",close:"Fermer",conferenceDisconnectMsg:"Vous devriez v\xe9rifier votre connexion au r\xe9seau. Reconnexion dans {{seconds}} sec...",conferenceDisconnectTitle:"Vous avez \xe9t\xe9 d\xe9connect\xe9.",conferenceReloadMsg:"Nous tentons de r\xe9soudre le probl\xe8me. Reconnexion dans {{seconds}} sec...",conferenceReloadTitle:"Malheureusement, une erreur s'est produite.",confirm:"Confirmer",confirmNo:"Non",confirmYes:"Oui",connectError:"Oups! Une erreur s'est produite. La connexion \xe0 la conf\xe9rence a \xe9chou\xe9e.",connectErrorWithMsg:"Oups! Une erreur s'est produite. La connexion \xe0 la conf\xe9rence a \xe9chou\xe9 : {{msg}}",connecting:"Connexion en cours",contactSupport:"Communiquez avec le service de soutien",copy:"Copier",dismiss:"Rejeter",displayNameRequired:"Un nom d'affichage est requis",done:"Termin\xe9",enterDisplayName:"Veuillez saisir votre nom d'affichage",error:"Erreur",externalInstallationMsg:"Vous devez installer notre extension de partage de bureau.",externalInstallationTitle:"Extension requise",goToStore:"Rendez-vous sur notre boutique en ligne",gracefulShutdown:"Notre service est actuellement hors service pour l'entretien. Veuillez r\xe9essayer plus tard.",IamHost:"Je suis l'h\xf4te",incorrectRoomLockPassword:"Mot de passe incorrect",incorrectPassword:"Nom d'utilisateur ou mot de passe incorrect",inlineInstallationMsg:"Vous devez installer notre extension de partage de bureau.",inlineInstallExtension:"Installer maintenant",internalError:"Oups! Une erreur s'est produite. L'erreur suivante est survenue : {{error}}",internalErrorTitle:"Erreur interne.",kickMessage:"A\xefe! Vous avez \xe9t\xe9 expuls\xe9 de la r\xe9union!",kickParticipantButton:"Expulser",kickParticipantDialog:"\xcates-vous certain de vouloir expulser ce participant?",kickParticipantTitle:"Expulser ce membre?",kickTitle:"Expuls\xe9 de la r\xe9union",liveStreaming:"Diffusion en direct",liveStreamingDisabledForGuestTooltip:"Les invit\xe9s ne peuvent pas d\xe9marrer la diffusion en direct.",liveStreamingDisabledTooltip:"D\xe9marrage de la diffusion en direct d\xe9sactiv\xe9.",lockMessage:"\xc9chec du verrouillage de la conf\xe9rence.",lockRoom:"Ajouter un mot de passe \xe0 la r\xe9union",lockTitle:"\xc9chec du verrouillage",logoutQuestion:"\xcates-vous certain de vouloir vous d\xe9connecter et arr\xeater la conf\xe9rence?",logoutTitle:"D\xe9connexion",maxUsersLimitReached:"La limite du nombre maximum de membres a \xe9t\xe9 atteinte. La conf\xe9rence est pleine. Veuillez communiquer avec l'h\xf4te de la r\xe9union ou r\xe9essayer plus tard.",maxUsersLimitReachedTitle:"Limite du nombre de membres maximum atteinte",micConstraintFailedError:"Votre micro ne r\xe9pond pas \xe0 certaines exigences",micNotFoundError:"Impossible de trouver le micro.",micNotSendingData:"Impossible d'acc\xe9der \xe0 votre micro. Veuillez s\xe9lectionner un autre dispositif \xe0 partir du menu des param\xe8tres ou essayer de recharger l'application.",micNotSendingDataTitle:"Impossible d'acc\xe9der \xe0 votre micro",micPermissionDeniedError:"Vous n'avez pas accord\xe9 l'autorisation d'utilisation de votre micro. Vous pouvez toujours rejoindre la conf\xe9rence, mais les autres membres ne pourront pas vous entendre. Utilisez le bouton de cam\xe9ra dans la barre d'adresse pour rem\xe9dier \xe0 cela.",micUnknownError:"Impossible d'utiliser le micro pour une raison inconnue.",muteParticipantBody:"Vous ne pourrez pas r\xe9activer leur micro, mais ils peuvent le r\xe9activer eux-m\xeames \xe0 tout moment.",muteParticipantButton:"Discr\xe9tion",muteParticipantDialog:"\xcates-vous certain de vouloir d\xe9sactiver le micro de ce participant? Vous ne pourrez pas le r\xe9activer, mais il peut le r\xe9activer lui-m\xeame \xe0 tout moment.",muteParticipantTitle:"D\xe9sactiver le micro de ce membre?",Ok:"OK",passwordLabel:"Mot de passe",passwordNotSupported:"La mise en place d'un mot de passe de r\xe9union n'est pas prise en charge.",passwordNotSupportedTitle:"Mot de passe non pris en charge",passwordRequired:"Mot de passe requis",popupError:"Votre navigateur bloque les fen\xeatres surgissantes provenant de ce site. Veuillez activer les fen\xeatres surgissantes dans les param\xe8tres de s\xe9curit\xe9 de votre navigateur et r\xe9essayer.",popupErrorTitle:"Fen\xeatre surgissante bloqu\xe9e",recording:"Enregistrement",recordingDisabledForGuestTooltip:"Les invit\xe9s ne peuvent pas d\xe9marrer l'enregistrement.",recordingDisabledTooltip:"D\xe9marrage de l'enregistrement d\xe9sactiv\xe9.",rejoinNow:"Rejoindre maintenant",remoteControlAllowedMessage:"{{user}} a accept\xe9 votre demande de contr\xf4le \xe0 distance!",remoteControlDeniedMessage:"{{user}} a refus\xe9 votre demande de contr\xf4le \xe0 distance!",remoteControlErrorMessage:"Une erreur s'est produite lors de la demande d'autorisation de contr\xf4le \xe0 distance de {{user}}!",remoteControlRequestMessage:"Voulez-vous permettre \xe0 {{user}} de contr\xf4ler votre bureau \xe0 distance?",remoteControlShareScreenWarning:"Notez que si vous appuyez sur \xab Permettre \xbb, vous partagerez votre \xe9cran!",remoteControlStopMessage:"La s\xe9ance de contr\xf4le \xe0 distance est termin\xe9e!",remoteControlTitle:"Contr\xf4le du bureau \xe0 distance",Remove:"Supprimer",removePassword:"Supprimer un mot de passe",removeSharedVideoMsg:"\xcates-vous certain de vouloir supprimer votre vid\xe9o partag\xe9e?",removeSharedVideoTitle:"Supprimer la vid\xe9o partag\xe9e",reservationError:"Erreur du syst\xe8me de r\xe9servation",reservationErrorMsg:"Code d'erreur : {{code}}, message : {{msg}}",retry:"R\xe9essayer",screenSharingFailedToInstall:"Oups! L'installation de votre extension de partage d'\xe9cran a \xe9chou\xe9e.",screenSharingFailedToInstallTitle:"L'installation de l'extension de partage d'\xe9cran a \xe9chou\xe9e",screenSharingFirefoxPermissionDeniedError:"Une erreur s'est produite lors de la tentative de partage d'\xe9cran. Veuillez vous assurer d'avoir donn\xe9 votre autorisation. ",screenSharingFirefoxPermissionDeniedTitle:"Oups! Il est impossible de d\xe9marrer le partage d'\xe9cran!",screenSharingPermissionDeniedError:"Oups! Une erreur s'est produite avec les autorisations de l'extension de partage d'\xe9cran. Veuillez recharger et r\xe9essayer.",sendPrivateMessage:"Vous avez r\xe9cemment re\xe7u un message priv\xe9. Aviez-vous l'intention d'y r\xe9pondre en priv\xe9, ou vouliez-vous envoyer votre message au groupe ?",sendPrivateMessageCancel:"Envoyer au groupe",sendPrivateMessageOk:"Envoyer en priv\xe9",sendPrivateMessageTitle:"Envoyer en priv\xe9 ?",serviceUnavailable:"Service non disponible",sessTerminated:"Appel termin\xe9",Share:"Oui",shareVideoLinkError:"Veuillez fournir un lien YouTube correct.",shareVideoTitle:"Partager une vid\xe9o",shareYourScreen:"Partager votre \xe9cran",shareYourScreenDisabled:"Le partage d'\xe9cran est d\xe9sactiv\xe9.",shareYourScreenDisabledForGuest:"Les invit\xe9s ne peuvent pas partager leur \xe9cran.",startLiveStreaming:"D\xe9marrer la diffusion en direct",startRecording:"Commencer l'enregistrement",startRemoteControlErrorMessage:"Une erreur s'est produite lors de la tentative de d\xe9marrage de la s\xe9ance de contr\xf4le \xe0 distance!",stopLiveStreaming:"Arr\xeater la diffusion en direct",stopRecording:"Arr\xeater l'enregistrement",stopRecordingWarning:"\xcates-vous certain de vouloir arr\xeater l'enregistrement?",stopStreamingWarning:"\xcates-vous certain de vouloir arr\xeater la diffusion en direct?",streamKey:"Cl\xe9 de diffusion en direct",Submit:"Envoyer",thankYou:"Merci d'utiliser {{appName}}!",token:"jeton",tokenAuthFailed:"D\xe9sol\xe9, vous n'avez pas la permission de rejoindre cet appel.",tokenAuthFailedTitle:"\xc9chec de l'authentification",transcribing:"Transcription en cours",unlockRoom:"Supprimer le mot de passe de la r\xe9union",userPassword:"mot de passe d'utilisateur",WaitForHostMsg:"La conf\xe9rence {{room}} n'a pas encore d\xe9marr\xe9. Si vous \xeates l'h\xf4te, veuillez vous authentifier. Sinon, veuillez attendre que l'h\xf4te arrive.",WaitForHostMsgWOk:"La conf\xe9rence {{room}} n'a pas encore d\xe9marr\xe9. Si vous \xeates l'h\xf4te, veuillez appuyer sur OK pour vous authentifier. Sinon, veuillez attendre que l'h\xf4te arrive.",WaitingForHost:"En attente de l'h\xf4te...",Yes:"Oui",yourEntireScreen:"Votre \xe9cran entier"},dialOut:{statusMessage:"est maintenant {{status}}"},documentSharing:{title:"Document partag\xe9"},feedback:{average:"Moyenne",bad:"Mauvaise",detailsLabel:"Dites-nous en plus.",good:"Bonne",rateExperience:"\xc9valuez votre exp\xe9rience de cette conf\xe9rence",veryBad:"Tr\xe8s mauvaise",veryGood:"Tr\xe8s bonne"},incomingCall:{answer:"R\xe9ponse",audioCallTitle:"Appel entrant",decline:"Rejeter",productLabel:"de Jitsi Meet",videoCallTitle:"Appel vid\xe9o entrant"},info:{accessibilityLabel:"Afficher l'information",addPassword:"Ajouter un mot de passe",cancelPassword:"Annuler le mot de passe",conferenceURL:"Liens",country:"Pays",dialANumber:"Pour rejoindre votre r\xe9union, composez un de ces num\xe9ros et entrez le NIP.",dialInConferenceID:"NIP :",dialInNotSupported:"D\xe9sol\xe9, les appels internes ne sont pas pris en charge pour le moment.",dialInNumber:"Appel interne :",dialInSummaryError:"Erreur lors de la r\xe9cup\xe9ration des informations d'appel interne. Veuillez r\xe9essayer plus tard.",dialInTollFree:"Sans frais",genericError:"Oups, une erreur s'est produite.",inviteLiveStream:"Pour voir la diffusion en directe de cette r\xe9union, cliquez sur ce lien : {{url}}",invitePhone:"Pour rejoindre depuis un t\xe9l\xe9phone, composez : {{number}},,{{conferenceID}}#\n",invitePhoneAlternatives:"Vous cherchez un num\xe9ro d'appel diff\xe9rent ?\nConsultez la liste de num\xe9ros d'appel de la r\xe9union : {{url}}\n\n\nSi vous appelez \xe9galement via un t\xe9l\xe9phone de salle, vous pouvez vous connecter sans audio : {{silentUrl}}",inviteURLFirstPartGeneral:"Vous avez \xe9t\xe9 invit\xe9 \xe0 rejoindre une r\xe9union.",inviteURLFirstPartPersonal:"{{name}} vous invite \xe0 une r\xe9union.\n",inviteURLSecondPart:"\nRejoindre la r\xe9union:\n{{url}}\n",liveStreamURL:"Diffusion en direct :",moreNumbers:"Plus de num\xe9ros",noNumbers:"Aucun num\xe9ro d'appel interne.",noPassword:"Aucun",noRoom:"Vous n'avez pas pr\xe9cis\xe9 de salle pour l'appel interne.",numbers:"Num\xe9ros d'appel interne",password:"Mot de passe\xa0:",title:"Oui",tooltip:"Lien de partage et informations d'appel interne pour cette r\xe9union",label:"Informations de r\xe9union"},inviteDialog:{alertText:"L'invitation de certains participants a \xe9chou\xe9.",header:"Inviter",searchCallOnlyPlaceholder:"Entrer le num\xe9ro de t\xe9l\xe9phone",searchPeopleOnlyPlaceholder:"Rechercher des participants",searchPlaceholder:"Participant ou num\xe9ro de t\xe9l\xe9phone",send:"Envoyer..."},inlineDialogFailure:{msg:"Nous avons rencontr\xe9 un obstacle.",retry:"% abandonn\xe9s",support:"Soutien",supportMsg:"Si cela se produit \xe0 nouveau, veuillez communiquer avec"},keyboardShortcuts:{focusLocal:"Focaliser sur votre vid\xe9o",focusRemote:"Focaliser sur la vid\xe9o d'une autre personne",fullScreen:"Afficher ou quitter le mode plein \xe9cran",keyboardShortcuts:"Raccourcis clavier",localRecording:"Afficher ou masquer les commandes d'enregistrement local",mute:"Activer ou d\xe9sactiver votre micro",pushToTalk:"Messagerie vocale instantan\xe9e",raiseHand:"Lever ou abaisser votre main",showSpeakerStats:"Afficher les statistiques d'intervenant",toggleChat:"Ouvrir ou fermer le clavardage",toggleFilmstrip:"Afficher ou masquer les ic\xf4nes vid\xe9os",toggleScreensharing:"Basculer entre la cam\xe9ra et le partage d'\xe9cran",toggleShortcuts:"Afficher ou masquer les raccourcis clavier",videoMute:"D\xe9marrer ou arr\xeater votre cam\xe9ra",videoQuality:"G\xe9rer la qualit\xe9 d'appel"},liveStreaming:{busy:"Lib\xe9ration de ressources de diffusion en cours. Veuillez r\xe9essayer dans quelques minutes.",busyTitle:"Tous les diffuseurs sont actuellement occup\xe9s",changeSignIn:"Changer de compte.",choose:"S\xe9lectionner une diffusion en direct",chooseCTA:"S\xe9lectionner une option de diffusion en direct. Vous \xeates actuellement connect\xe9 en tant que {{email}}.",enterStreamKey:"Saisissez votre cl\xe9 de diffusion en direct YouTube ici.",error:"\xc9chec de la diffusion en direct. Veuillez r\xe9essayer.",errorAPI:"Une erreur s'est produite lors de l'acc\xe8s \xe0 vos diffusions YouTube.Veuillez r\xe9essayer de vous connecter.",errorLiveStreamNotEnabled:"La diffusion en direct n'est pas activ\xe9e pour {{email}}. Veuillez activer la diffusion en direct ou vous connecter \xe0 un compte pour lequel la diffusion en direct est activ\xe9e.",expandedOff:"La diffusion en direct a \xe9t\xe9 arr\xeat\xe9e",expandedOn:"La r\xe9union est actuellement diffus\xe9e sur YouTube.",expandedPending:"Le d\xe9marrage de la diffusion en direct est en cours...",failedToStart:"Le d\xe9marrage de la diffusion en direct a \xe9chou\xe9",getStreamKeyManually:"La r\xe9cup\xe9ration de diffusions en direct a \xe9chou\xe9. Essayez d'obtenir une cl\xe9 de diffusion en direct sur YouTube.",invalidStreamKey:"La cl\xe9 de diffusion en direct peut \xeatre erron\xe9e.",off:"La diffusion en direct s'est arr\xeat\xe9e",offBy:"{{name}} a arr\xeat\xe9 la diffusion en continu",on:"Diffusion en direct",onBy:"{{name}} d\xe9marr\xe9 la diffusion en continu",pending:"D\xe9marrage de la diffusion en direct...",serviceName:"Service de diffusion en direct",signedInAs:"Vous \xeates actuellement connect\xe9 en tant que :",signIn:"Se connecter avec Google",signInCTA:"Connectez-vous ou entrez votre cl\xe9 de diffusion en direct de YouTube",signOut:"Se d\xe9connecter",start:"D\xe9marrer une diffusion en direct",streamIdHelp:"Qu'est-ce que c'est?",unavailableTitle:"Diffusion en direct non disponible"},localRecording:{clientState:{off:"D\xe9sactiv\xe9",on:"Pr\xeat",unknown:"Inconnu"},dialogTitle:"Commandes d'enregistrement local",duration:"Dur\xe9e",durationNA:"S. O.",encoding:"Encodage",label:"LOR",labelToolTip:"L'enregistrement local est en cours",localRecording:"Enregistrement local",me:"Moi",messages:{engaged:"Enregistrement local activ\xe9.",finished:"Enregistrement de la s\xe9ance {{token}} termin\xe9. Veuillez envoyer le fichier d'enregistrement au mod\xe9rateur.",finishedModerator:"Enregistrement de la s\xe9ance {{token}} termin\xe9. L'enregistrement de la piste locale a \xe9t\xe9 enregistr\xe9e. Veuillez demander aux autres participants de soumettre leurs enregistrements.",notModerator:"Vous n'\xeates pas le mod\xe9rateur. Vous ne pouvez pas d\xe9marrer ou arr\xeater l'enregistrement local."},moderator:"Mod\xe9rateur",no:"Non",participant:"Participant",participantStats:"Statistiques de participants",sessionToken:"Jeton de s\xe9ance",start:"Commencer l'enregistrement",stop:"Arr\xeater l'enregistrement",yes:"Oui"},lockRoomPassword:"mot de passe",lockRoomPasswordUppercase:"Mot de passe",me:"moi",notify:{connectedOneMember:"{{name}} a rejoint la r\xe9union",connectedThreePlusMembers:"{{name}} et {{count}} autres ont rejoint la r\xe9union",connectedTwoMembers:"{{first}} et {{second}} ont rejoint la r\xe9union",disconnected:"d\xe9connect\xe9",focus:"Sujet de la conf\xe9rence",focusFail:"{{component}} non disponible; r\xe9essayez dans {{ms}} sec",grantedTo:"Droits de mod\xe9rateur accord\xe9s \xe0 {{to}}!",invitedOneMember:"{{displayName}} a \xe9t\xe9 invit\xe9",invitedThreePlusMembers:"{{name}} et {{count}} autres ont \xe9t\xe9 invit\xe9s",invitedTwoMembers:"{{first}} et {{second}} ont \xe9t\xe9 invit\xe9s",kickParticipant:"{{kicked}} a \xe9t\xe9 expuls\xe9 par {{kicker}}",me:"Moi",moderator:"Droits de mod\xe9rateur accord\xe9s!",muted:"Vous avez joint la conversation en sourdine.",mutedTitle:"Vous \xeates en sourdine!",mutedRemotelyTitle:"Votre micro a \xe9t\xe9 coup\xe9 par {{participantDisplayName}}!",mutedRemotelyDescription:"Vous pouvez toujours activer votre micro pour prendre la parole. D\xe9sactivez votre micro quand vous terminez pour \xe9viter les bruits parasites.",passwordRemovedRemotely:"$t(lockRoomPasswordUppercase) supprim\xe9 par un autre participant",passwordSetRemotely:"$t(lockRoomPasswordUppercase) d\xe9fini par un autre participant",raisedHand:"{{name}} voudrait parler.",somebody:"Quelqu'un",startSilentTitle:"Vous avez rejoint sans sortie audio!",startSilentDescription:"Rejoignez la r\xe9union de nouveau pour activer l'audio",suboptimalBrowserWarning:"Nous craignons que votre exp\xe9rience de r\xe9union en ligne ne soit bonne ici. Nous cherchons des moyens d\u2019am\xe9liorer cela, mais d\u2019ici-l\xe0, essayez d\u2019utiliser l\u2019un des navigateurs support\xe9s.",suboptimalExperienceTitle:"Avertissement de navigateur",unmute:"R\xe9tablir le son",newDeviceCameraTitle:"Nouvelle cam\xe9ra d\xe9tect\xe9e",newDeviceAudioTitle:"Nouveau dispositif audio d\xe9tect\xe9",newDeviceAction:"Utiliser"},passwordSetRemotely:"r\xe9gl\xe9 par un autre membre",passwordDigitsOnly:"Jusqu'\xe0 {{number}} chiffres",poweredby:"optimis\xe9 par",presenceStatus:{busy:"Occup\xe9",calling:"Appel en cours...",connected:"Connect\xe9",connecting:"Connexion en cours...",connecting2:"Connexion en cours*...",disconnected:"D\xe9connect\xe9",expired:"Expir\xe9",ignored:"Ignor\xe9",initializingCall:"Initialisation de l'appel...",invited:"Invit\xe9",rejected:"Refus\xe9",ringing:"Sonnerie"},profile:{setDisplayNameLabel:"D\xe9finir votre nom d'affichage",setEmailInput:"Entrer votre adresse courriel",setEmailLabel:"D\xe9finir votre courriel gravatar",title:"Profil"},raisedHand:"Aimerait prendre la parole",recording:{authDropboxText:"T\xe9l\xe9verser \xe0 Dropbox",availableSpace:"Espace disponible : {{spaceLeft}} Mo (approximativement {{duration}} minutes d'enregistrement)",beta:"BETA",busy:"Lib\xe9ration de ressources pour l'enregistrement. Veuillez r\xe9essayer dans quelques minutes.",busyTitle:"Tous les enregistreurs sont actuellement occup\xe9s",error:"L'enregistrement a \xe9chou\xe9. Veuillez r\xe9essayer.",expandedOff:"L'enregistrement a \xe9t\xe9 arr\xeat\xe9.",expandedOn:"La r\xe9union est actuellement enregistr\xe9e.",expandedPending:"D\xe9marrage de l'enregistrement en cours...",failedToStart:"\xc9chec du d\xe9marrage de l'enregistrement",fileSharingdescription:"Partager l'enregistrement avec les participants de la r\xe9union",live:"EN DIRECT",loggedIn:"Connect\xe9 en tant que {{userName}}",off:"L'enregistrement est arr\xeat\xe9",offBy:"{{name}} a arr\xeat\xe9 l'enregistrement",on:"Enregistrement",onBy:"{{name}} a d\xe9marr\xe9 l'enregistrement",pending:"Enregistrement de la r\xe9union en pr\xe9paration...",rec:"REC",serviceDescription:"Votre enregistrement sera sauvegard\xe9 par le service d'enregistrement",serviceName:"Service d'enregistrement",signIn:"Se connecter",signOut:"Se d\xe9connecter",unavailable:"Oups! Le {{serviceName}} n'est pas disponible pour le moment. Nous nous effor\xe7ons de r\xe9gler le probl\xe8me. Veuillez r\xe9essayer plus tard.",unavailableTitle:"Enregistrement non disponible"},sectionList:{pullToRefresh:"Tirer pour rafra\xeechir"},settings:{calendar:{about:"L'int\xe9gration de l'agenda de {{appName}} est utilis\xe9e pour acc\xe9der en toute s\xe9curit\xe9 \xe0 votre agenda pour qu'il puisse lire les \xe9v\xe9nements \xe0 venir.",disconnect:"D\xe9connexion",microsoftSignIn:"Se connecter avec Microsoft",signedIn:"Acc\xe8s aux \xe9v\xe9nements de votre agenda en cours pour {{email}}. Cliquez sur le bouton de d\xe9connexion ci-dessous pour terminer l'acc\xe8s aux \xe9v\xe9nements d'agenda.",title:"Calendrier"},devices:"Dispositifs",followMe:"Tous les participants me suivent",language:"Language",loggedIn:"Connect\xe9 en tant que {{name}}",moderator:"Mod\xe9rateur",more:"Plus",name:"Nom",noDevice:"Aucun",selectAudioOutput:"Sortie audio",selectCamera:"Cam\xe9ra",selectMic:"Micro",startAudioMuted:"Tous les participants d\xe9butent en sourdine",startVideoMuted:"Tous les participants d\xe9butent masqu\xe9s",title:"Param\xe8tres"},settingsView:{advanced:"Avanc\xe9",alertOk:"OK",alertTitle:"Alerte",alertURLText:"L'URL de serveur saisi n'est pas valide",buildInfoSection:"Information de version",conferenceSection:"Conf\xe9rence",disableCallIntegration:"D\xe9sactiver l'int\xe9gration d'appels native",disableP2P:"D\xe9sactiver le mode pair \xe0 pair",displayName:"Nom d'affichage",email:"Courriel",header:"Param\xe8tres",profileSection:"Profil",serverURL:"URL du serveur",showAdvanced:"Afficher les param\xe8tres avanc\xe9s",startWithAudioMuted:"D\xe9marrer avec l'audio en sourdine",startWithVideoMuted:"D\xe9marrer avec la vid\xe9o en sourdine",version:"Version"},share:{dialInfoText:"\n\n=====\n\nVoulez-vous appeler depuis votre t\xe9l\xe9phone ?\n\n{{defaultDialInNumber}}Voici la liste des num\xe9ros d'appels pour cette r\xe9union :\n{{dialInfoPageUrl}}",mainText:"Cliquez sur ce lien pour rejoindre la r\xe9union :\n{{roomUrl}}"},speaker:"Intervenant",speakerStats:{hours:"{{count}} h",minutes:"{{count}} min",name:"Nom",seconds:"{{count}} s",speakerStats:"Statistiques d'intervenant",speakerTime:"Temps d'intervention"},startupoverlay:{policyText:" ",title:"{{app}} doit utiliser votre micro et votre cam\xe9ra."},suspendedoverlay:{rejoinKeyTitle:"Rejoindre \xe0 nouveau",text:"Appuyez sur le bouton Rejoindre pour vous reconnecter.",title:"Votre appel vid\xe9o a \xe9t\xe9 interrompu parce que cet ordinateur est tomb\xe9 en veille."},toolbar:{accessibilityLabel:{audioOnly:"Basculement du mode audio uniquement",audioRoute:"S\xe9lectionner le dispositif audio",callQuality:"Gestion de la qualit\xe9 d'appel",cc:"Basculement des sous-titres",chat:"Basculement de la fen\xeatre de clavardage",document:"Basculement du document partag\xe9",download:"",feedback:"Laisser un commentaire",fullScreen:"Basculement de l'affichage plein \xe9cran",hangup:"Quitter l'appel",help:"",invite:"Inviter des personnes",kick:"Expulser le participant",localRecording:"Basculement des commandes d'enregistrement local",lockRoom:"Basculement du mot de passe de la r\xe9union",moreActions:"Basculement du menu d'actions suppl\xe9mentaires",moreActionsMenu:"Menu d'actions suppl\xe9mentaires",mute:"Basculement de la sourdine",pip:"Basculement du mode image dans l'image",privateMessage:"",profile:"Modifier votre profil",raiseHand:"Basculement de la main lev\xe9e",recording:"Basculement de l'enregistrement",remoteMute:"Mettre le participant en sourdine",Settings:"Basculement des param\xe8tres",sharedvideo:"Basculement du partage de vid\xe9o YouTube",shareRoom:"Inviter quelqu'un",shareYourScreen:"Basculement du partage d'\xe9cran",shortcuts:"Basculement des raccourcis",show:"",speakerStats:"Basculement des statistiques d'intervenant",tileView:"Basculement de l'affichage mosa\xefque",toggleCamera:"Basculement de la cam\xe9ra",videomute:"Basculement de la sourdine vid\xe9o",videoblur:"Alterner le brouillage vid\xe9o"},addPeople:"Ajouter des personnes \xe0 votre appel",audioOnlyOff:"D\xe9sactiver le mode bande passante faible",audioOnlyOn:"Activer le mode bande passante faible",audioRoute:"S\xe9lectionner le dispositif audio",authenticate:"Authentification",callQuality:"Gestion de la qualit\xe9 d'appel",chat:"Ouvrir / Fermer le clavardage",closeChat:"Fermer le clavardage",documentClose:"Fermer le document partag\xe9",documentOpen:"Ouvrir le document partag\xe9",download:"T\xe9l\xe9charger nos applications",enterFullScreen:"Afficher le mode plein \xe9cran",enterTileView:"Passer \xe0 l'affichage mosa\xefque",exitFullScreen:"Quitter le mode plein \xe9cran",exitTileView:"Quitter l'affichage mosa\xefque",feedback:"Laisser un commentaire",hangup:"Quitter",help:"Aide",invite:"Inviter des personnes",login:"Connexion",logout:"D\xe9connexion",lowerYourHand:"Abaisser votre main",moreActions:"Plus d'actions",mute:"Activer / R\xe9activer le son",noAudioSignalTitle:"Il n'y a pas d'entr\xe9e provenant de votre micro !",noAudioSignalDesc:"Si vous n'avez pas d\xe9lib\xe9r\xe9ment coup\xe9 le son des param\xe8tres du syst\xe8me ou du mat\xe9riel, envisagez de changer le p\xe9riph\xe9rique.",noAudioSignalDescSuggestion:"Si vous n'avez pas d\xe9lib\xe9r\xe9ment coup\xe9 le son des param\xe8tres du syst\xe8me ou du mat\xe9riel, pensez \xe0 utiliser le p\xe9riph\xe9rique suivant :",openChat:"Ouvrir le clavardage",pip:"Passer en mode image dans l'image",privateMessage:"Envoyer un message priv\xe9",profile:"Modifier votre profil",raiseHand:"Lever / Abaisser votre main",raiseYourHand:"Lever votre main",Settings:"Param\xe8tres",sharedvideo:"Partager une vid\xe9o YouTube",shareRoom:"Inviter quelqu'un",shortcuts:"Voir les raccourcis",speakerStats:"Statistiques d'intervenant",startScreenSharing:"D\xe9marrer le partage d'\xe9cran",startSubtitles:"Activer les sous-titres",stopScreenSharing:"Arr\xeater le partage d'\xe9cran",stopSubtitles:"D\xe9sactiver les sous-titres",stopSharedVideo:"Arr\xeater la vid\xe9o YouTube",talkWhileMutedPopup:"Vous essayez de parler? Vous \xeates en sourdine.",tileViewToggle:"Basculement de l'affichage mosa\xefque",toggleCamera:"Basculement de la cam\xe9ra",videomute:"D\xe9marrer / Arr\xeater la cam\xe9ra",startvideoblur:"Brouiller mon arri\xe8re plan",stopvideoblur:"D\xe9sactiver le brouillage d'arri\xe8re-plan"},transcribing:{ccButtonTooltip:"Activer / D\xe9sactiver les sous-titres",error:"\xc9chec de la transcription. Veuillez r\xe9essayer.",expandedLabel:"La transcription est actuellement activ\xe9e",failedToStart:"\xc9chec du d\xe9marrage de la transcription",labelToolTip:"La r\xe9union est transcrite",off:"La transcription est arr\xeat\xe9e",pending:"Pr\xe9paration de la transcription de la r\xe9union en cours...",start:"Activer l'affichage des sous-titres",stop:"D\xe9sactiver l'affichage des sous-titres",tr:"PI"},userMedia:{androidGrantPermissions:"S\xe9lectionner Autoriser lorsque votre navigateur vous demande l'autorisation.",chromeGrantPermissions:"S\xe9lectionner Autoriser lorsque votre navigateur vous demande l'autorisation.",edgeGrantPermissions:"S\xe9lectionner Oui lorsque votre navigateur demande l'autorisation.",electronGrantPermissions:"Veuillez accorder l'autorisation d'utiliser votre cam\xe9ra et votre micro",firefoxGrantPermissions:"S\xe9lectionner Partager le dispositif s\xe9lectionn\xe9 lorsque votre navigateur demande l'autorisation.",iexplorerGrantPermissions:"S\xe9lectionner OK lorsque votre navigateur demande l'autorisation.",nwjsGrantPermissions:"Veuillez accorder l'autorisation d'utiliser votre cam\xe9ra et votre micro",operaGrantPermissions:"S\xe9lectionner Autoriser lorsque votre navigateur vous demande l'autorisation.","react-nativeGrantPermissions":"S\xe9lectionner Autoriser lorsque votre navigateur vous demande l'autorisation.",safariGrantPermissions:"S\xe9lectionner OK lorsque votre navigateur demande l'autorisation."},videoSIPGW:{busy:"Lib\xe9ration des ressources en cours. Veuillez r\xe9essayer dans quelques minutes.",busyTitle:"Le service de Salle est actuellement occup\xe9.",errorAlreadyInvited:"{{displayName}} a d\xe9j\xe0 \xe9t\xe9 invit\xe9",errorInvite:"La conf\xe9rence n'est pas encore configur\xe9e. Veuillez r\xe9essayer plus tard.",errorInviteFailed:"Nous nous effor\xe7ons de r\xe9gler ce probl\xe8me. Veuillez r\xe9essayer plus tard.",errorInviteFailedTitle:"L'invitation de {{displayName}} a \xe9chou\xe9",errorInviteTitle:"Erreur lors de l'invitation de la salle",pending:"{{displayName}} a \xe9t\xe9 invit\xe9"},videoStatus:{audioOnly:"AUD",audioOnlyExpanded:"Vous \xeates en mode bande passante faible. Dans ce mode, vous ne recevrez que le partage audio et le partage d\u2019\xe9cran.",callQuality:"Qualit\xe9 d'appel",hd:"HD",hdTooltip:"Visionnement de vid\xe9o en haute d\xe9finition",highDefinition:"Haute d\xe9finition",labelTooiltipNoVideo:"Aucune vid\xe9o",labelTooltipAudioOnly:"Mode bande passante faible activ\xe9",ld:"LD",ldTooltip:"Visionnement de vid\xe9o en basse d\xe9finition",lowDefinition:"Basse d\xe9finition",onlyAudioAvailable:"Seulement l'audio est disponible",onlyAudioSupported:"Ce navigateur prend seulement l'audio en charge.",p2pEnabled:"Pair \xe0 pair activ\xe9",p2pVideoQualityDescription:"En mode pair \xe0 pair, il est possible de basculer entre la haute qualit\xe9 d'appel entrant et l'audio seulement. Certains param\xe8tres ne seront pas activ\xe9s tant que vous ne quittez le mode pair \xe0 pair.",recHighDefinitionOnly:"La haute d\xe9finition est pr\xe9f\xe9rable.",sd:"SD",sdTooltip:"Visionnement de vid\xe9o en d\xe9finition standard",standardDefinition:"D\xe9finition standard"},videothumbnail:{domute:"Discr\xe9tion",flip:"Actionner",kick:"Expulser",moderator:"Mod\xe9rateur",mute:"Le membre est en sourdine",muted:"Discr\xe9tion",remoteControl:"Contr\xf4le \xe0 distance",show:"Afficher en premier plan",videomute:"Le membre a arr\xeat\xe9 la cam\xe9ra"},welcomepage:{accessibilityLabel:{join:"Toucher pour rejoindre",roomname:"Entrer le nom de la salle"},appDescription:"Profitez de la conversation vid\xe9o avec toute votre \xe9quipe. Allez-y, invitez tous ceux que vous connaissez. {{app}} est une solution 100\xa0% libre de conf\xe9rence vid\xe9o enti\xe8rement crypt\xe9e que vous pouvez utiliser en tout temps et gratuitement, sans avoir besoin de compte.",audioVideoSwitch:{audio:"T\xe9l\xe9phone",video:"Vid\xe9o"},calendar:"Calendrier",connectCalendarButton:"Connecter votre agenda",connectCalendarText:"Connectez-vous \xe0 votre calendrier pour afficher toutes les r\xe9unions {{app}}. Ajoutez \xe9galement les r\xe9unions de {{provider}} \xe0 votre calendrier et d\xe9marrez-les d'un simple clic.",enterRoomTitle:"D\xe9marrer une nouvelle r\xe9union",roomNameAllowedChars:"Le nom de la r\xe9union ne doit contenir aucun de ces caract\xe8res : ?, &, :, ', \", %, #.",go:"Commencer",goSmall:"Commencer",join:"CR\xc9ER / REJOINDRE",info:"Ret. arr.",privacy:"Confidentialit\xe9",recentList:"R\xe9cent",recentListDelete:"Supprimer",recentListEmpty:"Votre liste r\xe9cente est actuellement vide. Clavardez avec votre \xe9quipe et vous y trouverez toutes vos r\xe9unions r\xe9centes.",reducedUIText:"Bienvenue sur {{app}}!",roomname:"Entrer le nom de la salle",roomnameHint:"Entrez le nom ou l'URL de la salle que vous voulez rejoindre. Vous pouvez inventer un nom, mais assurez-vous de le partager avec les participants de la r\xe9union pour qu'ils utilisent le m\xeame nom.",sendFeedback:"Envoyer un commentaire",terms:"Termes",title:"Conf\xe9rence vid\xe9o s\xe9curis\xe9e, pleinement fonctionnelle et enti\xe8rement gratuite"}}},675,[]); +__d(function(i,k,s,a,e,n,r){e.exports={en:"Engleski",af:"Afrikanski",az:"A\u017eerbejd\u017eanski",bg:"Bugarski",cs:"\u010ce\u0161ki",de:"Njema\u010dki",el:"Gr\u010dki",eo:"Esperanto",es:"\u0160panjolski",fr:"Francuski",hy:"Armenski",it:"Talijanski",ja:"Japanski",ko:"Korejski",nb:"Norve\u0161ki Bokmal",oc:"Okcitanski",pl:"Poljski",ptBR:"Portugalski (Brazil)",ru:"Ruski",sk:"Slova\u010dki",sl:"Slovenski",sv:"\u0160vedski",tr:"Turski",vi:"Vijetnamski",zhCN:"Kineski (Kina)"}},676,[]); +__d(function(e,i,a,o,n,r,t){n.exports={addPeople:{add:"Pozivnica",countryNotSupported:"Ova destinacija jo\u0161 nije podr\u017eana.",countryReminder:"Zovete izvan zemlje? Molim provjerite da li ste unijeli predbroj dr\u017eave!",disabled:"Ne mo\u017eete slati pozivnice.",failedToAdd:"",footerText:"Upu\u0107ivanje poziva je zabranjeno.",loading:"Pretra\u017eujem ljude i brojeve telefona",loadingNumber:"Provjera telefonskog broja",loadingPeople:"Tra\u017eenje osoba koje \u017eelite pozvati",noResults:"Nema podudarnih rezultata pretra\u017eivanja",noValidNumbers:"Unesite telefonski broj",searchNumbers:"Dodajte telefonske brojeve",searchPeople:"Potra\u017eite osobe",searchPeopleAndNumbers:"Potra\u017eite osobe ili dodajte njihove telefonske brojeve",telephone:"Telefon: {{number}}",title:"Pozovite ljude na ovaj sastanak"},audioDevices:{bluetooth:"Bluetooth",headphones:"Slu\u0161alice",phone:"Telefon",speaker:"Zvu\u010dnik"},audioOnly:{audioOnly:"Samo zvuk"},calendarSync:{addMeetingURL:"Dodajte vezu sastanka",confirmAddLink:"\u017delite li dodati Jitsi vezu u ovaj doga\u0111aj?",error:{appConfiguration:"Integracija kalendara nije ispravno konfigurirana.",generic:"Do\u0161lo je do pogre\u0161ke. Provjerite postavke kalendara ili poku\u0161ajte osvje\u017eiti kalendar.",notSignedIn:"Do\u0161lo je do pogre\u0161ke prilikom provjere autenti\u010dnosti za prikaz doga\u0111aja u kalendaru. Provjerite postavke kalendara i poku\u0161ajte se ponovno prijaviti."},join:"Pridru\u017eite",joinTooltip:"Pridru\u017eite se sastanku",nextMeeting:"slijede\u0107i sastanak",noEvents:"Nema zakazanih doga\u0111aja.",ongoingMeeting:"sastanak u tijeku",permissionButton:"Otvori postavke",permissionMessage:"Dozvola za kalendar je obavezna kako biste vidjeli sastanke u aplikaciji.",refresh:"Osvje\u017ei kalendar",today:"Danas"},chat:{error:"Gre\u0161ka: poruka \"{{originalText}}\" nije poslana. Razlog: {{error}}",messagebox:"",nickname:{popover:"Odaberite nadimak",title:"Unesite nadimak za \u010davrljanje"},title:"\u010cavrljanje"},connectingOverlay:{joiningRoom:""},connection:{ATTACHED:"Spojen",AUTHENTICATING:"Autentikacija",AUTHFAIL:"Autentikacija nije uspjela",CONNECTED:"Povezan",CONNECTING:"Povezivanje",CONNFAIL:"Povezivanje nije uspjelo",DISCONNECTED:"Nije povezano",DISCONNECTING:"Prekid povezivanja",ERROR:"Gre\u0161ka",RECONNECTING:"Dogodio se problem s mre\u017eom. Ponovno povezivanje..."},connectionindicator:{address:"Adresa:",bandwidth:"Procijenjena propusnost:",bitrate:"Brzina prijenosa:",bridgeCount:"Broj poslu\u017eitelja:",connectedTo:"Spojen na:",framerate:"Sli\u010dice po sekundi:",less:"Prika\u017ei manje",localaddress_0:"Lokalna adresa:",localaddress_1:"Lokalne adrese:",localaddress_2:"",localport_0:"Lokalni priklju\u010dak:",localport_1:"Lokalni priklju\u010dci:",localport_2:"",more:"Prika\u017ei vi\u0161e",packetloss:"Gubitak paketa:",quality:{good:"Dobro",inactive:"Neaktivno",lost:"Izgubljeno",nonoptimal:"Nije optimalno",poor:"Slaba"},remoteaddress_0:"Udaljena adresa:",remoteaddress_1:"Udaljene adrese:",remoteaddress_2:"",remoteport_0:"Udaljeni priklju\u010dak:",remoteport_1:"Udaljeni priklju\u010dci:",remoteport_2:"",resolution:"Rezolucija:",status:"Povezivanje",transport_0:"",transport_1:"",transport_2:"",turn:""},dateUtils:{earlier:"Ranije",today:"Danas",yesterday:"Ju\u010der"},deepLinking:{appNotInstalled:"Da biste se pridru\u017eili ovom sastanku na telefonu, potrebna vam je mobilna aplikacija {{app}}.",description:"Ni\u0161ta se nije dogodilo? Poku\u0161ali smo pokrenuti va\u0161 sastanak u aplikaciji {{app}} na radnoj povr\u0161ini. Poku\u0161ajte ponovno ili ga pokrenite u web-aplikaciji {{app}}.",descriptionWithoutWeb:"",downloadApp:"Preuzmite aplikaciju",launchWebButton:"Pokreni na webu",openApp:"Nastavite do aplikacije",title:"Pokretanje sastanka u {{app}}...",tryAgainButton:"Poku\u0161ajte ponovo na radnoj povr\u0161ini"},defaultLink:"npr. {{url}}",deviceError:{cameraError:"Pristup va\u0161oj kameri nije uspio",cameraPermission:"Gre\u0161ka kod dohvata dozvole za kameru",microphoneError:"Pristup va\u0161em mikrofonu nije uspio",microphonePermission:"Gre\u0161ka kod dohvata dozvole za mikrofon"},deviceSelection:{noPermission:"Dozvola nije odobrena",previewUnavailable:"Pregled nije dostupan",selectADevice:"Odaberite ure\u0111aj",testAudio:"Reproducirajte testni zvuk"},dialog:{accessibilityLabel:{liveStreaming:"Emitiranje u\u017eivo"},allow:"Dozvoli",alreadySharedVideoMsg:"",alreadySharedVideoTitle:"Istodobno je dopu\u0161ten samo jedan zajedni\u010dki videozapis",applicationWindow:"Prozor aplikacije",Back:"Nazad",cameraConstraintFailedError:"Va\u0161a kamera ne zadovoljava neka od potrebnih ograni\u010denja.",cameraNotFoundError:"Kamera nije prona\u0111ena.",cameraNotSendingData:"Ne mo\u017eemo pristupiti va\u0161oj kameri. Provjerite koristi li ovaj ure\u0111aj neki drugi program, odaberite drugi ure\u0111aj s izbornika postavki ili poku\u0161ajte ponovno u\u010ditati program.",cameraNotSendingDataTitle:"Nije mogu\u0107e pristupiti kameri",cameraPermissionDeniedError:"Niste odobrili kori\u0161tenje kamere. I dalje se mo\u017eete pridru\u017eiti konferenciji, ali drugi vas ne\u0107e vidjeti. Pomo\u0107u gumba kamere u adresnoj traci to popravite.",cameraUnknownError:"Nije mogu\u0107e koristiti kameru iz nepoznatog razloga.",cameraUnsupportedResolutionError:"Fotoaparat ne podr\u017eava potrebnu razlu\u010divost videozapisa.",Cancel:"Odustani",close:"Zatvori",conferenceDisconnectMsg:"Provjerite va\u0161u mre\u017enu vezu. Ponovno spajanje za {{seconds}} sekundi...",conferenceDisconnectTitle:"Odspojeni ste.",conferenceReloadMsg:"Poku\u0161avamo popraviti. Ponovno spajanje za {{seconds}} sekundi...",conferenceReloadTitle:"Na\u017ealost, ne\u0161to je po\u0161lo po zlu.",confirm:"Potvrdi",confirmNo:"Ne",confirmYes:"Da",connectError:"Uh! Ne\u0161to je po\u0161lo po zlu i nismo se mogli povezati s konferencijom.",connectErrorWithMsg:"Uh! Ne\u0161to je po\u0161lo po zlu i nismo se mogli povezati s konferencijom: {{msg}}",connecting:"Povezivanje",contactSupport:"Kontaktirajte podr\u0161ku",copy:"Kopiraj",dismiss:"Odbaciti",displayNameRequired:"",done:"Gotovo",enterDisplayName:"",error:"Gre\u0161ka",externalInstallationMsg:"Trebate instalirati pro\u0161irenje za dijeljenje radne povr\u0161ine.",externalInstallationTitle:"Potrebno je pro\u0161irenje",goToStore:"",gracefulShutdown:"",IamHost:"Ja sam doma\u0107in",incorrectRoomLockPassword:"",incorrectPassword:"Pogre\u0161no korisni\u010dko ime ili lozinka",inlineInstallationMsg:"Trebate instalirati pro\u0161irenje za dijeljenje radne povr\u0161ine.",inlineInstallExtension:"Sada instalirati",internalError:"Ups! Ne\u0161to je po\u0161lo po zlu. Dogodila se gre\u0161ka: {{error}}",internalErrorTitle:"Interna gre\u0161ka",kickMessage:"",kickParticipantButton:"Izbaci",kickParticipantDialog:"Jeste li sigurni da \u017eelite izbaciti ovog sudionika?",kickParticipantTitle:"",kickTitle:"",liveStreaming:"Emitiranje u\u017eivo",liveStreamingDisabledForGuestTooltip:"Gosti ne mogu pokrenuti emitiranje u\u017eivo.",liveStreamingDisabledTooltip:"Pokretanje emitiranja u\u017eivo je isklju\u010deno.",lockMessage:"",lockRoom:"",lockTitle:"Zaklju\u010davanje nije uspjelo",logoutQuestion:"Jeste li sigurni da se \u017eelite odjaviti i zaustaviti konferenciju?",logoutTitle:"Odjava",maxUsersLimitReached:"",maxUsersLimitReachedTitle:"",micConstraintFailedError:"Va\u0161 mikrofon ne zadovoljava neka od potrebnih ograni\u010denja.",micNotFoundError:"Mikrofon nije prona\u0111en.",micNotSendingData:"",micNotSendingDataTitle:"",micPermissionDeniedError:"Niste odobrili kori\u0161tenje mikrofona. I dalje se mo\u017eete pridru\u017eiti konferenciji, ali vas drugi ne\u0107e \u010duti. Pomo\u0107u gumba kamere u adresnoj traci to popravite.",micUnknownError:"Nije mogu\u0107e koristiti mikrofon iz nepoznatog razloga.",muteParticipantBody:"Ne mo\u017eete ih ponovno uklju\u010diti, ali oni se mogu sami uklju\u010diti u bilo kojem trenutku.",muteParticipantButton:"Uti\u0161aj",muteParticipantDialog:"Jeste li sigurni da \u017eelite isklju\u010diti ovog sudionika? Ne mo\u017eete ih uklju\u010diti, ali oni mogu biti uklju\u010deni u bilo kojem trenutku.",muteParticipantTitle:"",Ok:"U redu",passwordLabel:"",passwordNotSupported:"Postavljanje lozinke za susret nije podr\u017eano.",passwordNotSupportedTitle:"",passwordRequired:"",popupError:"Va\u0161 preglednik blokira sko\u010dne prozore s ove web-lokacije. Omogu\u0107ite sko\u010dne prozore u sigurnosnim postavkama preglednika i poku\u0161ajte ponovno.",popupErrorTitle:"Sko\u010dni prozor je blokiran",recording:"Snimanje",recordingDisabledForGuestTooltip:"Gosti ne mogu pokrenuti snimanje.",recordingDisabledTooltip:"Isklju\u010deno je pokretanje snimanja.",rejoinNow:"Pridru\u017eite se sada",remoteControlAllowedMessage:"{{user}} je prihvatio va\u0161 zahtjev daljinskog upravljanja!",remoteControlDeniedMessage:"{{user}} je odbio va\u0161 zahtjev daljinskog upravljanja!",remoteControlErrorMessage:"Do\u0161lo je do pogre\u0161ke prilikom poku\u0161aja zahtjeva za dozvole daljinskog upravljanja od {{user}}!",remoteControlRequestMessage:"Ho\u0107ete li dopustiti {{user}} daljinski upravljati radnom povr\u0161inom?",remoteControlShareScreenWarning:"Imajte na umu da ako pritisnete \"Dopusti\" podijelit \u0107ete zaslon!",remoteControlStopMessage:"Sesija udaljenog upravlja\u010da je zavr\u0161ena!",remoteControlTitle:"Udaljeno upravljanje",Remove:"Ukloni",removePassword:"",removeSharedVideoMsg:"Jeste li sigurni da \u017eelite ukloniti dijeljeni videozapis?",removeSharedVideoTitle:"Uklanjanje dijeljenog videozapisa",reservationError:"Pogre\u0161ka sustava rezervacija",reservationErrorMsg:"Oznaka gre\u0161ke: {{code}}, poruka: {{msg}}",retry:"Poku\u0161aj ponovno",screenSharingFailedToInstall:"Uh! Nije uspjelo instaliranje pro\u0161irenja dijeljenja zaslona.",screenSharingFailedToInstallTitle:"Nije uspjelo instaliranje pro\u0161irenja dijeljenja zaslona",screenSharingFirefoxPermissionDeniedError:"Ne\u0161to je po\u0161lo po krivu dok smo poku\u0161avali dijeliti va\u0161 zaslon. Provjerite jeste li nam dali dopu\u0161tenje.",screenSharingFirefoxPermissionDeniedTitle:"Uh! Nismo mogli pokrenuti dijeljenje zaslona!",screenSharingPermissionDeniedError:"Uh! Ne\u0161to se dogodilo s va\u0161im dijeljenjem dozvola za pro\u0161irenje na zaslonu. Ponovno u\u010ditajte i poku\u0161ajte ponovno.",serviceUnavailable:"",sessTerminated:"",Share:"",shareVideoLinkError:"Unesite to\u010dnu vezu na youtube.",shareVideoTitle:"Dijelite videozapis",shareYourScreen:"Dijelite va\u0161 ekran",shareYourScreenDisabled:"Dijeljenje ekrana je isklju\u010deno.",shareYourScreenDisabledForGuest:"",startLiveStreaming:"Pokreni emitiranje u\u017eivo",startRecording:"Pokreni snimanje",startRemoteControlErrorMessage:"Do\u0161lo je do pogre\u0161ke prilikom poku\u0161aja pokretanja sesije daljinskog upravlja\u010da!",stopLiveStreaming:"Zaustavi emitiranje u\u017eivo",stopRecording:"Zaustavi snimanje",stopRecordingWarning:"Da li ste sigurni da \u017eelite zaustaviti snimanje?",stopStreamingWarning:"Da li ste sigurani da \u017eelite zaustaviti emitiranje u\u017eivo?",streamKey:"Klju\u010d za emitiranje u\u017eivo",Submit:"Po\u0161alji",thankYou:"Hvala \u0161to koristite {{appName}}!",token:"token",tokenAuthFailed:"\u017dao nam je, nije vam dozvoljeno pridru\u017eiti se pozivu.",tokenAuthFailedTitle:"Autentikacija nije uspjela",transcribing:"",unlockRoom:"",userPassword:"korisni\u010dka lozinka",WaitForHostMsg:"",WaitForHostMsgWOk:"",WaitingForHost:"",Yes:"Da",yourEntireScreen:"Va\u0161 cijeli zaslon"},dialOut:{statusMessage:"je sada {{status}}"},feedback:{average:"Prosje\u010dno",bad:"Lo\u0161e",detailsLabel:"Recite nam vi\u0161e o tome.",good:"Dobro",rateExperience:"",veryBad:"",veryGood:""},incomingCall:{answer:"",audioCallTitle:"",decline:"Odbaciti",productLabel:"",videoCallTitle:""},info:{accessibilityLabel:"Prika\u017ei informacije",addPassword:"",cancelPassword:"",conferenceURL:"Veza:",country:"Dr\u017eava",dialANumber:"Da biste se pridru\u017eili sastanku, nazovite jedan od tih brojeva i unesite pin.",dialInConferenceID:"PIN:",dialInNotSupported:"Na\u017ealost, pozivanje u trenutno nije podr\u017eano.",dialInNumber:"Nazvati:",dialInSummaryError:"",dialInTollFree:"Besplatno",genericError:"Ups, ne\u0161to je po\u0161lo po zlu.",inviteLiveStream:"Da biste pogledali prijenos u\u017eivo ovog sastanka, kliknite ovu vezu: {{url}}",invitePhone:"",invitePhoneAlternatives:"",inviteURLFirstPartGeneral:"",inviteURLFirstPartPersonal:"",inviteURLSecondPart:"",liveStreamURL:"Emitiranje u\u017eivo:",moreNumbers:"",noNumbers:"",noPassword:"",noRoom:"",numbers:"Brojevi za nazivanje:",password:"",title:"",tooltip:"Podijelite vezu i informacije za nazivanje ovog sastanka",label:"Informacije o sastanku"},inviteDialog:{alertText:"Pozivanje nekih sudionika nije uspjelo.",header:"Pozivnica",searchCallOnlyPlaceholder:"Unesite telefonski broj",searchPeopleOnlyPlaceholder:"Potra\u017eite sudionike",searchPlaceholder:"Broj sudionika ili telefon",send:""},inlineDialogFailure:{msg:"",retry:"",support:"",supportMsg:""},keyboardShortcuts:{focusLocal:"",focusRemote:"",fullScreen:"Prika\u017ei / Iza\u0111i iz cijelog ekrana",keyboardShortcuts:"Pre\u010daci tipkovnice",localRecording:"",mute:"Isklju\u010dite ili uklju\u010dite mikrofon",pushToTalk:"",raiseHand:"Podigni / spusti ruku",showSpeakerStats:"Prika\u017ei statistiku zvu\u010dnika",toggleChat:"Otvori ili zatvori \u010davrljanje",toggleFilmstrip:"",toggleScreensharing:"",toggleShortcuts:"Prika\u017ei ili sakrij pre\u010dace tipkovnice",videoMute:"Pokreni ili zaustavi kameru"},liveStreaming:{busy:"Radimo na osloba\u0111anju streaming resursa. Molim poku\u0161ajte ponovno za par minuta.",busyTitle:"Svi stream-ovi su trenutno zauzeti",changeSignIn:"",choose:"Odaberite emitiranje u\u017eivo",chooseCTA:"Odaberite opciju emitiranja. Trenutno ste prijavljeni kao {{email}}.",enterStreamKey:"Ovdje unesite klju\u010d YouTube prijenos u\u017eivo.",error:"Emitiranje u\u017eivo nije uspjelo. Poku\u0161ajte ponovno.",errorAPI:"",errorLiveStreamNotEnabled:"Emitiranje u\u017eivo nije omogu\u0107eno na {{email}}. Omogu\u0107ite prijenos u\u017eivo ili se prijavite na ra\u010dun s omogu\u0107enim prijenosom u\u017eivo.",expandedOff:"Emitiranje u\u017eivo je zaustavljeno",expandedOn:"Ovaj sastanak se emitira u\u017eivo na YouTube.",expandedPending:"Emitiranje u\u017eivo se pokre\u0107e...",failedToStart:"Pokretanje emitiranja u\u017eivo nije uspjelo",getStreamKeyManually:"Nismo mogli dohvatiti niti jedan prijenos u\u017eivo. Poku\u0161ajte dobiti klju\u010d u\u017eivo iz usluge YouTube.",invalidStreamKey:"Klju\u010d za emitiranje u\u017eivo mo\u017eda je pogre\u0161an.",off:"Emitiranje u\u017eivo je zaustavljeno",on:"Emitiranje u\u017eivo",pending:"Pokretanje emitiranja u\u017eivo...",serviceName:"Usluga emitiranja u\u017eivo",signedInAs:"",signIn:"",signInCTA:"Prijavite se ili unisete va\u0161 YouTube klju\u010d za emitiranje u\u017eivo.",signOut:"Pokrenite emitiranje u\u017eivo",start:"Pokreni emitiranje u\u017eivo",streamIdHelp:"",unavailableTitle:""},localRecording:{clientState:{off:"",on:"",unknown:""},dialogTitle:"",duration:"",durationNA:"",encoding:"",label:"",labelToolTip:"",localRecording:"",me:"",messages:{engaged:"",finished:"",finishedModerator:"",notModerator:""},moderator:"",no:"Ne",participant:"",participantStats:"",sessionToken:"",start:"Pokreni snimanje",stop:"Zaustavi snimanje",yes:"Da"},lockRoomPassword:"Lozinka",lockRoomPasswordUppercase:"Lozinka",me:"",notify:{connectedOneMember:"",connectedThreePlusMembers:"",connectedTwoMembers:"",disconnected:"Nije povezano",focus:"",focusFail:"",grantedTo:"",invitedOneMember:"",invitedThreePlusMembers:"",invitedTwoMembers:"",kickParticipant:"",me:"",moderator:"",muted:"",mutedTitle:"",mutedRemotelyTitle:"",mutedRemotelyDescription:"",passwordRemovedRemotely:"",passwordSetRemotely:"",raisedHand:"",somebody:"",startSilentTitle:"",startSilentDescription:"",suboptimalExperienceDescription:"",suboptimalExperienceTitle:"",unmute:"",newDeviceCameraTitle:"",newDeviceAudioTitle:"",newDeviceAction:""},passwordSetRemotely:"",passwordDigitsOnly:"",poweredby:"",presenceStatus:{busy:"",calling:"",connected:"Povezan",connecting:"Povezivanje",connecting2:"Povezivanje",disconnected:"Nije povezano",expired:"",ignored:"",initializingCall:"",invited:"Pozivnica",rejected:"",ringing:""},profile:{setDisplayNameLabel:"",setEmailInput:"",setEmailLabel:"",title:""},recording:{authDropboxText:"",availableSpace:"",beta:"",busy:"",busyTitle:"Svi stream-ovi su trenutno zauzeti",error:"Emitiranje u\u017eivo nije uspjelo. Poku\u0161ajte ponovno.",expandedOff:"",expandedOn:"",expandedPending:"Snimanje se pokre\u0107e...",failedToStart:"",fileSharingdescription:"",live:"",loggedIn:"Prijavljen kao {{userName}}",off:"",on:"Snimanje",pending:"",rec:"",serviceDescription:"",serviceName:"",signIn:"",signOut:"Pokrenite emitiranje u\u017eivo",unavailable:"",unavailableTitle:""},sectionList:{pullToRefresh:""},settings:{calendar:{about:"Integracija kalendara {{appName}} koristi se za siguran pristup kalendaru tako da mo\u017ee \u010ditati nadolaze\u0107e doga\u0111aje.",disconnect:"Odspoji",microsoftSignIn:"Prijavite se sa Microsoftom",signedIn:"Trenutno pristupate doga\u0111ajima kalendara za {{email}}. Kliknite gumb Odspoji u nastavku da biste zaustavili pristup doga\u0111ajima u kalendaru.",title:"Kalendar"},devices:"Ure\u0111aji",followMe:"Svatko me slijedi",language:"Jezik",loggedIn:"Prijavljen kao {{name}}",moderator:"",more:"Vi\u0161e",name:"Ime",noDevice:"Gotovo",selectAudioOutput:"Zvu\u010dni izlaz",selectCamera:"Kamera",selectMic:"Mikrofon",startAudioMuted:"Svi po\u010dinju sa isklju\u010denim zvukom",startVideoMuted:"Svi po\u010dinju sakriveni",title:"Postavke"},settingsView:{alertOk:"U redu",alertTitle:"",alertURLText:"Uneseni URL poslu\u017eitelja nije ispravan",buildInfoSection:"",conferenceSection:"Konferencija",displayName:"Ime za prikaz",email:"",header:"Postavke",profileSection:"",serverURL:"URL poslu\u017eitelja",startWithAudioMuted:"Pokreni sa isklju\u010denim zvukom",startWithVideoMuted:"Pokreni sa uti\u0161anim videozapisom",version:""},share:{dialInfoText:"",mainText:""},speaker:"Zvu\u010dnik",speakerStats:{hours:"",minutes:"",name:"Ime",seconds:"",speakerStats:"Statistika govornika",speakerTime:"Vrijeme govornika"},startupoverlay:{policyText:"",title:"{{app}} treba koristiti va\u0161 mikrofon i kameru."},suspendedoverlay:{rejoinKeyTitle:"",text:"",title:""},toolbar:{accessibilityLabel:{audioOnly:"",audioRoute:"Odaberite ure\u0111aj za zvuk",callQuality:"",cc:"",chat:"",document:"Prika\u017ei ili sakrij dijeljeni dokument",feedback:"",fullScreen:"Prebacite cijeli ekran",hangup:"Iza\u0111ite iz poziva",invite:"",kick:"",localRecording:"",lockRoom:"",moreActions:"",moreActionsMenu:"",mute:"Nijemi videozapis",pip:"Otvori na\u010din slika-u-slici",profile:"",raiseHand:"",recording:"",remoteMute:"",Settings:"Prika\u017ei postavke",sharedvideo:"",shareRoom:"Pozovi nekoga",shareYourScreen:"Uklju\u010di / isklju\u010di dijeljenje ekrana",shortcuts:"Uklju\u010di / isklju\u010di pre\u010dace",show:"",speakerStats:"Uklju\u010di / isklju\u010di statistiku govornika",tileView:"Prikaz plo\u010dica",toggleCamera:"Uklju\u010di / isklju\u010di kameru",videomute:"Nijemi videozapis",videoblur:""},addPeople:"Dodaj osobe u poziv",audioOnlyOff:"Isklju\u010di na\u010din samo zvuk",audioOnlyOn:"Uklju\u010di na\u010din samo zvuk",audioRoute:"Odaberite ure\u0111aj za zvuk",authenticate:"Autentikacija",callQuality:"Upravljaj kvalitetom poziva",chat:"Otvori / Zatvori \u010davrljanje",closeChat:"Zatvori \u010davrljanje",documentClose:"Zatvori dijeljeni dokument",documentOpen:"Otvori dijeljenji dokument",enterFullScreen:"Prikaz preko cijelog ekrana",enterTileView:"Uklju\u010di prikaz plo\u010dica",exitFullScreen:"Iza\u0111i iz prikaza cijelog ekrana",exitTileView:"Iza\u0111i iz prikaza plo\u010dica",feedback:"",hangup:"Izlaz",invite:"",login:"Prijava",logout:"Odjava",lowerYourHand:"Spusti ruku",moreActions:"Vi\u0161e akcija",mute:"Isklju\u010di / Uklju\u010di zvuk",openChat:"Otvori \u010davrljanje",pip:"Otvori na\u010din slika-u-slici",profile:"",raiseHand:"Podigni / spusti ruku",raiseYourHand:"Podigni ruku",Settings:"Postavke",sharedvideo:"Podijeli YouTube videozapis",shareRoom:"Pozovi nekoga",shortcuts:"Prikaz pre\u010daca",speakerStats:"Statistika govornika",startScreenSharing:"Pokreni dijeljenje ekrana",startSubtitles:"Pokreni podnaslove",stopScreenSharing:"Zaustavi dijeljenje ekrana",stopSubtitles:"Zaustavi podnaslove",stopSharedVideo:"Zaustavi YouTube videozapis",talkWhileMutedPopup:"Poku\u0161ava\u0161 govoriti? Uti\u0161an si.",tileViewToggle:"Prikaz plo\u010dica",toggleCamera:"Uklju\u010di / isklju\u010di kameru",videomute:"Pokreni / Zaustavi kameru",startvideoblur:"",stopvideoblur:""},transcribing:{ccButtonTooltip:"",error:"Emitiranje u\u017eivo nije uspjelo. Poku\u0161ajte ponovno.",expandedLabel:"",failedToStart:"",labelToolTip:"",off:"",pending:"",start:"",stop:"",tr:""},userMedia:{androidGrantPermissions:"",chromeGrantPermissions:"",edgeGrantPermissions:"",electronGrantPermissions:"Molim dozvolite upotrebu kamere i mikrofona",firefoxGrantPermissions:"Odaberite Dijeljenje odabranog ure\u0111aja kada preglednik zatra\u017ei dopu\u0161tenja.",iexplorerGrantPermissions:"",nwjsGrantPermissions:"Molim dozvolite upotrebu kamere i mikrofona",operaGrantPermissions:"","react-nativeGrantPermissions":"",safariGrantPermissions:""},videoSIPGW:{busy:"",busyTitle:"",errorAlreadyInvited:"",errorInvite:"",errorInviteFailed:"",errorInviteFailedTitle:"",errorInviteTitle:"",pending:""},videoStatus:{audioOnly:"",audioOnlyExpanded:"",callQuality:"",hd:"",highDefinition:"",labelTooiltipNoVideo:"",labelTooltipAudioOnly:"",ld:"",lowDefinition:"",onlyAudioAvailable:"",onlyAudioSupported:"",p2pEnabled:"",p2pVideoQualityDescription:"",recHighDefinitionOnly:"",sd:"",standardDefinition:""},videothumbnail:{domute:"Uti\u0161aj",flip:"",kick:"",moderator:"",mute:"",muted:"Uti\u0161aj",remoteControl:"",show:"",videomute:""},welcomepage:{accessibilityLabel:{join:"Dodirnite za pridru\u017eivanje",roomname:"Unesi naziv sobe"},appDescription:"Samo naprijed, koristite videopozive sa cijelim timom. Zapravo, pozovite sve koje znate. {{app}} je potpuno \u0161ifrirano, videokonferencijsko rje\u0161enje 100% otvorenog koda koje mo\u017eete koristiti cijeli dan, svaki dan, besplatno - bez potrebe za ra\u010dunom.",audioVideoSwitch:{audio:"Glas",video:"Videozapis"},calendar:"Kalendar",connectCalendarButton:"Pove\u017eite svoj kalendar",connectCalendarText:"Pove\u017eite svoj kalendar da biste vidjeli sve svoje sastanke u {{app}}. Osim toga, dodajte {{provider}} sastanke u svoj kalendar i pokrenite ih jednim klikom.",enterRoomTitle:"Zapo\u010dnite novi sastanak",go:"KRENI",join:"U\u0110I",info:"",privacy:"Privatnost",recentList:"Nedavni",recentListDelete:"Izbri\u0161i",recentListEmpty:"Va\u0161 popis nedavnih razgovora je prazan. \u010cavrljajte sa svojim timom i ovdje \u0107ete prona\u0107i popis nedavnih sastanaka.",reducedUIText:"",roomname:"Unesi naziv sobe",roomnameHint:"Unesite naziv ili URL sobe koju \u017eelite pridru\u017eiti. Mo\u017eete izmijeniti ime, samo neka ljudi s kojima se sastajete to znaju kako bi unijeli isto ime.",sendFeedback:"Po\u0161aljite povratnu informaciju",terms:"Uvjeti",title:"Sigurna, potpuno opremljena i potpuno besplatna videokonferencija"}}},677,[]); +__d(function(a,n,r,i,l,e,o){l.exports={en:"Angol",af:"Afrikaans",bg:"Bolg\xe1r",ca:"Katal\xe1n",cs:"Cseh",de:"N\xe9met",el:"G\xf6r\xf6g",enGB:"Angol (Egyes\xfclt Kir\xe1lys\xe1g)",eo:"Eszperant\xf3",es:"Spanyol",esUS:"Spanyol (Latin-Amerika)",fi:"Finn",fr:"Francia",frCA:"Francia (kanadai)",hr:"Horv\xe1t",hu:"Magyar",hy:"\xd6rm\xe9ny",it:"Olasz",ja:"Jap\xe1n",ko:"Koreai",nl:"Holland",oc:"Okszit\xe1n",pl:"Lengyel",ptBR:"Portug\xe1l (Brazil)",ru:"Orosz",sk:"Szlov\xe1kul",sv:"Sv\xe9d",tr:"T\xf6r\xf6k",vi:"Vietn\xe1mi",zhCN:"K\xednai (K\xedna)",zhTW:"K\xednai (Tajvan)"}},678,[]); +__d(function(e,t,a,l,s,n,o){s.exports={addPeople:{add:"Megh\xedv\xe1s",countryNotSupported:"Ez a c\xe9l\xe1llom\xe1s jelenleg nem t\xe1mogatott.",countryReminder:"Ez USA-n k\xedv\xfcli h\xedv\xe1s? Orsz\xe1gh\xedv\xf3sz\xe1mmal kell kezd\u0151dnie!",disabled:"Nem h\xedvhat meg senkit.",failedToAdd:"Nem siker\xfclt a r\xe9sztvev\u0151k hozz\xe1ad\xe1sa",footerText:"A k\xfcls\u0151 t\xe1rcs\xe1z\xe1s le van tiltva.",loading:"Szem\xe9lyek \xe9s telefonsz\xe1maik keres\xe9se",loadingNumber:"Telefonsz\xe1m ellen\u0151rz\xe9se",loadingPeople:"Megh\xedvhat\xf3 szem\xe9lyek keres\xe9se",noResults:"Nincs tal\xe1lat a keres\xe9sre",noValidNumbers:"Adjon meg egy telefonsz\xe1mot",searchNumbers:"Telefonsz\xe1mok hozz\xe1ad\xe1sa",searchPeople:"Szem\xe9lyek keres\xe9se",searchPeopleAndNumbers:"Szem\xe9lyek keres\xe9se vagy telefonsz\xe1maik hozz\xe1ad\xe1sa",telephone:"Telefon: {{number}}",title:"Szem\xe9lyek megh\xedv\xe1sa az \xe9rtekezletre"},audioDevices:{bluetooth:"Bluetooth",headphones:"Fejhallgat\xf3",phone:"Telefon",speaker:"Hangsz\xf3r\xf3",none:"Nincsenek el\xe9rhet\u0151 hangeszk\xf6z\xf6k"},audioOnly:{audioOnly:"Alacsony s\xe1vsz\xe9less\xe9g"},calendarSync:{addMeetingURL:"\xc9rtekezlet hivatkoz\xe1s\xe1nak hozz\xe1ad\xe1sa",confirmAddLink:"Hozz\xe1adhat\xf3 egy Jitsi hivatkoz\xe1s az esem\xe9nyhez?",error:{appConfiguration:"A napt\xe1rintegr\xe1ci\xf3 nincs helyesen konfigur\xe1lva.",generic:"Hiba t\xf6rt\xe9nt. Ellen\u0151rizze a napt\xe1r be\xe1ll\xedt\xe1sait vagy pr\xf3b\xe1lja friss\xedteni a napt\xe1rat.",notSignedIn:"Hiba t\xf6rt\xe9nt a napt\xe1r esem\xe9nyeihez val\xf3 hozz\xe1f\xe9r\xe9shez sz\xfcks\xe9ges azonos\xedt\xe1s sor\xe1n. Ellen\u0151rizze a napt\xe1r be\xe1ll\xedt\xe1sait \xe9s pr\xf3b\xe1ljon meg \xfajra bel\xe9pni."},join:"R\xe9szv\xe9tel",joinTooltip:"Bekapcsol\xf3d\xe1s az \xe9rtekezletbe",nextMeeting:"k\xf6vetkez\u0151 \xe9rtekezlet",noEvents:"Nincs k\xf6vetkez\u0151 \xfctemezett \xe9rtekezlet.",ongoingMeeting:"folyamatban l\xe9v\u0151 \xe9rtekezlet",permissionButton:"Be\xe1ll\xedt\xe1sok megnyit\xe1sa",permissionMessage:"A napt\xe1r enged\xe9lyez\xe9se sz\xfcks\xe9ges az \xe9rtekezletek applik\xe1ci\xf3ban val\xf3 megtekint\xe9s\xe9hez.",refresh:"Napt\xe1r friss\xedt\xe9se",today:"Ma"},chat:{error:"Hiba: az \xfczenetet nem siker\xfclt elk\xfcldeni. Hiba oka: {{error}}",fieldPlaceHolder:"\xcdrja ide az \xfczenet\xe9t",messagebox:"\xcdrja be az \xfczenetet",messageTo:"Priv\xe1t \xfczenet a felhaszn\xe1l\xf3nak: {{recipient}}",noMessagesMessage:"A tal\xe1lkoz\xf3n m\xe9g nincsenek \xfczenetek. Itt kezdhet besz\xe9lget\xe9st!",nickname:{popover:"Becen\xe9v kiv\xe1laszt\xe1sa",title:"Adjon meg egy becenevet a cseveg\xe9s sz\xe1m\xe1ra"},privateNotice:"Priv\xe1t \xfczenet a felhaszn\xe1l\xf3nak: {{recipient}}",title:"Cseveg\xe9s",you:"neked"},connectingOverlay:{joiningRoom:"Kapcsol\xf3d\xe1s az \xe9rtekezlethez..."},connection:{ATTACHED:"Kapcsol\xf3dva",AUTHENTICATING:"Azonos\xedt\xe1s",AUTHFAIL:"Hiteles\xedt\xe9s meghi\xfasult",CONNECTED:"Kapcsol\xf3dva",CONNECTING:"Kapcsol\xf3d\xe1s",CONNFAIL:"A kapcsolat meghi\xfasult",DISCONNECTED:"Sz\xe9tkapcsolva",DISCONNECTING:"Sz\xe9tkapcsol\xf3d\xe1s",ERROR:"Hiba",RECONNECTING:"H\xe1l\xf3zati hiba t\xf6rt\xe9nt. \xdajracsatlakoz\xe1s..."},connectionindicator:{address:"C\xedm:",bandwidth:"Becs\xfclt s\xe1vsz\xe9less\xe9g:",bitrate:"Bitsebess\xe9g:",bridgeCount:"Kiszolg\xe1l\xf3 sz\xe1ma: ",connectedTo:"Kapcsol\xf3dva ehhez:",framerate:"K\xe9pkockasebess\xe9g:",less:"Kevesebb megjelen\xedt\xe9se",localaddress:"Helyi c\xedm:",localaddress_plural:"Helyi c\xedmek:",localport:"Helyi port:",localport_plural:"Helyi portok:",more:"T\xf6bb megjelen\xedt\xe9se",packetloss:"Csomagveszt\xe9s:",quality:{good:"J\xf3",inactive:"Inakt\xedv",lost:"Elveszett",nonoptimal:"Nem optim\xe1lis",poor:"Sil\xe1ny"},remoteaddress:"T\xe1voli c\xedm:",remoteaddress_plural:"T\xe1voli c\xedmek:",remoteport:"T\xe1voli port:",remoteport_plural:"T\xe1voli portok:",resolution:"Felbont\xe1s:",status:"Kapcsolat:",transport:"\xc1tvitel:",transport_plural:"\xc1tvitel:"},dateUtils:{earlier:"Kor\xe1bban",today:"Ma",yesterday:"Tegnap"},deepLinking:{appNotInstalled:"Sz\xfcks\xe9g van a {{app}} mobilapplik\xe1ci\xf3ra az \xe9rtekezlethez val\xf3 telefonos csatlakoz\xe1sra.",description:"Semmi sem t\xf6rt\xe9nt? Megpr\xf3b\xe1ltuk az \xe9rtekezletet a {{app}} asztali alkalmaz\xe1sban elind\xedtani. Pr\xf3b\xe1lja ezt \xfajra vagy a {{app}} webes applik\xe1ci\xf3ban ind\xedtani.",descriptionWithoutWeb:"Semmi sem t\xf6rt\xe9nt? Megpr\xf3b\xe1ltuk az \xe9rtekezletet a {{app}} asztali alkalmaz\xe1sban elind\xedtani.",downloadApp:"Applik\xe1ci\xf3 let\xf6lt\xe9se",launchWebButton:"Ind\xedt\xe1s weben",openApp:"Tov\xe1bbl\xe9p\xe9s az applik\xe1ci\xf3hoz",title:"\xc9rtekezlet ind\xedt\xe1sa a {{app}} applik\xe1ci\xf3ban...",tryAgainButton:"\xdajb\xf3li pr\xf3b\xe1lkoz\xe1s az asztali v\xe1ltozatban"},defaultLink:"pl.: {{url}}",defaultNickname:"pl.: Minta Mikl\xf3s",deviceError:{cameraError:"A kamer\xe1hoz val\xf3 hozz\xe1f\xe9r\xe9s meghi\xfasult",cameraPermission:"Hiba t\xf6rt\xe9nt a kamera enged\xe9lyeztet\xe9se sor\xe1n",microphoneError:"A mikrofonhoz val\xf3 hozz\xe1f\xe9r\xe9s meghi\xfasult",microphonePermission:"Hiba t\xf6rt\xe9nt a mikrofon enged\xe9lyeztet\xe9se sor\xe1n"},deviceSelection:{noPermission:"Nem lett enged\xe9lyezve",previewUnavailable:"Nincs el\u0151n\xe9zet",selectADevice:"Eszk\xf6z kijel\xf6l\xe9se",testAudio:"Teszthang lej\xe1tsz\xe1sa"},dialog:{accessibilityLabel:{liveStreaming:"\xc9l\u0151 k\xf6zvet\xedt\xe9s"},allow:"Enged\xe9lyez",alreadySharedVideoMsg:"Egy m\xe1sik r\xe9sztvev\u0151 is videot oszt meg. E konferencia sz\xe1m\xe1ra csak egy videomegoszt\xe1s enged\xe9lyezett.",alreadySharedVideoTitle:"Egyszerre csak egy videomegoszt\xe1s enged\xe9lyez\xe9se",applicationWindow:"Alkalmaz\xe1sablak",Back:"Vissza",cameraConstraintFailedError:"A kamera nem felel meg bizonyos kik\xf6t\xe9seknek.",cameraNotFoundError:"Nem tal\xe1lhat\xf3 kamera.",cameraNotSendingData:"Nem siker\xfclt hozz\xe1f\xe9rni kamer\xe1hoz. K\xe9rem, ellen\u0151rizze, hogy egy m\xe1sik alkalmaz\xe1s nem haszn\xe1lja-e a kamer\xe1t, vagy tess\xe9k egy m\xe1sik eszk\xf6z kijel\xf6lni a be\xe1ll\xedt\xe1sok men\xfcben vagy esetleg \xe9rdemes \xfajrat\xf6lteni az applik\xe1ci\xf3t.",cameraNotSendingDataTitle:"Nem lehet hozz\xe1f\xe9rni a kamer\xe1hoz",cameraPermissionDeniedError:"Nem adott enged\xe9lyt a kamera haszn\xe1lat\xe1hoz. Csatlakozhat a besz\xe9lget\xe9shez, de a t\xf6bbiek nem fogj\xe1k \xd6nt l\xe1tni. A c\xedmsorban l\xe9v\u0151 kamera ikonnal lehet ezt helyrehozni.",cameraUnknownError:"Ismeretlen ok miatt nem lehet a kamer\xe1t haszn\xe1lni.",cameraUnsupportedResolutionError:"A kamera nem t\xe1mogatja a sz\xfcks\xe9ges videofelbont\xe1st.",Cancel:"M\xe9gsem",close:"Bez\xe1r\xe1s",conferenceDisconnectMsg:"Ellen\u0151rizni kellene a h\xe1l\xf3zati kapcsolatokat. \xdajracsatlakoz\xe1s {{seconds}} m\xe1sodperc m\xfalva...",conferenceDisconnectTitle:"Lecsatlakozott.",conferenceReloadMsg:"Pr\xf3b\xe1lkoz\xe1s a hiba jav\xedt\xe1s\xe1ra. \xdajracsatlakoz\xe1s {{seconds}} m\xe1sodperc m\xfalva...",conferenceReloadTitle:"Sajnos valami f\xe9lresiker\xfclt.",confirm:"Meger\u0151s\xedt\xe9s",confirmNo:"Nem",confirmYes:"Igen",connectError:"Hopp\xe1! Valami elromlott \xe9s nem lehetett kapcsol\xf3dni a konferenci\xe1hoz.",connectErrorWithMsg:"Hopp\xe1! Valami elromlott \xe9s nem lehetett kapcsol\xf3dni a konferenci\xe1hoz: {{msg}}",connecting:"Kapcsol\xf3d\xe1s",contactSupport:"\xdcgyf\xe9lszolg\xe1lat",copy:"M\xe1sol\xe1s",dismiss:"Elutas\xedt\xe1s",displayNameRequired:"Hell\xf3! Mi a neve?",done:"K\xe9sz",enterDisplayName:"Adja meg itt a nev\xe9t",error:"Hiba",externalInstallationMsg:"Telep\xedteni kell a munkaasztal megoszt\xe1s\xe1ra val\xf3 kiterjeszt\xe9st.",externalInstallationTitle:"Kiterjeszt\xe9sre van sz\xfcks\xe9g",goToStore:"Ugr\xe1s az alkalmaz\xe1sbolthoz",gracefulShutdown:"Jelenleg a szolg\xe1ltat\xe1s karbantart\xe1s miatt nem el\xe9rhet\u0151. K\xe9s\u0151bb pr\xf3b\xe1lja meg ism\xe9t.",IamHost:"\xc9n vagyok a szervez\u0151",incorrectRoomLockPassword:"Helytelen jelsz\xf3",incorrectPassword:"Helytelen felhaszn\xe1l\xf3i n\xe9v \xe9s jelsz\xf3",inlineInstallationMsg:"Telep\xedteni kell a munkaasztal megoszt\xe1s\xe1ra val\xf3 kiterjeszt\xe9st.",inlineInstallExtension:"Telep\xedt\xe9s azonnal",internalError:"Hopp\xe1! Valami elromlott. Az al\xe1bbi hiba t\xf6rt\xe9nt: {{error}}",internalErrorTitle:"Bels\u0151 hiba",kickMessage:"Tov\xe1bbi r\xe9szletek k\xe9rhet\u0151k a {{participantDisplayName}} r\xe9sztvev\u0151t\u0151l.",kickParticipantButton:"Kir\xfag\xe1s",kickParticipantDialog:"Val\xf3ban kir\xfaghat\xf3 ez a r\xe9sztvev\u0151?",kickParticipantTitle:"R\xe9sztvev\u0151 kir\xfag\xe1sa?",kickTitle:"Jaj! {{participantDisplayName}} kir\xfagta \xd6nt az \xe9rtekezletr\u0151l",liveStreaming:"\xc9l\u0151 k\xf6zvet\xedt\xe9s",liveStreamingDisabledForGuestTooltip:"A vend\xe9gek nem kezdhetnek \xe9l\u0151 k\xf6zvet\xedt\xe9st.",liveStreamingDisabledTooltip:"Az \xe9l\u0151 k\xf6zvet\xedt\xe9s ind\xedt\xe1sa le van tiltva.",lockMessage:"A konferencia z\xe1rol\xe1sa meghi\xfasult.",lockRoom:"\xc9rtekezlet $t(lockRoomPasswordUppercase) hozz\xe1ad\xe1sa",lockTitle:"Z\xe1rol\xe1s meghi\xfasult",logoutQuestion:"Val\xf3ban ki akar l\xe9pni \xe9s le\xe1ll\xedtja a konferenci\xe1t?",logoutTitle:"Kil\xe9p\xe9s",maxUsersLimitReached:"A lehets\xe9ges r\xe9sztvev\u0151k maxim\xe1lis sz\xe1ma el\xe9rve. A konferencia tele van. L\xe9pjen kapcsolatba az \xe9rtekezlet tulajdonos\xe1val vagy pr\xf3b\xe1lkozzon k\xe9s\u0151bb!",maxUsersLimitReachedTitle:"A lehets\xe9ges r\xe9sztvev\u0151k maxim\xe1lis sz\xe1ma el\xe9rve",micConstraintFailedError:"A mikrofon nem felel meg bizonyos kik\xf6t\xe9seknek.",micNotFoundError:"Nem tal\xe1lhat\xf3 mikrofon.",micNotSendingData:"A sz\xe1m\xedt\xf3g\xe9p be\xe1ll\xedt\xe1sai k\xf6z\xf6tt kell visszahangos\xedtani a mikrofont vagy be\xe1ll\xedtani a hangfelv\xe9tel szintj\xe9t",micNotSendingDataTitle:"A mikrofon le van n\xe9m\xedtva a rendszerbe\xe1ll\xedt\xe1sokban",micPermissionDeniedError:"Nem adott enged\xe9lyt a mikrofon haszn\xe1lat\xe1hoz. Csatlakozhat a besz\xe9lget\xe9shez, de a t\xf6bbiek nem fogj\xe1k \xd6nt hallani. A c\xedmsorban l\xe9v\u0151 kamera ikonnal lehet ezt helyrehozni.",micUnknownError:"Ismeretlen ok miatt nem lehet a mikrofont haszn\xe1lni.",muteParticipantBody:"Nem fogja tudni visszahangos\xedtani, de \u0151 \xf6nmag\xe1t b\xe1rmikor vissza tudja majd hangos\xedtani.",muteParticipantButton:"N\xe9m\xedt\xe1s",muteParticipantDialog:"Val\xf3ban len\xe9m\xedthat\xf3 ez a r\xe9sztvev\u0151? Nem fogja tudni visszahangos\xedtani, de \u0151 \xf6nmag\xe1t b\xe1rmikor vissza tudja majd hangos\xedtani.",muteParticipantTitle:"Len\xe9m\xedthat\xf3 a r\xe9sztvev\u0151?",Ok:"Ok",passwordLabel:"$t(lockRoomPasswordUppercase)",passwordNotSupported:"Az \xe9rtekezlet $t(lockRoomPassword) be\xe1ll\xedt\xe1sa nem t\xe1mogatott.",passwordNotSupportedTitle:"$t(lockRoomPasswordUppercase) nem t\xe1mogatott",passwordRequired:"$t(lockRoomPasswordUppercase) sz\xfcks\xe9ges",popupError:"A b\xf6ng\xe9sz\u0151 blokkolja a felugr\xf3 ablakokat ezen az oldalon. Enged\xe9lyezze a b\xf6ng\xe9sz\u0151 biztons\xe1gi be\xe1ll\xedt\xe1saiban a felugr\xf3 ablakokat \xe9s pr\xf3b\xe1lja \xfajra.",popupErrorTitle:"Felugr\xf3 ablak blokkolva",recording:"Felv\xe9tel",recordingDisabledForGuestTooltip:"Vend\xe9g nem ind\xedthat felv\xe9telt.",recordingDisabledTooltip:"Felv\xe9tel r\xf6gz\xedt\xe9se letiltva.",rejoinNow:"\xdajracsatlakoz\xe1s azonnal",remoteControlAllowedMessage:"{{user}} elfogadta az \xd6n t\xe1voli vez\xe9rl\xe9si k\xe9r\xe9s\xe9t!",remoteControlDeniedMessage:"{{user}} visszautas\xedtotta az \xd6n t\xe1voli vez\xe9rl\xe9si k\xe9r\xe9s\xe9t!",remoteControlErrorMessage:"Hiba t\xf6rt\xe9nt a r\xe9sztvev\u0151h\xf6z {{user}} int\xe9zett t\xe1voli vez\xe9rl\xe9si k\xe9r\xe9s k\xfcld\xe9se k\xf6zben!",remoteControlRequestMessage:"Enged\xe9lyezi {{user}} r\xe9sztvev\u0151nek, hogy t\xe1volr\xf3l vez\xe9relje a munkaasztalt?",remoteControlShareScreenWarning:"Vegye figyelembe, hogy ha megnyomja az \u201eEnged\xe9lyez\xe9s\u201d lehet\u0151s\xe9get, akkor megosztja a k\xe9perny\u0151t!",remoteControlStopMessage:"A t\xe1voli munkamenet ir\xe1ny\xedt\xe1sa befejez\u0151d\xf6tt!",remoteControlTitle:"T\xe1voli asztal vez\xe9rl\xe9se",Remove:"Elt\xe1vol\xedt\xe1s",removePassword:"$t(lockRoomPassword) elt\xe1vol\xedt\xe1sa",removeSharedVideoMsg:"Val\xf3ban elt\xe1vol\xedthat\xf3 a megosztott video?",removeSharedVideoTitle:"Megosztott video elt\xe1vol\xedt\xe1sa",reservationError:"Foglal\xe1si rendszerhiba",reservationErrorMsg:"Hibak\xf3d: {{code}}, \xfczenet: {{msg}}",retry:"\xdajra",screenSharingFailedToInstall:"Hopp\xe1! A k\xe9perny\u0151megoszt\xf3 kiterjeszt\xe9s telep\xedt\xe9se meghi\xfasult.",screenSharingFailedToInstallTitle:"A k\xe9perny\u0151megoszt\xf3 kiterjeszt\xe9s telep\xedt\xe9se meghi\xfasult",screenSharingFirefoxPermissionDeniedError:"Valami elromlott a k\xe9perny\u0151megoszt\xe1s ind\xedt\xe1sa k\xf6zben. Ellen\u0151rizze, hogy megadta-e a sz\xfcks\xe9ges enged\xe9lyeket. ",screenSharingFirefoxPermissionDeniedTitle:"Hopp\xe1! Nem siker\xfclt a k\xe9perny\u0151megoszt\xe1s ind\xedt\xe1sa!",screenSharingPermissionDeniedError:"Hopp\xe1! Valami elromlott a k\xe9perny\u0151megoszt\xe1s kiterjeszt\xe9s jogosults\xe1gaival. T\xf6ltse \xfajra \xe9s k\xeds\xe9relje meg \xfajra.",sendPrivateMessage:"Nemr\xe9g egy csak \xd6nnek sz\xf3l\xf3 \xfczenete \xe9rkezett. A v\xe1lasz\xe1t priv\xe1t \xfczenetk\xe9nt, vagy ink\xe1bb az eg\xe9sz csoportnak akarja elk\xfcldeni?",sendPrivateMessageCancel:"K\xfcld\xe9s a csoportnak",sendPrivateMessageOk:"K\xfcld\xe9s priv\xe1tban",sendPrivateMessageTitle:"Priv\xe1tban legyen elk\xfcldve?",serviceUnavailable:"Szolg\xe1ltat\xe1s nem el\xe9rhet\u0151",sessTerminated:"H\xedv\xe1s megszakadt",Share:"Megoszt\xe1s",shareVideoLinkError:"Adjon meg egy helyes YouTube linket.",shareVideoTitle:"Video megoszt\xe1sa",shareYourScreen:"K\xe9perny\u0151 megoszt\xe1sa",shareYourScreenDisabled:"K\xe9perny\u0151megoszt\xe1s letiltva.",shareYourScreenDisabledForGuest:"Vend\xe9g nem v\xe9gezhet k\xe9perny\u0151megoszt\xe1st.",startLiveStreaming:"\xc9l\u0151 k\xf6zvet\xedt\xe9s kezd\xe9se",startRecording:"Felv\xe9tel ind\xedt\xe1sa",startRemoteControlErrorMessage:"Hiba t\xf6rt\xe9nt a t\xe1voli vez\xe9rl\xe9s munkamenet\xe9nek ind\xedt\xe1sa k\xf6zben!",stopLiveStreaming:"\xc9l\u0151 k\xf6zvet\xedt\xe9s le\xe1ll\xedt\xe1sa",stopRecording:"Felv\xe9tel le\xe1ll\xedt\xe1sa",stopRecordingWarning:"Val\xf3ban le\xe1ll\xedthat\xf3 a felv\xe9tel?",stopStreamingWarning:"Val\xf3ban le\xe1ll\xedthat\xf3 az \xe9l\u0151 k\xf6zvet\xedt\xe9s?",streamKey:"\xc9l\u0151 k\xf6zvet\xedt\xe9s kulcsa",Submit:"Elk\xfcld\xe9s",thankYou:"K\xf6sz\xf6nj\xfck a {{appName}} haszn\xe1lat\xe1t!",token:"jelsor",tokenAuthFailed:"Sajn\xe1ljuk, a csatlakoz\xe1sa nem megengedett ehhez a h\xedv\xe1shoz.",tokenAuthFailedTitle:"Hiteles\xedt\xe9s meghi\xfasult",transcribing:"\xc1tirat k\xe9sz\xedt\xe9se",unlockRoom:"\xc9rtekezlet $t(lockRoomPassword) elt\xe1vol\xedt\xe1sa",userPassword:"felhaszn\xe1l\xf3i jelsz\xf3",WaitForHostMsg:"A {{room}} konferencia m\xe9g nem kezd\u0151d\xf6tt meg. Ha \xd6n a h\xe1zigazda, akkor hiteles\xedtse mag\xe1t. Ellenkez\u0151 esetben, k\xe9rj\xfck v\xe1rjon a h\xe1zigazda \xe9rkez\xe9s\xe9re.",WaitForHostMsgWOk:"A {{room}} konferencia m\xe9g nem kezd\u0151d\xf6tt meg. Ha \xd6n a h\xe1zigazda, k\xe9rj\xfck az \u201eOK\u201d gombra kattintva hiteles\xedtse mag\xe1t. Ellenkez\u0151 esetben, k\xe9rj\xfck v\xe1rjon a h\xe1zigazda \xe9rkez\xe9s\xe9re.",WaitingForHost:"V\xe1rakoz\xe1s a h\xe1zigazd\xe1ra ...",Yes:"Igen",yourEntireScreen:"A teljes k\xe9perny\u0151"},dialOut:{statusMessage:"jelenleg {{status}}"},documentSharing:{title:"Megosztott dokumentum"},feedback:{average:"\xc1tlag",bad:"Rossz",detailsLabel:"Osszon meg vel\xfcnk t\xf6bbet err\u0151l.",good:"J\xf3",rateExperience:"\xc9rt\xe9keld az \xe9rtekezlet \xe9lm\xe9ny\xe9t",veryBad:"Nagyon rossz",veryGood:"Nagyon j\xf3"},incomingCall:{answer:"V\xe1lasz",audioCallTitle:"Bej\xf6v\u0151 h\xedv\xe1s",decline:"Elutas\xedt\xe1s",productLabel:"a Jitsi Meett\u0151l",videoCallTitle:"Bej\xf6v\u0151 videoh\xedv\xe1s"},info:{accessibilityLabel:"Inform\xe1ci\xf3k megjelen\xedt\xe9se",addPassword:"$t(lockRoomPassword) hozz\xe1ad\xe1sa",cancelPassword:"$t(lockRoomPassword) t\xf6rl\xe9se",conferenceURL:"Hivatkoz\xe1s:",country:"Orsz\xe1g",dialANumber:"Az \xe9rtekezlethez val\xf3 csatlakoz\xe1shoz ezeket a sz\xe1mokat kell felt\xe1rcs\xe1zni \xe9s a PIN-k\xf3dot megadni.",dialInConferenceID:"PIN-k\xf3d:",dialInNotSupported:"Sajn\xe1ljuk, a t\xe1rcs\xe1z\xe1s jelenleg nem t\xe1mogatott.",dialInNumber:"Bet\xe1rcs\xe1z\xe1s:",dialInSummaryError:"Hiba a bet\xe1rcs\xe1z\xe1si inform\xe1ci\xf3k lek\xe9rdez\xe9se k\xf6zben. K\xe9s\u0151bb \xe9rdemes \xfajra pr\xf3b\xe1lkozni.",dialInTollFree:"Ingyenes",genericError:"Hopp\xe1, valami elromlott.",inviteLiveStream:"Az \xe9rtekezlet \xe9l\u0151 k\xf6zvet\xedt\xe9s\xe9nek megtekint\xe9se: {{url}}",invitePhone:"Telefonr\xf3l val\xf3 csatlakoz\xe1shoz ezeket kell t\xe1rcs\xe1zni: {{number}},,{{conferenceID}}#\n",invitePhoneAlternatives:"M\xe1s bet\xe1rcs\xe1z\xe1si sz\xe1mot keres?\nL\xe1sd az \xe9rtekezlet bet\xe1rcs\xe1z\xe1si sz\xe1mait: {{url}}\n\n\nHa termi telefonon kereszt\xfcl t\xe1rcs\xe1z, csatlakozhat hang n\xe9lk\xfcl is: {{silentUrl}}",inviteURLFirstPartGeneral:"\xd6nt megh\xedvt\xe1k egy \xe9rtekezletre.",inviteURLFirstPartPersonal:"{{name}} megh\xedvta \xd6nt egy \xe9rtekezletre.\n",inviteURLSecondPart:"\nCsatlakoz\xe1s az \xe9rtekezlethez:\n{{url}}\n",liveStreamURL:"\xc9l\u0151 k\xf6zvet\xedt\xe9s:",moreNumbers:"Tov\xe1bbi sz\xe1mok",noNumbers:"Nincsenek bet\xe1rcs\xe1z\xe1si sz\xe1mok.",noPassword:"Nincs",noRoom:"Nem volt szoba megadva, amelybe be lehetne l\xe9pni.",numbers:"Bet\xe1rcs\xe1z\xe1si sz\xe1mok",password:"$t(lockRoomPasswordUppercase):",title:"Megoszt\xe1s",tooltip:"Az \xe9rtekezlet hivatkoz\xe1s\xe1nak \xe9s beh\xedv\xf3 inform\xe1ci\xf3inak megoszt\xe1sa",label:"\xc9rtekezlet inform\xe1ci\xf3i"},inviteDialog:{alertText:"N\xe9h\xe1ny r\xe9sztvev\u0151 megh\xedv\xe1sa meghi\xfasult.",header:"Megh\xedv\xe1s",searchCallOnlyPlaceholder:"Telefonsz\xe1m megad\xe1sa",searchPeopleOnlyPlaceholder:"R\xe9sztvev\u0151k keres\xe9se",searchPlaceholder:"R\xe9sztvev\u0151 vagy telefonsz\xe1m",send:"K\xfcld\xe9s"},inlineDialogFailure:{msg:"Hiba t\xf6rt\xe9nt.",retry:"\xdajrapr\xf3b\xe1lkoz\xe1s",support:"T\xe1mogat\xe1s",supportMsg:"Ism\xe9telt hiba eset\xe9n \xe9rdemes kapcsolatba l\xe9pnie"},keyboardShortcuts:{focusLocal:"F\xf3kusz a saj\xe1t videomra",focusRemote:"F\xf3kusz egy m\xe1sik szem\xe9ly videoj\xe1ra",fullScreen:"Bel\xe9p\xe9s vagy kil\xe9p\xe9s a teljes k\xe9perny\u0151b\u0151l",keyboardShortcuts:"Gyorsbillenty\u0171k",localRecording:"Helyi r\xf6gz\xedt\xe9si vez\xe9rl\u0151elemek megjelen\xedt\xe9se vagy elrejt\xe9se",mute:"Mikrofon n\xe9m\xedt\xe1sa vagy visszahangos\xedt\xe1sa",pushToTalk:"Push to talk",raiseHand:"K\xe9z felemel\xe9se vagy leenged\xe9se",showSpeakerStats:"Besz\xe9d statisztik\xe1k megjelen\xedt\xe9se",toggleChat:"Cseveg\xe9s megnyit\xe1sa vagy bez\xe1r\xe1sa",toggleFilmstrip:"Video b\xe9lyegk\xe9pek megjelen\xedt\xe9se vagy elrejt\xe9se",toggleScreensharing:"V\xe1lt\xe1s kamera \xe9s k\xe9perny\u0151megoszt\xe1s k\xf6z\xf6tt",toggleShortcuts:"Gyorsbillenty\u0171k megjelen\xedt\xe9se vagy elrejt\xe9se",videoMute:"Kamera elind\xedt\xe1sa vagy le\xe1ll\xedt\xe1sa",videoQuality:"H\xedv\xe1s min\u0151s\xe9g\xe9nek kezel\xe9se"},liveStreaming:{busy:"Dolgozunk a k\xf6zvet\xedt\xe9si er\u0151forr\xe1sok felszabad\xedt\xe1s\xe1n. K\xeds\xe9relje meg \xfajra n\xe9h\xe1ny perc m\xfalva.",busyTitle:"Jelenleg minden k\xf6zvet\xedt\u0151 foglalt",changeSignIn:"Fi\xf3k v\xe1lt\xe1sa.",choose:"\xc9l\u0151 k\xf6zvet\xedt\xe9s kijel\xf6l\xe9se",chooseCTA:"V\xe1lasszon egy k\xf6zvet\xedt\xe9si opci\xf3t. \xd6n jelenleg {{email}} c\xedmmel van bel\xe9pve.",enterStreamKey:"Adja meg itt a YouTube \xe9l\u0151 k\xf6zvet\xedt\xe9si kulcsot.",error:"Az \xe9l\u0151 k\xf6zvet\xedt\xe9s meghi\xfasult. Pr\xf3b\xe1lja \xfajra.",errorAPI:"Hiba t\xf6rt\xe9nt a YouTube ad\xe1s el\xe9r\xe9se k\xf6zben. Pr\xf3b\xe1ljon meg \xfajra bel\xe9pni.",errorLiveStreamNotEnabled:"Az \xe9l\u0151 k\xf6zvet\xedt\xe9s nincs enged\xe9lyezve ezzel az email c\xedmmel: {{email}}. Enged\xe9lyezze az \xe9l\u0151 k\xf6zvet\xedt\xe9st vagy l\xe9pjen be egy m\xe1sik felhaszn\xe1l\xf3val, ahol az enged\xe9lyezve van.",expandedOff:"Az \xe9l\u0151 k\xf6zvet\xedt\xe9s le\xe1llt",expandedOn:"Az \xe9rtekezlet jelenleg k\xf6zvet\xedtve van a YouTube-on.",expandedPending:"Az \xe9lv\u0151 k\xf6zvet\xedt\xe9s elindult...",failedToStart:"Az \xe9lv\u0151 k\xf6zvet\xedt\xe9s ind\xedt\xe1sa meghi\xfasult",getStreamKeyManually:"Nem lehet semmilyen \xe9l\u0151 k\xf6zvet\xedt\xe9st let\xf6lteni. Az \xe9l\u0151 k\xf6zvet\xedt\xe9shez sz\xfcks\xe9ges kulcsot a Youtube-t\xf3l lehet beszerezni.",invalidStreamKey:"Az \xe9l\u0151 k\xf6zvet\xedt\xe9si kulcs val\xf3sz\xedn\u0171leg hib\xe1s.",off:"\xc9l\u0151 k\xf6zvet\xedt\xe9s le\xe1llt",offBy:"{{name}} le\xe1ll\xedtotta az \xe9l\u0151 k\xf6zvet\xedt\xe9st",on:"\xc9l\u0151 k\xf6zvet\xedt\xe9s",onBy:"{{name}} elind\xedtotta az \xe9l\u0151 k\xf6zvet\xedt\xe9st",pending:"\xc9l\u0151 k\xf6zvet\xedt\xe9s kezd\xe9se...",serviceName:"\xc9l\u0151 k\xf6zvet\xedt\xe9si szolg\xe1ltat\xe1s",signedInAs:"Jelenleg bejelentkezve mint:",signIn:"Bejelentkez\xe9s a Google-lel",signInCTA:"Jelentkezzen be vagy adja meg a \xe9l\u0151 k\xf6zvet\xedt\xe9si kulcsot a YouTube-r\xf3l.",signOut:"Kil\xe9p\xe9s",start:"\xc9l\u0151 k\xf6zvet\xedt\xe9s kezd\xe9se",streamIdHelp:"Mi ez?",unavailableTitle:"\xc9l\u0151 k\xf6zvet\xedt\xe9s el\xe9rhetetlen"},localRecording:{clientState:{off:"Kikapcsolva",on:"Bekapcsolva",unknown:"Ismeretlen"},dialogTitle:"Helyi felv\xe9tel vez\xe9rl\u0151elemei",duration:"Id\u0151tartam",durationNA:"N/A",encoding:"K\xf3dol\xe1s",label:"HeF",labelToolTip:"Helyi felv\xe9tel aktiv\xe1lva",localRecording:"Helyi felv\xe9tel",me:"\xc9n",messages:{engaged:"Helyi felv\xe9tel aktiv\xe1lva.",finished:"A {{token}} r\xf6gz\xedt\xe9si munkamenet befejez\u0151d\xf6tt. K\xfcldje el a r\xf6gz\xedtett f\xe1jlt a moder\xe1tornak.",finishedModerator:"A {{token}} r\xf6gz\xedt\xe9si munkamenet befejez\u0151d\xf6tt. A helyi s\xe1v r\xf6gz\xedt\xe9sre ker\xfclt. K\xe9rje el a t\xf6bbi r\xe9sztvev\u0151t\u0151l, amit r\xf6gz\xedtettek.",notModerator:"\xd6n nem moder\xe1tor. Nem tudja elind\xedtani vagy le\xe1ll\xedtani a helyi felv\xe9telt."},moderator:"Moder\xe1tor",no:"Nem",participant:"R\xe9sztvev\u0151",participantStats:"R\xe9sztvev\u0151i statisztika",sessionToken:"Munkamenet jelsor",start:"Felv\xe9tel ind\xedt\xe1sa",stop:"Felv\xe9tel le\xe1ll\xedt\xe1sa",yes:"Igen"},lockRoomPassword:"jelsz\xf3",lockRoomPasswordUppercase:"Jelsz\xf3",me:"\xe9n",notify:{connectedOneMember:"{{name}} bekapcsol\xf3dott az \xe9rtekezletbe",connectedThreePlusMembers:"{{name}} \xe9s {{count}} m\xe1sik r\xe9sztvev\u0151 kapcsol\xf3dott az \xe9rtekezlethez",connectedTwoMembers:"{{first}} \xe9s {{second}} bekapcsol\xf3dott az \xe9rtekezletbe",disconnected:"sz\xe9tkapcsolva",focus:"Konferencia f\xf3kusza",focusFail:"{{component}} nem el\xe9rhet\u0151 \u2013 \xfajrapr\xf3b\xe1lkoz\xe1s {{ms}} m\xe1sodperc m\xfalva",grantedTo:"Moder\xe1tori jogok biztos\xedtva {{to}} sz\xe1m\xe1ra!",invitedOneMember:"{{name}} meg lett h\xedvva",invitedThreePlusMembers:"{{name}} \xe9s {{count}} m\xe1sik felhaszn\xe1l\xf3 meg lett h\xedvva",invitedTwoMembers:"{{first}} \xe9s {{second}} lett megh\xedvva",kickParticipant:"{{kicked}} r\xe9sztvev\u0151t kir\xfagta {{kicker}}",me:"\xc9n",moderator:"Moder\xe1tori jogok biztos\xedtva!",muted:"A besz\xe9lget\xe9st len\xe9m\xedtva kezdte meg.",mutedTitle:"Le lett n\xe9m\xedtva!",mutedRemotelyTitle:"{{participantDisplayName}} len\xe9m\xedtotta \xd6nt!",mutedRemotelyDescription:"B\xe1rmikor visszahangos\xedthatja mag\xe1t, ha k\xe9szen \xe1ll a besz\xe9dre. N\xe9m\xedtsa le mag\xe1t ism\xe9t, ha a felesleges zajokt\xf3l meg k\xedv\xe1nja v\xe9deni az \xe9rtekezletet.",passwordRemovedRemotely:"$t(lockRoomPasswordUppercase) egy m\xe1sik r\xe9sztvev\u0151 \xe1ltal elt\xe1vol\xedtva",passwordSetRemotely:"$t(lockRoomPasswordUppercase) egy m\xe1sik r\xe9sztvev\u0151 \xe1ltal be\xe1ll\xedtva",raisedHand:"{{name}} besz\xe9lni szeretne.",somebody:"Valaki",startSilentTitle:"Hang n\xe9lk\xfcl csatlakozott!",startSilentDescription:"Csatlakozzon \xfajra a hang enged\xe9lyez\xe9s\xe9hez",suboptimalBrowserWarning:"Sajn\xe1ljuk, de nem nagy \xe9lm\xe9ny \xedgy csatlakozni a konferenci\xe1hoz. Keress\xfck a megold\xe1st, de addig is, \xe9rdemes ink\xe1bb egy teljesen t\xe1mogatott b\xf6ng\xe9sz\u0151vel csatlakozni.",suboptimalExperienceTitle:"B\xf6ng\xe9sz\u0151hiba",unmute:"Visszahangos\xedt\xe1s",newDeviceCameraTitle:"\xdaj kamera \xe9szlelve",newDeviceAudioTitle:"\xdaj hangeszk\xf6z \xe9szlelve",newDeviceAction:"Alkalmaz"},passwordSetRemotely:"egy m\xe1sik r\xe9sztvev\u0151 \xe1ltal be\xe1ll\xedtva",passwordDigitsOnly:"Legfeljebb {{number}} sz\xe1m",poweredby:"M\u0171k\xf6dteti:",presenceStatus:{busy:"Foglalt",calling:"H\xedv\xe1s...",connected:"Kapcsol\xf3dva",connecting:"Kapcsol\xf3d\xe1s...",connecting2:"Kapcsol\xf3d\xe1s*...",disconnected:"Sz\xe9tkapcsolva",expired:"Lej\xe1rt",ignored:"Figyelmen k\xedv\xfcl hagyva",initializingCall:"H\xedv\xe1s ind\xedt\xe1sa...",invited:"Megh\xedvva",rejected:"Elutas\xedtva",ringing:"Cs\xf6rget\xe9s..."},profile:{setDisplayNameLabel:"\xc1ll\xedtsa be a megjelen\u0151 nevet",setEmailInput:"Adjon meg egy e-mail c\xedmet",setEmailLabel:"Adja meg a gravatar e-mail c\xedmet",title:"Profil"},raisedHand:"Besz\xe9lni szeretn\xe9k",recording:{authDropboxText:"Felt\xf6lt\xe9s Dropboxra",availableSpace:"El\xe9rhet\u0151 hely: {{spaceLeft}} MB (k\xf6r\xfclbel\xfcl {{duration}} perc felv\xe9tel)",beta:"B\xc9TA",busy:"Dolgozunk a r\xf6gz\xedt\xe9si er\u0151forr\xe1sok felszabad\xedt\xe1s\xe1n. K\xeds\xe9relje meg \xfajra n\xe9h\xe1ny perc m\xfalva.",busyTitle:"Jelenleg minden r\xf6gz\xedt\u0151 foglalt",error:"A felv\xe9tel meghi\xfasult. Pr\xf3b\xe1lja \xfajra.",expandedOff:"A felv\xe9tel le\xe1llt",expandedOn:"Az \xe9rtekezlet jelenleg r\xf6gz\xedt\xe9s alatt \xe1ll.",expandedPending:"A felv\xe9tel elindult...",failedToStart:"A felv\xe9tel ind\xedt\xe1sa meghi\xfasult",fileSharingdescription:"Felv\xe9tel megoszt\xe1sa az \xe9rtekezlet r\xe9sztvev\u0151ivel",live:"\xc9L\u0150",loggedIn:"Bel\xe9pve mint {{userName}}",off:"Felv\xe9tel le\xe1ll\xedtva",offBy:"{{name}} le\xe1ll\xedtotta a felv\xe9telt",on:"Felv\xe9tel",onBy:"{{name}} elind\xedtotta a felv\xe9telt",pending:"\xc9rtekezlet r\xf6gz\xedt\xe9s\xe9nek el\u0151k\xe9sz\xedt\xe9se...",rec:"REC",serviceDescription:"A felv\xe9telt a r\xf6gz\xedt\xe9si szolg\xe1ltat\xe1s veszi fel",serviceName:"Felv\xe9tel szolg\xe1ltat\xe1s",signIn:"Bel\xe9p\xe9s",signOut:"Kil\xe9p\xe9s",unavailable:"Hopp\xe1! A {{serviceName}} szolg\xe1ltat\xe1s jelenleg nem el\xe9rhet\u0151. Dolgozunk a hiba elh\xe1r\xedt\xe1s\xe1n. Pr\xf3b\xe1lja meg k\xe9s\u0151bb.",unavailableTitle:"Felv\xe9tel nem el\xe9rhet\u0151"},sectionList:{pullToRefresh:"H\xfaz\xe1s a friss\xedt\xe9shez"},settings:{calendar:{about:"A {{appName}} napt\xe1rintegr\xe1ci\xf3 a napt\xe1r biztons\xe1gos el\xe9r\xe9s\xe9re szolg\xe1l, \xedgy olvasni tudja a soron k\xf6vetkez\u0151 esem\xe9nyeket.",disconnect:"Sz\xe9tkapcsol\xe1s",microsoftSignIn:"Bejelentkez\xe9s a Microsofttal",signedIn:"Jelenleg ehhez az c\xedmhez tartoz\xf3 napt\xe1r esem\xe9nyei \xe9rhet\u0151ek el: {{email}}. Al\xe1bb a \u201esz\xe9tkapcsol\xe1s\u201d gombra kattintva lehet le\xe1ll\xedtani a napt\xe1r esem\xe9nyeinek el\xe9r\xe9s\xe9t.",title:"Napt\xe1r"},devices:"Eszk\xf6z\xf6k",followMe:"Mindenki engem k\xf6vessen",language:"Nyelv",loggedIn:"Bel\xe9pve mint {{name}}",moderator:"Moder\xe1tor",more:"T\xf6bb",name:"N\xe9v",noDevice:"Nincs",selectAudioOutput:"Hangkimenet",selectCamera:"Kamera",selectMic:"Mikrofon",startAudioMuted:"Mindenki len\xe9m\xedtva kezd",startVideoMuted:"Mindenki video n\xe9lk\xfcl kezd",title:"Be\xe1ll\xedt\xe1sok"},settingsView:{advanced:"Halad\xf3",alertOk:"OK",alertTitle:"Figyelmeztet\xe9s",alertURLText:"A megadott kiszolg\xe1l\xf3 URL-je \xe9rv\xe9nytelen",buildInfoSection:"Ford\xedt\xe1si inform\xe1ci\xf3k",conferenceSection:"Konferencia",disableCallIntegration:"A nat\xedv h\xedv\xe1sok integr\xe1ci\xf3j\xe1nak letilt\xe1sa",disableP2P:"Kapcsolja ki a peer-to-peer m\xf3dot",displayName:"Megjelen\u0151 n\xe9v",email:"E-mail",header:"Be\xe1ll\xedt\xe1sok",profileSection:"Profil",serverURL:"Kiszolg\xe1l\xf3 URL",showAdvanced:"Speci\xe1lis be\xe1ll\xedt\xe1sok megjelen\xedt\xe9se",startWithAudioMuted:"Kezd\xe9s a hang len\xe9m\xedt\xe1s\xe1val",startWithVideoMuted:"Kezd\xe9s a video letilt\xe1s\xe1val",version:"Verzi\xf3"},share:{dialInfoText:"\n\n=====\n\nA saj\xe1t telefonj\xe1n szeretne bet\xe1rcs\xe1zni?\n\n{{defaultDialInNumber}}Az \xe9rtekezlet bet\xe1rcs\xe1z\xe1si sz\xe1ma erre a hivatkoz\xe1sra kattintva tekinthet\u0151 meg\n{{dialInfoPageUrl}}",mainText:"Az al\xe1bbi hivatkoz\xe1sra kattintva lehet csatlakozni az \xe9rtkezlethez:\n{{roomUrl}}"},speaker:"Hangsz\xf3r\xf3",speakerStats:{hours:"{{count}} h",minutes:"{{count}} perc",name:"N\xe9v",seconds:"{{count}} mp",speakerStats:"Besz\xe9l\u0151 statisztika",speakerTime:"Besz\xe9l\u0151 ideje"},startupoverlay:{policyText:" ",title:"A {{app}} haszn\xe1lni szeretn\xe9 a mikrofont \xe9s a kamer\xe1t."},suspendedoverlay:{rejoinKeyTitle:"\xdajracsatlakoz\xe1s",text:"Az \xfajracsatlakoz\xe1s gombbal lehet ism\xe9telten csatlakozni.",title:"A videoh\xedv\xe1s megszakadt, mivel ez a sz\xe1m\xedt\xf3g\xe9p al\xf3 \xe1llapotba helyezte mag\xe1t."},toolbar:{accessibilityLabel:{audioOnly:"Csak a hang \xe1tv\xe1lt\xe1sa",audioRoute:"Hangeszk\xf6z kijel\xf6l\xe9se",callQuality:"Vide\xf3min\u0151s\xe9g kezel\xe9se",cc:"Feliratok \xe1tv\xe1lt\xe1sa",chat:"Cseveg\xe9s ablak \xe1tv\xe1lt\xe1sa",document:"Megosztott dokumentum \xe1tv\xe1lt\xe1sa",download:"Alkalmaz\xe1s let\xf6lt\xe9se",feedback:"Visszajelz\xe9s k\xfcld\xe9se",fullScreen:"Teljes k\xe9perny\u0151 \xe1tv\xe1lt\xe1sa",hangup:"Besz\xe9lget\xe9s elhagy\xe1sa",help:"S\xfag\xf3",invite:"Szem\xe9lyek megh\xedv\xe1sa",kick:"R\xe9sztvev\u0151 kir\xfag\xe1sa",localRecording:"Helyi felv\xe9tel vez\xe9rl\u0151elemeinek \xe1tv\xe1lt\xe1sa",lockRoom:"\xc9rtekezlet jelszav\xe1nak \xe1tv\xe1lt\xe1sa",moreActions:"Tov\xe1bbi m\u0171veltek men\xfc \xe1tv\xe1lt\xe1sa",moreActionsMenu:"Tov\xe1bbi m\u0171veltek men\xfc",mute:"Hang n\xe9m\xedt\xe1s\xe1nak \xe1tv\xe1lt\xe1sa",pip:"K\xe9p \xe9s k\xe9pben m\xf3d \xe1tv\xe1lt\xe1sa",privateMessage:"Priv\xe1t \xfczenet k\xfcld\xe9se",profile:"Adja meg a profilj\xe1t",raiseHand:"K\xe9z felemel\xe9s\xe9nek \xe1tv\xe1lt\xe1sa",recording:"Felv\xe9tel \xe1tv\xe1lt\xe1sa",remoteMute:"R\xe9sztvev\u0151k n\xe9m\xedt\xe1sa",Settings:"Be\xe1ll\xedt\xe1sok \xe1tv\xe1lt\xe1sa",sharedvideo:"YouTube video megoszt\xe1s\xe1nak \xe1tv\xe1lt\xe1sa",shareRoom:"Valaki megh\xedv\xe1sa",shareYourScreen:"K\xe9perny\u0151megoszt\xe1s \xe1tv\xe1lt\xe1sa",shortcuts:"Gyorsbillenty\u0171k \xe1tv\xe1lt\xe1sa",show:"Megjelen\xedt\xe9s a sz\xednpadon",speakerStats:"Besz\xe9l\u0151 statisztika \xe1tv\xe1lt\xe1sa",tileView:"Mozaikos n\xe9zet \xe1tv\xe1lt\xe1sa",toggleCamera:"Kamera \xe1tv\xe1lt\xe1sa",videomute:"Video letilt\xe1s\xe1nak \xe1tv\xe1lt\xe1sa",videoblur:"Videoelmos\xe1s \xe1tv\xe1lt\xe1sa"},addPeople:"Szem\xe9ly hozz\xe1ad\xe1sa a h\xedv\xe1shoz",audioOnlyOff:"Alacsony s\xe1vsz\xe9less\xe9g\u0171 m\xf3d letilt\xe1sa",audioOnlyOn:"Alacsony s\xe1vsz\xe9less\xe9g\u0171 m\xf3d enged\xe9lyez\xe9se",audioRoute:"Hangeszk\xf6z kijel\xf6l\xe9se",authenticate:"Hiteles\xedt\xe9s",callQuality:"Videomin\u0151s\xe9g kezel\xe9se",chat:"Cseveg\xe9s megnyit\xe1sa / bez\xe1r\xe1sa",closeChat:"Cseveg\xe9s bez\xe1r\xe1sa",documentClose:"Megosztott dokumentum bez\xe1r\xe1sa",documentOpen:"Megosztott dokumentum megnyit\xe1sa",download:"Alkalmaz\xe1s let\xf6lt\xe9se",enterFullScreen:"Teljes k\xe9perny\u0151s megtekint\xe9s",enterTileView:"Mozaikos n\xe9zet ind\xedt\xe1sa",exitFullScreen:"Kil\xe9p\xe9s a teljes k\xe9perny\u0151b\u0151l",exitTileView:"Kil\xe9p\xe9s a mozaikos n\xe9zetb\u0151l",feedback:"Visszajelz\xe9s k\xfcld\xe9se",hangup:"Kil\xe9p\xe9s",help:"S\xfag\xf3",invite:"Szem\xe9lyek megh\xedv\xe1sa",login:"Bel\xe9p\xe9s",logout:"Kil\xe9p\xe9s",lowerYourHand:"K\xe9z leenged\xe9se",moreActions:"Tov\xe1bbi m\u0171veltek",mute:"N\xe9m\xedt\xe1s / Visszahangos\xedt\xe1s",noAudioSignalTitle:"Nincs bemenet a mikrofonj\xe1r\xf3l!",noAudioSignalDesc:"Ha nem sz\xe1nd\xe9kosan n\xe9m\xedtotta el a rendszerbe\xe1ll\xedt\xe1sokban vagy az eszk\xf6z\xf6n, akkor fontolja meg az eszk\xf6z cser\xe9j\xe9t.",noAudioSignalDescSuggestion:"Ha nem sz\xe1nd\xe9kosan n\xe9m\xedtotta el a rendszerbe\xe1ll\xedt\xe1sokban vagy az eszk\xf6z\xf6n, akkor fontolja meg a k\xf6vetkez\u0151 eszk\xf6z haszn\xe1lat\xe1t:",openChat:"Cseveg\xe9s megnyit\xe1sa",pip:"Bel\xe9p\xe9s k\xe9p a k\xe9pben m\xf3dba",privateMessage:"Priv\xe1t \xfczenet k\xfcld\xe9se",profile:"Adja meg a profilj\xe1t",raiseHand:"K\xe9z felemel\xe9se / leenged\xe9se",raiseYourHand:"K\xe9z felemel\xe9se",Settings:"Be\xe1ll\xedt\xe1sok",sharedvideo:"YouTube video megoszt\xe1sa",shareRoom:"Valaki megh\xedv\xe1sa",shortcuts:"Gyorsbillenty\u0171k megtekint\xe9se",speakerStats:"Besz\xe9l\u0151 statisztika",startScreenSharing:"K\xe9perny\u0151megoszt\xe1s kezd\xe9se",startSubtitles:"Feliratok kezd\xe9se",stopScreenSharing:"K\xe9perny\u0151megoszt\xe1s le\xe1ll\xedt\xe1sa",stopSubtitles:"Felirat le\xe1ll\xedt\xe1sa",stopSharedVideo:"YouTube video le\xe1ll\xedt\xe1sa",talkWhileMutedPopup:"\xdagy t\u0171nik besz\xe9lni szeretne, de le van n\xe9m\xedtva.",tileViewToggle:"Mozaikos n\xe9zet \xe1tv\xe1lt\xe1sa",toggleCamera:"Kamera \xe1tv\xe1lt\xe1sa",videomute:"Kamera ind\xedt\xe1sa / le\xe1ll\xedt\xe1sa",startvideoblur:"H\xe1tt\xe9r elhom\xe1lyos\xedt\xe1sa",stopvideoblur:"H\xe1tt\xe9r elhom\xe1lyos\xedt\xe1s\xe1nak letilt\xe1sa"},transcribing:{ccButtonTooltip:"Feliratok ind\xedt\xe1sa / le\xe1ll\xedt\xe1sa",error:"\xc1t\xedrat meghi\xfasult. Pr\xf3b\xe1lja meg ism\xe9t.",expandedLabel:"Az \xe1tirat jelenleg be van kapcsolva",failedToStart:"Meghi\xfasult az \xe1tirat kezd\xe9se",labelToolTip:"Az \xe9rtekezlet \xe1tirata elkezd\u0151d\xf6tt",off:"Az \xe1tirat k\xe9sz\xedt\xe9se le lett \xe1ll\xedtva",pending:"El\u0151k\xe9sz\xfclet az \xe9rtekezlet \xe1tirat\xe1nak k\xe9sz\xedt\xe9s\xe9re...",start:"Felirat megjelen\xedt\xe9s\xe9nek kezd\xe9se",stop:"Felirat megjelen\xedt\xe9s\xe9nek befejez\xe9se",tr:"\xc1tirat"},userMedia:{androidGrantPermissions:"V\xe1laszd az Enged\xe9lyez\xe9s opci\xf3t, ha a b\xf6ng\xe9sz\u0151 enged\xe9lyt k\xe9r.",chromeGrantPermissions:"V\xe1laszd az Enged\xe9lyez\xe9s opci\xf3t, ha a b\xf6ng\xe9sz\u0151 enged\xe9lyt k\xe9r.",edgeGrantPermissions:"V\xe1laszd az Igen opci\xf3t, ha a b\xf6ng\xe9sz\u0151 hozz\xe1f\xe9r\xe9st k\xe9r.",electronGrantPermissions:"A kamera \xe9s a mikrofon haszn\xe1lat\xe1t enged\xe9lyezni kell",firefoxGrantPermissions:"V\xe1laszd Kiv\xe1lasztott eszk\xf6z megoszt\xe1sa opci\xf3t, ha a b\xf6ng\xe9sz\u0151 hozz\xe1f\xe9r\xe9st k\xe9r.",iexplorerGrantPermissions:"V\xe1laszd az OK opci\xf3t, ha a b\xf6ng\xe9sz\u0151 enged\xe9lyez\xe9st k\xe9r.",nwjsGrantPermissions:"A kamera \xe9s a mikrofon haszn\xe1lat\xe1t enged\xe9lyezni kell",operaGrantPermissions:"V\xe1laszd az Enged\xe9lyez\xe9s opci\xf3t, ha a b\xf6ng\xe9sz\u0151 enged\xe9lyt k\xe9r.","react-nativeGrantPermissions":"V\xe1laszd az Enged\xe9lyez\xe9s opci\xf3t, ha a b\xf6ng\xe9sz\u0151 enged\xe9lyt k\xe9r.",safariGrantPermissions:"V\xe1laszd az OK opci\xf3t, ha a b\xf6ng\xe9sz\u0151 enged\xe9lyez\xe9st k\xe9r."},videoSIPGW:{busy:"Dolgozunk az er\u0151forr\xe1sok felszabad\xedt\xe1s\xe1n. K\xeds\xe9relje meg \xfajra n\xe9h\xe1ny perc m\xfalva.",busyTitle:"A szoba szolg\xe1ltat\xe1s jelenleg foglalt",errorAlreadyInvited:"{{displayName}} -t m\xe1r megh\xedvt\xe1k",errorInvite:"A konferencia m\xe9g nem lett megalak\xedtva. K\xe9s\u0151bb pr\xf3b\xe1lja \xfajra.",errorInviteFailed:"Dolgozunk a hiba elh\xe1r\xedt\xe1s\xe1n. Pr\xf3b\xe1lja meg k\xe9s\u0151bb.",errorInviteFailedTitle:"{{displayName}} megh\xedv\xe1sa meghi\xfasult",errorInviteTitle:"Hiba a megh\xedv\xf3 szob\xe1val",pending:"{{displayName}} -t megh\xedvta"},videoStatus:{audioOnly:"CsH",audioOnlyExpanded:"Jelenleg az alacsony s\xe1vsz\xe9less\xe9g\u0171 m\xf3d az akt\xedv, vagyis csak hangot lehet fogadni \xe9s k\xe9perny\u0151megoszt\xe1st.",callQuality:"Videomin\u0151s\xe9g",hd:"MF",hdTooltip:"Magas felbont\xe1s\xfa video megtekint\xe9se",highDefinition:"Magas felbont\xe1s\xfa",labelTooiltipNoVideo:"Nincs video",labelTooltipAudioOnly:"Alacsony s\xe1vsz\xe9less\xe9g\u0171 m\xf3d aktiv\xe1lva",ld:"AF",ldTooltip:"Alacsony felbont\xe1s\xfa video",lowDefinition:"Alacsony felbont\xe1s\xfa",onlyAudioAvailable:"\u201eCsak hang\u201d m\xf3d el\xe9rhet\u0151",onlyAudioSupported:"Csak a hang t\xe1mogatott ebben a b\xf6ng\xe9sz\u0151ben.",p2pEnabled:"Egyenrang\xfa kapcsolat enged\xe9lyezve",p2pVideoQualityDescription:"Az egyenrang\xfa (peer to peer) m\xf3dban a kapott videomin\u0151s\xe9g csak a magas felbont\xe1s\xfa \xe9s a \u201ecsak hang\u201d m\xf3d k\xf6z\xf6tt v\xe1lthat\xf3. A tov\xe1bbi be\xe1ll\xedt\xe1sok nem lesznek figyelembe v\xe9ve az egyenrang\xfa kapcsolat alatt.",recHighDefinitionOnly:"Lehet\u0151leg magas felbont\xe1s\xfa.",sd:"SF",sdTooltip:"Szabv\xe1nyos felbont\xe1s\xfa video megtekint\xe9se",standardDefinition:"Szabv\xe1nyos felbont\xe1s\xfa"},videothumbnail:{domute:"N\xe9m\xedt\xe1s",flip:"T\xfckr\xf6z\xe9s",kick:"Kir\xfag\xe1s",moderator:"Moder\xe1tor",mute:"A r\xe9sztvev\u0151 le van n\xe9m\xedtva",muted:"N\xe9m\xedtva",remoteControl:"T\xe1voli vez\xe9rl\xe9s",show:"Megjelen\xedt\xe9s a sz\xednpadon",videomute:"A r\xe9sztvev\u0151 le\xe1ll\xedtotta a kamer\xe1j\xe1t"},welcomepage:{accessibilityLabel:{join:"Koppintson a csatlakoz\xe1shoz",roomname:"Adja meg a terem nev\xe9t"},appDescription:"Gyer\xfcnk,csevegjen az eg\xe9sz csapattal. Val\xf3ban h\xedvjon meg mindenkit, akit ismer. A {{app}} teljesen titkos\xedtott, 100% -ban ny\xedlt forr\xe1sk\xf3d\xfa videokonferencia-megold\xe1s, amelyet eg\xe9sz nap, minden nap ingyenesen haszn\xe1lhat - fi\xf3k n\xe9lk\xfcl.",audioVideoSwitch:{audio:"Gyer\xfcnk, csevegjen az eg\xe9sz csapattal. Val\xf3ban h\xedvjon meg mindenkit akit ismer. A {{app}} teljesen titkos\xedtott, 100% -ban ny\xedlt forr\xe1sk\xf3d\xfa videokonferencia-megold\xe1s, amelyet eg\xe9sz nap, minden nap ingyenesen haszn\xe1lhat - fi\xf3k n\xe9lk\xfcl.",video:"Video"},calendar:"Napt\xe1r",connectCalendarButton:"Napt\xe1r csatol\xe1sa",connectCalendarText:"Csatlakoztassa a napt\xe1r\xe1t, hogy l\xe1thassa az \xe9rtekezleteket a {{app}} alkalmaz\xe1sban. Tov\xe1bb\xe1, adja hozz\xe1 a {{provider}} szolg\xe1ltat\xf3t \xe9s egy kattint\xe1ssal lehet kezelni azokat.",enterRoomTitle:"\xdaj \xe9rtekezlet kezd\xe9se",roomNameAllowedChars:"Az \xe9rtekezlet neve nem tartalmazhatja a k\xf6vetkez\u0151 karaktereket: ?, &, :, ', \", %, #.",go:"Ind\xedt\xe1s",goSmall:"Ind\xedt\xe1s",join:"L\xc9TREHOZ /HOZZ\xc1AD",info:"Inform\xe1ci\xf3",privacy:"Adatv\xe9delem",recentList:"Legut\xf3bbi",recentListDelete:"T\xf6rl\xe9s",recentListEmpty:"A legut\xf3bbi lista jelenleg \xfcres. Csevegjen a csapattal \xe9s minden el\u0151z\u0151 \xe9rtekezlet itt lesz megtal\xe1lhat\xf3.",reducedUIText:"\xdcdv\xf6zlet a {{app}} programban!",roomname:"Adja meg a szoba nev\xe9t",roomnameHint:"Adja meg a k\xedv\xe1nt nevet vagy URL-t, amelyhez csatlakozni szeretne. B\xe1rmik\xe9pp elnevezheti, csak ossza meg az \xe9rtekezlet r\xe9sztvev\u0151ivel, hogy \u0151k ugyanezt a nevet tudj\xe1k majd megadni.",sendFeedback:"Visszajelz\xe9s k\xfcld\xe9se",terms:"Felt\xe9telek",title:"Biztons\xe1gos, marad\xe9ktalanul felszerelt \xe9s teljesen ingyenes videokonferencia"}}},679,[]); +__d(function(e,o,a,s,n,r,c){n.exports={en:"Inglese",af:"Afrikaans",az:"Azero",bg:"Bulgaro",cs:"Ceco",de:"Tedesco",el:"Greco",eo:"Esperanto",es:"Spagnolo",fr:"Francese",hy:"Armeno",it:"Italiano",ja:"Giapponese",ko:"Coreano",nb:"Norvegese bokmal",oc:"Occitano",pl:"Polacco",ptBR:"Portoghese (Brasile)",ru:"Russo",sk:"Slovacco",sl:"Sloveno",sv:"Svedese",tr:"Turco",vi:"Vietnamita",zhCN:"Cinese (Cina)"}},680,[]); +__d(function(e,i,o,a,t,r,n){t.exports={addPeople:{add:"Invita",countryNotSupported:"Non supportiamo ancora questa destinazione.",countryReminder:"Stai chiamando fuori dagli Stati Uniti? Assicurati d'inserire il prefisso internazionale!",disabled:"Non puoi invitare persone.",failedToAdd:"L'aggiunta di nuovi membri \xe8 fallita",footerText:"La chiamata all'esterno \xe8 disabilitata.",loading:"Sto cercando persone e numeri di telefono",loadingNumber:"Sto validando il numero di telefono",loadingPeople:"Sto cercando le persone da invitare",noResults:"Nessun risultato corrispondente",noValidNumbers:"Per favore inserire un numero di telefono",searchNumbers:"Aggiungi numeri di telefono",searchPeople:"Cerca persone",searchPeopleAndNumbers:"Cerca persone o aggiungi i loro numeri di telefono",telephone:"Telefono: {{number}}",title:"Invita persone a questo meeting"},audioDevices:{bluetooth:"Bluetooth",headphones:"Cuffie",phone:"Telefono",speaker:"Vivavoce"},audioOnly:{audioOnly:"Solo audio"},calendarSync:{addMeetingURL:"Aggiungi un collegamento alla conferenza",confirmAddLink:"Vuoi aggiungere un collegamento Jitsi a questo evento?",error:{appConfiguration:"L'integrazione del calendario non \xe8 configurata in modo appropriato.",generic:"\xc8 stato riscontrato un errore. Controllare le impostazioni del calendario o ricaricare la pagina.",notSignedIn:"\xc8 stato riscontrato un errore durante l'autenticazione per la visualizzazione degli eventi del calendario. Controllare le impostazioni del calendario e provare a ripetere l'accesso."},join:"Partecipa",joinTooltip:"Partecipa alla conferenza",nextMeeting:"prossimo meeting",noEvents:"Non ci sono eventi programmati a breve.",ongoingMeeting:"conferenza in corso",permissionButton:"Apri impostazioni",permissionMessage:"Per visualizzare la lista delle conferenze nell'app \xe8 richiesto il permesso Calendario",refresh:"Aggiorna calendario",today:"Oggi"},chat:{error:"Errore: il tuo messaggio \u201c{{originalText}}\u201d non e\u2019 stato inviato. Motivo: {{error}}",messagebox:"Digitare un messaggio",nickname:{popover:"Scegli un nickname",title:"Inserire un nickname per utilizzare la chat"},title:"Chat"},connectingOverlay:{joiningRoom:"Collegamento al tuo meeting in corso\u2026"},connection:{ATTACHED:"Collegato",AUTHENTICATING:"Autenticazione",AUTHFAIL:"Autenticazione fallita",CONNECTED:"Connesso",CONNECTING:"Connessione",CONNFAIL:"Connessione non riuscita",DISCONNECTED:"Disconnesso",DISCONNECTING:"Disconnessione in corso",ERROR:"Errore",RECONNECTING:"Si \xe8 verificato un problema di rete. Riconnessione..."},connectionindicator:{address:"Indirizzo:",bandwidth:"Banda stimata:",bitrate:"Bitrate:",bridgeCount:"Contatore server:",connectedTo:"Connesso a:",framerate:"Fotogrammi al secondo:",less:"Mostra meno",localaddress:"Indirizzo locale:",localaddress_plural:"Indirizzi locali:",localport:"Porta locale:",localport_plural:"Porte locali:",more:"Mostra di pi\xf9",packetloss:"Perdita pacchetti:",quality:{good:"Buona",inactive:"Inattiva",lost:"Persa",nonoptimal:"Non ottimale",poor:"Scarsa"},remoteaddress:"Indirizzo remoto:",remoteaddress_plural:"Indirizzi remoti:",remoteport:"Porta remota:",remoteport_plural:"Porte remote:",resolution:"Risoluzione:",status:"Connessione:",transport:"Trasporto:",turn:"(ruota)"},dateUtils:{earlier:"Prima",today:"Oggi",yesterday:"Ieri"},deepLinking:{appNotInstalled:"Per partecipare a questo meeting sul tuo telefono ti serve l'app mobile di {{app}}",description:"Non \xe8 successo nulla? Abbiamo provato ad avviare la tua videoconferenza sull'app desktop di {{app}}. Prova di nuovo o avviala nell'app web di {{app}}.",descriptionWithoutWeb:"",downloadApp:"Scarica l'app",launchWebButton:"Avvia sul web",openApp:"Prosegui verso l'app",title:"Sto avviando la tua videoconferenza su {{app}}...",tryAgainButton:"Prova di nuovo sul desktop"},defaultLink:"es. {{url}}",deviceError:{cameraError:"Impossibile accedere alla videocamera",cameraPermission:"Errore nell'ottenere i permessi per la videocamera",microphoneError:"Impossibile accedere al microfono",microphonePermission:"Errore nell'ottenere i permessi per il microfono"},deviceSelection:{noPermission:"Permesso negato",previewUnavailable:"Anteprima non disponibile",selectADevice:"Seleziona un dispositivo",testAudio:"Riproduci un suono di prova"},dialog:{accessibilityLabel:{liveStreaming:"Diretta"},allow:"Consenti",alreadySharedVideoMsg:"Un altro utente sta condividendo un video. Questa conferenza permette di condividere un solo video alla volta.",alreadySharedVideoTitle:"\xc8 permesso un solo video alla volta",applicationWindow:"Finestra applicazione",Back:"Indietro",cameraConstraintFailedError:"La tua videocamera non soddisfa alcuni dei requisiti richiesti.",cameraNotFoundError:"Videocamera non trovata.",cameraNotSendingData:"Non possiamo accedere alla tua videocamera. Controlla che non sia gi\xe0 usata da un'altra applicazione, seleziona un altro dispositivo dalle impostazioni o prova a ricaricare l'applicazione.",cameraNotSendingDataTitle:"Impossibile accedere alla videocamera",cameraPermissionDeniedError:"Non hai concesso il permesso di usare la videocamera. Potrai partecipare comunque alla conferenza ma gli altri non potranno vederti. Usa il pulsante a forma di videocamera nella barra degli indirizzi per risolvere il problema.",cameraUnknownError:"Impossibile usare la videocamera per un motivo sconosciuto.",cameraUnsupportedResolutionError:"La tua videocamera non supporta la risoluzione richiesta.",Cancel:"Annulla",close:"Chiudi",conferenceDisconnectMsg:"Controlla la tua connessione. Riconnessione in {{seconds}} secondi...",conferenceDisconnectTitle:"Sei stato disconnesso.",conferenceReloadMsg:"Stiamo cercando di risolvere il problema. Riconnessione in {{seconds}} secondi...",conferenceReloadTitle:"Purtroppo qualcosa \xe8 andato storto.",confirm:"Conferma",confirmNo:"No",confirmYes:"S\xec",connectError:"Oops! Qualcosa \xe8 andato storto e non ti puoi collegare alla conferenza.",connectErrorWithMsg:"Oops! Qualcosa \xe8 andato storto e non ti puoi collegare alla conferenza: {{msg}}",connecting:"Connessione",contactSupport:"Contatta il supporto",copy:"Copia",dismiss:"Scarta",displayNameRequired:"Tutti devono avere un nome",done:"Fatto",enterDisplayName:"Inserisci il nome da visualizzare",error:"Errore",externalInstallationMsg:"Devi installare la nostra estensione per la condivisione desktop.",externalInstallationTitle:"Richiesta estensione",goToStore:"Vai al negozio on-line",gracefulShutdown:"Il nostro servizio \xe8 al momento spento per manutenzione. Si prega di riprovare pi\xf9 tardi.",IamHost:"Sono l'organizzatore",incorrectRoomLockPassword:"",incorrectPassword:"Nome utente o password errati",inlineInstallationMsg:"Devi installare la nostra estensione per la condivisione desktop.",inlineInstallExtension:"Installa adesso",internalError:"Ops! Qualcosa \xe8 andato storto. Questo \xe8 l'errore: {{error}}",internalErrorTitle:"Errore interno",kickMessage:"Acc! Sei stato espulso dal meeting!",kickParticipantButton:"Espelli",kickParticipantDialog:"Sei sicuro di voler espellere questo partecipante?",kickParticipantTitle:"Espellere questi partecipante?",kickTitle:"Espulso dal meeting",liveStreaming:"Live Streaming",liveStreamingDisabledForGuestTooltip:"Gli ospiti non possono avviare una diretta.",liveStreamingDisabledTooltip:"Trasmissioni in diretta disabilitate.",lockMessage:"Impossibile bloccare la conferenza.",lockRoom:"Aggiungi una password al meeting",lockTitle:"Blocco fallito",logoutQuestion:"Vuoi disconnetterti e interrompere la conferenza ?",logoutTitle:"Logout",maxUsersLimitReached:"E' stato raggiunto il numero massimo di partecipanti. La conferenza \xe8 al completo. Contatta l'organizzatore, o riprova pi\xf9 tardi!",maxUsersLimitReachedTitle:"Raggiunto limite partecipanti",micConstraintFailedError:"Il tuo microfono non soddisfa alcuni dei requisiti richiesti.",micNotFoundError:"Microfono non trovato.",micNotSendingData:"Non riusciamo a ricevere suoni dal microfono scelto. Prova a selezionare nelle impostazioni un microfono diverso, o a riavvare l'applicazione.",micNotSendingDataTitle:"Impossibile accedere al microfono",micPermissionDeniedError:"Non hai concesso il permesso di usare il microfono. Puoi comunque partecipare alla conferenza ma gli altri non potranno sentirti. Usa il bottone a forma di telecamera nella barra degli indirizzi per cambiare impostazioni.",micUnknownError:"Impossibile usare il microfono per un motivo sconosciuto.",muteParticipantBody:"Tu non sarai in grado di riattivare il loro audio, ma loro potranno riattivarlo in qualsiasi momento.",muteParticipantButton:"Silenzia partecipante",muteParticipantDialog:"Sei sicuro di voler disattivare l'audio di questo partecipante? Saranno loro a doversi riattivare l'audio, per parlare.",muteParticipantTitle:"Silenzio questo partecipante?",Ok:"Ok",passwordLabel:"",passwordNotSupported:"Le password per le videoconferenze non sono supportate.",passwordNotSupportedTitle:"",passwordRequired:"",popupError:"Il tuo browser sta bloccando i pop-up da questo sito. Per favore abilit\xe0 i pop-up dalle impostazioni di sicurezza del browser e riprova.",popupErrorTitle:"Pop-up bloccato",recording:"Registrazione",recordingDisabledForGuestTooltip:"Gli ospiti non possono avviare una registrazione.",recordingDisabledTooltip:"Registrazione disabilitata.",rejoinNow:"Ricollegati ora",remoteControlAllowedMessage:"{{user}} ha accettato la tua richiesta di controllo remoto!",remoteControlDeniedMessage:"{{user}} ha respinto la tua richiesta di controllo remoto!",remoteControlErrorMessage:"Si \xe8 verificato un errore mentre si cercava di richiedere il controllo remoto a {{user}}!",remoteControlRequestMessage:"Vuoi consentire ad {{user}} di controllare da remoto il tuo desktop?",remoteControlShareScreenWarning:"Tieni conto che premendo \"Permetti\" condividerai il tuo schermo.",remoteControlStopMessage:"Sessione di controllo remoto terminata!",remoteControlTitle:"Connessione desktop remoto",Remove:"Rimuovi",removePassword:"Togli la password",removeSharedVideoMsg:"Sei sicuro di voler rimuovere il tuo video condiviso?",removeSharedVideoTitle:"Rimuovi video condiviso",reservationError:"Errore di sistema in prenotazione",reservationErrorMsg:"Codice di errore: {{code}}, messaggio: {{msg}}",retry:"Riprova",screenSharingFailedToInstall:"Oops! Non \xe8 stato possibile installare l'estensione per la condivisione schermo. ",screenSharingFailedToInstallTitle:"Impossibile installare l'estensione per la condivisione schermo",screenSharingFirefoxPermissionDeniedError:"Qualcosa \xe8 andato storto mentre cercavamo di condividere il tuo schermo. Assicurati di averci dato il premesso di condivisione.",screenSharingFirefoxPermissionDeniedTitle:"Ops! Non siamo stati in grado di avviare la condivisione schermo!",screenSharingPermissionDeniedError:"Oops! Qualcosa \xe8 andato storto con le impostazioni dell'estensione per la condivisione dello schermo. Ricarica la pagina e prova di nuovo.",serviceUnavailable:"Servizio non disponibile",sessTerminated:"Chiamata terminata",Share:"Condividi",shareVideoLinkError:"Fornire un link youtube corretto.",shareVideoTitle:"Condividi un video",shareYourScreen:"Condividi schermo",shareYourScreenDisabled:"Condivisione schermo disabilitata.",shareYourScreenDisabledForGuest:"Gli ospiti non possono condividere lo schermo.",startLiveStreaming:"Inizia una diretta",startRecording:"Inizia a registrare",startRemoteControlErrorMessage:"Si \xe8 verificato un errore cercando di avviare la sessione di controllo remoto!",stopLiveStreaming:"Ferma la diretta",stopRecording:"Ferma registrazione",stopRecordingWarning:"Sei sicuro di voler interrompere la registrazione?",stopStreamingWarning:"Sei sicuro di voler interrompere il live streaming?",streamKey:"Chiave per trasmissione in diretta",Submit:"Invia",thankYou:"Grazie per aver usato {{appName}}!",token:"token",tokenAuthFailed:"Ci dispiace ma non sei autorizzato a partecipare a questa chiamata.",tokenAuthFailedTitle:"Autenticazione fallita",transcribing:"Trascrizione",unlockRoom:"Togli la password al meeting",userPassword:"password utente",WaitForHostMsg:"La conferenza {{room}} non \xe8 ancora cominciata. Se sei l'organizzatore, per favore autenticati. Altrimenti, aspetta l'arrivo dell'organizzatore.",WaitForHostMsgWOk:"La conferenza {{room}} non \xe8 ancora cominciata. Se sei l'organizzatore, allora premi OK per autenticarti. Altrimenti, aspetta l'arrivo dell'organizzatore.",WaitingForHost:"In attesa dell'organizzatore ...",Yes:"S\xec",yourEntireScreen:"Schermo intero"},dialOut:{statusMessage:"\xe8 ora {{status}}"},feedback:{average:"Media",bad:"Scadente",detailsLabel:"Dicci qualcosa di pi\xf9 in proposito.",good:"Buona",rateExperience:"Valuta la qualit\xe0 della videoconferenza.",veryBad:"Pessima",veryGood:"Molto Buona"},incomingCall:{answer:"Rispondi",audioCallTitle:"Chiamata in arrivo",decline:"Scarta",productLabel:"da Jitsi Meet",videoCallTitle:"Videochiamata in arrivo"},info:{accessibilityLabel:"Mostra informazioni",addPassword:"Aggiungi password",cancelPassword:"Togli password",conferenceURL:"Collegamento:",country:"Paese",dialANumber:"Per collegarti telefonicamente al meeting, chiama uno di questi numeri e metti il pin.",dialInConferenceID:"PIN:",dialInNotSupported:"Spiacenti, la partecipazionne solo telefonica non \xe8 supportata attualmente",dialInNumber:"Componi:",dialInSummaryError:"Errore nella ricerca dei numeri telefonici. Riprova pi\xf9 tardi.",dialInTollFree:"Numero verde",genericError:"Ops, qualcosa \xe8 andato storto.",inviteLiveStream:"Per vedere la diretta di questo meeting, clicca su questo link: {{url}}",invitePhone:"Per seguire solo telefonicamente, clicca: {{number}},,{{conferenceID}}#",invitePhoneAlternatives:"",inviteURLFirstPartGeneral:"Invito a connettersi ad una conferenza.",inviteURLFirstPartPersonal:"{{name}} ti sta invitando ad un meeting.\n",inviteURLSecondPart:"\nPartecipa al meeting:\n{{url}}\n",liveStreamURL:"Trasmissione in diretta:",moreNumbers:"Pi\xf9 numeri",noNumbers:"Nessun numero da chiamare.",noPassword:"Nessuna",noRoom:"Non \xe8 stata specificata nessuna stanza da chiamare.",numbers:"Numeri da chiamare",password:"Password",title:"Condividi",tooltip:"Invia il collegamento e i numeri telefonici di questa conferenza",label:"Informazioni meeting"},inviteDialog:{alertText:"",header:"Invita",searchCallOnlyPlaceholder:"Inserisci numero di telefono",searchPeopleOnlyPlaceholder:"",searchPlaceholder:"",send:""},inlineDialogFailure:{msg:"Un piccolo inconveniente.",retry:"Prova ancora",support:"Supporto",supportMsg:"Se succede ancora contatta"},keyboardShortcuts:{focusLocal:"Sposta il focus sul tuo video",focusRemote:"Sposta il focus sul video di un altro partecipante",fullScreen:"Attiva o disattiva schermo intero",keyboardShortcuts:"Scorciatoie da tastiera",localRecording:"Mostra o nascondi i controlli per la registrazione",mute:"Attiva o disattiva il microfono",pushToTalk:"Premi per parlare",raiseHand:"Alza o abbassa la mano",showSpeakerStats:"Mostra statistiche",toggleChat:"Apri o chiudi la chat",toggleFilmstrip:"Mostra o nascondi anteprime video",toggleScreensharing:"Cambia modalit\xe0 tra videocamera e condivisione schermo",toggleShortcuts:"Mostra o nascondi le scorciatoie",videoMute:"Accendo o spegni la videocamera"},liveStreaming:{busy:"Stiamo cercando di liberare risorse per lo streaming. Riprova tra qualche minuto.",busyTitle:"Tutti gli streamer sono impegnati al momento",changeSignIn:"Cambia account",choose:"Scegli una trasmissione in diretta",chooseCTA:"Scegli un'opzione di trasmissione. Attualmente sei loggato come {{email}}.",enterStreamKey:"Inserisci qui la tua chiave YouTube per le trasmissioni in diretta.",error:"Live streaming fallito. Prova di nuovo.",errorAPI:"Si \xe8 verificato un errore durante l'accesso ai tuoi broadcast YouTube. Prova a effettuare nuovamente il login.",errorLiveStreamNotEnabled:"La diretta non \xe8 attivata su {{email}}. Per favore abilita la diretta o effettua l'accesso con un account abilitato alle dirette.",expandedOff:"La diretta è stata interrotta",expandedOn:"La conferenza è attualmente in diretta su YouTube.",expandedPending:"La diretta è in fase di avvio...",failedToStart:"Avvio trasmissione in diretta fallito",getStreamKeyManually:"Non siamo stati in grado di trovare nessuna trasmissione dal vivo. Prova ad ottenere una chiave stream da Youtube",invalidStreamKey:"La chiave stream potrebbe non essere corretta.",off:"La diretta si \xe8 interrotta",on:"Trasmissione in diretta",pending:"Avvio live stream...",serviceName:"Servizio live streaming",signedInAs:"Sei attualmente collegato come:",signIn:"Registrati con Google",signInCTA:"Registrati o inserisci la tua chiave YouTube per la trasmissione in diretta.",signOut:"Esci",start:"Inizia una diretta",streamIdHelp:"Cos'\xe8 questo?",unavailableTitle:"Live streaming non disponibile"},localRecording:{clientState:{off:"Spento",on:"Acceso",unknown:"Sconosciuto"},dialogTitle:"Controlli di registrazione",duration:"Durata",durationNA:"N/A",encoding:"Codifica",label:"LOR",labelToolTip:"Registrazione locale avviata",localRecording:"Registrazione locale",me:"io",messages:{engaged:"Registrazione locale avviata.",finished:"La registrazione della sessione {{token}} è terminata. Invia il file della registrazione al moderatore.",finishedModerator:"La registrazione della sessione {{token}} è terminata. Il file della traccia local è stato salvato. Richiedere ai partecipanti di inviare le loro registrazioni.",notModerator:"Non sei un moderatore. Non puoi avviare o interrompere la registrazione"},moderator:"Moderatore",no:"No",participant:"Partecipante",participantStats:"Statistiche partecipanti",sessionToken:"Token della sessione ",start:"Avvia Registrazione",stop:"Ferma registrazione",yes:"S\xec"},lockRoomPassword:"password",lockRoomPasswordUppercase:"Password",me:"io",notify:{connectedOneMember:"{{name}} si \xe8 connesso",connectedThreePlusMembers:"{{name}} e altri {{count}} si sono connessi",connectedTwoMembers:"{{first}} e {{second}} si sono connessi",disconnected:"disconnesso",focus:"Focus su conferenza",focusFail:"{{component}} non disponibile - riprova in {{ms}} sec",grantedTo:"Permessi di moderatore garantiti a {{to}}!",invitedOneMember:"{{displayName}} \xe8 stato invitato",invitedThreePlusMembers:"Hai invitato {{name}} e altri {{count}}",invitedTwoMembers:"Hai invitato {{first}} e {{second}}",kickParticipant:"{{kicked}} \xe8 stato espulso da {{kicker}}",me:"Io",moderator:"Impostati i permessi di moderatore!",muted:"Hai iniziato la conversazione con l'audio disattivato.",mutedTitle:"Hai l'audio disattivato!",mutedRemotelyTitle:"Ti \xe8 stato disattivato l'audio da {{participantDisplayName}}!",mutedRemotelyDescription:"",passwordRemovedRemotely:"",passwordSetRemotely:"",raisedHand:"{{name}} vorrebbe intervenire.",somebody:"Qualcuno",startSilentTitle:"",startSilentDescription:"",suboptimalExperienceDescription:"Ehm... temiamo che la tua esperienza con {{appName}} non sar\xe0 granch\xe9 su questo browser. Stiamo cercando di migliorare la situazione ma, per il momento, prova ad utilizzare uno di questi browser supportati.",suboptimalExperienceTitle:"Problemi con il browser",unmute:"",newDeviceCameraTitle:"Trovata nuova videocamera",newDeviceAudioTitle:"Trovata nuova origine audio",newDeviceAction:"Usala"},passwordSetRemotely:"definita da altro utente",passwordDigitsOnly:"Fino a {{number}} cifre",poweredby:"powered by",presenceStatus:{busy:"Occupato",calling:"Chiamata\u2026",connected:"Connesso",connecting:"Connessione...",connecting2:"Connessione*...",disconnected:"Occupato",expired:"Scaduto",ignored:"Ignorato",initializingCall:"Inizializzazione chiamata\u2026",invited:"Invitato",rejected:"Rifiutato",ringing:"Sta suonando\u2026"},profile:{setDisplayNameLabel:"Imposta il nome da visualizzare",setEmailInput:"Inserisci e-mail",setEmailLabel:"Imposta la mail gravatar",title:"Profilo"},recording:{authDropboxText:"Carica su Dropbox",availableSpace:"Spazio disponibile: {{spaceLeft}} MB (rimangono approssimativamente {{duration}} minuti di registrazione)",beta:"BETA",busy:"Stiamo cercando di liberare risorse per la registrazione. Riprova tra qualche minuto.",busyTitle:"Tutti i registratori sono occupati",error:"Registrazione fallita. Prova di nuovo.",expandedOff:"Registrazione interrotta",expandedOn:"La registrazione della conferenza \xe8 attiva.",expandedPending:"La registrazione \xe8 in fase di avvio\u2026",failedToStart:"Non \xe8 stato possibile avviare la registrazione",fileSharingdescription:"",live:"DIRETTA",loggedIn:"Accesso effettuato come {{userName}}",off:"Registrazione interrotta",on:"Registrazione",pending:"In preparazione alla registrazione della conferenza\u2026",rec:"REC",serviceDescription:"",serviceName:"Servizio di registrazione",signIn:"Entra",signOut:"Esci",unavailable:"Ops! Il {{serviceName}} non \xe8 al momento disponibile. Stiamo lavorando per risolvere il problema. Riprova pi\xf9 tardi.",unavailableTitle:"Registrazione non disponibile"},sectionList:{pullToRefresh:"Trascina per aggiornare"},settings:{calendar:{about:"L\u2019integrazione del calendario con {{appName}} e\u2019 consigliata per accedere in sicurezza al proprio calendario per poter leggere i prossimi appuntamenti ",disconnect:"Disconnetti",microsoftSignIn:"Connettiti con un account Microsoft",signedIn:"Sto accedendo agli eventi del calendario per {{email}}. Clicca su Disconnetti per interrompere l\u2019accesso agli eventi del calendario.",title:"Calendario"},devices:"Dispositivi",followMe:"Tutti mi seguono",language:"Lingua",loggedIn:"Connesso come {{name}}",moderator:"Moderatore",more:"Altro",name:"Nome",noDevice:"Nessuno",selectAudioOutput:"Uscita audio",selectCamera:"Videocamera",selectMic:"Microfono",startAudioMuted:"Tutti cominciano con il microfono disattivato",startVideoMuted:"Tutti cominciano con il video disattivato",title:"Impostazioni"},settingsView:{alertOk:"OK",alertTitle:"Attenzione",alertURLText:"L'URL del server inserito non \xe8 valido",buildInfoSection:"Versione",conferenceSection:"Conferenza",displayName:"Nome visualizzato",email:"Email",header:"Impostazioni",profileSection:"Profilo",serverURL:"URL del server",startWithAudioMuted:"Inizia con l'audio disattivato",startWithVideoMuted:"Avvia con il video disattivato",version:"Versione"},share:{dialInfoText:"\n\n=====\n\nVuoi solo ascoltare la conferenza da un telefono?\n\n{{defaultDialInNumber}}Clicca questo link per vedere i numeri telefonici di questo meeting\n{{dialInfoPageUrl}}",mainText:"Clicca sul link seguente per partecipare alla conferenza:\n{{roomUrl}}"},speaker:"Relatore",speakerStats:{hours:"{{count}}h",minutes:"{{count}}m",name:"Nome",seconds:"{{count}}s",speakerStats:"Statistiche del relatore",speakerTime:"Tempo del relatore"},startupoverlay:{policyText:" ",title:"{{app}} chiede di usare il tuo microfono e la tua videocamera."},suspendedoverlay:{rejoinKeyTitle:"Ricollegati",text:"Premi il pulsante Ricollegati per ricollegarti.",title:"La video chiamata si \xe8 interrotta perch\xe8 il computer \xe8 stato sospeso."},toolbar:{accessibilityLabel:{audioOnly:"Attiva/disattiva solo audio",audioRoute:"Seleziona la periferica audio",callQuality:"Gestisci qualit\xe0 della chiamata",cc:"Attiva/disattiva sottotitoli",chat:"Attiva/disattiva la chat",document:"Attiva/disattiva documento condiviso",feedback:"Lascia un feedback",fullScreen:"Attiva/disattiva schermo intero",hangup:"Lascia la conferenza",invite:"Invita persone",kick:"Espelli partecipante",localRecording:"Abilita controlli di registrazione locale",lockRoom:"Attiva o disattiva password",moreActions:"Attiva o disattiva menu avanzato",moreActionsMenu:"Menu avanzato",mute:"Attiva/disattiva audio",pip:"Attiva/disattiva immagine nell\u2019immagine",profile:"Modifica profilo",raiseHand:"Attiva/disattiva alzata di mano",recording:"Attiva/disattiva registrazione",remoteMute:"Disattiva audio partecipante",Settings:"Attiva/disattiva impostazioni",sharedvideo:"Attiva/disattiva condivisione YouTube",shareRoom:"Invita qualcuno",shareYourScreen:"Attiva/disattiva condivisione schermo",shortcuts:"Attiva/disattiva scorciatoie",show:"",speakerStats:"Attiva/disattiva statistiche relatore",tileView:"Attiva/disattiva visualizzazione a tessere",toggleCamera:"Cambia videocamera",videomute:"Attiva/disattiva videocamera",videoblur:"Attiva/disattiva offuscamento video"},addPeople:"Aggiungi persone alla chiamata",audioOnlyOff:"Disattiva modalit\xe0 solo audio",audioOnlyOn:"Attiva modalit\xe0 solo audio",audioRoute:"Seleziona la periferica audio",authenticate:"Autenticazione",callQuality:"Gestisci qualit\xe0 della chiamata",chat:"Apri / Chiudi chat",closeChat:"Chiudi chat",documentClose:"Chiudi documento condiviso",documentOpen:"Apri documento condiviso",enterFullScreen:"Visualizza a schermo intero",enterTileView:"Vista a tessere",exitFullScreen:"Esci da schermo intero",exitTileView:"Vista utente singolo",feedback:"Lascia un feedback",hangup:"Esci",invite:"Invita persone",login:"Login",logout:"Logout",lowerYourHand:"Abbassa la mano",moreActions:"Pi\xf9 azioni",moreOptions:"Pi\xf9 opzioni",mute:"Microfono Attiva / Disattiva",openChat:"Apri una chat",pip:"Abilita visualizzazione immagine nell\u2019immagine",profile:"Modifica profilo",raiseHand:"Alza / Abbassa la mano",raiseYourHand:"Alza la mano",Settings:"Impostazioni",sharedvideo:"Condividi un video Youtube",shareRoom:"Invita partecipante",shortcuts:"Visualizza scorciatoie",speakerStats:"Statistiche dell'interlocutore",startScreenSharing:"Inizia la condivisione dello schermo",startSubtitles:"Avvia sottotitoli",stopScreenSharing:"Ferma la condivisione dello schermo",stopSubtitles:"Ferma sottotitoli",stopSharedVideo:"Ferma video YouTube",talkWhileMutedPopup:"Stai provando a parlare? Il microfono \xe8 disattivato.",tileViewToggle:"Attiva/disattiva visualizzazione griglia",toggleCamera:"Cambia videocamera",videomute:"Attiva / Disattiva videocamera",startvideoblur:"Offusca il video",stopvideoblur:"Non offuscare il video"},transcribing:{ccButtonTooltip:"Inizia / Ferma i sottotitoli",error:"Registrazione fallita. Prova di nuovo.",expandedLabel:"La trascrizione della conferenza \xe8 attiva",failedToStart:"C\u2019\xe8 stato un errore nell\u2019avvio del servizio di trascrizione.",labelToolTip:"Il servizio di trascrizione \xe8 in fase di avvio",off:"Trascrizione interrotta",pending:"Avvio del servizio di trascrizione della conferenza\u2026",start:"Avvia visualizzazione sottotitoli",stop:"Interrompi la visualizzazione dei sottotitoli",tr:"TR"},userMedia:{androidGrantPermissions:"Seleziona consenti quando richiesto dal browser.",chromeGrantPermissions:"Seleziona consenti quando richiesto dal browser.",edgeGrantPermissions:"Seleziona Si quando richiesto dal browser.",electronGrantPermissions:"Concedi l'autorizzazione ad usare telecamera e microfono",firefoxGrantPermissions:"Seleziona condividi i dispositivi selezionati quando richiesto dal browser.",iexplorerGrantPermissions:"Seleziona OK quando richiesto dal browser.",nwjsGrantPermissions:"Concedi l'autorizzazione ad usare telecamera e microfono",operaGrantPermissions:"Seleziona consenti quando richiesto dal browser.","react-nativeGrantPermissions":"Seleziona consenti quando richiesto dal browser.",safariGrantPermissions:"Seleziona OK quando richiesto dal browser."},videoSIPGW:{busy:"Stiamo lavorando per liberare le risorse. Riprova tra qualche minuto.",busyTitle:"Il servizio Stanza al momento \xe8 occupato",errorAlreadyInvited:"{{displayName}} gi\xe0 invitato",errorInvite:"Conferenza non ancora stabilita. Riprova pi\xf9 tardi.",errorInviteFailed:"Stiamo lavorando per risolvere il problema. Riprova pi\xf9 tardi.",errorInviteFailedTitle:"Invito a {{displayName}} fallito",errorInviteTitle:"Errore nell'invito alla stanza",pending:"{{displayName}} \xe8 stato invitato"},videoStatus:{audioOnly:"AUD",audioOnlyExpanded:"Modalita' solo audio attiva. Questa modalit\xe0 permette di rispamiare banda ma non vedrai gli altri partecipanti.",callQuality:"Qualit\xe0 video",hd:"HD",highDefinition:"Alta definizione",labelTooiltipNoVideo:"Nessun video",labelTooltipAudioOnly:"Modalit\xe0 solo audio abilitata",ld:"LD",lowDefinition:"Bassa definizione",onlyAudioAvailable:"\xc8 disponibile solo l'audio",onlyAudioSupported:"Per questo browser \xe8 supportato solo l'audio.",p2pEnabled:"Peer to Peer abilitato",p2pVideoQualityDescription:"",recHighDefinitionOnly:"Preferisci alta risoluzione.",sd:"SD",standardDefinition:"Definizione standard"},videothumbnail:{domute:"Disattiva audio",flip:"Rifletti",kick:"Espelli",moderator:"Moderatore",mute:"Il partecipante \xe8 in muto",muted:"Audio disattivato",remoteControl:"Controllo remoto",show:"",videomute:"Silenzia il video"},welcomepage:{accessibilityLabel:{join:"Tap per accedere",roomname:"Inserisci Nome Stanza"},appDescription:"Avvia una videochiamata con tutto il team. Invita tutti quelli che conosci. {{app}} \xe8 una soluzione per effettuare videoconferenze totalmente crittografata, 100% open source, che puoi usare sempre, ogni giorno, gratuitamente \u2013 senza bisogno di un account.",audioVideoSwitch:{audio:"Voce",video:"Video"},calendar:"Calendario",connectCalendarButton:"Collega calendario",connectCalendarText:"",enterRoomTitle:"Avvia una nuova conferenza",go:"VAI",join:"UNISCITI",info:"Informazioni",privacy:"Privacy",recentList:"Recente",recentListDelete:"Cancella",recentListEmpty:"La tua lista è vuota. Chatta con qualcuno del tuo team e lo vedrai apparire nella lista di meeting recenti.",reducedUIText:"",roomname:"Inserisci Nome Stanza",roomnameHint:"Inserisci il nome o l'URL della stanza alla quale vuoi accedere. Puoi anche inventarti un nome, assicurati solo che le persone che vuoi contattare lo sappiano, cos\xec che possano inserire lo stesso nome.",sendFeedback:"Invia feedback",terms:"Termini di utilizzo",title:"Il sistema di conferenza sicuro, funzionale e completamente gratuito."},lonelyMeetingExperience:{button:"Invita gli altri",youAreAlone:"Sei l'unico in riunione"}}},681,[]); +__d(function(e,s,o,t,n,r,a){n.exports={en:"\u82f1\u8a9e",af:"\u30a2\u30d5\u30ea\u30ab\u30fc\u30f3\u30b9\u8a9e",az:"\u30a2\u30bc\u30eb\u30d0\u30a4\u30b8\u30e3\u30f3\u8a9e",bg:"\u30d6\u30eb\u30ac\u30ea\u30a2\u8a9e",cs:"\u30c1\u30a7\u30b3\u8a9e",de:"\u30c9\u30a4\u30c4\u8a9e",el:"\u30ae\u30ea\u30b7\u30a2\u8a9e",eo:"\u30a8\u30b9\u30da\u30e9\u30f3\u30c8\u8a9e",es:"\u30b9\u30da\u30a4\u30f3\u8a9e",fr:"\u30d5\u30e9\u30f3\u30b9\u8a9e",hy:"\u30a2\u30eb\u30e1\u30cb\u30a2\u8a9e",it:"\u30a4\u30bf\u30ea\u30a2\u8a9e",ja:"\u65e5\u672c\u8a9e",ko:"\u97d3\u56fd\u8a9e",nb:"\u30ce\u30eb\u30a6\u30a7\u30fc\u8a9e (\u30d6\u30fc\u30af\u30e2\u30fc\u30eb)",oc:"\u30aa\u30c3\u30af\u8a9e",pl:"\u30dd\u30fc\u30e9\u30f3\u30c9\u8a9e",ptBR:"\u30dd\u30eb\u30c8\u30ac\u30eb\u8a9e (\u30d6\u30e9\u30b8\u30eb)",ru:"\u30ed\u30b7\u30a2\u8a9e",sk:"\u30b9\u30ed\u30d0\u30ad\u30a2\u8a9e",sl:"\u30b9\u30ed\u30d9\u30cb\u30a2\u8a9e",sv:"\u30b9\u30a6\u30a7\u30fc\u30c7\u30f3\u8a9e",tr:"\u30c8\u30eb\u30b3\u8a9e",vi:"\u30d9\u30c8\u30ca\u30e0\u8a9e",zhCN:"\u4e2d\u56fd\u8a9e (\u4e2d\u56fd)"}},682,[]); +__d(function(e,o,i,t,r,n,a){r.exports={addPeople:{add:"\u62db\u5f85",countryNotSupported:"\u79c1\u305f\u3061\u306f\u3053\u306e\u5b9b\u5148\u3092\u307e\u3060\u30b5\u30dd\u30fc\u30c8\u3057\u3066\u3044\u307e\u305b\u3093\u3002",countryReminder:"\u7c73\u56fd\u5916\u306b\u30b3\u30fc\u30eb\u3057\u307e\u3059\u304b\uff1f \u56fd\u30b3\u30fc\u30c9\u3067\u59cb\u307e\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\uff01",disabled:"\u4eba\u3092\u62db\u5f85\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002",failedToAdd:"",footerText:"\u30c0\u30a4\u30e4\u30eb\u30a2\u30a6\u30c8\u304c\u7121\u52b9\u3057\u3066\u3044\u307e\u3059\u3002",loading:"\u4eba\u3068\u96fb\u8a71\u756a\u53f7\u3092\u691c\u7d22\u3059\u308b",loadingNumber:"\u96fb\u8a71\u756a\u53f7\u3092\u691c\u8a3c\u3057\u3066\u3044\u307e\u3059",loadingPeople:"\u62db\u5f85\u3059\u308b\u4eba\u3092\u691c\u7d22\u3059\u308b",noResults:"\u4e00\u81f4\u3059\u308b\u691c\u7d22\u7d50\u679c\u304c\u3042\u308a\u307e\u305b\u3093",noValidNumbers:"\u96fb\u8a71\u756a\u53f7\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044",searchNumbers:"\u96fb\u8a71\u756a\u53f7\u3092\u8ffd\u52a0",searchPeople:"\u4eba\u3092\u691c\u7d22\u3059\u308b",searchPeopleAndNumbers:"\u4eba\u3092\u691c\u7d22\u3059\u308b\u304b\u3001\u96fb\u8a71\u756a\u53f7\u3092\u8ffd\u52a0\u3059\u308b",telephone:"\u96fb\u8a71\uff1a {{number}}",title:"\u3053\u306e\u4f1a\u8b70\u306b\u4eba\u3092\u62db\u5f85\u3059\u308b"},"\x05addPeople":{},audioDevices:{bluetooth:"Bluetooth",headphones:"\u30d8\u30c3\u30c9\u30d5\u30a9\u30f3",phone:"\u96fb\u8a71",speaker:"\u30b9\u30d4\u30fc\u30ab\u30fc"},"\x05audioDevices":{},audioOnly:{audioOnly:"\u30aa\u30fc\u30c7\u30a3\u30aa\u306e\u307f"},calendarSync:{addMeetingURL:"\u30df\u30fc\u30c6\u30a3\u30f3\u30b0\u30ea\u30f3\u30af\u3092\u8ffd\u52a0\u3059\u308b",confirmAddLink:"\u3053\u306e\u30a4\u30d9\u30f3\u30c8\u306b\u30d3\u30c7\u30aa\u4f1a\u8b70\u30ea\u30f3\u30af\u3092\u5f35\u308a\u4ed8\u3051\u307e\u3059\u304b\u3002",error:{appConfiguration:"\u30ab\u30ec\u30f3\u30c0\u30fc\u6a5f\u80fd\u304c\u6b63\u3057\u304f\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u306a\u3044",generic:"\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u305f\u3002\u30ab\u30ec\u30f3\u30c0\u30fc\u6a5f\u80fd\u8a2d\u5b9a\u3092\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3001\u3082\u3057\u304f\u306f\u30ab\u30ec\u30f3\u30c0\u30fc\u3092\u66f4\u65b0\u3057\u3066\u304f\u3060\u3055\u3044",notSignedIn:"\u8a8d\u8a3c\u4e2d\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002\u30ab\u30ec\u30f3\u30c0\u30fc\u306e\u8a2d\u5b9a\u3092\u78ba\u8a8d\u3057\u3001\u30ed\u30b0\u30a4\u30f3\u3057\u76f4\u3057\u3066\u304f\u3060\u3055\u3044\u3002"},join:"\u53c2\u52a0",joinTooltip:"\u30df\u30fc\u30c6\u30a3\u30f3\u30b0\u306b\u53c2\u52a0\u3059\u308b",nextMeeting:"\u6b21\u306e\u4f1a\u8b70",noEvents:"",ongoingMeeting:"\u4f1a\u8b70\u4e2d",permissionButton:"\u8a2d\u5b9a\u3092\u958b\u304f",permissionMessage:"\u30a2\u30d7\u30ea\u306b\u4f1a\u8b70\u3092\u8868\u793a\u3059\u308b\u306b\u306f\u3001\u30ab\u30ec\u30f3\u30c0\u30fc\u306e\u30a2\u30af\u30bb\u30b9\u8a31\u53ef\u304c\u5fc5\u8981\u3067\u3059\u3002",refresh:"\u30ab\u30ec\u30f3\u30c0\u30fc\u3092\u66f4\u65b0\u3059\u308b",today:"\u4eca\u65e5"},"\x05calendarSync":{},chat:{error:"\u30a8\u30e9\u30fc: \"{{originalText}}\" \u304c\u307e\u3060\u9001\u4fe1\u3055\u308c\u3066\u3044\u307e\u305b\u3093. \u30a8\u30e9\u30fc\uff1a {{error}}",messagebox:"\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u66f8\u3044\u3066\u304f\u3060\u3055\u3044",nickname:{popover:"\u30cb\u30c3\u30af\u30cd\u30fc\u30e0\u3092\u5165\u529b",title:"\u30c1\u30e3\u30c3\u30c8\u306e\u30cb\u30c3\u30af\u30cd\u30fc\u30e0\u3092\u8a18\u5165\u3057\u3066\u304f\u3060\u3055\u3044"},title:"\u30c1\u30e3\u30c3\u30c8"},connectingOverlay:{joiningRoom:"\u30df\u30fc\u30c6\u30a3\u30f3\u30b0\u306b\u53c2\u52a0\u3057\u3066\u3044\u307e\u3059\u3002\u3002\u3002"},connection:{ATTACHED:"\u6dfb\u4ed8\u3055\u308c\u305f",AUTHENTICATING:"\u8a8d\u8a3c\u4e2d",AUTHFAIL:"\u8a8d\u8a3c\u306b\u5931\u6557\u3057\u307e\u3057\u305f",CONNECTED:"\u63a5\u7d9a\u3055\u308c\u307e\u3057\u305f",CONNECTING:"\u63a5\u7d9a\u4e2d",CONNFAIL:"\u63a5\u7d9a\u306b\u5931\u6557\u3057\u307e\u3057\u305f",DISCONNECTED:"\u5207\u65ad\u3055\u308c\u307e\u3057\u305f",DISCONNECTING:"\u5207\u65ad\u3057\u3066\u3044\u307e\u3059",ERROR:"\u30a8\u30e9\u30fc",RECONNECTING:"\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e\u554f\u984c\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002 \u518d\u63a5\u7d9a\u4e2d..."},connectionindicator:{address:"\u30a2\u30c9\u30ec\u30b9\uff1a",bandwidth:"\u63a8\u5b9a\u30d0\u30f3\u30c9\u30ef\u30a4\u30ba",bitrate:"\u30d3\u30c3\u30c8\u30ec\u30fc\u30c8:",bridgeCount:"\u30b5\u30fc\u30d0\u30fc\u6570\uff1a",connectedTo:"\u63a5\u7d9a\u5148\uff1a",framerate:"\u30d5\u30ec\u30fc\u30e0\u30ec\u30fc\u30c8:",less:"\u5c11\u306a\u304f\u898b\u308b",localaddress:"",localport:"",more:"\u591a\u304f\u898b\u308b",packetloss:"\u30d1\u30b1\u30c3\u30c8\u30ed\u30b9:",quality:{good:"\u826f\u3044",inactive:"\u4f11\u6b62\u4e2d",lost:"\u63a5\u7d9a\u5207\u308c\u305f",nonoptimal:"\u6700\u9069\u3067\u306f\u306a\u3044",poor:"\u60aa\u3044"},remoteaddress:"\u30ea\u30e2\u30fc\u30c8\u30a2\u30c9\u30ec\u30b9\uff1a",remoteport:"\u30ea\u30e2\u30fc\u30c8\u30dd\u30fc\u30c8\uff1a",resolution:"\u89e3\u50cf\u5ea6:",status:"\u63a5\u7d9a\u72b6\u614b:",transport:"\u30c8\u30e9\u30f3\u30b9\u30dd\u30fc\u30c8\uff1a",turn:""},dateUtils:{earlier:"\u305d\u306e\u524d",today:"\u4eca\u65e5",yesterday:"\u6628\u65e5"},deepLinking:{appNotInstalled:"\u3053\u306e\u4f1a\u8b70\u306b\u53c2\u52a0\u3059\u308b\u306b\u306f\u3001{{app}} \u30e2\u30d0\u30a4\u30eb\u30a2\u30d7\u30ea\u304c\u5fc5\u8981\u3067\u3059\u3002",description:"\u4f55\u3082\u8d77\u3053\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u304b\uff1f {{app}} \u30c7\u30b9\u30af\u30c8\u30c3\u30d7\u30a2\u30d7\u30ea\u3067\u4f1a\u8b70\u3092\u958b\u59cb\u3057\u3088\u3046\u3068\u3057\u307e\u3057\u305f\u3002 \u518d\u5ea6\u8a66\u3057\u3066\u307f\u308b\u304b\u3001{{app}} Web\u30a2\u30d7\u30ea\u3067\u8d77\u52d5\u3057\u3066\u304f\u3060\u3055\u3044\u3002",descriptionWithoutWeb:"",downloadApp:"\u30a2\u30d7\u30ea\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3059\u308b",launchWebButton:"Web\u3067\u8d77\u52d5\u3059\u308b",openApp:"\u30a2\u30d7\u30ea\u3067\u7d9a\u304f",title:"{{app}} \u3067\u4f1a\u8b70\u3092\u958b\u59cb\u3059\u308b...",tryAgainButton:"\u30c7\u30b9\u30af\u30c8\u30c3\u30d7\u3067\u3082\u3046\u4e00\u5ea6\u304a\u8a66\u3057\u304f\u3060\u3055\u3044"},defaultLink:"\u4f8b\uff1a {{url}}",deviceError:{cameraError:"\u30ab\u30e1\u30e9\u3078\u306e\u30a2\u30af\u30bb\u30b9\u306b\u5931\u6557\u3057\u307e\u3057\u305f",cameraPermission:"\u30ab\u30e1\u30e9\u306e\u6a29\u9650\u3092\u53d6\u5f97\u3059\u308b\u969b\u306b\u30a8\u30e9\u30fc",microphoneError:"\u30de\u30a4\u30af\u3078\u306e\u30a2\u30af\u30bb\u30b9\u306b\u5931\u6557\u3057\u307e\u3057\u305f",microphonePermission:"\u30de\u30a4\u30af\u306e\u6a29\u9650\u3092\u53d6\u5f97\u3059\u308b\u969b\u306b\u30a8\u30e9\u30fc"},deviceSelection:{noPermission:"\u8a31\u53ef\u3055\u308c\u3066\u3044\u307e\u305b\u3093",previewUnavailable:"\u30d7\u30ec\u30d3\u30e5\u30fc\u3067\u304d\u307e\u305b\u3093",selectADevice:"\u30c7\u30d0\u30a4\u30b9\u3092\u9078\u629e",testAudio:""},dialog:{accessibilityLabel:{liveStreaming:"\u30e9\u30a4\u30d6\u30b9\u30c8\u30ea\u30fc\u30e0\uff1a"},allow:"\u8a31\u53ef",alreadySharedVideoMsg:"",alreadySharedVideoTitle:"\u4e00\u5ea6\u306b1\u3064\u306e\u5171\u6709\u30d3\u30c7\u30aa\u306e\u307f\u304c\u8a31\u53ef\u3055\u308c\u307e\u3059",applicationWindow:"\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30a6\u30a3\u30f3\u30c9\u30a6",Back:"\u623b\u308b",cameraConstraintFailedError:"\u3042\u306a\u305f\u306e\u30ab\u30e1\u30e9\u306f\u3001\u5fc5\u8981\u306a\u5236\u7d04\u306e\u3044\u304f\u3064\u304b\u3092\u6e80\u305f\u3057\u3066\u3044\u307e\u305b\u3093\u3002",cameraNotFoundError:"\u30ab\u30e1\u30e9\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002",cameraNotSendingData:"\u3042\u306a\u305f\u306e\u30ab\u30e1\u30e9\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u305b\u3093\u3002 \u4ed6\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u304c\u3053\u306e\u30c7\u30d0\u30a4\u30b9\u3092\u4f7f\u7528\u3057\u3066\u3044\u308b\u304b\u3069\u3046\u304b\u3092\u78ba\u8a8d\u3057\u3001\u8a2d\u5b9a\u30e1\u30cb\u30e5\u30fc\u304b\u3089\u5225\u306e\u30c7\u30d0\u30a4\u30b9\u3092\u9078\u629e\u3059\u308b\u304b\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u30ea\u30ed\u30fc\u30c9\u3057\u3066\u307f\u3066\u304f\u3060\u3055\u3044\u3002",cameraNotSendingDataTitle:"\u30ab\u30e1\u30e9\u306b\u30a2\u30af\u30bb\u30b9\u3067\u304d\u307e\u305b\u3093",cameraPermissionDeniedError:"\u3042\u306a\u305f\u306f\u30ab\u30e1\u30e9\u3092\u4f7f\u7528\u3059\u308b\u8a31\u53ef\u3092\u4e0e\u3048\u3066\u3044\u307e\u305b\u3093\u3002 \u3042\u306a\u305f\u306f\u307e\u3060\u4f1a\u8b70\u306b\u53c2\u52a0\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u304c\u3001\u4ed6\u306e\u53c2\u52a0\u8005\u306f\u3042\u306a\u305f\u3092\u898b\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002 \u3053\u306e\u554f\u984c\u3092\u89e3\u6c7a\u3059\u308b\u306b\u306f\u3001\u30a2\u30c9\u30ec\u30b9\u30d0\u30fc\u306e\u30ab\u30e1\u30e9\u30dc\u30bf\u30f3\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002",cameraUnknownError:"\u4e0d\u660e\u306a\u7406\u7531\u3067\u30ab\u30e1\u30e9\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002",cameraUnsupportedResolutionError:"\u304a\u4f7f\u3044\u306e\u30ab\u30e1\u30e9\u306f\u3001\u5fc5\u8981\u306a\u30d3\u30c7\u30aa\u89e3\u50cf\u5ea6\u3092\u30b5\u30dd\u30fc\u30c8\u3057\u3066\u3044\u307e\u305b\u3093\u3002",Cancel:"\u30ad\u30e3\u30f3\u30bb\u30eb",close:"\u9589\u3058\u308b",conferenceDisconnectMsg:"\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u63a5\u7d9a\u3092\u78ba\u8a8d\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002 {{seconds}} \u79d2\u3067\u518d\u63a5\u7d9a\u3057\u307e\u3059...",conferenceDisconnectTitle:"\u3042\u306a\u305f\u306f\u5207\u65ad\u3055\u308c\u307e\u3057\u305f\u3002",conferenceReloadMsg:"\u79c1\u305f\u3061\u306f\u3053\u308c\u3092\u89e3\u6c7a\u3057\u3088\u3046\u3068\u3057\u3066\u3044\u307e\u3059\u3002 {{seconds}} \u79d2\u3067\u518d\u63a5\u7d9a\u3057\u307e\u3059...",conferenceReloadTitle:"\u6b8b\u5ff5\u306a\u304c\u3089\u3001\u4f55\u304b\u304c\u9593\u9055\u3063\u3066\u3044\u307e\u3057\u305f\u3002",confirm:"\u78ba\u8a8d",confirmNo:"\u3044\u3044\u3048",confirmYes:"\u306f\u3044",connectError:"Oops! \u4f55\u304b\u304c\u3046\u307e\u304f\u3044\u304b\u305a\u3001\u4f1a\u8b70\u306b\u63a5\u7d9a\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002",connectErrorWithMsg:"Oops! \u4f55\u304b\u554f\u984c\u304c\u767a\u751f\u3057\u3001\u4f1a\u8b70\u306b\u63a5\u7d9a\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\uff1a {{msg}}",connecting:"\u63a5\u7d9a\u4e2d",contactSupport:"\u30b5\u30dd\u30fc\u30c8\u554f\u3044\u5408\u308f\u305b\u5148",copy:"\u30b3\u30d4\u30fc",dismiss:"\u5374\u4e0b",displayNameRequired:"",done:"\u5b8c\u4e86",enterDisplayName:"",error:"\u30a8\u30e9\u30fc",externalInstallationMsg:"\u30c7\u30b9\u30af\u30c8\u30c3\u30d7\u5171\u6709\u62e1\u5f35\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002",externalInstallationTitle:"\u62e1\u5f35\u6a5f\u80fd\u304c\u5fc5\u8981\u3067\u3059",goToStore:"\u30a6\u30a7\u30d6\u30b9\u30c8\u30a2\u306b\u884c\u304f",gracefulShutdown:"\u73fe\u5728\u3001\u30e1\u30f3\u30c6\u30ca\u30f3\u30b9\u306e\u305f\u3081\u30b5\u30fc\u30d3\u30b9\u304c\u505c\u6b62\u3057\u3066\u3044\u307e\u3059\u3002 \u5f8c\u3067\u3082\u3046\u4e00\u5ea6\u304a\u8a66\u3057\u304f\u3060\u3055\u3044\u3002",IamHost:"\u79c1\u306f\u30db\u30b9\u30c8\u3067\u3059",incorrectRoomLockPassword:"",incorrectPassword:"\u30e6\u30fc\u30b6\u30fc\u30cd\u30fc\u30e0\u307e\u305f\u306f\u30d1\u30b9\u30ef\u30fc\u30c9\u304c\u9055\u3044\u307e\u3059",inlineInstallationMsg:"\u30c7\u30b9\u30af\u30c8\u30c3\u30d7\u5171\u6709\u62e1\u5f35\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002",inlineInstallExtension:"\u4eca\u3059\u3050\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb",internalError:"Oops! \u4f55\u304b\u306e\u554f\u984c\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002 \u6b21\u306e\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\uff1a{{error}}",internalErrorTitle:"\u5185\u90e8\u30a8\u30e9\u30fc",kickMessage:"",kickParticipantButton:"\u8ffd\u3044\u51fa\u3059",kickParticipantDialog:"\u3053\u306e\u53c2\u52a0\u8005\u3092\u8ffd\u3044\u51fa\u3057\u307e\u3059\u304b",kickParticipantTitle:"",kickTitle:"",liveStreaming:"\u30e9\u30a4\u30d6\u30b9\u30c8\u30ea\u30fc\u30df\u30f3\u30b0",liveStreamingDisabledForGuestTooltip:"\u30b2\u30b9\u30c8\u304c\u30e9\u30a4\u30d6\u30b9\u30c8\u30ea\u30fc\u30df\u30f3\u30b0\u304c\u958b\u59cb\u3067\u304d\u307e\u305b\u3093",liveStreamingDisabledTooltip:"",lockMessage:"\u4f1a\u8b70\u3092\u30ed\u30c3\u30af\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002",lockRoom:"",lockTitle:"\u30ed\u30c3\u30af\u306b\u5931\u6557\u3057\u307e\u3057\u305f",logoutQuestion:"\u30ed\u30b0\u30a2\u30a6\u30c8\u3057\u3066\u4f1a\u8b70\u3092\u505c\u6b62\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b\uff1f",logoutTitle:"\u30ed\u30b0\u30a2\u30a6\u30c8",maxUsersLimitReached:"",maxUsersLimitReachedTitle:"",micConstraintFailedError:"\u3042\u306a\u305f\u306e\u30de\u30a4\u30af\u30ed\u30d5\u30a9\u30f3\u306f\u3001\u5fc5\u8981\u306a\u5236\u7d04\u306e\u3044\u304f\u3064\u304b\u3092\u6e80\u305f\u3057\u3066\u3044\u307e\u305b\u3093\u3002",micNotFoundError:"\u30de\u30a4\u30af\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002",micNotSendingData:"",micNotSendingDataTitle:"",micPermissionDeniedError:"\u30de\u30a4\u30af\u3092\u4f7f\u7528\u3059\u308b\u6a29\u9650\u304c\u3042\u308a\u307e\u305b\u3093\u3002 \u3042\u306a\u305f\u306f\u307e\u3060\u4f1a\u8b70\u306b\u53c2\u52a0\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u304c\u3001\u4ed6\u306e\u4eba\u306f\u3042\u306a\u305f\u306e\u58f0\u3092\u805e\u3051\u307e\u305b\u3093\u3002 \u3053\u306e\u554f\u984c\u3092\u89e3\u6c7a\u3059\u308b\u306b\u306f\u3001\u30a2\u30c9\u30ec\u30b9\u30d0\u30fc\u306e\u30ab\u30e1\u30e9\u30dc\u30bf\u30f3\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002",micUnknownError:"\u4e0d\u660e\u306a\u7406\u7531\u3067\u30de\u30a4\u30af\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002",muteParticipantBody:"\u3042\u306a\u305f\u306f\u305d\u306e\u30df\u30e5\u30fc\u30c8\u3092\u89e3\u9664\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u304c\u3001\u5f7c\u3089\u306f\u3044\u3064\u3067\u3082\u81ea\u5206\u81ea\u8eab\u306e\u30df\u30e5\u30fc\u30c8\u3092\u89e3\u9664\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002",muteParticipantButton:"\u30df\u30e5\u30fc\u30c8",muteParticipantDialog:"\u3053\u306e\u53c2\u52a0\u8005\u3092\u30df\u30e5\u30fc\u30c8\u3057\u307e\u3059\u304b\u3002\u3042\u306a\u305f\u304c\u53d6\u308a\u623b\u305b\u307e\u305b\u3093\u304c\u3001\u672c\u4eba\u304c\u81ea\u5206\u3067\u3044\u3064\u3067\u3082\u89e3\u9664\u3067\u3044\u307e\u3059\u3002",muteParticipantTitle:"",Ok:"Ok",passwordLabel:"",passwordNotSupported:"\u30df\u30fc\u30c6\u30a3\u30f3\u30b0\u30d1\u30b9\u30ef\u30fc\u30c9\u306e\u8a2d\u5b9a\u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002",passwordNotSupportedTitle:"",passwordRequired:"",popupError:"\u3042\u306a\u305f\u306e\u30d6\u30e9\u30a6\u30b6\u306f\u3053\u306e\u30b5\u30a4\u30c8\u304b\u3089\u306e\u30dd\u30c3\u30d7\u30a2\u30c3\u30d7\u30a6\u30a3\u30f3\u30c9\u30a6\u3092\u30d6\u30ed\u30c3\u30af\u3057\u3066\u3044\u307e\u3059\u3002 \u30d6\u30e9\u30a6\u30b6\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u8a2d\u5b9a\u3067\u30dd\u30c3\u30d7\u30a2\u30c3\u30d7\u3092\u6709\u52b9\u306b\u3057\u3066\u304b\u3089\u3001\u3082\u3046\u4e00\u5ea6\u304a\u8a66\u3057\u304f\u3060\u3055\u3044\u3002",popupErrorTitle:"\u30dd\u30c3\u30d7\u30a2\u30c3\u30d7\u304c\u30d6\u30ed\u30c3\u30af\u3055\u308c\u307e\u3057\u305f",recording:"\u9332\u753b",recordingDisabledForGuestTooltip:"\u30b2\u30b9\u30c8\u304c\u9332\u753b\u958b\u59cb\u3067\u304d\u307e\u305b\u3093\u3002",recordingDisabledTooltip:"",rejoinNow:"\u4eca\u3059\u3050\u518d\u53c2\u52a0",remoteControlAllowedMessage:"{{user}} \u306f\u3042\u306a\u305f\u306e\u30ea\u30e2\u30fc\u30c8\u30b3\u30f3\u30c8\u30ed\u30fc\u30eb\u8981\u6c42\u3092\u53d7\u3051\u5165\u308c\u307e\u3057\u305f\uff01",remoteControlDeniedMessage:"{{user}} \u306f\u3042\u306a\u305f\u306e\u30ea\u30e2\u30fc\u30c8\u30b3\u30f3\u30c8\u30ed\u30fc\u30eb\u8981\u6c42\u3092\u62d2\u5426\u3057\u307e\u3057\u305f\uff01",remoteControlErrorMessage:"\u30ea\u30e2\u30fc\u30c8\u30b3\u30f3\u30c8\u30ed\u30fc\u30eb\u306e\u30a2\u30af\u30bb\u30b9\u8a31\u53ef\u3092 {{user}} \u304b\u3089\u8981\u6c42\u3057\u3088\u3046\u3068\u3057\u3066\u3044\u308b\u3068\u304d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\uff01",remoteControlRequestMessage:"{{user}} \u306b\u30c7\u30b9\u30af\u30c8\u30c3\u30d7\u306e\u30ea\u30e2\u30fc\u30c8\u30b3\u30f3\u30c8\u30ed\u30fc\u30eb\u3092\u8a31\u53ef\u3057\u307e\u3059\u304b\uff1f",remoteControlShareScreenWarning:"\u300c\u8a31\u53ef\u300d\u3092\u62bc\u3059\u3068\u753b\u9762\u3092\u5171\u6709\u3059\u308b\u3053\u3068\u306b\u6ce8\u610f\u3057\u3066\u304f\u3060\u3055\u3044\uff01",remoteControlStopMessage:"\u30ea\u30e2\u30fc\u30c8\u30b3\u30f3\u30c8\u30ed\u30fc\u30eb\u30bb\u30c3\u30b7\u30e7\u30f3\u304c\u7d42\u4e86\u3057\u307e\u3057\u305f\uff01",remoteControlTitle:"\u30ea\u30e2\u30fc\u30c8\u30c7\u30b9\u30af\u30c8\u30c3\u30d7\u30b3\u30f3\u30c8\u30ed\u30fc\u30eb",Remove:"\u9664\u53bb",removePassword:"",removeSharedVideoMsg:"\u5171\u6709\u30d3\u30c7\u30aa\u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b\uff1f",removeSharedVideoTitle:"\u5171\u6709\u30d3\u30c7\u30aa\u3092\u524a\u9664\u3059\u308b",reservationError:"\u4e88\u7d04\u30b7\u30b9\u30c6\u30e0\u30a8\u30e9\u30fc",reservationErrorMsg:"\u30a8\u30e9\u30fc\u30b3\u30fc\u30c9: {{code}}, \u30e1\u30c3\u30bb\u30fc\u30b8: {{msg}}",retry:"\u518d\u8a66\u884c",screenSharingFailedToInstall:"Oops! \u753b\u9762\u5171\u6709\u62e1\u5f35\u6a5f\u80fd\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002",screenSharingFailedToInstallTitle:"\u753b\u9762\u5171\u6709\u62e1\u5f35\u6a5f\u80fd\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u306b\u5931\u6557\u3057\u307e\u3057\u305f",screenSharingFirefoxPermissionDeniedError:"",screenSharingFirefoxPermissionDeniedTitle:"Oops! \u753b\u9762\u5171\u6709\u3092\u958b\u59cb\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\uff01",screenSharingPermissionDeniedError:"Oops! \u753b\u9762\u5171\u6709\u306e\u62e1\u5f35\u30a2\u30af\u30bb\u30b9\u8a31\u53ef\u3067\u4f55\u304b\u554f\u984c\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002 \u518d\u8aad\u307f\u8fbc\u307f\u3057\u3066\u3082\u3046\u4e00\u5ea6\u304a\u8a66\u3057\u304f\u3060\u3055\u3044\u3002",serviceUnavailable:"\u30b5\u30fc\u30d3\u30b9\u306f\u5229\u7528\u3067\u304d\u307e\u305b\u3093",sessTerminated:"\u901a\u8a71\u7d42\u4e86",Share:"\u5171\u6709",shareVideoLinkError:"\u6b63\u3057\u3044YouTube\u306e\u30ea\u30f3\u30af\u3092\u63d0\u4f9b\u3057\u3066\u304f\u3060\u3055\u3044\u3002",shareVideoTitle:"\u52d5\u753b\u3092\u5171\u6709\u3059\u308b",shareYourScreen:"\u753b\u9762\u3092\u5171\u6709\u3059\u308b",shareYourScreenDisabled:"",shareYourScreenDisabledForGuest:"",startLiveStreaming:"\u30e9\u30a4\u30d6\u30b9\u30c8\u30ea\u30fc\u30e0\u3092\u958b\u59cb\u3059\u308b",startRecording:"\u9332\u753b\u3092\u958b\u59cb",startRemoteControlErrorMessage:"\u30ea\u30e2\u30fc\u30c8\u30b3\u30f3\u30c8\u30ed\u30fc\u30eb\u30bb\u30c3\u30b7\u30e7\u30f3\u306e\u958b\u59cb\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002",stopLiveStreaming:"\u30e9\u30a4\u30d6\u30b9\u30c8\u30ea\u30fc\u30df\u30f3\u30b0\u3092\u505c\u6b62\u3059\u308b",stopRecording:"\u9332\u753b\u3092\u505c\u6b62\u3059\u308b",stopRecordingWarning:"\u9332\u753b\u3092\u505c\u6b62\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b\uff1f",stopStreamingWarning:"\u30e9\u30a4\u30d6\u30b9\u30c8\u30ea\u30fc\u30df\u30f3\u30b0\u3092\u505c\u6b62\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b\uff1f",streamKey:"\u30e9\u30a4\u30d6\u30b9\u30c8\u30ea\u30fc\u30e0\u30ad\u30fc",Submit:"\u6295\u7a3f",thankYou:"{{appName}} \u3092\u4f7f\u7528\u3057\u3066\u3044\u305f\u3060\u304d\u3042\u308a\u304c\u3068\u3046\u3054\u3056\u3044\u307e\u3059\uff01",token:"\u30c8\u30fc\u30af\u30f3",tokenAuthFailed:"\u7533\u3057\u8a33\u3042\u308a\u307e\u305b\u3093\u304c\u3001\u3053\u306e\u901a\u8a71\u306b\u53c2\u52a0\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002",tokenAuthFailedTitle:"\u8a8d\u8a3c\u306b\u5931\u6557\u3057\u307e\u3057\u305f",transcribing:"\u66f8\u304d\u5199\u3057",unlockRoom:"",userPassword:"\u30e6\u30fc\u30b6\u30fc\u306e\u30d1\u30b9\u30ef\u30fc\u30c9",WaitForHostMsg:"",WaitForHostMsgWOk:"",WaitingForHost:"\u30db\u30b9\u30c8\u3092\u5f85\u3063\u3066\u3044\u307e\u3059...",Yes:"\u306f\u3044",yourEntireScreen:"\u3042\u306a\u305f\u306e\u753b\u9762\u5168\u4f53"},"\x05dialog":{accessibilityLabel:{}},dialOut:{statusMessage:"\u306f\u73fe\u5728 {{status}} \u3067\u3059"},feedback:{average:"\u666e\u901a",bad:"\u60aa\u3044",detailsLabel:"\u305d\u308c\u306b\u3064\u3044\u3066\u3082\u3063\u3068\u6559\u3048\u3066\u304f\u3060\u3055\u3044\u3002",good:"\u826f\u3044",rateExperience:"\u30d3\u30c7\u30aa\u901a\u8a71\u3092\u8a55\u4fa1\u3057\u3066\u304f\u3060\u3055\u3044",veryBad:"\u3068\u3066\u3082\u60aa\u3044",veryGood:"\u3068\u3066\u3082\u826f\u3044"},incomingCall:{answer:"",audioCallTitle:"",decline:"\u5374\u4e0b",productLabel:"",videoCallTitle:"\u30d3\u30c7\u30aa\u901a\u8a71\u7740\u4fe1"},info:{accessibilityLabel:"\u60c5\u5831\u3092\u8868\u793a\u3059\u308b",addPassword:"",cancelPassword:"",conferenceURL:"\u30ea\u30f3\u30af\uff1a",country:"\u56fd",dialANumber:"",dialInConferenceID:"PIN:",dialInNotSupported:"\u7533\u3057\u8a33\u3042\u308a\u307e\u305b\u3093\u304c\u3001\u73fe\u5728\u30c0\u30a4\u30e4\u30eb\u30a4\u30f3\u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002",dialInNumber:"\u30c0\u30a4\u30a2\u30eb\u30a4\u30f3\uff1a",dialInSummaryError:"",dialInTollFree:"",genericError:"\u304a\u3063\u3068\u3001\u4f55\u304b\u304c\u9593\u9055\u3063\u3066\u3044\u307e\u3057\u305f\u3002",inviteLiveStream:"\u3053\u306e\u4f1a\u8b70\u306e\u30e9\u30a4\u30d6\u30b9\u30c8\u30ea\u30fc\u30e0\u3092\u8868\u793a\u3059\u308b\u306b\u306f\u3001\u3053\u306e\u30ea\u30f3\u30af\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u304f\u3060\u3055\u3044\uff1a{{url}}",invitePhone:"",invitePhoneAlternatives:"",inviteURLFirstPartGeneral:"",inviteURLFirstPartPersonal:"",inviteURLSecondPart:"",liveStreamURL:"\u30e9\u30a4\u30d6\u30b9\u30c8\u30ea\u30fc\u30e0\uff1a",moreNumbers:"\u305d\u306e\u4ed6\u306e\u756a\u53f7",noNumbers:"\u30c0\u30a4\u30e4\u30eb\u30a4\u30f3\u756a\u53f7\u306f\u3042\u308a\u307e\u305b\u3093\u3002",noPassword:"\u306a\u3057",noRoom:"\u30c0\u30a4\u30e4\u30eb\u30a4\u30f3\u3059\u308b\u90e8\u5c4b\u304c\u6307\u5b9a\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3067\u3057\u305f\u3002",numbers:"\u30c0\u30a4\u30e4\u30eb\u30a4\u30f3\u756a\u53f7",password:"",title:"\u5171\u6709",tooltip:"\u3053\u306e\u4f1a\u8b70\u306e\u30ea\u30f3\u30af\u3068\u30c0\u30a4\u30e4\u30eb\u30a4\u30f3\u60c5\u5831\u3092\u5171\u6709\u3059\u308b",label:"\u30df\u30fc\u30c6\u30a3\u30f3\u30b0\u60c5\u5831"},"\x05info":{},inviteDialog:{alertText:"",header:"\u62db\u5f85",searchCallOnlyPlaceholder:"\u643a\u5e2f\u756a\u53f7\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044",searchPeopleOnlyPlaceholder:"\u53c2\u52a0\u8005\u3092\u691c\u7d22\u3059\u308b",searchPlaceholder:"\u30cb\u30c3\u30af\u30cd\u30fc\u30e0\u3001\u307e\u305f\u306f\u96fb\u8a71\u756a\u53f7",send:"\u9001\u4fe1"},inlineDialogFailure:{msg:"\u79c1\u305f\u3061\u306f\u5c11\u3057\u3064\u307e\u305a\u304d\u307e\u3057\u305f\u3002",retry:"\u518d\u8a66\u884c\u3059\u308b",support:"\u30b5\u30dd\u30fc\u30c8",supportMsg:"\u3053\u308c\u304c\u8d77\u3053\u3063\u3066\u3044\u308b\u5834\u5408\u306f\u3001"},keyboardShortcuts:{focusLocal:"\u81ea\u5206\u306e\u30d3\u30c7\u30aa\u306b\u7126\u70b9",focusRemote:"\u4ed6\u306e\u30e1\u30f3\u30d0\u30fc\u306e\u30d3\u30c7\u30aa\u306b\u7126\u70b9",fullScreen:"\u5168\u753b\u9762\u8868\u793a/\u7d42\u4e86",keyboardShortcuts:"\u30ad\u30fc\u30dc\u30fc\u30c9\u30b7\u30e7\u30fc\u30c8\u30ab\u30c3\u30c8",localRecording:"\u30ed\u30fc\u30ab\u30eb\u9332\u753b\u30b3\u30f3\u30c8\u30ed\u30fc\u30eb\u306e\u8868\u793a\uff0f\u975e\u8868\u793a",mute:"\u30de\u30a4\u30af\u306e\u6d88\u97f3 ( \u30df\u30e5\u30fc\u30c8 )",pushToTalk:"\u8a71\u3059\u305f\u3081\u306b\u62bc\u3059",raiseHand:"\u624b\u3092\u4e0a\u3052\u308b/\u4e0b\u3052\u308b",showSpeakerStats:"\u6f14\u8aac\u8005\u306e\u30c7\u30fc\u30bf\u3092\u8868\u793a",toggleChat:"\u30c1\u30e3\u30c3\u30c8\u3092\u8868\u793a/\u975e\u8868\u793a",toggleFilmstrip:"\u52d5\u753b\u30b5\u30e0\u30cd\u30a4\u30eb\u8868\u793a/\u975e\u8868\u793a",toggleScreensharing:"\u30ab\u30e1\u30e9\u3068\u753b\u9762\u5171\u6709\u3092\u5207\u308a\u66ff\u3048\u308b",toggleShortcuts:"\u30ad\u30fc\u30dc\u30fc\u30c9 \u30b7\u30e7\u30fc\u30c8\u30ab\u30c3\u30c8\u3092\u8868\u793a",videoMute:"\u30ab\u30e1\u30e9\u3092\u6709\u52b9/\u7121\u52b9"},"\x05keyboardShortcuts":{},liveStreaming:{busy:"\u79c1\u305f\u3061\u306f\u30b9\u30c8\u30ea\u30fc\u30df\u30f3\u30b0\u30ea\u30bd\u30fc\u30b9\u3092\u89e3\u653e\u3059\u308b\u305f\u3081\u306b\u53d6\u308a\u7d44\u3093\u3067\u3044\u307e\u3059\u3002 \u6570\u5206\u5f8c\u306b\u3082\u3046\u4e00\u5ea6\u304a\u8a66\u3057\u304f\u3060\u3055\u3044\u3002",busyTitle:"\u3059\u3079\u3066\u306e\u30b9\u30c8\u30ea\u30fc\u30de\u30fc\u306f\u73fe\u5728\u30d3\u30b8\u30fc\u72b6\u614b\u3067\u3059",changeSignIn:"\u30a2\u30ab\u30a6\u30f3\u30c8\u3092\u5207\u308a\u66ff\u3048\u307e\u3059\u3002",choose:"\u30e9\u30a4\u30d6\u30b9\u30c8\u30ea\u30fc\u30e0\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044",chooseCTA:"\u30b9\u30c8\u30ea\u30fc\u30df\u30f3\u30b0\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u9078\u629e\u3057\u307e\u3059\u3002 \u3042\u306a\u305f\u306f\u73fe\u5728\u3001{{email}} \u3068\u3057\u3066\u30ed\u30b0\u30a4\u30f3\u3057\u3066\u3044\u307e\u3059\u3002",enterStreamKey:"YouTube\u306e\u30e9\u30a4\u30d6\u30b9\u30c8\u30ea\u30fc\u30e0\u30ad\u30fc\u3092\u3053\u3053\u306b\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002",error:"\u30e9\u30a4\u30d6\u30b9\u30c8\u30ea\u30fc\u30df\u30f3\u30b0\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 \u3082\u3046\u4e00\u5ea6\u304a\u8a66\u3057\u304f\u3060\u3055\u3044\u3002",errorAPI:"YouTube\u30d6\u30ed\u30fc\u30c9\u30ad\u30e3\u30b9\u30c8\u306b\u30a2\u30af\u30bb\u30b9\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002 \u3082\u3046\u4e00\u5ea6\u30ed\u30b0\u30a4\u30f3\u3057\u3066\u304f\u3060\u3055\u3044\u3002",errorLiveStreamNotEnabled:"",expandedOff:"",expandedOn:"",expandedPending:"",failedToStart:"\u30e9\u30a4\u30d6\u30b9\u30c8\u30ea\u30fc\u30df\u30f3\u30b0\u306e\u958b\u59cb\u306b\u5931\u6557\u3057\u307e\u3057\u305f",getStreamKeyManually:"",invalidStreamKey:"\u30e9\u30a4\u30d6\u30b9\u30c8\u30ea\u30fc\u30df\u30f3\u30b0\u30ad\u30fc\u304c\u9593\u306b\u5408\u3044\u307e\u3057\u305f\u3002",off:"\u30e9\u30a4\u30d6\u30b9\u30c8\u30ea\u30fc\u30df\u30f3\u30b0\u304c\u505c\u6b62\u3057\u307e\u3057\u305f",on:"\u30e9\u30a4\u30d6\u30b9\u30c8\u30ea\u30fc\u30df\u30f3\u30b0",pending:"\u30e9\u30a4\u30d6\u30b9\u30c8\u30ea\u30fc\u30e0\u3092\u958b\u59cb\u3057\u3066\u3044\u307e\u3059...",serviceName:"\u30e9\u30a4\u30d6\u30b9\u30c8\u30ea\u30fc\u30df\u30f3\u30b0\u30b5\u30fc\u30d3\u30b9",signedInAs:"",signIn:"Google\u3067\u30ed\u30b0\u30a4\u30f3",signInCTA:"\u30ed\u30b0\u30a4\u30f3\u3059\u308b\u304b\u3001YouTube\u306e\u30e9\u30a4\u30d6\u30b9\u30c8\u30ea\u30fc\u30e0\u30ad\u30fc\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002",signOut:"\u30b5\u30a4\u30f3\u30a2\u30a6\u30c8",start:"\u30e9\u30a4\u30d6\u30b9\u30c8\u30ea\u30fc\u30e0\u3092\u958b\u59cb\u3059\u308b",streamIdHelp:"\u3053\u308c\u306f\u4f55\u3067\u3059\u304b\uff1f",unavailableTitle:"\u30e9\u30a4\u30d6\u30b9\u30c8\u30ea\u30fc\u30df\u30f3\u30b0\u306f\u5229\u7528\u3067\u304d\u307e\u305b\u3093"},"\x05liveStreaming":{},localRecording:{clientState:{off:"\u30aa\u30d5",on:"\u30aa\u30f3",unknown:"\u4e0d\u660e"},dialogTitle:"",duration:"",durationNA:"",encoding:"",label:"LOR",labelToolTip:"\u30ed\u30fc\u30ab\u30eb\u30ec\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u5b9f\u65bd\u4e2d",localRecording:"",me:"\u79c1",messages:{engaged:"\u30ed\u30fc\u30ab\u30eb\u30ec\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u5b9f\u65bd",finished:"",finishedModerator:"",notModerator:""},moderator:"\u30e2\u30c7\u30ec\u30fc\u30bf\u30fc",no:"\u3044\u3044\u3048",participant:"",participantStats:"",sessionToken:"",start:"\u9332\u753b\u3092\u958b\u59cb",stop:"\u9332\u753b\u3092\u505c\u6b62\u3059\u308b",yes:"\u306f\u3044"},"\x05localRecording":{},lockRoomPassword:"\u30d1\u30b9\u30ef\u30fc\u30c9",lockRoomPasswordUppercase:"\u30d1\u30b9\u30ef\u30fc\u30c9",me:"\u79c1",notify:{connectedOneMember:"",connectedThreePlusMembers:"",connectedTwoMembers:"",disconnected:"\u5207\u65ad\u3055\u308c\u307e\u3057\u305f",focus:"",focusFail:"",grantedTo:"{{to}} \u3078\u30e2\u30c7\u30ec\u30fc\u30bf\u30fc\u306e\u6a29\u5229\u304c\u4ed8\u4e0e\u3055\u308c\u307e\u3057\u305f\uff01",invitedOneMember:"",invitedThreePlusMembers:"",invitedTwoMembers:"",kickParticipant:"",me:"\u79c1",moderator:"\u30e2\u30c7\u30ec\u30fc\u30bf\u30fc\u306e\u6a29\u5229\u304c\u4ed8\u4e0e\u3055\u308c\u307e\u3057\u305f\uff01",muted:"$t(notify.somebody) \u3078\u30e2\u30c7\u30ec\u30fc\u30bf\u30fc\u306e\u6a29\u5229\u304c\u4ed8\u4e0e\u3055\u308c\u307e\u3057\u305f\uff01",mutedTitle:"\u3042\u306a\u305f\u306f\u30df\u30e5\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u3059\uff01",mutedRemotelyTitle:"",mutedRemotelyDescription:"",passwordRemovedRemotely:"",passwordSetRemotely:"",raisedHand:"",somebody:"\u8ab0\u304b",startSilentTitle:"",startSilentDescription:"",suboptimalExperienceDescription:"",suboptimalExperienceTitle:"",unmute:"",newDeviceCameraTitle:"",newDeviceAudioTitle:"",newDeviceAction:""},passwordSetRemotely:"",passwordDigitsOnly:"",poweredby:"powered by",presenceStatus:{busy:"",calling:"",connected:"\u63a5\u7d9a\u3055\u308c\u307e\u3057\u305f",connecting:"\u63a5\u7d9a\u4e2d",connecting2:"\u63a5\u7d9a\u4e2d",disconnected:"\u5207\u65ad\u3055\u308c\u307e\u3057\u305f",expired:"",ignored:"",initializingCall:"",invited:"\u62db\u5f85",rejected:"",ringing:"\u7740\u4fe1\u3057\u3066\u3044\u308b\u30fb\u30fb"},"\x05presenceStatus":{},profile:{setDisplayNameLabel:"\u8868\u793a\u540d\u3092\u8a2d\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044",setEmailInput:"\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044",setEmailLabel:"\u30e1\u30fc\u30eb\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044",title:"\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb"},recording:{authDropboxText:"Dropbox\u306b\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9",availableSpace:"",beta:"BETA",busy:"\u79c1\u305f\u3061\u306f\u3001\u9332\u753b\u30ea\u30bd\u30fc\u30b9\u306e\u89e3\u653e\u306b\u53d6\u308a\u7d44\u3093\u3067\u3044\u307e\u3059\u3002 \u6570\u5206\u5f8c\u306b\u3082\u3046\u4e00\u5ea6\u304a\u8a66\u3057\u304f\u3060\u3055\u3044\u3002",busyTitle:"\u3059\u3079\u3066\u306e\u30ec\u30b3\u30fc\u30c0\u30fc\u304c\u73fe\u5728\u30d3\u30b8\u30fc\u72b6\u614b\u3067\u3059",error:"\u9332\u753b\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 \u3082\u3046\u4e00\u5ea6\u304a\u8a66\u3057\u304f\u3060\u3055\u3044\u3002",expandedOff:"\u9332\u753b\u304c\u505c\u6b62\u3057\u307e\u3057\u305f",expandedOn:"",expandedPending:"\u9332\u753b\u958b\u59cb\u3057\u3066\u3044\u308b\u3002\u3002\u3002",failedToStart:"\u9332\u753b\u3092\u958b\u59cb\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f",fileSharingdescription:"\u9332\u753b\u30c7\u30fc\u30bf\u3092\u5171\u6709\u3059\u308b",live:"\u30e9\u30a4\u30d6",loggedIn:"",off:"\u9332\u753b\u304c\u505c\u6b62\u3057\u307e\u3057\u305f",on:"\u9332\u753b",pending:"\u30df\u30fc\u30c6\u30a3\u30f3\u30b0\u306e\u767b\u9332\u3092\u6e96\u5099\u3057\u3066\u3044\u307e\u3059\u3002\u3002\u3002",rec:"REC",serviceDescription:"\u30d3\u30c7\u30aa\u304c\u9332\u753b\u30b5\u30fc\u30d3\u30b9\u3067\u9332\u753b\u3055\u308c\u307e\u3059",serviceName:"\u8a18\u9332\u30b5\u30fc\u30d3\u30b9",signIn:"\u30b5\u30a4\u30f3\u30a4\u30f3",signOut:"\u30b5\u30a4\u30f3\u30a2\u30a6\u30c8",unavailable:"Oops! {{serviceName}} \u306f\u73fe\u5728\u4f7f\u7528\u3067\u304d\u307e\u305b\u3093\u3002 \u79c1\u305f\u3061\u306f\u3053\u306e\u554f\u984c\u306e\u89e3\u6c7a\u306b\u53d6\u308a\u7d44\u3093\u3067\u3044\u307e\u3059\u3002 \u5f8c\u3067\u3082\u3046\u4e00\u5ea6\u304a\u8a66\u3057\u304f\u3060\u3055\u3044\u3002",unavailableTitle:"\u9332\u753b\u3067\u304d\u307e\u305b\u3093"},"\x05recording":{},sectionList:{pullToRefresh:"\u30d7\u30eb\u3057\u3066\u30ea\u30d5\u30ec\u30c3\u30b7\u30e5\u3059\u308b"},settings:{calendar:{about:"",disconnect:"\u5207\u65ad\u3055\u308c\u307e\u3057\u305f",microsoftSignIn:"\u30de\u30a4\u30af\u30ed\u30bd\u30d5\u30c8\u30a2\u30ab\u30a6\u30f3\u30c8\u3067\u30ed\u30b0\u30a4\u30f3",signedIn:"",title:"\u30ab\u30ec\u30f3\u30c0\u30fc"},devices:"\u7aef\u672b",followMe:"\u5168\u54e1\u30d5\u30a9\u30ed\u30fc\u30df\u30fc",language:"\u8a00\u8a9e",loggedIn:"",moderator:"\u30e2\u30c7\u30ec\u30fc\u30bf\u30fc",more:"\u305d\u306e\u4ed6",name:"\u540d\u524d",noDevice:"\u306a\u3057",selectAudioOutput:"\u97f3\u58f0\u51fa\u529b",selectCamera:"\u30ab\u30e1\u30e9",selectMic:"\u30de\u30a4\u30af",startAudioMuted:"\u5168\u54e1\u30df\u30e5\u30fc\u30c8\u306b\u3059\u308b",startVideoMuted:"\u5168\u54e1\u975e\u8868\u793a\u306b\u3059\u308b",title:"\u8a2d\u5b9a"},"\x05settings":{calendar:{}},settingsView:{alertOk:"OK",alertTitle:"Warning",alertURLText:"\u5165\u529b\u3055\u308c\u305f\u30b5\u30fc\u30d0\u30fc\u306eURL\u306f\u7121\u52b9\u3067\u3059",buildInfoSection:"",conferenceSection:"\u4f1a\u8b70",displayName:"\u8868\u793a\u540d",email:"E\u30e1\u30fc\u30eb",header:"\u8a2d\u5b9a",profileSection:"\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb",serverURL:"\u30b5\u30fc\u30d0\u30fc\u306eURL",startWithAudioMuted:"\u30aa\u30fc\u30c7\u30a3\u30aa\u3092\u30df\u30e5\u30fc\u30c8\u3067\u958b\u59cb",startWithVideoMuted:"\u30d3\u30c7\u30aa\u3092\u30df\u30e5\u30fc\u30c8\u3067\u958b\u59cb",version:"\u30d0\u30fc\u30b8\u30e7\u30f3"},share:{dialInfoText:"",mainText:""},speaker:"\u30b9\u30d4\u30fc\u30ab\u30fc",speakerStats:{hours:"{{count}} \u6642\u9593",minutes:"{{count}} \u5206",name:"\u540d\u524d",seconds:"{{count}} \u79d2",speakerStats:"\u8a71\u8005\u306e\u7d71\u8a08",speakerTime:"\u8a71\u3059\u6642\u9593"},"\x05speakerStats":{},startupoverlay:{policyText:" ",title:"{{app}} \u3092\u4f7f\u7528\u3059\u308b\u306b\u306f\u3001\u30de\u30a4\u30af\u3068\u30ab\u30e1\u30e9\u304c\u5fc5\u8981\u3067\u3059\u3002"},"\x05startupoverlay":{},suspendedoverlay:{rejoinKeyTitle:"\u518d\u53c2\u52a0",text:"\u518d\u63a5\u7d9a\u3059\u308b\u306b\u306f\u3001\u518d\u53c2\u52a0 \u30dc\u30bf\u30f3\u3092\u62bc\u3057\u3066\u304f\u3060\u3055\u3044\u3002",title:"\u3053\u306e\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u304c\u30b9\u30ea\u30fc\u30d7\u72b6\u614b\u306b\u306a\u3063\u305f\u305f\u3081\u3001\u30d3\u30c7\u30aa\u901a\u8a71\u304c\u4e2d\u65ad\u3055\u308c\u307e\u3057\u305f\u3002"},toolbar:{accessibilityLabel:{audioOnly:"\u97f3\u58f0\u306e\u307f\u306b\u5207\u308a\u66ff\u3048\u308b",audioRoute:"\u30b5\u30a6\u30f3\u30c9\u30c7\u30d0\u30a4\u30b9\u3092\u9078\u629e\u3059\u308b",callQuality:"",cc:"\u30b5\u30d6\u30bf\u30a4\u30c8\u30eb\u306b\u5207\u308a\u66ff\u3048\u308b",chat:"\u30c1\u30e3\u30c3\u30c8\u753b\u9762\u306b\u5207\u308a\u66ff\u3048\u308b",document:"\u5168\u753b\u9762\u306b\u5207\u308a\u66ff\u3048\u308b",feedback:"\u30d5\u30a3\u30fc\u30c9\u30d0\u30c3\u30af\u3092\u6b8b\u3059",fullScreen:"\u5168\u753b\u9762\u306b\u5207\u308a\u66ff\u3048\u308b",hangup:"\u96fb\u8a71\u3092\u304b\u3051\u308b",invite:"\u30e1\u30f3\u30d0\u30fc\u3092\u62db\u5f85\u3059\u308b",kick:"\u53c2\u52a0\u8005\u3092\u8ffd\u3044\u51fa\u3059",localRecording:"\u30ed\u30fc\u30ab\u30eb\u30ec\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u30b3\u30f3\u30c8\u30ed\u30fc\u30eb\u306b\u5207\u308a\u66ff\u3048\u308b",lockRoom:"\u30df\u30fc\u30c6\u30a3\u30f3\u30b0\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u5207\u308a\u66ff\u3048\u308b",moreActions:"\u3088\u308a\u591a\u304f\u306e\u64cd\u4f5c\u30e1\u30cb\u30e5\u30fc\u306b\u5207\u308a\u66ff\u3048\u308b",moreActionsMenu:"\u4ed6\u306e\u30e1\u30cb\u30e5\u30fc",mute:"\u30df\u30e5\u30fc\u30c8\u30e2\u30fc\u30c9\u3092\u5207\u308a\u66ff\u3048\u308b",pip:"\u30d4\u30af\u30c1\u30e3\u30fc\u30a4\u30f3\u30d4\u30af\u30c1\u30e3\u30fc\u30e2\u30fc\u30c9\u3092\u5207\u308a\u66ff\u3048\u308b",profile:"\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u7de8\u96c6",raiseHand:"\u624b\u3092\u6319\u3052\u308b\u30fb\u4e0b\u3052\u308b",recording:"\u30ec\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u306b\u5207\u308a\u66ff\u3048\u308b",remoteMute:"\u53c2\u52a0\u8005\u3092\u8ffd\u3044\u51fa\u3059",Settings:"\u8a2d\u5b9a\u306b\u5207\u308a\u66ff\u3048\u308b",sharedvideo:"Youtube\u30d3\u30c7\u30aa\u5171\u6709\u306b\u5207\u308a\u66ff\u3048\u308b",shareRoom:"\u8ab0\u304b\u3092\u62db\u5f85\u3059\u308b",shareYourScreen:"\u753b\u9762\u5171\u6709\u306b\u5207\u308a\u66ff\u3048\u308b",shortcuts:"\u30b7\u30e7\u30fc\u30c8\u30ab\u30c3\u30c8\u306b\u5207\u308a\u66ff\u3048\u308b",show:"",speakerStats:"\u30b9\u30d4\u30fc\u30ab\u30fc\u7d71\u8a08\u306b\u5207\u308a\u66ff\u3048\u308b",tileView:"",toggleCamera:"\u30ab\u30e1\u30e9\u3092\u5207\u308a\u66ff\u3048\u308b",videomute:"\u30df\u30e5\u30fc\u30c8\u30d3\u30c7\u30aa\u306b\u5207\u308a\u66ff\u3048\u308b",videoblur:""},addPeople:"\u3042\u306a\u305f\u306e\u901a\u8a71\u306b\u4eba\u3092\u8ffd\u52a0\u3059\u308b",audioOnlyOff:"\u97f3\u58f0\u306e\u307f\u30e2\u30fc\u30c9\u3092\u7121\u52b9\u306b\u3059\u308b",audioOnlyOn:"\u97f3\u58f0\u306e\u307f\u30e2\u30fc\u30c9\u958b\u59cb",audioRoute:"\u30b5\u30a6\u30f3\u30c9\u30c7\u30d0\u30a4\u30b9\u3092\u9078\u629e\u3059\u308b",authenticate:"\u8a8d\u8a3c",callQuality:"\u901a\u8a71\u54c1\u8cea\u3092\u7ba1\u7406\u3059\u308b",chat:"\u30c1\u30e3\u30c3\u30c8\u3092\u958b\u304f / \u9589\u3058\u308b",closeChat:"\u30c1\u30e3\u30c3\u30c8\u3092\u9589\u3058\u308b",documentClose:"\u5171\u6709\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3092\u9589\u3058\u308b",documentOpen:"\u5171\u6709\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3092\u958b\u304f",enterFullScreen:"\u30d5\u30eb\u30b9\u30af\u30ea\u30fc\u30f3\u8868\u793a",enterTileView:"\u30bf\u30a4\u30c8\u30eb\u30d3\u30e5\u30fc\u3092\u958b\u59cb",exitFullScreen:"\u30d5\u30eb\u30b9\u30af\u30ea\u30fc\u30f3\u3092\u7d42\u4e86",exitTileView:"\u30bf\u30a4\u30c8\u30eb\u30d3\u30e5\u30fc\u3092\u7d42\u4e86",feedback:"\u30d5\u30a3\u30fc\u30c9\u30d0\u30c3\u30af\u3092\u6b8b\u3059",hangup:"\u9000\u51fa",invite:"\u30e1\u30f3\u30d0\u30fc\u3092\u62db\u5f85\u3059\u308b",login:"\u30ed\u30b0\u30a4\u30f3",logout:"\u30ed\u30b0\u30a2\u30a6\u30c8",lowerYourHand:"\u624b\u3092\u4e0b\u3052\u308b",moreActions:"\u305d\u306e\u4ed6\u306e\u30a2\u30af\u30b7\u30e7\u30f3",mute:"\u30df\u30e5\u30fc\u30c8 / \u30df\u30e5\u30fc\u30c8\u89e3\u9664",openChat:"\u30c1\u30e3\u30c3\u30c8\u3092\u958b\u304f",pip:"Picture-in-Picture\u30e2\u30fc\u30c9\u306b\u5165\u308b",profile:"\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u7de8\u96c6",raiseHand:"\u624b\u3092\u4e0a\u3052\u308b / \u4e0b\u3052\u308b",raiseYourHand:"\u624b\u3092\u6319\u3052\u308b",Settings:"\u8a2d\u5b9a",sharedvideo:"YouTube\u52d5\u753b\u3092\u5171\u6709\u3059\u308b",shareRoom:"\u8ab0\u304b\u3092\u62db\u5f85\u3059\u308b",shortcuts:"\u30b7\u30e7\u30fc\u30c8\u30ab\u30c3\u30c8\u3092\u8868\u793a",speakerStats:"\u8a71\u8005\u306e\u7d71\u8a08",startScreenSharing:"\u753b\u9762\u5171\u6709\u958b\u59cb",startSubtitles:"\u5b57\u5e55\u958b\u59cb",stopScreenSharing:"\u753b\u9762\u5171\u6709\u505c\u6b62",stopSubtitles:"\u5b57\u5e55\u505c\u6b62",stopSharedVideo:"YouTube\u52d5\u753b\u3092\u505c\u6b62\u3059\u308b",talkWhileMutedPopup:"\u8a71\u305d\u3046\u3068\u3057\u3066\u3044\u307e\u3059\u304b\uff1f \u3042\u306a\u305f\u306f\u30df\u30e5\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u3059\u3002",tileViewToggle:"",toggleCamera:"\u30ab\u30e1\u30e9\u3092\u5207\u308a\u66ff\u3048\u308b",videomute:"\u30ab\u30e1\u30e9\u306e\u958b\u59cb / \u505c\u6b62",startvideoblur:"",stopvideoblur:""},"\x05toolbar":{accessibilityLabel:{}},transcribing:{ccButtonTooltip:"\u5b57\u5e55\u3092\u8868\u793a\u30fb\u975e\u8868\u793a\u3059\u308b",error:"\u9332\u753b\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 \u3082\u3046\u4e00\u5ea6\u304a\u8a66\u3057\u304f\u3060\u3055\u3044\u3002",expandedLabel:"\u66f8\u304d\u5199\u3057\u304c\u30aa\u30f3\u306b\u306a\u3063\u3066\u3044\u308b",failedToStart:"\u66f8\u304d\u5199\u3057\u3092\u30b9\u30bf\u30fc\u30c8\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002",labelToolTip:"\u30df\u30fc\u30c6\u30a3\u30f3\u30b0\u304c\u66f8\u304d\u5199\u3057\u3055\u308c\u3066\u3044\u307e\u3059\u3002",off:"\u66f8\u304d\u5199\u3057\u304c\u505c\u6b62\u3055\u308c\u3066\u3044\u308b",pending:"\u30df\u30fc\u30c6\u30a3\u30f3\u30b0\u306e\u66f8\u304d\u5199\u3057\u3092\u6e96\u5099\u3057\u3066\u3044\u307e\u3059\u3002\u3002\u3002",start:"\u5b57\u5e55\u3092\u8868\u793a\u3059\u308b",stop:"\u5b57\u5e55\u3092\u975e\u8868\u793a\u3059\u308b",tr:"TR"},"\x05transcribing":{},userMedia:{androidGrantPermissions:"\u30d6\u30e9\u30a6\u30b6\u30fc\u306e\u30dd\u30c3\u30d7\u30a2\u30c3\u30d7\u3067\u8a31\u53ef\u3059\u308b\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044",chromeGrantPermissions:"\u30d6\u30e9\u30a6\u30b6\u30fc\u306e\u30dd\u30c3\u30d7\u30a2\u30c3\u30d7\u3067\u8a31\u53ef\u3059\u308b\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044",edgeGrantPermissions:"\u30e9\u30a6\u30b6\u30fc\u306e\u30dd\u30c3\u30d7\u30a2\u30c3\u30d7\u3067\u8a31\u53ef\u3059\u308b\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002",electronGrantPermissions:"\u30de\u30a4\u30af\u3068\u30ab\u30e1\u30e9\u306e\u5171\u6709\u3092\u8a31\u53ef\u3057\u3066\u304f\u3060\u3055\u3044",firefoxGrantPermissions:"\u30c7\u30d0\u30a4\u30b9\u3092\u5171\u6709 \u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002",iexplorerGrantPermissions:"\u30d6\u30e9\u30a6\u30b6\u30fc\u306e\u30dd\u30c3\u30d7\u30a2\u30c3\u30d7\u3067\u8a31\u53ef\u3059\u308b\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002",nwjsGrantPermissions:"\u30de\u30a4\u30af\u3068\u30ab\u30e1\u30e9\u306e\u5171\u6709\u3092\u8a31\u53ef\u3057\u3066\u304f\u3060\u3055\u3044",operaGrantPermissions:"\u30d6\u30e9\u30a6\u30b6\u30fc\u306e\u30dd\u30c3\u30d7\u30a2\u30c3\u30d7\u3067\u8a31\u53ef\u3059\u308b\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044","react-nativeGrantPermissions":"\u30d6\u30e9\u30a6\u30b6\u30fc\u306e\u30dd\u30c3\u30d7\u30a2\u30c3\u30d7\u3067\u8a31\u53ef\u3059\u308b\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044",safariGrantPermissions:"\u30d6\u30e9\u30a6\u30b6\u30fc\u306e\u30dd\u30c3\u30d7\u30a2\u30c3\u30d7\u3067\u8a31\u53ef\u3059\u308b\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002"},videoSIPGW:{busy:"\u30ea\u30bd\u30fc\u30b9\u3092\u6574\u7406\u3057\u3066\u3044\u307e\u3059\u3002\u5c11\u3005\u304a\u5f85\u3061\u304f\u3060\u3055\u3044\u3002",busyTitle:"\u30eb\u30fc\u30e0\u30b5\u30fc\u30d3\u30b9\u304c\u305f\u3060\u3044\u307e\u6df7\u3093\u3067\u3044\u307e\u3059\u3002",errorAlreadyInvited:"{{displayName}}\u3055\u3093\u304c\u3059\u3067\u306b\u62db\u5f85\u3055\u308c\u307e\u3057\u305f",errorInvite:"\u4f1a\u8b70\u304c\u307e\u3060\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002\u3082\u3046\u4e00\u5ea6\u304a\u8a66\u3057\u304f\u3060\u3055\u3044\u3002",errorInviteFailed:"\u554f\u984c\u3092\u89e3\u6c7a\u3057\u3066\u3044\u307e\u3059\u3002\u3057\u3070\u3089\u304f\u3057\u305f\u3089\u307e\u305f\u304a\u8a66\u3057\u304f\u3060\u3055\u3044\u3002",errorInviteFailedTitle:" {{displayName}}\u3055\u3093\u304c\u62db\u5f85\u3067\u304d\u307e\u305b\u3093\u3002",errorInviteTitle:"\u62db\u96c6\u30a8\u30e9\u30fc",pending:"{{displayName}} \u304c\u62db\u5f85\u3055\u308c\u307e\u3057\u305f"},videoStatus:{audioOnly:"\u97f3\u58f0\u306e\u307f",audioOnlyExpanded:"\u97f3\u58f0\u306e\u307f\u30e2\u30fc\u30c9\u3067\u3001\u4ed6\u306e\u53c2\u52a0\u8005\u306e\u30d3\u30c7\u30aa\u304c\u898b\u3048\u306a\u3044\u3002",callQuality:"",hd:"HD",highDefinition:"\u9ad8\u753b\u8cea",labelTooiltipNoVideo:"\u30d3\u30c7\u30aa\u304c\u306a\u3044",labelTooltipAudioOnly:"\u97f3\u58f0\u306e\u307f\u30e2\u30fc\u30c9\u304c\u6709\u52b9",ld:"LD",lowDefinition:"\u4f4e\u753b\u8cea",onlyAudioAvailable:"\u97f3\u58f0\u306e\u307f\u5229\u7528\u53ef\u80fd",onlyAudioSupported:"\u3053\u306e\u30d6\u30e9\u30a6\u30b6\u3067\u306f\u97f3\u58f0\u306e\u307f\u3092\u30b5\u30dd\u30fc\u30c8\u3057\u3066\u3044\u307e\u3059\u3002",p2pEnabled:"\u30d4\u30a2\u30fb\u30c4\u30fc\u30fb\u30d4\u30a2\u30e2\u30fc\u30c9\u6709\u52b9\u3057\u3066\u3044\u308b",p2pVideoQualityDescription:"",recHighDefinitionOnly:"",sd:"SD",standardDefinition:"\u6a19\u6e96\u753b\u8cea"},videothumbnail:{domute:"\u30df\u30e5\u30fc\u30c8",flip:"\u30d5\u30ea\u30c3\u30d7",kick:"\u8ffd\u3044\u51fa\u3059",moderator:"\u30e2\u30c7\u30ec\u30fc\u30bf\u30fc",mute:"",muted:"\u30df\u30e5\u30fc\u30c8",remoteControl:"\u30ea\u30e2\u30fc\u30c8\u30b3\u30f3\u30c8\u30ed\u30fc\u30eb",show:"",videomute:""},welcomepage:{accessibilityLabel:{join:"\u30bf\u30c3\u30d7\u3057\u3066\u53c2\u52a0",roomname:"\u30eb\u30fc\u30e0\u540d\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044"},appDescription:"\u30c1\u30fc\u30e0\u5168\u4f53\u3068\u30d3\u30c7\u30aa\u30c1\u30e3\u30c3\u30c8\u3057\u307e\u3057\u3087\u3046\u3002\u3042\u306a\u305f\u304c\u77e5\u3063\u3066\u3044\u308b\u7686\u3055\u3093\u3092\u62db\u5f85\u3057\u3066\u304f\u3060\u3055\u3044\u3002{{app}}\u306f\u5b8c\u5168\u306b\u6697\u53f7\u5316\u3055\u308c\u305f100\uff05\u30aa\u30fc\u30d7\u30f3\u30bd\u30fc\u30b9\u306e\u30d3\u30c7\u30aa\u4f1a\u8b70\u30bd\u30ea\u30e5\u30fc\u30b7\u30e7\u30f3\u3067\u3001\u4e00\u65e5\u4e2d\u3001\u6bce\u65e5\u7121\u6599\u3067\u3054\u5229\u7528\u3044\u305f\u3060\u3051\u307e\u3059\u3002\u30a2\u30ab\u30a6\u30f3\u30c8\u306f\u5fc5\u8981\u3042\u308a\u307e\u305b\u3093\u3002",audioVideoSwitch:{audio:"\u97f3\u58f0",video:"\u6620\u50cf"},calendar:"\u30ab\u30ec\u30f3\u30c0\u30fc",connectCalendarButton:"\u30ab\u30ec\u30f3\u30c0\u30fc\u306b\u63a5\u7d9a",connectCalendarText:"",enterRoomTitle:"\u65b0\u3057\u3044\u30df\u30fc\u30c6\u30a4\u30f3\u30b0\u3092\u958b\u59cb",go:"GO",join:"\u53c2\u52a0",info:"\u60c5\u5831",privacy:"\u30d7\u30e9\u30a4\u30d0\u30b7\u30fc",recentList:"\u6700\u8fd1\u306e\u5c65\u6b74",recentListDelete:"\u524a\u9664",recentListEmpty:"",reducedUIText:"",roomname:"\u30eb\u30fc\u30e0\u540d\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044",roomnameHint:"\u53c2\u52a0\u3057\u305f\u3044\u90e8\u5c4b\u306e\u540d\u524d\u307e\u305f\u306fURL\u3092\u5165\u529b\u3057\u307e\u3059\u3002 \u3042\u306a\u305f\u304c\u540d\u524d\u3092\u4ed8\u3051\u3001\u3042\u306a\u305f\u304c\u4f1a\u3063\u3066\u3044\u308b\u4eba\u3005\u306b\u77e5\u3089\u305b\u3066\u3001\u540c\u3058\u540d\u524d\u3092\u5165\u529b\u3057\u3066\u3082\u3089\u3046\u3060\u3051\u3067\u3059\u3002",sendFeedback:"\u30d5\u30a3\u30fc\u30c9\u30d0\u30c3\u30af\u3092\u9001\u4fe1",terms:"\u5229\u7528\u898f\u7d04",title:"\u5b89\u5168\u3067\u3001\u6a5f\u80fd\u8c4a\u5bcc\u3067\u3001\u5b8c\u5168\u306b\u7121\u6599\u306e\u30d3\u30c7\u30aa\u4f1a\u8b70"},"\x05welcomepage":{}}},683,[]); +__d(function(e,s,o,t,n,r,a){n.exports={en:"\uc601\uc5b4",af:"",az:"\uc544\uc81c\ub974\ubc14\uc774\uc794\uc5b4",bg:"\ubd88\uac00\ub9ac\uc5b4",cs:"\uccb4\ucf54\uc5b4",de:"\ub3c5\uc77c\uc5b4",el:"\uadf8\ub9ac\uc2a4\uc5b4",eo:"\uc5d0\uc2a4\ud398\ub780\ud1a0\uc5b4",es:"\uc2a4\ud398\uc778\uc5b4",fr:"\ud504\ub791\uc2a4\uc5b4",hy:"\uc544\ub974\uba54\ub2c8\uc544\uc5b4",it:"\uc774\ud0c8\ub9ac\uc544\uc5b4",ja:"\uc77c\ubcf8\uc5b4",ko:"\ud55c\uad6d\uc5b4",nb:"\ub178\ub974\uc6e8\uc774\uc5b4",oc:"",pl:"\ud3f4\ub780\ub4dc\uc5b4",ptBR:"\ud3ec\ub974\ud22c\uac08\uc5b4(\ube0c\ub77c\uc9c8)",ru:"\ub7ec\uc2dc\uc544\uc5b4",sk:"\uc2ac\ub85c\ubc14\ud0a4\uc544\uc5b4",sl:"\uc2ac\ub85c\ubca0\ub2c8\uc544\uc5b4",sv:"\uc2a4\uc6e8\ub374\uc5b4",tr:"\ud130\ud0a4\uc5b4",vi:"\ubca0\ud2b8\ub0a8\uc5b4",zhCN:"\uc911\uad6d\uc5b4(\uc911\uad6d)"}},684,[]); +__d(function(e,o,i,t,r,n,a){r.exports={addPeople:{add:"\ucd08\ub300",countryNotSupported:"\uc544\uc9c1 \ud574\ub2f9 \uc9c0\uc5ed\uc744 \uc9c0\uc6d0\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4",countryReminder:"\ubbf8\uad6d \uc774\uc678\uc758 \uc9c0\uc5ed\uc73c\ub85c \uc804\ud654\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? \uad6d\uac00 \ubc88\ud638\ub85c \uc2dc\uc791\ud574\uc57c\ud569\ub2c8\ub2e4!",disabled:"\uc0ac\ub78c\ub4e4\uc744 \ucd08\ub300 \ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4",failedToAdd:"",footerText:"",loading:"\uc0ac\ub78c \ubc0f \uc804\ud654\ubc88\ud638 \uac80\uc0c9",loadingNumber:"\uc804\ud654\ubc88\ud638 \ud655\uc778 \uc911",loadingPeople:"\ucd08\ub300\ud560 \uc0ac\ub78c \ucc3e\uae30",noResults:"\uc77c\uce58\ud558\ub294 \uac80\uc0c9 \uacb0\uacfc \uc5c6\uc74c",noValidNumbers:"\uc804\ud654 \ubc88\ud638\ub97c \uc785\ub825\ud558\uc2ed\uc2dc\uc624.",searchNumbers:"\uc804\ud654\ubc88\ud638 \ucd94\uac00",searchPeople:"\uc778\uba85 \uac80\uc0c9",searchPeopleAndNumbers:"\uc778\uba85 \uac80\uc0c9 \ub610\ub294 \uc804\ud654\ubc88\ud638 \ucd94\uac00",telephone:"\uc804\ud654: {{number}}",title:"\uc774 \ud68c\uc758\uc5d0 \uc0ac\ub78c\ub4e4\uc744 \ucd08\ub300\ud558\uc2ed\uc2dc\uc624"},audioDevices:{bluetooth:"\ube14\ub8e8\ud22c\uc2a4",headphones:"\ud5e4\ub4dc\ud3f0",phone:"\ud3f0",speaker:"\uc2a4\ud53c\ucee4"},audioOnly:{audioOnly:"\uc74c\uc131 \uc804\uc6a9"},calendarSync:{addMeetingURL:"",confirmAddLink:"",error:{appConfiguration:"",generic:"",notSignedIn:""},join:"",joinTooltip:"",nextMeeting:"\ub2e4\uc74c \ud68c\uc758",noEvents:"",ongoingMeeting:"",permissionButton:"\uc124\uc815 \uc5f4\uae30",permissionMessage:"\uc571\uc5d0 \ud68c\uc758\ub97c \ub098\uc5f4\ud558\ub824\uba74 \uce98\ub9b0\ub354 \uad8c\ud55c\uc774 \ud544\uc694\ud569\ub2c8\ub2e4",refresh:"",today:""},chat:{error:"",messagebox:"",nickname:{popover:"\ub2c9\ub124\uc784\uc744 \uc120\ud0dd\ud558\uc138\uc694",title:""},title:""},connectingOverlay:{joiningRoom:""},connection:{ATTACHED:"\ucca8\ubd80",AUTHENTICATING:"\uc778\uc99d \uc911",AUTHFAIL:"\uc778\uc99d \uc2e4\ud328",CONNECTED:"\uc5f0\uacb0 \ub428",CONNECTING:"\uc5f0\uacb0 \uc911",CONNFAIL:"\uc5f0\uacb0 \uc2e4\ud328",DISCONNECTED:"\uc5f0\uacb0 \ub04a\uae40",DISCONNECTING:"\uc5f0\uacb0 \uc885\ub8cc \uc911",ERROR:"\uc5d0\ub7ec",RECONNECTING:"\ub124\ud2b8\uc6cc\ud06c \ubb38\uc81c\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4. \ub2e4\uc2dc \uc5f0\uacb0 \uc911..."},connectionindicator:{address:"\uc8fc\uc18c:",bandwidth:"\uc608\uc0c1 \ub300\uc5ed\ud3ed:",bitrate:"\uc804\uc1a1\ub960:",bridgeCount:"",connectedTo:"",framerate:"\ud504\ub808\uc784 \uc18d\ub3c4:",less:"\uac04\ub7b5\ud788 \ubcf4\uae30",localaddress:"",localport:"",more:"\uc790\uc138\ud788 \ubcf4\uae30",packetloss:"\ud328\ud0b7 \uc190\uc2e4:",quality:{good:"\uc88b\uc74c",inactive:"Inactive",lost:"Lost",nonoptimal:"Nonoptimal",poor:"Poor"},remoteaddress:"",remoteport:"",resolution:"\ud574\uc0c1\ub3c4:",status:"\uc5f0\uacb0:",transport:"",turn:" (turn)"},dateUtils:{earlier:"",today:"",yesterday:""},deepLinking:{appNotInstalled:"\uc911\uacc4 \uc11c\ube44\uc2a4\uc5d0 \ucc38\uc5ec\ud558\ub824\uba74 \ubaa8\ubc14\uc77c \uc571 \uc124\uce58\uac00 \ud544\uc694\ud569\ub2c8\ub2e4",description:"{{app}} \ub370\uc2a4\ud06c\ud1b1 \uc571\uc5d0\uc11c \ud68c\uc758\ub97c \uc2dc\uc791\ud588\uc2b5\ub2c8\ub2e4. {{app}} \uc6f9 \uc751\uc6a9 \ud504\ub85c\uadf8\ub7a8\uc5d0\uc11c \ub2e4\uc2dc \uc2dc\ub3c4\ud558\uac70\ub098 \uc2e4\ud589\ud558\uc2ed\uc2dc\uc624.",descriptionWithoutWeb:"",downloadApp:"\uc571 \ub2e4\uc6b4\ub85c\ub4dc",launchWebButton:"\uc6f9\uc5d0\uc11c \uc2e4\ud589",openApp:"\ubc29\uc73c\ub85c \uc774\ub3d9\ud558\uae30",title:"{{app}}\uc5d0\uc11c \ud68c\uc758 \uc2dc\uc791...",tryAgainButton:"\ub370\uc2a4\ud06c\ud1b1\uc5d0\uc11c \ub2e4\uc2dc \uc2dc\ub3c4\ud558\uc2ed\uc2dc\uc624"},defaultLink:"e.g. {{url}}",deviceError:{cameraError:"\uce74\uba54\ub77c\uc5d0 \uc561\uc138\uc2a4\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4",cameraPermission:"\uce74\uba54\ub77c \uad8c\ud55c\uc744 \uc5bb\ub294 \uc911 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4",microphoneError:"\ub9c8\uc774\ud06c\uc5d0 \uc561\uc138\uc2a4\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4",microphonePermission:"\ub9c8\uc774\ud06c \uad8c\ud55c\uc744 \uc5bb\ub294 \uc911 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4"},deviceSelection:{noPermission:"\ud5c8\uac00 \uac70\ubd80",previewUnavailable:"\ubbf8\ub9ac\ubcf4\uae30\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc5c6\uc74c",selectADevice:"\ub514\ubc14\uc774\uc2a4 \uc120\ud0dd",testAudio:"\ud14c\uc2a4\ud2b8 \uc0ac\uc6b4\ub4dc \uc7ac\uc0dd"},dialog:{accessibilityLabel:{liveStreaming:"\uc2e4\uc2dc\uac04 \uc2a4\ud2b8\ub9ac\ubc0d:"},allow:"\ud5c8\ub77d",alreadySharedVideoMsg:"",alreadySharedVideoTitle:"\ud55c \ubc88\uc5d0 \ud558\ub098\uc758 \uacf5\uc720 \ube44\ub514\uc624 \ub9cc \ud5c8\uc6a9\ub429\ub2c8\ub2e4",applicationWindow:"\uc751\uc6a9 \ud504\ub85c\uadf8\ub7a8 \ucc3d",Back:"\ub4a4\ub85c\uac00\uae30",cameraConstraintFailedError:"\uce74\uba54\ub77c\uac00 \ud544\uc694\ud55c \uc81c\uc57d \uc870\uac74 \uc911 \uc77c\ubd80\ub97c \ub9cc\uc871\ud558\uc9c0 \ubabb\ud569\ub2c8\ub2e4",cameraNotFoundError:"\uce74\uba54\ub77c\ub97c \ucc3e\uc744 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4",cameraNotSendingData:"\uce74\uba54\ub77c\uc5d0 \uc561\uc138\uc2a4 \ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. \ub2e4\ub978 \uc751\uc6a9 \ud504\ub85c\uadf8\ub7a8\uc774\uc774 \uc7a5\uce58\ub97c \uc0ac\uc6a9\ud558\uace0 \uc788\ub294\uc9c0 \ud655\uc778\ud55c \ud6c4 \uc124\uc815 \uba54\ub274\uc5d0\uc11c \ub2e4\ub978 \uc7a5\uce58\ub97c \uc120\ud0dd\ud558\uac70\ub098 \uc751\uc6a9 \ud504\ub85c\uadf8\ub7a8\uc744 \ub2e4\uc2dc\ub85c\ub4dc\ud558\uc2ed\uc2dc\uc624.",cameraNotSendingDataTitle:"\uce74\uba54\ub77c\uc5d0 \uc561\uc138\uc2a4 \ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4",cameraPermissionDeniedError:"\uce74\uba54\ub77c \uc0ac\uc6a9 \uad8c\ud55c\uc744 \ubd80\uc5ec\ud558\uc9c0 \uc54a\uc558\uc2b5\ub2c8\ub2e4. \ud68c\uc758\uc5d0 \uacc4\uc18d \ucc38\uc5ec\ud560 \uc218 \uc788\uc9c0\ub9cc \ub2e4\ub978 \ucc38\uc11d\uc790\ub294 \uadc0\ud558\ub97c \ubcfc \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. \uac80\uc0c9 \uc8fc\uc18c\ucc3d\uc758 \uce74\uba54\ub77c \ubc84\ud2bc\uc744 \uc0ac\uc6a9\ud558\uc5ec \ubb38\uc81c\ub97c \ud574\uacb0\ud558\uc2ed\uc2dc\uc624.",cameraUnknownError:"\uc54c \uc218\uc5c6\ub294 \uc774\uc720\ub85c \uce74\uba54\ub77c\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4",cameraUnsupportedResolutionError:"\uce74\uba54\ub77c\uac00 \ud544\uc694\ud55c \ube44\ub514\uc624 \ud574\uc0c1\ub3c4\ub97c \uc9c0\uc6d0\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4",Cancel:"\ucde8\uc18c",close:"\ub2eb\uae30",conferenceDisconnectMsg:"\ub124\ud2b8\uc6cc\ud06c \uc5f0\uacb0\uc744 \ud655\uc778\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. {{seconds}} \ucd08 \ub0b4\uc5d0 \ub2e4\uc2dc \uc5f0\uacb0\uc911\uc785\ub2c8\ub2e4...",conferenceDisconnectTitle:"\uc5f0\uacb0\uc774 \ub04a\uc5b4\uc84c\uc2b5\ub2c8\ub2e4.",conferenceReloadMsg:"\ubb38\uc81c\ub97c \ud574\uacb0\ud558\ub824\uace0 \ub178\ub825\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. {{seconds}} \ucd08 \uc548\uc5d0 \ub2e4\uc2dc \uc5f0\uacb0\uc911\uc785\ub2c8\ub2e4.",conferenceReloadTitle:"\ubd88\ud589\ud558\uac8c\ub3c4 \ubb38\uc81c\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4",confirm:"\ud655\uc778",confirmNo:"",confirmYes:"",connectError:"\uc8c4\uc1a1\ud569\ub2c8\ub2e4. \ubb38\uc81c\uac00 \ubc1c\uc0dd\ud558\uc5ec \ud68c\uc758\uc5d0 \uc5f0\uacb0\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4",connectErrorWithMsg:"\uc8c4\uc1a1\ud569\ub2c8\ub2e4. \ubb54\uac00 \uc798\ubabb\ub418\uc5b4 \ud68c\uc758\uc5d0 \uc5f0\uacb0\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4: {{msg}}",connecting:"\uc5f0\uacb0 \uc911",contactSupport:"\uc9c0\uc6d0 \uc5f0\ub77d\ucc98",copy:"\ubcf5\uc0ac",dismiss:"",displayNameRequired:"",done:"\uc644\ub8cc",enterDisplayName:"",error:"\uc5d0\ub7ec",externalInstallationMsg:"\ub370\uc2a4\ud06c\ud1b1 \uacf5\uc720 \ud655\uc7a5 \ud504\ub85c\uadf8\ub7a8\uc744 \uc124\uce58\ud574\uc57c\ud569\ub2c8\ub2e4",externalInstallationTitle:"\ud655\uc7a5 \ud504\ub85c\uadf8\ub7a8\uc774 \ud544\uc694\ud569\ub2c8\ub2e4",goToStore:"\uc6f9 \uc2a4\ud1a0\uc5b4\ub85c \uc774\ub3d9",gracefulShutdown:"\uc11c\ube44\uc2a4\ub294 \ud604\uc7ac \uc720\uc9c0 \uad00\ub9ac\ub97c \uc704\ud574 \uc911\ub2e8\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \ub098\uc911\uc5d0 \ub2e4\uc2dc \uc2dc\ub3c4 \ud574\uc8fc\uc2ed\uc2dc\uc624.",IamHost:"\ub0b4\uac00 \ud638\uc2a4\ud2b8",incorrectRoomLockPassword:"",incorrectPassword:"\uc798\ubabb\ub41c \uc0ac\uc6a9\uc790 \uc774\ub984 \ub610\ub294 \ube44\ubc00\ubc88\ud638",inlineInstallationMsg:"\ub370\uc2a4\ud06c\ud1b1 \uacf5\uc720 \ud655\uc7a5 \ud504\ub85c\uadf8\ub7a8\uc744 \uc124\uce58\ud574\uc57c\ud569\ub2c8\ub2e4",inlineInstallExtension:"\uc9c0\uae08 \uc124\uce58",internalError:"\uc8c4\uc1a1\ud569\ub2c8\ub2e4. \ubb54\uac00 \uc798\ubabb \ub410\uc2b5\ub2c8\ub2e4. \ub2e4\uc74c \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4: {{error}}",internalErrorTitle:"\ub0b4\ubd80 \uc5d0\ub7ec",kickMessage:"",kickParticipantButton:"",kickParticipantDialog:"",kickParticipantTitle:"",kickTitle:"",liveStreaming:"\uc2e4\uc2dc\uac04 \uc2a4\ud2b8\ub9ac\ubc0d",liveStreamingDisabledForGuestTooltip:"",liveStreamingDisabledTooltip:"",lockMessage:"\ud68c\uc758\ub97c \ube44\uacf5\uac1c\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4",lockRoom:"",lockTitle:"\ube44\uacf5\uac1c \uc2e4\ud328",logoutQuestion:"\ub85c\uadf8 \uc544\uc6c3\ud558\uace0 \ucee8\ud37c\ub7f0\uc2a4\ub97c \uc911\uc9c0\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?",logoutTitle:"\ub85c\uadf8\uc544\uc6c3",maxUsersLimitReached:"",maxUsersLimitReachedTitle:"",micConstraintFailedError:"\ub9c8\uc774\ud06c\uac00 \ud544\uc694\ud55c \uc81c\uc57d \uc870\uac74 \uc911 \uc77c\ubd80\ub97c \ucda9\uc871\ud558\uc9c0 \ubabb\ud569\ub2c8\ub2e4",micNotFoundError:"\ub9c8\uc774\ud06c\ub97c \ucc3e\uc744 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4",micNotSendingData:"",micNotSendingDataTitle:"",micPermissionDeniedError:"\ub9c8\uc774\ud06c\ub97c \uc0ac\uc6a9\ud560 \uc218\uc788\ub294 \uad8c\ud55c\uc744 \ubd80\uc5ec\ud558\uc9c0 \uc54a\uc558\uc2b5\ub2c8\ub2e4. \ud68c\uc758\uc5d0 \uacc4\uc18d \ucc38\uc5ec\ud560 \uc218\ub294 \uc788\uc9c0\ub9cc \ub2e4\ub978 \uc0ac\ub78c\ub4e4\uc740 \ub4e3\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \uac80\uc0c9 \uc8fc\uc18c\ucc3d\uc758 \uce74\uba54\ub77c \ubc84\ud2bc\uc744 \uc0ac\uc6a9\ud558\uc5ec \ubb38\uc81c\ub97c \ud574\uacb0\ud558\uc2ed\uc2dc\uc624.",micUnknownError:"\uc54c \uc218 \uc5c6\ub294 \uc774\uc720\ub85c \ub9c8\uc774\ud06c\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4",muteParticipantBody:"\ub2f9\uc2e0\uc774 \ub2e4\ub978 \uc0ac\ub78c\ub4e4\uc758 \uc74c\uc18c\uac70\ub97c \ud574\uc81c \ud560 \uc218\ub294 \uc5c6\uc9c0\ub9cc \uc5b8\uc81c\ub4e0\uc9c0 \ub2e4\ub978 \uc0ac\ub78c\ub4e4\uc740 \uc2a4\uc2a4\ub85c \uc74c\uc18c\uac70\ub97c \ud574\uc81c\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.",muteParticipantButton:"\uc74c\uc18c\uac70",muteParticipantDialog:"",muteParticipantTitle:"",Ok:"\ud655\uc778",passwordLabel:"",passwordNotSupported:"\ubbf8\ud305 \ube44\ubc00\ubc88\ud638 \uc124\uc815\uc740 \uc9c0\uc6d0\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4",passwordNotSupportedTitle:"",passwordRequired:"",popupError:"\ube0c\ub77c\uc6b0\uc800\uac00\uc774 \uc0ac\uc774\ud2b8\uc758 \ud31d\uc5c5 \ucc3d\uc744 \ucc28\ub2e8\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \ube0c\ub77c\uc6b0\uc800\uc758 \ubcf4\uc548 \uc124\uc815\uc5d0\uc11c \ud31d\uc5c5\uc744 \ud65c\uc131\ud654\ud558\uace0 \ub2e4\uc2dc \uc2dc\ub3c4\ud558\uc2ed\uc2dc\uc624.",popupErrorTitle:"\ud31d\uc5c5 \ucc28\ub2e8\ub428",recording:"\ub808\ucf54\ub529",recordingDisabledForGuestTooltip:"",recordingDisabledTooltip:"",rejoinNow:"\uc9c0\uae08 \uc7ac\uac00\uc785",remoteControlAllowedMessage:"{{user}}\uc774(\uac00) \uc6d0\uaca9 \uc81c\uc5b4 \uc694\uccad\uc744 \uc218\ub77d\ud588\uc2b5\ub2c8\ub2e4",remoteControlDeniedMessage:"{{user}}\uc774(\uac00) \uc6d0\uaca9 \uc81c\uc5b4 \uc694\uccad\uc744 \uac70\ubd80\ud588\uc2b5\ub2c8\ub2e4",remoteControlErrorMessage:"{{user}}\ub85c\ubd80\ud130 \uc6d0\uaca9 \uc81c\uc5b4 \uad8c\ud55c\uc744 \uc694\uccad\ud558\ub294 \ub3d9\uc548 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4",remoteControlRequestMessage:"{{user}}\uc5d0\uac8c \ub2f9\uc2e0\uc758 \ub370\uc2a4\ud06c\ud0d1\uc744 \uc6d0\uaca9 \uc81c\uc5b4\ud558\ub3c4\ub85d \ud5c8\uc6a9\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?",remoteControlShareScreenWarning:"\"\ud5c8\ub77d\"\uc744 \ub204\ub974\uba74 \ud654\uba74\uc744 \uacf5\uc720\ud569\ub2c8\ub2e4",remoteControlStopMessage:"\uc6d0\uaca9 \uc81c\uc5b4 \uc138\uc158\uc774 \uc885\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4",remoteControlTitle:"\uc6d0\uaca9 \ub370\uc2a4\ud06c\ud0d1 \ucee8\ud2b8\ub864",Remove:"\uc81c\uac70",removePassword:"",removeSharedVideoMsg:"\uacf5\uc720\ud55c \ub3d9\uc601\uc0c1\uc744 \uc0ad\uc81c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?",removeSharedVideoTitle:"\uacf5\uc720\ub41c \ub3d9\uc601\uc0c1 \uc0ad\uc81c",reservationError:"\uc608\uc57d \uc2dc\uc2a4\ud15c \uc624\ub958",reservationErrorMsg:"\uc624\ub958 \ucf54\ub4dc: {{code}}, \uba54\uc2dc\uc9c0: {{msg}}",retry:"\uc7ac\uc2dc\ub3c4",screenSharingFailedToInstall:"\uc8c4\uc1a1\ud569\ub2c8\ub2e4. \ud654\uba74 \uacf5\uc720 \ud655\uc7a5 \ud504\ub85c\uadf8\ub7a8\uc744 \uc124\uce58\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.",screenSharingFailedToInstallTitle:"\ud654\uba74 \uacf5\uc720 \ud655\uc7a5 \ud504\ub85c\uadf8\ub7a8\uc744 \uc124\uce58\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4",screenSharingFirefoxPermissionDeniedError:"\ud654\uba74\uc744 \uacf5\uc720\ud558\ub294 \ub3d9\uc548 \ubb38\uc81c\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4. \uadf8\ub807\uac8c \ud560 \uc218 \uc788\ub294 \uad8c\ud55c\uc744 \ubd80\uc5ec\ud588\ub294\uc9c0 \ud655\uc778\ud558\uc2ed\uc2dc\uc624.",screenSharingFirefoxPermissionDeniedTitle:"\uc8c4\uc1a1\ud569\ub2c8\ub2e4. \ud654\uba74 \uacf5\uc720\ub97c \uc2dc\uc791\ud560 \uc218 \uc5c6\uc5c8\uc2b5\ub2c8\ub2e4!",screenSharingPermissionDeniedError:"\uc8c4\uc1a1\ud569\ub2c8\ub2e4. \ud654\uba74 \uacf5\uc720 \ud655\uc7a5 \uad8c\ud55c\uc73c\ub85c \ubb38\uc81c\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4. \ub2e4\uc2dc \ub85c\ub4dc\ud558\uace0 \uc7ac\uc2dc\ub3c4\ud558\uc2ed\uc2dc\uc624.",serviceUnavailable:"\uc11c\ube44\uc2a4\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc5c6\uc74c",sessTerminated:"\ud1b5\ud654 \uc885\ub8cc",Share:"\uacf5\uc720",shareVideoLinkError:"\uc62c\ubc14\ub978 YouTube \ub9c1\ud06c\ub97c \uc81c\uacf5\ud558\uc2ed\uc2dc\uc624",shareVideoTitle:"\ube44\ub514\uc624 \uacf5\uc720",shareYourScreen:"\ud654\uba74\uacf5\uc720",shareYourScreenDisabled:"",shareYourScreenDisabledForGuest:"",startLiveStreaming:"\ub77c\uc774\ube0c \uc2a4\ud2b8\ub9ac\ubc0d \uc2dc\uc791",startRecording:"\ub808\ucf54\ub529 \uc2dc\uc791",startRemoteControlErrorMessage:"\uc6d0\uaca9 \uc81c\uc5b4 \uc138\uc158\uc744 \uc2dc\uc791\ud558\ub294 \ub3d9\uc548 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4",stopLiveStreaming:"\ub77c\uc774\ube0c \uc2a4\ud2b8\ub9ac\ubc0d \uc885\ub8cc",stopRecording:"\ub808\ucf54\ub529 \uc885\ub8cc",stopRecordingWarning:"\ub808\ucf54\ub529\uc744 \uc911\ub2e8\ud558\uace0 \uc2f6\uc73c\uc2ed\ub2c8\uae4c?",stopStreamingWarning:"\ub77c\uc774\ube0c \uc2a4\ud2b8\ub9ac\ubc0d\uc744 \uc911\ub2e8\ud558\uace0 \uc2f6\uc73c\uc2ed\ub2c8\uae4c?",streamKey:"\ub77c\uc774\ube0c \uc2a4\ud2b8\ub9ac\ubc0d \ud0a4",Submit:"\uc81c\ucd9c",thankYou:"{{appName}}\uc744 \uc774\uc6a9\ud574 \uc8fc\uc154\uc11c \uac10\uc0ac\ud569\ub2c8\ub2e4!",token:"\ud1a0\ud070",tokenAuthFailed:"\uc8c4\uc1a1\ud569\ub2c8\ub2e4. \ud1b5\ud654\uc5d0 \ucc38\uc5ec\ud558\uc2e4 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.",tokenAuthFailedTitle:"\uc778\uc99d \uc2e4\ud328",transcribing:"",unlockRoom:"",userPassword:"\uc0ac\uc6a9\uc790 \ube44\ubc00\ubc88\ud638",WaitForHostMsg:"",WaitForHostMsgWOk:"",WaitingForHost:"\ud638\uc2a4\ud2b8\ub97c \uae30\ub2e4\ub9ac\ub294 \uc911\uc785\ub2c8\ub2e4...",Yes:"",yourEntireScreen:"\uc804\uccb4 \ud654\uba74"},"\x05dialog":{accessibilityLabel:{}},dialOut:{statusMessage:"\uc9c0\uae08\uc740 {{status}}\uc785\ub2c8\ub2e4"},feedback:{average:"\ubcf4\ud1b5",bad:"\ub098\uc068",detailsLabel:"\ub354 \uc790\uc138\ud788 \uc54c\ub824\uc8fc\uc2ed\uc2dc\uc624",good:"\uc88b\uc74c",rateExperience:"\ud68c\uc758 \uacbd\ud5d8 \ud3c9\uac00\ud558\uae30",veryBad:"\ub9e4\uc6b0 \ub098\uc068",veryGood:"\ub9e4\uc6b0 \uc88b\uc74c"},incomingCall:{answer:"",audioCallTitle:"",decline:"",productLabel:"",videoCallTitle:""},info:{accessibilityLabel:"",addPassword:"",cancelPassword:"",conferenceURL:"\ub9c1\ud06c:",country:"\uc9c0\uc5ed",dialANumber:"",dialInConferenceID:"PIN:",dialInNotSupported:"\uc8c4\uc1a1\ud569\ub2c8\ub2e4. \ud604\uc7ac \uc804\ud654\ub97c \uac78 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.",dialInNumber:"Dial-in:",dialInSummaryError:"",dialInTollFree:"",genericError:"\uc77c\ubc18\uc801\uc778 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4",inviteLiveStream:"\uc774 \ud68c\uc758\uc758 \uc2e4\uc2dc\uac04 \uc2a4\ud2b8\ub9bc\uc744 \ubcf4\ub824\uba74\uc774 \ub9c1\ud06c\ub97c \ud074\ub9ad\ud558\uc2ed\uc2dc\uc624: {{url}}",invitePhone:"",invitePhoneAlternatives:"",inviteURLFirstPartGeneral:"",inviteURLFirstPartPersonal:"",inviteURLSecondPart:"",liveStreamURL:"\uc2e4\uc2dc\uac04 \uc2a4\ud2b8\ub9ac\ubc0d:",moreNumbers:"\ub354 \ub9ce\uc740 \ubc88\ud638",noNumbers:"\uc804\ud654 \uc811\uc18d \ubc88\ud638 \uc5c6\uc74c",noPassword:"\uc5c6\uc74c",noRoom:"\uc804\ud654 \uc811\uc18d\uc774 \uac00\ub2a5\ud55c \ubc29\uc744 \uc9c0\uc815\ud558\uc9c0 \uc54a\uc558\uc2b5\ub2c8\ub2e4",numbers:"\uc804\ud654 \uc811\uc18d \ubc88\ud638",password:"",title:"\uacf5\uc720",tooltip:"\ub9c1\ud06c \uacf5\uc720 \ubc0f \ud68c\uc758\uc5d0 \ub300\ud55c \uc815\ubcf4",label:""},"\x05info":{},inviteDialog:{alertText:"",header:"\ucd08\ub300",searchCallOnlyPlaceholder:"",searchPeopleOnlyPlaceholder:"",searchPlaceholder:"",send:""},inlineDialogFailure:{msg:"\uc57d\uac04\uc758 \ubb38\uc81c\uac00 \uc788\uc2b5\ub2c8\ub2e4",retry:"\ub2e4\uc2dc \uc2dc\ub3c4",support:"\uc9c0\uc6d0",supportMsg:"\ubb38\uc81c\uac00 \uacc4\uc18d \ubc1c\uc0dd\ud558\uba74 \uc5f0\ub77d\ud558\uc138\uc694"},keyboardShortcuts:{focusLocal:"\uc790\uc2e0\uc758 \ub3d9\uc601\uc0c1\uc5d0 \ud3ec\ucee4\uc2a4",focusRemote:"\ub2e4\ub978 \ubc1c\uc2e0\uc790\uc758 \ub3d9\uc601\uc0c1\uc5d0 \ud3ec\ucee4\uc2a4",fullScreen:"\uc804\uccb4\ud654\uba74 \ud45c\uc2dc \ub610\ub294 \uc885\ub8cc",keyboardShortcuts:"\ud0a4\ubcf4\ub4dc \ub2e8\ucd95\ud0a4",localRecording:"",mute:"\ub9c8\uc774\ud06c \uc74c\uc18c\uac70 \ub610\ub294 \uc74c\uc18c\uac70 \ud574\uc81c",pushToTalk:"\ub300\ud654 \uc694\uccad",raiseHand:"\ub9d0\ud558\uae30 \uc694\uccad/\ud574\uc81c",showSpeakerStats:"\uc811\uc18d\uc790 \ud1b5\uacc4 \ud45c\uc2dc",toggleChat:"\ucc44\ud305 \ud45c\uc2dc \ub610\ub294 \uc228\uae30\uae30",toggleFilmstrip:"\ub3d9\uc601\uc0c1 \ud45c\uc2dc \ub610\ub294 \uc228\uae30\uae30",toggleScreensharing:"\uce74\uba54\ub77c\uc640 \ud654\uba74 \uacf5\uc720\uac04\uc5d0 \uc804\ud658",toggleShortcuts:"\ub3c4\uc6c0\ub9d0 \uba54\ub274 \ud45c\uc2dc \ub610\ub294 \uc228\uae30\uae30",videoMute:"\uce74\uba54\ub77c \uc2dc\uc791 \ub610\ub294 \uc911\uc9c0"},liveStreaming:{busy:"\uc2a4\ud2b8\ub9ac\ubc0d \uc790\uc6d0\uc744 \ud655\ubcf4\ud558\uae30 \uc704\ud574 \ub178\ub825\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uba87 \ubd84 \ud6c4\uc5d0 \ub2e4\uc2dc \uc2dc\ub3c4\ud558\uc2ed\uc2dc\uc624.",busyTitle:"\ubaa8\ub4e0 \uc2a4\ud2b8\ub9ac\uba38\uac00 \ud604\uc7ac \uc0ac\uc6a9 \uc911\uc785\ub2c8\ub2e4",changeSignIn:"\uacc4\uc815\uc744 \uc804\ud658\ud558\uc2ed\uc2dc\uc624",choose:"\uc2e4\uc2dc\uac04 \uc2a4\ud2b8\ub9ac\ubc0d\uc744 \uc120\ud0dd\ud558\uc138\uc694",chooseCTA:"\uc2a4\ud2b8\ub9ac\ubc0d \uc635\uc158\uc744 \uc120\ud0dd\ud558\uc2ed\uc2dc\uc624. \ud604\uc7ac {{email}} (\uc73c)\ub85c \ub85c\uadf8\uc778\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4.",enterStreamKey:"YouTube \uc2e4\uc2dc\uac04 \uc2a4\ud2b8\ub9ac\ubc0d \ud0a4\ub97c \uc785\ub825\ud558\uc2ed\uc2dc\uc624",error:"\uc2e4\uc2dc\uac04 \uc2a4\ud2b8\ub9ac\ubc0d\uc5d0 \uc2e4\ud328\ud588\uc2b5\ub2c8\ub2e4. \ub2e4\uc2dc \uc2dc\ub3c4\ud558\uc2ed\uc2dc\uc624.",errorAPI:"YouTube \ubc29\uc1a1\uc5d0 \uc561\uc138\uc2a4\ud558\ub294 \uc911\uc5d0 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4. \ub2e4\uc2dc \ub85c\uadf8\uc778\ud558\uc2ed\uc2dc\uc624.",errorLiveStreamNotEnabled:"",expandedOff:"",expandedOn:"",expandedPending:"",failedToStart:"\uc2e4\uc2dc\uac04 \uc2a4\ud2b8\ub9ac\ubc0d \uc2dc\uc791 \uc2e4\ud328",getStreamKeyManually:"",invalidStreamKey:"",off:"\uc2e4\uc2dc\uac04 \uc2a4\ud2b8\ub9ac\ubc0d\uc774 \uc911\uc9c0\ub428",on:"\uc2e4\uc2dc\uac04 \uc2a4\ud2b8\ub9ac\ubc0d",pending:"\uc2e4\uc2dc\uac04 \uc2a4\ud2b8\ub9ac\ubc0d \uc2dc\uc791...",serviceName:"\uc2e4\uc2dc\uac04 \uc2a4\ud2b8\ub9ac\ubc0d \uc11c\ube44\uc2a4",signedInAs:"",signIn:"Google\ub85c \ub85c\uadf8\uc778",signInCTA:"YouTube\uc5d0\uc11c \ub85c\uadf8\uc778\ud558\uac70\ub098 \uc2e4\uc2dc\uac04 \uc2a4\ud2b8\ub9ac\ubc0d \ud0a4\ub97c \uc785\ub825\ud558\uc2ed\uc2dc\uc624",signOut:"",start:"\uc2e4\uc2dc\uac04 \uc2a4\ud2b8\ub9ac\ubc0d \uc2dc\uc791",streamIdHelp:"\ub3c4\uc6c0\ub9d0?",unavailableTitle:"\uc2e4\uc2dc\uac04 \uc2a4\ud2b8\ub9ac\ubc0d\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc5c6\uc74c"},localRecording:{clientState:{off:"",on:"",unknown:""},dialogTitle:"",duration:"",durationNA:"",encoding:"",label:"",labelToolTip:"",localRecording:"",me:"",messages:{engaged:"",finished:"",finishedModerator:"",notModerator:""},moderator:"",no:"",participant:"",participantStats:"",sessionToken:"",start:"\ub808\ucf54\ub529 \uc2dc\uc791",stop:"\ub808\ucf54\ub529 \uc885\ub8cc",yes:""},"\x05localRecording":{},lockRoomPassword:"\ud328\uc2a4\uc6cc\ub4dc",lockRoomPasswordUppercase:"\ud328\uc2a4\uc6cc\ub4dc",me:"Me",notify:{connectedOneMember:"",connectedThreePlusMembers:"",connectedTwoMembers:"",disconnected:"\uc5f0\uacb0\uc774 \ub04a\uae40",focus:"\ucee8\ud37c\ub7f0\uc2a4 \ud3ec\ucee4\uc2a4",focusFail:"{{component}}\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc5c6\uc74c - {{ms}} \ucd08 \ud6c4\uc5d0 \ub2e4\uc2dc \uc2dc\ub3c4\ud558\uc2ed\uc2dc\uc624",grantedTo:"{{to}}\uc5d0\uac8c \ubc29\uc7a5 \uad8c\ud55c\uc774 \ubd80\uc5ec\ub418\uc5c8\uc2b5\ub2c8\ub2e4!",invitedOneMember:"",invitedThreePlusMembers:"",invitedTwoMembers:"",kickParticipant:"",me:"",moderator:"\ubc29\uc7a5 \uad8c\ud55c\uc774 \ubd80\uc5ec\ub418\uc5c8\uc2b5\ub2c8\ub2e4!",muted:"\uc74c\uc18c\uac70\ub85c \ub300\ud654\uac00 \uc2dc\uc791\ub418\uc5c8\uc2b5\ub2c8\ub2e4",mutedTitle:"\uc74c\uc18c\uac70 \uc0c1\ud0dc\uc785\ub2c8\ub2e4!",mutedRemotelyTitle:"",mutedRemotelyDescription:"",passwordRemovedRemotely:"",passwordSetRemotely:"",raisedHand:"",somebody:"\ub204\uad70\uac00",startSilentTitle:"",startSilentDescription:"",suboptimalExperienceDescription:"{{appName}}\uc5d0 \ub300\ud55c \uadc0\ud558\uc758 \uacbd\ud5d8\uc774 \uc5c6\uc73c\uc2dc\ub2e4\uba74 \uc644\ubcbd\ud558\uac8c \uc9c0\uc6d0\ub418\ub294 \ube0c\ub77c\uc6b0\uc800 \uc911 \ud558\ub098\ub97c \uc0ac\uc6a9\ud574\ubcf4\uc2ed\uc2dc\uc624.",suboptimalExperienceTitle:"\ube0c\ub77c\uc6b0\uc800 \uacbd\uace0",unmute:"",newDeviceCameraTitle:"",newDeviceAudioTitle:"",newDeviceAction:""},passwordSetRemotely:"",passwordDigitsOnly:"",poweredby:"powered by",presenceStatus:{busy:"\ubc14\uc068",calling:"\uc804\ud654 \uac70\ub294 \uc911",connected:"\uc5f0\uacb0 \ub428",connecting:"\uc5f0\uacb0 \uc911",connecting2:"\uc5f0\uacb0 \uc911*",disconnected:"\uc5f0\uacb0 \ub04a\uae40",expired:"\ub9cc\ub8cc \ub428",ignored:"\ubb34\uc2dc \ub428",initializingCall:"\ud1b5\ud654 \ucd08\uae30\ud654 \uc911",invited:"\ucd08\ub300 \ub428",rejected:"\uac70\ubd80 \ub428",ringing:"\uc804\ud654 \uc911"},profile:{setDisplayNameLabel:"\ud45c\uc2dc \uc774\ub984 \uc124\uc815",setEmailInput:"\uc774\uba54\uc77c \uc785\ub825",setEmailLabel:"\uc774\uba54\uc77c \uc124\uc815",title:"\ud504\ub85c\ud544"},recording:{authDropboxText:"",availableSpace:"",beta:"\ubca0\ud0c0",busy:"\ub808\ucf54\ub529 \uc790\uc6d0\uc744 \ud655\ubcf4\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uba87 \ubd84 \ud6c4\uc5d0 \ub2e4\uc2dc \uc2dc\ub3c4\ud558\uc2ed\uc2dc\uc624.",busyTitle:"\ubaa8\ub4e0 \ub808\ucf54\ub354\uac00 \ud604\uc7ac \uc0ac\uc6a9 \uc911\uc785\ub2c8\ub2e4",error:"\ub808\ucf54\ub529\uc774 \uc2e4\ud328\ud588\uc2b5\ub2c8\ub2e4. \ub2e4\uc2dc \uc2dc\ub3c4\ud558\uc2ed\uc2dc\uc624.",expandedOff:"\ub808\ucf54\ub529\uc774 \uc911\uc9c0\ub428",expandedOn:"",expandedPending:"",failedToStart:"\ub808\ucf54\ub529\uc744 \uc2dc\uc791\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4",fileSharingdescription:"",live:"\ub77c\uc774\ube0c",loggedIn:"",off:"\ub808\ucf54\ub529\uc774 \uc911\uc9c0\ub428",on:"\ub808\ucf54\ub529",pending:"\ucc38\uc11d\ud560 \uba64\ubc84\ub97c \uae30\ub2e4\ub9ac\ub294 \uc911\uc785\ub2c8\ub2e4...",rec:"REC",serviceDescription:"",serviceName:"\ub808\ucf54\ub529 \uc11c\ube44\uc2a4",signIn:"",signOut:"",unavailable:"\uc8c4\uc1a1\ud569\ub2c8\ub2e4. {{serviceName}}\uc740 \ud604\uc7ac \uc0ac\uc6a9\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. \uc800\ud76c\ub294 \ubb38\uc81c\ub97c \ud574\uacb0\ud558\uae30 \uc704\ud574 \ub178\ub825\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \ub098\uc911\uc5d0 \ub2e4\uc2dc \uc2dc\ub3c4 \ud574\uc8fc\uc2ed\uc2dc\uc624.",unavailableTitle:"\ub808\ucf54\ub529\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4"},"\x05recording":{},sectionList:{pullToRefresh:"\ub2f9\uaca8\uc11c \uc0c8\ub85c\uace0\uce68"},settings:{calendar:{about:"",disconnect:"\uc5f0\uacb0 \ub04a\uae40",microsoftSignIn:"",signedIn:"",title:""},devices:"",followMe:"\ubaa8\ub450 \ub098\uc640 \uac19\uc740 \uc124\uc815 \uc0c1\ud0dc\ub85c",language:"",loggedIn:"",moderator:"",more:"",name:"\uc774\ub984",noDevice:"\uc5c6\uc74c",selectAudioOutput:"\uc624\ub514\uc624 \ucd9c\ub825",selectCamera:"\uce74\uba54\ub77c",selectMic:"\uc624\ub514\uc624",startAudioMuted:"\ubaa8\ub450\uac00 \uc74c\uc18c\uac70\ub97c \uc2dc\uc791\ud569\ub2c8\ub2e4",startVideoMuted:"\ubaa8\ub450\uac00 \ube44\ub514\uc624 \ube44\ud65c\uc131\ud654\ub85c \uc2dc\uc791\ud569\ub2c8\ub2e4",title:"\uc138\ud2f0"},"\x05settings":{calendar:{}},settingsView:{alertOk:"\ud655\uc778",alertTitle:"\uacbd\uace0",alertURLText:"\uc785\ub825\ub41c \uc11c\ubc84 URL\uc774 \uc798\ubabb\ub418\uc5c8\uc2b5\ub2c8\ub2e4",buildInfoSection:"",conferenceSection:"\ud68c\uc758",displayName:"\uc720\uc800\uc774\ub984",email:"\uc774\uba54\uc77c",header:"\uc138\ud2f0",profileSection:"\ud504\ub85c\ud544",serverURL:"\uc11c\ubc84 URL",startWithAudioMuted:"\uc624\ub514\uc624 \uc74c\uc18c\uac70 \uc0c1\ud0dc\ub85c \uc2dc\uc791",startWithVideoMuted:"\ube44\ub514\uc624 \ube44\ud65c\uc131\ud654 \uc0c1\ud0dc\ub85c \uc2dc\uc791",version:""},share:{dialInfoText:"",mainText:""},speaker:"\uc2a4\ud53c\ucee4",speakerStats:{hours:"{{count}}h",minutes:"{{count}}m",name:"\uc774\ub984",seconds:"{{count}}s",speakerStats:"\uc811\uc18d\uc790 \ud1b5\uacc4",speakerTime:"\uc811\uc18d\uc790 \uc624\ub514\uc624 \uc0ac\uc6a9 \uc2dc\uac04"},startupoverlay:{policyText:" ",title:"{{app}}\uc740 \ub9c8\uc774\ud06c\uc640 \uce74\uba54\ub77c\ub97c \uc0ac\uc6a9\ud574\uc57c\ud569\ub2c8\ub2e4"},suspendedoverlay:{rejoinKeyTitle:"\uc7ac\uc811\uc18d",text:"\ub2e4\uc2dc \uc5f0\uacb0\ud558\ub824\uba74 \uc7ac\uc811\uc18d \ubc84\ud2bc\uc744 \ub204\ub974\uc2ed\uc2dc\uc624",title:"\ucef4\ud4e8\ud130 \ud734\uc2dd \ubaa8\ub4dc\uac00 \ub418\uc5b4 \ud654\uc0c1 \ud1b5\ud654\uac00 \uc911\ub2e8\ub418\uc5c8\uc2b5\ub2c8\ub2e4"},toolbar:{accessibilityLabel:{audioOnly:"",audioRoute:"\uc74c\uc131 \uc7a5\ube44 \uc120\ud0dd\ud558\uae30",callQuality:"",cc:"",chat:"",document:"",feedback:"\ud53c\ub4dc\ubc31 \ub0a8\uae30\uae30",fullScreen:"",hangup:"",invite:"",kick:"",localRecording:"",lockRoom:"",moreActions:"",moreActionsMenu:"",mute:"",pip:"",profile:"",raiseHand:"",recording:"",remoteMute:"",Settings:"",sharedvideo:"",shareRoom:"",shareYourScreen:"",shortcuts:"\ub2e8\ucd95\ud0a4 \ud1a0\uadf8",show:"",speakerStats:"",tileView:"",toggleCamera:"\uce74\uba54\ub77c \ud1a0\u3131",videomute:"",videoblur:""},addPeople:"\ud1b5\ud654\uc5d0 \uc0ac\uc6a9\uc790 \ucd94\uac00",audioOnlyOff:"\uc74c\uc131\uc804\uc6a9 \ubaa8\ub4dc \ub044\uae30",audioOnlyOn:"\uc74c\uc131\uc804\uc6a9 \ubaa8\ub4dc \ub044\uae30",audioRoute:"\uc74c\uc131 \uc7a5\ube44 \uc120\ud0dd\ud558\uae30",authenticate:"\uc778\uc99d \uc911",callQuality:"\ud488\uc9c8 \uc124\uc815\ud558\uae30",chat:"",closeChat:"",documentClose:"",documentOpen:"",enterFullScreen:"\uc804\uccb4\ud654\uba74 \ubcf4\uae30",enterTileView:"",exitFullScreen:"\uc804\uccb4\ud654\uba74 \ucde8\uc18c",exitTileView:"",feedback:"\ud53c\ub4dc\ubc31 \ub0a8\uae30\uae30",hangup:"",invite:"",login:"",logout:"\ub85c\uadf8\uc544\uc6c3",lowerYourHand:"",moreActions:"\ucd94\uac00 \uc561\uc158",mute:"\ub9c8\uc774\ud06c",openChat:"",pip:"",profile:"",raiseHand:"\ub9d0\ud558\uae30 \uc694\uccad/\ud574\uc81c",raiseYourHand:"",Settings:"\uc138\ud2f0",sharedvideo:"",shareRoom:"",shortcuts:"",speakerStats:"\uc811\uc18d\uc790 \ud1b5\uacc4",startScreenSharing:"",startSubtitles:"",stopScreenSharing:"",stopSubtitles:"",stopSharedVideo:"",talkWhileMutedPopup:"",tileViewToggle:"",toggleCamera:"\uce74\uba54\ub77c \ud1a0\u3131",videomute:"",startvideoblur:"",stopvideoblur:""},"\x05toolbar":{},transcribing:{ccButtonTooltip:"",error:"\ub808\ucf54\ub529\uc774 \uc2e4\ud328\ud588\uc2b5\ub2c8\ub2e4. \ub2e4\uc2dc \uc2dc\ub3c4\ud558\uc2ed\uc2dc\uc624.",expandedLabel:"",failedToStart:"",labelToolTip:"",off:"",pending:"\ucc38\uc11d\ud560 \uba64\ubc84\ub97c \uae30\ub2e4\ub9ac\ub294 \uc911\uc785\ub2c8\ub2e4...",start:"",stop:"",tr:""},"\x05transcribing":{},userMedia:{androidGrantPermissions:"\ube0c\ub77c\uc6b0\uc800\uc5d0\uc11c \uad8c\ud55c\uc744 \uc694\uccad\ud560 \ub54c \ud5c8\ub77d\uc744 \uc120\ud0dd",chromeGrantPermissions:"\ube0c\ub77c\uc6b0\uc800\uc5d0\uc11c \uad8c\ud55c\uc744 \uc694\uccad\ud560 \ub54c \ud5c8\ub77d\uc744 \uc120\ud0dd",edgeGrantPermissions:"\ube0c\ub77c\uc6b0\uc800\uc5d0\uc11c \uad8c\ud55c\uc744 \uc694\uccad\ud560 \ub54c Yes\ub97c \uc120\ud0dd",electronGrantPermissions:"\uce74\uba54\ub77c\uc640 \ub9c8\uc774\ud06c \uc0ac\uc6a9 \uad8c\ud55c\uc744 \ubd80\uc5ec\ud558\uc2ed\uc2dc\uc624",firefoxGrantPermissions:"\ube0c\ub77c\uc6b0\uc800\uc5d0\uc11c \uad8c\ud55c\uc744 \uc694\uccad\ud560 \ub54c \uc120\ud0dd\ub41c \ub514\ubc14\uc774\uc2a4 \uacf5\uc720\ub97c \uc120\ud0dd",iexplorerGrantPermissions:"\ube0c\ub77c\uc6b0\uc800\uc5d0\uc11c \uad8c\ud55c\uc744 \uc694\uccad\ud560 \ub54c OK\ub97c \uc120\ud0dd",nwjsGrantPermissions:"\uce74\uba54\ub77c\uc640 \ub9c8\uc774\ud06c \uc0ac\uc6a9 \uad8c\ud55c\uc744 \ubd80\uc5ec\ud558\uc2ed\uc2dc\uc624",operaGrantPermissions:"\ube0c\ub77c\uc6b0\uc800\uc5d0\uc11c \uad8c\ud55c\uc744 \uc694\uccad\ud560 \ub54c \ud5c8\ub77d\uc744 \uc120\ud0dd","react-nativeGrantPermissions":"\ube0c\ub77c\uc6b0\uc800\uc5d0\uc11c \uad8c\ud55c\uc744 \uc694\uccad\ud560 \ub54c \ud5c8\ub77d\uc744 \uc120\ud0dd",safariGrantPermissions:"\ube0c\ub77c\uc6b0\uc800\uc5d0\uc11c \uad8c\ud55c\uc744 \uc694\uccad\ud560 \ub54c OK\ub97c \uc120\ud0dd"},videoSIPGW:{busy:"\uc790\uc6d0\uc744 \ud655\ubcf4\ud558\uae30 \uc704\ud574 \ub178\ub825\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uba87 \ubd84 \ud6c4\uc5d0 \ub2e4\uc2dc \uc2dc\ub3c4\ud558\uc2ed\uc2dc\uc624.",busyTitle:"\uc11c\ube44\uc2a4\uac00 \ud604\uc7ac \uc0ac\uc6a9 \uc911\uc785\ub2c8\ub2e4",errorAlreadyInvited:"{{displayName}} \uc774\ubbf8 \ucd08\ub300\ub418\uc5c8\uc2b5\ub2c8\ub2e4",errorInvite:"\ud68c\uc758\uac00 \uc544\uc9c1 \uc124\uc815\ub418\uc9c0 \uc54a\uc558\uc2b5\ub2c8\ub2e4. \ub098\uc911\uc5d0 \ub2e4\uc2dc \uc2dc\ub3c4 \ud574\uc8fc\uc2ed\uc2dc\uc624.",errorInviteFailed:"\ubb38\uc81c\ub97c \ud574\uacb0\ud558\uae30 \uc704\ud574 \ub178\ub825\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \ub098\uc911\uc5d0 \ub2e4\uc2dc \uc2dc\ub3c4 \ud574\uc8fc\uc2ed\uc2dc\uc624.",errorInviteFailedTitle:"{{displayName}} \ucd08\ub300 \uc2e4\ud328",errorInviteTitle:"\ucd08\ub300\ud558\ub294 \uc911\uc5d0 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4",pending:"{{displayName}} \uc774\ubbf8 \ucd08\ub300\ub418\uc5c8\uc2b5\ub2c8\ub2e4"},videoStatus:{audioOnly:"\uc624\ub514\uc624 \uc804\uc6a9",audioOnlyExpanded:"",callQuality:"",hd:"HD",highDefinition:"\uace0\ud574\uc0c1\ub3c4",labelTooiltipNoVideo:"\ube44\ub514\uc624 \uc5c6\uc74c",labelTooltipAudioOnly:"\uc624\ub514\uc624 \uc804\uc6a9 \ubaa8\ub4dc \uc0ac\uc6a9",ld:"LD",lowDefinition:"\uc800\ud654\uc9c8",onlyAudioAvailable:"\uc624\ub514\uc624\ub9cc \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4",onlyAudioSupported:"\uc774 \ube0c\ub77c\uc6b0\uc800\uc5d0\uc11c\ub294 \uc624\ub514\uc624\ub9cc \uc9c0\uc6d0\ud569\ub2c8\ub2e4",p2pEnabled:"Peer to Peer \uc0ac\uc6a9 \uac00\ub2a5",p2pVideoQualityDescription:"",recHighDefinitionOnly:"\uace0\ud654\uc9c8\uc744 \uc120\ud638\ud569\ub2c8\ub2e4",sd:"SD",standardDefinition:"\ud45c\uc900 \ud574\uc0c1\ub3c4"},videothumbnail:{domute:"\uc74c\uc18c\uac70",flip:"\ud50c\ub9bd",kick:"\ub0b4\ubcf4\ub0b4\uae30",moderator:"",mute:"",muted:"\uc74c\uc18c\uac70\ub428",remoteControl:"\uc6d0\uaca9 \uc81c\uc5b4",show:"",videomute:""},welcomepage:{accessibilityLabel:{join:"\uac00\uc785",roomname:"\ubc29 \uc774\ub984 \uc785\ub825"},appDescription:"\uc804\uccb4 \ud300\uacfc \ud654\uc0c1 \ucc44\ud305\uc744\ud558\uc2ed\uc2dc\uc624. \ub2f9\uc2e0\uc774 \uc544\ub294 \ubaa8\ub4e0 \uc0ac\ub78c\ub4e4\uc744 \ucd08\ub300\ud558\uc2ed\uc2dc\uc624. {{app}}\uc740 \uc644\uc804\ud788 \uc554\ud638\ud654 \ub41c 100 % \uc624\ud508 \uc18c\uc2a4 \ud654\uc0c1 \ud68c\uc758 \uc194\ub8e8\uc158\uc73c\ub85c \uacc4\uc815 \uc5c6\uc774\ub3c4 \ud558\ub8e8 \uc885\uc77c, \ub9e4\uc77c \ubb34\ub8cc\ub85c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.",audioVideoSwitch:{audio:"\uc74c\uc131",video:"\ube44\ub514\uc624"},calendar:"",connectCalendarButton:"",connectCalendarText:"",enterRoomTitle:"",go:"\uacc4\uc18d",join:"\uac00\uc785",info:"",privacy:"\uac1c\uc778\uc815\ubcf4",recentList:"",recentListDelete:"",recentListEmpty:"",reducedUIText:"",roomname:"\ubc29 \uc774\ub984 \uc785\ub825",roomnameHint:"",sendFeedback:"",terms:"\uc774\uc6a9\uc57d\uad00",title:""}}},685,[]); +__d(function(s,a,e,n,i,r,o){i.exports={en:"Engels",af:"Afrikaans",az:"Azerbeidzjaans",bg:"Bulgaars",ca:"Catalaans",cs:"Tsjechisch",da:"Deens",de:"Duits",enGB:"Engels (Verenigd Koninkrijk)",et:"Estlands",el:"Grieks",eo:"Esperanto",es:"Spaans",esUS:"Spaans (Latijns Amerika)",fi:"Fins",fr:"Frans",frCA:"Frans (Canadees)",hr:"Kroatisch",hu:"Hongaars",hy:"Armeens",it:"Italiaans",ja:"Japans",ko:"Koreaans",nb:"Noors (Bokmal)",nl:"Nederlands",oc:"Occitaans",pl:"Pools",ptBR:"Portugees (Brazili\xeb)",ru:"Russisch",sk:"Slowaaks",sl:"Sloveens",sv:"Zweeds",tr:"Turks",vi:"Vietnamees",zhCN:"Chinees (China)",zhTW:"Chinees (Taiwan)"}},686,[]); +__d(function(e,n,r,t,i,o,a){i.exports={addPeople:{add:"Uitnodigen",countryNotSupported:"Deze bestemming wordt nog niet ondersteund.",countryReminder:"Belt u naar een bestemming buiten de Verenigde Staten? Vergeet dan niet de landcode te gebruiken.",disabled:"U kunt geen personen uitnodigen.",failedToAdd:"Het toevoegen van leden is mislukt",footerText:"Uitgaande oproep is uitgeschakeld.",loading:"Personen en telefoonnummers zoeken",loadingNumber:"Telefoonnummer valideren",loadingPeople:"Personen zoeken om uit te nodigen",noResults:"Geen resultaten die overeenkomen met de zoekopdracht",noValidNumbers:"Voer een telefoonnummer in",searchNumbers:"Telefoonnummers toevoegen",searchPeople:"Personen zoeken",searchPeopleAndNumbers:"Personen zoeken of hun telefoonnummers toevoegen",telephone:"Telefoonnummer: {{number}}",title:"Personen uitnodigen voor deze vergadering"},audioDevices:{bluetooth:"Bluetooth",headphones:"Hoofdtelefoon",phone:"Telefoon",speaker:"Speaker"},audioOnly:{audioOnly:"Alleen audio"},calendarSync:{addMeetingURL:"Een link naar de vergadering toevoegen",confirmAddLink:"Wilt u een Jitsi-link aan deze gebeurtenis toevoegen?",error:{appConfiguration:"De agenda-integratie is niet juist ingesteld.",generic:"Er is een fout opgetreden. Controleer de agenda-instellingen of vernieuw de agenda.",notSignedIn:"Er is een fout opgetreden tijdens de verificatie voor het weergeven van agendagebeurtenissen. Controleer de agenda-instellingen en probeer u opnieuw aan te melden."},join:"Deelnemen",joinTooltip:"Deelnemen aan de vergadering",nextMeeting:"volgende vergadering",noEvents:"Er zijn geen gebeurtenissen gepland.",ongoingMeeting:"actieve vergadering",permissionButton:"Instellingen openen",permissionMessage:"U hebt een machtiging voor Agenda nodig om uw afspraken weer te geven in de app.",refresh:"Agenda vernieuwen",today:"Vandaag"},chat:{error:"Fout: uw bericht \"{{originalText}}\" is niet verzonden. Reden: {{error}}",fieldPlaceHolder:"Type hier je bericht",messagebox:"Typ een bericht",messageTo:"Priv\xe9bericht aan {{recipient}}",noMessagesMessage:"Er zijn nog geen berichten in deze bijkeenkomst. Begin een gesprek!",nickname:{popover:"Kies een bijnaam",title:"Voer een bijnaam in om de chatfunctie te gebruiken"},privateNotice:"Priv\xe9bericht aan {{recipient}}",title:"Chat",you:"jij"},connectingOverlay:{joiningRoom:"Er wordt verbinding gemaakt met de vergadering..."},connection:{ATTACHED:"Bijgesloten",AUTHENTICATING:"Verifi\xebren",AUTHFAIL:"Verificatie mislukt",CONNECTED:"Verbonden",CONNECTING:"Verbinding maken",CONNFAIL:"Verbinding mislukt",DISCONNECTED:"Verbinding verbroken",DISCONNECTING:"Verbinding verbreken",ERROR:"Fout",RECONNECTING:"Er is een netwerkprobleem opgetreden. Er wordt opnieuw verbinding gemaakt..."},connectionindicator:{address:"Adres:",bandwidth:"Geschatte bandbreedte:",bitrate:"Bitrate:",bridgeCount:"Aantal servers:",connectedTo:"Verbonden met:",framerate:"Framesnelheid:",less:"Minder weergeven",localaddress:"Lokaal adres:",localaddress_plural:"Lokale adressen:",localport:"Lokale poort:",localport_plural:"Lokale poorten:",more:"Meer weergeven",packetloss:"Pakketverlies:",quality:{good:"Goed",inactive:"Inactief",lost:"Verbroken",nonoptimal:"Niet optimaal",poor:"Slecht"},remoteaddress:"Extern adres:",remoteaddress_plural:"Externe adressen:",remoteport:"Externe poort:",remoteport_plural:"Externe poorten:",resolution:"Resolutie:",status:"Verbinding:",transport:"Transport:",transport_plural:"Transporten:",turn:" (draaien)"},dateUtils:{earlier:"Eerder",today:"Vandaag",yesterday:"Gisteren"},deepLinking:{appNotInstalled:"U hebt de mobiele app {{app}} nodig om op uw telefoon aan deze vergadering deel te nemen.",description:"Gebeurt er niets? Er is geprobeerd uw vergadering te starten in de desktop-app {{app}}. Probeer het opnieuw of start de vergadering in de web-app {{app}}.",descriptionWithoutWeb:"",downloadApp:"De app downloaden",launchWebButton:"Starten via web",openApp:"Doorgaan naar de app",title:"Uw vergadering wordt gestart in {{app}}...",tryAgainButton:"Opnieuw proberen op desktop"},defaultLink:"bijv. {{url}}",deviceError:{cameraError:"Geen toegang tot de camera",cameraPermission:"Fout bij het verkrijgen van toestemming voor de camera",microphoneError:"Geen toegang tot de microfoon",microphonePermission:"Fout bij het verkrijgen van toestemming voor de microfoon"},deviceSelection:{noPermission:"Geen toestemming verleend",previewUnavailable:"Voorbeeld niet beschikbaar",selectADevice:"Selecteer een apparaat",testAudio:"Een testgeluid afspelen"},dialog:{accessibilityLabel:{liveStreaming:"Livestream"},allow:"Toestaan",alreadySharedVideoMsg:"Er wordt al een video gedeeld door een andere deelnemer. In deze vergadering kan slechts \xe9\xe9n video tegelijkertijd worden gedeeld.",alreadySharedVideoTitle:"Slechts \xe9\xe9n gedeelde video tegelijkertijd toegestaan",applicationWindow:"Toepassingsvenster",Back:"Terug",cameraConstraintFailedError:"Uw camera voldoet niet aan alle vereiste beperkingen.",cameraNotFoundError:"Camera niet gevonden.",cameraNotSendingData:"Er is geen toegang tot uw camera verkregen. Controleer of dit apparaat wordt gebruikt door een andere toepassing, selecteer een ander apparaat in de instellingen of laad de toepassing opnieuw.",cameraNotSendingDataTitle:"Geen toegang tot de camera",cameraPermissionDeniedError:"U hebt geen toestemming verleend voor het gebruik van de camera. U kunt wel deelnemen aan de vergadering, maar anderen kunnen u niet zien. Gebruik de cameraknop in de adresbalk als u dit wilt wijzigen.",cameraUnknownError:"Kan de camera om een onbekende reden niet gebruiken.",cameraUnsupportedResolutionError:"De camera biedt geen ondersteuning voor de vereiste videoresolutie.",Cancel:"Annuleren",close:"Sluiten",conferenceDisconnectMsg:"Controleer de netwerkverbinding. Over {{seconds}} sec. wordt opnieuw geprobeerd verbinding te maken...",conferenceDisconnectTitle:"De verbinding is verbroken.",conferenceReloadMsg:"We proberen het probleem op te lossen. Over {{seconds}} sec. wordt opnieuw geprobeerd verbinding te maken...",conferenceReloadTitle:"Er is iets misgegaan.",confirm:"Bevestigen",confirmNo:"Nee",confirmYes:"Ja",connectError:"Er is iets misgegaan. Er kan geen verbinding met de vergadering worden gemaakt.",connectErrorWithMsg:"Er is iets misgegaan. Er kan geen verbinding met de vergadering worden gemaakt: {{msg}}",connecting:"Verbinding maken",contactSupport:"Contact opnemen met ondersteuning",copy:"Kopi\xebren",dismiss:"Negeren",displayNameRequired:"Weergavenaam is vereist",done:"Gereed",enterDisplayName:"Voer uw weergavenaam in",error:"Fout",externalInstallationMsg:"U moet onze extensie voor het delen van het bureaublad installeren.",externalInstallationTitle:"Extensie vereist",goToStore:"Naar de webwinkel",gracefulShutdown:"Onze service is momenteel niet beschikbaar wegens onderhoud. Probeer het later opnieuw.",IamHost:"Ik ben de host",incorrectRoomLockPassword:"",incorrectPassword:"Gebruikersnaam of wachtwoord onjuist",inlineInstallationMsg:"U moet onze extensie voor het delen van het bureaublad installeren.",inlineInstallExtension:"Nu installeren",internalError:"Er is iets misgegaan. De volgende fout is opgetreden: {{error}}",internalErrorTitle:"Interne fout",kickMessage:"U bent uit de vergadering verwijderd.",kickParticipantButton:"Verwijderen",kickParticipantDialog:"Weet u zeker dat u deze deelnemer wilt verwijderen?",kickParticipantTitle:"Deze deelnemer verwijderen?",kickTitle:"Verwijderd uit vergadering",liveStreaming:"Livestream",liveStreamingDisabledForGuestTooltip:"Gasten kunnen de livestream niet starten.",liveStreamingDisabledTooltip:"Het starten van de livestream is uitgeschakeld.",lockMessage:"Het vergrendelen van de vergadering is mislukt.",lockRoom:"Wachtwoord voor vergadering toevoegen",lockTitle:"Vergrendelen mislukt",logoutQuestion:"Weet u zeker dat u zich wilt afmelden en de vergadering wilt stoppen?",logoutTitle:"Afmelden",maxUsersLimitReached:"Het maximale aantal leden is bereikt. De vergadering is vol. Neem contact op met de eigenaar van de vergadering of probeer het later opnieuw.",maxUsersLimitReachedTitle:"Maximaal aantal leden bereikt",micConstraintFailedError:"Uw microfoon voldoet niet aan alle vereiste randvoorwaarden.",micNotFoundError:"Microfoon niet gevonden.",micNotSendingData:"Er is geen toegang tot uw microfoon verkregen. Selecteer een ander apparaat in de instellingen of laad de toepassing opnieuw.",micNotSendingDataTitle:"Geen toegang tot de microfoon",micPermissionDeniedError:"U hebt geen toestemming verleend voor het gebruik van de microfoon. U kunt wel deelnemen aan de vergadering, maar anderen kunnen u niet horen. Gebruik de cameraknop in de adresbalk als u dit wilt wijzigen.",micUnknownError:"Kan de microfoon om een onbekende reden niet gebruiken.",muteParticipantBody:"U kunt het dempen van anderen niet opheffen, maar zij kunnen dit wel op elk gewenst moment voor zichzelf doen.",muteParticipantButton:"Dempen",muteParticipantDialog:"Weet u zeker dat u deze deelnemer wilt dempen? U kunt het dempen niet opheffen, maar deze deelnemer kan dat wel op elk gewenst moment zelf doen.",muteParticipantTitle:"Deze deelnemer dempen?",Ok:"OK",passwordLabel:"Wachtwoord",passwordNotSupported:"Het instellen van een wachtwoord voor een vergadering wordt niet ondersteund.",passwordNotSupportedTitle:"Wachtwoord niet ondersteund",passwordRequired:"Wachtwoord vereist",popupError:"Er wordt een pop-upvenster van deze site geblokkeerd door uw browser. Ga naar de beveiligingsinstellingen van uw browser, schakel pop-upvensters in en probeer het opnieuw.",popupErrorTitle:"Pop-up wordt geblokkeerd",recording:"Opnemen",recordingDisabledForGuestTooltip:"Gasten kunnen geen opnamen starten.",recordingDisabledTooltip:"Het starten van opnamen is uitgeschakeld.",rejoinNow:"Nu opnieuw deelnemen",remoteControlAllowedMessage:"{{user}} heeft uw aanvraag voor extern beheer geaccepteerd.",remoteControlDeniedMessage:"{{user}} heeft uw aanvraag voor extern beheer geweigerd.",remoteControlErrorMessage:"Er is een fout opgetreden tijdens het aanvragen van machtigingen voor extern beheer bij {{user}}.",remoteControlRequestMessage:"Wilt u {{user}} een machtiging verlenen om uw bureaublad extern te beheren?",remoteControlShareScreenWarning:"Let op: als u 'Toestaan' kiest, wordt uw scherm gedeeld.",remoteControlStopMessage:"De sessie voor extern beheer is be\xebindigd.",remoteControlTitle:"Extern beheer van bureaublad",Remove:"Verwijderen",removePassword:"Wachtwoord verwijderen",removeSharedVideoMsg:"Weet u zeker dat u uw gedeelde video wilt verwijderen?",removeSharedVideoTitle:"Gedeelde video verwijderen",reservationError:"Fout in reserveringssysteem",reservationErrorMsg:"Foutcode: {{code}}, bericht: {{msg}}",retry:"Opnieuw proberen",screenSharingFailedToInstall:"De installatie van de extensie voor het delen van het scherm is mislukt.",screenSharingFailedToInstallTitle:"Installatie van extensie voor het delen van het scherm is mislukt",screenSharingFirefoxPermissionDeniedError:"Er is iets misgegaan tijdens het delen van uw scherm. Controleer of u hier toestemming voor hebt verleend.",screenSharingFirefoxPermissionDeniedTitle:"Scherm delen kan niet worden gestart.",screenSharingPermissionDeniedError:"Er is iets misgegaan met de permissies voor het delen van het scherm. Laad de toepassing opnieuw en probeer het nog eens.",serviceUnavailable:"Service niet beschikbaar",sessTerminated:"Gesprek be\xebindigd",Share:"Delen",shareVideoLinkError:"Geef een juiste YouTube-link op.",shareVideoTitle:"Een video delen",shareYourScreen:"Uw scherm delen",shareYourScreenDisabled:"Scherm delen is uitgeschakeld.",shareYourScreenDisabledForGuest:"Gasten kunnen hun scherm niet delen.",startLiveStreaming:"Livestream starten",startRecording:"Opname starten",startRemoteControlErrorMessage:"Er is een fout opgetreden tijdens het starten van de sessie voor extern beheer.",stopLiveStreaming:"Livestream stoppen",stopRecording:"Opname stoppen",stopRecordingWarning:"Weet u zeker dat u de opname wilt stoppen?",stopStreamingWarning:"Weet u zeker dat u de livestream wilt stoppen?",streamKey:"Sleutel voor livestream",Submit:"Verzenden",thankYou:"Bedankt voor het gebruik van {{appName}}.",token:"token",tokenAuthFailed:"U hebt geen toestemming om aan dit gesprek deel te nemen.",tokenAuthFailedTitle:"Verificatie mislukt",transcribing:"Transcriberen",unlockRoom:"Wachtwoord voor vergadering verwijderen",userPassword:"gebruikerswachtwoord",WaitForHostMsg:"De vergadering {{room}} is nog niet gestart. Verifieer de vergadering als u de host bent. Anders wacht u tot de host aanwezig is.",WaitForHostMsgWOk:"De vergadering {{room}} is nog niet gestart. Als u de host bent, drukt u op OK om te verifi\xebren. Anders wacht u tot de host aanwezig is.",WaitingForHost:"Wachten op de host...",Yes:"Ja",yourEntireScreen:"Uw gehele scherm"},dialOut:{statusMessage:"is nu {{status}}"},feedback:{average:"Gemiddeld",bad:"Slecht",detailsLabel:"We horen er graag meer over.",good:"Goed",rateExperience:"Beoordeel uw ervaring tijdens de vergadering",veryBad:"Zeer slecht",veryGood:"Zeer goed"},incomingCall:{answer:"Beantwoorden",audioCallTitle:"Inkomende oproep",decline:"Negeren",productLabel:"vanuit Jitsi Meet",videoCallTitle:"Inkomende video-oproep"},info:{accessibilityLabel:"Informatie weergeven",addPassword:"Wachtwoord toevoegen",cancelPassword:"Wachtwoord annuleren",conferenceURL:"Link:",country:"Land",dialANumber:"Als u wilt deelnemen aan de vergadering, belt u een van deze nummers en voert u vervolgens de pincode in.",dialInConferenceID:"Pincode:",dialInNotSupported:"Inbellen wordt momenteel niet ondersteund.",dialInNumber:"Inbellen:",dialInSummaryError:"Fout bij het ophalen van inbelgegevens. Probeer het later opnieuw.",dialInTollFree:"Gratis",genericError:"Er is iets misgegaan.",inviteLiveStream:"Klik op de volgende link als u de livestream van deze vergadering wilt bekijken: {{url}}",invitePhone:"Met \xe9\xe9n druk op de knop inbellen: {{number}},,{{conferenceID}}#\n",invitePhoneAlternatives:"",inviteURLFirstPartGeneral:"U bent uitgenodigd om aan een vergadering deel te nemen.",inviteURLFirstPartPersonal:"{{name}} nodigt u uit voor een vergadering.\n",inviteURLSecondPart:"\nDeelnemen aan vergadering:\n{{url}}\n",liveStreamURL:"Livestream:",moreNumbers:"Meer nummers",noNumbers:"Geen inbelnummers.",noPassword:"Geen",noRoom:"Er is geen ruimte opgegeven om naar in te bellen.",numbers:"Inbelnummers",password:"Wachtwoord:",title:"Delen",tooltip:"De link en inbelgegevens voor deze vergadering delen",label:"Vergaderingsgegevens"},inviteDialog:{alertText:"Niet alle deelnemers zijn uitgenodigd.",header:"Uitnodigen",searchCallOnlyPlaceholder:"Telefoonnummer invoeren",searchPeopleOnlyPlaceholder:"Deelnemers zoeken",searchPlaceholder:"Deelnemer of telefoonnummer",send:"Verzenden"},inlineDialogFailure:{msg:"Er is een fout opgetreden.",retry:"Opnieuw proberen",support:"Ondersteuning",supportMsg:"Als dit probleem opnieuw optreedt, neemt u contact op met"},keyboardShortcuts:{focusLocal:"Focus op uw video",focusRemote:"Focus op de video van een andere persoon",fullScreen:"Volledig scherm weergeven of afsluiten",keyboardShortcuts:"Sneltoetsen",localRecording:"Besturingselementen voor lokale opnamen weergeven of verbergen",mute:"Uw microfoon dempen of het dempen opheffen",pushToTalk:"Druk om te spreken",raiseHand:"Uw hand opsteken of laten zakken",showSpeakerStats:"Sprekerstatistieken weergeven",toggleChat:"Chatgesprek openen of sluiten",toggleFilmstrip:"Toon of verberg videominiaturen",toggleScreensharing:"Schakelen tussen camera en het delen van het scherm",toggleShortcuts:"Sneltoetsen weergeven of verbergen",videoMute:"Uw camera starten of stoppen"},liveStreaming:{busy:"We werken aan het vrijmaken van streaming-middelen. Probeer het over enkele minuten opnieuw.",busyTitle:"Alle streamers zijn momenteel bezet",changeSignIn:"Wissel van account.",choose:"Een livestream kiezen",chooseCTA:"Kies een streamingoptie. U bent momenteel aangemeld als {{email}}.",enterStreamKey:"Voer hier de sleutel van YouTube voor de livestream in.",error:"Livestream is mislukt. Probeer het opnieuw.",errorAPI:"Er is een fout opgetreden tijdens het openen van uw YouTube-uitzendingen. Meld u opnieuw aan.",errorLiveStreamNotEnabled:"Livestreaming is niet ingeschakeld voor {{email}}. Schakel livestreaming in of meld u aan bij een account waarvoor livestreaming is ingeschakeld.",expandedOff:"De livestream is gestopt",expandedOn:"De vergadering wordt momenteel gestreamd naar YouTube.",expandedPending:"De livestream wordt gestart...",failedToStart:"Livestream niet gestart",getStreamKeyManually:"Er zijn geen livestreams opgehaald. Haal de sleutel voor uw livestream op uit YouTube.",invalidStreamKey:"De sleutel voor de livestream is mogelijk onjuist.",off:"Livestream gestopt",on:"Livestream",pending:"Livestream starten...",serviceName:"Livestreamservice",signedInAs:"U bent momenteel aangemeld als:",signIn:"Aanmelden via Google",signInCTA:"Meld u aan of voer de sleutel van YouTube voor uw livestream in.",signOut:"Afmelden",start:"Een livestream starten",streamIdHelp:"Wat is dit?",unavailableTitle:"Livestream niet beschikbaar"},localRecording:{clientState:{off:"Uit",on:"Aan",unknown:"Onbekend"},dialogTitle:"Besturingselementen voor lokale opnamen",duration:"Duur",durationNA:"N.v.t.",encoding:"Codering",label:"LOR",labelToolTip:"Lokale opname is ingeschakeld",localRecording:"Lokale opname",me:"Ik",messages:{engaged:"Lokale opname ingeschakeld.",finished:"Opnamesessie {{token}} is voltooid. Stuur het opnamebestand naar de moderator.",finishedModerator:"Opnamesessie {{token}} is voltooid. De opname van de lokale track is opgeslagen. Vraag de andere deelnemers om hun opnamen te verzenden.",notModerator:"U bent niet de moderator. U kunt geen lokale opnamen starten of stoppen."},moderator:"Moderator",no:"Nee",participant:"Deelnemer",participantStats:"Deelnemerstatistieken",sessionToken:"Sessietoken",start:"Opname starten",stop:"Opname stoppen",yes:"Ja"},lockRoomPassword:"",lockRoomPasswordUppercase:"",me:"ik",notify:{connectedOneMember:"{{name}} neemt nu deel aan de vergadering",connectedThreePlusMembers:"{{name}} en {{count}} anderen nemen nu deel aan de vergadering",connectedTwoMembers:"{{first}} en {{second}} nemen nu deel aan de vergadering",disconnected:"verbinding verbroken",focus:"Focus van vergadering",focusFail:"{{component}} is niet beschikbaar. Probeer het over {{ms}} sec. opnieuw.",grantedTo:"Moderatorrechten verleend aan {{to}}.",invitedOneMember:"",invitedThreePlusMembers:"",invitedTwoMembers:"",kickParticipant:"",me:"Ik",moderator:"Moderatorrechten verleend.",muted:"U hebt het gesprek gedempt gestart.",mutedTitle:"U bent gedempt.",mutedRemotelyTitle:"",mutedRemotelyDescription:"",passwordRemovedRemotely:"",passwordSetRemotely:"",raisedHand:"{{name}} wil spreken.",somebody:"Iemand",startSilentTitle:"",startSilentDescription:"",suboptimalExperienceDescription:"Helaas zal uw {{appName}}-ervaring hier niet optimaal zijn. We proberen dit in de toekomst te verbeteren, maar tot die tijd kunt u proberen een van de volledig ondersteunde browsers te gebruiken.",suboptimalExperienceTitle:"Browserwaarschuwing",unmute:"",newDeviceCameraTitle:"Nieuwe camera gedetecteerd",newDeviceAudioTitle:"Nieuw audioapparaat gedetecteerd",newDeviceAction:"Gebruik"},passwordSetRemotely:"ingesteld door een andere deelnemer",passwordDigitsOnly:"Maximaal {{number}} cijfers",poweredby:"mogelijk gemaakt door",presenceStatus:{busy:"Bezet",calling:"Bellen...",connected:"Verbonden",connecting:"Verbinding maken...",connecting2:"Verbinding maken*...",disconnected:"Verbinding verbroken",expired:"Verlopen",ignored:"Genegeerd",initializingCall:"Gesprek starten...",invited:"Uitgenodigd",rejected:"Geweigerd",ringing:"Gaat over..."},profile:{setDisplayNameLabel:"Uw weergavenaam instellen",setEmailInput:"E-mailadres invoeren",setEmailLabel:"Uw gravatar voor e-mail instellen",title:"Profiel"},recording:{authDropboxText:"Uploaden naar Dropbox",availableSpace:"Beschikbare ruimte: {{spaceLeft}} MB (circa {{duration}} minuten aan opname)",beta:"B\xc8TA",busy:"Er worden opnameresources vrijgemaakt. Probeer het over enkele minuten opnieuw.",busyTitle:"Alle opnamefuncties zijn momenteel bezet",error:"Opname is mislukt. Probeer het opnieuw.",expandedOff:"Opname is gestopt",expandedOn:"De vergadering wordt momenteel opgenomen.",expandedPending:"Opname wordt gestart...",failedToStart:"Opname starten is mislukt",fileSharingdescription:"Opname delen met deelnemers aan vergadering",live:"LIVE",loggedIn:"Aangemeld als {{userName}}",off:"Opname gestopt",on:"Opnemen",pending:"Voorbereiden op opname van vergadering...",rec:"OPN.",serviceDescription:"Uw opname wordt opgeslagen door de opnameservice",serviceName:"Opnameservice",signIn:"Aanmelden",signOut:"Afmelden",unavailable:"{{serviceName}} is momenteel niet beschikbaar. Er wordt aan een oplossing gewerkt. Probeer het later opnieuw.",unavailableTitle:"Opname niet beschikbaar"},sectionList:{pullToRefresh:"Naar beneden slepen om te vernieuwen"},settings:{calendar:{about:"De agenda-integratie van {{appName}} wordt gebruikt voor een veilige toegang tot uw agenda, zodat geplande gebeurtenissen kunnen worden geraadpleegd.",disconnect:"Verbinding verbreken",microsoftSignIn:"Aanmelden via Microsoft",signedIn:"Agendagebeurtenissen voor {{email}} worden geraadpleegd. Klik op de knop 'Verbinding verbreken' hieronder om de toegang tot agendagebeurtenissen in te trekken.",title:"Agenda"},devices:"Apparaten",followMe:"Iedereen volgt mij",language:"Taal",loggedIn:"Aangemeld als {{name}}",moderator:"Moderator",more:"Meer",name:"Naam",noDevice:"Geen",selectAudioOutput:"Audio-uitvoer",selectCamera:"Camera",selectMic:"Microfoon",startAudioMuted:"Iedereen start gedempt",startVideoMuted:"Iedereen start verborgen",title:"Instellingen"},settingsView:{advanced:"Geavanceerd",alertOk:"OK",alertTitle:"Waarschuwing",alertURLText:"De ingevoerde server-URL is ongeldig",buildInfoSection:"Versiegegevens",conferenceSection:"Bijeenkomsten",displayName:"Weergavenaam",email:"E\u2011mail",header:"Instellingen",profileSection:"Profiel",serverURL:"Server-URL",showAdvanced:"Toon geavanceerde instellingen",startWithAudioMuted:"Starten met audio gedempt",startWithVideoMuted:"Starten met video gedempt",version:"Versie"},share:{dialInfoText:"",mainText:"Klik op de volgende link om deel te nemen aan de vergadering:\n{{roomUrl}}"},speaker:"Spreker",speakerStats:{hours:"{{count}} u",minutes:"{{count}} m",name:"Naam",seconds:"{{count}} s",speakerStats:"Sprekerstatistieken",speakerTime:"Sprekertijd"},startupoverlay:{policyText:" ",title:"{{app}} heeft toegang tot uw microfoon en camera nodig."},suspendedoverlay:{rejoinKeyTitle:"Opnieuw deelnemen",text:"Druk op de knop Opnieuw deelnemen om opnieuw verbinding te maken.",title:"Uw videogesprek is onderbroken, omdat de slaapstand van de computer is geactiveerd."},toolbar:{accessibilityLabel:{audioOnly:"Alleen audio schakelen",audioRoute:"Het afspeelapparaat selecteren",callQuality:"Kwaliteit van gesprek beheren",cc:"Ondertiteling schakelen",chat:"Chatvenster schakelen",document:"Gedeeld document schakelen",feedback:"Feedback achterlaten",fullScreen:"Volledig scherm schakelen",hangup:"Het gesprek verlaten",invite:"Personen uitnodigen",kick:"Deelnemer verwijderen",localRecording:"Besturingselementen voor lokale opname schakelen",lockRoom:"Wachtwoord voor vergadering schakelen",moreActions:"Menu 'Meer acties' schakelen",moreActionsMenu:"Menu 'Meer acties'",mute:"Audio dempen schakelen",pip:"Beeld-in-beeld-modus schakelen",profile:"Uw profiel bewerken",raiseHand:"Hand opsteken schakelen",recording:"Opname schakelen",remoteMute:"Deelnemer dempen",Settings:"Instellingen schakelen",sharedvideo:"YouTube-video delen schakelen",shareRoom:"Iemand uitnodigen",shareYourScreen:"Scherm delen schakelen",shortcuts:"Sneltoetsen schakelen",show:"",speakerStats:"Sprekerstatistieken schakelen",tileView:"Tegelweergave schakelen",toggleCamera:"Camera schakelen",videomute:"Video dempen schakelen",videoblur:""},addPeople:"Personen aan uw gesprek toevoegen",audioOnlyOff:"Modus 'Alleen audio' uitschakelen",audioOnlyOn:"Modus 'Alleen audio' inschakelen",audioRoute:"Het afspeelapparaat selecteren",authenticate:"Verifi\xebren",callQuality:"Kwaliteit van gesprek beheren",chat:"Chat openen/sluiten",closeChat:"Chat sluiten",documentClose:"Gedeeld document sluiten",documentOpen:"Gedeeld document openen",enterFullScreen:"Volledig scherm weergeven",enterTileView:"Tegelweergave openen",exitFullScreen:"Volledig scherm sluiten",exitTileView:"Tegelweergave sluiten",feedback:"Feedback achterlaten",hangup:"Verlaten",invite:"Personen uitnodigen",login:"Aanmelden",logout:"Afmelden",lowerYourHand:"Uw hand laten zakken",moreActions:"Meer acties",moreOptions:"Meer opties",mute:"Dempen/dempen opheffen",openChat:"Chat openen",pip:"Beeld-in-beeld-modus activeren",profile:"Uw profiel bewerken",raiseHand:"Uw hand opsteken/laten zakken",raiseYourHand:"Uw hand opsteken",Settings:"Instellingen",sharedvideo:"Een YouTube-video delen",shareRoom:"Iemand uitnodigen",shortcuts:"Sneltoetsen weergeven",speakerStats:"Sprekerstatistieken",startScreenSharing:"Scherm delen starten",startSubtitles:"Ondertiteling starten",stopScreenSharing:"Scherm delen stoppen",stopSubtitles:"Ondertiteling stoppen",stopSharedVideo:"YouTube-video stoppen",talkWhileMutedPopup:"Wilt u spreken? U bent gedempt.",tileViewToggle:"Tegelweergave schakelen",toggleCamera:"Camera schakelen",videomute:"Camera starten/stoppen",startvideoblur:"",stopvideoblur:""},transcribing:{ccButtonTooltip:"Ondertiteling starten/stoppen",error:"Transcriberen is mislukt. Probeer het opnieuw.",expandedLabel:"Transcriberen is momenteel ingeschakeld",failedToStart:"Transcriberen starten is mislukt",labelToolTip:"De vergadering wordt getranscribeerd",off:"Transcriberen gestopt",pending:"Voorbereiden op transcriberen van vergadering...",start:"Weergave van ondertiteling starten",stop:"Weergave van ondertiteling stoppen",tr:"TR"},userMedia:{androidGrantPermissions:"Selecteer Toestaan wanneer u in de browser om machtigingen wordt gevraagd.",chromeGrantPermissions:"Selecteer Toestaan wanneer u in de browser om machtigingen wordt gevraagd.",edgeGrantPermissions:"Selecteer Ja wanneer u in de browser om machtigingen wordt gevraagd.",electronGrantPermissions:"Verleen machtigingen voor het gebruik van uw camera en microfoon",firefoxGrantPermissions:"Selecteer Geselecteerd apparaat delen wanneer u in de browser om machtigingen wordt gevraagd.",iexplorerGrantPermissions:"Selecteer OK wanneer u in de browser om machtigingen wordt gevraagd.",nwjsGrantPermissions:"Verleen machtigingen voor het gebruik van uw camera en microfoon",operaGrantPermissions:"Selecteer Toestaan wanneer u in de browser om machtigingen wordt gevraagd.","react-nativeGrantPermissions":"Selecteer Toestaan wanneer u in de browser om machtigingen wordt gevraagd.",safariGrantPermissions:"Selecteer OK wanneer u in de browser om machtigingen wordt gevraagd."},videoSIPGW:{busy:"Er worden resources vrijgemaakt. Probeer het over enkele minuten opnieuw.",busyTitle:"De ruimteservice is momenteel bezet",errorAlreadyInvited:"{{displayName}} is al uitgenodigd",errorInvite:"Vergadering is nog niet van start gegaan. Probeer het later opnieuw.",errorInviteFailed:"Er wordt aan een oplossing gewerkt. Probeer het later opnieuw.",errorInviteFailedTitle:"Het uitnodigen van {{displayName}} is mislukt",errorInviteTitle:"Fout bij uitnodiging voor ruimte",pending:"{{displayName}} is uitgenodigd"},videoStatus:{audioOnly:"AUD",audioOnlyExpanded:"De modus 'Alleen audio' is geactiveerd. In deze modus wordt er bandbreedte bespaard, maar ziet u geen video's van anderen.",callQuality:"Kwaliteit van gesprek",hd:"HD",highDefinition:"Hoge resolutie",labelTooiltipNoVideo:"Geen video",labelTooltipAudioOnly:"Modus 'Alleen audio' ingeschakeld",ld:"LD",lowDefinition:"Lage resolutie",onlyAudioAvailable:"Alleen audio is beschikbaar",onlyAudioSupported:"In deze browser wordt alleen audio ondersteund.",p2pEnabled:"Peer-to-peer ingeschakeld",p2pVideoQualityDescription:"In de peer-to-peer-modus kan de kwaliteit van het gesprek alleen worden geschakeld tussen hoge resolutie en alleen audio. Andere instellingen zijn pas beschikbaar nadat peer-to-peer is gesloten.",recHighDefinitionOnly:"Voorkeur voor hoge resolutie",sd:"SD",standardDefinition:"Standaardresolutie"},videothumbnail:{domute:"Dempen",flip:"Omslaan",kick:"Verwijderen",moderator:"Moderator",mute:"Deelnemer is gedempt",muted:"Gedempt",remoteControl:"Extern beheer",show:"",videomute:"Deelnemer heeft de camera gestopt"},welcomepage:{accessibilityLabel:{join:"Tik om deel te nemen",roomname:"Naam van ruimte invoeren"},appDescription:"U kunt nu videochatten met het hele team. U kunt uitnodigen wie u maar wilt. {{app}} is een volledig versleutelde, 100% open-sourceoplossing voor videovergaderingen die u wanneer en zo lang u maar wilt gratis kunt gebruiken. Hier hebt u geen account voor nodig.",audioVideoSwitch:{audio:"Spraak",video:"Video"},calendar:"Agenda",connectCalendarButton:"Uw agenda koppelen",connectCalendarText:"",enterRoomTitle:"Een nieuwe vergadering starten",go:"Start",join:"Deelnemen",info:"Informatie",privacy:"Privacy",recentList:"Recent",recentListDelete:"Verwijderen",recentListEmpty:"Uw lijst met recente items is momenteel leeg. Als u chat met uw team, worden alle recente vergaderingen hier weergegeven.",reducedUIText:"",roomname:"Naam van ruimte invoeren",roomnameHint:"Voer de naam of URL in van de ruimte die u wilt betreden. U kunt een naam verzinnen, maar geef de naam wel door aan de andere deelnemers, zodat zij dezelfde naam kunnen invoeren.",sendFeedback:"Feedback sturen",terms:"Voorwaarden",title:"Veilige, volledig uitgeruste en geheel gratis videovergaderingen"},lonelyMeetingExperience:{button:"Anderen uitnodigen",youAreAlone:"Je bent de enige in dit gesprek"}}},687,[]); +__d(function(a,n,s,i,r,e,l){r.exports={en:"Angl\xe9s",af:"Afrikaans",bg:"Bulgar",ca:"Catalan",cs:"Ch\xe8c",de:"Aleman",el:"Gr\xe8c",enGB:"Angl\xe9s (Reialme Unit)",eo:"Esperanto",es:"Castelhan",esUS:"Espanh\xf2l (America latina)",fi:"Fin\xe9s",fr:"Franc\xe9s",frCA:"Franc\xe9s (Canadian)",hr:"Croat",hu:"Ongr\xe9s",hy:"Armenian",it:"Italian",ja:"Japon\xe9s",ko:"Corean",nl:"Neerland\xe9s",oc:"Occitan",pl:"Polon\xe9s",ptBR:"Portugu\xe9s (Brasil)",ru:"Rus",sv:"Sued\xe9s",tr:"Turc",vi:"Vietnamian",zhCN:"Chin\xe9s (China)",zhTW:"Chin\xe9s (Taiwan)"}},688,[]); +__d(function(a,e,r,n,t,i,o){t.exports={addPeople:{add:"Convidar",countryNotSupported:"S\xe8m pas encara compatibles amb aquesta destinacion.",countryReminder:"Sonatz def\xf2ra los US\u202f? Merc\xe9s de vos assegurar de comen\xe7ar amb lo c\xf2di pa\xeds.",disabled:"Pod\xe8tz pas convidar de monde.",failedToAdd:"Frac\xe0s de l'ajust de participants",footerText:"Sonadas ext. desactivadas.",loading:"Rec\xe8rca de monde e de num\xe8ro de telef\xf2n",loadingNumber:"Validacion del num\xe8ro de telef\xf2n",loadingPeople:"Rec\xe8rca de monde de convidar",noResults:"Pas cap de resultat trobat",noValidNumbers:"Picatz lo num\xe8ro de telef\xf2n",searchNumbers:"Apondre de num\xe8ros de telef\xf2n",searchPeople:"Cercar de monde",searchPeopleAndNumbers:"Cercar de monde o apondre lor num\xe8ros de telef\xf2n",telephone:"Telef\xf2n\u202f: {{number}}",title:"Convidatz de monde a v\xf2stra confer\xe9ncia"},audioDevices:{bluetooth:"Bluetooth",headphones:"Escotadors",phone:"Telef\xf2n",speaker:"Nautparlaire",none:"Cap de periferic \xe0udio pas disponible"},audioOnly:{audioOnly:"Benda passanta febla"},calendarSync:{addMeetingURL:"Ajustar un ligam de re\xfcnion",confirmAddLink:"Vol\xe8tz ajustar un ligam Jitsi cap a aqueste eveniment ?",error:{appConfiguration:"L\u2019integracion del calendi\xe8r es pas corr\xe8ctament configurada.",generic:"Una error s\u2019es producha. Verificatz v\xf2stres param\xe8tres de calendi\xe8r o ensajatz de l\u2019actualizar.",notSignedIn:"Una error s\u2019es producha pendent l\u2019autentificacion per veire los eveniments del calendi\xe8r. Verificatz los param\xe8tres del calendi\xe8r e connectatz-vos tornamai."},join:"J\xf3nher",joinTooltip:"Rej\xf3nher la confer\xe9ncia",nextMeeting:"confer\xe9ncia venenta",noEvents:"Cap d\u2019eveniments venents pas prevists.",ongoingMeeting:"confer\xe9ncia en cors",permissionButton:"Dobrir los param\xe8tres",permissionMessage:"La permission pel calendari es necess\xe0ria per listar v\xf2stres RDV dins l\u2019aplicacion.",refresh:"Actualizar lo calendari",today:"U\xe8i"},chat:{error:"Error : lo messatge es pas estat enviat. Rason : {{error}}",fieldPlaceHolder:"Picatz v\xf2stre messatge aqu\xed",messagebox:"Picatz un messatge",messageTo:"Messatge privat per {{recipient}}",noMessagesMessage:"I a pas cap de messatge dins la confer\xe9ncia pel moment. Comen\xe7at una conversacion aqu\xed\u202f!",nickname:{popover:"Causiss\xe8tz un escais",title:"Picatz un escais-nom per utilizar la messatjari\xe1"},privateNotice:"Messatge privat per {{recipient}}",title:"Messatjari\xe1",you:"vos"},connectingOverlay:{joiningRoom:"Connexion a v\xf2stra re\xfcnion\u2026"},connection:{ATTACHED:"Estacada",AUTHENTICATING:"Autentificacion en cors",AUTHFAIL:"Frac\xe0s de l'autentificacion",CONNECTED:"Connectat",CONNECTING:"Connexion en cors",CONNFAIL:"Frac\xe0s de la connexion",DISCONNECTED:"Desconnectat",DISCONNECTING:"Desconnexion en cors",ERROR:"Error",RECONNECTING:"Un probl\xe8ma ret s'es produita. Reconnexion en cors..."},connectionindicator:{address:"Adre\xe7a\xa0:",bandwidth:"Benda passanta estimada :",bitrate:"Debit\xa0:",bridgeCount:"Nombre de servidor\xa0:",connectedTo:"Connectat a\xa0:",framerate:"Frequ\xe9ncia imatge :",less:"Amagar lo detalh",localaddress:"Adre\xe7a locala :",localaddress_plural:"Adre\xe7as localas :",localport:"P\xf2rt local :",localport_plural:"P\xf2rts locals :",more:"Ne veire mai",packetloss:"P\xe8rda de paquets :",quality:{good:"Bona",inactive:"Inactiu",lost:"Perdut",nonoptimal:"Pas optimal",poor:"Marrit"},remoteaddress:"Adre\xe7a distanta :",remoteaddress_plural:"Adre\xe7as distantas :",remoteport:"P\xf2rt distant\xa0:",remoteport_plural:"P\xf2rts distants :",resolution:"Resolucion\xa0:",status:"Connexion :",transport:"Transp\xf2rt :"},dateUtils:{earlier:"Mai d\u2019ora",today:"U\xe8i",yesterday:"I\xe8r"},deepLinking:{appNotInstalled:"Vos cal l\u2019aplicacion {{app}} per j\xf3nher la confer\xe9ncia amb v\xf2stre mobil.",description:"Res s\u2019es pas passat\u202f? Av\xe8m ensajat de lan\xe7ar la confer\xe9ncia dins l\u2019aplicacion {{app}}. Merc\xe9s de tornar ensajar o de la lan\xe7ar dins l\u2019aplicacion web {{app}}.",descriptionWithoutWeb:"Res se passa pas ? Av\xe8m ensajat de lan\xe7ar la confer\xe9ncia dins l\u2019aplicacion de bur\xe8u {{app}}.",downloadApp:"Telecargar l\u2019aplicacion",launchWebButton:"Lan\xe7ar del navigador",openApp:"Telecargar l\u2019aplicacion",title:"Aviada de v\xf2stra confer\xe9ncia dins {{app}}...",tryAgainButton:"Tornar ensajar del bur\xe8u"},defaultLink:"ex. {{url}}",defaultNickname:"ex. Joan Delpu\xe8ch",deviceError:{cameraError:"Frac\xe0s de l\u2019acc\xe8s a v\xf2stra cam\xe8ra",cameraPermission:"Error d'obtencion de la permission per la cam\xe8ra",microphoneError:"Frac\xe0s de l\u2019acc\xe8s a v\xf2stre microf\xf2n",microphonePermission:"Error d'obtencion de la permission pel microf\xf2n"},deviceSelection:{noPermission:"Autorizacion pas acordada",previewUnavailable:"Apercebut pas disponible",selectADevice:"Seleccionatz un aparelh",testAudio:"Legir un son de pr\xf2va"},dialog:{accessibilityLabel:{liveStreaming:"Difusion en dir\xe8cte"},allow:"Autorizar",alreadySharedVideoMsg:"Un autre participant parteja ja sa vid\xe8o. Aquesta confer\xe9ncia permet pas qu\u2019un partatge de vid\xe8o a l\u2019enc\xf2p.",alreadySharedVideoTitle:"Solament un partatge de vid\xe8o a l'enc\xf2p es autorizat",applicationWindow:"Fen\xe8stra de l'aplicacion",Back:"Retorn",cameraConstraintFailedError:"V\xf2stra cam\xe8ra satisf\xe0 pas totas las constrentas necess\xe0rias.",cameraNotFoundError:"La cam\xe8ra es pas estada trobada.",cameraNotSendingData:"Pod\xe8m pas accedir a v\xf2stra cam\xe8ra. Merc\xe9s de verificar se una autra aplicacion es a utilizar aqueste periferic, seleccionatz un autre periferic dins lo men\xfa de param\xe8tres o ensajatz de recargar l'aplicacion.",cameraNotSendingDataTitle:"Impossible d'accedir a v\xf2stra cam\xe8ra",cameraPermissionDeniedError:"La cam\xe8ra es pas estada trobada. Pasmens pod\xe8tz participar a la confer\xe9ncia mas los demai vos veir\xe0n pas. Utilizatz lo boton de la barra d\u2019adre\xe7a per res\xf2lver aqueste probl\xe8ma.",cameraUnknownError:"Impossible d\u2019emplegar la cam\xe8ra per una rason desconeguda.",cameraUnsupportedResolutionError:"V\xf2stra cam\xe8ra pren pas en carga la resolucion vid\xe8o que cal.",Cancel:"Anullar",close:"Tampar",conferenceDisconnectMsg:"Vos cal benl\xe8u verificar v\xf2stra connexion al malhum. N\xf2va connexion dins {{seconds}} segondas...",conferenceDisconnectTitle:"S\xe8tz estat desconnectat.",conferenceReloadMsg:"S\xe8m a reglar aqu\xf2 ! N\xf2va connexion dins {{seconds}} segondas...",conferenceReloadTitle:"Malurosament, quic\xf2m truqu\xe8t.",confirm:"Confirmar",confirmNo:"Non",confirmYes:"\xd2c",connectError:"Ops! Quic\xf2m a trucat e la connexion a la confer\xe9ncia es impossibla.",connectErrorWithMsg:"Ops! Quic\xf2m a trucat e la connexion a la confer\xe9ncia es impossibla: {{msg}}",connecting:"Connexion en cors",contactSupport:"Contactar l'assist\xe9ncia",copy:"Copiar",dismiss:"Regetar",displayNameRequired:"Adiu\u202f! Coss\xed vos dison\u202f?",done:"Tampar",enterDisplayName:"Volgatz picar v\xf2stre nom aqu\xed",error:"Error",externalInstallationMsg:"Av\xe8tz d'installar n\xf2stra extension de partiment d'ecran.",externalInstallationTitle:"Extension requesida :",goToStore:"Anar al webstore",gracefulShutdown:"Lo servici es actualament en mantenen\xe7a. Ensajatz tornamai pus tard.",IamHost:"Soi l\u2019\xf2ste",incorrectRoomLockPassword:"Senhal incorr\xe8cte",incorrectPassword:"Nom de compte o senhal incorr\xe8cte",inlineInstallationMsg:"Av\xe8tz d'installar n\xf2stra extension de partiment d'ecran.",inlineInstallExtension:"Installar ara",internalError:"\xd2u ! Quic\xf2m a pas foncionat. L'error seguenta s'es producha : {{error}}",internalErrorTitle:"Error int\xe8rna",kickMessage:"Pod\xe8tz contactat {{participantDisplayName}} per mai de detalhs.",kickParticipantButton:"Forabandir",kickParticipantDialog:"Vol\xe8tz vertadi\xe8rament forabandir aqueste participant\u202f?",kickParticipantTitle:"Forabandir aqueste participant\u202f?",kickTitle:"Ai\u202f! {{participantDisplayName}} vos a forabandit de la confer\xe9ncia",liveStreaming:"La difusion en dir\xe8cte es estada arrestada",liveStreamingDisabledForGuestTooltip:"Los convidats p\xf2don pas aviar una difusion en dir\xe8cte",liveStreamingDisabledTooltip:"Difusion en dir\xe8cte desactivada.",lockMessage:"Impossible de verrolhar la confer\xe9ncia.",lockRoom:"Ajustar un $t(lockRoomPasswordUppercase) a la confer\xe9ncia",lockTitle:"Frac\xe0s del verrolhatge",logoutQuestion:"S\xe8tz segur que vos vol\xe8tz desconnectar e arrestar la confer\xe9ncia ?",logoutTitle:"Desconnexion",maxUsersLimitReached:"La limita de nombre maximum de participant es estada atenguda. La confer\xe9ncia es compl\xe8ta. Contactatz lo proprietari de la confer\xe9ncia o tornatz ensajar mai tard.",maxUsersLimitReachedTitle:"Limita de participants maximum atenguda ",micConstraintFailedError:"V\xf2stre microf\xf2n satisf\xe0 pas totas las constrentas necess\xe0rias.",micNotFoundError:"Lo microf\xf2n es pas estat trobat.",micNotSendingData:"Anatz als param\xe8tres de l\u2019ordenador per tornar metre lo son del microf\xf2n e ajustar son niv\xe8l.",micNotSendingDataTitle:"Lo microf\xf2n es copat pels param\xe8tres del sist\xe8ma",micPermissionDeniedError:"Av\xe8tz pas donat l'autorizacion d'utilizar v\xf2stre microf\xf2n. Pod\xe8tz encara participar a la confer\xe9ncia mai los demai vos ausir\xe0n pas. Utilizatz lo boton del microf\xf2n dins la barra d'adre\xe7a per res\xf2lvre aqu\xf2.",micUnknownError:"Impossible d'utilizar lo microf\xf2n per una rason desconeguda.",muteParticipantBody:"Poiretz pas lo tornar activar lo microf\xf2n, mai eles p\xf2don o far quand v\xf2lon.",muteParticipantButton:"Copar lo son",muteParticipantDialog:"Vol\xe8tz vertadi\xe8rament copar lo son a aqueste participant ? Poiretz pas lo tornar la votz, mas eles p\xf2don restablir la comunicacion quand v\xf2lgan.",muteParticipantTitle:"Copar lo micro als participants ?",Ok:"D'ac\xf2rdi",passwordLabel:"SENHAL",passwordNotSupported:"Ajustar un $t(lockRoomPassword) a una confer\xe9ncia es pas suportat.",passwordNotSupportedTitle:"$t(lockRoomPasswordUppercase) pas suportat",passwordRequired:"$t(lockRoomPasswordUppercase) requesit",popupError:"V\xf2stre navigator bloca las fen\xe8stras que sorgisson a partir d'aqueste site. Merc\xe9s d'activar aquelas fen\xe8stras dins los param\xe8tres de v\xf2stre navigator e de tornar ensajar.",popupErrorTitle:"Fen\xe8stra que sorg\xeds blocada",recording:"Enregistrament",recordingDisabledForGuestTooltip:"Los convits p\xf2don pas lan\xe7ar d\u2019enregistraments.",recordingDisabledTooltip:"L\u2019enregistrament es desactivat.",rejoinNow:"Participar ara",remoteControlAllowedMessage:"{{user}} a acceptat v\xf2stra demanda de contrar\xf2tle alonhat !",remoteControlDeniedMessage:"{{user}} a refusat v\xf2stra demanda de contrar\xf2tle alonhat !",remoteControlErrorMessage:"Error al moment de demandar lo contrar\xf2tle alonhat a {{user}} !",remoteControlRequestMessage:"Vol\xe8tz autorizar {{user}} a contrarotlar v\xf2stre ordinador ?",remoteControlShareScreenWarning:"Remarcatz que se botatz \xab\u202fAutorizar\u202f\xbb partejaretz v\xf2stre ecran !",remoteControlStopMessage:"La session de contrar\xf2tle alonhat es acabada !",remoteControlTitle:"Contrar\xf2tle a dist\xe0ncia",Remove:"Suprimir",removePassword:"Suprimir lo",removeSharedVideoMsg:"S\xe8tz segur que vol\xe8tz suprimir v\xf2stra vid\xe8o partejada ?",removeSharedVideoTitle:"Suprimir la vid\xe8o partejada",reservationError:"Error del sist\xe8ma de reservacion",reservationErrorMsg:"C\xf2di d'error: {{code}}, messatge: {{msg}}",retry:"Ensajar tornamai",screenSharingFailedToInstall:"\xd2u ! Frac\xe0s de l'installacion de partatge d'ecran.",screenSharingFailedToInstallTitle:"Frac\xe0s de l'installacion de partatge d'ecran",screenSharingFirefoxPermissionDeniedError:"Quic\xf2m a fach m\xe8uca quand \xe8rem a ensajar de partejar v\xf2stre ecran. Merc\xe9s de verificar qu\u2019av\xe8tz donat l\u2019autorizacion de lo partejar.",screenSharingFirefoxPermissionDeniedTitle:"Ops\u202f! Av\xe8m pas pogut aviar lo partatge d\u2019ecran.",screenSharingPermissionDeniedError:"\xd2ups ! Quic\xf2m s'es pas ben passat amb l'autorizacion de v\xf2stra extension de partatge d'ecran. Merc\xe9s de recargar e tornar ensajar.",sendPrivateMessage:"Av\xe8tz recentament recebut un messatge privat. Av\xe8tz ensajat d\u2019i respondre en privat, o vol\xe8tz enviar lo messatge al grop ?",sendPrivateMessageCancel:"Enviar al grop",sendPrivateMessageOk:"Enviar en privat",sendPrivateMessageTitle:"Enviar en privat ?",serviceUnavailable:"Servici indisponible",sessTerminated:"Sonada acabada",Share:"Partejar",shareVideoLinkError:"Se vos plai, provesiss\xe8tz un ligam Youtube foncional.",shareVideoTitle:"Partejar una vid\xe8o",shareYourScreen:"Partejar v\xf2stre ecran",shareYourScreenDisabled:"Lo partiment d\u2019ecran es desactivat.",shareYourScreenDisabledForGuest:"Los convits p\xf2don pas partejar l\u2019ecran",startLiveStreaming:"Aviar una difusion en dir\xe8cte",startRecording:"Arrestar l'enregistrament",startRemoteControlErrorMessage:"Una error s'es produsida en ensajar de comen\xe7ar la session de contrar\xf2tle a dist\xe0ncia !",stopLiveStreaming:"Arrestar lo dir\xe8cte",stopRecording:"Arrestar l'enregistrament",stopRecordingWarning:"S\xe8tz segur que vol\xe8tz arrestar l'enregistrament?",stopStreamingWarning:"S\xe8tz segur que vol\xe8tz arrestar lo dir\xe8cte?",streamKey:"Clau del dir\xe8cte",Submit:"Validar",thankYou:"Merc\xe9 d'aver utilizat {{appName}} !",token:"geton",tokenAuthFailed:"O planh\xe8m, s\xe8tz pas autorizat a rej\xf3nher l'ap\xe8l.",tokenAuthFailedTitle:"Frac\xe0s de l'autentificacion",transcribing:"Transcripcion",unlockRoom:"Suprimir lo $t(lockRoomPassword) de la confer\xe9ncia",userPassword:"senhal utilizaire",WaitForHostMsg:"La confer\xe9ncia {{room}} a pas encara comen\xe7at. Se s\xe8tz l\u2019\xf2st volgatz ben vos identificar. Autrament esperatz qu\u2019arribe l\u2019\xf2ste.",WaitForHostMsgWOk:"La confer\xe9ncia {{room}} a pas encara comen\xe7at. Se s\xe8tz l\u2019\xf2st volgatz ben clicar Ok per vos identificar. Autrament esperatz qu\u2019arribe l\u2019\xf2ste.",WaitingForHost:"\xd2m p\xf2t pas que partejar una vid\xe8o a l'enc\xf2p",Yes:"\xd2c",yourEntireScreen:"V\xf2stre ecran complet"},dialOut:{statusMessage:"ara es {{status}}"},documentSharing:{title:"Document partejat"},feedback:{average:"Mejana",bad:"Marrida",detailsLabel:"Digatz-nos-ne mai a prepaus d\u2019aqu\xf2.",good:"Bona",rateExperience:"Merc\xe9s de donar una n\xf2ta a v\xf2stra experi\xe9ncia.",veryBad:"F\xf2r\xe7a marrida",veryGood:"F\xf2r\xe7a bona"},incomingCall:{answer:"U\xe8i",audioCallTitle:"Sonada entranta",decline:"Regetar",productLabel:"de Jitsi Meet estant",videoCallTitle:"Sonada vid\xe8o entranta"},info:{accessibilityLabel:"Mostrar las info",addPassword:"Ajustar un $t(lockRoomPassword)",cancelPassword:"Anullar lo $t(lockRoomPassword)",conferenceURL:"Ligam\u202f:",country:"Pa\xeds",dialANumber:"Per participar a la confer\xe9ncia, sonatz un d\u2019aquestes num\xe8ros pu\xe8i picatz lo senhal.",dialInConferenceID:"PIN\u202f:",dialInNotSupported:"Las sonadas son pas encara foncionalas.",dialInNumber:"Compausar\u202f:",dialInSummaryError:"Error en recuperant las informacions per sonar. Volgatz tornar mai tard.",dialInTollFree:"Sonada gratu\xefta",genericError:"Ops, quic\xf2m a fach m\xe8uca.",inviteLiveStream:"Per veire lo flux en dir\xe8cte de la confer\xe9ncia, clicatz aqueste ligam\u202f: {{url}}",invitePhone:"Per j\xf3nher per telef\xf2n a la pla\xe7a, compausatz aqu\xf2 : {{number}},,{{conferenceID}}#\n",invitePhoneAlternatives:"Cercatz mai de num\xe8ros de telef\xf2n ?\nFar veire los num\xe8ros de sonada de la re\xfcnion : {{url}}\n\n\nSe vol\xe8tz sonar tanben un telef\xf2n de sala, jonh\xe8tz sens connectar l\u2019\xe0udio : {{silentUrl}}",inviteURLFirstPartGeneral:"S\xe8tz convidat a participar a la confer\xe9ncia.",inviteURLFirstPartPersonal:"{{name}} vos convida a la confer\xe9ncia.\n",inviteURLSecondPart:"\nParticipar a la confer\xe9ncia :\n{{url}}\n",liveStreamURL:"Flux dir\xe8cte\u202f:",moreNumbers:"Mai de num\xe8ros",noNumbers:"Pas cap de num\xe8ro.",noPassword:"Pas cap",noRoom:"Cap de sala pas donada per la j\xf3nher.",numbers:"Sonar de num\xe8ros",password:"$t(lockRoomPasswordUppercase) :",title:"Partejar",tooltip:"Partejar lo ligam e las informacions d\u2019aquesta confer\xe9ncia",label:"Info confer\xe9ncia"},inviteDialog:{alertText:"Frac\xe0s en convidant unes participants.",header:"Convidar",searchCallOnlyPlaceholder:"Picatz un numer\xf2 de telef\xf2n",searchPeopleOnlyPlaceholder:"Cercar de participants",searchPlaceholder:"Participant o num\xe8ro de telef\xf2n",send:"Mandar"},inlineDialogFailure:{msg:"Av\xe8m un pauc patit a mant\xe9ner la connexion.",retry:"Ensajar tornarmai",support:"Assist\xe9ncia",supportMsg:"Se ten d'arribat, contactatz l'"},keyboardShortcuts:{focusLocal:"Centrar sus v\xf2stra vid\xe8o",focusRemote:"Centrar sus la vid\xe8o de qualqu'un mai",fullScreen:"Activar / Desactivar l'ecran complet",keyboardShortcuts:"Acorchis de clavi\xe8r",localRecording:"Mostrar o amagar los contrar\xf2tles d\u2019enregistrament local",mute:"Activar o desactivar lo microf\xf2n",pushToTalk:"Butar per parlar",raiseHand:"Demandar o pas la paraula",showSpeakerStats:"Mostrar las estatisticas del microf\xf2n",toggleChat:"Dobrir o tampar lo pan\xe8l de conversacion",toggleFilmstrip:"Mostrar o amagar la vinheta vid\xe8o",toggleScreensharing:"Caplevar entre cam\xe8ra e partatge d'ecran",toggleShortcuts:"Mostrar o amagar los acorchis clavi\xe8r",videoMute:"Aviar o arrestar v\xf2stra cam\xe8ra",videoQuality:"Gerir la qualitat de las sonadas"},liveStreaming:{busy:"S\xe8m a ensajar de liurar de ressor\xe7as flux. Merc\xe9s de tornar ensajar dins una estona.",busyTitle:"Totes los difusors son ocupats",changeSignIn:"Cambiar de compte.",choose:"Causiss\xe8tz un flux dir\xe8cte",chooseCTA:"Causiss\xe8tz un flux dir\xe8cte. S\xe8tz connectat coma {{email}}.",enterStreamKey:"Picatz v\xf2stre clau de flux dir\xe8cte Youtube aqu\xed.",error:"Frac\xe0s de la difusion en dir\xe8cte. Merc\xe9s de tornar ensajar.",errorAPI:"Una error s\u2019es producha pendent l\u2019acc\xe8s al flux YouTube. Merc\xe9 d\u2019ensajar de vos connectar mai tard.",errorLiveStreamNotEnabled:"La difusion en dir\xe8cte es pas activada per {{email}}. Volgatz ben activar la difusion en dir\xe8cte o vos connectar amb un compte que l\u2019a activada.",expandedOff:"La difusion en dir\xe8cte es estada arrestada",expandedOn:"La confer\xe9ncia es difusada sus YouTube.",expandedPending:"La difusion en dir\xe8cte comen\xe7a...",failedToStart:"La difusion en dir\xe8cte a pas capitat de s'aviar",getStreamKeyManually:"Av\xe8m pas pogut recuperar cap de flux en dir\xe8cte. Ensajatz d\u2019obt\xe9ner v\xf2stre clau de difusion sus YouTube.",invalidStreamKey:"La clau de difusion en dir\xe8cte es benl\xe8u pas corr\xe8cta.",off:"La difusion en dir\xe8cte es estada arrestada",offBy:"{{name}} a arrestat la difusion en dir\xe8cte",on:"La difusion en dir\xe8cte es estada arrestada",onBy:"{{name}} a comen\xe7at la difusion en dir\xe8cte",pending:"Comen\xe7ar lo dir\xe8cte...",serviceName:"Servici de difusion en dir\xe8cte",signedInAs:"S\xe8tz connectat coma\xa0:",signIn:"Se connectar amb Google",signInCTA:"Connectatz-vos o picatz la clau de v\xf2stre flux YouTube.",signOut:"Se desconnectar",start:"Aviar una difusion en dir\xe8cte",streamIdHelp:"Qu\u2019es aqu\xf2 ?",unavailableTitle:"Difusion en dir\xe8cte indisponibla"},localRecording:{clientState:{off:"Desactivat",on:"Activat",unknown:"Desconeguts"},dialogTitle:"Contrar\xf2tles dels enregistraments locals",duration:"Durada",durationNA:"N/A",encoding:"Encodatge",label:"ENR-LOC",labelToolTip:"Enregistrament local comen\xe7at",localRecording:"Enregistrament local",me:"Ieu",messages:{engaged:"Enregistrament local comen\xe7at.",finished:"Enregistrament de la session {{token}} acabat. Merc\xe9s d\u2019enviar lo fichi\xe8r enregistrat al moderator.",finishedModerator:"Enregistrament de la session {{token}} acabat. Es estat salvagardat. Merc\xe9s de demandar als autres participants d\u2019enviar lor enregistraments.",notModerator:"S\xe8tz pas moderator. Pod\xe8tz pas comen\xe7ar o arrestar un enregistrament local."},moderator:"Moderator",no:"Non",participant:"Participant",participantStats:"Estatisticas del participant",sessionToken:"Geton de session",start:"Aviar l'enregistrament",stop:"Arrestar l'enregistrament",yes:"\xd2c"},lockRoomPassword:"senhal",lockRoomPasswordUppercase:"Senhal",me:"ieu",notify:{connectedOneMember:"{{name}} a jonch la confer\xe9ncia",connectedThreePlusMembers:"{{name}} e {{count}} personas mai participan a la confer\xe9ncia",connectedTwoMembers:"{{first}} e {{second}} participan a la confer\xe9ncia",disconnected:"desconnectat",focus:"Focus de confer\xe9ncia",focusFail:"{{component}} es pas disponible - ensajatz tornamai dins {{ms}} sec",grantedTo:"Dreits moderator acordats a {{to}} !",invitedOneMember:"{{name}} es estat convidat",invitedThreePlusMembers:"{{name}} e {{count}} autres son estats convidats",invitedTwoMembers:"{{first}} e {{second}} son estats convidats",kickParticipant:"{{kicked}} es estat expulsat per {{kicker}}",me:"Ieu",moderator:"Dreits moderator acordats !",muted:"Av\xe8tz comen\xe7at la conversacion en mut.",mutedTitle:"S\xe8tz en mut !",mutedRemotelyTitle:"{{participantDisplayName}} vos a mes en silenci !",mutedRemotelyDescription:"Pod\xe8tz totjorn activar v\xf2stre microf\xf2n per prendre la paraula. Desactivatz lo microf\xf2 quand terminetz per evitar los bruches parasits.",passwordRemovedRemotely:"$t(lockRoomPasswordUppercase) tirat per un autre participant",passwordSetRemotely:"$t(lockRoomPasswordUppercase) definit per un autre participant",raisedHand:"{{name}} volri\xe1 parlar.",somebody:"Qualqu'un",startSilentTitle:"Av\xe8tz jonch sens cap de sortida \xe0udio !",startSilentDescription:"Rej\xf3nher la confer\xe9ncia per activar l\u2019\xe0udio",suboptimalBrowserWarning:"Planh\xe8m que v\xf2stra experi\xe9ncia de la confer\xe9ncia si\xe1 pas de las bonas. S\xe8m a cercar de solucions per melhorar aqu\xf2, d\u2019aquel temps, ensajatz un dels navegators compatibles.",suboptimalExperienceTitle:"Avertiment del navegador",unmute:"Restablir lo son",newDeviceCameraTitle:"N\xf2va cam\xe8ra detectada",newDeviceAudioTitle:"N\xf2u periferic \xe0udio detectat",newDeviceAction:"Utilizar"},passwordSetRemotely:"causit per qualqu'un mai",passwordDigitsOnly:"Fins a {{number}} chifras",poweredby:"produit per",presenceStatus:{busy:"Ocupat",calling:"Sonada...",connected:"Connectat",connecting:"Connexion en cors...",connecting2:"Connexion*...",disconnected:"Desconnectat",expired:"Expirat",ignored:"Ignorat",initializingCall:"Comen\xe7ament de la sonada...",invited:"Convidat",rejected:"Refusat",ringing:"A sonar..."},profile:{setDisplayNameLabel:"Causiss\xe8tz v\xf2stre escais",setEmailInput:"Picatz lo corri\xe8l",setEmailLabel:"Definiss\xe8tz v\xf2stre corri\xe8l per gravatar",title:"Perfil"},raisedHand:"Volri\xe1 charrar",recording:{authDropboxText:"Enviar a Dropbox",availableSpace:"Espaci disponible : {{spaceLeft}} Mo (altorn de {{duration}} minutas d\u2019enregistrament)",beta:"BETA",busy:"S\xe8m a desliurar de resorgas d'enregistrament. Merc\xe9s de tornar ensajar dins una estona.",busyTitle:"Totes los enregistradors son ocupats pel moment",error:"Frac\xe0s de l'enregistrament. Merc\xe9s de tornar ensajar.",expandedOff:"Enregistrament arrestat",expandedOn:"La confer\xe9ncia es enregistrada.",expandedPending:"Aviada de l\u2019enregistrament...",failedToStart:"L'enregistrament n'as pas r\xe9ussi a d\xe9marrer",fileSharingdescription:"Partejar l\u2019enregistrament amb los participants de la re\xfcnion",live:"DIR\xc8CTE",loggedIn:"Session a {{userName}}",off:"Enregistrament arrestar",offBy:"{{name}} a arrestat l\u2019enregistrament",on:"Enregistrament",onBy:"{{name}} a comen\xe7at l\u2019enregistrament",pending:"Preparacion de l\u2019enregistrament de la confer\xe9ncia...",rec:"ENRG",serviceDescription:"V\xf2stre enregistrament ser\xe0 salvagardat pel servici dedicat.",serviceName:"Servici d\u2019enregistrament",signIn:"Connexion",signOut:"Se desconnectar",unavailable:"Ops\u202f! Lo {{serviceName}} es pas disponible pel moment. S\xe8m a reglar aqueste probl\xe8ma. Merc\xe9s de tornar ensajar mai tard.",unavailableTitle:"Enregistrament indisponible"},sectionList:{pullToRefresh:"Tirar per actualizar"},settings:{calendar:{about:"L\u2019integracion de {{appName}} amb v\xf2stre calendi\xe8r permet d\u2019accedir d\u2019un biais segur als eveniments venents.",disconnect:"Desconnectar",microsoftSignIn:"Se connectar amb Microsoft",signedIn:"Acc\xe8s als eveniments del calendi\xe8r {{email}}. Clicatz lo boton Se desconnectar \xe7ai-jos per arrestar l\u2019acc\xe8s als eveniments del calendi\xe8r.",title:"Calendari"},devices:"Periferics",followMe:"Tot lo mond me s\xe8c",language:"Lenga",loggedIn:"Session a {{userName}}",moderator:"Moderator",more:"Mai",name:"Escais",noDevice:"Pas cap",selectAudioOutput:"Sortida \xe0udio",selectCamera:"Cam\xe8ra",selectMic:"Microf\xf2n",startAudioMuted:"Comen\xe7an totes sens son",startVideoMuted:"Comen\xe7an totes sens vid\xe8o",title:"Param\xe8tres"},settingsView:{advanced:"Avan\xe7at",alertOk:"D\u2019ac\xf2rdi",alertTitle:"Avertiment",alertURLText:"L\u2019URL del servidor es pas valida",buildInfoSection:"Informacions de generacion",conferenceSection:"Confer\xe9ncia",disableCallIntegration:"Desactivar l\u2019integracion nativa de las sonadas",disableP2P:"Desactivar lo m\xf2de par a par",displayName:"Escais-nom",email:"Corri\xe8l",header:"Param\xe8tres",profileSection:"Perfil",serverURL:"URL del servidor",showAdvanced:"Mostrar los param\xe8tres avan\xe7ats",startWithAudioMuted:"Comen\xe7ar sens son",startWithVideoMuted:"Comen\xe7ar sens vi\xe8do",version:"Version"},share:{dialInfoText:"\n\n=====\n\nVol\xe8tz sonar de v\xf2stre telef\xf2n estant ?\n\n{{defaultDialInNumber}}Clicatz lo ligam per veire los num\xe8ros de telef\xf2n d\u2019aquesta confer\xe9ncia\n{{dialInfoPageUrl}}",mainText:"Copiatz lo ligam seguent per dintrar dins la confer\xe9ncia\xa0:\n{{roomUrl}}"},speaker:"Nautparlaire",speakerStats:{hours:"{{count}} oras",minutes:"{{count}} minutas",name:"Escais",seconds:"{{count}} segondas",speakerStats:"Estatisticas parladors",speakerTime:"Temps de paraula"},startupoverlay:{policyText:" ",title:"{{app}} a besonh d'utilizar v\xf2stre microf\xf2n e cam\xe8ra."},suspendedoverlay:{rejoinKeyTitle:"Tornar participar",text:"Quichatz lo boton Tornar participar.",title:"V\xf2stra confer\xe9ncia vid\xe8o es estada arrestada perque v\xf2stre ordenador se bot\xe8t en velha."},toolbar:{accessibilityLabel:{audioOnly:"Passar al sol \xe0udio",audioRoute:"Seleccionar lo periferic \xe0udio",callQuality:"Gerir la qualitat vid\xe8o",cc:"Passar als jost\xedtols",chat:"Passar a la fen\xe8stra chat",document:"Tampar los documents partejats",download:"Telecargar n\xf2stra aplicacion",feedback:"Daissar un comentari",fullScreen:"Passar al ecran compl\xe8t",hangup:"Quitar la sonada",help:"Ajuda",invite:"Convidar de monde",kick:"Exclure un participan ",localRecording:"Passar al pan\xe8l d\u2019enregistraments locals",lockRoom:"Tirar/Metre lo senhal de la confer\xe9ncia",moreActions:"Passar al men\xfa mai d\u2019accions",moreActionsMenu:"Mai de men\xfas d\u2019accion",mute:"Copar lo son",pip:"Activar/Desactivar lo m\xf2de Picture-in-Picture",privateMessage:"Enviar un messatge privat",profile:"Modificar v\xf2stre perfil",raiseHand:"Demandar la paraula",recording:"Passar al enregistraments",remoteMute:"Copar lo son del participant",Settings:"Passar als param\xe8tres",sharedvideo:"Passar al partatge de vid\xe8o Youtube",shareRoom:"Convidar qualqu\u2019un",shareYourScreen:"Passar a la captura d\u2019ecran",shortcuts:"Passar als acorchis",show:"Mostrar davant",speakerStats:"Mostrar/Amagar los estatisticas de paraula",tileView:"Activar/Desactivar la vista en mosa\xefc",toggleCamera:"Passar a la cam\xe8ra",videomute:"Silenciar la vid\xe8o",videoblur:"Enfoscar o non la vid\xe8o"},addPeople:"Ajustar de monde a v\xf2stra sonada",audioOnlyOff:"Desactivar lo m\xf2de connexion febla",audioOnlyOn:"Activar lo m\xf2de connexion febla",audioRoute:"Seleccionar lo periferic \xe0udio",authenticate:"Autentificatz-vos",callQuality:"Gerir la qualitat vid\xe8o",chat:"Dobrir / tampar la conversacion",closeChat:"Tampar la messatjari\xe1",documentClose:"Tampar los documents partejats",documentOpen:"Dobrir los documents partejats",download:"Telecargar n\xf2stra aplicacion",enterFullScreen:"Veire l\u2019ecran compl\xe8t",enterTileView:"Dintrar dins la vista mosa\xefca",exitFullScreen:"Sortir de l\u2019ecran compl\xe8t",exitTileView:"Quitar la vista mosa\xefca",feedback:"Daissar un comentari",hangup:"Quitar",help:"Ajuda",invite:"Convidar de monde",login:"Connexion",logout:"Desconnexion",lowerYourHand:"Baissar la man",moreActions:"Mai d\u2019opcions",mute:"Mut / Actiu",noAudioSignalTitle:"I a pas cap de son en entrada del microf\xf2n\u202f!",noAudioSignalDesc:"S\u2019av\xe8tz pas volont\xe0riament copat lo son a partir dels param\xe8tres sist\xe8ma o material, pensatz de cambiar d\u2019aparelh.",noAudioSignalDescSuggestion:"S\u2019av\xe8tz pas volont\xe0riament copat lo son a partir dels param\xe8tres sist\xe8ma o material, pensatz d\u2019utilizar un dels aparelhs seguents\u202f:",openChat:"Dobrir la messatjari\xe1 ",pip:"Passar al m\xf2de Picture-in-Picture",privateMessage:"Enviar un messatge privat",profile:"Modificar v\xf2stre perfil",raiseHand:"Demandar / Daissar la paraula",raiseYourHand:"Levar la man",Settings:"Param\xe8tres",sharedvideo:"Partejar una vid\xe8o Youtube",shareRoom:"Convidar qualqu\u2019un",shortcuts:"Veire los acorchis clavi\xe8r",speakerStats:"Estatisticas parladors",startScreenSharing:"Aviar lo partatge d\u2019ecran",startSubtitles:"Aviar los sost\xedtols",stopScreenSharing:"Arrestar lo partatge d\u2019ecran",stopSubtitles:"Arrestar los sost\xedtols ",stopSharedVideo:"Arrestar la vid\xe8o Youtube",talkWhileMutedPopup:"Ensajatz de parlar ? V\xf2stre microf\xf2n es copat.",tileViewToggle:"Activar/Desactivar la vista en mosa\xefc",toggleCamera:"Passar a la cam\xe8ra",videomute:"Aviar / Arrestar la cam\xe8ra",startvideoblur:"Trebolar mon r\xe8ire-plan",stopvideoblur:"Desactivar lo borrolatge del r\xe8ire-plan"},transcribing:{ccButtonTooltip:"Aviar / Arrestat los sost\xedtols",error:"Frac\xe0s de la transcripcion. Merc\xe9s de tornar ensajar.",expandedLabel:"La transcripcion es activada",failedToStart:"Frac\xe0s de l\u2019aviada de la transcripcion",labelToolTip:"La confer\xe9ncia es a \xe8sser transcricha",off:"Transcripcion arrestada",pending:"Preparacion de l\u2019enregistrament de la confer\xe9ncia...",start:"Mostrar los sost\xedtols",stop:"Levar los sost\xedtols",tr:"TR"},userMedia:{androidGrantPermissions:"Causiss\xe8tz Autorizar quand v\xf2stre navigador vos demanda l'autorizacion.",chromeGrantPermissions:"Causiss\xe8tz Autorizar quand v\xf2stre navigador vos demanda l'autorizacion.",edgeGrantPermissions:"Causiss\xe8tz \xd2c quand v\xf2stre navigador vos demanda l'autorizacion.",electronGrantPermissions:"Merc\xe9s de donar las permissions d'utilizar v\xf2stra cam\xe8ra e v\xf2stre microf\xf2n",firefoxGrantPermissions:"Causiss\xe8tz Partejar l'aparelh seleccionat quand v\xf2stre navigador vos demanda l'autorizacion.",iexplorerGrantPermissions:"Causiss\xe8tz OK quand v\xf2stre navigador vos demanda l'autorizacion.",nwjsGrantPermissions:"Merc\xe9s de donar las permissions d'utilizar v\xf2stra cam\xe8ra e v\xf2stre microf\xf2n",operaGrantPermissions:"Causiss\xe8tz Autorizar quand v\xf2stre navigador vos demanda l'autorizacion.","react-nativeGrantPermissions":"Causiss\xe8tz Autorizar quand v\xf2stre navigador vos demanda l'autorizacion.",safariGrantPermissions:"Causiss\xe8tz OK quand v\xf2stre navigador vos demanda l'autorizacion."},videoSIPGW:{busy:"S\xe8m a liurar de resorgas. Merc\xe9s de tornar ensajar dins una estona.",busyTitle:"Lo servici de sala es ocupat pel moment",errorAlreadyInvited:"{{displayName}} es ja convidat",errorInvite:"La confer\xe9ncia es pas encara establida. Tornatz ensajar mai tard.",errorInviteFailed:"S\xe8m a reglar aqueste probl\xe8ma. Ensajatz mai tard.",errorInviteFailedTitle:"L\u2019invitacion a {{displayName}} a fracassat",errorInviteTitle:"Error en convidar a la sala",pending:"{{displayName}} es estat convidat"},videoStatus:{audioOnly:"AUD",audioOnlyExpanded:"S\xe8tz en m\xf2de connexion febla. Amb aqueste m\xf2de recebretz pas que l\u2019\xe0udio e lo partatge d\u2019ecran.",callQuality:"Qualitat vid\xe8o",hd:"HD",hdTooltip:"Difusion vid\xe8o en nauta definicion",highDefinition:"Nauta definicion",labelTooiltipNoVideo:"Pas cap de vid\xe8o",labelTooltipAudioOnly:"M\xf2de connexion febla activat",ld:"Bassa definicion",ldTooltip:"Difusion vid\xe8o en bassa definicion",lowDefinition:"Bassa definicion",onlyAudioAvailable:"Pas que l\u2019\xe0udio es disponible",onlyAudioSupported:"S\xe8m compatibles solament amb l\u2019\xe0udio dins aqueste navigator.",p2pEnabled:"Connexion par a par activada",p2pVideoQualityDescription:"En m\xf2de par a par, la qualitat vid\xe8o que receb\xe8tz p\xf2t solament passar de nauta a \xe0udio solament. Los autres param\xe8tres ser\xe0n pas preses en compte fins que quitetz lo m\xf2de par a par.",recHighDefinitionOnly:"Nauta definicion preferida.",sd:"SD",sdTooltip:"Difusion vid\xe8o en definicion estandard",standardDefinition:"Definicion estandard"},videothumbnail:{domute:"Copar lo son",flip:"Revirar",kick:"Exclure",moderator:"Moderator",mute:"Un participant a copat son micro",muted:"Mut",remoteControl:"Contrar\xf2tle alonhat",show:"Mostrar davant",videomute:"Lo participant a arrestat la cam\xe8ra"},welcomepage:{accessibilityLabel:{join:"Tocatz per participar",roomname:"Sasiss\xe8tz un nom de sala"},appDescription:"Endavant, charratz en vid\xe8o amb tota la c\xf2la. Per dire de convidar tot lo monde que coneiss\xe8tz. {{app}} es una solucion de vid\xe8o-confer\xe9ncia compl\xe8tament chifrada e 100% liura que pod\xe8tz utilizar tota la jornada, totes los jorns, gratuitament\u2014 sens cap de compte pas requesit.",audioVideoSwitch:{audio:"Votz",video:"Vid\xe8o"},calendar:"Calendari",connectCalendarButton:"Connectar lo calendari",connectCalendarText:"Connectatz v\xf2stre calendi\xe8r per veire v\xf2stras re\xfcnions dins {{app}}. Ajustatz tanben las re\xfcnions de {{provider}} a v\xf2stre calendi\xe8r e aviatz-las amb un sol clic.",enterRoomTitle:"Comen\xe7ar una n\xf2va confer\xe9ncia",roomNameAllowedChars:"Lo nom de la confer\xe9ncia deu pas cont\xe9ner aqueles caract\xe8rs : ?, &, :, ', \", %, #.",go:"Crear",goSmall:"Crear",join:"CREAR / REJ\xd3NHER",info:"Infor",privacy:"Vida privada",recentList:"Recents",recentListDelete:"Suprimits",recentListEmpty:"V\xf2stra lista de contactes recents es voida. Charratz amb v\xf2stra c\xf2la e trobaretz totes v\xf2stras confer\xe9ncias recentas aqu\xed.",reducedUIText:"Benvengut a {{app}} !",roomname:"Sasiss\xe8tz un nom de sala",roomnameHint:"Picatz lo nom o l\u2019URL de la sala que vol\xe8tz j\xf3nher. Pod\xe8tz inventar un nom, cal pas que lo monde que vol\xe8tz convidar lo s\xe0pian. ",sendFeedback:"Mandar v\xf2stra opinion",terms:"T\xe8rmes",title:"Confer\xe9ncias vid\xe8o securizadas amb plen de foncionalitats e compl\xe8tament gratuitas"}}},689,[]); +__d(function(i,k,s,a,e,r,o){e.exports={en:"angielski",af:"afrykanerski",bg:"bu\u0142garski",ca:"katalo\u0144ski",cs:"czeski",de:"niemiecki",el:"grecki",enGB:"angielski (Zjednoczone Kr\xf3lestwo)",eo:"esperanto",es:"hiszpa\u0144ski",esUS:"hiszpa\u0144ski (Ameryka \u0141aci\u0144ska)",fi:"fi\u0144ski",fr:"francuski",frCA:"francuski (kanadyjski)",hr:"chorwacki",hu:"w\u0119gierski",hy:"ormia\u0144ski",it:"w\u0142oski",ja:"japo\u0144ski",ko:"korea\u0144ski",nl:"holenderski",oc:"oksyta\u0144ski",pl:"polski",ptBR:"portugalski (brazylijski)",ru:"rosyjski",sk:"s\u0142owacki",sv:"szwedzki",tr:"turecki",vi:"wietnamski",zhCN:"chi\u0144ski (Chiny)",zhTW:"chi\u0144ski (Tajwan)"}},690,[]); +__d(function(e,o,a,i,n,r,s){n.exports={addPeople:{add:"Zapro\u015b",countryNotSupported:"Nie obs\u0142ugujemy jeszcze tej lokalizacji.",countryReminder:"Dzwonisz spoza USA? Upewnij si\u0119, \u017ce zaczynasz od kodu kraju!",disabled:"Nie mo\u017cesz zaprasza\u0107 ludzi.",failedToAdd:"B\u0142\u0105d dodawania uczestnik\xf3w",footerText:"Wybieranie numeru jest wy\u0142\u0105czone.",loading:"Szukaj ludzi i numer\xf3w telefon\xf3w",loadingNumber:"Weryfikacja numeru telefonu",loadingPeople:"Wyszukiwanie os\xf3b do zaproszenia",noResults:"Brak pasuj\u0105cych wynik\xf3w wyszukiwania",noValidNumbers:"Prosz\u0119 wpisa\u0107 numer telefonu",searchNumbers:"Dodaj numery telefon\xf3w",searchPeople:"Szukaj ludzi",searchPeopleAndNumbers:"Wyszukaj osoby i dodaj ich numery telefonu",telephone:"Telefon: {{number}}",title:"Zapro\u015b ludzi na to spotkanie"},audioDevices:{bluetooth:"Bluetooth",headphones:"S\u0142uchawki",phone:"Telefon",speaker:"G\u0142o\u015bnik",none:"Brak dost\u0119pnych urz\u0105dze\u0144 d\u017awi\u0119kowych"},audioOnly:{audioOnly:"Niska przepustowo\u015b\u0107"},calendarSync:{addMeetingURL:"Dodaj odno\u015bnik do spotkania",confirmAddLink:"Czy chcesz doda\u0107 odno\u015bnik Jitsi do tego wydarzenia?",error:{appConfiguration:"Integracja z kalendarzem nie jest skonfigurowana poprawnie.",generic:"Wyst\u0105pi\u0142 problem. Sprawd\u017a ustawienia kalendarza lub spr\xf3buj od\u015bwie\u017cy\u0107 kalendarz.",notSignedIn:"Wyst\u0105pi\u0142 problem podczas uwierzytelniania dost\u0119pu do wydarze\u0144 w kalendarzu. Sprawd\u017a ustawienia kalendarza i spr\xf3buj zalogowa\u0107 si\u0119 ponownie."},join:"Do\u0142\u0105cz",joinTooltip:"Do\u0142\u0105cz do spotkania",nextMeeting:"nast\u0119pne spotkanie",noEvents:"Nie ma zaplanowanych nadchodz\u0105cych wydarze\u0144.",ongoingMeeting:"trwaj\u0105ce spotkanie",permissionButton:"Otw\xf3rz ustawienia",permissionMessage:"Aby zobaczy\u0107 spotkania w aplikacji, wymagane jest zezwolenie dost\u0119pu do kalendarza.",refresh:"Od\u015bwie\u017c kalendarz",today:"Dzisiaj"},chat:{error:"B\u0142\u0105d: Twoja wiadomo\u015b\u0107 nie zosta\u0142a wys\u0142ana. Pow\xf3d: {{error}}",fieldPlaceHolder:"",messagebox:"Wpisz wiadomo\u015b\u0107",messageTo:"Prywatna wiadomo\u015b\u0107 do {{recipient}}",noMessagesMessage:"",nickname:{popover:"Wybierz sw\xf3j nick",title:"Wpisz swoj\u0105 nazw\u0119, aby u\u017cy\u0107 rozmowy"},privateNotice:"Prywatna wiadomo\u015b\u0107 do {{recipient}}",title:"Rozmowa",you:"Ty"},connectingOverlay:{joiningRoom:"\u0141\u0105czenie z Twoim spotkaniem..."},connection:{ATTACHED:"Za\u0142\u0105cznik",AUTHENTICATING:"Uwierzytelnianie",AUTHFAIL:"Uwierzytelnianie nie powiod\u0142o si\u0119",CONNECTED:"Po\u0142\u0105czono",CONNECTING:"Nawi\u0105zywanie po\u0142\u0105czenia",CONNFAIL:"Po\u0142\u0105czenie si\u0119 nie powiod\u0142o",DISCONNECTED:"Roz\u0142\u0105czony",DISCONNECTING:"Roz\u0142\u0105czanie",ERROR:"B\u0142\u0105d",RECONNECTING:"Wyst\u0105pi\u0142 problem w sieci. Ponowienie po\u0142\u0105czenia..."},connectionindicator:{address:"Adres:",bandwidth:"Szacowana przepustowo\u015b\u0107:",bitrate:"Szybko\u015b\u0107 transmisji:",bridgeCount:"Liczba serwer\xf3w: ",connectedTo:"Pod\u0142\u0105czone do:",framerate:"Klatek na sekund\u0119:",less:"Poka\u017c mniej",localaddress_0:"Adres lokalny:",localaddress_1:"Adresy lokalne:",localaddress_2:"Adresy lokalne:",localport_0:"Port lokalny:",localport_1:"Porty lokalne:",localport_2:"Porty lokalne:",more:"Poka\u017c wi\u0119cej",packetloss:"Utrata pakiet\xf3w:",quality:{good:"Dobre",inactive:"Nieaktywne",lost:"Utracone",nonoptimal:"Nieoptymalne",poor:"S\u0142abe"},remoteaddress_0:"Adres zdalny:",remoteaddress_1:"Adresy zdalne:",remoteaddress_2:"Adresy zdalne:",remoteport_0:"Port zdalny:",remoteport_1:"Porty zdalne:",remoteport_2:"Porty zdalne:",resolution:"Rozdzielczo\u015b\u0107:",status:"Po\u0142\u0105czenie:",transport_0:"Transport:",transport_1:"Transporty:",transport_2:"Transporty:"},dateUtils:{earlier:"Wcze\u015bniej",today:"Dzisiaj",yesterday:"Wczoraj"},deepLinking:{appNotInstalled:"Potrzebujesz aplikacji mobilnej {{app}}, aby m\xf3c do\u0142\u0105czy\u0107 do tego spotkania przez telefon.",description:"Nic si\u0119 nie wydarzy\u0142o? Spr\xf3bowali\u015bmy uruchomi\u0107 Twoje spotkanie w aplikacji stacjonarnej {{app}}. Spr\xf3buj ponownie lub uruchom spotkanie w aplikacji webowej {{app}}.",descriptionWithoutWeb:"Nic si\u0119 nie wydarzy\u0142o? Spr\xf3bowali\u015bmy uruchomi\u0107 Twoje spotkanie w aplikacji stacjonarnej {{app}}.",downloadApp:"Pobierz aplikacj\u0119",launchWebButton:"Uruchom przez przegl\u0105dark\u0119",openApp:"Kontynuuj w aplikacji",title:"Trwa uruchamianie Twojego spotkania w {{app}}...",tryAgainButton:"Spr\xf3buj ponownie w aplikacji stacjonarnej"},defaultLink:"np. {{url}}",defaultNickname:"np. Ziutek Kowalski",deviceError:{cameraError:"B\u0142\u0105d dost\u0119pu do Twojej kamery",cameraPermission:"B\u0142\u0105d podczas otrzymywania uprawnie\u0144 do kamery",microphoneError:"B\u0142\u0105d dost\u0119pu do Twojego mikrofonu",microphonePermission:"B\u0142\u0105d podczas otrzymywania uprawnie\u0144 do mikrofonu"},deviceSelection:{noPermission:"Nie przyznano uprawnienia",previewUnavailable:"Podgl\u0105d niedost\u0119pny",selectADevice:"Wybierz urz\u0105dzenie",testAudio:"Odtw\xf3rz d\u017awi\u0119k testowy"},dialog:{accessibilityLabel:{liveStreaming:"Transmisja na \u017cywo"},allow:"Pozw\xf3l",alreadySharedVideoMsg:"Inny u\u017cytkownik ju\u017c prezentuje wideo. Ta konferencja pozwala tylko na prezentacj\u0119 jednego wideo w tym samym czasie.",alreadySharedVideoTitle:"Tylko jedna prezentacja wideo jest dozwolona w tym samym czasie",applicationWindow:"Okno aplikacji",Back:"Wstecz",cameraConstraintFailedError:"Twoja kamera nie spe\u0142nia niekt\xf3rych obowi\u0105zkowych wymaga\u0144.",cameraNotFoundError:"Kamera nie znaleziona.",cameraNotSendingData:"Nie mo\u017cemy po\u0142\u0105czy\u0107 si\u0119 z Twoj\u0105 kamer\u0105. Sprawd\u017a, czy inna aplikacja nie u\u017cywa tego urz\u0105dzenia, wybierz inne urz\u0105dzenie z menu ustawie\u0144 lub spr\xf3buj zrestartowa\u0107 aplikacj\u0119.",cameraNotSendingDataTitle:"Brak dost\u0119pu do kamery",cameraPermissionDeniedError:"Nie udzieli\u0142e\u015b pozwolenia na u\u017cycie swojej kamery. Nadal mo\u017cesz do\u0142\u0105czy\u0107 do konferencji, ale inni nie b\u0119d\u0105 Ci\u0119 widzie\u0107. Naci\u015bnij przycisk kamery na pasku adresu, aby to poprawi\u0107.",cameraUnknownError:"Z nieznanej przyczyny nie mo\u017cna u\u017cy\u0107 kamery.",cameraUnsupportedResolutionError:"Twoja kamera nie obs\u0142uguje wymaganej rozdzielczo\u015bci.",Cancel:"Anuluj",close:"Zamknij",conferenceDisconnectMsg:"By\u0107 mo\u017ce nale\u017cy sprawdzi\u0107 po\u0142\u0105czenie sieciowe. Ponowne po\u0142\u0105czenie za {{seconds}} sekund...",conferenceDisconnectTitle:"Zosta\u0142e\u015b roz\u0142\u0105czony.",conferenceReloadMsg:"Staramy si\u0119 to naprawi\u0107. Ponowne po\u0142\u0105czenie za {{seconds}} sekund...",conferenceReloadTitle:"Niestety, co\u015b posz\u0142o nie tak.",confirm:"Potwierd\u017a",confirmNo:"Nie",confirmYes:"Tak",connectError:"Ocho! Cos posz\u0142o nie tak, nie mo\u017cna pod\u0142aczy\u0107 si\u0119 do tej konferencji.",connectErrorWithMsg:"Upsss! Co\u015b posz\u0142o nie tak i nie mo\u017cemy pod\u0142\u0105czy\u0107 si\u0119 do tej konferencji: {{msg}}",connecting:"Nawi\u0105zywanie po\u0142\u0105czenia",contactSupport:"Skontaktuj si\u0119 ze wsparciem",copy:"Kopiuj",dismiss:"Odrzu\u0107",displayNameRequired:"Cze\u015b\u0107! Jak si\u0119 nazywasz?",done:"Zrobione",enterDisplayName:"Wpisz tutaj swoje imi\u0119",error:"B\u0142\u0105d",externalInstallationMsg:"Zainstaluj rozszerzenie naszego wsp\xf3\u0142dzielenia ekranu.",externalInstallationTitle:"Wymagane rozszerzenie",goToStore:"Id\u017a do sklepu",gracefulShutdown:"Aktualnie serwis jest konserwowany. Prosze spr\xf3bowa\u0107 p\xf3\u017aniej.",IamHost:"Jestem gospodarzem",incorrectRoomLockPassword:"Has\u0142o nieprawid\u0142owe",incorrectPassword:"Niepoprawna nazwa u\u017cytkownika lub has\u0142o",inlineInstallationMsg:"Zainstaluj rozszerzenie naszego wsp\xf3\u0142dzielenia ekranu.",inlineInstallExtension:"Zainstaluj teraz",internalError:"Ups! Co\u015b posz\u0142o nie tak. Wyst\u0105pi\u0142 nast\u0119puj\u0105cy b\u0142\u0105d: {{error}}",internalErrorTitle:"B\u0142\u0105d wewn\u0119trzny",kickMessage:"Mo\u017cesz skontaktowa\u0107 si\u0119 z {{participantDisplayName}}, aby uzyska\u0107 wi\u0119cej szczeg\xf3\u0142\xf3w.",kickParticipantButton:"Usu\u0144",kickParticipantDialog:"Czy na pewno chcesz usun\u0105\u0107 tego uczestnika?",kickParticipantTitle:"Usun\u0105\u0107 tego uczestnika?",kickTitle:"Ups! {{participantDisplayName}} usun\u0105\u0142 Ci\u0119 z tego spotkania",liveStreaming:"Strumie\u0144 live",liveStreamingDisabledForGuestTooltip:"Go\u015bcie nie mog\u0105 u\u017cywa\u0107 transmisji na \u017cywo.",liveStreamingDisabledTooltip:"Rozpocz\u0119cie transmisji na \u017cywo jest wy\u0142\u0105czone.",lockMessage:"Zabezpieczenie konferencji nie powiod\u0142o si\u0119.",lockRoom:"Dodaj spotkanie $t(lockRoomPasswordUppercase)",lockTitle:"Nie powiod\u0142o si\u0119 zabezpieczenie konferencji",logoutQuestion:"Na pewno chcesz si\u0119 wylogowa\u0107 i zako\u0144czy\u0107 konferencj\u0119?",logoutTitle:"Wyloguj",maxUsersLimitReached:"Osi\u0105gni\u0119to limit maksymalnej liczby uczestnik\xf3w. Konferencja jest zape\u0142niona. Skontaktuj si\u0119 z w\u0142a\u015bcicielem spotkania lub spr\xf3buj ponownie p\xf3\u017aniej!",maxUsersLimitReachedTitle:"Osi\u0105gni\u0119to maksymaln\u0105 liczb\u0119 uczestnik\xf3w",micConstraintFailedError:"Tw\xf3j mikrofon nie spe\u0142nia niekt\xf3rych wymaganych parametr\xf3w.",micNotFoundError:"Mikrofon nie jest odnaleziony.",micNotSendingData:"Wejd\u017a w ustawienia komputera, aby wy\u0142\u0105czy\u0107 wyciszenie i dostosowa\u0107 poziom g\u0142o\u015bno\u015bci",micNotSendingDataTitle:"Tw\xf3j mikrofon jest wyciszony przez ustawienia systemowe",micPermissionDeniedError:"Nie udzieli\u0142e\u015b pozwolenia na u\u017cycie twojego mikrofonu. Nadal mo\u017cesz uczestniczyc w konferencji ale inni nie b\u0119d\u0105 ci\u0119 s\u0142yszeli. U\u017cyj przycisku kamera aby to naprawi\u0107.",micUnknownError:"Z nieznanej przyczyny nie mo\u017cna u\u017cy\u0107 mikrofonu.",muteParticipantBody:"Nie mo\u017cesz wy\u0142\u0105czy\u0107 ich wyciszenia, ale oni mog\u0105 samodzielnie wy\u0142\u0105czy\u0107 wyciszenie w dowolnym momencie.",muteParticipantButton:"Wyciszenie",muteParticipantDialog:"Czy na pewno wyciszy\u0107 tego uczestnika? Nie b\u0119dziesz m\xf3g\u0142 wy\u0142\u0105czy\u0107 wyciszenia uczestnik\xf3w, ale oni mog\u0105 samodzielnie wy\u0142\u0105czy\u0107 wyciszenie w dowolnym momencie.",muteParticipantTitle:"Wyciszy\u0107 tego uczestnika?",Ok:"OK",passwordLabel:"$t(lockRoomPasswordUppercase)",passwordNotSupported:"Ustanowienie spotkania $t(lockRoomPassword) nie jest obs\u0142ugiwane.",passwordNotSupportedTitle:"$t(lockRoomPasswordUppercase) nie jest obs\u0142ugiwane",passwordRequired:"$t(lockRoomPasswordUppercase) jest wymagane",popupError:"Twoja przegl\u0105darka blokuje wyskakuj\u0105ce okienka pochodz\u0105ce z tej witryny. W\u0142\u0105cz wy\u015bwietlanie wyskakuj\u0105cych okienek w ustawieniach bezpiecze\u0144stwa Twojej przegl\u0105darki i spr\xf3buj ponownie.",popupErrorTitle:"Wyskakuj\u0105ce okienko zosta\u0142o zablokowane",recording:"Nagrywanie",recordingDisabledForGuestTooltip:"Go\u015bcie nie mog\u0105 rozpocz\u0105\u0107 nagrywania.",recordingDisabledTooltip:"Rozpocz\u0119cie nagrywania wy\u0142\u0105czone.",rejoinNow:"Po\u0142\u0105cz ponownie teraz",remoteControlAllowedMessage:"{{user}} zaakceptowa\u0142 Twoj\u0105 pro\u015bb\u0119 o kontrol\u0119 zdaln\u0105!",remoteControlDeniedMessage:"{{user}} odrzuci\u0142 Twoj\u0105 pro\u015bb\u0119 o kontrol\u0119 zdaln\u0105!",remoteControlErrorMessage:"Wyst\u0105pi\u0142 b\u0142\u0105d podczas pr\xf3by uzyskania zgody na zdaln\u0105 kontrol\u0119 od {{user}}!",remoteControlRequestMessage:"Czy zgadzasz si\u0119, \u017ceby {{user}} zdalnie kontrolowa\u0142 Tw\xf3j komputer?",remoteControlShareScreenWarning:"Zwr\xf3\u0107 uwag\u0119, \u017ce je\u015bli wybierzesz \"Pozw\xf3l\" jednocze\u015bnie zostanie wsp\xf3\u0142dzielony Tw\xf3j ekran!",remoteControlStopMessage:"Sesja zdalnej kontroli dobieg\u0142a ko\u0144ca!",remoteControlTitle:"Zdalna kontrola komputera",Remove:"Usu\u0144",removePassword:"Usu\u0144 $t(lockRoomPassword)",removeSharedVideoMsg:"Na pewno chcesz usun\u0105\u0107 wsp\xf3\u0142dzielone wideo?",removeSharedVideoTitle:"Usu\u0144 wideo wsp\xf3\u0142dzielone",reservationError:"B\u0142\u0105d systemu rezerwacji",reservationErrorMsg:"Kod b\u0142\u0119du: {{code}}, tre\u015b\u0107: {{msg}}",retry:"Pon\xf3w",screenSharingFailedToInstall:"Ups! Nie uda\u0142o si\u0119 zainstalowa\u0107 wtyczki do wsp\xf3\u0142dzielenia ekranu.",screenSharingFailedToInstallTitle:"Nie uda\u0142o si\u0119 zainstalowa\u0107 wtyczki do wsp\xf3\u0142dzielenia ekranu",screenSharingFirefoxPermissionDeniedError:"Co\u015b posz\u0142o nie tak podczas pr\xf3by wsp\xf3\u0142dzielenia Twojego ekranu. Upewnij si\u0119, \u017ce udzieli\u0142e\u015b zgody na t\u0105 pr\xf3b\u0119. ",screenSharingFirefoxPermissionDeniedTitle:"Ups! Nie byli\u015bmy w stanie rozpocz\u0105\u0107 wsp\xf3\u0142dzielenia ekranu!",screenSharingPermissionDeniedError:"Ups! Co\u015b posz\u0142o nie tak z prawami dost\u0119pu do wtyczki wsp\xf3\u0142dzielenia ekranu. Wczytaj ponownie i spr\xf3buj jeszcze raz.",sendPrivateMessage:"Niedawno otrzyma\u0142e\u015b prywatn\u0105 wiadomo\u015b\u0107. Czy zamierza\u0142e\u015b odpowiedzie\u0107 na ni\u0105 prywatnie, czy chcesz wys\u0142a\u0107 wiadomo\u015b\u0107 do grupy?",sendPrivateMessageCancel:"Wy\u015blij do grupy",sendPrivateMessageOk:"Wy\u015blij prywatnie",sendPrivateMessageTitle:"Wys\u0142a\u0107 prywatnie?",serviceUnavailable:"Us\u0142uga jest niedost\u0119pna",sessTerminated:"Po\u0142\u0105czenie przerwane",Share:"Wsp\xf3\u0142dziel",shareVideoLinkError:"Podaj prosz\u0119 prawid\u0142owy link youtube.",shareVideoTitle:"Wsp\xf3\u0142dziel wideo",shareYourScreen:"W\u0142\u0105cz wsp\xf3\u0142dzielenie ekranu",shareYourScreenDisabled:"Wsp\xf3\u0142dzielenie ekranu wy\u0142\u0105czone.",shareYourScreenDisabledForGuest:"Go\u015bcie nie mog\u0105 wsp\xf3\u0142dzieli\u0107 ekranu.",startLiveStreaming:"Rozpocznij transmisj\u0119 na \u017cywo",startRecording:"Rozpocznij nagrywanie",startRemoteControlErrorMessage:"Wyst\u0105pi\u0142 b\u0142\u0105d podczas pr\xf3by rozpocz\u0119cie sesji zdalnej kontroli!",stopLiveStreaming:"Zatrzymaj transmisj\u0119 na \u017cywo",stopRecording:"Zatrzymaj nagrywanie",stopRecordingWarning:"Naprawd\u0119 chcesz zatrzyma\u0107 nagrywanie?",stopStreamingWarning:"Czy jeste\u015b pewny, \u017ce chcesz zatrzyma\u0107 t\u0119 transmisj\u0119 na \u017cywo?",streamKey:"Klucz transmisji na \u017cywo",Submit:"Wy\u015blij",thankYou:"Dzi\u0119kujemy Ci za u\u017cywanie {{appName}}!",token:"token",tokenAuthFailed:"Przepraszamy, ale nie jeste\u015b upowa\u017cniony do uczestnictwa w tym po\u0142\u0105czeniu.",tokenAuthFailedTitle:"Uwierzytelnianie nie powiod\u0142o si\u0119",transcribing:"Transkrypcja",unlockRoom:"Usu\u0144 spotkanie $t(lockRoomPassword)",userPassword:"has\u0142o u\u017cytkownika",WaitForHostMsg:"Konferencja {{room}} jeszcze si\u0119 nie rozpocz\u0119\u0142a. Je\u015bli jeste\u015b gospodarzem, prosimy o uwierzytelnienie. Je\u015bli nie, prosimy czeka\u0107 na przybycie gospodarza.",WaitForHostMsgWOk:"Konferencja {{room}} jeszcze si\u0119 nie zacz\u0119\u0142a. Je\u015bli jeste\u015b jej gospodarzem, wybierz Ok, aby si\u0119 uwierzytelni\u0107. Je\u015bli nie, prosimy czeka\u0107 na przybycie gospodarza.",WaitingForHost:"Oczekiwanie na gospodarza...",Yes:"Tak",yourEntireScreen:"Ca\u0142y Tw\xf3j ekran"},dialOut:{statusMessage:"jest teraz {{status}}"},documentSharing:{title:"Wsp\xf3\u0142dzielony dokument"},feedback:{average:"\u015arednio",bad:"\u0179le",detailsLabel:"Powiedz nam o tym wi\u0119cej.",good:"Dobrze",rateExperience:"Jak oceniasz t\u0119 konferencj\u0119?",veryBad:"Bardzo \u017ale",veryGood:"Bardzo dobrze"},incomingCall:{answer:"Odbierz",audioCallTitle:"Przychodz\u0105ce po\u0142\u0105czenie",decline:"Odrzu\u0107",productLabel:"z Jitsi Meet",videoCallTitle:"Przychodz\u0105ce po\u0142\u0105czenie wideo"},info:{accessibilityLabel:"Poka\u017c informacje",addPassword:"Dodaj $t(lockRoomPassword)",cancelPassword:"Anuluj $t(lockRoomPassword)",conferenceURL:"Odno\u015bnik:",country:"Kraj",dialANumber:"Aby do\u0142\u0105czy\u0107 do spotkania, wprowad\u017a jeden z tych numer\xf3w i podaj pin.",dialInConferenceID:"PIN:",dialInNotSupported:"Przepraszamy, aktualnie wybieranie nie jest obs\u0142ugiwane.",dialInNumber:"Wdzwo\u0144 si\u0119:",dialInSummaryError:"B\u0142\u0105d podczas przetwarzania danych do wdzwonienia. Spr\xf3buj ponownie p\xf3\u017aniej.",dialInTollFree:"Numer bezp\u0142atny",genericError:"Ups, co\u015b posz\u0142o nie tak.",inviteLiveStream:"Aby obejrze\u0107 transmisj\u0119 na \u017cywo z tego spotkania, kliknij ten odno\u015bnik: {{url}}",invitePhone:"Aby skorzysta\u0107 z po\u0142\u0105czenia telefonicznego, wprowad\u017a: {{number}},,{{conferenceID}}#\n",invitePhoneAlternatives:"Poszukujesz innego numeru do wdzwonienia?\nZobacz list\u0119 numer\xf3w: {{url}}\n\n\nJe\u015bli wdzwaniasz si\u0119 z telefonu pokojowego, po\u0142\u0105cz si\u0119 bez d\u017awi\u0119ku: {{silentUrl}}",inviteURLFirstPartGeneral:"Zosta\u0142e\u015b zaproszony do do\u0142\u0105czenia do spotkania.",inviteURLFirstPartPersonal:"{{name}} zaprasza Ci\u0119 na spotkanie.\n",inviteURLSecondPart:"\nDo\u0142\u0105cz do spotkania:\n{{url}}\n",liveStreamURL:"Transmisja na \u017cywo:",moreNumbers:"Wi\u0119cej numer\xf3w",noNumbers:"Brak numer\xf3w do wdzwonienia.",noPassword:"Brak",noRoom:"Nie podano pokoju do wdzwonienia.",numbers:"Numery do wdzwonienia",password:"$t(lockRoomPasswordUppercase):",title:"Wsp\xf3\u0142dziel",tooltip:"Udost\u0119pnij odno\u015bnik i informacje do wdzwonienia si\u0119 na to spotkanie",label:"Poinformuj o spotkaniu"},inviteDialog:{alertText:"Nie uda\u0142o si\u0119 zaprosi\u0107 niekt\xf3rych uczestnik\xf3w.",header:"Zapro\u015b",searchCallOnlyPlaceholder:"Podaj numer telefonu",searchPeopleOnlyPlaceholder:"Szukaj uczestnik\xf3w",searchPlaceholder:"Uczestnik lub numer telefonu",send:"Wy\u015blij"},inlineDialogFailure:{msg:"Nieco niedopisali\u015bmy.",retry:"Spr\xf3buj ponownie",support:"Wsparcie",supportMsg:"Je\u015bli to si\u0119 powtarza, skontaktuj si\u0119 z nami przez"},keyboardShortcuts:{focusLocal:"Powi\u0119ksz wideo",focusRemote:"Skup na obrazie innej osoby",fullScreen:"Przejd\u017a w tryb lub zamknij pe\u0142ny ekran",keyboardShortcuts:"Skr\xf3ty klawiaturowe",localRecording:"Wy\u015bwietlanie lub ukrywanie lokalnych element\xf3w steruj\u0105cych zapisem",mute:"W\u0142\u0105cz lub wy\u0142\u0105cz sw\xf3j mikrofon",pushToTalk:"Naci\u015bnij, aby m\xf3wi\u0107",raiseHand:"Podnie\u015b lub opu\u015b\u0107 r\u0119k\u0119",showSpeakerStats:"Poka\u017c statystyki m\xf3wcy",toggleChat:"Otw\xf3rz lub zamknij rozmow\u0119",toggleFilmstrip:"Wy\u015bwietl lub ukryj miniaturki video",toggleScreensharing:"Prze\u0142\u0105cz pomi\u0119dzy kamer\u0105 i wsp\xf3ldzieleniem ekranu",toggleShortcuts:"Wy\u015bwietl lub ukryj skr\xf3ty klawiaturowe",videoMute:"Uruchom lub zatrzymaj kamer\u0119",videoQuality:"Zarz\u0105dzanie jako\u015bci\u0105 po\u0142\u0105cze\u0144"},liveStreaming:{busy:"Pracujemy nad zwolnieniem zasob\xf3w transmisyjnych. Spr\xf3buj ponownie za kilka minut.",busyTitle:"Wszyscy transmituj\u0105cy s\u0105 aktualnie zaj\u0119ci",changeSignIn:"Prze\u0142\u0105cz konta.",choose:"Wybierz transmisj\u0119 na \u017cywo",chooseCTA:"Wybierz opcj\u0119 transmisji. Jeste\u015b obecnie zalogowany jako {{email}}.",enterStreamKey:"Wpisz tutaj sw\xf3j klucz transmisji na \u017cywo YouTube.",error:"Transmitowanie na \u017cywo nie powiod\u0142o si\u0119. Spr\xf3buj ponownie.",errorAPI:"Wyst\u0105pi\u0142 b\u0142\u0105d podczas uzyskiwania dost\u0119pu do transmisji w YouTube. Prosz\u0119 spr\xf3bowa\u0107 zalogowa\u0107 si\u0119 ponownie.",errorLiveStreamNotEnabled:"",expandedOff:"Transmisja na \u017cywo zosta\u0142a zatrzymana",expandedOn:"Spotkanie jest obecnie transmitowane na YouTube.",expandedPending:"Transmisja na \u017cywo rozpoczyna si\u0119...",failedToStart:"Transmitowanie na \u017cywo nie uruchomi\u0142o si\u0119",getStreamKeyManually:"Nie byli\u015bmy w stanie pobra\u0107 \u017cadnych transmisji na \u017cywo. Spr\xf3buj uzyska\u0107 klucz do transmisji na \u017cywo z YouTube.",invalidStreamKey:"Klucz transmisji na \u017cywo mo\u017ce by\u0107 nieprawid\u0142owy.",off:"Transmitowanie na \u017cywo zosta\u0142o zatrzymane",offBy:"{{name}} zatrzyma\u0142 transmisj\u0119 na \u017cywo",on:"Strumie\u0144 live",onBy:"{{name}} rozpocz\u0105\u0142 transmisj\u0119 na \u017cywo",pending:"Start strumieniowania live...",serviceName:"Us\u0142uga transmisji na \u017cywo",signedInAs:"Jeste\u015b obecnie zalogowany jako:",signIn:"Zaloguj si\u0119 z Google",signInCTA:"Zaloguj si\u0119 lub wpisz sw\xf3j klucz do transmisji na \u017cywo YouTube.",signOut:"Wyloguj si\u0119",start:"Rozpocznij transmisj\u0119 na \u017cywo",streamIdHelp:"Co to jest?",unavailableTitle:"Transmisja na \u017cywo jest niedost\u0119pna"},localRecording:{clientState:{off:"Wy\u0142\u0105czone",on:"W\u0142\u0105czone",unknown:"Nieznane"},dialogTitle:"Kontrolki lokalnego nagrywania",duration:"D\u0142ugo\u015b\u0107",durationNA:"N/D",encoding:"Kodowanie",label:"",labelToolTip:"Nagrywanie lokalne jest w\u0142\u0105czone",localRecording:"Nagrywanie lokalne",me:"To ja",messages:{engaged:"W\u0142\u0105czono nagrywanie lokalne.",finished:"",finishedModerator:"",notModerator:"Nie jeste\u015b moderatorem. Nie mo\u017cesz rozpoczyna\u0107 i zatrzymywa\u0107 lokalnego nagrywania."},moderator:"Moderuj\u0105cy",no:"Nie",participant:"Uczestnik",participantStats:"Statystyki uczestnik\xf3w",sessionToken:"Token sesji",start:"Rozpocznij nagrywanie",stop:"Zatrzymaj nagrywanie",yes:"Tak"},lockRoomPassword:"has\u0142o",lockRoomPasswordUppercase:"Has\u0142o",me:"to ja",notify:{connectedOneMember:"{{name}} do\u0142\u0105czy\u0142 do spotkania",connectedThreePlusMembers:"{{name}} i {{count}} innych os\xf3b do\u0142\u0105czy\u0142o do spotkania",connectedTwoMembers:"{{first}} i {{second}} do\u0142\u0105czyli do spotkania",disconnected:"roz\u0142\u0105czone",focus:"Fokus konferencji",focusFail:"{{component}} jest niedost\u0119pny - ponowienie w ci\u0105gu {{ms}} sec",grantedTo:"Prawa moderatora przyznane {{to}}!",invitedOneMember:"{{name}} zosta\u0142 zaproszony",invitedThreePlusMembers:"{{name}} i {{count}} innych os\xf3b zosta\u0142o zaproszone",invitedTwoMembers:"{{first}} i {{second}} zostali zaproszeni",kickParticipant:"{{kicked}} zosta\u0142 usuni\u0119ty przez {{kicker}}",me:"To ja",moderator:"Prawa moderatora przydzielone!",muted:"Rozpocz\u0119to wyciszenie konwersacji.",mutedTitle:"Jeste\u015b wyciszony!",mutedRemotelyTitle:"Zosta\u0142e\u015b wyciszony przez {{participantDisplayName}}!",mutedRemotelyDescription:"Zawsze mo\u017cesz wy\u0142\u0105czy\u0107 wyciszenie, gdy b\u0119dziesz gotowy do m\xf3wienia. Wycisz, gdy sko\u0144czysz, aby nie ha\u0142asowa\u0107 podczas spotkania.",passwordRemovedRemotely:"$t(lockRoomPasswordUppercase) usuni\u0119ty przez innego uczestnika",passwordSetRemotely:"$t(lockRoomPasswordUppercase) ustawiony przez innego uczestnika",raisedHand:"{{name}} chce m\xf3wi\u0107.",somebody:"Kto\u015b",startSilentTitle:"Do\u0142\u0105czy\u0142e\u015b bez wyj\u015bcia d\u017awi\u0119kowego!",startSilentDescription:"Ponownie do\u0142\u0105cz do spotkania, aby w\u0142\u0105czy\u0107 d\u017awi\u0119k",suboptimalBrowserWarning:"",suboptimalExperienceTitle:"Ostrze\u017cenie przegl\u0105darki",unmute:"Wy\u0142\u0105cz wyciszenie",newDeviceCameraTitle:"Wykryto now\u0105 kamer\u0119",newDeviceAudioTitle:"Wykryto nowe urz\u0105dzenie d\u017awi\u0119kowe",newDeviceAction:"U\u017cyj"},passwordSetRemotely:"wybrane przez innego uczestnika\x7f",passwordDigitsOnly:"",poweredby:"nap\u0119dzane dzi\u0119ki",presenceStatus:{busy:"Zaj\u0119te",calling:"Dzwonienie...",connected:"Po\u0142\u0105czono",connecting:"\u0141\u0105czenie...",connecting2:"\u0141\u0105czenie*...",disconnected:"Roz\u0142\u0105czony",expired:"Wygas\u0142e",ignored:"Zignorowane",initializingCall:"Inicjalizacja po\u0142\u0105czenia...",invited:"Zaproszony",rejected:"Odrzucony",ringing:"Dzwonek..."},profile:{setDisplayNameLabel:"Podaj swoj\u0105 wy\u015bwietlan\u0105 nazw\u0119",setEmailInput:"Wprowad\u017a adres e-mail",setEmailLabel:"Ustaw email swojego gravatara",title:"Profil"},raisedHand:"Chcesz si\u0119 odezwa\u0107 ?",recording:{authDropboxText:"Prze\u015blij na Dropbox",availableSpace:"",beta:"BETA",busy:"Pracujemy nad uwolnieniem zasob\xf3w nagrywania. Prosz\u0119 spr\xf3bowa\u0107 ponownie za kilka minut.",busyTitle:"Wszystkie urz\u0105dzenia nagrywania s\u0105 obecnie zajete",error:"Nagranie si\u0119 nie powiod\u0142o. Prosz\u0119 spr\xf3bowa\u0107 ponownie.",expandedOff:"Nagrywanie zosta\u0142o zatrzymane",expandedOn:"Spotkanie jest obecnie nagrywane.",expandedPending:"Nagrywanie si\u0119 rozpoczyna...",failedToStart:"Nagrywanie nie jest mo\u017cliwe",fileSharingdescription:"Wsp\xf3\u0142dziel nagranie z uczestnikami spotkania",live:"NA \u017bYWO",loggedIn:"Zalogowano jako {{userName}}",off:"Nagrywanie zatrzymane",offBy:"{{name}} zatrzyma\u0142 nagrywanie",on:"Nagrywanie",onBy:"{{name}} rozpocz\u0105\u0142 nagrywanie",pending:"Przygotowanie do nagrania spotkania...",rec:"NAGRYWANIE",serviceDescription:"Twoje nagranie zostanie zapisane przez us\u0142ug\u0119 nagrywania",serviceName:"Us\u0142uga nagrywania",signIn:"Zaloguj si\u0119",signOut:"Wyloguj si\u0119",unavailable:"",unavailableTitle:"Nagrywanie niedost\u0119pne"},sectionList:{pullToRefresh:"Przeci\u0105gnij, aby od\u015bwie\u017cy\u0107"},settings:{calendar:{about:"",disconnect:"Roz\u0142\u0105cz",microsoftSignIn:"Zaloguj si\u0119 z Microsoft",signedIn:"",title:"Kalendarz"},devices:"Urz\u0105dzenia",followMe:"Wszyscy widz\u0105 mnie",language:"J\u0119zyk",loggedIn:"Zalogowano jako {{name}}",moderator:"Moderacja",more:"Wi\u0119cej",name:"Nazwa",noDevice:"Brak",selectAudioOutput:"Wyj\u015bcie audio",selectCamera:"Kamera",selectMic:"Mikrofon",startAudioMuted:"Wycisz wszystkich do\u0142\u0105czaj\u0105cych",startVideoMuted:"Ukryj wszystkich do\u0142\u0105czaj\u0105cych",title:"Ustawienia"},settingsView:{advanced:"",alertOk:"OK",alertTitle:"Uwaga",alertURLText:"Wprowadzony adres URL serwera jest nieprawid\u0142owy",buildInfoSection:"Informacja o kompilacji",conferenceSection:"Konferencja",disableCallIntegration:"",disableP2P:"",displayName:"Wy\u015bwietlana nazwa",email:"E-mail",header:"Ustawienia",profileSection:"Profil",serverURL:"Adres URL serwera",showAdvanced:"",startWithAudioMuted:"Rozpocznij z wyciszonym d\u017awi\u0119kiem",startWithVideoMuted:"Rozpocznij z wy\u0142\u0105czonym obrazem",version:"Wersja"},share:{dialInfoText:"",mainText:"Kliknij na poni\u017cszy odno\u015bnik, aby do\u0142\u0105czy\u0107 do spotkania:\n{{roomUrl}}"},speaker:"G\u0142o\u015bnik",speakerStats:{hours:"{{count}} godz.",minutes:"{{count}} min.",name:"Nazwa",seconds:"{{count}} sek.",speakerStats:"Statystyki m\xf3wc\xf3w",speakerTime:""},startupoverlay:{policyText:" ",title:"{{app}} potrzebuje u\u017cywa\u0107 Tw\xf3j mikrofon i kamer\u0119."},suspendedoverlay:{rejoinKeyTitle:"Do\u0142\u0105cz ponownie",text:"Naci\u015bnij przycisk Do\u0142\u0105cz ponownie, aby po\u0142\u0105czy\u0107 si\u0119 ponownie.",title:"Twoja rozmowa wideo zosta\u0142a przerwana, poniewa\u017c komputer zasn\u0105\u0142."},toolbar:{accessibilityLabel:{audioOnly:"Prze\u0142\u0105czanie tylko audio",audioRoute:"Wybierz urz\u0105dzenie d\u017awi\u0119kowe",callQuality:"Zarz\u0105dzanie jako\u015bci\u0105 obrazu",cc:"Prze\u0142\u0105czanie napis\xf3w",chat:"Prze\u0142\u0105czanie okna rozmowy",document:"Prze\u0142\u0105czanie wsp\xf3lnego dokumentu",download:"Pobierz nasze aplikacje",feedback:"Zostaw swoj\u0105 opini\u0119",fullScreen:"Prze\u0142\u0105czanie trybu pe\u0142noekranowego",hangup:"Zostaw rozmow\u0119",help:"Pomoc",invite:"Zapraszaj ludzi",kick:"Usu\u0144 uczestnika",localRecording:"Prze\u0142\u0105czanie lokalnych urz\u0105dze\u0144 steruj\u0105cych zapisem danych",lockRoom:"Prze\u0142\u0105czenie has\u0142a spotkania",moreActions:"Prze\u0142\u0105czanie menu wi\u0119cej dzia\u0142a\u0144",moreActionsMenu:"Wi\u0119cej dzia\u0142a\u0144 w menu",mute:"Uruchamianie wyciszonego audycji",pip:"Tryb prze\u0142\u0105czania obrazu-w-obrazie",privateMessage:"Wy\u015blij wiadomo\u015b\u0107 prywatn\u0105",profile:"Edytuj sw\xf3j profil",raiseHand:"Prze\u0142\u0105czy\u0107 r\u0119k\u0119 w g\xf3r\u0119",recording:"Prze\u0142\u0105czanie nagrywania",remoteMute:"Wycisz uczestnika",Settings:"Ustawienia prze\u0142\u0105czania",sharedvideo:"Prze\u0142\u0105cz udost\u0119pnianie obrazu na YouTube",shareRoom:"Zapro\u015b kogo\u015b",shareYourScreen:"Prze\u0142\u0105czanie podzia\u0142u ekranu",shortcuts:"Prze\u0142\u0105czanie skr\xf3t\xf3w klawiszowych",show:"",speakerStats:"Prze\u0142\u0105czanie statystyk dotycz\u0105cych m\xf3wc\xf3w",tileView:"Prze\u0142\u0105cz widok kafelkowy",toggleCamera:"Prze\u0142\u0105czanie kamery",videomute:"Prze\u0142\u0105czanie wyciszonego filmu wideo",videoblur:"Prze\u0142\u0105cz rozmazanie obrazu"},addPeople:"Dodaj ludzi do swojego telefonu",audioOnlyOff:"Wy\u0142\u0105cz tryb s\u0142abego \u0142\u0105cza",audioOnlyOn:"W\u0142\u0105cz tryb s\u0142abego \u0142\u0105cza",audioRoute:"Wybierz urz\u0105dzenie d\u017awi\u0119kowe",authenticate:"Uwierzytelnianie",callQuality:"Zarz\u0105dzanie jako\u015bci\u0105 obrazu",chat:"Otw\xf3rz / Zamknij rozmow\u0119",closeChat:"Zamknij rozmow\u0119",documentClose:"Zamknij wsp\xf3lny dokument",documentOpen:"Otwarty wsp\xf3\u0142dzielony dokument",download:"Pobierz nasze aplikacje",enterFullScreen:"Wy\u015bwietlanie pe\u0142nego ekranu",enterTileView:"Wejd\u017a w kafelkowy widok",exitFullScreen:"Wy\u015bwietlanie pe\u0142nego ekranu",exitTileView:"Wyjd\u017a z kafelkowego widoku",feedback:"Zostaw swoj\u0105 opini\u0119",hangup:"Opu\u015b\u0107",help:"Pomoc",invite:"Zapraszaj ludzi",login:"Zaloguj",logout:"Wyloguj",lowerYourHand:"Opu\u015b\u0107 r\u0119k\u0119",moreActions:"Wi\u0119cej dzia\u0142a\u0144",mute:"W\u0142\u0105cz / Wy\u0142\u0105cz mikrofon",noAudioSignalTitle:"",noAudioSignalDesc:"",noAudioSignalDescSuggestion:"",openChat:"Otw\xf3rz rozmow\u0119",pip:"Wprowad\u017a tryb obrazu w obrazie",privateMessage:"Wy\u015blij wiadomo\u015b\u0107 prywatn\u0105",profile:"Edytuj sw\xf3j profil",raiseHand:"Podnie\u015b / Opu\u015b\u0107 r\u0119k\u0119",raiseYourHand:"Podnie\u015b r\u0119k\u0119",Settings:"Ustawienia",sharedvideo:"Udost\u0119pnij wideo w Youtube",shareRoom:"Zapro\u015b kogo\u015b",shortcuts:"Wy\u015bwietl skr\xf3ty",speakerStats:"Statystyki m\xf3wc\xf3w",startScreenSharing:"Zacznij wsp\xf3\u0142dzielenie ekranu",startSubtitles:"Uruchom napisy",stopScreenSharing:"Zatrzymaj wsp\xf3\u0142dzielenie ekranu",stopSubtitles:"Zatrzymaj napisy",stopSharedVideo:"Zatrzymaj wideo z YouTube",talkWhileMutedPopup:"Pr\xf3bujesz m\xf3wi\u0107? Jeste\u015b wyciszony.",tileViewToggle:"Prze\u0142\u0105czanie kafelkowego widoku",toggleCamera:"Prze\u0142\u0105czanie kamery",videomute:"W\u0142\u0105cz / Wy\u0142\u0105cz kamer\u0119",startvideoblur:"Rozma\u017c moje t\u0142o",stopvideoblur:"Wy\u0142\u0105cz rozmazanie t\u0142a"},transcribing:{ccButtonTooltip:"Uruchom / Zatrzymaj napisy",error:"Przepisywanie si\u0119 nie powiod\u0142o. Prosz\u0119 spr\xf3bowa\u0107 ponownie.",expandedLabel:"Transkrypcja jest obecnie w\u0142\u0105czona",failedToStart:"B\u0142\u0105d uruchomienia transkrypcji",labelToolTip:"Spotkanie jest transkrybowane",off:"Transkrypcja zosta\u0142a zatrzymana",pending:"Przygotowanie do transkrypcji spotkania...",start:"Rozpocznij wy\u015bwietlanie napis\xf3w",stop:"Zatrzymaj wy\u015bwietlanie napis\xf3w",tr:"TR"},userMedia:{androidGrantPermissions:"Wybierz Pozw\xf3l, gdy przegl\u0105darka zapyta o pozwolenie.",chromeGrantPermissions:"Wybierz Pozw\xf3l, gdy przegl\u0105darka zapyta o pozwolenie.",edgeGrantPermissions:"Wybierz Tak, gdy przegl\u0105darka zapyta o pozwolenie.",electronGrantPermissions:"Udziel przyzwolenia na u\u017cycie swej kamery i mikrofonu",firefoxGrantPermissions:"Wybierz Udost\u0119pnij wybrane urz\u0105dzenie, gdy przegl\u0105darka zapyta o pozwolenie.",iexplorerGrantPermissions:"Wybierz OK, gdy przegladarka zapyta o pozwolenie.",nwjsGrantPermissions:"Udziel przyzwolenia na u\u017cycie swej kamery i mikrofonu",operaGrantPermissions:"Wybierz Pozw\xf3l, gdy przegl\u0105darka zapyta o pozwolenie.","react-nativeGrantPermissions":"Wybierz Pozw\xf3l, gdy przegl\u0105darka zapyta o pozwolenie.",safariGrantPermissions:"Wybierz OK, gdy przegladarka zapyta o pozwolenie."},videoSIPGW:{busy:"",busyTitle:"Us\u0142uga pokoju jest obecnie zaj\u0119ta",errorAlreadyInvited:"{{displayName}} jest ju\u017c zaproszony",errorInvite:"Konferencja nie zosta\u0142a jeszcze ustanowiona. Prosimy spr\xf3bowa\u0107 ponownie p\xf3\u017aniej.",errorInviteFailed:"Pracujemy nad rozwi\u0105zaniem tego problemu. Prosimy ponownie spr\xf3bowa\u0107 p\xf3\u017aniej.",errorInviteFailedTitle:"B\u0142\u0105d zaproszenia {{displayName}}",errorInviteTitle:"B\u0142\u0105d zaproszenia do pokoju",pending:"{{displayName}} zosta\u0142 zaproszony"},videoStatus:{audioOnly:"D\u0179W",audioOnlyExpanded:"Jeste\u015b w trybie s\u0142abego \u0142\u0105cza. W tym trybie b\u0119dziesz otrzymywa\u0107 tylko d\u017awi\u0119k i udost\u0119pnianie ekranu.",callQuality:"Jako\u015b\u0107 obrazu",hd:"HD",hdTooltip:"Podgl\u0105d obrazu w wysokiej rozdzielczo\u015bci",highDefinition:"Wysoka rozdzielczo\u015b\u0107",labelTooiltipNoVideo:"Brak obrazu",labelTooltipAudioOnly:"W\u0142\u0105czono tryb s\u0142abego \u0142\u0105cza",ld:"LD",ldTooltip:"Podgl\u0105d obrazu w niskiej rozdzielczo\u015bci",lowDefinition:"Niska rozdzielczo\u015b\u0107",onlyAudioAvailable:"Dost\u0119pny jest tylko d\u017awi\u0119k",onlyAudioSupported:"Obs\u0142ugujemy tylko d\u017awi\u0119k w tej przegl\u0105darce.",p2pEnabled:"Po\u0142\u0105czenie Peer to Peer w\u0142\u0105czone",p2pVideoQualityDescription:"",recHighDefinitionOnly:"Preferowana wysoka rozdzielczo\u015b\u0107.",sd:"SD",sdTooltip:"Podgl\u0105d obrazu w standardowej rozdzielczo\u015bci",standardDefinition:"Standardowa rozdzielczo\u015b\u0107"},videothumbnail:{domute:"Wyciszenie",flip:"Odwr\xf3cenie",kick:"Wyrzu\u0107",moderator:"Moderuj\u0105cy",mute:"Uczestnik ma wyciszone audio",muted:"Wyciszony",remoteControl:"Kontrola zdalna",show:"",videomute:"Uczestnik zatrzyma\u0142 kamer\u0119"},welcomepage:{accessibilityLabel:{join:"Stuknij aby do\u0142\u0105czy\u0107",roomname:"Podaj nazw\u0119 sali konferencyjnej"},appDescription:"No dalej, pogaw\u0119dka wideo z ca\u0142ym zespo\u0142em. W rzeczywisto\u015bci, zapro\u015b wszystkich, kt\xf3rych znasz. {{app}} jest w pe\u0142ni zaszyfrowanym, w 100% otwartym rozwi\u0105zaniem wideokonferencyjnym, z kt\xf3rego mo\u017cesz korzysta\u0107 przez ca\u0142y dzie\u0144, codziennie, za darmo - bez konieczno\u015bci posiadania konta.",audioVideoSwitch:{audio:"G\u0142os",video:"Obraz"},calendar:"Kalendarz",connectCalendarButton:"Pod\u0142\u0105cz sw\xf3j kalendarz",connectCalendarText:"",enterRoomTitle:"Rozpocznij nowe spotkanie",roomNameAllowedChars:"Nazwa spotkania nie powinna zawiera\u0107 \u017cadnego z tych znak\xf3w: ?, &, :, ', \", %, #.",go:"ID\u0179",goSmall:"ID\u0179",join:"",info:"Informacje",privacy:"Polityka prywatno\u015bci",recentList:"Niedawno",recentListDelete:"Usu\u0144",recentListEmpty:"Twoja ostatnia lista jest obecnie pusta. Rozmawiaj ze swoim zespo\u0142em, a wszystkie ostatnie spotkania znajdziesz tutaj.",reducedUIText:"Witamy w {{app}}!",roomname:"Podaj nazw\u0119 sali konferencyjnej",roomnameHint:"Wprowad\u017a nazw\u0119 lub adres URL pokoju, do kt\xf3rego chcesz do\u0142\u0105czy\u0107. Mo\u017cesz wymy\u015bli\u0107 nazw\u0119, po prostu pozw\xf3l, aby osoby, z kt\xf3rymi si\u0119 spotykasz, zna\u0142y j\u0105 tak, aby wpisa\u0142y t\u0119 sam\u0105 nazw\u0119.",sendFeedback:"Wy\u015blij opini\u0119",terms:"Warunki korzystania",title:"Bezpieczna, w pe\u0142ni funkcjonalna i ca\u0142kowicie bezp\u0142atna wideokonferencja"}}},691,[]); +__d(function(a,n,o,s,r,i,e){r.exports={en:"Ingl\xeas",af:"Afric\xe2ner",bg:"B\xfalgaro",ca:"Catal\xe3o",cs:"Checo",de:"Alem\xe3o",el:"Grego",enGB:"Ingl\xeas (Reino Unido)",eo:"Esperanto",es:"Espanhol",esUS:"Espanhol (Am\xe9rica Latina)",fi:"Finland\xeas",fr:"Franc\xeas",frCA:"Franc\xeas (Canad\xe1)",hr:"Croata",hu:"H\xfangaro",hy:"Arm\xeanio",it:"Italiano",ja:"Japon\xeas",ko:"Coreano",nl:"Holand\xeas",oc:"Occitano",pl:"Polon\xeas",ptBR:"Portugu\xeas (Brasil)",ru:"Russo",sv:"Sueco",tr:"Turco",vi:"Vietnamita",zhCN:"Chin\xeas (China)",zhTW:"Chin\xeas (Taiwan)"}},692,[]); +__d(function(e,a,o,r,i,n,s){i.exports={addPeople:{add:"Convidar",countryNotSupported:"Ainda n\xe3o suportamos este destino.",countryReminder:"Ligando de fora dos EUA? Por favor, certifique-se de come\xe7ar com o c\xf3digo do pa\xeds!",disabled:"Voc\xea n\xe3o pode convidar pessoas.",failedToAdd:"Falha em adicionar participantes",footerText:"Discagem est\xe1 desativada.",loading:"Procurando por pessoas e n\xfameros de telefone",loadingNumber:"Validando o n\xfamero de telefone",loadingPeople:"Procurando por pessoas para convidar",noResults:"Nenhum resultado de busca correspondente",noValidNumbers:"Por favor, digite um n\xfamero de telefone",searchNumbers:"Adicionar n\xfameros de telefone",searchPeople:"Pesquisar pessoas",searchPeopleAndNumbers:"Pesquisar por pessoas ou adicionar seus n\xfameros de telefone",telephone:"Telefone: {{number}}",title:"Convide pessoas para sua reuni\xe3o"},audioDevices:{bluetooth:"Bluetooth",headphones:"Fones de ouvido",phone:"Celular",speaker:"Alto-falantes",none:"Sem dispositivos de \xe1udio dispon\xedvel"},audioOnly:{audioOnly:"Largura de banda baixa"},calendarSync:{addMeetingURL:"Adicionar um link da reuni\xe3o",confirmAddLink:"Gostaria de adicionar um link do Jitsi a esse evento?",error:{appConfiguration:"A integra\xe7\xe3o com calend\xe1rio n\xe3o est\xe1 configurada adequadamente.",generic:"Ocorreu um erro. Verifique as configura\xe7\xf5es de calend\xe1rio ou tente atualizar o calend\xe1rio.",notSignedIn:"Ocorreu um erro durante a autentica\xe7\xe3o para visualiza\xe7\xe3o dos eventos do calend\xe1rio. Verifique as configura\xe7\xf5es de calend\xe1rio e tente entrar novamente."},join:"Participar",joinTooltip:"Participar da reuni\xe3o",nextMeeting:"pr\xf3xima reuni\xe3o",noEvents:"N\xe3o h\xe1 eventos pr\xf3ximos agendados.",ongoingMeeting:"reuni\xe3o em progresso",permissionButton:"Abrir configura\xe7\xf5es",permissionMessage:"Permiss\xe3o do calend\xe1rio \xe9 requerida para ver suas reuni\xf5es na aplica\xe7\xe3o.",refresh:"Atualizar calend\xe1rio",today:"Hoje"},chat:{error:"Erro: sua mensagem n\xe3o foi enviada. Motivo: {{error}}",fieldPlaceHolder:"Digite sua mensagem aqui",messagebox:"Digite uma mensagem",messageTo:"Mensagem privada para {{recipient}}",noMessagesMessage:"N\xe3o h\xe1 mensagens na reuni\xe3o ainda. Inicie uma conversa aqui!",nickname:{popover:"Escolha um apelido",title:"Digite um apelido para usar o bate-papo"},privateNotice:"Mensagem privada para {{recipient}}",title:"Bate-papo",you:"voc\xea"},connectingOverlay:{joiningRoom:"Conectando voc\xea \xe0 reuni\xe3o\u2026"},connection:{ATTACHED:"Anexado",AUTHENTICATING:"Autenticando",AUTHFAIL:"Falha de autentica\xe7\xe3o",CONNECTED:"Conectado",CONNECTING:"Conectando",CONNFAIL:"Falha de conex\xe3o",DISCONNECTED:"Desconectado",DISCONNECTING:"Desconectando",ERROR:"Erro",RECONNECTING:"Ocorreu um problema de rede. Reconectando...",LOW_BANDWIDTH:"O v\xeddeo de {{displayName}} foi desativado para economizar largura de banda",GOT_SESSION_ID:"Obtendo ID da sess\xe3o... Feito",GET_SESSION_ID_ERROR:"Erro ao obter o ID da sess\xe3o: {{code}}",FETCH_SESSION_ID:"Obtendo ID da sess\xe3o..."},connectionindicator:{address:"Endere\xe7o:",bandwidth:"Largura de banda estimada:",bitrate:"Taxa de bits:",bridgeCount:"Servidores: ",connectedTo:"Conectado a:",framerate:"Taxa de quadros:",less:"Mostrar menos",localaddress:"Endere\xe7o local:",localaddress_plural:"Endere\xe7os locais:",localport:"Porta local:",localport_plural:"Portas locais:",more:"Mostrar mais",packetloss:"Perda de pacote:",quality:{good:"Boa",inactive:"Inativo",lost:"Perdido",nonoptimal:"N\xe3o \xf3tima",poor:"Ruim"},remoteaddress:"Endere\xe7o remoto:",remoteaddress_plural:"Endere\xe7os remotos:",remoteport:"Porta remota:",remoteport_plural:"Portas remotas:",resolution:"Resolu\xe7\xe3o:",status:"Conex\xe3o:",transport:"Transporte:",transport_plural:"Transportes:",e2e_rtt:"E2E RTT:"},dateUtils:{earlier:"Mais cedo",today:"Hoje",yesterday:"Ontem"},deepLinking:{appNotInstalled:"Voc\xea precisa do aplicativo m\xf3vel {{app}} para participar da reuni\xe3o no seu telefone.",description:"Nada acontece? Estamos tentando iniciar sua reuni\xe3o no aplicativo desktop {{app}}. Tente novamente ou inicie ele na aplica\xe7\xe3o web {{app}}.",descriptionWithoutWeb:"Nada aconteceu? Tentamos iniciar sua reuni\xe3o no aplicativo de desktop {{app}}.",downloadApp:"Baixe o Aplicativo",launchWebButton:"Iniciar na web",openApp:"Continue na aplica\xe7\xe3o",title:"Iniciando sua reuni\xe3o no {{app}}...",tryAgainButton:"Tente novamente no desktop"},defaultLink:"ex.: {{url}}",defaultNickname:"ex.: Jo\xe3o Pedro",deviceError:{cameraError:"Falha ao acessar sua c\xe2mera",cameraPermission:"Erro ao obter permiss\xe3o para a c\xe2mera",microphoneError:"Falha ao acessar seu microfone",microphonePermission:"Erro ao obter permiss\xe3o para o microfone"},deviceSelection:{noPermission:"Permiss\xe3o n\xe3o concedida",previewUnavailable:"Visualiza\xe7\xe3o indispon\xedvel",selectADevice:"Selecione um dispositivo",testAudio:"Tocar um som de teste"},dialog:{accessibilityLabel:{liveStreaming:"Transmiss\xe3o ao vivo"},allow:"Permitir",alreadySharedVideoMsg:"Outro participante j\xe1 est\xe1 compartilhando um v\xeddeo. Esta confer\xeancia permite apenas um v\xeddeo compartilhado por vez.",alreadySharedVideoTitle:"Somente um v\xeddeo compartilhado \xe9 permitido por vez",applicationWindow:"Janela de aplicativo",Back:"Voltar",cameraConstraintFailedError:"Sua c\xe2mera n\xe3o satisfaz algumas condi\xe7\xf5es necess\xe1rias.",cameraNotFoundError:"A c\xe2mera n\xe3o foi encontrada.",cameraNotSendingData:"Estamos incapazes de acessar sua c\xe2mera. Verifique se outra aplica\xe7\xe3o est\xe1 usando este dispositivo, selecione outro dispositivo do menu de configura\xe7\xf5es ou recarregue a aplica\xe7\xe3o.",cameraNotSendingDataTitle:"Incapaz de acessar a c\xe2mera",cameraPermissionDeniedError:"N\xe3o foi permitido acessar a sua c\xe2mera. Voc\xea ainda pode entrar na confer\xeancia, mas sem exibir o seu v\xeddeo. Clique no bot\xe3o da c\xe2mera para tentar reparar.",cameraUnknownError:"N\xe3o pode usar a c\xe2mera por uma raz\xe3o desconhecida.",cameraUnsupportedResolutionError:"Sua c\xe2mera n\xe3o suporta a resolu\xe7\xe3o de v\xeddeo requerida.",Cancel:"Cancelar",close:"Fechar",conferenceDisconnectMsg:"Voc\xea pode querer verificar sua conex\xe3o de rede. Reconectando em {{seconds}} segundos ...",conferenceDisconnectTitle:"Voc\xea foi desconectado.",conferenceReloadMsg:"Estamos tentando consertar isto. Reconectando em {{seconds}} segundos...",conferenceReloadTitle:"Infelizmente, algo deu errado.",confirm:"Confirmar",confirmNo:"N\xe3o",confirmYes:"Sim",connectError:"Oops! Alguma coisa est\xe1 errada e n\xf3s n\xe3o pudemos conectar \xe0 confer\xeancia.",connectErrorWithMsg:"Oops! Alguma coisa est\xe1 errada e n\xe3o podemos conectar \xe0 confer\xeancia: {{msg}}",connecting:"Conectando",contactSupport:"Contate o suporte",copy:"Copiar",dismiss:"Dispensar",displayNameRequired:"Oi! Qual o seu nome?",done:"Feito",enterDisplayName:"Digite seu nome aqui",error:"Erro",externalInstallationMsg:"Voc\xea precisa instalar nossa extens\xe3o de compartilhamento de tela.",externalInstallationTitle:"Extens\xe3o requerida",goToStore:"V\xe1 para a loja virtual",gracefulShutdown:"O sistema est\xe1 em manuten\xe7\xe3o. Por favor tente novamente mais tarde.",IamHost:"Eu sou o anfitri\xe3o",incorrectRoomLockPassword:"Senha incorreta",incorrectPassword:"Usu\xe1rio ou senha incorretos",inlineInstallationMsg:"Voc\xea precisa instalar nossa extens\xe3o de compartilhamento de tela.",inlineInstallExtension:"Instalar agora",internalError:"Oops! Alguma coisa est\xe1 errada. O seguinte erro ocorreu: {{error}}",internalErrorTitle:"Erro interno",kickMessage:"Voc\xea pode contatar com {{participantDisplayName}} para obter mais detalhes.",kickParticipantButton:"Remover",kickParticipantDialog:"Tem certeza de que deseja remover este participante?",kickParticipantTitle:"Chutar este participante?",kickTitle:"Ai! {{participantDisplayName}} expulsou voc\xea da reuni\xe3o",liveStreaming:"Transmiss\xe3o ao Vivo",liveStreamingDisabledForGuestTooltip:"Visitantes n\xe3o podem iniciar transmiss\xe3o ao vivo.",liveStreamingDisabledTooltip:"Iniciar transmiss\xe3o ao vivo desativada.",lockMessage:"Falha ao travar a confer\xeancia.",lockRoom:"Adicionar reuni\xe3o $t(lockRoomPasswordUppercase)",lockTitle:"Bloqueio falhou",logoutQuestion:"Deseja encerrar a sess\xe3o e finalizar a confer\xeancia?",logoutTitle:"Encerrar sess\xe3o",maxUsersLimitReached:"O limite para o n\xfamero m\xe1ximo de participantes foi atingido. A confer\xeancia est\xe1 cheia. Entre em contato com o propriet\xe1rio da reuni\xe3o ou tente novamente mais tarde!",maxUsersLimitReachedTitle:"Limite m\xe1ximo de participantes atingido",micConstraintFailedError:"Seu microfone n\xe3o satisfaz algumas condi\xe7\xf5es necess\xe1rias.",micNotFoundError:"O microfone n\xe3o foi encontrado.",micNotSendingData:"V\xe1 para as configura\xe7\xf5es do seu computador para ativar o som do microfone e ajustar seu n\xedvel",micNotSendingDataTitle:"Seu microfone est\xe1 mudo pelas configura\xe7\xf5es do sistema",micPermissionDeniedError:"N\xe3o foi permitido acessar o seu microfone. Voc\xea ainda pode entrar na confer\xeancia, mas sem enviar \xe1udio. Clique no bot\xe3o do microfone para tentar reparar.",micUnknownError:"N\xe3o pode usar o microfone por uma raz\xe3o desconhecida.",muteParticipantBody:"Voc\xea n\xe3o est\xe1 habilitado para tirar o mudo deles, mas eles podem tirar o mudo deles mesmos a qualquer tempo.",muteParticipantButton:"Mudo",muteParticipantDialog:"Tem certeza de que deseja silenciar este participante? Voc\xea n\xe3o poder\xe1 desfazer isso, mas o participante pode reabilitar o \xe1udio a qualquer momento.",muteParticipantTitle:"Deixar mudo este participante?",Ok:"Ok",passwordLabel:"A reuni\xe3o foi travada por um participante. Por favor, insira a $t(lockRoomPassword) para entrar.",passwordNotSupported:"A configura\xe7\xe3o de uma reuni\xe3o $t(lockRoomPassword) n\xe3o \xe9 suportada.",passwordNotSupportedTitle:"$t(lockRoomPasswordUppercase) n\xe3o suportado",passwordRequired:"$t(lockRoomPasswordUppercase) requerido",popupError:"Seu navegador est\xe1 bloqueando janelas popup deste site. Habilite os popups nas configura\xe7\xf5es de seguran\xe7a no seu navegador e tente novamente.",popupErrorTitle:"Popup bloqueado",recording:"Gravando",recordingDisabledForGuestTooltip:"Visitantes n\xe3o podem iniciar grava\xe7\xf5es.",recordingDisabledTooltip:"Iniciar grava\xe7\xe3o desativada.",rejoinNow:"Reconectar agora",remoteControlAllowedMessage:"{{user}} aceitou sua requisi\xe7\xe3o de controle remoto!",remoteControlDeniedMessage:"{{user}} rejeitou sua requisi\xe7\xe3o de controle remoto!",remoteControlErrorMessage:"Um erro ocorreu enquanto tentava requerer a permiss\xe3o de controle remoto de {{user}}!",remoteControlRequestMessage:"Deseja permitir que {{user}} controle remotamente sua \xe1rea de trabalho?",remoteControlShareScreenWarning:"Note que se voc\xea pressionar \"Permitir\" voc\xea vai compartilhar sua tela!",remoteControlStopMessage:"A sess\xe3o de controle remoto terminou!",remoteControlTitle:"Conex\xe3o de \xe1rea de trabalho remota",Remove:"Remover",removePassword:"Remove $t(lockRoomPassword)",removeSharedVideoMsg:"Deseja remover seu v\xeddeo compartilhado?",removeSharedVideoTitle:"Remover v\xeddeo compartilhado",reservationError:"Erro de sistema de reserva",reservationErrorMsg:"C\xf3digo do erro: {{code}}, mensagem: {{msg}}",retry:"Tentar novamente",screenSharingFailedToInstall:"Oops! Falhou a instala\xe7\xe3o da extens\xe3o de compartilhamento de tela.",screenSharingFailedToInstallTitle:"A extens\xe3o de compartilhamento de tela falhou ao instalar",screenSharingFirefoxPermissionDeniedError:"Algo deu errado enquanto est\xe1vamos tentando compartilhar sua tela. Por favor, certifique-se de que voc\xea nos deu permiss\xe3o para faz\xea-lo. ",screenSharingFirefoxPermissionDeniedTitle:"Opa! N\xe3o foi poss\xedvel iniciar o compartilhamento de tela!",screenSharingPermissionDeniedError:"Oops! Alguma coisa est\xe1 errada com suas permiss\xf5es de compartilhamento de tela. Recarregue e tente de novo.",sendPrivateMessage:"Voc\xea enviou uma mensagem privada recentemente. Tem inten\xe7\xe3o de responder em privado, ou deseja enviar sua mensagem para o grupo?",sendPrivateMessageCancel:"Enviar para o grupo",sendPrivateMessageOk:"Enviar em privado",sendPrivateMessageTitle:"Enviar em privado?",serviceUnavailable:"Servi\xe7o indispon\xedvel",sessTerminated:"Chamada terminada",Share:"Compartilhar",shareVideoLinkError:"Por favor, forne\xe7a um link do youtube correto.",shareVideoTitle:"Compartilhar um v\xeddeo",shareYourScreen:"Compartilhar sua tela",shareYourScreenDisabled:"Compartilhamento de tela desativada.",shareYourScreenDisabledForGuest:"Visitantes n\xe3o podem compartilhar tela.",startLiveStreaming:"Iniciar transmiss\xe3o ao vivo",startRecording:"Iniciar grava\xe7\xe3o",startRemoteControlErrorMessage:"Um erro ocorreu enquanto tentava iniciar uma sess\xe3o de controle remoto!",stopLiveStreaming:"Parar transmiss\xe3o ao vivo",stopRecording:"Parar a grava\xe7\xe3o",stopRecordingWarning:"Tem certeza que deseja parar a grava\xe7\xe3o?",stopStreamingWarning:"Tem certeza que deseja parar a transmiss\xe3o ao vivo?",streamKey:"Chave para transmiss\xe3o ao vivo",Submit:"Enviar",thankYou:"Obrigado por usar o {{appName}}!",token:"token",tokenAuthFailed:"Desculpe, voc\xea n\xe3o est\xe1 autorizado a entrar nesta chamada.",tokenAuthFailedTitle:"Falha de autentica\xe7\xe3o",transcribing:"Transcrevendo",unlockRoom:"Remove a reuni\xe3o $t(lockRoomPassword)",userPassword:"senha do usu\xe1rio",WaitForHostMsg:"A confer\xeancia {{room}} ainda n\xe3o come\xe7ou. Se voc\xea \xe9 o anfitri\xe3o, fa\xe7a a autentica\xe7\xe3o. Do contr\xe1rio, aguarde a chegada do anfitri\xe3o.",WaitForHostMsgWOk:"A confer\xeancia {{room}} ainda n\xe3o come\xe7ou. Se voc\xea \xe9 o anfitri\xe3o, pressione Ok para autenticar. Do contr\xe1rio, aguarde a chegada do anfitri\xe3o.",WaitingForHost:"Esperando o hospedeiro...",Yes:"Sim",yourEntireScreen:"Toda sua tela",screenSharingAudio:"Compartilhar \xe1udio",muteEveryoneStartMuted:"Todos iniciam silenciados daqui para frente",muteEveryoneSelf:"a si pr\xf3prio",muteEveryoneDialog:"Tem certeza que deseja silenciar todos? Voc\xea n\xe3o poder\xe1 ativar o som deles, mas eles podem ativar o som eles mesmo a qualquer momento.",muteEveryoneTitle:"Silenciar todos?",muteEveryoneElseTitle:"Silenciar todo mundo exceto {{whom}}?",muteEveryoneElseDialog:"Uma vez silenciados, voc\xea n\xe3o poder\xe1 reativar o som deles, mas eles poder\xe3o reativar o som a qualquer momento."},dialOut:{statusMessage:"est\xe1 agora {{status}}"},documentSharing:{title:"Documento compartilhado"},feedback:{average:"M\xe9dia",bad:"Ruim",detailsLabel:"Nos conte mais sobre isso.",good:"Boa",rateExperience:"Avalie sua experi\xeancia na reuni\xe3o",veryBad:"Muito ruim",veryGood:"Muito boa"},incomingCall:{answer:"Responder",audioCallTitle:"Chamada recebida",decline:"Dispensar",productLabel:"do Jitsi Meet",videoCallTitle:"Chamada de v\xeddeo recebida"},info:{accessibilityLabel:"Mostrar info",addPassword:"Adicione $t(lockRoomPassword)",cancelPassword:"Cancela $t(lockRoomPassword)",conferenceURL:"Link:",country:"Pa\xeds",dialANumber:"Para entrar na reuni\xe3o, disque um desses n\xfameros e depois insira o PIN.",dialInConferenceID:"PIN:",dialInNotSupported:"Desculpe, a discagem n\xe3o \xe9 atualmente suportada.",dialInNumber:"Discar:",dialInSummaryError:"Ocorreu um erro ao buscar a informa\xe7\xe3o de discagem. Tente novamente mais tarde.",dialInTollFree:"Chamada gratuita",genericError:"Oops, alguma coisa deu errado.",inviteLiveStream:"Para ver a transmiss\xe3o ao vivo da reuni\xe3o, clique no link: {{url}}",invitePhone:"Para participar por telefone, toque aqui: {{number}},,{{conferenceID}}#\n",invitePhoneAlternatives:"Procurando um n\xfamero de discagem diferente?\nVeja os n\xfameros de discagem da reuni\xe3o: {{url}} \n\n\nSe voc\xea tamb\xe9m estiver discando atrav\xe9s de um telefone da sala, participe sem conectar-se ao \xe1udio: {{silentUrl}}",inviteURLFirstPartGeneral:"Voc\xea foi convidado para uma reuni\xe3o.",inviteURLFirstPartPersonal:"{{name}} est\xe1 convidando voc\xea para uma reuni\xe3o.\n",inviteURLSecondPart:"\nEntre na reuni\xe3o:\n{{url}}\n",liveStreamURL:"Transmiss\xe3o ao vivo:",moreNumbers:"Mais n\xfameros",noNumbers:"Sem n\xfameros de discagem.",noPassword:"Nenhum",noRoom:"Nenhuma sala foi especificada para entrar.",numbers:"N\xfameros de discagem",password:"$t(lockRoomPasswordUppercase):",title:"Compartilhar",tooltip:"Compartilhar link e discagem para esta reuni\xe3o",label:"Informa\xe7\xf5es da reuni\xe3o"},inviteDialog:{alertText:"N\xe3o foi poss\xedvel convidar alguns participantes.",header:"Convidar",searchCallOnlyPlaceholder:"Digite o n\xfamero do telefone",searchPeopleOnlyPlaceholder:"Buscar participantes",searchPlaceholder:"Participante ou n\xba de telefone",send:"Enviar"},inlineDialogFailure:{msg:"Tivemos um pequeno problema.",retry:"Tentar novamente",support:"Suporte",supportMsg:"Se isso continuar acontecendo, chegar a"},keyboardShortcuts:{focusLocal:"Focar no seu v\xeddeo",focusRemote:"Focar no v\xeddeo de outro participante",fullScreen:"Entrar ou sair da tela cheia",keyboardShortcuts:"Atalhos de teclado",localRecording:"Mostrar ou ocultar controles de grava\xe7\xe3o local",mute:"Deixar mudo ou n\xe3o o microfone",pushToTalk:"Pressione para falar",raiseHand:"Erga ou baixe sua m\xe3o",showSpeakerStats:"Exibir estat\xedsticas do alto falante",toggleChat:"Abrir ou fechar o painel de bate-papo",toggleFilmstrip:"Mostrar ou ocultar miniaturas de v\xeddeo",toggleScreensharing:"Trocar entre c\xe2mera e compartilhamento de tela",toggleShortcuts:"Mostrar ou ocultar atalhos de teclado",videoMute:"Iniciar ou parar sua c\xe2mera",videoQuality:"Gerenciar qualidade da chamada"},liveStreaming:{busy:"Estamos trabalhando para liberar os recursos de transmiss\xe3o. Tente novamente em alguns minutos.",busyTitle:"Todas as transmiss\xf5es est\xe3o atualmente ocupadas",changeSignIn:"Alternar contas.",choose:"Escolha uma transmiss\xe3o ao vivo",chooseCTA:"Escolha uma op\xe7\xe3o de transmiss\xe3o. Voc\xea est\xe1 conectado atualmente como {{email}}.",enterStreamKey:"Insira sua chave de transmiss\xe3o ao vivo do YouTube aqui.",error:"Falha na transmiss\xe3o ao vivo. Tente de novo.",errorAPI:"Ocorreu um erro ao acessar suas transmiss\xf5es do YouTube. Por favor tente logar novamente.",errorLiveStreamNotEnabled:"Transmiss\xe3o ao vivo n\xe3o est\xe1 ativada em {{email}}. Ative a transmiss\xe3o ao vivo ou registre numa conta com transmiss\xe3o ao vivo ativada.",expandedOff:"A transmiss\xe3o ao vivo foi encerrada",expandedOn:"A reuni\xe3o est\xe1 sendo transmitida pelo YouTube.",expandedPending:"Iniciando a transmiss\xe3o ao vivo...",failedToStart:"Falha ao iniciar a transmiss\xe3o ao vivo",getStreamKeyManually:"N\xe3o conseguimos buscar nenhuma transmiss\xe3o ao vivo. Tente obter sua chave de transmiss\xe3o ao vivo no YouTube.",invalidStreamKey:"A senha para transmiss\xe3o ao vivo pode estar incorreta.",off:"Transmiss\xe3o ao vivo encerrada",offBy:"{{name}} parou a transmiss\xe3o ao vivo",on:"Transmiss\xe3o ao Vivo",onBy:"{{name}} iniciou a transmiss\xe3o ao vivo",pending:"Iniciando Transmiss\xe3o ao Vivo...",serviceName:"Servi\xe7o de Transmiss\xe3o ao Vivo",signedInAs:"Voc\xea est\xe1 conectado como:",signIn:"Fa\xe7a login no Google",signInCTA:"Fa\xe7a login ou insira sua chave de transmiss\xe3o ao vivo do YouTube.",signOut:"Sair",start:"Iniciar uma transmiss\xe3o ao vivo",streamIdHelp:"O que \xe9 isso?",unavailableTitle:"Transmiss\xe3o ao vivo indispon\xedvel",googlePrivacyPolicy:"Pol\xedtica de Privacidade do Google",youtubeTerms:"Termos de servi\xe7os do YouTube"},localRecording:{clientState:{off:"Desligado",on:"Ligado",unknown:"Desconhecido"},dialogTitle:"Controles da Grava\xe7\xe3o Local",duration:"Dura\xe7\xe3o",durationNA:"N/D",encoding:"Codificando",label:"LOR",labelToolTip:"Grava\xe7\xe3o local ativada",localRecording:"Grava\xe7\xe3o local",me:"Eu",messages:{engaged:"Grava\xe7\xe3o local iniciada.",finished:"Sess\xe3o de grava\xe7\xe3o {{token}} terminada. Por favor, envie o arquivo gravado para o moderador.",finishedModerator:"Sess\xe3o de grava\xe7\xe3o {{token}} terminada. A grava\xe7\xe3o da faixa local foi salva. Por favor, pe\xe7a aos outros participantes para enviar suas grava\xe7\xf5es.",notModerator:"Voc\xea n\xe3o \xe9 o moderador. Voc\xea n\xe3o pode iniciar ou parar a grava\xe7\xe3o local."},moderator:"Moderador",no:"N\xe3o",participant:"Participante",participantStats:"Estat\xedsticas dos Participantes",sessionToken:"Token de Sess\xe3o",start:"Iniciar grava\xe7\xe3o",stop:"Parar a Grava\xe7\xe3o",yes:"Sim"},lockRoomPassword:"senha",lockRoomPasswordUppercase:"Senha",me:"eu",notify:{connectedOneMember:"{{name}} entrou na reuni\xe3o",connectedThreePlusMembers:"{{name}} e outros {{count}} entraram na reuni\xe3o",connectedTwoMembers:"{{first}} e {{second}} entraram na reuni\xe3o",disconnected:"desconectado",focus:"Foco da confer\xeancia",focusFail:"{{component}} n\xe3o dispon\xedvel - tente em {{ms}} seg",grantedTo:"Direitos de moderador concedido para {{to}}!",invitedOneMember:"{{name}} foi convidado(a)",invitedThreePlusMembers:"{{name}} e {{count}} outros foram convidados",invitedTwoMembers:"{{first}} e {{second}} foram convidados",kickParticipant:"{{kicked}} foi chutado por {{kicker}}",me:"Eu",moderator:"Direitos de moderador concedidos!",muted:"Voc\xea iniciou uma conversa em mudo.",mutedTitle:"Voc\xea est\xe1 mudo!",mutedRemotelyTitle:"Voc\xea foi silenciado por {{participantDisplayName}}!",mutedRemotelyDescription:"Voc\xea sempre pode ativar o som quando estiver pronto para falar. Retire o som quando terminar para manter o ru\xeddo longe da reuni\xe3o.",passwordRemovedRemotely:"$t(lockRoomPasswordUppercase) removido por outro participante",passwordSetRemotely:"$t(lockRoomPasswordUppercase) definido por outro participante",raisedHand:"{{name}} gostaria de falar.",somebody:"Algu\xe9m",startSilentTitle:"Voc\xea entrou sem sa\xedda de \xe1udio!",startSilentDescription:"Volte \xe0 reuni\xe3o para habilitar o \xe1udio",suboptimalBrowserWarning:"Tememos que sua experi\xeancia de reuni\xe3o n\xe3o seja t\xe3o boa aqui. Estamos procurando maneiras de melhorar isso, mas at\xe9 ent\xe3o, tente usar um dos navegadores completamente suportados.",suboptimalExperienceTitle:"Alerta do navegador",unmute:"Ativar som",newDeviceCameraTitle:"Nova c\xe2mera detectada",newDeviceAudioTitle:"Novo dispositivo de \xe1udio detectado",newDeviceAction:"Usar"},passwordSetRemotely:"Definido por outro participante",passwordDigitsOnly:"At\xe9 {{number}} d\xedgitos",poweredby:"distribu\xeddo por",presenceStatus:{busy:"Ocupado",calling:"Chamando...",connected:"Conectado",connecting:"Conectando...",connecting2:"Conectando*...",disconnected:"Desconectado",expired:"Expirado",ignored:"Ignorado",initializingCall:"Iniciando Chamada...",invited:"Convidar",rejected:"Rejeitado",ringing:"Tocando..."},profile:{setDisplayNameLabel:"Definir seu nome de exibi\xe7\xe3o",setEmailInput:"Digite e-mail",setEmailLabel:"Definir seu email de gravatar",title:"Perfil"},raisedHand:"Gostaria de falar",recording:{authDropboxText:"Enviar para o Dropbox",availableSpace:"Espa\xe7o dispon\xedvel: {{spaceLeft}} MB (aproximadamente {{duration}} minutos de grava\xe7\xe3o)",beta:"BETA",busy:"Estamos trabalhando para liberar recursos de grava\xe7\xe3o. Tente novamente em alguns minutos.",busyTitle:"Todas as grava\xe7\xf5es est\xe3o atualmente ocupadas",error:"A grava\xe7\xe3o falhou. Tente novamente.",expandedOff:"Grava\xe7\xe3o finalizada",expandedOn:"A reuni\xe3o est\xe1 sendo gravada.",expandedPending:"Iniciando grava\xe7\xe3o...",failedToStart:"Falha ao iniciar a grava\xe7\xe3o",fileSharingdescription:"Compartilhar grava\xe7\xe3o com participantes da reuni\xe3o",live:"AOVIVO",loggedIn:"Conectado como {{userName}}",off:"Grava\xe7\xe3o parada",offBy:"{{name}} parou a grava\xe7\xe3o",on:"Gravando",onBy:"{{name}} iniciou a grava\xe7\xe3o",pending:"Preparando para gravar a reuni\xe3o...",rec:"REC",serviceDescription:"Sua grava\xe7\xe3o ser\xe1 salva pelo servi\xe7o de grava\xe7\xe3o",serviceName:"Servi\xe7o de grava\xe7\xe3o",signIn:"Entrar",signOut:"Sair",unavailable:"Oops! O {{serviceName}} est\xe1 indispon\xedvel. Estamos trabalhando para resolver o problema. Por favor, tente mais tarde.",unavailableTitle:"Grava\xe7\xe3o indispon\xedvel"},sectionList:{pullToRefresh:"Puxe para atualizar"},settings:{calendar:{about:"A integra\xe7\xe3o do calend\xe1rio {{appName}} \xe9 usada para acessar com seguran\xe7a o seu calend\xe1rio para que ele possa ler os pr\xf3ximos eventos.",disconnect:"Desconectar",microsoftSignIn:"Entrar com Microsoft",signedIn:"Atualmente acessando eventos do calend\xe1rio para {{email}}. Clique no bot\xe3o Desconectar abaixo para parar de acessar os eventos da agenda.",title:"Calend\xe1rio"},devices:"Dispositivos",followMe:"Todos me seguem",language:"Idioma",loggedIn:"Conectado como {{name}}",moderator:"Moderador",more:"Mais",name:"Nome",noDevice:"Nenhum",selectAudioOutput:"Sa\xedda de \xe1udio",selectCamera:"C\xe2mera",selectMic:"Microfone",startAudioMuted:"Todos iniciam mudos",startVideoMuted:"Todos iniciam ocultos",title:"Configura\xe7\xf5es",speakers:"Alto-faltantes",microphones:"Microfones"},settingsView:{advanced:"Avan\xe7ado",alertOk:"OK",alertTitle:"Aten\xe7\xe3o",alertURLText:"A URL digitada do servidor \xe9 inv\xe1lida",buildInfoSection:"Informa\xe7\xf5es de compila\xe7\xe3o",conferenceSection:"Confer\xeancia",disableCallIntegration:"Desativar integra\xe7\xe3o de chamada nativa",disableP2P:"Desativar modo ponto a ponto",displayName:"Nome de exibi\xe7\xe3o",email:"E-mail",header:"Configura\xe7\xf5es",profileSection:"Perfil",serverURL:"URL do servidor",showAdvanced:"Mostrar configura\xe7\xf5es avan\xe7adas",startWithAudioMuted:"Iniciar sem \xe1udio",startWithVideoMuted:"Iniciar sem v\xeddeo",version:"Vers\xe3o"},share:{dialInfoText:"\n\n=====\n\nDeseja apenas discar no seu telefone?\n\n{{defaultDialInNumber}}Clique neste link para ver os n\xfameros de telefone para esta reuni\xe3o\n{{dialInfoPageUrl}}",mainText:"Clique no seguinte link para entrar na reuni\xe3o:\n{{roomUrl}}"},speaker:"Alto-falantes",speakerStats:{hours:"{{count}}h",minutes:"{{count}}m",name:"Nome",seconds:"{{count}}s",speakerStats:"Estat\xedsticas do Apresentador",speakerTime:"Tempo do Apresentador"},startupoverlay:{policyText:" ",title:"O {{app}} precisa usar seu microfone e c\xe2mera."},suspendedoverlay:{rejoinKeyTitle:"Reconectar",text:"Pressione o bot\xe3o Reentrar para reconectar.",title:"Sua chamada de v\xeddeo foi interrompida, porque seu computador foi dormir."},toolbar:{accessibilityLabel:{audioOnly:"Alternar para apenas \xe1udio",audioRoute:"Selecionar o dispositivo de som",callQuality:"Gerenciar qualidade do v\xeddeo",cc:"Alternar legendas",chat:"Alternar para janela de chat",document:"Alternar para documento compartilhado",download:"Baixe nossos aplicativos",feedback:"Deixar feedback",fullScreen:"Alternar para tela cheia",hangup:"Sair da chamada",help:"Ajuda",invite:"Convidar pessoas",kick:"Remover participante",localRecording:"Alternar controles de grava\xe7\xe3o local",lockRoom:"Ativar/desativar senha de reuni\xe3o",moreActions:"Alternar mais menu de a\xe7\xf5es",moreActionsMenu:"Menu de mais a\xe7\xf5es",mute:"Alternar mudo do \xe1udio",pip:"Alternar modo Picture-in-Picture",privateMessage:"Enviar mensagem privada",profile:"Editar seu perfil",raiseHand:"Alternar levantar a m\xe3o",recording:"Alternar grava\xe7\xe3o",remoteMute:"Silenciar participante",Settings:"Alternar configura\xe7\xf5es",sharedvideo:"Alternar compartilhamento de v\xeddeo do Youtube",shareRoom:"Convidar algu\xe9m",shareYourScreen:"Alternar compartilhamento de tela",shortcuts:"Alternar atalhos",show:"Mostrar no palco",speakerStats:"Alternar estat\xedsticas do apresentador",tileView:"Alternar visualiza\xe7\xe3o em blocos",toggleCamera:"Alternar c\xe2mera",videomute:"Alternar mudo do v\xeddeo",videoblur:"Alternar desfoque de v\xeddeo",toggleFilmstrip:"Alterar tira de filme",muteEveryone:"Silenciar todos",moreOptions:"Mostrar mais op\xe7\xf5es"},addPeople:"Adicionar pessoas \xe0 sua chamada",audioOnlyOff:"Desabilitar modo de largura de banda baixa",audioOnlyOn:"Habilitar modo de largura de banda baixa",audioRoute:"Selecionar o dispositivo de som",authenticate:"Autenticar",callQuality:"Gerenciar qualidade do v\xeddeo",chat:"Abrir ou fechar o bate-papo",closeChat:"Fechar chat",documentClose:"Fechar documento compartilhado",documentOpen:"Abrir documento compartilhado",download:"Baixe nossos aplicativos",enterFullScreen:"Ver em tela cheia",enterTileView:"Entrar em exibi\xe7\xe3o de bloco",exitFullScreen:"Sair da tela cheia",exitTileView:"Sair de exibi\xe7\xe3o de bloco",feedback:"Deixar feedback",hangup:"Sair",help:"Ajuda",invite:"Convidar pessoas",login:"Iniciar sess\xe3o",logout:"Encerrar sess\xe3o",lowerYourHand:"Baixar a m\xe3o",moreActions:"Mais a\xe7\xf5es",mute:"Mudo / N\xe3o mudo",noAudioSignalTitle:"N\xe3o h\xe1 entrada de \xe1udio vindo do seu microfone!",noAudioSignalDesc:"Se voc\xea n\xe3o o desativou propositalmente das configura\xe7\xf5es do sistema ou do hardware, considere trocar o dispositivo.",noAudioSignalDescSuggestion:"Se voc\xea n\xe3o o desativou propositalmente das configura\xe7\xf5es do sistema ou do hardware, considere trocar para o dispositivo sugerido.",openChat:"Abrir chat",pip:"Entrar em modo Quadro-a-Quadro",privateMessage:"Enviar mensagem privada",profile:"Editar seu perfil",raiseHand:"Erguer / Baixar sua m\xe3o",raiseYourHand:"Levantar a m\xe3o",Settings:"Configura\xe7\xf5es",sharedvideo:"Compartilhar um v\xeddeo do YouTube",shareRoom:"Convidar algu\xe9m",shortcuts:"Ver atalhos",speakerStats:"Estat\xedsticas do Apresentador",startScreenSharing:"Iniciar compart. de tela",startSubtitles:"Iniciar legendas",stopScreenSharing:"Parar compart. de tela",stopSubtitles:"Parar legendas",stopSharedVideo:"Parar v\xeddeo do YouTube",talkWhileMutedPopup:"Tentando falar? Voc\xea est\xe1 em mudo.",tileViewToggle:"Alternar visualiza\xe7\xe3o em blocos",toggleCamera:"Alternar c\xe2mera",videomute:"Iniciar ou parar a c\xe2mera",startvideoblur:"Desfocar meu plano de fundo",stopvideoblur:"Desativar desfoque de fundo",noisyAudioInputDesc:"Parece que o microfone est\xe1 fazendo barulho, considere silenciar ou alterar o dispositivo.",noisyAudioInputTitle:"O seu microfone parece estar barulhento!",noAudioSignalDialInLinkDesc:"Discar n\xfameros",noAudioSignalDialInDesc:"Voc\xea tamb\xe9m pode discar usando:",muteEveryone:"Silenciar todos",moreOptions:"Mais op\xe7\xf5es"},transcribing:{ccButtonTooltip:"Iniciar/parar legendas",error:"Transcri\xe7\xe3o falhou. Tente novamente.",expandedLabel:"Transcri\xe7\xe3o ativada",failedToStart:"Transcri\xe7\xe3o falhou ao iniciar",labelToolTip:"A reuni\xe3o esta sendo transcrita",off:"Transcri\xe7\xe3o parada",pending:"Preparando a transcri\xe7\xe3o da reuni\xe3o...",start:"Exibir legendas",stop:"N\xe3o exibir legendas",tr:"TR"},userMedia:{androidGrantPermissions:"Selecione Permitir quando seu navegador perguntar pelas permiss\xf5es.",chromeGrantPermissions:"Selecione Permitir quando seu navegador perguntar pelas permiss\xf5es.",edgeGrantPermissions:"Selecione Sim quando seu navegador perguntar pelas permiss\xf5es.",electronGrantPermissions:"D\xea as permiss\xf5es para usar sua c\xe2mera e microfone",firefoxGrantPermissions:"Selecione Compartilhar Dispositivos Selecionados quando seu navegador perguntar pelas permiss\xf5es.",iexplorerGrantPermissions:"Selecione OK quando seu navegador perguntar pelas permiss\xf5es.",nwjsGrantPermissions:"D\xea as permiss\xf5es para usar sua c\xe2mera e microfone",operaGrantPermissions:"Selecione Permitir quando seu navegador perguntar pelas permiss\xf5es.","react-nativeGrantPermissions":"Selecione Permitir quando seu navegador perguntar pelas permiss\xf5es.",safariGrantPermissions:"Selecione OK quando seu navegador perguntar pelas permiss\xf5es."},videoSIPGW:{busy:"Estamos trabalhando para liberar recursos. Por favor, tente novamente em alguns minutos.",busyTitle:"O servi\xe7o da sala est\xe1 ocupado",errorAlreadyInvited:"{{displayName}} j\xe1 convidado",errorInvite:"A confer\xeancia ainda n\xe3o foi estabelecida. Por favor, tente mais tarde.",errorInviteFailed:"Estamos trabalhando para resolver o problema. Por favor, tente mais tarde.",errorInviteFailedTitle:"Convite para {{displayName}} falhou",errorInviteTitle:"Erro no convite da sala",pending:"{{displayName}} foi convidado"},videoStatus:{audioOnly:"AUD",audioOnlyExpanded:"Voc\xea est\xe1 em modo de banda baixa. Neste modo, se recebe somente \xe1udio e compartilhamento de tela.",callQuality:"Qualidade de v\xeddeo",hd:"HD",hdTooltip:"Ver v\xeddeo em alta defini\xe7\xe3o",highDefinition:"Alta defini\xe7\xe3o (HD)",labelTooiltipNoVideo:"Sem v\xeddeo",labelTooltipAudioOnly:"Modo de largura de banda baixa habilitada",ld:"LD",ldTooltip:"Ver v\xeddeo em baixa defini\xe7\xe3o",lowDefinition:"Baixa defini\xe7\xe3o (LD)",onlyAudioAvailable:"Somente \xe1udio dispon\xedvel",onlyAudioSupported:"Suportamos somente \xe1udio neste navegador.",p2pEnabled:"Ponto-a-ponto habilitada",p2pVideoQualityDescription:"No modo ponto a ponto, a qualidade do v\xeddeo recebido s\xf3 pode ser alternada entre alta e apenas \xe1udio. Outras configura\xe7\xf5es n\xe3o ser\xe3o respeitadas at\xe9 que o ponto a ponto seja encerrado.",recHighDefinitionOnly:"Prefer\xeancia para alta defini\xe7\xe3o.",sd:"SD",sdTooltip:"Ver v\xeddeo em defini\xe7\xe3o padr\xe3o",standardDefinition:"Defini\xe7\xe3o padr\xe3o"},videothumbnail:{domute:"Mudo",flip:"Inverter",kick:"Expulsar",moderator:"Moderador",mute:"Participante est\xe1 mudo",muted:"Mudo",remoteControl:"Controle remoto",show:"Mostrar no palco",videomute:"O participante parou a c\xe2mera",domuteOthers:"Silenciar todos os demais"},welcomepage:{accessibilityLabel:{join:"Toque para entrar",roomname:"Digite o nome da sala"},appDescription:"V\xe1 em frente, converse por v\xeddeo com toda a equipe. De fato, convide todos que voc\xea conhece. {{app}} \xe9 uma solu\xe7\xe3o de videoconfer\xeancia totalmente criptografada e 100% de c\xf3digo aberto que voc\xea pode usar todos os dias, a cada dia, gratuitamente \u2014 sem necessidade de conta.",audioVideoSwitch:{audio:"Voz",video:"V\xeddeo"},calendar:"Calend\xe1rio",connectCalendarButton:"Conectar seu calend\xe1rio",connectCalendarText:"Conecte seu calend\xe1rio para ver todas as reuni\xf5es em {{app}}. Al\xe9m disso, adicione reuni\xf5es de {{provider}} ao seu calend\xe1rio e inicie-as com apenas um clique.",enterRoomTitle:"Iniciar uma nova reuni\xe3o",roomNameAllowedChars:"Nome da reuni\xe3o n\xe3o deve conter qualquer um destes caracteres: ?. &, :, ', \", %, #.",go:"IR",goSmall:"IR",join:"CRIAR / ENTRAR",info:"Informa\xe7\xf5es",privacy:"Pol\xedtica de Privacidade",recentList:"Recente",recentListDelete:"Remover",recentListEmpty:"Sua lista recente est\xe1 vazia. As reuni\xf5es que voc\xea realizar ser\xe3o exibidas aqui.",reducedUIText:"Bem-vindo ao {{app}}!",roomname:"Digite o nome da sala",roomnameHint:"Digite o nome ou a URL da sala que voc\xea deseja entrar. Voc\xea pode digitar um nome, e apenas deixe para as pessoas que voc\xea quer se reunir digitem o mesmo nome.",sendFeedback:"Enviar coment\xe1rios",terms:"Termos",title:"Videoconfer\xeancias mais seguras, flex\xedveis e totalmente gratuitas",getHelp:"Obter ajuda"},helpView:{header:"Centro de ajuda"},lonelyMeetingExperience:{youAreAlone:"Voc\xea \xe9 o \xfanico na reuni\xe3o",button:"Convidar outros"},chromeExtensionBanner:{dontShowAgain:"N\xe3o me mostre isso de novo",buttonText:"Instalar extens\xe3o do Chrome",installExtensionText:"Instale a extens\xe3o par integra\xe7\xe3o com Google Calendar e Office 365"}}},693,[]); +__d(function(e,r,f,h,n,o,s){n.exports={en:"\u0410\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u0439",af:"\u0410\u0444\u0440\u0438\u043a\u0430\u0430\u043d\u0441",bg:"\u0411\u043e\u043b\u0433\u0430\u0440\u0441\u043a\u0438\u0439",ca:"\u041a\u0430\u0442\u0430\u043b\u043e\u043d\u0441\u043a\u0438\u0439",cs:"\u0427\u0435\u0448\u0441\u043a\u0438\u0439",de:"\u041d\u0435\u043c\u0435\u0446\u043a\u0438\u0439",el:"\u0413\u0440\u0435\u0447\u0435\u0441\u043a\u0438\u0439",enGB:"\u0410\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u0439 (\u0412\u0435\u043b\u0438\u043a\u043e\u0431\u0440\u0438\u0442\u0430\u043d\u0438\u044f)",eo:"\u042d\u0441\u043f\u0435\u0440\u0430\u043d\u0442\u043e",es:"\u0418\u0441\u043f\u0430\u043d\u0441\u043a\u0438\u0439",esUS:"\u0418\u0441\u043f\u0430\u043d\u0441\u043a\u0438\u0439 (\u041b\u0430\u0442\u0438\u043d\u0441\u043a\u0430\u044f \u0410\u043c\u0435\u0440\u0438\u043a\u0430)",fi:"\u0424\u0438\u043d\u0441\u043a\u0438\u0439",fr:"\u0424\u0440\u0430\u043d\u0446\u0443\u0437\u0441\u043a\u0438\u0439",frCA:"\u0424\u0440\u0430\u043d\u0446\u0443\u0437\u0441\u043a\u0438\u0439 (\u043a\u0430\u043d\u0430\u0434\u0441\u043a\u0438\u0439)",hr:"\u0425\u043e\u0440\u0432\u0430\u0442\u0441\u043a\u0438\u0439",hu:"\u0412\u0435\u043d\u0433\u0435\u0440\u0441\u043a\u0438\u0439",hy:"\u0410\u0440\u043c\u044f\u043d\u0441\u043a\u0438\u0439",it:"\u0418\u0442\u0430\u043b\u044c\u044f\u043d\u0441\u043a\u0438\u0439",ja:"\u042f\u043f\u043e\u043d\u0441\u043a\u0438\u0439",ko:"\u041a\u043e\u0440\u0435\u0439\u0441\u043a\u0438\u0439",nl:"\u0413\u043e\u043b\u043b\u0430\u043d\u0434\u0441\u043a\u0438\u0439",oc:"\u041e\u043a\u0441\u0438\u0442\u0430\u043d\u0441\u043a\u0438\u0439",pl:"\u041f\u043e\u043b\u044c\u0441\u043a\u0438\u0439",ptBR:"\u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u044c\u0441\u043a\u0438\u0439 (\u0411\u0440\u0430\u0437\u0438\u043b\u0438\u044f)",ru:"\u0420\u0443\u0441\u0441\u043a\u0438\u0439",sv:"\u0428\u0432\u0435\u0434\u0441\u043a\u0438\u0439",tr:"\u0422\u0443\u0440\u0435\u0446\u043a\u0438\u0439",vi:"\u0412\u044c\u0435\u0442\u043d\u0430\u043c\u0441\u043a\u0438\u0439",zhCN:"\u041a\u0438\u0442\u0430\u0439\u0441\u043a\u0438\u0439 (\u041a\u0438\u0442\u0430\u0439)",zhTW:"\u041a\u0438\u0442\u0430\u0439\u0441\u043a\u0438\u0439 (\u0422\u0430\u0439\u0432\u0430\u043d\u044c)"}},694,[]); +__d(function(e,o,i,t,r,a,n){r.exports={addPeople:{add:"\u041f\u0440\u0438\u0433\u043b\u0430\u0441\u0438\u0442\u044c",countryNotSupported:"\u042d\u0442\u0430 \u0441\u0442\u0440\u0430\u043d\u0430 \u043f\u043e\u043a\u0430 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f.",countryReminder:"\u0412\u044b\u0437\u043e\u0432 \u043d\u0435 \u0432 \u0421\u0428\u0410? \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0443\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u0443\u043a\u0430\u0437\u0430\u043b\u0438 \u043a\u043e\u0434 \u0441\u0442\u0440\u0430\u043d\u044b!",disabled:"\u041f\u043e\u0438\u0441\u043a \u043d\u0435 \u0434\u0430\u043b \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430.",failedToAdd:"\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u043e\u0432",footerText:"\u0412\u044b\u0437\u043e\u0432 \u043d\u043e\u043c\u0435\u0440\u0430 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d.",loading:"\u041f\u043e\u0438\u0441\u043a \u043b\u044e\u0434\u0435\u0439 \u0438 \u043d\u043e\u043c\u0435\u0440\u043e\u0432 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u043e\u0432",loadingNumber:"\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u043e\u043c\u0435\u0440\u0430 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430",loadingPeople:"\u041f\u043e\u0438\u0441\u043a \u043b\u044e\u0434\u0435\u0439 \u0434\u043b\u044f \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u044f",noResults:"\u041f\u043e\u0438\u0441\u043a \u043d\u0435 \u0434\u0430\u043b \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430",noValidNumbers:"\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u043d\u043e\u043c\u0435\u0440 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430",searchNumbers:"\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u043e\u043c\u0435\u0440\u0430 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u043e\u0432",searchPeople:"\u041f\u043e\u0438\u0441\u043a \u043b\u044e\u0434\u0435\u0439",searchPeopleAndNumbers:"\u041f\u043e\u0438\u0441\u043a \u043b\u044e\u0434\u0435\u0439 \u0438\u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0438\u0445 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u043e\u0432",telephone:"\u041d\u043e\u043c\u0435\u0440: {{number}}",title:"\u041f\u0440\u0438\u0433\u043b\u0430\u0441\u0438\u0442\u044c \u043b\u044e\u0434\u0435\u0439 \u043d\u0430 \u044d\u0442\u0443 \u0432\u0441\u0442\u0440\u0435\u0447\u0443"},audioDevices:{bluetooth:"Bluetooth",headphones:"\u041d\u0430\u0443\u0448\u043d\u0438\u043a\u0438",phone:"\u0422\u0435\u043b\u0435\u0444\u043e\u043d",speaker:"\u041a\u043e\u043b\u043e\u043d\u043a\u0430",none:"\u041d\u0435 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u044b \u0437\u0432\u0443\u043a\u043e\u0432\u044b\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430"},audioOnly:{audioOnly:"\u0422\u043e\u043b\u044c\u043a\u043e \u0437\u0432\u0443\u043a"},calendarSync:{addMeetingURL:"\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438",confirmAddLink:"\u0412\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443 Jitsi \u043a \u044d\u0442\u043e\u043c\u0443 \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u043d\u043e\u043c\u0443 \u0441\u043e\u0431\u044b\u0442\u0438\u044e?",error:{appConfiguration:"\u041d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u0430 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u044f.",generic:"\u041f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430. \u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u044f \u0438\u043b\u0438 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0435\u0433\u043e.",notSignedIn:"\u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u044f \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u044f \u0438 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0441\u043d\u043e\u0432\u0430 \u0432\u043e\u0439\u0442\u0438 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0443."},join:"\u041f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u044c\u0441\u044f",joinTooltip:"\u041f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u044c\u0441\u044f \u043a \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438",nextMeeting:"\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f",noEvents:"\u041d\u0435\u0442 \u0437\u0430\u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0441\u043e\u0431\u044b\u0442\u0438\u0439.",ongoingMeeting:"\u0442\u0435\u043a\u0443\u0449\u0430\u044f \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f",permissionButton:"\u041e\u0442\u043a\u0440\u044b\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438",permissionMessage:"\u0414\u043b\u044f \u043f\u043e\u043a\u0430\u0437\u0430 \u0432\u0430\u0448\u0438\u0445 \u0432\u0441\u0442\u0440\u0435\u0447 \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u043d\u0443\u0436\u0435\u043d \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u044e.",refresh:"\u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u044c",today:"\u0421\u0435\u0433\u043e\u0434\u043d\u044f"},chat:{error:"\u041e\u0448\u0438\u0431\u043a\u0430: \u0412\u0430\u0448\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043d\u0435 \u0431\u044b\u043b\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043e. \u041f\u0440\u0438\u0447\u0438\u043d\u0430: {{error}}",fieldPlaceHolder:"\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0437\u0434\u0435\u0441\u044c \u0432\u0430\u0448\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435",messagebox:"\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435",messageTo:"\u041b\u0438\u0447\u043d\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e {{recipient}}",noMessagesMessage:"\u0412 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438 \u043f\u043e\u043a\u0430 \u043d\u0435\u0442 \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439. \u041d\u0430\u0447\u043d\u0438\u0442\u0435 \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440!",nickname:{popover:"\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0438\u043c\u044f",title:"\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0438\u043c\u044f \u0434\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0447\u0430\u0442\u0430"},privateNotice:"\u041b\u0438\u0447\u043d\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e {{recipient}}",title:"\u0427\u0430\u0442",you:""},chromeExtensionBanner:{installExtensionText:"",buttonText:"",dontShowAgain:""},connectingOverlay:{joiningRoom:"\u041f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u044c\u0441\u044f \u043a \u0432\u0430\u0448\u0435\u0439 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438..."},connection:{ATTACHED:"\u041f\u0440\u0438\u043a\u0440\u0435\u043f\u043b\u0435\u043d\u043e",AUTHENTICATING:"\u0410\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f",AUTHFAIL:"\u041e\u0448\u0438\u0431\u043a\u0430 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438",CONNECTED:"\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043e",CONNECTING:"\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435",CONNFAIL:"\u0421\u0431\u043e\u0439 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f",DISCONNECTED:"\u041e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u043e",DISCONNECTING:"\u041e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435",ERROR:"\u041e\u0448\u0438\u0431\u043a\u0430",RECONNECTING:"\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0441 \u0441\u0435\u0442\u044c\u044e. \u041f\u0435\u0440\u0435\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435...",LOW_BANDWIDTH:"\u0412\u0438\u0434\u0435\u043e \u0434\u043b\u044f {{displayName}} \u043f\u0440\u0438\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e \u0438\u0437-\u0437\u0430 \u043d\u0438\u0437\u043a\u043e\u0439 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438"},connectionindicator:{address:"\u0410\u0434\u0440\u0435\u0441:",bandwidth:"\u0421\u0440\u0435\u0434\u043d\u044f\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c:",bitrate:"\u0411\u0438\u0442\u0440\u0435\u0439\u0442:",bridgeCount:"\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432:",connectedTo:"\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d \u043a:",framerate:"\u0427\u0430\u0441\u0442\u043e\u0442\u0430 \u043a\u0430\u0434\u0440\u043e\u0432:",less:"\u041a\u0440\u0430\u0442\u043a\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f",localaddress_0:"\u041b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0430\u0434\u0440\u0435\u0441\u0430:",localaddress_1:"\u041b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0430\u0434\u0440\u0435\u0441\u0430:",localaddress_2:"\u041b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0430\u0434\u0440\u0435\u0441\u0430:",localport_0:"\u041b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u043e\u0440\u0442\u044b:",localport_1:"\u041b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u043e\u0440\u0442\u044b:",localport_2:"\u041b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u043e\u0440\u0442\u044b:",more:"\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f",packetloss:"\u041f\u043e\u0442\u0435\u0440\u0438 \u043f\u0430\u043a\u0435\u0442\u043e\u0432:",quality:{good:"\u0425\u043e\u0440\u043e\u0448\u043e",inactive:"\u043d\u0435 \u0430\u043a\u0442\u0438\u0432\u043d\u043e",lost:"\u043f\u043e\u0442\u0435\u0440\u044f\u043d\u043e",nonoptimal:"\u043d\u0435 \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u043e",poor:"\u043f\u043b\u043e\u0445\u043e"},remoteaddress_0:"\u0423\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0435 \u0430\u0434\u0440\u0435\u0441\u0430:",remoteaddress_1:"\u0423\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0435 \u0430\u0434\u0440\u0435\u0441\u0430:",remoteaddress_2:"\u0423\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0435 \u0430\u0434\u0440\u0435\u0441\u0430:",remoteport_0:"\u0423\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0435 \u043f\u043e\u0440\u0442\u044b:",remoteport_1:"\u0423\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0435 \u043f\u043e\u0440\u0442\u044b:",remoteport_2:"\u0423\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0435 \u043f\u043e\u0440\u0442\u044b:",resolution:"\u0420\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435:",status:"\u0421\u0432\u044f\u0437\u044c:",transport_0:"\u041c\u0435\u0442\u043e\u0434\u044b \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438:",transport_1:"\u041c\u0435\u0442\u043e\u0434\u044b \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438:",transport_2:"\u041c\u0435\u0442\u043e\u0434\u044b \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438:"},dateUtils:{earlier:"\u0420\u0430\u043d\u0435\u0435",today:"\u0421\u0435\u0433\u043e\u0434\u043d\u044f",yesterday:"\u0412\u0447\u0435\u0440\u0430"},deepLinking:{appNotInstalled:"\u0427\u0442\u043e\u0431\u044b \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u044c\u0441\u044f \u043a \u044d\u0442\u043e\u0439 \u0432\u0441\u0442\u0440\u0435\u0447\u0435 \u043d\u0430 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0435, \u043d\u0443\u0436\u043d\u043e \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 {{app}}.",description:"\u041d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0441\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c? \u041c\u044b \u043f\u043e\u043f\u044b\u0442\u0430\u043b\u0438\u0441\u044c \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0432\u0430\u0448\u0443 \u0432\u0441\u0442\u0440\u0435\u0447\u0443 \u0432 \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043d\u043e\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 {{app}}. \u041f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u0435 \u043f\u043e\u043f\u044b\u0442\u043a\u0443 \u0438\u043b\u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u0435\u0435 \u0432 \u0432\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 {{app}}.",descriptionWithoutWeb:"\u041d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u043e? \u041c\u044b \u043f\u043e\u043f\u044b\u0442\u0430\u043b\u0438\u0441\u044c \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0432\u0430\u0448\u0443 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044e \u0432 \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043d\u043e\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 {{app}}",downloadApp:"\u0421\u043a\u0430\u0447\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435",launchWebButton:"\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435",openApp:"\u041f\u0435\u0440\u0435\u0439\u0442\u0438 \u043a \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044e",title:"\u0417\u0430\u043f\u0443\u0441\u043a \u0432\u0430\u0448\u0435\u0439 \u0432\u0441\u0442\u0440\u0435\u0447\u0438 \u0432 {{app}}...",tryAgainButton:"\u041f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u0435 \u0432 \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043d\u043e\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438"},defaultLink:"\u043d\u0430\u043f\u0440. {{url}}",defaultNickname:"\u043d\u0430\u043f\u0440. \u042f\u043d\u0430 \u0426\u0432\u0435\u0442\u043a\u043e\u0432\u0430",deviceError:{cameraError:"\u041e\u0448\u0438\u0431\u043a\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u043a\u0430\u043c\u0435\u0440\u0435",cameraPermission:"\u041e\u0448\u0438\u0431\u043a\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u0443",microphoneError:"\u041e\u0448\u0438\u0431\u043a\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u0443",microphonePermission:"\u041d\u0435\u0442 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043d\u0430 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u0443"},deviceSelection:{noPermission:"\u041d\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u0430",previewUnavailable:"\u041f\u0440\u0435\u0434\u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d",selectADevice:"\u0412\u044b\u0431\u043e\u0440 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430",testAudio:"\u041f\u0440\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0437\u0432\u0443\u043a"},dialog:{accessibilityLabel:{liveStreaming:"\u0422\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044f"},allow:"\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c",alreadySharedVideoMsg:"\u0414\u0440\u0443\u0433\u043e\u0439 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a \u0443\u0436\u0435 \u043f\u043e\u0434\u0435\u043b\u0438\u043b\u0441\u044f \u0441\u0441\u044b\u043b\u043a\u043e\u0439 \u043d\u0430 \u0432\u0438\u0434\u0435\u043e. \u0414\u0430\u043d\u043d\u0430\u044f \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u0438\u043c \u0432\u0438\u0434\u0435\u043e.",alreadySharedVideoTitle:"\u0414\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u043a\u0430\u0437 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u043e\u0433\u043e \u0432\u0438\u0434\u0435\u043e",applicationWindow:"\u041e\u043a\u043d\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f",Back:"\u041d\u0430\u0437\u0430\u0434",cameraConstraintFailedError:"\u041a\u0430\u043c\u0435\u0440\u0430 \u043d\u0435 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u043c \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f\u043c.",cameraNotFoundError:"\u041a\u0430\u043c\u0435\u0440\u0430 \u043d\u0435 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0430.",cameraNotSendingData:"\u041e\u0448\u0438\u0431\u043a\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u043a\u0430\u043c\u0435\u0440\u0435. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435, \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043b\u0438 \u043a\u0430\u043c\u0435\u0440\u0443 \u043a\u0430\u043a\u0430\u044f-\u043d\u0438\u0431\u0443\u0434\u044c \u0434\u0440\u0443\u0433\u0430\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0442\u0430\u043a\u0436\u0435 \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0434\u0440\u0443\u0433\u043e\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0438\u0437 \u043c\u0435\u043d\u044e \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u0438\u043b\u0438 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435.",cameraNotSendingDataTitle:"\u041d\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u043a\u0430\u043c\u0435\u0440\u0435",cameraPermissionDeniedError:"\u041d\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u043a\u0430\u043c\u0435\u0440\u0435. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432\u043e \u0432\u0441\u0442\u0440\u0435\u0447\u0435, \u043d\u043e \u0434\u0440\u0443\u0433\u0438\u0435 \u043d\u0435 \u0431\u0443\u0434\u0443\u0442 \u0432\u0430\u0441 \u0432\u0438\u0434\u0435\u0442\u044c. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0437\u043d\u0430\u0447\u043e\u043a \u043a\u0430\u043c\u0435\u0440\u044b \u0432 \u0430\u0434\u0440\u0435\u0441\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430, \u0447\u0442\u043e\u0431\u044b \u0443\u0441\u0442\u0440\u0430\u043d\u0438\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443.",cameraUnknownError:"\u041d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u0430\u043c\u0435\u0440\u044b.",cameraUnsupportedResolutionError:"\u0412\u0430\u0448\u0430 \u043a\u0430\u043c\u0435\u0440\u0430 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0432\u0438\u0434\u0435\u043e.",Cancel:"\u041e\u0442\u043c\u0435\u043d\u0430",close:"\u0417\u0430\u043a\u0440\u044b\u0442\u044c",conferenceDisconnectMsg:"\u0421\u043b\u0435\u0434\u0443\u0435\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435. \u041f\u043e\u043f\u044b\u0442\u043a\u0430 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0432\u044f\u0437\u0438 \u0447\u0435\u0440\u0435\u0437 {{seconds}} \u0441.",conferenceDisconnectTitle:"\u0412\u044b \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u044b.",conferenceReloadMsg:"\u041c\u044b \u0441\u0442\u0430\u0440\u0430\u0435\u043c\u0441\u044f \u044d\u0442\u043e \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c. \u0412\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0432\u044f\u0437\u0438 \u0447\u0435\u0440\u0435\u0437 {{seconds}} \u0441.",conferenceReloadTitle:"\u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u0447\u0442\u043e-\u0442\u043e \u043f\u043e\u0448\u043b\u043e \u043d\u0435 \u0442\u0430\u043a.",confirm:"\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044c",confirmNo:"\u041d\u0435\u0442",confirmYes:"\u0414\u0430",connectError:"\u041e\u0448\u0438\u0431\u043a\u0430. \u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0441\u0432\u044f\u0437\u044c \u0434\u043b\u044f \u0432\u0430\u0448\u0435\u0439 \u0432\u0441\u0442\u0440\u0435\u0447\u0438.",connectErrorWithMsg:"\u041e\u0448\u0438\u0431\u043a\u0430. \u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0441\u0432\u044f\u0437\u044c \u0434\u043b\u044f \u0432\u0430\u0448\u0435\u0439 \u0432\u0441\u0442\u0440\u0435\u0447\u0438: {{msg}}",connecting:"\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435",contactSupport:"\u0421\u0432\u044f\u0437\u044c \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439",copy:"\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c",dismiss:"\u041e\u0442\u043a\u043b\u043e\u043d\u0438\u0442\u044c",displayNameRequired:"\u041f\u0440\u0438\u0432\u0435\u0442! \u041a\u0430\u043a \u0442\u0435\u0431\u044f \u0437\u043e\u0432\u0443\u0442?",done:"\u0413\u043e\u0442\u043e\u0432\u043e",enterDisplayName:"\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u0441\u0432\u043e\u0435 \u0438\u043c\u044f",error:"\u041e\u0448\u0438\u0431\u043a\u0430",externalInstallationMsg:"\u0412\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043d\u0430\u0448\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u0441\u0442\u043e\u043b\u0430.",externalInstallationTitle:"\u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435",goToStore:"\u041f\u0435\u0440\u0435\u0439\u0442\u0438 \u043a \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0443",gracefulShutdown:"\u0422\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u044b. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u043f\u043e\u0437\u0436\u0435.",IamHost:"\u042f \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0442\u043e\u0440",incorrectRoomLockPassword:"\u041d\u0435\u0432\u0435\u0440\u043d\u044b\u0439 \u043f\u0430\u0440\u043e\u043b\u044c",incorrectPassword:"\u041e\u0448\u0438\u0431\u043a\u0430 \u0438\u043c\u0435\u043d\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438\u043b\u0438 \u043f\u0430\u0440\u043e\u043b\u044f",inlineInstallationMsg:"\u0412\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043d\u0430\u0448\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u0441\u0442\u043e\u043b\u0430.",inlineInstallExtension:"\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c",internalError:"\u0427\u0442\u043e-\u0442\u043e \u043f\u043e\u0448\u043b\u043e \u043d\u0435 \u0442\u0430\u043a. \u041e\u0448\u0438\u0431\u043a\u0430: {{error}}",internalErrorTitle:"\u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044f\u044f \u043e\u0448\u0438\u0431\u043a\u0430",kickMessage:"\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u0432\u044f\u0437\u0430\u0442\u044c\u0441\u044f \u0441 {{participantDisplayName}} \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438.",kickParticipantButton:"\u0412\u044b\u0433\u043d\u0430\u0442\u044c",kickParticipantDialog:"\u0412\u044b \u0443\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0432\u044b\u0433\u043d\u0430\u0442\u044c \u044d\u0442\u043e\u0433\u043e \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0430?",kickParticipantTitle:"\u0412\u044b\u0433\u043d\u0430\u0442\u044c \u044d\u0442\u043e\u0433\u043e \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0430?",kickTitle:"\u0410\u0439! {{participantDisplayName}} \u0432\u044b\u0433\u043d\u0430\u043b \u0432\u0430\u0441 \u0438\u0437 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438.",liveStreaming:"\u0422\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044f",liveStreamingDisabledForGuestTooltip:"\u0413\u043e\u0441\u0442\u0438 \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u043d\u0430\u0447\u0430\u0442\u044c \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044e",liveStreamingDisabledTooltip:"\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0430",lockMessage:"\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u043f\u0435\u0440\u0435\u0442\u044c \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044e",lockRoom:"\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044e $t(lockRoomPasswordUppercase)",lockTitle:"\u0411\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0430 \u043d\u0435 \u0443\u0434\u0430\u043b\u0430\u0441\u044c",logoutQuestion:"\u0423\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0432\u044b\u0439\u0442\u0438 \u0438 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0432\u0441\u0442\u0440\u0435\u0447\u0443?",logoutTitle:"\u0417\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u044c \u0441\u0435\u0430\u043d\u0441",maxUsersLimitReached:"\u0414\u043e\u0441\u0442\u0438\u0433\u043d\u0443\u0442 \u043b\u0438\u043c\u0438\u0442 \u043d\u0430 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u043e\u0432. \u041a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f \u043f\u0435\u0440\u0435\u043f\u043e\u043b\u043d\u0435\u043d\u0430. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0441\u0432\u044f\u0436\u0438\u0442\u0435\u0441\u044c \u0441 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0442\u043e\u0440\u043e\u043c \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438 \u0438\u043b\u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u0435 \u043f\u043e\u043f\u044b\u0442\u043a\u0443 \u043f\u043e\u0437\u0436\u0435!",maxUsersLimitReachedTitle:"\u0414\u043e\u0441\u0442\u0438\u0433\u043d\u0443\u0442 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u043b\u0438\u043c\u0438\u0442 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u043e\u0432",micConstraintFailedError:"\u0412\u0430\u0448 \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d \u043d\u0435 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u043c \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f\u043c.",micNotFoundError:"\u041c\u0438\u043a\u0440\u043e\u0444\u043e\u043d \u043d\u0435 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d.",micNotSendingData:"\u041f\u0435\u0440\u0435\u0439\u0434\u0438\u0442\u0435 \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430, \u0447\u0442\u043e\u0431\u044b \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438.",micNotSendingDataTitle:"\u0412\u0430\u0448 \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u043c\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438",micPermissionDeniedError:"\u041d\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u0443. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432\u043e \u0432\u0441\u0442\u0440\u0435\u0447\u0435, \u043d\u043e \u0434\u0440\u0443\u0433\u0438\u0435 \u043d\u0435 \u0431\u0443\u0434\u0443\u0442 \u0432\u0430\u0441 \u0441\u043b\u044b\u0448\u0430\u0442\u044c. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0437\u043d\u0430\u0447\u043e\u043a \u043a\u0430\u043c\u0435\u0440\u044b \u0432 \u0430\u0434\u0440\u0435\u0441\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430, \u0447\u0442\u043e\u0431\u044b \u0443\u0441\u0442\u0440\u0430\u043d\u0438\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443.",micUnknownError:"\u041d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u0430.",muteParticipantBody:"\u0412\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0438\u043c \u0437\u0432\u0443\u043a, \u043d\u043e \u043e\u043d\u0438 \u043c\u043e\u0433\u0443\u0442 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u0441\u0430\u043c\u0438 \u0432 \u043b\u044e\u0431\u043e\u0435 \u0432\u0440\u0435\u043c\u044f.",muteParticipantButton:"\u0412\u044b\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0437\u0432\u0443\u043a",muteParticipantDialog:"\u0412\u044b \u0443\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d \u0443 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f? \u0412\u044b \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u0442\u043c\u0435\u043d\u0438\u0442\u044c \u044d\u0442\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435, \u043e\u0434\u043d\u0430\u043a\u043e \u043e\u043d \u0441\u043c\u043e\u0436\u0435\u0442 \u0441\u0430\u043c \u0441\u043d\u043e\u0432\u0430 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d \u0432 \u043b\u044e\u0431\u043e\u0435 \u0432\u0440\u0435\u043c\u044f.",muteParticipantTitle:"\u041f\u0440\u0438\u0433\u043b\u0443\u0448\u0438\u0442\u044c \u044d\u0442\u043e\u0433\u043e \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0430?",Ok:"Ok",passwordLabel:"$t(lockRoomPasswordUppercase)",passwordNotSupported:"\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 $t(lockRoomPassword) \u0434\u043b\u044f \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f.",passwordNotSupportedTitle:"$t(lockRoomPasswordUppercase) \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f",passwordRequired:"\u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f $t(lockRoomPasswordUppercase)",popupError:"\u0412\u0430\u0448 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u0431\u043b\u043e\u043a\u0438\u0440\u0443\u0435\u0442 \u0432\u0441\u043f\u043b\u044b\u0432\u0430\u044e\u0449\u0438\u0435 \u043e\u043a\u043d\u0430 \u044d\u0442\u043e\u0433\u043e \u0441\u0430\u0439\u0442\u0430. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u0435 \u0432\u0441\u043f\u043b\u044b\u0432\u0430\u044e\u0449\u0438\u0435 \u043e\u043a\u043d\u0430 \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430 \u0438 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0441\u043d\u043e\u0432\u0430.",popupErrorTitle:"\u0417\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u043e \u0432\u0441\u043f\u043b\u044b\u0432\u0430\u044e\u0449\u0435\u0435 \u043e\u043a\u043d\u043e",recording:"\u0417\u0430\u043f\u0438\u0441\u044c",recordingDisabledForGuestTooltip:"\u0413\u043e\u0441\u0442\u0438 \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c",recordingDisabledTooltip:"\u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0447\u0430\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u044c",rejoinNow:"\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u0441\u043d\u043e\u0432\u0430",remoteControlAllowedMessage:"{{user}} \u043f\u0440\u0438\u043d\u044f\u043b \u0432\u0430\u0448 \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435!",remoteControlDeniedMessage:"{{user}} \u043e\u0442\u043a\u043b\u043e\u043d\u0438\u043b \u0432\u0430\u0448 \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435!",remoteControlErrorMessage:"\u041f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u043f\u043e\u043f\u044b\u0442\u043a\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u0438\u0442\u044c \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0442 {{user}}.",remoteControlRequestMessage:"\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c {{user}} \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0432\u0430\u0448\u0438\u043c \u0440\u0430\u0431\u043e\u0447\u0438\u043c \u0441\u0442\u043e\u043b\u043e\u043c?",remoteControlShareScreenWarning:"\u0415\u0441\u043b\u0438 \u043d\u0430\u0436\u043c\u0435\u0442\u0435 \"\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c\", \u0442\u043e \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u0435\u0441\u044c \u0441\u0432\u043e\u0438\u043c \u044d\u043a\u0440\u0430\u043d\u043e\u043c!",remoteControlStopMessage:"\u0421\u0435\u0441\u0441\u0438\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0430!",remoteControlTitle:"\u0423\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0447\u0438\u043c \u0441\u0442\u043e\u043b\u043e\u043c",Remove:"\u0423\u0434\u0430\u043b\u0438\u0442\u044c",removePassword:"\u0423\u0431\u0440\u0430\u0442\u044c $t(lockRoomPassword)",removeSharedVideoMsg:"\u0423\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0431\u0440\u0430\u0442\u044c \u0432\u0438\u0434\u0435\u043e, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043f\u043e\u0434\u0435\u043b\u0438\u043b\u0438\u0441\u044c?",removeSharedVideoTitle:"\u0423\u0431\u0440\u0430\u0442\u044c \u0432\u0438\u0434\u0435\u043e",reservationError:"\u041e\u0448\u0438\u0431\u043a\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f",reservationErrorMsg:"\u041a\u043e\u0434 \u043e\u0448\u0438\u0431\u043a\u0438: {{code}}, \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435: {{msg}}",retry:"\u041f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c",screenSharingFailedToInstall:"\u041e\u0448\u0438\u0431\u043a\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043f\u043e\u043a\u0430\u0437\u0430 \u044d\u043a\u0440\u0430\u043d\u0430.",screenSharingFailedToInstallTitle:"\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u043f\u043e\u043a\u0430\u0437\u0430 \u044d\u043a\u0440\u0430\u043d\u0430 \u043d\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e",screenSharingFirefoxPermissionDeniedError:"\u0427\u0442\u043e-\u0442\u043e \u043f\u043e\u0448\u043b\u043e \u043d\u0435 \u0442\u0430\u043a, \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u043f\u044b\u0442\u0430\u043b\u0438\u0441\u044c \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0432\u0430\u0448\u0438\u043c \u044d\u043a\u0440\u0430\u043d\u043e\u043c. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0443\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u0432\u044b \u0434\u0430\u043b\u0438 \u043d\u0430\u043c \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043d\u0430 \u044d\u0442\u043e.",screenSharingFirefoxPermissionDeniedTitle:"\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u043e\u043a\u0430\u0437\u0430 \u044d\u043a\u0440\u0430\u043d\u0430!",screenSharingPermissionDeniedError:"\u041e\u0448\u0438\u0431\u043a\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0432\u0430\u0448\u0435\u043c\u0443 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044e \u0434\u043b\u044f \u043f\u043e\u043a\u0430\u0437\u0430 \u044d\u043a\u0440\u0430\u043d\u0430. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u0438 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0441\u043d\u043e\u0432\u0430.",sendPrivateMessage:"\u0412\u044b \u043d\u0435\u0434\u0430\u0432\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043b\u0438\u0447\u043d\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435. \u0412\u044b \u0445\u043e\u0442\u0435\u043b\u0438 \u043e\u0442\u0432\u0435\u0442\u0438\u0442\u044c \u043d\u0430 \u043d\u0435\u0433\u043e, \u0438\u043b\u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0441\u0432\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0433\u0440\u0443\u043f\u043f\u0435?",sendPrivateMessageCancel:"\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0432 \u043e\u0431\u0449\u0438\u0439 \u0447\u0430\u0442",sendPrivateMessageOk:"\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435",sendPrivateMessageTitle:"\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043b\u0438\u0447\u043d\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435?",serviceUnavailable:"\u0421\u043b\u0443\u0436\u0431\u0430 \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430",sessTerminated:"\u0421\u0432\u044f\u0437\u044c \u043f\u0440\u0435\u0440\u0432\u0430\u043d\u0430",Share:"\u041f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f",shareVideoLinkError:"\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0443\u043a\u0430\u0436\u0438\u0442\u0435 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u0443\u044e \u0441\u0441\u044b\u043b\u043a\u0443 Youtube.",shareVideoTitle:"\u041f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0432\u0438\u0434\u0435\u043e",shareYourScreen:"\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u044d\u043a\u0440\u0430\u043d",shareYourScreenDisabled:"\u0414\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u044d\u043a\u0440\u0430\u043d\u0430 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0430",shareYourScreenDisabledForGuest:"\u0413\u043e\u0441\u0442\u0438 \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u044d\u043a\u0440\u0430\u043d",startLiveStreaming:"\u041d\u0430\u0447\u0430\u0442\u044c \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044e",startRecording:"\u041d\u0430\u0447\u0430\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u044c",startRemoteControlErrorMessage:"\u041e\u0448\u0438\u0431\u043a\u0430 \u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u0435\u0441\u0441\u0438\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f!",stopLiveStreaming:"\u041e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044e",stopRecording:"\u041e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u044c",stopRecordingWarning:"\u0423\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u044c?",stopStreamingWarning:"\u0423\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044e?",streamKey:"\u041a\u043b\u044e\u0447 \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438",Submit:"\u041e\u041a",thankYou:"\u0421\u043f\u0430\u0441\u0438\u0431\u043e, \u0447\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 {{appName}}!",token:"\u0442\u043e\u043a\u0435\u043d",tokenAuthFailed:"\u0418\u0437\u0432\u0438\u043d\u0438\u0442\u0435, \u0432\u0430\u043c \u043d\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u043e \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u044c\u0441\u044f \u043a \u044d\u0442\u043e\u043c\u0443 \u0441\u0435\u0430\u043d\u0441\u0443 \u0441\u0432\u044f\u0437\u0438.",tokenAuthFailedTitle:"\u041e\u0448\u0438\u0431\u043a\u0430 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438",transcribing:"\u0420\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0430",unlockRoom:"\u0423\u0431\u0440\u0430\u0442\u044c $t(lockRoomPassword)",userPassword:"\u043f\u0430\u0440\u043e\u043b\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f",WaitForHostMsg:"\u041a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f {{room}} \u0435\u0449\u0435 \u043d\u0435 \u043d\u0430\u0447\u0430\u043b\u0430\u0441\u044c. \u0415\u0441\u043b\u0438 \u0432\u044b \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0442\u043e\u0440, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0438\u0440\u0443\u0439\u0442\u0435\u0441\u044c. \u0412 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0434\u043e\u0436\u0434\u0438\u0442\u0435\u0441\u044c \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0442\u043e\u0440\u0430.",WaitForHostMsgWOk:"\u041a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f {{room}} \u0435\u0449\u0435 \u043d\u0435 \u043d\u0430\u0447\u0430\u043b\u0430\u0441\u044c. \u0415\u0441\u043b\u0438 \u0432\u044b \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0442\u043e\u0440, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043d\u0430\u0436\u043c\u0438\u0442\u0435 Ok \u0434\u043b\u044f \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438. \u0412 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u0434\u043e\u0436\u0434\u0438\u0442\u0435\u0441\u044c \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0442\u043e\u0440\u0430.",WaitingForHost:"\u0416\u0434\u0435\u043c \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0442\u043e\u0440\u0430...",Yes:"\u0414\u0430",yourEntireScreen:"\u0412\u0435\u0441\u044c \u044d\u043a\u0440\u0430\u043d"},dialOut:{statusMessage:"\u0441\u0435\u0439\u0447\u0430\u0441 {{status}}"},documentSharing:{title:"\u041e\u0431\u0449\u0438\u0439 \u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442"},feedback:{average:"\u0421\u0440\u0435\u0434\u043d\u0435",bad:"\u041f\u043b\u043e\u0445\u043e",detailsLabel:"\u0420\u0430\u0441\u0441\u043a\u0430\u0436\u0438\u0442\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435.",good:"\u0425\u043e\u0440\u043e\u0448\u043e",rateExperience:"\u041e\u0446\u0435\u043d\u043a\u0430 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u0441\u0432\u044f\u0437\u0438",veryBad:"\u041e\u0447\u0435\u043d\u044c \u043f\u043b\u043e\u0445\u043e",veryGood:"\u041e\u0447\u0435\u043d\u044c \u0445\u043e\u0440\u043e\u0448\u043e"},incomingCall:{answer:"\u041e\u0442\u0432\u0435\u0442",audioCallTitle:"\u0412\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0437\u0432\u043e\u043d\u043e\u043a",decline:"\u041e\u0442\u043a\u043b\u043e\u043d\u0438\u0442\u044c",productLabel:"\u0438\u0437 Jitsi Meet",videoCallTitle:"\u0412\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0432\u0438\u0434\u0435\u043e\u0437\u0432\u043e\u043d\u043e\u043a"},info:{accessibilityLabel:"\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e",addPassword:"\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c $t(lockRoomPassword)",cancelPassword:"\u041e\u0442\u043c\u0435\u043d\u0438\u0442\u044c $t(lockRoomPassword)",conferenceURL:"\u0421\u0441\u044b\u043b\u043a\u0430:",country:"\u0421\u0442\u0440\u0430\u043d\u0430",dialANumber:"\u0427\u0442\u043e\u0431\u044b \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u044c\u0441\u044f \u043a \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438, \u043d\u0430\u0431\u0435\u0440\u0438\u0442\u0435 \u043e\u0434\u0438\u043d \u0438\u0437 \u044d\u0442\u0438\u0445 \u043d\u043e\u043c\u0435\u0440\u043e\u0432 \u0438 \u0432\u0432\u0435\u0434\u0438\u0442\u0435 pin-\u043a\u043e\u0434",dialInConferenceID:"PIN:",dialInNotSupported:"\u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u043d\u0430\u0431\u043e\u0440 \u043d\u043e\u043c\u0435\u0440\u0430 \u0432 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f.",dialInNumber:"\u041d\u043e\u043c\u0435\u0440:",dialInSummaryError:"\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u043d\u0430\u0431\u043e\u0440\u0435 \u043d\u043e\u043c\u0435\u0440\u0430. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u0435 \u043f\u043e\u043f\u044b\u0442\u043a\u0443 \u043f\u043e\u0437\u0436\u0435",dialInTollFree:"\u0417\u0432\u043e\u043d\u043e\u043a \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0439",genericError:"\u0427\u0442\u043e-\u0442\u043e \u043f\u043e\u0448\u043b\u043e \u043d\u0435 \u0442\u0430\u043a.",inviteLiveStream:"\u0422\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044f \u044d\u0442\u043e\u0439 \u0432\u0441\u0442\u0440\u0435\u0447\u0438: {{url}}",invitePhone:"\u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u044c\u0441\u044f \u043f\u043e \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0443, \u043d\u0430\u0436\u043c\u0438\u0442\u0435 {{number}},,{{conferenceID}}#\n",invitePhoneAlternatives:"\u0418\u0449\u0438\u0442\u0435 \u0434\u043f\u0443\u0433\u043e\u0439 \u043d\u043e\u043c\u0435\u0440 \u0434\u043b\u044f \u043d\u0430\u0431\u043e\u0440\u0430?\n\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u043e\u043c\u0435\u0440\u0430 \u0434\u043b\u044f \u043d\u0430\u0431\u043e\u0440\u0430 \u0434\u043b\u044f \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438: {{url}}\n\n\n\u0415\u0441\u043b\u0438 \u0442\u0430\u043a\u0436\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043d\u0430\u0431\u043e\u0440 \u043d\u043e\u043c\u0435\u0440\u0430 \u0447\u0435\u0440\u0435\u0437 \u0442\u0435\u043b\u0435\u0444\u043e\u043d \u0432 \u043a\u043e\u043c\u043d\u0430\u0442\u0435, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u0441\u044c \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u0441\u043b\u0443\u0448\u0430\u0442\u0435\u043b\u044f: {{silentUrl}}",inviteURLFirstPartGeneral:"\u0412\u0430\u0441 \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0430\u044e\u0442 \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u044c\u0441\u044f \u043a \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438.",inviteURLFirstPartPersonal:"{{name}} \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0430\u0435\u0442 \u0412\u0430\u0441 \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u044c\u0441\u044f \u043a \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438. \n",inviteURLSecondPart:"\n\u041f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u044c\u0441\u044f \u043a \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438:\n{{url}}\n",liveStreamURL:"\u0422\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044f:",moreNumbers:"\u0411\u043e\u043b\u044c\u0448\u0435 \u043d\u043e\u043c\u0435\u0440\u043e\u0432",noNumbers:"\u041d\u0435\u0442 \u043d\u043e\u043c\u0435\u0440\u043e\u0432 \u0434\u043b\u044f \u043d\u0430\u0431\u043e\u0440\u0430.",noPassword:"\u043d\u0435\u0442",noRoom:"\u0414\u043b\u044f \u043d\u0430\u0431\u043e\u0440\u0430 \u043d\u043e\u043c\u0435\u0440\u0430 \u043d\u0435 \u0431\u044b\u043b\u043e \u0443\u043a\u0430\u0437\u0430\u043d\u043e \u043d\u0438 \u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u043c\u043d\u0430\u0442\u044b.",numbers:"\u041d\u043e\u043c\u0435\u0440\u0430 \u0434\u043b\u044f \u043d\u0430\u0431\u043e\u0440\u0430",password:"$t(lockRoomPasswordUppercase):",title:"\u041f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f",tooltip:"\u041f\u043e\u0434\u0435\u043b\u0438\u0442\u0435\u0441\u044c \u0441\u0441\u044b\u043b\u043a\u043e\u0439 \u0438 \u043d\u043e\u043c\u0435\u0440\u043e\u043c \u0434\u043b\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a \u044d\u0442\u043e\u0439 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438",label:"\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438"},inviteDialog:{alertText:"\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043f\u0440\u0438\u0433\u043b\u0430\u0441\u0438\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u043e\u0432.",header:"\u041f\u0440\u0438\u0433\u043b\u0430\u0441\u0438\u0442\u044c",searchCallOnlyPlaceholder:"\u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u043d\u043e\u043c\u0435\u0440 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430",searchPeopleOnlyPlaceholder:"\u041f\u043e\u0438\u0441\u043a \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u043e\u0432",searchPlaceholder:"\u0423\u0447\u0430\u0441\u0442\u043d\u0438\u043a \u0438\u043b\u0438 \u043d\u043e\u043c\u0435\u0440 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430",send:"\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c"},inlineDialogFailure:{msg:"\u041d\u0435\u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0437\u0430\u043c\u0438\u043d\u043a\u0430.",retry:"\u041f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0441\u043d\u043e\u0432\u0430",support:"\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430",supportMsg:"\u0415\u0441\u043b\u0438 \u044d\u0442\u043e \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u0441\u044f, \u0441\u0432\u044f\u0436\u0438\u0442\u0435\u0441\u044c \u0441"},keyboardShortcuts:{focusLocal:"\u0424\u043e\u043a\u0443\u0441 \u043d\u0430 \u0432\u0430\u0448\u0435 \u0432\u0438\u0434\u0435\u043e",focusRemote:"\u0424\u043e\u043a\u0443\u0441 \u043d\u0430 \u0432\u0438\u0434\u0435\u043e \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0430",fullScreen:"\u0412\u043a\u043b/\u0432\u044b\u043a\u043b \u043f\u043e\u043b\u043d\u043e\u044d\u043a\u0440\u0430\u043d\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c ",keyboardShortcuts:"\u041a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0438 \u043a\u043b\u0430\u0432\u0438\u0448",localRecording:"\u041e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c \u0438\u043b\u0438 \u0441\u043a\u0440\u044b\u0442\u044c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438",mute:"\u041c\u0438\u043a\u0440\u043e\u0444\u043e\u043d (\u0432\u043a\u043b./\u0432\u044b\u043a\u043b.)",pushToTalk:"\u041d\u0430\u0436\u043c\u0438\u0442\u0435, \u0447\u0442\u043e\u0431\u044b \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c",raiseHand:"\u041f\u043e\u0434\u043d\u044f\u0442\u044c \u0438\u043b\u0438 \u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0440\u0443\u043a\u0443",showSpeakerStats:"\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0443 \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u044e\u0449\u0435\u0433\u043e",toggleChat:"\u0427\u0430\u0442 (\u043e\u0442\u043a\u0440\u044b\u0442\u044c/\u0437\u0430\u043a\u0440\u044b\u0442\u044c)",toggleFilmstrip:"\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c/\u0421\u043a\u0440\u044b\u0442\u044c \u043a\u0440\u0430\u0442\u043a\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435",toggleScreensharing:"\u041f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043c\u0435\u0436\u0434\u0443 \u043a\u0430\u043c\u0435\u0440\u043e\u0439 \u0438 \u043f\u043e\u043a\u0430\u0437\u043e\u043c \u044d\u043a\u0440\u0430\u043d\u0430",toggleShortcuts:"\u0421\u043a\u0440\u044b\u0442\u044c/\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043a\u043b\u0430\u0432\u0438\u0448\u0430 \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0430",videoMute:"\u041a\u0430\u043c\u0435\u0440\u0430 (\u0432\u043a\u043b./\u0432\u044b\u043a\u043b.)",videoQuality:"\u041a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0432\u044f\u0437\u0438"},liveStreaming:{busy:"\u041e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0430\u0435\u043c \u043d\u043e\u0432\u044b\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u0434\u043b\u044f \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0441\u043d\u043e\u0432\u0430 \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0438\u043d\u0443\u0442.",busyTitle:"\u0412\u0441\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u0434\u043b\u044f \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438 \u0443\u0436\u0435 \u0437\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u044b",changeSignIn:"\u041f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u044b.",choose:"\u0412\u044b\u0431\u0440\u0430\u0442\u044c \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044e",chooseCTA:"\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044e. \u0412\u044b \u0432\u043e\u0448\u043b\u0438 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043a\u0430\u043a {{email}}. ",enterStreamKey:"\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0432\u0430\u0448 \u043a\u043b\u044e\u0447 \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438 YouTube.",error:"\u041e\u0448\u0438\u0431\u043a\u0430 \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0441\u043d\u043e\u0432\u0430.",errorAPI:"\u041f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u0435 \u043a \u0432\u0430\u0448\u0438\u043c \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044f\u043c \u043d\u0430 YouTube. \u041f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u0435 \u043f\u043e\u043f\u044b\u0442\u043a\u0443 \u0432\u0445\u043e\u0434\u0430 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0443.",errorLiveStreamNotEnabled:"\u0422\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044f \u043d\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0430 \u043d\u0430 {{email}}. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u0435 \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044e \u0438\u043b\u0438 \u0432\u043e\u0439\u0434\u0438\u0442\u0435 \u0432 \u0430\u043a\u043a\u0430\u0443\u043d\u0442 \u0441 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u043e\u0439 \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0435\u0439.",expandedOff:"\u041f\u0440\u044f\u043c\u0430\u044f \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044f \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0430",expandedOn:"\u0412 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f \u0442\u0440\u0430\u043d\u0441\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0430 YouTube.",expandedPending:"\u041d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u044f\u043c\u0430\u044f \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044f..",failedToStart:"\u041e\u0448\u0438\u0431\u043a\u0430 \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438 \u0432\u0438\u0434\u0435\u043e",getStreamKeyManually:"\u041f\u0440\u044f\u043c\u044b\u0435 \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0439 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u044b. \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043a\u043b\u044e\u0447 \u043f\u0440\u044f\u043c\u043e\u0439 \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438 \u043e\u0442 YouTube.",invalidStreamKey:"\u041f\u043e\u0445\u043e\u0436\u0435 \u043a\u043b\u044e\u0447 \u043f\u0440\u044f\u043c\u043e\u0439 \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438 \u043d\u0435\u0432\u0435\u0440\u0435\u043d.",off:"\u0422\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044f \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0430",offBy:"{{name}} \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b \u043f\u0440\u044f\u043c\u0443\u044e \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044e",on:"\u0422\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044f",onBy:"{{name}} \u043d\u0430\u0447\u0430\u043b \u043f\u0440\u044f\u043c\u0443\u044e \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044e",pending:"\u041d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044e...",serviceName:"\u0421\u043b\u0443\u0436\u0431\u0430 \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438",signedInAs:"\u0412 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u0432\u044b \u0432\u043e\u0448\u043b\u0438 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043a\u0430\u043a:",signIn:"\u0412\u043e\u0439\u0442\u0438 \u0447\u0435\u0440\u0435\u0437 Google",signInCTA:"\u0412\u043e\u0439\u0434\u0438\u0442\u0435 \u0438\u043b\u0438 \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u0441\u0432\u043e\u0439 \u043a\u043b\u044e\u0447 \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438 YouTube.",signOut:"\u0412\u044b\u0445\u043e\u0434",start:"\u041d\u0430\u0447\u0430\u0442\u044c \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044e",streamIdHelp:"\u0427\u0442\u043e \u044d\u0442\u043e?",unavailableTitle:"\u0422\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044f \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430"},localRecording:{clientState:{off:"\u041e\u0442\u043a\u043b\u044e\u0447\u0435\u043d",on:"\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d",unknown:"\u041d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043d"},dialogTitle:"\u041a\u043d\u043e\u043f\u043a\u0438 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438",duration:"\u0414\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c",durationNA:"\u043d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e",encoding:"\u041a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0430",label:"\u041b\u0435\u0432\u044b\u0439/\u041f\u0440\u0430\u0432\u044b\u0439",labelToolTip:"\u041b\u043e\u043a\u0430\u043b\u044c\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c \u0430\u043a\u0442\u0438\u0432\u043d\u0430",localRecording:"\u041b\u043e\u043a\u0430\u043b\u044c\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c",me:"\u042f",messages:{engaged:"\u041b\u043e\u043a\u0430\u043b\u044c\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c \u043d\u0430\u0447\u0430\u043b\u0430\u0441\u044c.",finished:"\u0417\u0430\u043f\u0438\u0441\u044c \u0441\u0435\u0441\u0441\u0438\u0438 {{token}} \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0430. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u044c\u0442\u0435 \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u043c\u043e\u0434\u0435\u0440\u0430\u0442\u043e\u0440\u0443.",finishedModerator:"\u0417\u0430\u043f\u0438\u0441\u044c \u0441\u0435\u0441\u0441\u0438\u0438 {{token}} \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0430. \u0417\u0430\u043f\u0438\u0441\u044c \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0442\u0440\u0435\u043a\u0430 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0430. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u043e\u043f\u0440\u043e\u0441\u0438\u0442\u0435 \u0434\u0440\u0443\u0433\u0438\u0445 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u043e\u0432 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0438\u0445 \u0437\u0430\u043f\u0438\u0441\u0438",notModerator:"\u0412\u044b \u043d\u0435 \u043c\u043e\u0434\u0435\u0440\u0430\u0442\u043e\u0440 \u0438 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c \u0438\u043b\u0438 \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u044c."},moderator:"\u041c\u043e\u0434\u0435\u0440\u0430\u0442\u043e\u0440",no:"\u041d\u0435\u0442",participant:"\u0423\u0447\u0430\u0441\u0442\u043d\u0438\u043a",participantStats:"\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u043e\u0432",sessionToken:"\u0422\u043e\u043a\u0435\u043d \u0441\u0435\u0441\u0441\u0438\u0438",start:"\u041d\u0430\u0447\u0430\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u044c",stop:"\u041e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u044c",yes:"\u0414\u0430"},lockRoomPassword:"\u043f\u0430\u0440\u043e\u043b\u044c",lockRoomPasswordUppercase:"\u041f\u0430\u0440\u043e\u043b\u044c",me:"\u044f",notify:{connectedOneMember:"{{name}} \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u0438\u043b\u0441\u044f \u043a \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438",connectedThreePlusMembers:"{{name}} \u0438 {{count}} \u0434\u0440\u0443\u0433\u0438\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u0438\u043b\u0438\u0441\u044c \u043a \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438",connectedTwoMembers:"{{first}} \u0438 {{second}} \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u0438\u043b\u0438\u0441\u044c \u043a \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438",disconnected:"\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u043e\u0440\u0432\u0430\u043d\u043e",focus:"\u0424\u043e\u043a\u0443\u0441 \u0432\u0441\u0442\u0440\u0435\u0447\u0438",focusFail:"{{component}} \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d, \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u0435 \u0447\u0435\u0440\u0435\u0437 {{ms}} \u0441",grantedTo:"{{to}} \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u043f\u0440\u0430\u0432\u0430 \u043c\u043e\u0434\u0435\u0440\u0430\u0442\u043e\u0440\u0430!",invitedOneMember:"{{displayName}} \u0431\u044b\u043b \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0435\u043d",invitedThreePlusMembers:"\u041f\u0440\u0438\u0433\u043b\u0430\u0448\u0435\u043d\u044b {{name}} \u0438 {{count}} \u0434\u0440\u0443\u0433\u0438\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439(\u043b\u044f)",invitedTwoMembers:"{{first}} \u0438 {{second}} \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u0438\u043b\u0438\u0441\u044c \u043a \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438",kickParticipant:"{{kicker}} \u0432\u044b\u0433\u043d\u0430\u043b {{kicked}} ",me:"\u042f",moderator:"\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u044b \u043f\u0440\u0430\u0432\u0430 \u043c\u043e\u0434\u0435\u0440\u0430\u0442\u043e\u0440\u0430!",muted:"\u0412\u044b \u043d\u0430\u0447\u0430\u043b\u0438 \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440 \u0431\u0435\u0437 \u0437\u0432\u0443\u043a\u0430.",mutedTitle:"\u0412\u044b \u0431\u0435\u0437 \u0437\u0432\u0443\u043a\u0430!",mutedRemotelyTitle:"{{participantDisplayName}} \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u043b \u0412\u0430\u043c \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d!",mutedRemotelyDescription:"\u0412\u044b \u0432\u0441\u0435\u0433\u0434\u0430 \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d, \u043a\u043e\u0433\u0434\u0430 \u0431\u0443\u0434\u0435\u0442\u0435 \u0433\u043e\u0442\u043e\u0432\u044b \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c. \u041e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u0435 \u0435\u0433\u043e, \u043a\u043e\u0433\u0434\u0430 \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u0442\u0435, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0442\u0440\u0430\u043d\u0441\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0448\u0443\u043c\u044b \u0432 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044e.",passwordRemovedRemotely:"$t(lockRoomPasswordUppercase) \u0443\u0434\u0430\u043b\u0435\u043d \u0434\u0440\u0443\u0433\u0438\u043c \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u043e\u043c.",passwordSetRemotely:"\u0414\u0440\u0443\u0433\u043e\u0439 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b $t(lockRoomPasswordUppercase)",raisedHand:"{{name}} \u0445\u043e\u0442\u0435\u043b \u0431\u044b \u0432\u044b\u0441\u0442\u0443\u043f\u0438\u0442\u044c.",somebody:"\u041a\u0442\u043e-\u0442\u043e",startSilentTitle:"\u0423 \u0432\u0430\u0441 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0437\u0432\u0443\u043a!",startSilentDescription:"\u041f\u0435\u0440\u0435\u0437\u0430\u0439\u0434\u0438\u0442\u0435 \u0432 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044e, \u0447\u0442\u043e\u0431\u044b \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0437\u0432\u0443\u043a",suboptimalBrowserWarning:"\u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u0432\u0430\u0448 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u043d\u0435 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0434\u0430\u043d\u043d\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0432\u044d\u0431\u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0439. \u041c\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u043d\u0430\u0434 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043e\u0439, \u043e\u0434\u043d\u0430\u043a\u043e, \u043f\u043e\u043a\u0430 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c \u0432\u0430\u043c \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c\u0438 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430\u043c\u0438.",suboptimalExperienceTitle:"\u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u044d\u0442\u043e\u0442 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u043c\u043e\u0436\u0435\u0442 \u043d\u0435 \u043f\u043e\u0434\u043e\u0439\u0442\u0438 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 {{appName}}. \u041c\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u043d\u0430\u0434 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043e\u0439, \u0430 \u043f\u043e\u043a\u0430 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u043e\u0434\u0438\u043d \u0438\u0437 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043e\u0432.",unmute:"\u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d",newDeviceCameraTitle:"\u041e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0430 \u043d\u043e\u0432\u0430\u044f \u043a\u0430\u043c\u0435\u0440\u0430",newDeviceAudioTitle:"\u041e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u043e \u043d\u043e\u0432\u043e\u0435 \u0430\u0443\u0434\u0438\u043e\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e",newDeviceAction:"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c"},passwordSetRemotely:"\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u0434\u0440\u0443\u0433\u0438\u043c \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u043e\u043c",passwordDigitsOnly:"\u0414\u043e {{number}} \u0446\u0438\u0444\u0440",poweredby:"\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430",presenceStatus:{busy:"\u0417\u0430\u043d\u044f\u0442",calling:"\u0412\u044b\u0437\u044b\u0432\u0430\u044e . . .",connected:"\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043e",connecting:"\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435. . .",connecting2:"\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435*...",disconnected:"\u041e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u043e",expired:"\u0418\u0441\u0442\u0435\u043a",ignored:"\u041f\u0440\u043e\u0438\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u043d",initializingCall:"\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0437\u0432\u043e\u043d\u043a\u0430. . .",invited:"\u041f\u0440\u0438\u0433\u043b\u0430\u0448\u0435\u043d\u043d\u044b\u0439",rejected:"\u041e\u0442\u043a\u043b\u043e\u043d\u0435\u043d",ringing:"\u0417\u0432\u043e\u043d\u044e. . ."},profile:{setDisplayNameLabel:"\u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u043c\u043e\u0435 \u0438\u043c\u044f",setEmailInput:"\u0412\u0432\u0435\u0434\u0438\u0442\u0435 e-mail",setEmailLabel:"E-mail \u0434\u043b\u044f gravatar",title:"\u041f\u0440\u043e\u0444\u0438\u043b\u044c"},raisedHand:"\u0425\u043e\u0447\u0435\u0442 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c",recording:{authDropboxText:"\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0432 Dropbox",availableSpace:"\u0414\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u043c\u0435\u0441\u0442\u0430: {{spaceLeft}} MB (\u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e {{duration}} \u043c\u0438\u043d\u0443\u0442 \u0437\u0430\u043f\u0438\u0441\u0438)",beta:"\u0411\u0415\u0422\u0410",busy:"\u041c\u044b \u0441\u0442\u0430\u0440\u0430\u0435\u043c\u0441\u044f \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0438\u043d\u0443\u0442.",busyTitle:"\u0412\u0441\u0435 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0449\u0438\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0437\u0430\u043d\u044f\u0442\u044b",error:"\u041e\u0448\u0438\u0431\u043a\u0430 \u0437\u0430\u043f\u0438\u0441\u0438. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u043f\u043e\u0437\u0436\u0435.",expandedOff:"\u0417\u0430\u043f\u0438\u0441\u044c \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0430",expandedOn:"\u0414\u0430\u043d\u043d\u0430\u044f \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f.",expandedPending:"\u041d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0437\u0430\u043f\u0438\u0441\u044c \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438...",failedToStart:"\u041e\u0448\u0438\u0431\u043a\u0430 \u043d\u0430\u0447\u0430\u043b\u0430 \u0437\u0430\u043f\u0438\u0441\u0438",fileSharingdescription:"\u041f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0437\u0430\u043f\u0438\u0441\u044c\u044e \u0441 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0430\u043c\u0438 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438",live:"\u041f\u0440\u044f\u043c\u0430\u044f \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044f",loggedIn:"\u0412\u043e\u0448\u0435\u043b \u043a\u0430\u043a {{userName}}",off:"\u0417\u0430\u043f\u0438\u0441\u044c \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0430",offBy:"{{name}} \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b \u0437\u0430\u043f\u0438\u0441\u044c",on:"\u0417\u0430\u043f\u0438\u0441\u044c",onBy:"{{name}} \u0432\u043a\u043b\u044e\u0447\u0438\u043b \u0437\u0430\u043f\u0438\u0441\u044c",pending:"\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0437\u0430\u043f\u0438\u0441\u0438 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438. . .",rec:"\u0418\u0434\u0435\u0442 \u0437\u0430\u043f\u0438\u0441\u044c",serviceDescription:"\u0412\u0430\u0448\u0430 \u0437\u0430\u043f\u0438\u0441\u044c \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0430 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 \u0441\u043b\u0443\u0436\u0431\u043e\u0439",serviceName:"\u0421\u043b\u0443\u0436\u0431\u0430 \u0437\u0430\u043f\u0438\u0441\u0438",signIn:"\u0412\u0445\u043e\u0434",signOut:"\u0412\u044b\u0445\u043e\u0434",unavailable:"\u0421\u043b\u0443\u0436\u0431\u0430 {{serviceName}} \u0441\u0435\u0439\u0447\u0430\u0441 \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430. \u041c\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u043d\u0430\u0434 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u044d\u0442\u043e\u0439 \u043e\u0448\u0438\u0431\u043a\u0438. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u043f\u043e\u0437\u0436\u0435.",unavailableTitle:"\u0417\u0430\u043f\u0438\u0441\u044c \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u0430"},sectionList:{pullToRefresh:"\u041f\u043e\u0442\u044f\u043d\u0438\u0442\u0435 \u0434\u043b\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f"},settings:{calendar:{about:"\u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0441 \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u0435\u043c {{appName}} \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0432\u0430\u0448\u0435\u043c\u0443 \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u044e \u0438 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0437\u0430\u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043c\u0435\u0440\u043e\u043f\u0440\u0438\u044f\u0442\u0438\u0439.",disconnect:"\u041e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f",microsoftSignIn:"\u0412\u043e\u0439\u0442\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0443\u0447\u0435\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 Microsoft",signedIn:"\u0414\u043e\u0441\u0442\u0443\u043f \u043a \u0441\u043e\u0431\u044b\u0442\u0438\u044f\u043c \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u044f \u0432\u043a\u043b\u044e\u0447\u0435\u043d \u0434\u043b\u044f email - \u0430\u0434\u0440\u0435\u0441\u0430 {{email}}. \u041d\u0430\u0436\u043c\u0438\u0442\u0435 \u043a\u043d\u043e\u043f\u043a\u0443 \u041e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0434\u043b\u044f \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0441\u043e\u0431\u044b\u0442\u0438\u044f\u043c \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u044f.",title:"\u041a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u044c"},devices:"\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430",followMe:"\u0412\u0441\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0442 \u0437\u0430 \u043c\u043d\u043e\u0439",language:"\u042f\u0437\u044b\u043a",loggedIn:"\u0412\u043e\u0448\u0435\u043b \u043a\u0430\u043a {{name}}",moderator:"\u041c\u043e\u0434\u0435\u0440\u0430\u0442\u043e\u0440",more:"\u0411\u043e\u043b\u044c\u0448\u0435 \u043e\u043f\u0446\u0438\u0439",name:"\u0418\u043c\u044f",noDevice:"\u043d\u0435\u0442",selectAudioOutput:"\u0417\u0432\u0443\u043a\u043e\u0432\u043e\u0439 \u0432\u044b\u0445\u043e\u0434",selectCamera:"\u041a\u0430\u043c\u0435\u0440\u0430",selectMic:"\u041c\u0438\u043a\u0440\u043e\u0444\u043e\u043d",startAudioMuted:"\u0412\u0441\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442 \u0441 \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u043c \u0437\u0432\u0443\u043a\u043e\u043c",startVideoMuted:"\u0412\u0441\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442 \u0432 \u0441\u043a\u0440\u044b\u0442\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435",title:"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438"},settingsView:{advanced:"\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435",alertOk:"OK",alertTitle:"\u0412\u043d\u0438\u043c\u0430\u043d\u0438\u0435",alertURLText:"\u041e\u0448\u0438\u0431\u043a\u0430 \u0430\u0434\u0440\u0435\u0441\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0430",buildInfoSection:"\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0441\u0431\u043e\u0440\u043a\u0435",conferenceSection:"\u041d\u043e\u043c\u0435\u0440\u0430 \u0434\u043b\u044f \u043d\u0430\u0431\u043e\u0440\u0430",disableCallIntegration:"\u041e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u0443\u044e \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044e \u0432\u044b\u0437\u043e\u0432\u043e\u0432",disableP2P:"\u041e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0440\u0435\u0436\u0438\u043c Peer-To-Peer",displayName:"\u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u043c\u043e\u0435 \u0438\u043c\u044f",email:"Email",header:"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438",profileSection:"\u041f\u0440\u043e\u0444\u0438\u043b\u044c",serverURL:"\u0410\u0434\u0440\u0435\u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u0430",showAdvanced:"\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438",startWithAudioMuted:"\u041d\u0430\u0447\u0430\u0442\u044c \u0441 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u043c \u0437\u0432\u0443\u043a\u043e\u043c",startWithVideoMuted:"\u041d\u0430\u0447\u0430\u0442\u044c \u0441 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u043c \u0432\u0438\u0434\u0435\u043e",version:"\u0412\u0435\u0440\u0441\u0438\u044f"},share:{dialInfoText:"\n\n=====\n\n\u041f\u0440\u043e\u0441\u0442\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u043d\u0430\u0431\u0440\u0430\u0442\u044c \u043d\u043e\u043c\u0435\u0440 \u043d\u0430 \u0412\u0430\u0448\u0435\u043c \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0435?\n\n{{defaultDialInNumber}}\u0429\u0435\u043b\u043a\u043d\u0438\u0442\u0435 \u043d\u0430 \u044d\u0442\u0443 \u0441\u0441\u044b\u043b\u043a\u0443, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u043d\u044b\u0435 \u043d\u043e\u043c\u0435\u0440\u0430 \u0434\u043b\u044f \u044d\u0442\u043e\u0439 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438\n{{dialInfoPageUrl}}",mainText:"\u041d\u0430\u0436\u043c\u0438\u0442\u0435 \u043d\u0430 \u0441\u0441\u044b\u043b\u043a\u0443 \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u044c\u0441\u044f \u043a \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438:\n{{roomUrl}}"},speaker:"\u041a\u043e\u043b\u043e\u043d\u043a\u0430",speakerStats:{hours:"{{count}}\u0447",minutes:"{{count}}\u043c",name:"\u0418\u043c\u044f",seconds:"{{count}}\u0441",speakerStats:"\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u0432\u044b\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0439",speakerTime:"\u0412\u0440\u0435\u043c\u044f \u0432\u044b\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0439"},startupoverlay:{policyText:" ",title:"{{app}} \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u0443 \u0438 \u043a\u0430\u043c\u0435\u0440\u0435."},suspendedoverlay:{rejoinKeyTitle:"\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u0441\u043d\u043e\u0432\u0430",text:"\u0414\u043b\u044f \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0432\u044f\u0437\u0438 \u043d\u0430\u0436\u043c\u0438\u0442\u0435 \u043a\u043d\u043e\u043f\u043a\u0443 \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u0441\u043d\u043e\u0432\u0430.",title:"\u0412\u0438\u0434\u0435\u043e\u0441\u0432\u044f\u0437\u044c \u043f\u0440\u0435\u0440\u0432\u0430\u043d\u0430. \u041f\u0440\u0438\u0447\u0438\u043d\u0430: \u044d\u0442\u043e\u0442 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440 \u043f\u0435\u0440\u0435\u0448\u0435\u043b \u0432 \u0440\u0435\u0436\u0438\u043c \u0441\u043d\u0430."},toolbar:{accessibilityLabel:{audioOnly:"\u0412\u043a\u043b/\u0412\u044b\u043a\u043b \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0432\u0443\u043a",audioRoute:"\u0412\u044b\u0431\u0440\u0430\u0442\u044c \u0430\u0443\u0434\u0438\u043e\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e",callQuality:"\u041a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0432\u044f\u0437\u0438",cc:"\u0412\u043a\u043b/\u0412\u044b\u043a\u043b \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u044b",chat:"\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c/\u0441\u043a\u0440\u044b\u0442\u044c \u043e\u043a\u043d\u043e \u0447\u0430\u0442\u0430",document:"\u0417\u0430\u043a\u0440\u044b\u0442\u044c \u043e\u0431\u0449\u0438\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442",download:"\u0421\u043a\u0430\u0447\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435",feedback:"\u041e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043e\u0442\u0437\u044b\u0432",fullScreen:"\u041f\u043e\u043b\u043d\u043e\u044d\u043a\u0440\u0430\u043d\u043d\u044b\u0439/\u043e\u043a\u043e\u043d\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c",hangup:"\u0417\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u044c \u0437\u0432\u043e\u043d\u043e\u043a",help:"\u0421\u043f\u0440\u0430\u0432\u043a\u0430",invite:"\u041f\u0440\u0438\u0433\u043b\u0430\u0441\u0438\u0442\u044c",kick:"\u0412\u044b\u043a\u0438\u043d\u0443\u0442\u044c \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0430",localRecording:"\u0412\u043a\u043b/\u0412\u044b\u043a\u043b \u043a\u043d\u043e\u043f\u043a\u0438 \u0437\u0430\u043f\u0438\u0441\u0438",lockRoom:"\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043f\u0430\u0440\u043e\u043b\u044c",moreActions:"\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c/\u0441\u043a\u0440\u044b\u0442\u044c \u043c\u0435\u043d\u044e \u0434\u043e\u043f. \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a",moreOptions:"\u041c\u0435\u043d\u044e \u0434\u043e\u043f. \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a",moreActionsMenu:"\u041c\u0435\u043d\u044e \u0434\u043e\u043f. \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a",mute:"\u0412\u043a\u043b/\u0412\u044b\u043a\u043b \u0437\u0432\u0443\u043a",pip:"\u0412\u043a\u043b/\u0412\u044b\u043a\u043b \u0440\u0435\u0436\u0438\u043c \u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430-\u0432-\u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435",privateMessage:"\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043b\u0438\u0447\u043d\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435",profile:"\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0444\u0438\u043b\u044c",raiseHand:"\u041f\u043e\u0434\u043d\u044f\u0442\u044c \u0440\u0443\u043a\u0443",recording:"\u0412\u043a\u043b/\u0412\u044b\u043a\u043b \u0437\u0430\u043f\u0438\u0441\u044c",remoteMute:"\u041e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0443 \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d",Settings:"\u0412\u043a\u043b/\u0412\u044b\u043a\u043b \u043c\u0435\u043d\u044e \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a",sharedvideo:"\u0412\u043a\u043b/\u0412\u044b\u043a\u043b Youtube - \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044e",shareRoom:"\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435",shareYourScreen:"\u0412\u043a\u043b/\u0412\u044b\u043a\u043b \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u044e \u044d\u043a\u0440\u0430\u043d\u0430",shortcuts:"\u0412\u043a\u043b/\u0412\u044b\u043a\u043b \u0437\u043d\u0430\u0447\u043a\u0438",show:"\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043a\u0440\u0443\u043f\u043d\u044b\u043c \u043f\u043b\u0430\u043d\u043e\u043c",speakerStats:"\u0412\u043a\u043b/\u0412\u044b\u043a\u043b \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0443",tileView:"\u0412\u043a\u043b/\u0412\u044b\u043a\u043b \u043f\u043b\u0438\u0442\u043a\u0443",toggleCamera:"\u0412\u043a\u043b/\u0412\u044b\u043a\u043b \u043a\u0430\u043c\u0435\u0440\u0443",videomute:"\u0412\u043a\u043b/\u0412\u044b\u043a\u043b \u0432\u0438\u0434\u0435\u043e",muteEveryone:"\u0412\u044b\u043a\u043b. \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d \u0443 \u0432\u0441\u0435\u0445",videoblur:"\u0412\u043a\u043b/\u0412\u044b\u043a\u043b \u0440\u0430\u0437\u043c\u044b\u0442\u0438\u0435 \u0444\u043e\u043d\u0430"},addPeople:"\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043b\u044e\u0434\u0435\u0439 \u043a \u0432\u0430\u0448\u0435\u043c\u0443 \u0441\u0435\u0430\u043d\u0441\u0443 \u0441\u0432\u044f\u0437\u0438",audioOnlyOff:"\u041e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0440\u0435\u0436\u0438\u043c \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0438 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438",audioOnlyOn:"\u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0440\u0435\u0436\u0438\u043c \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0438 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438",audioRoute:"\u0412\u044b\u0431\u0440\u0430\u0442\u044c \u0430\u0443\u0434\u0438\u043e\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e",authenticate:"\u0410\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c",callQuality:"\u041a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0432\u044f\u0437\u0438",chat:"\u0427\u0430\u0442",closeChat:"\u0417\u0430\u043a\u0440\u044b\u0442\u044c \u0447\u0430\u0442",documentClose:"\u0417\u0430\u043a\u0440\u044b\u0442\u044c \u043e\u0431\u0449\u0438\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442",documentOpen:"\u041e\u0442\u043a\u0440\u044b\u0442\u044c \u043e\u0431\u0449\u0438\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442",download:"\u0421\u043a\u0430\u0447\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435",enterFullScreen:"\u041f\u043e\u043b\u043d\u044b\u0439 \u044d\u043a\u0440\u0430\u043d",enterTileView:"\u041e\u0431\u0449\u0438\u0439 \u043f\u043b\u0430\u043d",exitFullScreen:"\u041f\u043e\u043b\u043d\u044b\u0439 \u044d\u043a\u0440\u0430\u043d",exitTileView:"\u041a\u0440\u0443\u043f\u043d\u044b\u0439 \u043f\u043b\u0430\u043d",feedback:"\u041e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043e\u0442\u0437\u044b\u0432",hangup:"\u0412\u044b\u0445\u043e\u0434",help:"\u0421\u043f\u0440\u0430\u0432\u043a\u0430",invite:"\u041f\u0440\u0438\u0433\u043b\u0430\u0441\u0438\u0442\u044c",login:"\u0412\u043e\u0439\u0442\u0438",logout:"\u0417\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u044c \u0441\u0435\u0430\u043d\u0441",lowerYourHand:"\u041e\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0440\u0443\u043a\u0443",moreActions:"\u0411\u043e\u043b\u044c\u0448\u0435",mute:"\u041c\u0438\u043a\u0440\u043e\u0444\u043e\u043d (\u0432\u043a\u043b./\u0432\u044b\u043a\u043b.)",muteEveryone:"\u0412\u044b\u043a\u043b. \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d \u0443 \u0432\u0441\u0435\u0445",noAudioSignalTitle:"\u041e\u0442 \u0432\u0430\u0448\u0435\u0433\u043e \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u0430 \u043d\u0435 \u0438\u0434\u0435\u0442 \u0437\u0432\u0443\u043a\u043e\u0432\u043e\u0439 \u0441\u0438\u0433\u043d\u0430\u043b!",noAudioSignalDesc:"\u0415\u0441\u043b\u0438 \u0432\u044b \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043d\u0435 \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u043b\u0438 \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445, \u043f\u043e\u0434\u0443\u043c\u0430\u0439\u0442\u0435 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u0435\u0433\u043e.",noAudioSignalDescSuggestion:"\u0415\u0441\u043b\u0438 \u0432\u044b \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043d\u0435 \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u043b\u0438 \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e:",noisyAudioInputTitle:"\u041f\u043e\u0445\u043e\u0436\u0435, \u0432\u0430\u0448 \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u0448\u0443\u043c!",noisyAudioInputDesc:"\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0432\u0430\u0448 \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u0448\u0443\u043c. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u044b\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0435\u0433\u043e \u0438\u043b\u0438 \u0441\u043c\u0435\u043d\u0438\u0442\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e.",openChat:"\u041e\u0442\u043a\u0440\u044b\u0442\u044c \u0447\u0430\u0442",pip:"\u0412\u043a\u043b \u0440\u0435\u0436\u0438\u043c \u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430-\u0432-\u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435",privateMessage:"\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043b\u0438\u0447\u043d\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435",profile:"\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0444\u0438\u043b\u044c",raiseHand:"\u0425\u043e\u0447\u0443 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c",raiseYourHand:"\u041f\u043e\u0434\u043d\u044f\u0442\u044c \u0440\u0443\u043a\u0443",Settings:"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438",sharedvideo:"\u0412\u0438\u0434\u0435\u043e YouTube",shareRoom:"\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435",shortcuts:"\u041a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0438 \u043a\u043b\u0430\u0432\u0438\u0448",speakerStats:"\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430",startScreenSharing:"\u041d\u0430\u0447\u0430\u0442\u044c \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044e \u0441 \u044d\u043a\u0440\u0430\u043d\u0430",startSubtitles:"\u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u044b",stopScreenSharing:"\u041e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044e \u0441 \u044d\u043a\u0440\u0430\u043d\u0430",stopSubtitles:"\u041e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u044b",stopSharedVideo:"\u041e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0432\u0438\u0434\u0435\u043e \u043d\u0430 YouTube",talkWhileMutedPopup:"\u041f\u044b\u0442\u0430\u0435\u0442\u0435\u0441\u044c \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c? \u0423 \u0432\u0430\u0441 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d \u0437\u0432\u0443\u043a.",tileViewToggle:"\u0412\u043a\u043b/\u0432\u044b\u043a\u043b \u043f\u043b\u0438\u0442\u043a\u0443",toggleCamera:"\u0412\u043a\u043b/\u0432\u044b\u043a\u043b \u043a\u0430\u043c\u0435\u0440\u0443",videomute:"\u041a\u0430\u043c\u0435\u0440\u0430",startvideoblur:"\u0420\u0430\u0437\u043c\u044b\u0442\u044c \u0444\u043e\u043d \u043d\u0430 \u0432\u0438\u0434\u0435\u043e",stopvideoblur:"\u041e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0440\u0430\u0437\u043c\u044b\u0442\u0438\u0435 \u0444\u043e\u043d\u0430"},transcribing:{ccButtonTooltip:"\u0412\u043a\u043b. / \u0412\u044b\u043a\u043b. \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u044b",error:"\u041e\u0448\u0438\u0431\u043a\u0430 \u0437\u0430\u043f\u0438\u0441\u0438. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u043f\u043e\u0437\u0436\u0435.",expandedLabel:"\u0422\u0440\u0430\u043d\u0441\u043a\u0440\u0438\u043f\u0446\u0438\u044f \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0430",failedToStart:"\u041d\u0435\u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043d\u0430\u0447\u0430\u0442\u044c \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0443",labelToolTip:"\u0421\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u0442\u0440\u0430\u043d\u0441\u043a\u0440\u0438\u043f\u0446\u0438\u044f \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438.",off:"\u0420\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0430 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0430",pending:"\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0438 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438. . .",start:"\u0412\u043a\u043b/\u0412\u044b\u043a\u043b \u043f\u043e\u043a\u0430\u0437 \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u043e\u0432",stop:"\u0412\u043a\u043b/\u0412\u044b\u043a\u043b \u043f\u043e\u043a\u0430\u0437 \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u043e\u0432",tr:""},userMedia:{androidGrantPermissions:"\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c, \u043a\u043e\u0433\u0434\u0430 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u0441\u043f\u0440\u043e\u0441\u0438\u0442 \u043e \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f\u0445.",chromeGrantPermissions:"\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c, \u043a\u043e\u0433\u0434\u0430 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u0441\u043f\u0440\u043e\u0441\u0438\u0442 \u043e \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f\u0445.",edgeGrantPermissions:"\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0414\u0430, \u043a\u043e\u0433\u0434\u0430 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u0441\u043f\u0440\u043e\u0441\u0438\u0442 \u043e \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f\u0445.",electronGrantPermissions:"\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0434\u0430\u0439\u0442\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043d\u0430 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043a\u0430\u043c\u0435\u0440\u0435 \u0438 \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u0443",firefoxGrantPermissions:"\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u041f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u043c, \u043a\u043e\u0433\u0434\u0430 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u0441\u043f\u0440\u043e\u0441\u0438\u0442 \u043e \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f\u0445.",iexplorerGrantPermissions:"\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 OK, \u043a\u043e\u0433\u0434\u0430 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u0441\u043f\u0440\u043e\u0441\u0438\u0442 \u043e \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f\u0445.",nwjsGrantPermissions:"\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0434\u0430\u0439\u0442\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043d\u0430 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043a\u0430\u043c\u0435\u0440\u0435 \u0438 \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u0443",operaGrantPermissions:"\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c, \u043a\u043e\u0433\u0434\u0430 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u0441\u043f\u0440\u043e\u0441\u0438\u0442 \u043e \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f\u0445.","react-nativeGrantPermissions":"\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c, \u043a\u043e\u0433\u0434\u0430 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u0441\u043f\u0440\u043e\u0441\u0438\u0442 \u043e \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f\u0445.",safariGrantPermissions:"\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 OK, \u043a\u043e\u0433\u0434\u0430 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u0441\u043f\u0440\u043e\u0441\u0438\u0442 \u043e \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f\u0445."},videoSIPGW:{busy:"\u041c\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u043d\u0430\u0434 \u0432\u044b\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0435\u043d\u0438\u0435\u043c \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0438\u043d\u0443\u0442.",busyTitle:"\u0421\u043b\u0443\u0436\u0431\u0430 \u0441\u0435\u0439\u0447\u0430\u0441 \u0437\u0430\u043d\u044f\u0442\u0430",errorAlreadyInvited:"{{displayName}} \u0443\u0436\u0435 \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0435\u043d",errorInvite:"\u0412\u0441\u0442\u0440\u0435\u0447\u0430 \u0435\u0449\u0435 \u043d\u0435 \u043d\u0430\u0447\u0430\u043b\u0430\u0441\u044c. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u043f\u043e\u0437\u0436\u0435.",errorInviteFailed:"\u041c\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u043d\u0430\u0434 \u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u043f\u043e\u0437\u0436\u0435.",errorInviteFailedTitle:"\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u044f {{displayName}}",errorInviteTitle:"\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u044f \u0432 \u043a\u043e\u043c\u043d\u0430\u0442\u0443",pending:"{{displayName}} \u0431\u044b\u043b \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0435\u043d"},videoStatus:{audioOnly:"\u0422\u043e\u043b\u044c\u043a\u043e \u0437\u0432\u0443\u043a",audioOnlyExpanded:"\u0410\u043a\u0442\u0438\u0432\u0435\u043d \u0440\u0435\u0436\u0438\u043c \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0438 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438. \u0412 \u044d\u0442\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0432\u0443\u043a \u0438 \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044f \u0441 \u044d\u043a\u0440\u0430\u043d\u0430",callQuality:"\u041a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u0438\u0434\u0435\u043e",hd:"HD",hdTooltip:"\u0412\u0438\u0434\u0435\u043e \u0432\u044b\u0441\u043e\u043a\u043e\u0433\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430",highDefinition:"\u0412\u044b\u0441\u043e\u043a\u043e\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e",labelTooiltipNoVideo:"\u041d\u0435\u0442 \u0432\u0438\u0434\u0435\u043e",labelTooltipAudioOnly:"\u0412\u043a\u043b\u044e\u0447\u0435\u043d \u0440\u0435\u0436\u0438\u043c \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0438 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438",ld:"LD",ldTooltip:"\u0412\u0438\u0434\u0435\u043e \u043d\u0438\u0437\u043a\u043e\u0433\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430",lowDefinition:"\u041d\u0438\u0437\u043a\u043e\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e",onlyAudioAvailable:"\u0422\u043e\u043b\u044c\u043a\u043e \u0437\u0432\u0443\u043a",onlyAudioSupported:"\u0412 \u044d\u0442\u043e\u043c \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0432\u0443\u043a.",p2pEnabled:"\u0412\u043a\u043b\u044e\u0447\u0435\u043d \u0440\u0435\u0436\u0438\u043c \"\u0442\u043e\u0447\u043a\u0430-\u043a-\u0442\u043e\u0447\u043a\u0435\"",p2pVideoQualityDescription:"\u0412 \u0440\u0435\u0436\u0438\u043c\u0435 \u043f\u0440\u044f\u043c\u043e\u0433\u043e \u043a\u0430\u043d\u0430\u043b\u0430 \u0441\u0432\u044f\u0437\u0438 \u043c\u0435\u0436\u0434\u0443 \u0430\u0431\u043e\u043d\u0435\u043d\u0442\u0430\u043c\u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u044c\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043c\u0435\u0436\u0434\u0443 \u0440\u0435\u0436\u0438\u043c\u0430\u043c\u0438 \"\u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0432\u0443\u043a\" \u0438 \"\u0432\u044b\u0441\u043e\u043a\u043e\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e\". \u041e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0441\u0442\u0430\u043d\u0443\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u043c\u0438, \u043a\u043e\u0433\u0434\u0430 \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u0442\u0441\u044f \u044d\u0442\u043e\u0442 \u0440\u0435\u0436\u0438\u043c.",recHighDefinitionOnly:"\u041f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u044b\u0441\u043e\u043a\u043e\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e.",sd:"SD",sdTooltip:"\u0412\u0438\u0434\u0435\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0433\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430",standardDefinition:"\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e (SD)"},videothumbnail:{domute:"\u0412\u044b\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0437\u0432\u0443\u043a",domuteOthers:"\u0412\u044b\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445",flip:"\u041e\u0442\u0440\u0430\u0437\u0438\u0442\u044c",kick:"\u0412\u044b\u043a\u0438\u043d\u0443\u0442\u044c",moderator:"\u041c\u043e\u0434\u0435\u0440\u0430\u0442\u043e\u0440",mute:"\u0411\u0435\u0437 \u0437\u0432\u0443\u043a\u0430",muted:"\u0417\u0432\u0443\u043a \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d",remoteControl:"",show:"\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043a\u0440\u0443\u043f\u043d\u044b\u043c \u043f\u043b\u0430\u043d\u043e\u043c",videomute:"\u0423\u0447\u0430\u0441\u0442\u043d\u0438\u043a \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u043b \u043a\u0430\u043c\u0435\u0440\u0443"},welcomepage:{accessibilityLabel:{join:"\u041d\u0430\u0436\u043c\u0438\u0442\u0435 \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u044c\u0441\u044f",roomname:"\u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u043c\u043d\u0430\u0442\u044b"},appDescription:"\u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0432\u0438\u0434\u0435\u043e\u0447\u0430\u0442 \u0441\u043e \u0432\u0441\u0435\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439. \u041f\u0440\u0438\u0433\u043b\u0430\u0448\u0430\u0439\u0442\u0435 \u0437\u043d\u0430\u043a\u043e\u043c\u044b\u0445! {{app}} \u2014 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0432\u0438\u0434\u0435\u043e\u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0439 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c. \u041f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435\u0441\u044c \u043a\u0430\u0436\u0434\u044b\u0439 \u0434\u0435\u043d\u044c, \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e \u0438 \u0431\u0435\u0437 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438.",audioVideoSwitch:{audio:"\u041a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u044c",video:"\u0412\u0438\u0434\u0435\u043e"},calendar:"\u041a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u044c",connectCalendarButton:"\u041f\u0440\u0438\u0432\u044f\u0437\u0430\u0442\u044c \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u044c",connectCalendarText:"\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u0435 \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u044c, \u0447\u0442\u043e\u0431\u044b \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0432\u0441\u0435 \u0432\u0430\u0448\u0438 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438 \u0432 {{app}}. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0434\u043e\u0431\u0430\u0432\u0438\u0432 {{provider}} \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0439 \u0432 \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u044c, \u0432\u044b \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0438\u0445 \u043e\u0434\u043d\u0438\u043c \u0449\u0435\u043b\u0447\u043a\u043e\u043c \u043c\u044b\u0448\u043a\u0438.",enterRoomTitle:"\u041d\u0430\u0447\u0430\u0442\u044c \u043d\u043e\u0432\u0443\u044e \u0432\u0438\u0434\u0435\u043e\u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044e",roomNameAllowedChars:"\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u044b: ?, &, :, ', \", %, #.",go:"\u041e\u041a",goSmall:"\u041e\u041a",join:"\u0421\u041e\u0417\u0414\u0410\u0422\u042c / \u041f\u0420\u0418\u0421\u041e\u0415\u0414\u0418\u041d\u0418\u0422\u042c\u0421\u042f",info:"\u0418\u043d\u0444\u043e",privacy:"\u041f\u0440\u0438\u0432\u0430\u0442\u043d\u043e\u0441\u0442\u044c",recentList:"\u041d\u0435\u0434\u0430\u0432\u043d\u0438\u0435",recentListDelete:"\u0423\u0434\u0430\u043b\u0438\u0442\u044c",recentListEmpty:"\u0421\u0435\u0439\u0447\u0430\u0441 \u0432\u0430\u0448 \u0441\u043f\u0438\u0441\u043e\u043a \u043d\u0435\u0434\u0430\u0432\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0445 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0439 \u043f\u0443\u0441\u0442. \u041f\u043e \u043c\u0435\u0440\u0435 \u0432\u0430\u0448\u0435\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u043c \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f.",reducedUIText:"\u0414\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c \u0432 {{app}}!",roomname:"\u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u043c\u043d\u0430\u0442\u044b",roomnameHint:"\u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u043c\u043d\u0430\u0442\u044b \u0438\u043b\u0438 \u0435\u0435 \u0430\u0434\u0440\u0435\u0441. \u041c\u043e\u0436\u0435\u0442\u0435 \u0441\u0430\u043c\u0438 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0435\u0433\u043e \u0431\u0443\u0434\u0443\u0449\u0438\u043c \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0430\u043c \u0432\u0441\u0442\u0440\u0435\u0447\u0438, \u0447\u0442\u043e\u0431\u044b \u043e\u043d\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u0438\u043c\u0435\u043d\u043d\u043e \u0435\u0433\u043e.",sendFeedback:"\u041e\u0431\u0440\u0430\u0442\u043d\u0430\u044f \u0441\u0432\u044f\u0437\u044c",terms:"\u0423\u0441\u043b\u043e\u0432\u0438\u044f",title:"\u0417\u0430\u0449\u0438\u0449\u0435\u043d\u043d\u0430\u044f, \u043f\u043e\u043b\u043d\u043e\u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u0430\u044f \u0438 \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0432\u0438\u0434\u0435\u043e\u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0439"},lonelyMeetingExperience:{button:"\u041f\u0440\u0438\u0433\u043b\u0430\u0441\u0438\u0442\u044c",youAreAlone:"\u0412\u044b \u043e\u0434\u0438\u043d \u0432 \u0432\u0438\u0434\u0435\u043e\u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438"}}},695,[]); +__d(function(a,s,k,i,n,e,o){n.exports={en:"Engelska",af:"",az:"",bg:"Bulgariska",cs:"",de:"Tyska",el:"",eo:"Esperanto",es:"Spanska",fr:"Franska",hy:"Armeniska",it:"Italienska",ja:"",ko:"",nb:"Norska (Bokm\xe5l)",oc:"Occitanska",pl:"Polska",ptBR:"Portugisiska (Brasilien)",ru:"Ryska",sk:"Slovakiska",sl:"Slovenska",sv:"Svenska",tr:"Turkiska",vi:"",zhCN:"Kinesiska (Kina)"}},696,[]); +__d(function(e,n,t,a,r,i,l){r.exports={addPeople:{add:"Bjud in",countryNotSupported:"Vi st\xf6der inte den h\xe4r platsen \xe4nnu.",countryReminder:"Ringer du till utlandsnummer? B\xf6rja alltid med landskoden.",disabled:"Du kan inte bjuda in andra.",failedToAdd:"",footerText:"Utringningsfunktionen \xe4r avst\xe4ngd.",loading:"S\xf6ker efter personer och telefonnummer",loadingNumber:"Bekr\xe4ftar telefonnummer",loadingPeople:"S\xf6ker efter personer att bjuda in",noResults:"Inga s\xf6ktr\xe4ffar",noValidNumbers:"Ange ett telefonnummer",searchNumbers:"L\xe4gg till telefonnummer",searchPeople:"S\xf6k efter personer",searchPeopleAndNumbers:"S\xf6k efter personer eller l\xe4gg till deras telefonnummer",telephone:"Telefon: {{number}}",title:"Bjud in andra till m\xf6tet"},audioDevices:{bluetooth:"Bluetooth",headphones:"H\xf6rlurar",phone:"Telefon",speaker:"Talare"},audioOnly:{audioOnly:"Enbart ljud"},calendarSync:{addMeetingURL:"L\xe4gg till en m\xf6tesl\xe4nk",confirmAddLink:"Vill du l\xe4gga till en Jitsi-l\xe4nk i h\xe4ndelsen?",error:{appConfiguration:"Kalenderintegrationen \xe4r inte r\xe4tt inst\xe4lld.",generic:"Ett fel har intr\xe4ffat. Kontrollera dina kalenderinst\xe4llningar eller uppdatera kalendern.",notSignedIn:"Ett fel intr\xe4ffade n\xe4r kalenderh\xe4ndelserna autentiserades f\xf6r visning. Kontrollera kalenderinst\xe4llningarna och f\xf6rs\xf6k att logga in igen."},join:"G\xe5 med",joinTooltip:"G\xe5 med i m\xf6tet",nextMeeting:"n\xe4sta m\xf6te",noEvents:"Det finns inga inbokade kommande aktiviteter.",ongoingMeeting:"p\xe5g\xe5ende m\xf6te",permissionButton:"\xd6ppna inst\xe4llningar",permissionMessage:"Till\xe5telse fr\xe5n kalendern kr\xe4vs f\xf6r att se dina m\xf6ten i appen.",refresh:"Uppdatera kalender",today:"Idag"},chat:{error:"",messagebox:"Skriv ett meddelande",nickname:{popover:"V\xe4lj ett namn",title:"Skriv in ett namn f\xf6r att b\xf6rja anv\xe4nda chatten"},title:"Chatt"},connectingOverlay:{joiningRoom:"Ansluter till m\xf6tet ..."},connection:{ATTACHED:"Ansluten",AUTHENTICATING:"Kontrollerar beh\xf6righet",AUTHFAIL:"Autentisering misslyckades",CONNECTED:"Ansluten",CONNECTING:"Ansluter",CONNFAIL:"Anslutningen misslyckades",DISCONNECTED:"Fr\xe5nkopplad",DISCONNECTING:"Kopplar fr\xe5n",ERROR:"Fel",RECONNECTING:"Ett n\xe4tverksproblem uppstod. \xc5teransluter..."},connectionindicator:{address:"Adress:",bandwidth:"Ber\xe4knad bandbredd:",bitrate:"Bithastighet:",bridgeCount:"Serverantal: ",connectedTo:"Ansluten till:",framerate:"Bildfrekvens:",less:"Visa mindre",localaddress:"Lokal adress:",localaddress_plural:"Lokala adresser:",localport:"Lokal port:",localport_plural:"Lokala portar:",more:"Visa mer",packetloss:"Paketf\xf6rluster:",quality:{good:"Bra",inactive:"Inaktiv",lost:"F\xf6rlorad",nonoptimal:"Ej optimal",poor:"D\xe5ligt"},remoteaddress:"Fj\xe4rradress:",remoteaddress_plural:"Fj\xe4rradresser:",remoteport:"Fj\xe4rrport:",remoteport_plural:"Fj\xe4rrportar:",resolution:"Uppl\xf6sning:",status:"Anslutning:",transport:"Transport:",turn:" (turn)"},dateUtils:{earlier:"Tidigare",today:"Idag",yesterday:"Ig\xe5r"},deepLinking:{appNotInstalled:"Du beh\xf6ver mobilappen {{app}} f\xf6r att g\xe5 med i det h\xe4r m\xf6tet fr\xe5n din telefon.",description:"H\xe4nde inget? Vi f\xf6rs\xf6kte starta m\xf6tet i programmet {{app}} i din skrivbordsapp. F\xf6rs\xf6k igen eller starta det i webbappen {{app}}.",descriptionWithoutWeb:"",downloadApp:"H\xe4mta appen",launchWebButton:"Starta p\xe5 webben",openApp:"Forts\xe4tt till appen",title:"Startar ditt m\xf6te i {{app}} ...",tryAgainButton:"F\xf6rs\xf6k igen p\xe5 skrivbordet"},defaultLink:"t ex. {{url}}",deviceError:{cameraError:"Det gick inte att komma \xe5t kameran",cameraPermission:"Fel vid beg\xe4ran om \xe5tkomst till kamera",microphoneError:"Det gick inte att komma \xe5t mikrofonen",microphonePermission:"Fel vid beg\xe4ran om \xe5tkomst till mikrofon"},deviceSelection:{noPermission:"Beh\xf6righet nekad",previewUnavailable:"F\xf6rhandsgranskning inte tillg\xe4nglig",selectADevice:"V\xe4lj en enhet",testAudio:"Spela upp ett testljud"},dialog:{accessibilityLabel:{liveStreaming:"Lives\xe4ndning"},allow:"Till\xe5t",alreadySharedVideoMsg:"",alreadySharedVideoTitle:"Endast en delad video \xe5t g\xe5ngen till\xe5ts",applicationWindow:"Applikationsf\xf6nster",Back:"Tillbaka",cameraConstraintFailedError:"Din kamera uppfyller inte kraven f\xf6r anv\xe4ndning.",cameraNotFoundError:"Hittar ingen kamera.",cameraNotSendingData:"Vi saknar \xe5tkomst till kameran. Kontrollera om ett annat program anv\xe4nder enheten, v\xe4lj en annan enhet fr\xe5n inst\xe4llningsmenyn eller f\xf6rs\xf6k att starta om programmet.",cameraNotSendingDataTitle:"\xc5tkomst saknas till kameran",cameraPermissionDeniedError:"Du har inte till\xe5tit anv\xe4ndning av din kamera. Du kan g\xe5 med i m\xf6tet men de andra kan d\xe5 inte se dej. Om du vill till\xe5ta anv\xe4ndning av din kamera g\xf6r du det via kameraknappen i URL-f\xe4ltet.",cameraUnknownError:"Av ok\xe4nd anledning kan din kamera inte anv\xe4ndas.",cameraUnsupportedResolutionError:"Din kamera st\xf6der inte den kr\xe4vda videouppl\xf6sningen.",Cancel:"Avbryt",close:"St\xe4ng",conferenceDisconnectMsg:"Kolla din internetanslutning. \xc5teransluter om {{seconds}} sekunder...",conferenceDisconnectTitle:"Du har kopplats ner.",conferenceReloadMsg:"Vi f\xf6rs\xf6ker fixa problemet. \xc5teransluter om {{seconds}} sekunder...",conferenceReloadTitle:"N\xe5got gick snett.",confirm:"Bekr\xe4fta",confirmNo:"Nej",confirmYes:"Ja",connectError:"Ojd\xe5! N\xe5got gick fel och vi kunde inte ansluta till konferensen.",connectErrorWithMsg:"Ojd\xe5! N\xe5got gick fel och vi kunde inte ansluta till konferensen: {{msg}}",connecting:"Ansluter",contactSupport:"Kontakta kundtj\xe4nst",copy:"Kopiera",dismiss:"F\xf6rkasta",displayNameRequired:"",done:"Klar",enterDisplayName:"",error:"Fel",externalInstallationMsg:"Misslyckades att installera skrivbordsdelnings-till\xe4gget.",externalInstallationTitle:"Till\xe4gg kr\xe4vs",goToStore:"G\xe5 till appbutiken",gracefulShutdown:"V\xe5r tj\xe4nst \xe4r f\xf6r tillf\xe4llet nedst\xe4ngd f\xf6r underh\xe5ll. V\xe4nligen f\xf6rs\xf6k senare.",IamHost:"Jag \xe4r v\xe4rd",incorrectRoomLockPassword:"",incorrectPassword:"Fel anv\xe4ndarnamn eller l\xf6senord",inlineInstallationMsg:"Misslyckades att installera skrivbordsdelnings-till\xe4gget.",inlineInstallExtension:"Installera nu",internalError:"Ett fel uppstod. Fel: {{error}}",internalErrorTitle:"Internt fel",kickMessage:"",kickParticipantButton:"Sparka ut",kickParticipantDialog:"Vill du sparka ut den h\xe4r deltagaren?",kickParticipantTitle:"Tysta deltagaren?",kickTitle:"",liveStreaming:"Str\xf6mma",liveStreamingDisabledForGuestTooltip:"G\xe4ster kan inte starta en lives\xe4ndning.",liveStreamingDisabledTooltip:"Starta lives\xe4ndning har inaktiverats.",lockMessage:"Misslyckades att l\xe5sa konferensen.",lockRoom:"",lockTitle:"L\xe5sning misslyckades",logoutQuestion:"\xc4r du s\xe4ker p\xe5 att du vill logga ut och stoppa konferensen?",logoutTitle:"Logga ut",maxUsersLimitReached:"",maxUsersLimitReachedTitle:"",micConstraintFailedError:"Din mikrofon uppfyller inte kraven f\xf6r anv\xe4ndning.",micNotFoundError:"Hittar ingen mikrofon.",micNotSendingData:"",micNotSendingDataTitle:"",micPermissionDeniedError:"Du har inte till\xe5tit anv\xe4ndning av din mikrofon. Du kan g\xe5 med i m\xf6tet men de andra kan d\xe5 inte h\xf6ra dej. Om du vill till\xe5ta anv\xe4ndning av din mikrofon g\xf6r du det via mikrofonknappen i URL-f\xe4ltet.",micUnknownError:"Av ok\xe4nd anledning kan inte din mikrofon anv\xe4ndas.",muteParticipantBody:"Du kan inte aktivera deras mikrofoner, men de kan g\xf6ra det sj\xe4lva.",muteParticipantButton:"Tysta",muteParticipantDialog:"Vill du tysta den h\xe4r deltagaren? Du kan inte aktivera mikrofonen igen, men deltagaren kan n\xe4r som helst g\xf6ra det sj\xe4lv.",muteParticipantTitle:"Tysta deltagaren?",Ok:"Ok",passwordLabel:"",passwordNotSupported:"Att s\xe4tta ett l\xf6senord f\xf6r konferensrummet st\xf6ds inte.",passwordNotSupportedTitle:"",passwordRequired:"",popupError:"Din webbl\xe4sare blockerar pop-up-f\xf6nster fr\xe5n sajten. Till\xe5t pop-up-f\xf6nster fr\xe5n den h\xe4r sajten i inst\xe4llningarna och f\xf6rs\xf6k igen.",popupErrorTitle:"Pop-up blockerad",recording:"Inspelning",recordingDisabledForGuestTooltip:"G\xe4ster kan inte starta inspelningar.",recordingDisabledTooltip:"Starta inspelning har inaktiverats.",rejoinNow:"\xc5teranslut nu",remoteControlAllowedMessage:"{{user}} godk\xe4nde din beg\xe4ran om fj\xe4rrstyrning.",remoteControlDeniedMessage:"{{user}} avb\xf6jde din beg\xe4ran om fj\xe4rrstyrning.",remoteControlErrorMessage:"Ett fel uppstod n\xe4r fj\xe4rrstyrningsr\xe4ttigheter beg\xe4rdes fr\xe5n {{user}}.",remoteControlRequestMessage:"Vill du till\xe5ta att {{user}} f\xe5r kontrollera din sk\xe4rm?",remoteControlShareScreenWarning:"OBS, om du trycker \"Till\xe5t\" kommer du dela din sk\xe4rm!",remoteControlStopMessage:"Fj\xe4rrstyrningssessionen avslutades.",remoteControlTitle:"Anslutning till fj\xe4rrskrivbord",Remove:"Ta bort",removePassword:"",removeSharedVideoMsg:"\xc4r du s\xe4ker p\xe5 att du vill ta bort din delade video?",removeSharedVideoTitle:"Ta bort den delade videon",reservationError:"Fel i reservationssystemet",reservationErrorMsg:"Felkod: {{code}}, meddelande: {{msg}}",retry:"F\xf6rs\xf6k igen",screenSharingFailedToInstall:"Ut\xf6kningen f\xf6r sk\xe4rmdelning kunde inte installeras.",screenSharingFailedToInstallTitle:"Ut\xf6kningen f\xf6r sk\xe4rmdelning kunde inte installeras",screenSharingFirefoxPermissionDeniedError:"N\xe5got gick fel n\xe4r du f\xf6rs\xf6kte dela sk\xe4rmen. Det kan vara f\xf6r att du inte till\xe5ter det. ",screenSharingFirefoxPermissionDeniedTitle:"Sk\xe4rmdelningen misslyckades!",screenSharingPermissionDeniedError:"N\xe5got \xe4r fel med \xe5tkomstinst\xe4llningarna f\xf6r sk\xe4rmdelningen. Ladda om sidan och f\xf6rs\xf6k igen.",serviceUnavailable:"Tj\xe4nsten otillg\xe4nglig",sessTerminated:"Konferensen avslutades",Share:"Dela",shareVideoLinkError:"Skriv in en fungerande Youtube-l\xe4nk.",shareVideoTitle:"Ta bort en delad video",shareYourScreen:"Dela din sk\xe4rm",shareYourScreenDisabled:"Sk\xe4rmdelning har inaktiverats.",shareYourScreenDisabledForGuest:"G\xe4ster kan inte sk\xe4rmdela.",startLiveStreaming:"Starta lives\xe4ndning",startRecording:"Starta inspelning",startRemoteControlErrorMessage:"Ett fel intr\xe4ffade n\xe4r fj\xe4rrsessionen skulle starta!",stopLiveStreaming:"Avsluta lives\xe4ndning",stopRecording:"Avsluta inspelningen",stopRecordingWarning:"Vill du avsluta den p\xe5g\xe5ende inspelningen?",stopStreamingWarning:"Vill du avsluta den p\xe5g\xe5ende str\xf6mningen?",streamKey:"Nyckel f\xf6r livestr\xf6m",Submit:"Skicka",thankYou:"Tack f\xf6r att du anv\xe4nder {{appName}}!",token:"token",tokenAuthFailed:"Du \xe4r inte beh\xf6rig att delta i det h\xe4r samtalet.",tokenAuthFailedTitle:"Autentisering misslyckades",transcribing:"Transkriberar",unlockRoom:"",userPassword:"anv\xe4ndarl\xf6senord",WaitForHostMsg:"Konferensen {{room}} har inte b\xf6rjat \xe4n. Autentisera konferensen om du \xe4r v\xe4rd. V\xe4nta annars p\xe5 att v\xe4rden startar konferensen.",WaitForHostMsgWOk:"Konferensen {{room}} har inte b\xf6rjat \xe4n. Om du \xe4r v\xe4rd, autentisera konferensen genom att trycka p\xe5 Ok. V\xe4nta annars p\xe5 att v\xe4rden startar konferensen.",WaitingForHost:"V\xe4ntar p\xe5 v\xe4rden ...",Yes:"Ja",yourEntireScreen:"Helsk\xe4rm"},"\x05dialog":{},dialOut:{statusMessage:"\xe4r nu {{status}}"},feedback:{average:"Medel",bad:"D\xe5ligt",detailsLabel:"Ber\xe4tta mer.",good:"Bra",rateExperience:"Betygs\xe4tt din m\xf6tesupplevelse",veryBad:"Mycket d\xe5ligt",veryGood:"Mycket bra"},incomingCall:{answer:"Svara",audioCallTitle:"Inkommande samtal",decline:"F\xf6rkasta",productLabel:"fr\xe5n Jitsi Meet",videoCallTitle:"Inkommande videosamtal"},info:{accessibilityLabel:"Visa info",addPassword:"",cancelPassword:"",conferenceURL:"L\xe4nk:",country:"Land",dialANumber:"Om du vill g\xe5 med i m\xf6tet ringer du n\xe5got av dessa nummer och fyller sedan i PIN-koden.",dialInConferenceID:"PIN-kod:",dialInNotSupported:"Tyv\xe4rr st\xf6ds inte inringning just nu.",dialInNumber:"Inringning:",dialInSummaryError:"Kan inte h\xe4mta inringningsinformation just nu. F\xf6rs\xf6k igen senare.",dialInTollFree:"Avgiftsfritt nummer",genericError:"Oj d\xe5, n\xe5got gick fel.",inviteLiveStream:"Om du vill se lives\xe4ndningen av m\xf6tet klickar du h\xe4r: {{url}}",invitePhone:"",invitePhoneAlternatives:"",inviteURLFirstPartGeneral:"Du \xe4r inbjuden till ett m\xf6te.",inviteURLFirstPartPersonal:"",inviteURLSecondPart:"",liveStreamURL:"Lives\xe4ndning:",moreNumbers:"Fler nummer",noNumbers:"Inga inringningsnummer.",noPassword:"Inga enheter",noRoom:"Inget rum specificerades f\xf6r inringning.",numbers:"Inringningsnummer",password:"",title:"Dela",tooltip:"Dela l\xe4nk och information om inringning f\xf6r m\xf6tet",label:"M\xf6tesinformation"},inviteDialog:{alertText:"Det gick inte att bjuda in alla deltagare.",header:"Bjud in",searchCallOnlyPlaceholder:"Ange telefonnummer",searchPeopleOnlyPlaceholder:"Leta efter deltagare",searchPlaceholder:"Deltagare eller telefonnummer",send:"Skicka"},inlineDialogFailure:{msg:"Vi slirade lite.",retry:"F\xf6rs\xf6k igen",support:"Support",supportMsg:"Om detta forts\xe4tter h\xe4nda kontakta"},keyboardShortcuts:{focusLocal:"S\xe4tt fokus p\xe5 din videobild",focusRemote:"Fokusera p\xe5 n\xe5gon annans video",fullScreen:"Visa eller st\xe4ng fullsk\xe4rm",keyboardShortcuts:"Tangentbordsgenv\xe4gar",localRecording:"Visa eller d\xf6lj lokala inspelningsverktyg",mute:"Tysta eller aktivera din mikrofon",pushToTalk:"Tryck-f\xf6r-att-prata",raiseHand:"R\xe4ck upp eller ta ner din jag vill ha ordet-hand",showSpeakerStats:"Visa talarstatistik",toggleChat:"\xd6ppna eller st\xe4ng chatten",toggleFilmstrip:"Visa eller d\xf6lj videominiatyrer",toggleScreensharing:"V\xe4xla mellan kamera och sk\xe4rmdelning",toggleShortcuts:"Visa eller d\xf6lj kortkommandon",videoMute:"Aktivera / avaktivera din kamera"},liveStreaming:{busy:"Vi f\xf6rs\xf6ker frig\xf6ra fler str\xf6mningsresurser. F\xf6rs\xf6k igen senare.",busyTitle:"Alla str\xf6mningsresurser \xe4r upptagna",changeSignIn:"V\xe4xla anv\xe4ndarkonto.",choose:"V\xe4lj en str\xf6m",chooseCTA:"V\xe4lj ett lives\xe4ndningsalternativ. Du \xe4r nu inloggad som {{email}}.",enterStreamKey:"Skriv in l\xf6senordet till YouTube-lives\xe4ndningen h\xe4r.",error:"Str\xf6mning misslyckades. F\xf6rs\xf6k igen.",errorAPI:"Ett fel intr\xe4ffade vid \xe5tkomst till dina YouTube-s\xe4ndningar. F\xf6rs\xf6k att logga in igen.",errorLiveStreamNotEnabled:"Lives\xe4ndning \xe4r otillg\xe4nglig f\xf6r {{email}}. Aktivera lives\xe4ndning eller logga in p\xe5 ett konto d\xe4r det \xe4r aktiverat.",expandedOff:"Lives\xe4ndningen har avslutats",expandedOn:"M\xf6tet lives\xe4nds just nu p\xe5 YouTube.",expandedPending:"Lives\xe4ndningen startas ...",failedToStart:"Str\xf6mningen kunde inte p\xe5b\xf6rjas",getStreamKeyManually:"",invalidStreamKey:"Lives\xe4ndningsl\xf6senordet kan vara felaktigt.",off:"Str\xf6mning avslutad",on:"Str\xf6mma",pending:"B\xf6rja str\xf6mma ...",serviceName:"Lives\xe4ndningstj\xe4nst",signedInAs:"Du \xe4r nu inloggad som:",signIn:"Logga in med Google",signInCTA:"Logga in eller ange ditt lives\xe4ndningsl\xf6senord fr\xe5n YouTube.",signOut:"Logga ut",start:"Starta en lives\xe4ndning",streamIdHelp:"Vad \xe4r det h\xe4r?",unavailableTitle:"Lives\xe4ndning otillg\xe4nglig"},"\x05liveStreaming":{},localRecording:{clientState:{off:"Av",on:"P\xe5",unknown:"Ok\xe4nd"},dialogTitle:"Lokala inspelningsverktyg",duration:"Varaktighet",durationNA:"N/A",encoding:"Kodning",label:"LOR",labelToolTip:"Lokal inspelning aktiverad",localRecording:"Lokal inspelning",me:"Jag",messages:{engaged:"Lokal inspelning aktiverad.",finished:"Inspelningen {{token}} \xe4r avslutad. Skicka den inspelade filen till moderatorn.",finishedModerator:"Inspelningen {{token}} \xe4r avslutad. Den lokala inspelningen har sparats. Be de \xf6vriga deltagarna att dela sina inspelningar.",notModerator:"Du \xe4r inte administrat\xf6r. Du kan inte starta eller avsluta den lokala inspelningen."},moderator:"Moderator",no:"Nej",participant:"Deltagare",participantStats:"Deltagarstatistik",sessionToken:"Sessionstoken",start:"Starta inspelning",stop:"Avsluta inspelning",yes:"Ja"},lockRoomPassword:"l\xf6senord",lockRoomPasswordUppercase:"L\xf6senord",me:"jag",notify:{connectedOneMember:"{{name}} har g\xe5tt med i m\xf6tet",connectedThreePlusMembers:"{{name}} och {{count}} andra har g\xe5tt med i m\xf6tet",connectedTwoMembers:"{{first}} och {{second}} har g\xe5tt med i m\xf6tet",disconnected:"fr\xe5nkopplad",focus:"Konferensfokus",focusFail:"{{component}} inte tillg\xe4nglig - f\xf6rs\xf6ker igen om {{ms}} sek",grantedTo:"Moderatorsr\xe4ttigheter tilldelat till {{to}}!",invitedOneMember:"",invitedThreePlusMembers:"",invitedTwoMembers:"",kickParticipant:"",me:"Jag",moderator:"Moderatorsr\xe4ttigheter tilldelades!",muted:"Du har startat konversationen utan mikrofon.",mutedTitle:"Du har mikrofonen avst\xe4ngd!",mutedRemotelyTitle:"",mutedRemotelyDescription:"",passwordRemovedRemotely:"",passwordSetRemotely:"",raisedHand:"{{name}} vill prata.",somebody:"N\xe5gon",startSilentTitle:"",startSilentDescription:"",suboptimalExperienceDescription:"Hmm... din upplevelse med {{appName}} kommer inte att bli s\xe4rskilt bra. Vi f\xf6rs\xf6ker hitta s\xe4tt att f\xf6rb\xe4ttra det, men till dess anv\xe4nd en av de helt st\xf6dda webbl\xe4sarna.",suboptimalExperienceTitle:"Webbl\xe4sarvarning",unmute:"",newDeviceCameraTitle:"Ny kamera hittad",newDeviceAudioTitle:"Ny ljudenhet hittad",newDeviceAction:"Anv\xe4nd"},passwordSetRemotely:"satt av en annan deltagare",passwordDigitsOnly:"",poweredby:"drivs av",presenceStatus:{busy:"Upptagen",calling:"Ringer ...",connected:"Ansluten",connecting:"Ansluter ...",connecting2:"Ansluter* ...",disconnected:"Fr\xe5nkopplad",expired:"Utg\xe5ngen",ignored:"Ignorerad",initializingCall:"Startar samtal ...",invited:"Inbjuden",rejected:"Avvisad",ringing:"Ringer ..."},profile:{setDisplayNameLabel:"Ange ditt visningsnamn",setEmailInput:"Skriv e-postadress",setEmailLabel:"Ange din gravatar-e-postadress",title:"Profil"},recording:{authDropboxText:"Ladda upp till Dropbox",availableSpace:"Tillg\xe4ngligt utrymme: {{spaceLeft}} MB (ungef\xe4r {{duration}} minuters inspelning)",beta:"BETA",busy:"Vi arbetar med att frig\xf6ra inspelningsresurser. F\xf6rs\xf6k igen om n\xe5gra minuter.",busyTitle:"Alla inspelare \xe4r upptagna",error:"Inspelningen misslyckades. F\xf6rs\xf6k igen.",expandedOff:"Inspelningen har avslutats",expandedOn:"M\xf6tet spelas nu in.",expandedPending:"Inspelningen startar ...",failedToStart:"Inspelningen kunde inte p\xe5b\xf6rjas",fileSharingdescription:"Dela inspelningen med m\xf6tesdeltagare",live:"LIVE",loggedIn:"Inloggad som {{userName}}",off:"Inspelningen avslutades",on:"Inspelning",pending:"F\xf6rbereder inspelning av m\xf6tet ...",rec:"REC",serviceDescription:"Din inspelning kommer att sparas av inspelningstj\xe4nsten",serviceName:"Inspelningstj\xe4nst",signIn:"Logga in",signOut:"Logga ut",unavailable:"{{serviceName}} \xe4r inte tillg\xe4nglig. Vi f\xf6rs\xf6ker \xe5tg\xe4rda felet. F\xf6rs\xf6k igen senare.",unavailableTitle:"Inspelning kan inte g\xf6ras"},sectionList:{pullToRefresh:"Dra f\xf6r att uppdatera"},settings:{calendar:{about:"Kalenderintegrationen med {{appName}} anv\xe4nds f\xf6r att h\xe4mta din kalender p\xe5 ett s\xe4kert s\xe4tt s\xe5 att den kan l\xe4sa framtida h\xe4ndelser.",disconnect:"Koppla ifr\xe5n",microsoftSignIn:"Logga in med Microsoft",signedIn:"H\xe4mtar kalenderh\xe4ndelser fr\xe5n {{email}}. Tryck p\xe5 knappen nedan f\xf6r att sluta h\xe4mta kalenderh\xe4ndelser.",title:"Kalender"},devices:"Enheter",followMe:"Alla f\xf6ljer mej",language:"Spr\xe5k",loggedIn:"Inloggad som {{name}}",moderator:"Moderator",more:"Mer",name:"Namn",noDevice:"Inga enheter",selectAudioOutput:"Ljudutmatning",selectCamera:"Kamera",selectMic:"Mikrofon",startAudioMuted:"Alla b\xf6rjar tystade",startVideoMuted:"Alla b\xf6rjar osynliga",title:"Inst\xe4llningar"},settingsView:{alertOk:"OK",alertTitle:"Varning",alertURLText:"Den angivna serverl\xe4nken \xe4r felaktig",buildInfoSection:"Versionsinformation",conferenceSection:"Konferens",displayName:"Sk\xe4rmnamn",email:"E-post",header:"Inst\xe4llningar",profileSection:"Profil",serverURL:"Serverl\xe4nk",startWithAudioMuted:"Starta med ljudet avst\xe4ngt",startWithVideoMuted:"Starta med videon avst\xe4ngd",version:"Version"},share:{dialInfoText:"",mainText:""},speaker:"Talare",speakerStats:{hours:"{{count}}h",minutes:"{{count}}m",name:"Namn",seconds:"{{count}}s",speakerStats:"Talarstatistik",speakerTime:"Talartid"},startupoverlay:{policyText:" ",title:"{{app}} vill anv\xe4nda din kamera och mikrofon."},suspendedoverlay:{rejoinKeyTitle:"G\xe5 med igen",text:"Klicka p\xe5 knappen \xc5teranslut f\xf6r att koppla upp igen.",title:"Ditt videosamtal avbr\xf6ts d\xe5 din dator gick in i vilol\xe4ge."},toolbar:{accessibilityLabel:{audioOnly:"Sl\xe5 av eller p\xe5 ljudet",audioRoute:"V\xe4lj ljudenhet",callQuality:"",cc:"Sl\xe5 av eller p\xe5 undertexter",chat:"\xd6ppna eller st\xe4ng chattf\xf6nster",document:"\xd6ppna eller st\xe4ng delat dokument",feedback:"L\xe4mna feedback",fullScreen:"\xd6ppna eller st\xe4ng fullsk\xe4rm",hangup:"L\xe4mna samtalet",invite:"Bjud in andra",kick:"Sparka ut deltagare",localRecording:"\xd6ppna eller st\xe4ng lokala inspelningsverktyg",lockRoom:"Sl\xe5 av eller p\xe5 m\xf6tesl\xf6senord",moreActions:"\xd6ppna eller st\xe4ng menyn f\xf6r fler \xe5tg\xe4rder",moreActionsMenu:"Meny f\xf6r fler \xe5tg\xe4rder",mute:"Sl\xe5 av eller p\xe5 ljud",pip:"\xd6ppna eller st\xe4ng bild-i-bild-l\xe4ge",profile:"Redigera din profil",raiseHand:"R\xe4ck upp eller ta ner handen",recording:"Sl\xe5 av eller p\xe5 inspelning",remoteMute:"Tysta deltagare",Settings:"\xd6ppna eller st\xe4ng inst\xe4llningar",sharedvideo:"Sl\xe5 av eller p\xe5 Youtube-videodelning",shareRoom:"Bjud in n\xe5gon",shareYourScreen:"Sl\xe5 av eller p\xe5 sk\xe4rmdelning",shortcuts:"St\xe4ng eller \xf6ppna genv\xe4gar",show:"",speakerStats:"St\xe4ng eller \xf6ppna talarstatistik",tileView:"\xd6ppna eller st\xe4ng panelvyn",toggleCamera:"V\xe4xla kamera",videomute:"S\xe4tt p\xe5 eller st\xe4ng av mikrofonen",videoblur:""},addPeople:"L\xe4gg till personer i samtal",audioOnlyOff:"Avsluta ljudl\xe4get",audioOnlyOn:"Starta ljudl\xe4get",audioRoute:"V\xe4lj ljudenhet",authenticate:"Autentisera",callQuality:"",chat:"\xd6ppna / st\xe4ng chatten",closeChat:"St\xe4ng chatt",documentClose:"St\xe4ng delat dokument",documentOpen:"\xd6ppna delat dokument",enterFullScreen:"Visa fullsk\xe4rm",enterTileView:"\xd6ppna panelvy",exitFullScreen:"St\xe4ng fullsk\xe4rm",exitTileView:"St\xe4ng panelvy",feedback:"L\xe4mna feedback",hangup:"L\xe4mna",invite:"Bjud in andra",login:"Logga in",logout:"Logga ut",lowerYourHand:"Ta ner handen",moreActions:"Fler handlingar",mute:"Sl\xe5 av/p\xe5 ljud",openChat:"\xd6ppna chatt",pip:"\xd6ppna bild-i-bild-l\xe4ge",profile:"Redigera din profil",raiseHand:"R\xe4ck upp / ta ner din hand",raiseYourHand:"R\xe4ck upp handen",Settings:"Inst\xe4llningar",sharedvideo:"Dela en Youtube-video",shareRoom:"Bjud in n\xe5gon",shortcuts:"Visa genv\xe4gar",speakerStats:"Talarstatistik",startScreenSharing:"Starta sk\xe4rmdelning",startSubtitles:"Starta undertextning",stopScreenSharing:"Avsluta sk\xe4mdelning",stopSubtitles:"Avsluta undertextning",stopSharedVideo:"Pausa YouTube-video",talkWhileMutedPopup:"F\xf6rs\xf6ker du tala? Din mikrofon \xe4r tystad.",tileViewToggle:"\xd6ppna eller st\xe4ng panelvyn",toggleCamera:"Byta kamera",videomute:"Aktivera / avaktivera kameran",startvideoblur:"",stopvideoblur:""},transcribing:{ccButtonTooltip:"Starta / Avsluta undertexter",error:"Transkriberingen misslyckades. F\xf6rs\xf6k igen.",expandedLabel:"Transkribering \xe4r aktiverad",failedToStart:"Det gick inte att starta transkribering",labelToolTip:"M\xf6tet transkriberas",off:"Transkribering avslutades",pending:"F\xf6rbereder transkribering av m\xf6tet ...",start:"B\xf6rja visa undertexter",stop:"Sluta visa undertexter",tr:"TR"},userMedia:{androidGrantPermissions:"V\xe4lj Till\xe5t n\xe4r din webbl\xe4sare beg\xe4r \xe5tkomst.",chromeGrantPermissions:"V\xe4lj Till\xe5t n\xe4r din webbl\xe4sare beg\xe4r \xe5tkomst.",edgeGrantPermissions:"V\xe4lj Ja n\xe4r din webbl\xe4sare beg\xe4r \xe5tkomst.",electronGrantPermissions:"Till\xe5t anv\xe4ndning av din kamera och mikrofon",firefoxGrantPermissions:"V\xe4lj Dela vald enhet n\xe4r din webbl\xe4sare beg\xe4r \xe5tkomst.",iexplorerGrantPermissions:"V\xe4lj OK n\xe4r din webbl\xe4sare beg\xe4r \xe5tkomst.",nwjsGrantPermissions:"Till\xe5t anv\xe4ndning av din kamera och mikrofon",operaGrantPermissions:"V\xe4lj Till\xe5t n\xe4r din webbl\xe4sare beg\xe4r \xe5tkomst.","react-nativeGrantPermissions":"V\xe4lj Till\xe5t n\xe4r din webbl\xe4sare beg\xe4r \xe5tkomst.",safariGrantPermissions:"V\xe4lj OK n\xe4r din webbl\xe4sare beg\xe4r \xe5tkomst."},videoSIPGW:{busy:"Vi arbetar med att frig\xf6ra resurser. F\xf6rs\xf6k igen om n\xe5gra minuter.",busyTitle:"Rumtj\xe4nsten \xe4r just nu upptagen",errorAlreadyInvited:"{{displayName}} \xe4r redan inbjuden",errorInvite:"Konferensen \xe4r inte skapad \xe4n. F\xf6rs\xf6k igen senare.",errorInviteFailed:"Vi arbetar f\xf6r att l\xf6sa problemet. F\xf6rs\xf6k igen senare.",errorInviteFailedTitle:"Inbjudan till {{displayName}} misslyckades",errorInviteTitle:"Inbjudan till rum misslyckades",pending:"{{displayName}} har bjudits in"},videoStatus:{audioOnly:"AUD",audioOnlyExpanded:"Du anv\xe4nder ljudl\xe4get. L\xe4get sparar bandbredd men du kan inte se andras videor.",callQuality:"",hd:"HD",highDefinition:"High definition",labelTooiltipNoVideo:"Ingen video",labelTooltipAudioOnly:"Enbart ljud-l\xe4ge aktiverat",ld:"LD",lowDefinition:"Low definition",onlyAudioAvailable:"Enbart ljud tillg\xe4ngligt",onlyAudioSupported:"Vi st\xf6der bara ljud i denna webbl\xe4sare",p2pEnabled:"Peer to peer anv\xe4nds",p2pVideoQualityDescription:"",recHighDefinitionOnly:"F\xf6redrar high definition.",sd:"SD",standardDefinition:"Standard definition"},videothumbnail:{domute:"Tysta",flip:"V\xe4nd",kick:"Sparka ut",moderator:"Moderator",mute:"Deltagaren har avst\xe4ngd mikrofon",muted:"Tystad",remoteControl:"Fj\xe4rrkontroll",show:"",videomute:""},welcomepage:{accessibilityLabel:{join:"Tryck f\xf6r att g\xe5 med",roomname:"Skriv in rumsnamn"},appDescription:"S\xe4tt ig\xe5ng, videochatta med hela gruppen. Bjud in alla du k\xe4nner. {{app}} \xe4r en helt krypterad , open source videokonferensl\xf6sning som du kan anv\xe4nda obegr\xe4nsat utan kostnad \u2014 inte ens ett anv\xe4ndarkonto beh\xf6vs.",audioVideoSwitch:{audio:"Ljud",video:"Video"},calendar:"Kalender",connectCalendarButton:"Anslut din kalender",connectCalendarText:"Anslut din kalender f\xf6r att se alla m\xf6ten i {{app}}. L\xe4gg \xe4ven till m\xf6ten med {{provider}} i din kalender och starta dem med ett klick.",enterRoomTitle:"Starta ett nytt m\xf6te",go:"K\xd6R",join:"G\xe5 med",info:"Info",privacy:"Integritet",recentList:"Tidigare",recentListDelete:"Radera",recentListEmpty:"Inga tidigare m\xf6ten. Chatta med ditt team och hitta alla tidigare m\xf6ten d\xe4r.",reducedUIText:"",roomname:"Skriv in rumsnamn",roomnameHint:"Ange namnet eller URL:en till m\xf6tesrummet du vill ansluta till. Du kan hitta p\xe5 ett nytt namn, ber\xe4tta d\xe5 f\xf6r de andra du t\xe4nker m\xf6ta s\xe5 de anger samma namn.",sendFeedback:"Ge \xe5terkoppling",terms:"Termer",title:"S\xe4kra, v\xe4lutrustade och helt kostnadsfria videokonferenser"}}},697,[]); +__d(function(n,i,g,T,a,e,h){a.exports={en:"Ti\u1ebfng Anh",af:"Ti\xea\u0301ng Afrika",az:"Ti\xea\u0301ng Azecbaizan",bg:"Ti\u1ebfng Bulgaria",cs:"Ti\xea\u0301ng Se\u0301c",de:"Ti\u1ebfng \u0110\u1ee9c",el:"Ti\xea\u0301ng Nh\xe2\u0323t",eo:"Ti\u1ebfng Esperanto",es:"Ti\u1ebfng T\xe2y Ban Nha",fr:"Ti\u1ebfng Ph\xe1p",hy:"Ti\u1ebfng Acmenia",it:"Ti\u1ebfng \xdd",ja:"Ti\xea\u0301ng Nh\xe2\u0323t",ko:"Ti\xea\u0301ng Ha\u0300n",nb:"Ti\u1ebfng Na Uy",oc:"Ti\u1ebfng Occitan",pl:"Ti\u1ebfng Ba Lan",ptBR:"Ti\u1ebfng B\u1ed3 \u0110\xe0o Nha (Brazil)",ru:"Ti\u1ebfng Nga",sk:"Ti\u1ebfng Slovak",sl:"Ti\u1ebfng Slovenia",sv:"Ti\u1ebfng Th\u1ee5y \u0110i\u1ec3n",tr:"Ti\u1ebfng Th\u1ed5 Nh\u0129 K\u1ef3",vi:"Ti\xea\u0301ng Vi\xea\u0323t",zhCN:"Ti\u1ebfng Hoa (Trung Qu\u1ed1c)"}},698,[]); +__d(function(n,t,i,h,e,a,c){e.exports={addPeople:{add:"M\u1eddi",countryNotSupported:"Chu\u0301ng t\xf4i ch\u01b0a h\xf4\u0303 tr\u01a1\u0323 \u0111i\u0301ch \u0111\xea\u0301n na\u0300y.",countryReminder:"\u0110ang go\u0323i ra ngoa\u0300i My\u0303? \u0110a\u0309m ba\u0309o b\u0103\u0301t \u0111\xe2\u0300u b\u0103\u0300ng ma\u0303 qu\xf4\u0301c gia!",disabled:"Ba\u0323n kh\xf4ng th\xea\u0309 m\u01a1\u0300i th\xeam ng\u01b0\u01a1\u0300i.",failedToAdd:"",footerText:"Quay s\xf4\u0301 bi\u0323 t\u0103\u0301t.",loading:"\u0110ang ti\u0300m ki\xea\u0301m ng\u01b0\u01a1\u0300i ho\u0103\u0323c s\xf4\u0301 \u0111i\xea\u0323n thoa\u0323i.",loadingNumber:"\u0110ang xa\u0301c nh\xe2\u0323n s\xf4\u0301 \u0111i\xea\u0323n thoa\u0323i.",loadingPeople:"\u0110ang ti\u0300m ki\xea\u0301m ng\u01b0\u01a1\u0300i \u0111\xea\u0309 m\u01a1\u0300i",noResults:"Kh\xf4ng ti\u0300m \u0111\u01b0\u01a1\u0323c k\xea\u0301t qua\u0309 kh\u01a1\u0301p",noValidNumbers:"Xin m\u1eddi nh\u1eadp m\u1ed9t s\u1ed1 \u0111i\u1ec7n tho\u1ea1i",searchNumbers:"Th\xeam s\u1ed1 \u0111i\u1ec7n tho\u1ea1i",searchPeople:"T\xecm ng\u01b0\u1eddi",searchPeopleAndNumbers:"T\xecm ng\u01b0\u1eddi v\xe0 th\xeam s\u1ed1",telephone:"S\u1ed1:{{number}}",title:"M\u1eddi ng\u01b0\u1eddi tham d\u1ef1 cu\u1ed9c h\u1ecdp n\xe0y"},audioDevices:{bluetooth:"Bluetooth",headphones:"Tai nghe",phone:"\u0110i\u1ec7n tho\u1ea1i",speaker:"Di\u1ec5n gi\u1ea3"},audioOnly:{audioOnly:"Ch\u1ec9 \xe2m thanh"},calendarSync:{addMeetingURL:"Th\xeam m\u1ed9t li\xean k\u1ebft h\u1ecdp",confirmAddLink:"B\u1ea1n c\xf3 mu\u1ed1n th\xeam m\u1ed9t li\xean ki\u1ebft t\u1edbi s\u1ef1 ki\u1ec7n n\xe0y?",error:{appConfiguration:"T\xedch h\u1ee3p l\u1ecbch ch\u01b0a \u0111\u01b0\u1ee3c c\u1ea5u h\xecnh \u0111\xfang.",generic:"M\u1ed9t l\u1ed7i xu\u1ea5t hi\u1ec7n. Vui l\xf2ng ki\u1ec3m tra c\u1ea5u h\xecnh l\u1ecbch ho\u1eb7c th\u1eed l\xe0m t\u01b0\u01a1i l\u1ecbch.",notSignedIn:"M\u1ed9t l\u1ed7i x\u1ea3y ra khi x\xe1c th\u1ef1c \u0111\u1ec3 xem l\u1ecbch s\u1ef1 ki\u1ec7n. Vui l\xf2ng ki\u1ec3m tra c\u1ea5u h\xecnh l\u1ecbch v\xe0 th\u1eed \u0111\u0103ng nh\u1eadp l\u1ea1i."},join:"Tham gia",joinTooltip:"Tham gia cu\u1ecdc h\u1ecdp",nextMeeting:"Cu\u1ed9c h\u1ecdp ti\u1ebfp theo",noEvents:"Kh\xf4ng c\xf3 s\u1ef1 ki\u1ec7n \u0111\u01b0\u1ee3c l\xean l\u1ecbch n\xe0o ti\u1ebfp theo.",ongoingMeeting:"cu\u1ed9c h\u1ecdp \u0111ang di\u1ec5n ra",permissionButton:"M\u1edf c\u1ea5u h\xecnh",permissionMessage:"Y\xeau c\u1ea7u quy\u1ec1n truy c\u1eadp L\u1ecbch \u0111\u1ec3 th\u1ea5y cu\u1ed9c h\u1ecdp c\u1ee7a b\u1ea1n tr\xean \u1ee9ng d\u1ee5ng.",refresh:"L\xe0m t\u01b0\u01a1i l\u1ecbch",today:"H\xf4m nay"},chat:{error:"L\u1ed7i: th\xf4ng \u0111i\u1ec7p c\u1ee7a b\u1ea1n \"{{originalText}}\" kh\xf4ng \u0111\u01b0\u1ee3c g\u1eedi. Nguy\xean nh\xe2n: {{error}}",messagebox:"Nh\u1eadp m\u1ed9t th\xf4ng \u0111i\u1ec7p",nickname:{popover:"Ch\u1ecdn bi\u1ec7t danh",title:"Nh\u1eadp m\u1ed9t t\xean \u0111\u1ec3 s\u1eed d\u1ee5ng Chat"},title:"Chat"},connectingOverlay:{joiningRoom:"\u0110ang k\u1ebft n\u1ed1i t\u1edbi cu\u1ed9c h\u1ecdp c\u1ee7a b\u1ea1n..."},connection:{ATTACHED:"\u0110\xe3 \u0111\xednh k\xe8m",AUTHENTICATING:"\u0110ang x\xe1c th\u1ef1c",AUTHFAIL:"X\xe1c th\u1ef1c th\u1ea5t b\u1ea1i",CONNECTED:"\u0110\xe3 k\u1ebft n\u1ed1i",CONNECTING:"\u0110ang k\u1ebft n\u1ed1i",CONNFAIL:"K\u1ebft n\u1ed1i th\u1ea5t b\u1ea1i",DISCONNECTED:"\u0110\xe3 ng\u1eaft k\u1ebft n\u1ed1i",DISCONNECTING:"\u0110ang ng\u1eaft k\u1ebft n\u1ed1i",ERROR:"L\u1ed7i",RECONNECTING:"\u0110\xe3 x\u1ea3y ra s\u1ef1 c\u1ed1 m\u1ea1ng. \u0110ang k\u1ebft n\u1ed1i l\u1ea1i..."},connectionindicator:{address:"\u0110\u1ecba ch\u1ec9:",bandwidth:"B\u0103ng th\xf4ng \u01b0\u1edbc t\xednh:",bitrate:"T\u1ed1c \u0111\u1ed9:",bridgeCount:"M\xe1y ch\u1ee7:",connectedTo:"\u0110\xe3 k\u1ebft n\u1ed1i t\u1edbi:",framerate:"T\u1ef7 l\u1ec7 khung h\xecnh:",less:"Hi\u1ec3n th\u1ecb \xedt h\u01a1n",localaddress_0:"\u0110\u1ecba ch\u1ec9 \u0111\u1ecba ph\u01b0\u01a1ng:",localaddress_1:"C\xe1c \u0111\u1ecba ch\u1ec9 \u0111\u1ecba ph\u01b0\u01a1ng:",localport_0:"C\u1ed5ng \u0111\u1ecba ph\u01b0\u01a1ng:",localport_1:"C\xe1c c\u1ed5ng \u0111\u1ecba ph\u01b0\u01a1ng:",more:"Hi\u1ec3n th\u1ecb nhi\u1ec1u h\u01a1n",packetloss:"M\u1ea5t g\xf3i tin:",quality:{good:"T\u1ed1t",inactive:"Kh\xf4ng active",lost:"M\u1ea5t k\u1ebft n\u1ed1i",nonoptimal:"Kh\xf4ng t\u1ed1i \u01b0u",poor:"K\xe9m ch\u1ea5t l\u01b0\u1ee3ng"},remoteaddress_0:"\u0110\u1ecba ch\u1ec9 t\u1eeb xa:",remoteaddress_1:"C\xe1c \u0111\u1ecba ch\u1ec9 t\u1eeb xa:",remoteport_0:"C\u1ed5ng t\u1eeb xa:",remoteport_1:"C\xe1c c\u1ed5ng t\u1eeb xa:",resolution:"\u0110\u1ed9 ph\xe2n gi\u1ea3i:",status:"K\u1ebft n\u1ed1i:",transport_0:"V\u1eadn chuy\u1ec3n:",transport_1:"C\xe1c v\u1eadn chuy\u1ec3n:",turn:"turn"},dateUtils:{earlier:"S\u1edbm h\u01a1n",today:"H\xf4m nay",yesterday:"H\xf4m qua"},deepLinking:{appNotInstalled:"B\u1ea1n c\u1ea7n \u1ee9ng d\u1ee5ng {{app}} mobile \u0111\u1ec3 tham gia v\xe0o cu\u1ed9c h\u1ecdp n\xe0y b\u1eb1ng \u0111i\u1ec7n tho\u1ea1i.",description:"Kh\xf4ng c\xf3 g\xec di\u1ec5n ra? Ch\xfang t\xf4i \u0111ang ch\u1ea1y cu\u1ed9c h\u1ecdp tr\xean \u1ee9ng d\u1ee5ng desktop {{app}}. Th\u1eed l\u1ea1i ho\u1eb7c ch\u1ea1y tr\xean \u1ee9ng d\u1ee5ng web {{app}}.",descriptionWithoutWeb:"",downloadApp:"T\u1ea3i ph\u1ea7n m\u1ec1m",launchWebButton:"Ch\u1ea1y tr\xean web",openApp:"Ti\u1ebfp t\u1ee5c \u1ee9ng d\u1ee5ng n\xe0y",title:"Th\u1ef1c hi\u1ec7n cu\u1ed9c h\u1ecdp tr\xean {{app}}...",tryAgainButton:"Th\u1eed l\u1ea1i tr\xean desktop"},defaultLink:"v\xed d\u1ee5: {{url}}",deviceError:{cameraError:"Truy c\u1eadp camera th\u1ea5t b\u1ea1i",cameraPermission:"L\u1ed7i \u0111\u1ecdc quy\u1ec1n c\u1ee7a camera",microphoneError:"Truy c\u1eadp Microphone th\u1ea5t b\u1ea1i",microphonePermission:"L\u1ed7i \u0111\u1ecdc quy\u1ec1n c\u1ee7a microphone"},deviceSelection:{noPermission:"Kh\xf4ng \u0111\u01b0\u1ee3c c\u1ea5p quy\u1ec1n",previewUnavailable:"Xem tr\u01b0\u1edbc kh\xf4ng kh\u1ea3 d\u1ee5ng",selectADevice:"Ch\u1ecdn m\u1ed9t thi\u1ebft b\u1ecb",testAudio:"Ch\u1ea1y th\u1eed t\u1ec7p \xe2m thanh"},dialog:{accessibilityLabel:{liveStreaming:"Ph\xe1t tr\u1ef1c tuy\u1ebfn"},allow:"Cho ph\xe9p",alreadySharedVideoMsg:"",alreadySharedVideoTitle:"M\u1ed7i l\xfac ch\u1ec9 m\u1ed9t ng\u01b0\u1eddi \u0111\u01b0\u1ee3c chia s\u1ebb video.",applicationWindow:"C\u1eeda s\u1ed5 \u1ee9ng d\u1ee5ng",Back:"Quay l\u1ea1i",cameraConstraintFailedError:"Camera c\u1ee7a b\u1ea1n kh\xf4ng \u0111\xe1p \u1ee9ng \u0111\u01b0\u1ee3c m\u1ed9t s\u1ed1 y\xeau c\u1ea7u b\u1eaft bu\u1ed9c.",cameraNotFoundError:"Kh\xf4ng t\xecm th\u1ea5y camera.",cameraNotSendingData:"Kh\xf4ng truy c\u1eadp \u0111\u01b0\u1ee3c camera c\u1ee7a b\u1ea1n. Ki\u1ec3m tra xem c\xf3 \u1ee9ng dung kh\xe1c \u0111ang s\u1eed d\u1ee5ng camera kh\xf4ng, ho\u1eb7c ch\u1ecdn m\u1ed9t camera kh\xe1c trong ph\u1ea7n c\xe0i \u0111\u1eb7t, hay t\u1ea3i l\u1ea1i \u1ee9ng d\u1ee5ng",cameraNotSendingDataTitle:"Kh\xf4ng truy c\u1eadp \u0111\u01b0\u1ee3c camera",cameraPermissionDeniedError:"B\u1ea1n ch\u01b0a cho ph\xe9p s\u1eed d\u1ee5ng camera c\u1ee7a m\xecnh. B\u1ea1n v\u1eabn c\xf3 th\u1ec3 tham gia h\u1ed9i ngh\u1ecb nh\u01b0ng nh\u1eefng ng\u01b0\u1eddi kh\xe1c s\u1ebd kh\xf4ng nh\xecn th\u1ea5y b\u1ea1n. S\u1eed d\u1ee5ng n\xfat camera tr\xean thanh \u0111\u1ecba ch\u1ec9 \u0111\u1ec3 s\u1eeda l\u1ed7i n\xe0y.",cameraUnknownError:"Kh\xf4ng th\u1ec3 s\u1eed d\u1ee5ng camera v\xec l\xfd do kh\xf4ng r\xf5 r\xe0ng.",cameraUnsupportedResolutionError:"Camera c\u1ee7a b\u1ea1n kh\xf4ng h\u1ed7 tr\u1ee3 \u0111\u1ed9 ph\xe2n gi\u1ea3i video y\xeau c\u1ea7u.",Cancel:"H\u1ee7y",close:"\u0110\xf3ng",conferenceDisconnectMsg:"B\u1ea1n c\xf3 th\u1ec3 mu\u1ed1n ki\u1ec3m tra k\u1ebft n\u1ed1i m\u1ea1ng c\u1ee7a m\xecnh. \u0110ang k\u1ebft n\u1ed1i l\u1ea1i trong {{seconds}} gi\xe2y...",conferenceDisconnectTitle:"B\u1ea1n \u0111\xe3 b\u1ecb ng\u1eaft k\u1ebft n\u1ed1i.",conferenceReloadMsg:"Ch\xfang t\xf4i \u0111ang c\u1ed1 g\u1eafng s\u1eeda l\u1ed7i n\xe0y. \u0110ang k\u1ebft n\u1ed1i l\u1ea1i trong {{seconds}} gi\xe2y...",conferenceReloadTitle:"Th\u1eadt kh\xf4ng may, c\xf3 \u0111i\u1ec1u g\xec \u0111\xf3 \u0111\xe3 sai.",confirm:"X\xe1c nh\u1eadn",confirmNo:"Kh\xf4ng",confirmYes:"C\xf3",connectError:"R\u1ea5t ti\u1ebfc! \u0110\xe3 x\u1ea3y ra s\u1ef1 c\u1ed1 v\xe0 ch\xfang t\xf4i kh\xf4ng th\u1ec3 k\u1ebft n\u1ed1i v\u1edbi h\u1ed9i ngh\u1ecb.",connectErrorWithMsg:"R\u1ea5t ti\u1ebfc! \u0110\xe3 x\u1ea3y ra s\u1ef1 c\u1ed1 v\xe0 ch\xfang t\xf4i kh\xf4ng th\u1ec3 k\u1ebft n\u1ed1i v\u1edbi h\u1ed9i ngh\u1ecb: {{msg}}",connecting:"\u0110ang k\u1ebft n\u1ed1i",contactSupport:"Li\xean h\u1ec7 h\u1ed7 tr\u1ee3 k\u1ef9 thu\u1eadt",copy:"Sao ch\xe9p",dismiss:"H\u1ee7y",displayNameRequired:"",done:"Xong",enterDisplayName:"",error:"L\u1ed7i",externalInstallationMsg:"B\u1ea1n c\u1ea7n c\xe0i \u0111\u1eb7t ti\u1ec7n \xedch m\u1edf r\u1ed9ng chia s\u1ebb m\xe1y t\xednh c\u1ee7a ch\xfang t\xf4i.",externalInstallationTitle:"Y\xeau c\u1ea7u ti\u1ec7n \xedch m\u1edf r\u1ed9ng",goToStore:"\u0110i t\u1edbi c\u1eeda h\xe0ng tr\xean m\u1ea1ng",gracefulShutdown:"D\u1ecbch v\u1ee5 c\u1ee7a ch\xfang t\xf4i hi\u1ec7n \u0111ang b\u1ea3o tr\xec. Vui l\xf2ng th\u1eed l\u1ea1i sau.",IamHost:"T\xf4i l\xe0 ch\u1ee7 ngh\u1ecb",incorrectRoomLockPassword:"",incorrectPassword:"T\xean ng\u01b0\u1eddi d\xf9ng ho\u1eb7c m\u1eadt kh\u1ea9u kh\xf4ng \u0111\xfang",inlineInstallationMsg:"B\u1ea1n c\u1ea7n c\xe0i \u0111\u1eb7t ti\u1ec7n \xedch m\u1edf r\u1ed9ng chia s\u1ebb m\xe1y t\xednh c\u1ee7a ch\xfang t\xf4i.",inlineInstallExtension:"C\xe0i \u0111\u1eb7t ngay",internalError:"Duh! C\xf3 l\u1ed7i x\u1ea9y ra. L\u1ed7i c\u1ee5 th\u1ec3 l\xe0: {{error}}",internalErrorTitle:"L\u1ed7i c\u1ee5c b\u1ed9",kickMessage:"",kickParticipantButton:"\u0110\u1ea9y ra",kickParticipantDialog:"B\u1ea1n c\xf3 ch\u1eafc mu\u1ed1n \u0111\u1ea9y ng\u01b0\u1eddi n\xe0y ra?",kickParticipantTitle:"T\u1eaft ti\u1ebfng c\u1ee7a ng\u01b0\u1eddi tham d\u1ef1 n\xe0y?",kickTitle:"",liveStreaming:"Ph\xe1t tr\u1ef1c tuy\u1ebfn",liveStreamingDisabledForGuestTooltip:"Kh\xe1ch kh\xf4ng th\u1ec3 ph\xe1t tr\u1ef1c tuy\u1ebfn.",liveStreamingDisabledTooltip:"Kh\u1edfi t\u1ea1o ph\xe1t tr\u1ef1c tuy\u1ebfn \u0111\xe3 t\u1eaft.",lockMessage:"Kh\xf3a h\u1ed9i ngh\u1ecb th\u1ea5t b\u1ea1i.",lockRoom:"",lockTitle:"Kh\xf3a th\u1ea5t b\u1ea1i",logoutQuestion:"B\u1ea1n c\xf3 ch\u1eafc ch\u1eafn mu\u1ed1n \u0111\u0103ng xu\u1ea5t v\xe0 d\u1eebng h\u1ed9i ngh\u1ecb?",logoutTitle:"\u0110\u0103ng xu\u1ea5t",maxUsersLimitReached:"",maxUsersLimitReachedTitle:"",micConstraintFailedError:"Microphone c\u1ee7a b\u1ea1n kh\xf4ng \u0111\xe1p \u1ee9ng \u0111\u01b0\u1ee3c m\u1ed9t s\u1ed1 y\xeau c\u1ea7u b\u1eaft bu\u1ed9c.",micNotFoundError:"Kh\xf4ng t\xecm th\u1ea5y microphone.",micNotSendingData:"",micNotSendingDataTitle:"",micPermissionDeniedError:"B\u1ea1n ch\u01b0a c\u1ea5p ph\xe9p s\u1eed d\u1ee5ng microphone c\u1ee7a b\u1ea1n. B\u1ea1n v\u1eabn c\xf3 th\u1ec3 tham gia h\u1ed9i ngh\u1ecb nh\u01b0ng nh\u1eefng ng\u01b0\u1eddi kh\xe1c s\u1ebd kh\xf4ng nghe th\u1ea5y b\u1ea1n. S\u1eed d\u1ee5ng n\xfat camera tr\xean thanh \u0111\u1ecba ch\u1ec9 \u0111\u1ec3 s\u1eeda l\u1ed7i n\xe0y.",micUnknownError:"Kh\xf4ng th\u1ec3 s\u1eed d\u1ee5ng microphone v\xec l\xfd do kh\xf4ng r\xf5 r\xe0ng.",muteParticipantBody:"B\u1ea1n kh\xf4ng th\u1ec3 t\u1eaft ti\u1ebfng c\u1ee7a h\u1ecd, nh\u01b0ng h\u1ecd c\xf3 th\u1ec3 t\u1ef1 t\u1eaft ti\u1ebfng b\u1ea5t c\u1ee9 l\xfac n\xe0o.",muteParticipantButton:"T\u1eaft ti\u1ebfng",muteParticipantDialog:"B\u1ea1n mu\u1ed1n t\u1eaft ti\u1ebfng c\u1ee7a ng\u01b0\u1eddi n\xe0y? B\u1ea1n s\u1ebd kh\xf4ng th\u1ec3 b\u1eadt l\u1ea1i ti\u1ebfng, nh\u01b0ng h\u1ecd c\xf3 th\u1ec3 t\u1ef1 b\u1eadt l\u1ea1i ti\u1ebfng b\u1ea5t c\u1ee9 l\xfac n\xe0o.",muteParticipantTitle:"T\u1eaft ti\u1ebfng c\u1ee7a ng\u01b0\u1eddi tham d\u1ef1 n\xe0y?",Ok:"\u0110\u01b0\u1ee3c",passwordLabel:"",passwordNotSupported:"Ph\xf2ng h\u1ecdp kh\xf4ng h\u1ed7 tr\u1ee3 kh\xf3a b\u1eb1ng m\u1eadt kh\u1ea9u.",passwordNotSupportedTitle:"",passwordRequired:"",popupError:"Tr\xecnh duy\u1ec7t c\u1ee7a b\u1ea1n \u0111\xe3 ch\u1eb7n c\u1eeda s\u1ed5 pop-up t\u1eeb website hi\u1ec7n h\xe0nh. L\xe0m \u01a1n cho ph\xe9p pop-up trong c\xe0i \u0111\u1eb7t c\u1ee7a tr\xecnh duy\u1ec7t v\xe0 th\u1eed l\u1ea1i",popupErrorTitle:"C\u1eeda s\u1ed5 Pop-Up b\u1ecb ch\u1eb7n",recording:"\u0110ang ghi \xe2m",recordingDisabledForGuestTooltip:"Kh\xe1ch kh\xf4ng th\u1ec3 kh\u1edfi t\u1ea1o ghi h\xecnh.",recordingDisabledTooltip:"Kh\u1edfi \u0111\u1ed9ng ghi \xe2m \u0111\xe3 b\u1ecb t\u1eaft.",rejoinNow:"Tham gia l\u1ea1i lu\xf4n",remoteControlAllowedMessage:"{{user}} \u0111\xe3 ch\u1ea5p nh\u1eadn y\xeau c\u1ea7u \u0111i\u1ec1u khi\u1ec3n t\u1eeb xa c\u1ee7a b\u1ea1n!",remoteControlDeniedMessage:"{{user}} \u0111\xe3 t\u1eeb ch\u1ed1i y\xeau c\u1ea7u \u0111i\u1ec1u khi\u1ec3n t\u1eeb xa c\u1ee7a b\u1ea1n!",remoteControlErrorMessage:"\u0110\xe3 x\u1ea3y ra l\u1ed7i khi c\u1ed1 g\u1eafng y\xeau c\u1ea7u quy\u1ec1n \u0111i\u1ec1u khi\u1ec3n t\u1eeb xa t\u1eeb {{user}}!",remoteControlRequestMessage:"B\u1ea1n c\xf3 cho ph\xe9p {{user}} \u0111i\u1ec1u khi\u1ec3n t\u1eeb xa m\xe0n h\xecnh c\u1ee7a b\u1ea1n kh\xf4ng?",remoteControlShareScreenWarning:"L\u01b0u \xfd r\u1eb1ng n\u1ebfu b\u1ea1n \u1ea5n \"Cho ph\xe9p\" b\u1ea1n s\u1ebd chia s\u1ebb m\xe0n h\xecnh c\u1ee7a m\xecnh!",remoteControlStopMessage:"Phi\xean \u0111i\u1ec1u khi\u1ec3n t\u1eeb xa \u0111\xe3 k\u1ebft th\xfac!",remoteControlTitle:"\u0110i\u1ec1u khi\u1ec3n m\xe0n h\xecnh t\u1eeb xa",Remove:"X\xf3a",removePassword:"",removeSharedVideoMsg:"B\u1ea1n c\xf3 ch\u1eafc ch\u1eafn mu\u1ed1n x\xf3a video \u0111\xe3 chia s\u1ebb c\u1ee7a m\xecnh kh\xf4ng?",removeSharedVideoTitle:"X\xf3a video chia s\u1ebb",reservationError:"L\u1ed7i h\u1ec7 th\u1ed1ng \u0111\u1eb7t ph\xf2ng",reservationErrorMsg:"M\xe3 l\u1ed7i: {{code}}, th\xf4ng b\xe1o: {{msg}}",retry:"Th\u1eed l\u1ea1i",screenSharingFailedToInstall:"Duh! Kh\xf4ng c\xe0i \u0111\u1eb7t \u0111\u01b0\u1ee3c b\u1ed9 m\u1edf r\u1ed9ng chia s\u1ebb m\xe0n h\xecnh",screenSharingFailedToInstallTitle:"Duh! B\u1ed9 m\u1edf r\u1ed9ng chia s\u1ebb m\xe0n h\xecnh c\xf3 v\u1ea5n \u0111\u1ec1 v\u1edbi c\u1ea5u h\xecnh b\u1ea3o m\u1eadt. L\xe0m \u01a1n t\u1ea3i v\xe0 th\u1eed l\u1ea1i ",screenSharingFirefoxPermissionDeniedError:"C\xf3 g\xec \u0111\xf3 sai khi ch\xfang t\xf4i c\u1ed1 g\u1eafng chia s\u1ebb m\xe0n h\xecnh c\u1ee7a b\u1ea1n. Vui l\xf2ng \u0111\u1ea3m b\u1ea3o b\u1ea1n \u0111\xe3 cho ph\xe9p ch\xfang t\xf4i th\u1ef1c hi\u1ec7n.",screenSharingFirefoxPermissionDeniedTitle:"Ch\xfang t\xf4i kh\xf4ng th\u1ec3 chia s\u1ebb m\xe0n h\xecnh!",screenSharingPermissionDeniedError:"Kh\xf4ng th\u1ec3 truy c\u1eadp micro",serviceUnavailable:"D\u1ecbch v\u1ee5 kh\xf4ng kh\u1ea3 d\u1ee5ng",sessTerminated:"Cu\u1ed9c g\u1ecdi k\u1ebft th\xfac",Share:"Chia s\u1ebb",shareVideoLinkError:"Vui l\xf2ng cung c\u1ea5p li\xean k\u1ebft youtube ch\xednh x\xe1c.",shareVideoTitle:"Chia s\u1ebb video",shareYourScreen:"Chia s\u1ebb m\xe0n h\xecnh c\u1ee7a b\u1ea1n",shareYourScreenDisabled:"Chia s\u1ebb m\xe0n h\xecnh \u0111\xe3 t\u1eaft.",shareYourScreenDisabledForGuest:"Kh\xe1ch kh\xf4ng th\u1ec3 chia s\u1ebb m\xe0n h\xecnh.",startLiveStreaming:"B\u1eaft \u0111\u1ea7u ph\xe1t tr\u1ef1c tuy\u1ebfn",startRecording:"B\u1eaft \u0111\u1ea7u ghi \xe2m",startRemoteControlErrorMessage:"C\xf3 l\u1ed7i khi th\u1eed kh\u1edfi \u0111\u1ed9ng phi\xean \u0111i\u1ec1u khi\u1ec3n t\u1eeb xa",stopLiveStreaming:"D\u1eebng ph\xe1t tr\u1ef1c tuy\u1ebfn",stopRecording:"D\u1eebng ghi \xe2m",stopRecordingWarning:"B\u1ea1n c\xf3 ch\u1eafc ch\u1eafn mu\u1ed1n d\u1eebng ghi \xe2m kh\xf4ng?",stopStreamingWarning:"B\u1ea1n c\xf3 ch\u1eafc ch\u1eafn mu\u1ed1n d\u1eebng ph\xe1t tr\u1ef1c tuy\u1ebfn?",streamKey:"Key ph\xe1t tr\u1ef1c tuy\u1ebfn",Submit:"\u0110\u0103ng k\xfd",thankYou:"C\xe1m \u01a1n b\u1ea1n \u0111\xe3 s\u1eed d\u1ee5ng {{appName}}!",token:"m\xe3 th\xf4ng b\xe1o",tokenAuthFailed:"R\u1ea5t ti\u1ebfc, b\u1ea1n kh\xf4ng \u0111\u01b0\u1ee3c ph\xe9p tham gia cu\u1ed9c g\u1ecdi n\xe0y.",tokenAuthFailedTitle:"X\xe1c th\u1ef1c th\u1ea5t b\u1ea1i",transcribing:"\u0110ang phi\xean \xe2m",unlockRoom:"",userPassword:"m\u1eadt kh\u1ea9u ng\u01b0\u1eddi d\xf9ng",WaitForHostMsg:"Cu\u1ed9c h\u1ecdp {{room}} ch\u01b0a \u0111\u01b0\u1ee3c kh\u1edfi t\u1ea1o. N\u1ebfu b\u1ea1n l\xe0 ch\u1ee7 ngh\u1ecb vui l\xf2ng x\xe1c th\u1ef1c. N\u1ebfu kh\xf4ng, vui l\xf2ng \u0111\u1ee3i ch\u1ee7 ngh\u1ecb.",WaitForHostMsgWOk:"Cu\u1ed9c h\u1ecdp {{room}} ch\u01b0a \u0111\u01b0\u1ee3c kh\u1edfi t\u1ea1o. N\u1ebfu b\u1ea1n l\xe0 ch\u1ee7 ngh\u1ecb vui l\xf2ng nh\u1ea5n OK \u0111\u1ec3 x\xe1c th\u1ef1c. N\u1ebfu kh\xf4ng, vui l\xf2ng \u0111\u1ee3i ch\u1ee7 ngh\u1ecb.",WaitingForHost:"\u0110ang \u0111\u1ee3i ch\u1ee7 ngh\u1ecb ...",Yes:"C\xf3",yourEntireScreen:"To\xe0n b\u1ed9 m\xe0n h\xecnh c\u1ee7a b\u1ea1n"},dialOut:{statusMessage:"hi\u1ec7n \u0111ang {{status}}"},feedback:{average:"Trung b\xecnh",bad:"K\xe9m",detailsLabel:"N\xf3i v\u1edbi ch\xfang t\xf4i v\u1ec1 n\xf3.",good:"T\u1ed1t",rateExperience:"Vui l\xf2ng \u0111\xe1nh gi\xe1 tr\u1ea3i nghi\u1ec7m cu\u1ed9c h\u1ecdp c\u1ee7a b\u1ea1n.",veryBad:"R\u1ea5t K\xe9m",veryGood:"R\u1ea5t T\u1ed1t"},incomingCall:{answer:"Tr\u1ea3 l\u1eddi",audioCallTitle:"Cu\u1ed9c g\u1ecdi \u0111\u1ebfn",decline:"H\u1ee7y",productLabel:"t\u1eeb DINTE",videoCallTitle:"Cu\u1ed9c g\u1ecdi h\xecnh"},info:{accessibilityLabel:"Hi\u1ec7n th\xf4ng tin",addPassword:"",cancelPassword:"",conferenceURL:"Li\xean k\u1ebft:",country:"Qu\u1ed1c gia",dialANumber:"\u0110\u1ec3 tham gia cu\u1ed9c h\u1ecdp c\u1ee7a b\u1ea1n, quay m\u1ed9t trong c\xe1c s\u1ed1 sau v\xe0 nh\u1eadp m\xe3.",dialInConferenceID:"M\xe3:",dialInNotSupported:"Xin l\u1ed7i, quay s\u1ed1 kh\xf4ng \u0111\u01b0\u1ee3c h\u1ed7 tr\u1ee3.",dialInNumber:"Quay s\u1ed1:",dialInSummaryError:"L\u1ed7i n\u1ea1p th\xf4ng tin quay s\u1ed1. Vui l\xf2ng th\u1eed l\u1ea1i.",dialInTollFree:"Mi\u1ec5n ph\xed",genericError:"Ch\xe0, c\xf3 g\xec \u0111\xf3 kh\xf4ng \u1ed5n.",inviteLiveStream:"\u0110\u1ec3 xem ph\xe1t tr\u1ef1c tuy\u1ebfn cu\u1ed9c h\u1ecdp n\xe0y, ch\u1ecdn li\xean k\u1ebft: {{url}}",invitePhone:"",invitePhoneAlternatives:"",inviteURLFirstPartGeneral:"B\u1ea1n \u0111\u01b0\u1ee3c m\u1eddi tham gia m\u1ed9t cu\u1ed9c h\u1ecdp.",inviteURLFirstPartPersonal:"{{name}} m\u1eddi b\u1ea1n tham gia m\u1ed9t cu\u1ed9c h\u1ecdp.\n",inviteURLSecondPart:"",liveStreamURL:"Ph\xe1t tr\u1ef1c tuy\u1ebfn:",moreNumbers:"Nhi\u1ec1u s\u1ed1 h\u01a1n",noNumbers:"Kh\xf4ng c\xf3 th\xf4ng tin quay s\u1ed1.",noPassword:"Kh\xf4ng",noRoom:"Ch\u01b0a ch\u1ec9 ra ph\xf2ng h\u1ecdp \u0111\u1ec3 quay s\u1ed1 g\u1ecdi.",numbers:"S\u1ed1 \u0111\u1ec3 quay",password:"",title:"Chia s\u1ebb",tooltip:"Chia s\u1ebb li\xean k\u1ebft v\xe0 th\xf4ng tin quay s\u1ed1 c\u1ee7a cu\u1ed9c h\u1ecdp n\xe0y",label:"Th\xf4ng tin cu\u1ed9c h\u1ecdp"},inviteDialog:{alertText:"Kh\xf4ng th\u1ec3 m\u1eddi m\u1ed9t v\xe0i ng\u01b0\u1eddi.",header:"M\u1eddi",searchCallOnlyPlaceholder:"Nh\u1eadp s\u1ed1 \u0111i\u1ec7n tho\u1ea1i",searchPeopleOnlyPlaceholder:"T\xecm ki\u1ebfm ng\u01b0\u1eddi tham gia",searchPlaceholder:"Ng\u01b0\u1eddi tham gia ho\u1eb7c s\u1ed1",send:"G\u1eedi"},inlineDialogFailure:{msg:"Ch\xfang t\xf4i h\u01a1i v\u1ea5p ch\xfat.",retry:"Th\u1eed l\u1ea1i",support:"H\u1ed7 tr\u1ee3",supportMsg:"N\u1ebfu v\u1eabn x\u1ea3y ra, h\xe3y li\xean h\u1ec7 v\u1edbi"},keyboardShortcuts:{focusLocal:"T\u1eadp trung v\xe0o video c\u1ee7a b\u1ea1n",focusRemote:"T\u1eadp trung v\xe0o h\xecnh \u1ea3nh c\u1ee7a ng\u01b0\u1eddi kh\xe1c",fullScreen:"Xem ho\u1eb7c tho\xe1t ch\u1ebf \u0111\u1ed9 to\xe0n m\xe0n h\xecnh",keyboardShortcuts:"Ph\xedm t\u1eaft",localRecording:"Hi\u1ec7n ho\u1eb7c \u1ea9n Ki\u1ec3m so\xe1t ghi h\xecnh c\u1ee5c b\u1ed9",mute:"T\u1eaft ho\u1eb7c b\u1eadt microphone c\u1ee7a b\u1ea1n",pushToTalk:"\u1ea4n chu\xf4ng \u0111\u1ec3 n\xf3i chuy\u1ec7n",raiseHand:"Gi\u01a1 ho\u1eb7c H\u1ea1 tay",showSpeakerStats:"Hi\u1ec3n th\u1ecb th\u1ed1ng k\xea c\u1ee7a di\u1ec5n gi\u1ea3",toggleChat:"M\u1edf ho\u1eb7c \u0110\xf3ng cu\u1ed9c h\u1ed9i tho\u1ea1i",toggleFilmstrip:"Hi\u1ec7n ho\u1eb7c \u1ea9n h\xecnh \u1ea3nh thu nh\u1ecf",toggleScreensharing:"Chuy\u1ec3n \u0111\u1ed5i gi\u1eefa camera v\xe0 chia s\u1ebb m\xe0n h\xecnh",toggleShortcuts:"Hi\u1ec7n ho\u1eb7c \u1ea9n ph\xedm t\u1eaft",videoMute:"B\u1eadt ho\u1eb7c T\u1eaft camera c\u1ee7a b\u1ea1n"},liveStreaming:{busy:"Ch\xfang t\xf4i \u0111ang gi\u1ea3i ph\xf3ng t\xe0i nguy\xean streaming. Xin th\u1eed l\u1ea1i sau v\xe0i ph\xfat.",busyTitle:"C\xe1c thi\u1ebft b\u1ecb streaming \u0111\u1ec1u \u0111ang b\u1eadn.",changeSignIn:"Chuy\u1ec3n t\xe0i kho\u1ea3n.",choose:"Ch\u1ecdn m\u1ed9t k\xeanh ph\xe1t tr\u1ef1c tuy\u1ebfn",chooseCTA:"Ch\u1ecdn m\u1ed9t t\xf9y ch\u1ecdn tr\u1ef1c tuy\u1ebfn. B\u1ea1n \u0111ang \u0111\u0103ng nh\u1eadp theo email {{email}}.",enterStreamKey:"Nh\u1eadp key tr\u1ef1c tuy\u1ebfn Youtube c\u1ee7a b\u1ea1n.",error:"Ph\xe1t tr\u1ef1c tuy\u1ebfn th\u1ea5t b\u1ea1i. Xin vui l\xf2ng th\u1eed l\u1ea1i.",errorAPI:"L\u1ed7i x\u1ea3y ra khi truy c\u1eadp ph\xe1t s\xf3ng Youtube c\u1ee7a b\u1ea1n. Vui l\xf2ng truy c\u1eadp l\u1ea1i.",errorLiveStreamNotEnabled:"Ph\xe1t tr\u1ef1c tuy\u1ebfn kh\xf4ng \u0111\u01b0\u1ee3c b\u1eadt v\u1edbi email {{email}}. Vui l\xf2ng b\u1eadt ph\xe1t tr\u1ef1c tuy\u1ebfn ho\u1eb7c truy c\u1eadp m\u1ed9t t\xe0i kho\u1ea3n \u0111\xe3 b\u1eadt ph\xe1t tr\u1ef1c tuy\u1ebfn.",expandedOff:"Ph\xe1t tr\u1ef1c tuy\u1ebfn \u0111\xe3 d\u1eebng",expandedOn:"Cu\u1ed9c h\u1ecdp \u0111ang \u0111\u01b0\u1ee3c ph\xe1t tr\xean Youtube.",expandedPending:"Ph\xe1t tr\u1ef1c tuy\u1ebfn \u0111ang b\u1eaft \u0111\u1ea7u...",failedToStart:"Kh\xf4ng th\u1ec3 b\u1eaft \u0111\u1ea7u ph\xe1t tr\u1ef1c tuy\u1ebfn",getStreamKeyManually:"Kh\xf4ng th\u1ec3 thu nh\u1eadn ph\xe1t tr\u1ef1c tuy\u1ebfn n\xe0o. Th\u1eed l\u1ea5y m\xe3 ph\xe1t tr\u1ef1c tuy\u1ebfn t\u1eeb Youtube.",invalidStreamKey:"M\xe3 ph\xe1t tr\u1ef1c tuy\u1ebfn c\xf3 th\u1ec3 sai.",off:"Ph\xe1t tr\u1ef1c tuy\u1ebfn \u0111\xe3 d\u1eebng",on:"Ph\xe1t tr\u1ef1c tuy\u1ebfn",pending:"\u0110ang b\u1eaft \u0111\u1ea7u ph\xe1t tr\u1ef1c tuy\u1ebfn...",serviceName:"D\u1ecbch v\u1ee5 Ph\xe1t tr\u1ef1c tuy\u1ebfn",signedInAs:"B\u1ea1n \u0111ang \u0111\u0103ng nh\u1eadp theo:",signIn:"\u0110\u0103ng nh\u1eadp v\u1edbi Google",signInCTA:"\u0110\u0103ng nh\u1eadp ho\u1eb7c nh\u1eadp key ph\xe1t tr\u1ef1c tuy\u1ebfn t\u1eeb Youtube.",signOut:"\u0110\u0103ng xu\u1ea5t",start:"B\u1eaft \u0111\u1ea7u ph\xe1t tr\u1ef1c tuy\u1ebfn",streamIdHelp:"\u0110\xe2y l\xe0 g\xec?",unavailableTitle:"Kh\xf4ng Live Stream \u0111\u01b0\u1ee3c"},localRecording:{clientState:{off:"T\u1eaft",on:"B\u1eadt",unknown:"Kh\xf4ng r\xf5"},dialogTitle:"Ki\u1ec3m so\xe1t ghi h\xecnh c\u1ee5c b\u1ed9",duration:"Th\u1eddi l\u01b0\u1ee3ng",durationNA:"Kh\xf4ng",encoding:"M\xe3 h\xf3a",label:"Tr\u1eddi \u01a1i",labelToolTip:"Ghi h\xecnh c\u1ee5c b\u1ed9 \u0111ang b\u1eadn",localRecording:"Ghi h\xecnh c\u1ee5c b\u1ed9",me:"T\xf4i",messages:{engaged:"Ghi h\xecnh c\u1ee5c b\u1ed9 \u0111\xe3 b\u1eadn.",finished:"Phi\xean ghi h\xecnh {{token}} \u0111\xe3 k\u1ebft th\xfac. Vui l\xf2ng g\u1eedi t\u1ec7p ghi h\xecnh cho ng\u01b0\u1eddi \u0111i\u1ec1u h\xe0nh.",finishedModerator:"Token phi\xean ghi h\xecnh {{token}} \u0111\xe3 k\u1ebft th\xfac. Ghi h\xecnh c\u1ee5c b\u1ed9 \u0111\xe3 \u0111\u01b0\u1ee3c l\u01b0u. Vui l\xf2ng h\u1ecfi nh\u1eefng ng\u01b0\u1eddi tham gia kh\xe1c \u0111\u1ec3 cung c\u1ea5p ghi h\xecnh c\u1ee7a h\u1ecd.",notModerator:"B\u1ea1n kh\xf4ng ph\u1ea3i ng\u01b0\u1eddi \u0111i\u1ec1u h\xe0nh. B\u1ea1n kh\xf4ng th\u1ec3 kh\u1edfi t\u1ea1o ho\u1eb7c d\u1eebng ghi h\xecnh."},moderator:"Qu\u1ea3n tr\u1ecb vi\xean",no:"Kh\xf4ng",participant:"Ng\u01b0\u1eddi tham gia",participantStats:"Tr\u1ea1ng th\xe1i ng\u01b0\u1eddi tham gia",sessionToken:"M\xe3 phi\xean",start:"B\u1eaft \u0111\u1ea7u ghi \xe2m",stop:"D\u1eebng ghi \xe2m",yes:"C\xf3"},lockRoomPassword:"M\u1eadt kh\u1ea9u",lockRoomPasswordUppercase:"M\u1eadt kh\u1ea9u",me:"T\xf4i",notify:{connectedOneMember:"{{name}} \u0111\xe3 tham gia cu\u1ed9c h\u1ecdp",connectedThreePlusMembers:"{{name}} v\xe0{{count}} kh\xe1c \u0111\xe3 tham gia cu\u1ed9c h\u1ecdp",connectedTwoMembers:"{{first}} v\xe0{{second}} \u0111\xe3 tham gia cu\u1ed9c h\u1ecdp",disconnected:"\u0111\xe3 ng\u1eaft k\u1ebft n\u1ed1i",focus:"H\u1ed9i ngh\u1ecb t\u1eadp trung",focusFail:"{{component}} kh\xf4ng kh\u1ea3 d\u1ee5ng - th\u1eed l\u1ea1i trong {{ms}} gi\xe2y",grantedTo:"Quy\u1ec1n c\u1ee7a ng\u01b0\u1eddi \u0111i\u1ec1u h\xe0nh \u0111\xe3 \u0111\u01b0\u1ee3c c\u1ea5p cho {{to}}!",invitedOneMember:"{{name}} \u0111\xe3 \u0111\u01b0\u1ee3c m\u1eddi",invitedThreePlusMembers:"",invitedTwoMembers:"",kickParticipant:"",me:"T\xf4i",moderator:"Quy\u1ec1n c\u1ee7a ng\u01b0\u1eddi \u0111i\u1ec1u h\xe0nh \u0111\xe3 \u0111\u01b0\u1ee3c c\u1ea5p!",muted:"B\u1ea1n \u0111\xe3 b\u1eaft \u0111\u1ea7u cu\u1ed9c tr\xf2 chuy\u1ec7n b\u1ecb t\u1eaft ti\u1ebfng.",mutedTitle:"B\u1ea1n b\u1ecb t\u1eaft ti\u1ebfng!",mutedRemotelyTitle:"",mutedRemotelyDescription:"",passwordRemovedRemotely:"",passwordSetRemotely:"",raisedHand:"{{name}} mu\u1ed1n ph\xe1t bi\u1ec3u.",somebody:"Ai \u0111\xf3",startSilentTitle:"",startSilentDescription:"",suboptimalExperienceDescription:"Ch\xfang t\xf4i lo r\u1eb1ng tr\u1ea3i nghi\u1ec7m c\u1ee7a b\u1ea1n v\u1edbi {{appName}} \u0111ang kh\xf4ng t\u1ed1t. Ch\xfang t\xf4i \u0111ang t\xecm c\xe1ch c\u1ea3i thi\u1ec7n, hi\u1ec7n t\u1ea1i th\u1eed m\u1ed9t trong c\xe1c tr\xecnh duy\u1ec7t \u0111\u01b0\u1ee3c h\u1ed7 tr\u1ee3.",suboptimalExperienceTitle:"C\u1ea3nh b\xe1o tr\xecnh duy\u1ec7t",unmute:"",newDeviceCameraTitle:"Camera m\u1edbi \u0111\u01b0\u1ee3c ph\xe1t hi\u1ec7n",newDeviceAudioTitle:"Thi\u1ebft b\u1ecb \xe2m thanh m\u1edbi \u0111\u01b0\u1ee3c ph\xe1t hi\u1ec7n",newDeviceAction:"S\u1eed d\u1ee5ng"},passwordSetRemotely:"\u0111\u01b0\u1ee3c thi\u1ebft l\u1eadp b\u1edfi m\u1ed9t ng\u01b0\u1eddi kh\xe1c",passwordDigitsOnly:"",poweredby:"\u0110\u01b0\u1ee3c h\u1ed7 tr\u1ee3 b\u1edfi",presenceStatus:{busy:"B\u1eadn",calling:"\u0110ang g\u1ecdi...",connected:"\u0110\xe3 k\u1ebft n\u1ed1i",connecting:"\u0110ang k\u1ebft n\u1ed1i...",connecting2:"\u0110ang k\u1ebft n\u1ed1i*...",disconnected:"\u0110\xe3 ng\u1eaft k\u1ebft n\u1ed1i",expired:"H\u1ebft h\u1ea1n",ignored:"\u0110\xe3 b\u1ecf qua",initializingCall:"\u0110ang t\u1ea1o cu\u1ed9c g\u1ecdi...",invited:"\u0110\xe3 m\u1eddi",rejected:"\u0110\xe3 t\u1eeb ch\u1ed1i",ringing:"\u0110ang \u0111\u1ed5 chu\xf4ng..."},profile:{setDisplayNameLabel:"Nh\u1eadp t\xean hi\u1ec3n th\u1ecb c\u1ee7a b\u1ea1n",setEmailInput:"Nh\u1eadp \u0111\u1ecba ch\u1ec9 e-mail",setEmailLabel:"Nh\u1eadp \u0111\u1ecba ch\u1ec9 gravatar email c\u1ee7a b\u1ea1n",title:"H\u1ed3 s\u01a1"},recording:{authDropboxText:"T\u1ea3i l\xean Dropbox",availableSpace:"Dung l\u01b0\u1ee3ng c\xf2n: {{spaceLeft}} MB (kho\u1ea3ng {{duration}} ph\xfat ghi h\xecnh)",beta:"B\u1ea3n th\u1eed nghi\u1ec7m",busy:"Ch\u01b0\u01a1ng tr\xecnh \u0111ang b\u1eadn gi\u1ea3i ph\xf3ng t\xe0i nguy\xean thu h\xecnh. Xin th\u1eed l\u1ea1i sau v\xe0i ph\xfat.",busyTitle:"T\u1ea5t c\u1ea3 c\xe1c \u0111\u1ea7u ghi h\xecnh hi\u1ec7n \u0111ang b\u1eadn.",error:"Ghi \xe2m kh\xf4ng th\xe0nh c\xf4ng. Vui l\xf2ng th\u1eed l\u1ea1i.",expandedOff:"Ghi h\xecnh \u0111\xe3 d\u1eebng",expandedOn:"Cu\u1ed9c h\u1ecdp \u0111ang \u0111\u01b0\u1ee3c ghi h\xecnh.",expandedPending:"Ghi h\xecnh \u0111ang kh\u1edfi \u0111\u1ed9ng...",failedToStart:"Kh\u1edfi \u0111\u1ed9ng ghi \xe2m th\u1ea5t b\u1ea1i",fileSharingdescription:"Chia s\u1ebb ghi h\xecnh v\u1edbi ng\u01b0\u1eddi tham gia h\u1ecdp",live:"Tr\u1ef1c tuy\u1ebfn",loggedIn:"\u0110\xe3 \u0111\u0103ng nh\u1eadp d\u01b0\u1edbi t\xean {{userName}}",off:"\u0110\xe3 ng\u1eebng ghi \xe2m",on:"\u0110ang ghi \xe2m",pending:"\u0110ang chu\u1ea9n b\u1ecb \u0111\u1ec3 ghi h\xecnh cu\u1ed9c h\u1ecdp...",rec:"REC",serviceDescription:"Ghi h\xecnh c\u1ee7a b\u1ea1n s\u1ebd \u0111\u01b0\u1ee3c l\u01b0u b\u1edfi d\u1ecbch v\u1ee5 ghi h\xecnh",serviceName:"D\u1ecbch v\u1ee5 ghi h\xecnh",signIn:"\u0110\u0103ng nh\u1eadp",signOut:"\u0110\u0103ng xu\u1ea5t",unavailable:"R\u1ea5t ti\u1ebfc! D\u1ecbch v\u1ee5 {{serviceName}} \u0111ang kh\xf4ng s\u1eb5n s\xe0ng. Ch\xfang t\xf4i \u0111ang x\u1eed l\xfd v\u1ea5n \u0111\u1ec1 n\xe0y. Vui l\xf2ng th\u1eed l\u1ea1i sau.",unavailableTitle:"Ghi h\xecnh kh\xf4ng ho\u1ea1t \u0111\u1ed9ng."},sectionList:{pullToRefresh:"K\xe9o \u0111\u1ec3 l\xe0m t\u01b0\u01a1i"},settings:{calendar:{about:"{{appName}} t\xedch h\u1ee3p l\u1ecbch \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 truy c\u1eadp b\u1ea3o m\u1eadt l\u1ecbch \u0111\u1ec3 l\u1ea5y th\xf4ng tin s\u1ef1 ki\u1ec7n s\u1eafp t\u1edbi.",disconnect:"Ng\u1eaft k\u1ebft n\u1ed1i",microsoftSignIn:"\u0110\u0103ng nh\u1eadp v\u1edbi Microsoft",signedIn:"\u0110ang truy c\u1eadp l\u1ecbch s\u1ef1 ki\u1ec7n c\u1ee7a {{email}}. Ch\u1ecdn Ng\u1eaft k\u1ebft n\u1ed1i \u0111\u1ec3 d\u1eebng truy c\u1eadp l\u1ecbch s\u1ef1 ki\u1ec7n.",title:"L\u1ecbch"},devices:"Thi\u1ebft b\u1ecb",followMe:"T\u1ea5t c\u1ea3 m\u1ecdi ng\u01b0\u1eddi theo d\xf5i t\xf4i",language:"Ng\xf4n ng\u1eef",loggedIn:"\u0110\xe3 \u0111\u0103ng nh\u1eadp d\u01b0\u1edbi t\xean {{name}}",moderator:"Qu\u1ea3n tr\u1ecb vi\xean",more:"Th\xeam",name:"T\xean",noDevice:"Kh\xf4ng",selectAudioOutput:"\u0110\u1ea7u ra \xe2m thanh",selectCamera:"Camera",selectMic:"Microphone",startAudioMuted:"M\u1ecdi ng\u01b0\u1eddi b\u1eaft \u0111\u1ea7u \u0111\u1ec1u b\u1ecb t\u1eaft ti\u1ebfng",startVideoMuted:"M\u1ecdi ng\u01b0\u1eddi b\u1eaft \u0111\u1ea7u \u0111\u1ec1u b\u1ecb \u1ea9n",title:"C\xe0i \u0111\u1eb7t"},settingsView:{alertOk:"OK",alertTitle:"C\u1ea3nh b\xe1o",alertURLText:"URL m\xe1y ch\u1ee7 \u0111\xe3 nh\u1eadp kh\xf4ng h\u1ee3p l\u1ec7",buildInfoSection:"Th\xf4ng tin phi\xean b\u1ea3n",conferenceSection:"H\u1ed9i ngh\u1ecb",displayName:"T\xean hi\u1ec3n th\u1ecb",email:"Email",header:"C\xe0i \u0111\u1eb7t",profileSection:"H\u1ed3 s\u01a1",serverURL:"URL m\xe1y ch\u1ee7",startWithAudioMuted:"B\u1eaft \u0111\u1ea7u m\xe0 kh\xf4ng thu ti\u1ebfng",startWithVideoMuted:"B\u1eaft \u0111\u1ea7u kh\xf4ng thu h\xecnh",version:"Phi\xean b\u1ea3n"},share:{dialInfoText:"",mainText:"Ch\u1ecdn li\xean k\u1ebft d\u01b0\u1edbi \u0111\u1ec3 tham gia h\u1ecdp:\n{{roomUrl}}"},speaker:"Di\u1ec5n gi\u1ea3",speakerStats:{hours:"{{count}}h",minutes:"{{count}}m",name:"T\xean",seconds:"{{count}}s",speakerStats:"Th\u1ed1ng k\xea v\u1ec1 di\u1ec5n gi\u1ea3",speakerTime:"Th\u1eddi gian c\u1ee7a di\u1ec5n gi\u1ea3"},startupoverlay:{policyText:" ",title:"{{app}} c\u1ea7n s\u1eed d\u1ee5ng microphone v\xe0 camera c\u1ee7a b\u1ea1n."},suspendedoverlay:{rejoinKeyTitle:"Tham gia l\u1ea1i",text:"B\u1ea5m n\xfat Rejoin \u0111\u1ec3 k\u1ebft n\u1ed1i l\u1ea1i.",title:"Cu\u1ed9c g\u1ecdi h\xecnh c\u1ee7a b\u1ea1n b\u1ecb gi\xe1n \u0111o\u1ea1n v\xec m\xe1y t\xednh n\xe0y chuy\u1ec3n sang tr\u1ea1ng th\xe1i ng\u1ee7."},toolbar:{accessibilityLabel:{audioOnly:"Chuy\u1ec3n sang ch\u1ec9 ti\u1ebfng",audioRoute:"Ch\u1ecdn thi\u1ebft b\u1ecb \xe2m thanh",callQuality:"",cc:"M\u1edf/\u0110\xf3ng ph\u1ee5 \u0111\u1ec1",chat:"M\u1edf/\u0110\xf3ng c\u1eeda s\u1ed5 Chat",document:"M\u1edf/\u0110\xf3ng t\xe0i li\u1ec7u \u0111\u01b0\u1ee3c chia s\u1ebb",feedback:"\u0110\u1ec3 l\u1ea1i ph\u1ea3n h\u1ed3i",fullScreen:"M\u1edf/\u0110\xf3ng to\xe0n m\xe0n h\xecnh",hangup:"R\u1eddi cu\u1ed9c g\u1ecdi",invite:"M\u1eddi ng\u01b0\u1eddi tham gia",kick:"\u0110\u1ea9y ng\u01b0\u1eddi tham gia ra",localRecording:"M\u1edf/\u0110\xf3ng \u0111i\u1ec1u khi\u1ec3n ghi h\xecnh c\u1ee5c b\u1ed9",lockRoom:"M\u1edf/\u0110\xf3ng m\u1eadt kh\u1ea9u ph\xf2ng h\u1ecdp",moreActions:"M\u1edf/\u0110\xf3ng Th\xeam h\xe0nh \u0111\u1ed9ng",moreActionsMenu:"Menu Th\xeam h\xe0nh \u0111\u1ed9ng",mute:"M\u1edf/\u0110\xf3ng T\u1eaft ti\u1ebfng",pip:"M\u1edf/\u0110\xf3ng ch\u1ebf \u0111\u1ed9 H\xecnh-trong-H\xecnh",profile:"Ch\u1ec9nh s\u1eeda h\u1ed3 s\u01a1 c\xe1 nh\xe2n",raiseHand:"M\u1edf/\u0110\xf3ng Gi\u01a1 tay",recording:"M\u1edf/\u0110\xf3ng Ghi h\xecnh",remoteMute:"T\u1eaft ti\u1ebfng ng\u01b0\u1eddi tham gia",Settings:"M\u1edf/\u0110\xf3ng C\u1ea5u h\xecnh",sharedvideo:"M\u1edf/\u0110\xf3ng Chia s\u1ebb Youtube",shareRoom:"M\u1eddi ai \u0111\xf3",shareYourScreen:"M\u1edf/\u0110\xf3ng Chia s\u1ebb m\xe0n h\xecnh",shortcuts:"M\u1edf/\u0110\xf3ng Ph\xedm t\u1eaft",show:"",speakerStats:"M\u1edf/\u0110\xf3ng Th\u1ed1ng k\xea",tileView:"M\u1edf/\u0110\xf3ng Xem d\u1ea1ng l\u01b0\u1edbi",toggleCamera:"M\u1edf/\u0110\xf3ng Camera",videomute:"M\u1edf/\u0110\xf3ng Ti\u1ebfng, H\xecnh",videoblur:""},addPeople:"Th\xeam ng\u01b0\u1eddi v\xe0o cu\u1ed9c g\u1ecdi",audioOnlyOff:"Ch\u1ebf \u0111\u1ed9 ch\u1ec9 t\u1eaft ti\u1ebfng",audioOnlyOn:"B\u1eadt ch\u1ebf \u0111\u1ed9 Ch\u1ec9 \xe2m thanh",audioRoute:"Ch\u1ecdn thi\u1ebft b\u1ecb \xe2m thanh",authenticate:"X\xe1c th\u1ef1c",callQuality:"Ch\u1ec9nh ch\u1ea5t l\u01b0\u1ee3ng",chat:"M\u1edf / \u0110\xf3ng cu\u1ed9c h\u1ed9i tho\u1ea1i",closeChat:"\u0110\xf3ng Chat",documentClose:"\u0110\xf3ng t\xe0i li\u1ec7u \u0111\u01b0\u1ee3c chia s\u1ebb",documentOpen:"M\u1edf t\xe0i li\u1ec7u \u0111\u01b0\u1ee3c chia s\u1ebb",enterFullScreen:"Xem to\xe0n m\xe0n h\xecnh",enterTileView:"Xem ch\u1ebf \u0111\u1ed9 l\u01b0\u1edbi",exitFullScreen:"Tho\xe1t to\xe0n m\xe0n h\xecnh",exitTileView:"Tho\xe1t xem d\u1ea1ng l\u01b0\u1edbi",feedback:"\u0110\u1ec3 l\u1ea1i ph\u1ea3n h\u1ed3i",hangup:"Tho\xe1t",invite:"M\u1eddi ng\u01b0\u1eddi tham gia",login:"\u0110\u0103ng nh\u1eadp",logout:"\u0110\u0103ng xu\u1ea5t",lowerYourHand:"H\u1ea1 tay",moreActions:"Th\xeam h\xe0nh \u0111\u1ed9ng",mute:"T\u1eaft ti\u1ebfng / B\u1eadt ti\u1ebfng",openChat:"M\u1edf Chat",pip:"V\xe0o ch\u1ebf \u0111\u1ed9 \u1ea2nh-trong-\u1ea2nh",profile:"Ch\u1ec9nh s\u1eeda h\u1ed3 s\u01a1 c\xe1 nh\xe2n",raiseHand:"Gi\u01a1 / H\u1ea1 tay",raiseYourHand:"Gi\u01a1 tay",Settings:"C\xe0i \u0111\u1eb7t",sharedvideo:"Chia s\u1ebb YouTube video",shareRoom:"M\u1eddi ai \u0111\xf3",shortcuts:"Xem ph\xedm t\u1eaft",speakerStats:"Th\u1ed1ng k\xea v\u1ec1 di\u1ec5n gi\u1ea3",startScreenSharing:"B\u1eaft \u0111\u1ea7u chia s\u1ebb m\xe0n h\xecnh",startSubtitles:"B\u1eaft \u0111\u1ea7u ph\u1ee5 \u0111\u1ec1",stopScreenSharing:"D\u1eebng chia s\u1ebb m\xe0n h\xecnh",stopSubtitles:"D\u1eebng ph\u1ee5 \u0111\u1ec1",stopSharedVideo:"D\u1eebng Youtube",talkWhileMutedPopup:"C\u1ed1 g\u1eafng \u0111\u1ec3 n\xf3i chuy\u1ec7n? B\u1ea1n \u0111ang t\u1eaft ti\u1ebfng.",tileViewToggle:"M\u1edf/\u0110\xf3ng Xem d\u1ea1ng l\u01b0\u1edbi",toggleCamera:"M\u1edf/\u0110\xf3ng Camera",videomute:"B\u1eadt / T\u1eaft camera",startvideoblur:"",stopvideoblur:""},transcribing:{ccButtonTooltip:"Ch\u1ea1y/D\u1eebng ph\u1ee5 \u0111\u1ec1",error:"Phi\xean \xe2m kh\xf4ng th\xe0nh c\xf4ng. Vui l\xf2ng th\u1eed l\u1ea1i.",expandedLabel:"Phi\xean \xe2m \u0111ang b\u1eadt",failedToStart:"Kh\u1edfi ch\u1ea1y phi\xean \xe2m th\u1ea5t b\u1ea1i",labelToolTip:"Cu\u1ed9c h\u1ecdp \u0111ang \u0111\u01b0\u1ee3c phi\xean \xe2m",off:"Phi\xean \xe2m \u0111\xe3 d\u1eebng",pending:"\u0110ang chu\u1ea9n b\u1ecb phi\xean \xe2m cu\u1ed9c h\u1ecdp...",start:"B\u1eaft \u0111\u1ea7u hi\u1ec3n th\u1ecb ph\u1ee5 \u0111\u1ec1",stop:"D\u1eebng hi\u1ec3n th\u1ecb ph\u1ee5 \u0111\u1ec1",tr:"TR"},userMedia:{androidGrantPermissions:"Ch\u1ecdn Cho ph\xe9p khi tr\xecnh duy\u1ec7t c\u1ee7a b\u1ea1n y\xeau c\u1ea7u c\u1ea5p ph\xe9p.",chromeGrantPermissions:"Ch\u1ecdn Cho ph\xe9p khi tr\xecnh duy\u1ec7t c\u1ee7a b\u1ea1n y\xeau c\u1ea7u c\u1ea5p ph\xe9p.",edgeGrantPermissions:"Ch\u1ecdn C\xf3 khi tr\xecnh duy\u1ec7t c\u1ee7a b\u1ea1n y\xeau c\u1ea7u c\u1ea5p ph\xe9p.",electronGrantPermissions:"Vui l\xf2ng c\u1ea5p quy\u1ec1n s\u1eed d\u1ee5ng camera v\xe0 microphone c\u1ee7a b\u1ea1n",firefoxGrantPermissions:"Ch\u1ecdn Chia s\u1ebb thi\u1ebft b\u1ecb \u0111\xe3 ch\u1ecdn khi tr\xecnh duy\u1ec7t c\u1ee7a b\u1ea1n y\xeau c\u1ea7u c\u1ea5p ph\xe9p.",iexplorerGrantPermissions:"Ch\u1ecdn C\xf3 khi tr\xecnh duy\u1ec7t c\u1ee7a b\u1ea1n y\xeau c\u1ea7u c\u1ea5p ph\xe9p.",nwjsGrantPermissions:"Vui l\xf2ng c\u1ea5p quy\u1ec1n s\u1eed d\u1ee5ng camera v\xe0 microphone c\u1ee7a b\u1ea1n",operaGrantPermissions:"Ch\u1ecdn Cho ph\xe9p khi tr\xecnh duy\u1ec7t c\u1ee7a b\u1ea1n y\xeau c\u1ea7u c\u1ea5p ph\xe9p.","react-nativeGrantPermissions":"Ch\u1ecdn Cho ph\xe9p khi tr\xecnh duy\u1ec7t c\u1ee7a b\u1ea1n y\xeau c\u1ea7u c\u1ea5p ph\xe9p.",safariGrantPermissions:"Ch\u1ecdn C\xf3 khi tr\xecnh duy\u1ec7t c\u1ee7a b\u1ea1n y\xeau c\u1ea7u c\u1ea5p ph\xe9p."},videoSIPGW:{busy:"Ch\xfang t\xf4i \u0111ang gi\u1ea3i ph\xf3ng t\xe0i nguy\xean. Vui l\xf2ng th\u1eed l\u1ea1i sau v\xe0i ph\xfat.",busyTitle:"D\u1ecbch v\u1ee5 Ph\xf2ng h\u1ecdp \u0111ang b\u1eadn",errorAlreadyInvited:"{{displayName}} \u0111\xe3 \u0111\u01b0\u1ee3c m\u1eddi",errorInvite:"Cu\u1ed9c h\u1ecdp ch\u01b0a \u0111\u01b0\u1ee3c kh\u1edfi t\u1ea1o. Vui l\xf2ng th\u1eed l\u1ea1i.",errorInviteFailed:"Ch\xfang t\xf4i \u0111ang x\u1eed l\xfd v\u1ea5n \u0111\u1ec1. Vui l\xf2ng th\u1eed l\u1ea1i sau.",errorInviteFailedTitle:"M\u1eddi {{displayName}} th\u1ea5t b\u1ea1i",errorInviteTitle:"L\u1ed7i m\u1eddi h\u1ecdp",pending:"{{displayName}} \u0111\xe3 \u0111\u01b0\u1ee3c m\u1eddi"},videoStatus:{audioOnly:"AUD",audioOnlyExpanded:"B\u1ea1n \u0111ang \u1edf ch\u1ebf \u0111\u1ed9 ch\u1ec9 ti\u1ebfng. Ch\u1ebf \u0111\u1ed9 n\xe0y gi\u1ea3m b\u0103ng th\xf4ng nh\u01b0ng kh\xf4ng th\u1ea5y h\xecnh \u1ea3nh ng\u01b0\u1eddi kh\xe1c.",callQuality:"",hd:"HD",highDefinition:"HD",labelTooiltipNoVideo:"Kh\xf4ng h\xecnh \u1ea3nh",labelTooltipAudioOnly:"Ch\u1ebf \u0111\u1ed9 ch\u1ec9 ti\u1ebfng \u0111\xe3 b\u1eadt",ld:"LD",lowDefinition:"Ph\xe2n gi\u1ea3i th\u1ea5p",onlyAudioAvailable:"Ch\u1ec9 c\xf3 \xe2m thanh s\u1eb5n s\xe0ng",onlyAudioSupported:"Ch\u1ec9 h\u1ed7 tr\u1ee3 \xe2m thanh tr\xean tr\xecnh duy\u1ec7t n\xe0y.",p2pEnabled:"Peer to Peer \u0111\xe3 b\u1eadt",p2pVideoQualityDescription:"",recHighDefinitionOnly:"\u01afu ti\xean ph\xe2n gi\u1ea3i HD.",sd:"SD",standardDefinition:"Ph\xe2n gi\u1ea3i SD"},videothumbnail:{domute:"T\u1eaft ti\u1ebfng",flip:"L\u1eadt",kick:"\u0110\u1ea9y ra",moderator:"Qu\u1ea3n tr\u1ecb vi\xean",mute:"Ng\u01b0\u1eddi tham gia b\u1ecb t\u1eaft ti\u1ebfng",muted:"\u0110\xe3 t\u1eaft ti\u1ebfng",remoteControl:"\u0110i\u1ec1u khi\u1ec3n t\u1eeb xa",show:"",videomute:""},welcomepage:{accessibilityLabel:{join:"Ch\u1ea1m \u0111\u1ec3 tham gia",roomname:"Nh\u1eadp t\xean ph\xf2ng"},appDescription:"Ti\u1ebfp t\u1ee5c, chat h\xecnh v\u1edbi to\xe0n b\u1ed9 nh\xf3m. Th\u1ef1c t\u1ebf, m\u1eddi ng\u01b0\u1eddi b\u1ea1n bi\u1ebft. {{app}} \u0111\u01b0\u1ee3c m\xe3 h\xf3a, 100% gi\u1ea3i ph\xe1p h\u1ed9i ngh\u1ecb m\xe3 m\u1edf m\xe0 b\u1ea1n c\xf3 th\u1ec3 s\u1eed d\u1ee5ng h\xe0ng ng\xe0y, mi\u1ec5n ph\xed.",audioVideoSwitch:{audio:"Ti\u1ebfng",video:"H\xecnh \u1ea3nh"},calendar:"L\u1ecbch",connectCalendarButton:"K\u1ebft n\u1ed1i L\u1ecbch c\u1ee7a b\u1ea1n",connectCalendarText:"K\u1ebft n\u1ed1i l\u1ecbch c\u1ee7a b\u1ea1n \u0111\u1ec3 xem t\u1ea5t c\u1ea3 c\xe1c cu\u1ed9c h\u1ecdp {{app}}. Th\xeam, th\xeam cu\u1ed9c h\u1ecdp {{provider}} v\xe0o l\u1ecbch c\u1ee7a b\u1ea1n v\xe0 b\u1eaft \u0111\u1ea7u.",enterRoomTitle:"B\u1eaft \u0111\u1ea7u cu\u1ed9c h\u1ecdp m\u1edbi",go:"\u0110I",join:"THAM GIA",info:"Th\xf4ng tin",privacy:"B\u1ea3o m\u1eadt",recentList:"Hi\u1ec7n t\u1ea1i",recentListDelete:"X\xf3a",recentListEmpty:"Danh s\xe1ch cu\u1ed9c h\u1ecdp r\u1ed7ng. Th\u1ef1c hi\u1ec7n cu\u1ed9c h\u1ecdp v\xe0 b\u1ea1n s\u1ebd th\u1ea5y danh s\xe1ch hi\u1ec7n t\u1ea1i \u0111\xe2y.",reducedUIText:"",roomname:"Nh\u1eadp t\xean ph\xf2ng",roomnameHint:"Th\xeam t\xean ho\u1eb7c URL c\u1ee7a ph\xf2ng h\u1ecdp b\u1ea1n mu\u1ed1n tham gia. Ban c\xf3 th\u1ec3 t\u1ea1o t\xean ph\xf2ng, g\u1eedi cho ng\u01b0\u1eddi b\u1ea1n mu\u1ed1n m\u1eddi \u0111\u1ec3 h\u1ecd s\u1eed d\u1ee5ng t\xean \u0111\xf3.",sendFeedback:"G\u1eedi g\xf3p \xfd",terms:"\u0110i\u1ec1u ki\u1ec7n",title:"B\u1ea3o m\u1eadt, \u0111\u1ea7y \u0111\u1ee7 t\xednh n\u0103ng v\xe0 mi\u1ec5n ph\xed ho\xe0n to\xe0n"}}},699,[]); +__d(function(e,r,f,h,n,o,s){n.exports={en:"\u82f1\u8bed",af:"\u5357\u975e\u8377\u5170\u8bed",bg:"\u4fdd\u52a0\u5229\u4e9a\u8bed",ca:"\u52a0\u6cf0\u7f57\u5c3c\u4e9a\u8bed",cs:"\u6377\u514b\u8bed",de:"\u5fb7\u8bed",el:"\u5e0c\u814a\u8bed",enGB:"\u82f1\u8bed\uff08\u82f1\u56fd\uff09",eo:"\u4e16\u754c\u8bed",es:"\u897f\u73ed\u7259\u8bed",esUS:"\u897f\u73ed\u7259\u8bed\uff08\u62c9\u4e01\u7f8e\u6d32\uff09",fi:"\u82ac\u5170\u8bed",fr:"\u6cd5\u8bed",frCA:"\u6cd5\u8bed\uff08\u52a0\u62ff\u5927\uff09",hr:"\u514b\u7f57\u5730\u4e9a\u8bed",hu:"\u5308\u7259\u5229\u8bed",hy:"\u4e9a\u7f8e\u5c3c\u4e9a\u8bed",it:"\u610f\u5927\u5229\u8bed",ja:"\u65e5\u8bed",ko:"\u97e9\u8bed",nl:"\u8377\u5170\u8bed",oc:"\u6b27\u897f\u5766\u8bed",pl:"\u6ce2\u5170\u8bed",ptBR:"\u8461\u8404\u7259\u8bed\uff08\u5df4\u897f\uff09",ru:"\u4fc4\u8bed",sv:"\u745e\u5178\u8bed",tr:"\u571f\u8033\u5176\u8bed",vi:"\u8d8a\u5357\u8bed",zhCN:"\u4e2d\u6587(\u4e2d\u56fd)",zhTW:"\u4e2d\u6587\uff08\u53f0\u6e7e\uff09"}},700,[]); +__d(function(e,o,i,t,r,n,a){r.exports={addPeople:{add:"\u9080\u8bf7",countryNotSupported:"\u76ee\u7684\u56fd\u5bb6\u6682\u65f6\u672a\u88ab\u652f\u6301\u3002",countryReminder:"\u5c1d\u8bd5\u5728\u7f8e\u56fd\u4e4b\u5916\u901a\u8bdd\uff1f\u8bf7\u68c0\u67e5\u56fd\u5bb6\u4ee3\u7801\uff01",disabled:"\u60a8\u4e0d\u80fd\u9080\u8bf7\u6210\u5458",failedToAdd:"\u6dfb\u52a0\u53c2\u4e0e\u8005\u5931\u8d25",footerText:"\u7981\u6b62\u62e8\u53f7\u3002",loading:"\u67e5\u627e\u8054\u7cfb\u4eba\u6216\u8005\u7535\u8bdd\u53f7\u7801",loadingNumber:"\u9a8c\u8bc1\u7535\u8bdd\u53f7\u7801",loadingPeople:"\u6b63\u5728\u641c\u7d22\u9700\u8981\u9080\u8bf7\u7684\u6210\u5458",noResults:"\u6ca1\u6709\u7b26\u5408\u8981\u6c42\u7684\u641c\u7d22\u7ed3\u679c",noValidNumbers:"\u8bf7\u8f93\u5165\u4e00\u4e2a\u7535\u8bdd\u53f7\u7801",searchNumbers:"\u6dfb\u52a0\u7535\u8bdd\u6210\u5458",searchPeople:"\u67e5\u627e\u4eba\u5458",searchPeopleAndNumbers:"\u641c\u7d22\u6210\u5458\u6216\u6dfb\u52a0\u5176\u7535\u8bdd\u53f7\u7801",telephone:"\u7535\u8bdd\u53f7\u7801\uff1a {{number}}",title:"\u9080\u8bf7\u6210\u5458\u4e0e\u4f1a"},audioDevices:{bluetooth:"\u84dd\u7259",headphones:"\u8033\u673a",phone:"\u7535\u8bdd",speaker:"\u53d1\u8a00\u4eba",none:"\u6ca1\u6709\u53ef\u7528\u7684\u97f3\u9891\u8bbe\u5907"},audioOnly:{audioOnly:"\u4f4e\u5e26\u5bbd"},calendarSync:{addMeetingURL:"\u6dfb\u52a0\u4f1a\u8bae\u94fe\u63a5",confirmAddLink:"\u662f\u5426\u5728\u6b64\u4e8b\u4ef6\u4e2d\u6dfb\u52a0Jitsi\u94fe\u63a5",error:{appConfiguration:"\u65e5\u5386\u96c6\u6210\u914d\u7f6e\u4e0d\u6b63\u786e\u3002",generic:"\u53d1\u751f\u9519\u8bef\u3002\u8bf7\u68c0\u67e5\u65e5\u5386\u8bbe\u7f6e\u6216\u5c1d\u8bd5\u5237\u65b0\u65e5\u5386\u3002",notSignedIn:"\u67e5\u770b\u65e5\u5386\u4e8b\u4ef6\u9a8c\u8bc1\u51fa\u9519\u3002\u8bf7\u68c0\u67e5\u65e5\u5386\u8bbe\u7f6e\uff0c\u7136\u540e\u518d\u6b21\u5c1d\u8bd5\u767b\u5f55\u3002"},join:"\u52a0\u5165",joinTooltip:"\u52a0\u5165\u4f1a\u8bae",nextMeeting:"\u4e0b\u4e00\u573a\u4f1a\u8bae",noEvents:"\u8fd1\u671f\u65e0\u6d3b\u52a8\u3002",ongoingMeeting:"\u6b63\u5728\u8fdb\u884c\u7684\u4f1a\u8bae",permissionButton:"\u8bbe\u7f6e",permissionMessage:"\u5728\u5e94\u7528\u4e2d\u67e5\u770b\u4f1a\u8bae\u9700\u8981\u65e5\u5386\u6743\u9650\u3002",refresh:"\u5237\u65b0\u65e5\u5386",today:"\u4eca\u65e5"},chat:{error:"\u9519\u8bef\uff1a\u6d88\u606f\u672a\u53d1\u9001\u3002\u539f\u56e0\uff1a{{error}}",fieldPlaceHolder:"\u5728\u8fd9\u91cc\u8f93\u5165\u4f60\u7684\u4fe1\u606f",messagebox:"\u8f93\u5165\u6d88\u606f",messageTo:"\u4e0e {{recipient}} \u7684\u79c1\u4eba\u804a\u5929",noMessagesMessage:"\u4f1a\u8bae\u4e2d\u8fd8\u6ca1\u6709\u6d88\u606f\uff0c\u5728\u8fd9\u91cc\u5f00\u59cb\u8c08\u8bdd\u5427\uff01",nickname:{popover:"\u9009\u62e9\u4e00\u4e2a\u6635\u79f0",title:"\u8f93\u5165\u4e00\u4e2a\u6635\u79f0\u7528\u4e8e\u804a\u5929"},privateNotice:"\u4e0e {{recipient}} \u7684\u79c1\u4eba\u804a\u5929",title:"\u804a\u5929",you:"\u60a8"},chromeExtensionBanner:{installExtensionText:"",buttonText:"",dontShowAgain:""},connectingOverlay:{joiningRoom:"\u4f1a\u8bae\u8fde\u63a5\u4e2d..."},connection:{ATTACHED:"\u5df2\u63a5\u5165",AUTHENTICATING:"\u8ba4\u8bc1\u4e2d",AUTHFAIL:"\u8ba4\u8bc1\u5931\u8d25",CONNECTED:"\u8fde\u63a5\u4e2d...",CONNECTING:"\u8fde\u63a5\u4e2d",CONNFAIL:"\u8fde\u63a5\u5931\u8d25",DISCONNECTED:"\u5df2\u65ad\u5f00\u8fde\u63a5",DISCONNECTING:"\u65ad\u5f00\u8fde\u63a5\u4e2d",ERROR:"\u9519\u8bef",RECONNECTING:"\u7f51\u7edc\u9519\u8bef\uff0c\u91cd\u8fde\u4e2d\u3002\u3002\u3002"},connectionindicator:{address:"\u5730\u5740\uff1a",bandwidth:"\u4f30\u8ba1\u5e26\u5bbd\uff1a",bitrate:"\u6bd4\u7279\u7387\uff1a",bridgeCount:"\u670d\u52a1\u5668\u6570\u91cf:",connectedTo:"\u8fde\u63a5\u5230:",framerate:"\u5e27\u7387\uff1a",less:"\u663e\u793a\u66f4\u5c11",localaddress:"\u672c\u5730\u5730\u5740\uff1a",localport:"\u672c\u5730\u7aef\u53e3\uff1a",more:"\u663e\u793a\u66f4\u591a",packetloss:"\u4e22\u5305\uff1a",quality:{good:"\u597d",inactive:"\u672a\u6fc0\u6d3b",lost:"\u6389\u7ebf",nonoptimal:"\u4e2d",poor:"\u5dee"},remoteaddress:"\u8fdc\u7a0b\u5730\u5740\uff1a",remoteport:"\u8fdc\u7a0b\u7aef\u53e3\uff1a",resolution:"\u5206\u8fa8\u7387\uff1a",status:"\u8fde\u63a5\uff1a",transport:"\u4f20\u8f93\uff1a"},dateUtils:{earlier:"\u66f4\u65e9\u7684",today:"\u4eca\u65e5",yesterday:"\u6628\u5929"},deepLinking:{appNotInstalled:"\u60a8\u9700\u8981\u5728\u624b\u673a\u4e0a\u5b89\u88c5 {{app}} \u8fd9\u4e2a\u5e94\u7528\u624d\u80fd\u53c2\u52a0\u4f1a\u8bae\u3002",description:"\u65e0\u54cd\u5e94\uff1f\u6b63\u5728\u5c1d\u8bd5\u542f\u52a8\u684c\u9762{{app}}\u53ec\u5f00\u4f1a\u8bae\u3002\u91cd\u8bd5\u6216\u542f\u52a8\u7f51\u9875\u7248{{app}}\u53ec\u5f00\u4f1a\u8bae\u3002",descriptionWithoutWeb:"\u65e0\u54cd\u5e94\uff1f\u5df2\u5c1d\u8bd5\u542f\u52a8\u5ba2\u6237\u7aef{{app}}\u53ec\u5f00\u4f1a\u8bae\u3002",downloadApp:"\u4e0b\u8f7d\u5e94\u7528",launchWebButton:"\u5728\u7f51\u9875\u4e2d\u542f\u52a8",openApp:"\u7ee7\u7eed",title:"\u5728 {{app}}\u4e2d\u767b\u5f55\u4f1a\u8bae...",tryAgainButton:"\u8bf7\u5c1d\u8bd5\u91cd\u542f\u684c\u9762\u7248\u5e94\u7528\u7a0b\u5e8f"},defaultLink:"\u4f8b\u5982 {{url}}",defaultNickname:"\u4f8b\u5982 \u661f\u89c6\u901a",deviceError:{cameraError:"\u65e0\u6cd5\u8bbf\u95ee\u60a8\u7684\u6444\u50cf\u5934",cameraPermission:"\u65e0\u6cd5\u83b7\u5f97\u6444\u50cf\u5934\u8bbf\u95ee\u6743\u9650",microphoneError:"\u65e0\u6cd5\u8bbf\u95ee\u60a8\u7684\u9ea6\u514b\u98ce",microphonePermission:"\u65e0\u6cd5\u83b7\u5f97\u9ea6\u514b\u98ce\u8bbf\u95ee\u6743\u9650"},deviceSelection:{noPermission:"\u672a\u6388\u6743\u9650",previewUnavailable:"\u9884\u89c8\u4e0d\u53ef\u7528",selectADevice:"\u9009\u62e9\u8bbe\u5907",testAudio:"\u64ad\u653e\u6d4b\u8bd5\u97f3\u9891"},dialog:{accessibilityLabel:{liveStreaming:"\u6d41\u5a92\u4f53\u76f4\u64ad"},allow:"\u5141\u8bb8",alreadySharedVideoMsg:"\u53e6\u4e00\u4f4d\u53c2\u4e0e\u8005\u5df2\u7ecf\u5728\u5206\u4eab\u89c6\u9891\u4e86\uff0c\u8fd9\u6b21\u4f1a\u8bae\u4e00\u6b21\u53ea\u5141\u8bb8\u4e00\u4e2a\u4eba\u5206\u4eab\u89c6\u9891\u3002",alreadySharedVideoTitle:"\u53ea\u80fd\u5171\u4eab\u4e00\u4e2a\u89c6\u9891",applicationWindow:"\u5e94\u7528\u7a97\u53e3",Back:"\u8fd4\u56de",cameraConstraintFailedError:"\u4f60\u7684\u6444\u50cf\u5934\u4e0d\u6ee1\u8db3\u8981\u6c42\u3002",cameraNotFoundError:"\u672a\u53d1\u73b0\u6444\u50cf\u5934",cameraNotSendingData:"\u6211\u4eec\u65e0\u6cd5\u8bbf\u95ee\u60a8\u7684\u6444\u50cf\u5934\u3002\u8bf7\u68c0\u67e5\u662f\u5426\u6709\u5176\u4ed6\u7a0b\u5e8f\u6b63\u5728\u4f7f\u7528\u8fd9\u4e2a\u8bbe\u5907\uff0c\u5426\u5219\u8bf7\u4ece\u8bbe\u5b9a\u83dc\u5355\u91cc\u9009\u62e9\u5176\u4ed6\u8bbe\u5907\u6216\u8005\u91cd\u65b0\u52a0\u8f7d\u3002",cameraNotSendingDataTitle:"\u65e0\u6cd5\u8bbf\u95ee\u6444\u50cf\u5934",cameraPermissionDeniedError:"\u60a8\u672a\u6388\u6743\u4f7f\u7528\u60a8\u7684\u6444\u50cf\u5934\u3002\u60a8\u4ecd\u53ef\u53c2\u52a0\u4f1a\u8bae\u4f46\u662f\u5176\u4ed6\u4eba\u65e0\u6cd5\u770b\u5230\uff0c\u4f7f\u7528\u5730\u5740\u680f\u91cc\u7684\u6444\u50cf\u5934\u6309\u94ae\u6765\u542f\u52a8\u6444\u50cf\u5934\u3002",cameraUnknownError:"\u7531\u4e8e\u672a\u77e5\u9519\u8bef\uff0c\u65e0\u6cd5\u4f7f\u7528\u6444\u50cf\u5934\u3002",cameraUnsupportedResolutionError:"\u60a8\u7684\u6444\u50cf\u5934\u4e0d\u652f\u6301\u6240\u9700\u5206\u8fa8\u7387\u3002",Cancel:"\u53d6\u6d88",close:"\u5173\u95ed",conferenceDisconnectMsg:"\u8bf7\u68c0\u67e5\u4f60\u7684\u7f51\u7edc\u8fde\u63a5\u3002\u5c06\u4f1a\u5728 {{seconds}} \u79d2\u540e\u91cd\u65b0\u8fde\u63a5\u2026",conferenceDisconnectTitle:"\u4f60\u5df2\u7ecf\u65ad\u5f00\u3002",conferenceReloadMsg:"\u4e0d\u597d\u610f\u601d\uff0c\u51fa\u9519\u4e86\u3002",conferenceReloadTitle:"\u4e0d\u597d\u610f\u601d\uff0c\u51fa\u9519\u4e86\u3002",confirm:"\u786e\u8ba4",confirmNo:"\u5426",confirmYes:"\u662f",connectError:"\u53d1\u751f\u9519\u8bef\uff0c\u65e0\u6cd5\u8fde\u63a5\u81f3\u4f1a\u8bae\uff01",connectErrorWithMsg:"\u53d1\u751f\u9519\u8bef\uff0c\u65e0\u6cd5\u8fde\u63a5\u81f3\u4f1a\u8bae: {{msg}}",connecting:"\u8fde\u63a5\u4e2d",contactSupport:"\u8054\u7cfb\u6211\u4eec",copy:"\u590d\u5236",dismiss:"\u89e3\u9664,\u79bb\u5f00",displayNameRequired:"\u55e8! \u4f60\u53eb\u4ec0\u4e48\u540d\u5b57\uff1f",done:"\u5b8c\u6210",enterDisplayName:"\u8bf7\u8f93\u5165\u60a8\u7684\u540d\u79f0",error:"\u9519\u8bef",externalInstallationMsg:"\u60a8\u9700\u8981\u5b89\u88c5\u684c\u9762\u5171\u4eab\u6269\u5c55",externalInstallationTitle:"\u9700\u8981\u6269\u5c55\u7a0b\u5e8f",goToStore:"\u8df3\u8f6c\u81f3\u5e94\u7528\u5546\u5e97",gracefulShutdown:"\u670d\u52a1\u5668\u6b63\u5728\u7ef4\u62a4\uff0c\u8bf7\u7a0d\u540e\u518d\u8bd5\u3002",IamHost:"\u6211\u662f\u4e3b\u6301\u4eba\u3002",incorrectRoomLockPassword:"\u5bc6\u7801\u9519\u8bef",incorrectPassword:"\u9519\u8bef\u7684\u7528\u6237\u540d\u6216\u8005\u5bc6\u7801",inlineInstallationMsg:"\u60a8\u9700\u8981\u5b89\u88c5\u684c\u9762\u5171\u4eab\u6269\u5c55",inlineInstallExtension:"\u7acb\u523b\u5b89\u88c5",internalError:"\u54ce\u5440\uff01\u51fa\u73b0\u4e86\u70b9\u95ee\u9898\u3002\u9519\u8bef\uff1a {{error}}",internalErrorTitle:"\u5185\u90e8\u9519\u8bef",kickMessage:"\u4f60\u53ef\u4ee5\u8054\u7cfb{{participantDisplayName}}\u4ee5\u4e86\u89e3\u66f4\u591a\u4fe1\u606f\u3002",kickParticipantButton:"\u8e22\u9664",kickParticipantDialog:"\u786e\u5b9a\u8981\u8e22\u9664\u6b64\u6210\u5458\u5417\uff1f",kickParticipantTitle:"\u9759\u97f3\u8be5\u4e0e\u4f1a\u8005\u5417\uff1f",kickTitle:"\u5bf9\u4e0d\u8d77\uff0c\u60a8\u88ab {{participantDisplayName}} \u8e22\u51fa\u4e86\u4f1a\u8bae\u3002",liveStreaming:"\u6d41\u5a92\u4f53\u76f4\u64ad\u4e2d",liveStreamingDisabledForGuestTooltip:"\u8bbf\u5ba2\u65e0\u6cd5\u542f\u52a8\u6d41\u5a92\u4f53\u76f4\u64ad\u3002",liveStreamingDisabledTooltip:"\u7981\u6b62\u542f\u52a8\u6d41\u5a92\u4f53\u3002",lockMessage:"\u9501\u5b9a\u4f1a\u8bae\u5931\u8d25\u3002",lockRoom:"\u6dfb\u52a0\u4f1a\u8bae $t(lockRoomPasswordUppercase)",lockTitle:"\u9501\u5b9a\u5931\u8d25",logoutQuestion:"\u4f60\u786e\u5b9a\u8981\u9000\u51fa\u5e76\u505c\u6b62\u4f1a\u8bae\u5417\uff1f",logoutTitle:"\u767b\u51fa",maxUsersLimitReached:"\u5df2\u8fbe\u5230\u53c2\u4e0e\u4eba\u6570\u4e0a\u9650\u3002\u623f\u95f4\u5df2\u6ee1\u3002\u8bf7\u8054\u7cfb\u623f\u4e3b\u6216\u7a0d\u540e\u518d\u8bd5\uff01",maxUsersLimitReachedTitle:"\u5df2\u8fbe\u5230\u53c2\u4e0e\u4eba\u6570\u4e0a\u9650\u3002",micConstraintFailedError:"\u60a8\u7684\u9ea6\u514b\u98ce\u4e0d\u7b26\u5408\u8981\u6c42\u3002",micNotFoundError:"\u672a\u53d1\u73b0\u9ea6\u514b\u98ce",micNotSendingData:"\u5728\u60a8\u7684\u7535\u8111\u8bbe\u7f6e\u4e2d\u5f00\u542f\u9ea6\u514b\u98ce\u5e76\u8c03\u6574\u97f3\u91cf",micNotSendingDataTitle:"\u60a8\u7684\u9ea6\u514b\u98ce\u88ab\u7cfb\u7edf\u9759\u97f3",micPermissionDeniedError:"\u60a8\u672a\u6388\u6743\u4f7f\u7528\u9ea6\u514b\u98ce\uff0c\u60a8\u4ecd\u53ef\u53c2\u52a0\u4f1a\u8bae\u4f46\u662f\u5176\u4ed6\u4eba\u65e0\u6cd5\u542c\u5230\uff0c\u4f7f\u7528\u5730\u5740\u680f\u91cc\u7684\u6444\u50cf\u5934\u6309\u94ae\u6765\u542f\u52a8\u9ea6\u514b\u98ce\u3002",micUnknownError:"\u672a\u77e5\u9519\u8bef\uff0c\u9ea6\u514b\u98ce\u4e0d\u53ef\u7528\u3002",muteParticipantBody:"\u60a8\u65e0\u6cd5\u5bf9\u4ed6\u4eec\u89e3\u9664\u9759\u97f3\uff0c\u4f46\u662f\u4ed6\u4eec\u81ea\u5df1\u53ef\u4ee5\u968f\u65f6\u89e3\u9664\u9759\u97f3\u3002",muteParticipantButton:"\u9759\u97f3",muteParticipantDialog:"\u60a8\u786e\u5b9a\u8981\u5c06\u6b64\u53c2\u4e0e\u8005\u9759\u97f3\u5417\uff1f\u60a8\u5c06\u65e0\u6cd5\u53d6\u6d88\u9759\u97f3\uff0c\u4f46\u4ed6\u4eec\u53ef\u4ee5\u968f\u65f6\u53d6\u6d88\u9759\u97f3\u3002",muteParticipantTitle:"\u9759\u97f3\u8be5\u4e0e\u4f1a\u8005\u5417\uff1f",Ok:"\u597d\u7684",passwordLabel:"$t(lockRoomPasswordUppercase)",passwordNotSupported:"\u4e0d\u652f\u6301\u8bbe\u7f6e\u4f1a\u8bae\u5bc6\u7801\u3002",passwordNotSupportedTitle:"\u4e0d\u652f\u6301 $t(lockRoomPasswordUppercase) not supported",passwordRequired:"\u9700 $t(lockRoomPasswordUppercase)",popupError:"\u60a8\u7684\u6d4f\u89c8\u5668\u5728\u6b64\u7f51\u7ad9\u4e0a\u963b\u6b62\u4e86\u5f39\u51fa\u5f0f\u7a97\u53e3\u3002\u8bf7\u5728\u6d4f\u89c8\u5668\u7684\u5b89\u5168\u8bbe\u7f6e\u4e2d\u6253\u5f00\u5b83\u5e76\u518d\u8bd5\u4e00\u6b21\u3002",popupErrorTitle:"\u5f39\u51fa\u7a97\u53e3\u88ab\u62e6\u622a",recording:"\u5f55\u5236\u4e2d",recordingDisabledForGuestTooltip:"\u8bbf\u5ba2\u65e0\u6cd5\u5f00\u542f\u5f55\u5236\u3002",recordingDisabledTooltip:"\u5f00\u59cb\u5f55\u5236\u88ab\u7981\u7528\u3002",rejoinNow:"\u9a6c\u4e0a\u91cd\u65b0\u52a0\u5165",remoteControlAllowedMessage:"{{user}} \u63a5\u53d7\u4e86\u60a8\u7684\u8fdc\u7a0b\u63a7\u5236\u8bf7\u6c42",remoteControlDeniedMessage:"{{user}} \u62d2\u7edd\u4e86\u60a8\u7684\u8fdc\u7a0b\u63a7\u5236\u8bf7\u6c42",remoteControlErrorMessage:"\u5728\u5c1d\u8bd5\u5411{{user}}\u8bf7\u6c42\u8fdc\u7a0b\u63a7\u5236\u6743\u9650\u65f6\u53d1\u751f\u4e86\u4e00\u4e2a\u9519\u8bef\uff01",remoteControlRequestMessage:"\u4f60\u5141\u8bb8 {{user}} \u8fdc\u7a0b\u63a7\u5236\u4f60\u7684\u684c\u9762\u5417?",remoteControlShareScreenWarning:"\u6ce8\u610f\uff1a\u5982\u679c\u6309\u4e0b\u201c\u5141\u8bb8\u201d\u4f60\u5c06\u5171\u4eab\u4f60\u7684\u5c4f\u5e55\uff01",remoteControlStopMessage:"\u8fdc\u7a0b\u63a7\u5236\u7ed3\u675f\uff01",remoteControlTitle:"\u8fdc\u7a0b\u684c\u9762\u63a7\u5236",Remove:"\u79fb\u9664",removePassword:"\u79fb\u9664 $t(lockRoomPassword)",removeSharedVideoMsg:"\u60a8\u786e\u5b9a\u8981\u79fb\u9664\u5171\u4eab\u7684\u89c6\u9891\u5417\uff1f",removeSharedVideoTitle:"\u79fb\u9664\u5171\u4eab\u7684\u89c6\u9891",reservationError:"\u9884\u5b9a\u7cfb\u7edf\u9519\u8bef",reservationErrorMsg:"\u9519\u8bef\u4ee3\u53f7: {{code}}, \u63d0\u793a\u4fe1\u606f: {{msg}}",retry:"\u91cd\u8bd5",screenSharingFailedToInstall:"\u54ce\u5440\uff01\u5c4f\u5e55\u5171\u4eab\u63d2\u4ef6\u5b89\u88c5\u5931\u8d25\u3002",screenSharingFailedToInstallTitle:"\u5c4f\u5e55\u5171\u4eab\u63d2\u4ef6\u5b89\u88c5\u5931\u8d25",screenSharingFirefoxPermissionDeniedError:"\u5c1d\u8bd5\u8fdb\u884c\u5c4f\u5e55\u5171\u4eab\u65f6\u9047\u5230\u4e86\u95ee\u9898\u3002\u8bf7\u786e\u8ba4\u7ed9\u4e88\u4e86\u76f8\u5e94\u7684\u6743\u9650\u3002",screenSharingFirefoxPermissionDeniedTitle:"\u54ce\u5440\uff01\u6211\u4eec\u65e0\u6cd5\u542f\u52a8\u5c4f\u5e55\u5171\u4eab\uff01",screenSharingPermissionDeniedError:"\u54ce\u5440\uff01\u60a8\u7684\u5c4f\u5e55\u5171\u4eab\u63d2\u4ef6\u4f3c\u4e4e\u9047\u5230\u4e86\u6743\u9650\u95ee\u9898\u3002\u8bf7\u5237\u65b0\u9875\u9762\u5e76\u91cd\u8bd5\u3002",sendPrivateMessage:"",sendPrivateMessageCancel:"",sendPrivateMessageOk:"",sendPrivateMessageTitle:"",serviceUnavailable:"\u670d\u52a1\u4e0d\u53ef\u7528",sessTerminated:"\u4f1a\u8bdd\u7ed3\u675f",Share:"\u5206\u4eab",shareVideoLinkError:"\u8bf7\u63d0\u4f9b\u6b63\u786e\u7684youtube\u94fe\u63a5\u3002",shareVideoTitle:"\u5206\u4eab\u89c6\u9891",shareYourScreen:"\u5171\u4eab\u4f60\u7684\u5c4f\u5e55",shareYourScreenDisabled:"\u7981\u6b62\u5171\u4eab\u5c4f\u5e55\u3002",shareYourScreenDisabledForGuest:"\u8bbf\u5ba2\u65e0\u6cd5\u5171\u4eab\u5c4f\u5e55\u3002",startLiveStreaming:"\u5f00\u59cb\u76f4\u64ad",startRecording:"\u5f00\u59cb\u5f55\u5236",startRemoteControlErrorMessage:"\u5c1d\u8bd5\u5f00\u59cb\u8fdc\u7a0b\u63a7\u5236\u4f1a\u8bdd\u65f6\u53d1\u751f\u4e86\u4e00\u4e2a\u9519\u8bef\uff01",stopLiveStreaming:"\u505c\u6b62\u6d41\u5a92\u4f53\u76f4\u64ad",stopRecording:"\u505c\u6b62\u5f55\u5236",stopRecordingWarning:"\u786e\u5b9a\u8981\u505c\u6b62\u5f55\u5236\u5417",stopStreamingWarning:"\u786e\u5b9a\u8981\u505c\u6b62\u6d41\u5a92\u4f53\u76f4\u64ad\u5417\uff1f",streamKey:"\u6d41\u5a92\u4f53\u76f4\u64ad\u5bc6\u94a5",Submit:"\u63d0\u4ea4",thankYou:"\u611f\u8c22\u4f7f\u7528{{appName}}\uff01",token:"\u6807\u8bc6",tokenAuthFailed:"\u5bf9\u4e0d\u8d77\uff0c\u60a8\u672a\u88ab\u5141\u8bb8\u53c2\u52a0\u6b64\u4f1a\u8bae\u3002",tokenAuthFailedTitle:"\u8ba4\u8bc1\u5931\u8d25",transcribing:"\u8f6c\u5f55\u4e2d",unlockRoom:"",userPassword:"\u7528\u6237\u5bc6\u7801",WaitForHostMsg:"\u4f1a\u8bae{{room}}\u5c1a\u672a\u5f00\u59cb\u3002\u5982\u679c\u60a8\u662f\u4e3b\u6301\u4eba\uff0c\u8bf7\u8fdb\u884c\u8eab\u4efd\u9a8c\u8bc1\u3002\u5426\u5219\uff0c\u8bf7\u7b49\u5f85\u4e3b\u6301\u4eba\u7684\u5230\u6765\u3002",WaitForHostMsgWOk:"\u4f1a\u8bae{{room}}\u5c1a\u672a\u5f00\u59cb\u3002\u5982\u679c\u60a8\u662f\u4e3b\u6301\u4eba\uff0c\u8bf7\u8fdb\u884c\u8eab\u4efd\u9a8c\u8bc1\u3002\u5426\u5219\uff0c\u8bf7\u7b49\u5f85\u4e3b\u6301\u4eba\u7684\u5230\u6765\u3002",WaitingForHost:"\u7b49\u5f85\u4e3b\u6301\u4eba\u3002\u3002\u3002",Yes:"\u662f",yourEntireScreen:"\u4f60\u7684\u6574\u4e2a\u5c4f\u5e55"},dialOut:{statusMessage:"\u73b0\u5728\u72b6\u6001\u4e3a {{status}}"},documentSharing:{title:""},feedback:{average:"\u5e73\u5747",bad:"\u5dee",detailsLabel:"\u63d0\u4f9b\u66f4\u591a\u5efa\u8bae\u6216\u610f\u89c1\u3002",good:"\u597d",rateExperience:"\u8bf7\u8bc4\u4ef7\u60a8\u7684\u4f1a\u8bae\u4f53\u9a8c\u3002",veryBad:"\u975e\u5e38\u5dee",veryGood:"\u975e\u5e38\u597d"},incomingCall:{answer:"\u56de\u590d",audioCallTitle:"\u6765\u7535",decline:"\u89e3\u9664,\u79bb\u5f00",productLabel:"\u6765\u81eaJitsi Meet",videoCallTitle:"\u89c6\u9891\u6765\u7535"},info:{accessibilityLabel:"\u663e\u793a\u4fe1\u606f",addPassword:"",cancelPassword:"",conferenceURL:"\u94fe\u63a5\uff1a",country:"\u56fd\u5bb6",dialANumber:"\u82e5\u8981\u52a0\u5165\u4f1a\u8bae\uff0c\u8bf7\u62e8\u6253\u5176\u4e2d\u4e00\u4e2a\u53f7\u7801\uff0c\u7136\u540e\u8f93\u5165pin\u7801\u3002",dialInConferenceID:"PIN:",dialInNotSupported:"\u62b1\u6b49\uff0c\u4e0d\u652f\u6301\u7535\u8bdd\u547c\u5165\u3002",dialInNumber:"\u62e8\u5165\uff1a",dialInSummaryError:"\u83b7\u53d6\u62e8\u5165\u4fe1\u606f\u65f6\u51fa\u9519\u3002\u8bf7\u7a0d\u540e\u518d\u8bd5\u3002",dialInTollFree:"\u514d\u8d39\u7535\u8bdd",genericError:"\u7cdf\u7cd5\uff01\u51fa\u9519\u4e86\u3002",inviteLiveStream:"\u82e5\u8981\u67e5\u770b\u6b64\u4f1a\u8bae\u7684\u5b9e\u65f6\u76f4\u64ad\uff0c\u8bf7\u5355\u51fb\u6b64\u94fe\u63a5\uff1a{{url}}",invitePhone:"",invitePhoneAlternatives:"",inviteURLFirstPartGeneral:"\u60a8\u88ab\u9080\u8bf7\u52a0\u5165\u4e00\u4e2a\u4f1a\u8bae\u3002",inviteURLFirstPartPersonal:"{{name}} \u6b63\u5728\u9080\u8bf7\u60a8\u52a0\u5165\u4e00\u4e2a\u4f1a\u8bae\u3002\n",inviteURLSecondPart:"",liveStreamURL:"\u76f4\u64ad\uff1a",moreNumbers:"\u66f4\u591a\u6210\u5458",noNumbers:"\u65e0\u547c\u5165\u53f7\u7801\u3002",noPassword:"\u672a\u53d1\u73b0\u8bbe\u5907",noRoom:"\u6ca1\u6709\u6307\u5b9a\u8981\u547c\u5165\u7684\u623f\u95f4\u3002",numbers:"\u547c\u5165\u53f7\u7801",password:"",title:"\u5206\u4eab",tooltip:"\u5171\u4eab\u6b64\u4f1a\u8bae\u7684\u94fe\u63a5\u548c\u62e8\u5165\u4fe1\u606f",label:"\u4f1a\u8bae\u4fe1\u606f"},inviteDialog:{alertText:"\u9080\u8bf7\u6210\u5458\u5931\u8d25\u3002",header:"\u9080\u8bf7",searchCallOnlyPlaceholder:"\u8f93\u5165\u7535\u8bdd\u53f7\u7801",searchPeopleOnlyPlaceholder:"\u67e5\u627e\u6210\u5458",searchPlaceholder:"\u6210\u5458\u6216\u7535\u8bdd\u53f7\u7801",send:"\u53d1\u9001"},inlineDialogFailure:{msg:"\u8c8c\u4f3c\u51fa\u4e86\u70b9\u95ee\u9898\u3002",retry:"\u91cd\u8bd5",support:"\u652f\u6301",supportMsg:"\u5982\u679c\u6b64\u4e8b\u591a\u6b21\u53d1\u751f\uff0c\u8bf7\u8054\u7cfb"},keyboardShortcuts:{focusLocal:"\u5207\u6362\u5230\u672c\u5730\u89c6\u9891\u4e0a",focusRemote:"\u663e\u793a\u5bf9\u65b9\u7684\u89c6\u9891",fullScreen:"\u5f00\u542f / \u9000\u51fa \u5168\u5c4f",keyboardShortcuts:"\u5feb\u6377\u952e",localRecording:"\u663e\u793a / \u9690\u85cf \u672c\u5730\u5f55\u5236\u9009\u9879",mute:"\u9759\u97f3\u6216\u53d6\u6d88\u9759\u97f3",pushToTalk:"\u6309\u4f4f\u8bf4\u8bdd",raiseHand:"\u7533\u8bf7\u6216\u53d6\u6d88\u53d1\u8a00",showSpeakerStats:"\u67e5\u770b\u626c\u58f0\u5668\u72b6\u6001",toggleChat:"\u6253\u5f00\u6216\u5173\u95ed\u804a\u5929",toggleFilmstrip:"\u663e\u793a/\u9690\u85cf \u89c6\u9891\u7f29\u7565\u56fe",toggleScreensharing:"\u5728\u6444\u50cf\u5934\u548c\u5c4f\u5e55\u5171\u4eab\u4e4b\u95f4\u5207\u6362",toggleShortcuts:"\u663e\u793a/\u9690\u85cf \u5feb\u6377\u952e",videoMute:"\u5f00\u542f\u6216\u5173\u95ed\u89c6\u9891",videoQuality:"\u7ba1\u7406\u901a\u8bdd\u8d28\u91cf"},liveStreaming:{busy:"\u6211\u4eec\u6b63\u5728\u91ca\u653e\u4e32\u6d41\u8d44\u6e90\u3002\u8bf7\u51e0\u5206\u949f\u540e\u518d\u8bd5\u3002",busyTitle:"\u6240\u6709\u7684\u4e32\u6d41\u8bbe\u5907\u6b63\u5fd9",changeSignIn:"\u5207\u6362\u5e10\u53f7",choose:"\u9009\u62e9\u4e00\u4e2a\u76f4\u64ad\u6d41",chooseCTA:"\u8bf7\u9009\u62e9\u76f4\u64ad\u9009\u9879\u3002\u60a8\u73b0\u5728\u4ee5 {{email}} \u8eab\u4efd\u767b\u5f55\u3002",enterStreamKey:"\u5728\u6b64\u8f93\u5165\u60a8\u7684 YouTube \u4e32\u6d41\u5bc6\u94a5\u3002",error:"\u6d41\u5a92\u4f53\u76f4\u64ad\u5931\u8d25\u3002\u8bf7\u91cd\u8bd5\u3002",errorAPI:"\u5728\u8bbf\u95ee\u60a8\u7684 YouTube \u76f4\u64ad\u670d\u52a1\u65f6\u53d1\u751f\u95ee\u9898\u3002\u8bf7\u91cd\u65b0\u767b\u5f55\u3002",errorLiveStreamNotEnabled:"{{email}} \u672a\u542f\u7528\u6d41\u5a92\u4f53\u76f4\u64ad\u3002\u8bf7\u4f7f\u7528\u6d41\u5a92\u4f53\u76f4\u64ad\u6216\u767b\u5f55\u542f\u7528\u4e86\u6d41\u5a92\u4f53\u76f4\u64ad\u7684\u5e10\u6237\u3002",expandedOff:"\u6d41\u5a92\u4f53\u76f4\u64ad\u5df2\u88ab\u5173\u95ed",expandedOn:"\u4f1a\u8bae\u5f53\u524d\u6b63\u5728YouTube\u4e0a\u76f4\u64ad\u3002",expandedPending:"\u542f\u52a8\u76f4\u64ad\u4e2d\u3002\u3002\u3002",failedToStart:"\u76f4\u64ad\u670d\u52a1\u542f\u52a8\u5931\u8d25",getStreamKeyManually:"\u6211\u4eec\u65e0\u6cd5\u83b7\u53d6\u4efb\u4f55\u76f4\u64ad\u3002\u5c1d\u8bd5\u4eceYouTube\u83b7\u53d6\u6d41\u5a92\u4f53\u76f4\u64ad\u5bc6\u94a5\u3002",invalidStreamKey:"\u6d41\u5a92\u4f53\u76f4\u64ad\u5bc6\u94a5\u53ef\u80fd\u4e0d\u6b63\u786e\u3002",off:"\u6d41\u5a92\u4f53\u76f4\u64ad\u5df2\u505c\u6b62",offBy:"",on:"\u6d41\u5a92\u4f53\u76f4\u64ad\u4e2d",onBy:"",pending:"\u542f\u52a8\u6d41\u5a92\u4f53\u3002\u3002\u3002",serviceName:"\u76f4\u64ad\u670d\u52a1",signedInAs:"\u60a8\u5f53\u524d\u767b\u5f55\u4e3a\uff1a",signIn:"\u4f7f\u7528\u8c37\u6b4c\u767b\u5f55",signInCTA:"\u8f93\u5165 YouTube \u4e32\u6d41\u5bc6\u94a5\u6216\u8005\u767b\u5f55 YouTube \u5e10\u53f7\u3002",signOut:"\u767b\u51fa",start:"\u5f00\u59cb\u76f4\u64ad",streamIdHelp:"\u8fd9\u662f\u4ec0\u4e48\uff1f",unavailableTitle:"\u6d41\u5a92\u4f53\u76f4\u64ad\u4e0d\u53ef\u7528"},localRecording:{clientState:{off:"\u5173",on:"\u5f00",unknown:"\u672a\u77e5"},dialogTitle:"\u672c\u5730\u5f55\u5236\u63a7\u5236",duration:"\u5468\u671f",durationNA:"N/A",encoding:"\u7f16\u7801\u4e2d",label:"\u5f55\u97f3",labelToolTip:"\u672c\u5730\u5f55\u97f3\u88ab\u5360\u7528",localRecording:"\u672c\u5730\u5f55\u5236\u4e2d",me:"\u81ea\u5df1",messages:{engaged:"\u672c\u5730\u5f55\u97f3\u88ab\u5360\u7528\u3002",finished:"\u4f1a\u8bdd {{token}} \u5f55\u5236\u7ed3\u675f\u3002\u8bf7\u5c06\u5f55\u5236\u7684\u6587\u4ef6\u53d1\u9001\u7ed9\u4e3b\u6301\u4eba\u3002",finishedModerator:"\u4f1a\u8bdd {{token}} \u5f55\u5236\u7ed3\u675f\u3002\u672c\u5730\u5f55\u5236\u5df2\u4fdd\u5b58\u3002\u8bf7\u8981\u6c42\u5176\u4ed6\u53c2\u4e0e\u8005\u63d0\u4ea4\u4ed6\u4eec\u7684\u5f55\u97f3\u3002",notModerator:"\u4f60\u4e0d\u662f\u4e3b\u6301\u4eba.\u4f60\u4e0d\u80fd\u5f00\u542f\u6216\u5173\u95ed\u672c\u5730\u5f55\u97f3"},moderator:"\u7ba1\u7406\u5458",no:"\u5426",participant:"\u4e0e\u4f1a\u8005",participantStats:"\u4e0e\u4f1a\u8005\u72b6\u6001",sessionToken:"\u4f1a\u8bdd\u4ee4\u724c",start:"\u5f00\u59cb\u5f55\u5236",stop:"\u505c\u6b62\u5f55\u5236",yes:"\u662f"},lockRoomPassword:"\u5bc6\u7801",lockRoomPasswordUppercase:"\u5bc6\u7801",me:"\u6211",notify:{connectedOneMember:"{{name}} \u52a0\u5165\u4f1a\u8bae",connectedThreePlusMembers:"{{name}} \u548c\u5176\u4ed6 {{count}} \u4eba\u52a0\u5165\u4f1a\u8bae",connectedTwoMembers:"{{first}} \u548c {{second}} \u52a0\u5165\u4f1a\u8bae",disconnected:"\u5df2\u65ad\u5f00\u8fde\u63a5",focus:"\u4f1a\u8bae\u805a\u7126",focusFail:"{{component}} \u4e0d\u53ef\u7528 - \u5728{{ms}}\u79d2\u540e\u91cd\u8bd5",grantedTo:"\u4e3b\u6301\u6743\u9650\u5df2\u6388\u4e88{{to}}\uff01",invitedOneMember:"{{name}} \u5df2\u88ab\u9080\u8bf7",invitedThreePlusMembers:"",invitedTwoMembers:"",kickParticipant:"",me:"\u81ea\u5df1",moderator:"\u5df2\u6388\u6743\u4e3b\u6301\u4eba\u6743\u9650\uff01",muted:"\u60a8\u5df2\u7ecf\u5f00\u59cb\u4e86\u901a\u8bdd\uff0c\u5e76\u5904\u4e8e\u9759\u97f3\u72b6\u6001\u3002",mutedTitle:"\u60a8\u5df2\u88ab\u9759\u97f3\uff01",mutedRemotelyTitle:"",mutedRemotelyDescription:"",passwordRemovedRemotely:"",passwordSetRemotely:"",raisedHand:"{{name}} \u60f3\u8981\u53d1\u8a00\u3002",somebody:"\u67d0\u4eba",startSilentTitle:"",startSilentDescription:"",suboptimalBrowserWarning:"",suboptimalExperienceTitle:"\u6d4f\u89c8\u5668\u8b66\u544a",unmute:"",newDeviceCameraTitle:"\u68c0\u6d4b\u5230\u65b0\u76f8\u673a",newDeviceAudioTitle:"\u68c0\u6d4b\u5230\u65b0\u97f3\u9891\u8bbe\u5907",newDeviceAction:"\u4f7f\u7528"},passwordSetRemotely:"\u7531\u5176\u4ed6\u4e0e\u4f1a\u8005\u8bbe\u7f6e",passwordDigitsOnly:"",poweredby:"\u6280\u672f\u652f\u6301",presenceStatus:{busy:"\u5fd9\u788c",calling:"\u901a\u8bdd\u4e2d...",connected:"\u8fde\u63a5\u4e2d...",connecting:"\u8fde\u63a5\u4e2d...",connecting2:"\u8fde\u63a5\u4e2d...",disconnected:"\u5df2\u65ad\u5f00\u8fde\u63a5",expired:"\u5df2\u8fc7\u671f",ignored:"\u5df2\u5ffd\u7565",initializingCall:"\u521d\u59cb\u5316\u547c\u53eb...",invited:"\u9080\u8bf7",rejected:"\u62d2\u7edd",ringing:"\u54cd\u94c3..."},profile:{setDisplayNameLabel:"\u8bbe\u5b9a\u60a8\u7684\u663e\u793a\u540d\u79f0",setEmailInput:"\u8f93\u5165\u60a8\u7684\u90ae\u7bb1",setEmailLabel:"\u8bbe\u7f6e\u60a8\u7684\u4e2a\u4eba\u5168\u7403\u7edf\u4e00\u6807\u8bc6\u90ae\u7bb1",title:"\u7b80\u4ecb"},raisedHand:"\u8bf7\u6c42\u53d1\u8a00",recording:{authDropboxText:"\u4e0a\u4f20\u81f3Dropbox",availableSpace:"\u53ef\u7528\u7a7a\u95f4\uff1a{{spaceLeft}} MB\uff08\u5927\u7ea6\u53ef\u5f55 {{duration}} \u5206\u949f\uff09 ",beta:"BETA",busy:"\u6211\u4eec\u6b63\u5728\u91ca\u653e\u5f55\u5236\u8d44\u6e90\u3002\u8bf7\u51e0\u5206\u949f\u4e4b\u540e\u518d\u8bd5\u3002",busyTitle:"\u6240\u6709\u7684\u5f55\u5236\u8bbe\u5907\u6b63\u5fd9",error:"\u5f55\u5236\u5931\u8d25\u3002\u8bf7\u91cd\u65b0\u5c1d\u8bd5\u3002",expandedOff:"\u5f55\u5236\u5df2\u505c\u6b62",expandedOn:"\u6b64\u4f1a\u8bae\u6b63\u5728\u88ab\u5f55\u5236\u3002",expandedPending:"\u5f55\u5236\u6b63\u5728\u542f\u52a8...",failedToStart:"\u5f55\u5236\u542f\u52a8\u5931\u8d25",fileSharingdescription:"\u8ddf\u4e0e\u4f1a\u8005\u5206\u4eab\u5f55\u5236",live:"\u76f4\u64ad",loggedIn:"\u4ee5 {{userName}} \u767b\u5f55",off:"\u5f55\u5236\u5df2\u505c\u6b62",offBy:"",on:"\u5f55\u5236\u4e2d",onBy:"",pending:"\u6b63\u5728\u51c6\u5907\u5f55\u5236\u4f1a\u8bae....",rec:"REC\u5f55\u5236",serviceDescription:"\u5f55\u5236\u670d\u52a1\u5c06\u4fdd\u5b58\u60a8\u7684\u5f55\u5236",serviceName:"\u5f55\u5236\u670d\u52a1",signIn:"\u767b\u5f55",signOut:"\u767b\u51fa",unavailable:"\u5662\uff01{{serviceName}} \u6682\u65f6\u65e0\u6cd5\u4f7f\u7528\u3002\u6211\u4eec\u6b63\u5728\u89e3\u51b3\u6b64\u95ee\u9898\u3002\u8bf7\u7a0d\u540e\u518d\u8bd5\u3002",unavailableTitle:"\u5f55\u5236\u4e0d\u53ef\u7528"},sectionList:{pullToRefresh:"\u4e0b\u62c9\u5237\u65b0"},settings:{calendar:{about:"{{appName}} \u7684\u65e5\u5386\u96c6\u6210\u7528\u4e8e\u5b89\u5168\u8bbf\u95ee\u60a8\u7684\u65e5\u5386\uff0c\u4ee5\u4fbf\u5b83\u53ef\u4ee5\u8bfb\u53d6\u5373\u5c06\u53d1\u751f\u7684\u4e8b\u4ef6\u3002",disconnect:"\u65ad\u5f00\u8fde\u63a5",microsoftSignIn:"Microsoft\u5e10\u53f7\u767b\u5f55",signedIn:"\u76ee\u524d\u901a\u8fc7{{email}}\u83b7\u53d6\u65e5\u5386\u4e8b\u4ef6\u3002\u70b9\u51fb\u4e0b\u65b9\u65ad\u5f00\u8fde\u63a5\u6309\u94ae\u505c\u6b62\u8bbf\u95ee\u3002",title:"\u65e5\u5386"},devices:"\u8bbe\u5907",followMe:"\u6240\u6709\u4eba\u8ddf\u968f\u6211",language:"\u8bed\u8a00",loggedIn:"\u4ee5{{name}} \u767b\u5f55",moderator:"\u7ba1\u7406\u5458",more:"\u66f4\u591a",name:"\u540d\u79f0",noDevice:"\u672a\u53d1\u73b0\u8bbe\u5907",selectAudioOutput:"\u97f3\u9891\u8f93\u51fa",selectCamera:"\u6444\u50cf\u5934",selectMic:"\u9ea6\u514b\u98ce",startAudioMuted:"\u6240\u6709\u4eba\u5f00\u59cb\u65f6\u9759\u97f3",startVideoMuted:"\u6240\u6709\u4eba\u5f00\u59cb\u65f6\u9690\u85cf\u89c6\u9891\u753b\u9762",title:"\u8bbe\u7f6e"},settingsView:{advanced:"",alertOk:"\u786e\u8ba4",alertTitle:"\u8b66\u544a",alertURLText:"\u670d\u52a1\u5668 URL \u65e0\u6548",buildInfoSection:"\u751f\u6210\u4fe1\u606f",conferenceSection:"\u4f1a\u8bae",disableCallIntegration:"",disableP2P:"",displayName:"\u663e\u793a\u540d\u79f0",email:"\u7535\u5b50\u90ae\u4ef6",header:"\u8bbe\u7f6e",profileSection:"\u7b80\u4ecb",serverURL:"\u670d\u52a1\u5668 URL",showAdvanced:"",startWithAudioMuted:"\u542f\u52a8\u5e76\u5173\u95ed\u97f3\u9891",startWithVideoMuted:"\u542f\u52a8\u5e76\u5173\u95ed\u89c6\u9891",version:"\u7248\u672c"},share:{dialInfoText:"",mainText:"\u70b9\u51fb\u4ee5\u4e0b\u94fe\u63a5\u52a0\u5165\u4f1a\u8bae\uff1a{{roomUrl}}\n"},speaker:"\u53d1\u8a00\u4eba",speakerStats:{hours:"{{count}}h",minutes:"{{count}}m",name:"\u540d\u79f0",seconds:"{{count}}s",speakerStats:"\u53d1\u8a00\u8005\u72b6\u6001",speakerTime:"\u53d1\u8a00\u8005\u65f6\u95f4"},startupoverlay:{policyText:" ",title:"{{app}} \u9700\u8981\u4f7f\u7528\u60a8\u7684\u9ea6\u514b\u98ce\u548c\u6444\u50cf\u5934\u3002"},suspendedoverlay:{rejoinKeyTitle:"\u91cd\u65b0\u52a0\u5165",text:"\u6309\u4e0b \u91cd\u65b0\u52a0\u5165 \u6309\u94ae\u91cd\u65b0\u8fde\u63a5\u3002",title:"\u7531\u4e8e\u60a8\u7684\u7535\u8111\u8fdb\u5165\u4f11\u7720\u6a21\u5f0f\uff0c\u89c6\u9891\u901a\u8bdd\u5df2\u7ecf\u4e2d\u65ad\u3002"},toolbar:{accessibilityLabel:{audioOnly:"\u6253\u5f00 /\u5173\u95ed \u4ec5\u97f3\u9891",audioRoute:"\u9009\u62e9\u97f3\u9891\u8bbe\u5907",callQuality:"\u7ba1\u7406\u901a\u8bdd\u8d28\u91cf",cc:"\u6253\u5f00 / \u5173\u95ed \u5b57\u5e55",chat:"\u663e\u793a / \u9690\u85cf \u804a\u5929\u7a97\u53e3",document:"\u5f00\u542f / \u5173\u95ed \u6587\u6863\u5171\u4eab",download:"\u4e0b\u8f7d\u5e94\u7528",feedback:"\u63d0\u4f9b\u53cd\u9988",fullScreen:"\u8fdb\u5165 / \u9000\u51fa \u5168\u5c4f\u6a21\u5f0f",hangup:"\u9000\u51fa\u804a\u5929\u5ba4",help:"",invite:"\u9080\u8bf7",kick:"\u8e22\u9664\u6210\u5458",localRecording:"\u663e\u793a / \u9690\u85cf \u672c\u5730\u5f55\u5236\u9009\u9879",lockRoom:"\u5207\u6362\u4f1a\u8bae\u5ba4\u9501\u5b9a",moreActions:"\u663e\u793a / \u9690\u85cf \u66f4\u591a\u9009\u62e9",moreActionsMenu:"\u66f4\u591a\u9009\u62e9",mute:"\u9759\u97f3 / \u53d6\u6d88\u9759\u97f3",pip:"\u5207\u6362\u5b50\u6bcd\u753b\u9762\u6a21\u5f0f",privateMessage:"",profile:"\u7f16\u8f91\u60a8\u7684\u7b80\u4ecb",raiseHand:"\u4e3e\u624b / \u53d6\u6d88\u4e3e\u624b",recording:"\u5f00\u542f / \u505c\u6b62 \u89c6\u9891\u5f55\u5236",remoteMute:"\u9759\u97f3\u4e0e\u4f1a\u8005",Settings:"\u663e\u793a / \u9690\u85cf \u8bbe\u7f6e",sharedvideo:"\u5f00\u542f / \u5173\u95ed Youtube \u5f71\u7247\u5206\u4eab",shareRoom:"\u9080\u8bf7\u4ed6\u4eba",shareYourScreen:"\u5f00\u542f / \u5173\u95ed \u5c4f\u5e55\u5206\u4eab",shortcuts:"\u5207\u6362\u5feb\u6377\u65b9\u5f0f",show:"",speakerStats:"\u663e\u793a / \u9690\u85cf \u6f14\u8bf4\u8005\u8d44\u6599",tileView:"\u753b\u9762\u6a21\u5f0f",toggleCamera:"\u5207\u6362\u76f8\u673a",videomute:"\u9759\u97f3 / \u53d6\u6d88\u9759\u97f3",videoblur:""},addPeople:"\u6dfb\u52a0\u6210\u5458\u5230\u60a8\u7684\u901a\u8bdd\u4e2d",audioOnlyOff:"",audioOnlyOn:"",audioRoute:"\u9009\u62e9\u97f3\u9891\u8bbe\u5907",authenticate:"\u8ba4\u8bc1",callQuality:"\u7ba1\u7406\u901a\u8bdd\u8d28\u91cf",chat:"\u5f00\u542f / \u5173\u95ed \u804a\u5929",closeChat:"\u5173\u95ed\u804a\u5929",documentClose:"\u5173\u95ed\u6587\u6863\u5171\u4eab",documentOpen:"\u5f00\u542f\u6587\u6863\u5171\u4eab",download:"\u4e0b\u8f7d\u5e94\u7528",enterFullScreen:"\u5f00\u542f\u5168\u5c4f",enterTileView:"\u5207\u6362\u89c6\u56fe",exitFullScreen:"\u9000\u51fa\u5168\u5c4f",exitTileView:"\u9000\u51fa\u5e73\u94fa\u6a21\u5f0f",feedback:"\u63d0\u4f9b\u53cd\u9988",hangup:"\u79bb\u5f00",help:"",invite:"\u9080\u8bf7",login:"\u767b\u5f55",logout:"\u767b\u51fa",lowerYourHand:"\u653e\u624b",moreActions:"\u66f4\u591a\u64cd\u4f5c",mute:"\u9759\u97f3 / \u89e3\u9664\u9759\u97f3",noAudioSignalTitle:"",noAudioSignalDesc:"",noAudioSignalDescSuggestion:"",noisyAudioInputTitle:"",noisyAudioInputDesc:"",openChat:"\u5f00\u542f\u804a\u5929",pip:"\u8fdb\u5165\u5b50\u6bcd\u753b\u9762\u6a21\u5f0f",privateMessage:"",profile:"\u7f16\u8f91\u60a8\u7684\u7b80\u4ecb",raiseHand:"\u8bf7\u6c42 / \u53d6\u6d88 \u53d1\u8a00",raiseYourHand:"\u4e3e\u624b",Settings:"\u8bbe\u7f6e",sharedvideo:"\u5206\u4eabYouTube\u89c6\u9891",shareRoom:"\u9080\u8bf7\u4ed6\u4eba",shortcuts:"",speakerStats:"\u53d1\u8a00\u8005\u72b6\u6001",startScreenSharing:"\u5f00\u542f\u5c4f\u5e55\u5171\u4eab",startSubtitles:"\u5f00\u542f\u5b57\u5e55",stopScreenSharing:"\u505c\u6b62\u5c4f\u5e55\u5171\u4eab",stopSubtitles:"\u5173\u95ed\u5b57\u5e55",stopSharedVideo:"\u505c\u6b62YouTube\u89c6\u9891",talkWhileMutedPopup:"\u60a8\u5728\u5c1d\u8bd5\u53d1\u8a00\u5417? \u5f53\u524d\u60a8\u5df2\u88ab\u9759\u97f3\u3002",tileViewToggle:"\u753b\u9762\u6a21\u5f0f",toggleCamera:"\u5207\u6362\u76f8\u673a",videomute:"\u5f00\u542f / \u5173\u95ed \u6444\u50cf\u5934",startvideoblur:"",stopvideoblur:""},transcribing:{ccButtonTooltip:"\u5f00\u542f / \u5173\u95ed\u5b57\u5e55",error:"\u8f6c\u5f55\u5931\u8d25\u3002\u8bf7\u91cd\u65b0\u5c1d\u8bd5\u3002",expandedLabel:"\u6b63\u5728\u8f6c\u5f55\u4e2d",failedToStart:"\u5f00\u542f\u8f6c\u5f55\u5931\u8d25",labelToolTip:"\u4f1a\u8bae\u6b63\u5728\u8f6c\u5f55",off:"\u505c\u6b62\u8f6c\u5f55",pending:"\u6b63\u5728\u51c6\u5907\u8f6c\u5f55\u4f1a\u8bae...",start:"\u5f00\u542f\u663e\u793a\u5b57\u5e55",stop:"\u505c\u6b62\u663e\u793a\u5b57\u5e55",tr:"TR"},userMedia:{androidGrantPermissions:"\u5f53\u6d4f\u89c8\u5668\u8981\u6c42\u6743\u9650\u8bb8\u53ef\u65f6\u9009\u62e9 \u5141\u8bb8",chromeGrantPermissions:"\u5f53\u6d4f\u89c8\u5668\u8981\u6c42\u6743\u9650\u8bb8\u53ef\u65f6\u9009\u62e9 \u5141\u8bb8",edgeGrantPermissions:"\u5f53\u6d4f\u89c8\u5668\u8981\u6c42\u6743\u9650\u8bb8\u53ef\u65f6\u9009\u62e9 \u662f",electronGrantPermissions:"\u8bf7\u6388\u6743\u4f7f\u7528\u60a8\u7684\u6444\u50cf\u5934\u548c\u9ea6\u514b\u98ce",firefoxGrantPermissions:"\u5f53\u6d4f\u89c8\u5668\u8981\u6c42\u6743\u9650\u8bb8\u53ef\u65f6\u9009\u62e9\u5171\u4eab\u8bbe\u5907 ",iexplorerGrantPermissions:"\u5f53\u6d4f\u89c8\u5668\u8981\u6c42\u6743\u9650\u8bb8\u53ef\u65f6\u9009\u62e9 \u53ef\u4ee5",nwjsGrantPermissions:"\u8bf7\u6388\u6743\u4f7f\u7528\u60a8\u7684\u6444\u50cf\u5934\u548c\u9ea6\u514b\u98ce",operaGrantPermissions:"\u5f53\u6d4f\u89c8\u5668\u8981\u6c42\u6743\u9650\u8bb8\u53ef\u65f6\u9009\u62e9 \u5141\u8bb8","react-nativeGrantPermissions":"\u5f53\u6d4f\u89c8\u5668\u8981\u6c42\u6743\u9650\u8bb8\u53ef\u65f6\u9009\u62e9 \u5141\u8bb8",safariGrantPermissions:"\u5f53\u6d4f\u89c8\u5668\u8981\u6c42\u6743\u9650\u8bb8\u53ef\u65f6\u9009\u62e9 \u53ef\u4ee5"},videoSIPGW:{busy:"\u6211\u4eec\u6b63\u5728\u6e05\u7406\u548c\u91ca\u653e\u8d44\u6e90\u3002\u8bf7\u8fc7\u51e0\u5206\u949f\u540e\u518d\u8bd5\u3002",busyTitle:"\u623f\u95f4\u670d\u52a1\u6b63\u5fd9",errorAlreadyInvited:"{{displayName}} \u5df2\u88ab\u9080\u8bf7\u8fc7\u4e86",errorInvite:"\u4f1a\u8bae\u8fd8\u672a\u5f00\u59cb\u3002\u8bf7\u7a0d\u540e\u518d\u6765\u3002",errorInviteFailed:"\u6211\u4eec\u6b63\u5728\u89e3\u51b3\u95ee\u9898\u3002\u8bf7\u7a0d\u540e\u518d\u8bd5\u3002",errorInviteFailedTitle:"\u9080\u8bf7 {{displayName}} \u5931\u8d25",errorInviteTitle:"\u9080\u8bf7\u623f\u95f4\u9519\u8bef",pending:"{{displayName}} \u5df2\u88ab\u9080\u8bf7"},videoStatus:{audioOnly:"AUD\u58f0\u97f3",audioOnlyExpanded:"",callQuality:"",hd:"\u9ad8\u6e05",hdTooltip:"\u89c2\u770b\u9ad8\u6e05\u89c6\u9891",highDefinition:"\u9ad8\u6e05",labelTooiltipNoVideo:"\u65e0\u89c6\u9891",labelTooltipAudioOnly:"",ld:"\u4f4e\u6e05",ldTooltip:"\u89c2\u770b\u666e\u6e05\u89c6\u9891",lowDefinition:"\u4f4e\u6e05",onlyAudioAvailable:"\u53ea\u80fd\u4f7f\u7528\u97f3\u9891",onlyAudioSupported:"\u6211\u4eec\u53ea\u652f\u6301\u6b64\u6d4f\u89c8\u5668\u7684\u97f3\u9891\u529f\u80fd\u3002",p2pEnabled:"\u70b9\u5bf9\u70b9\u5df2\u542f\u7528",p2pVideoQualityDescription:"",recHighDefinitionOnly:"\u5c06\u4f1a\u9996\u9009\u9ad8\u6e05\u6a21\u5f0f\u3002",sd:"\u6807\u6e05",sdTooltip:"\u89c2\u770b\u6807\u6e05\u89c6\u9891",standardDefinition:"\u6807\u6e05"},videothumbnail:{domute:"\u9759\u97f3",flip:"\u7ffb\u8f6c",kick:"\u8e22\u51fa",moderator:"\u7ba1\u7406\u5458",mute:"\u4e0e\u4f1a\u8005\u5df2\u88ab\u9759\u97f3",muted:"\u5df2\u9759\u97f3",remoteControl:"",show:"",videomute:""},welcomepage:{accessibilityLabel:{join:"\u70b9\u51fb\u52a0\u5165",roomname:"\u8bf7\u8f93\u5165\u623f\u95f4\u540d"},appDescription:"\u5feb\u6765\u4f7f\u7528\u5168\u961f\u89c6\u9891\u901a\u8bdd\u3002\u60a8\u53ef\u4ee5\u9080\u8bf7\u4efb\u4f55\u60a8\u8ba4\u8bc6\u7684\u4eba\u3002{{app}} \u662f\u4e00\u4e2a\u5b8c\u5168\u52a0\u5bc6\uff0c100% \u5f00\u6e90\u7684\u89c6\u9891\u4f1a\u8bae\u89e3\u51b3\u65b9\u6848\u3002\u65e0\u9700\u6ce8\u518c\u5e10\u53f7\uff0c\u65e0\u9650\u65f6\u514d\u8d39\u4f7f\u7528\u3002",audioVideoSwitch:{audio:"\u8bed\u97f3",video:"\u89c6\u9891"},calendar:"\u65e5\u5386",connectCalendarButton:"\u8fde\u63a5\u60a8\u7684\u65e5\u5386",connectCalendarText:"\u8fde\u63a5\u60a8\u7684\u65e5\u5386",enterRoomTitle:"\u5f00\u542f\u4e00\u4e2a\u65b0\u7684\u4f1a\u8bae",roomNameAllowedChars:"",go:"\u5f00\u59cb",goSmall:"\u5f00\u59cb",join:"",info:"\u4fe1\u606f",privacy:"\u9690\u79c1",recentList:"\u6700\u8fd1",recentListDelete:"\u5220\u9664",recentListEmpty:"\u76ee\u524d\u6ca1\u6709\u4f7f\u7528\u3002\u4e0e\u4f60\u7684\u56e2\u961f\u6210\u5458\u804a\u5929\uff0c\u5373\u53ef\u5728\u6b64\u5904\u627e\u5230\u6700\u8fd1\u6240\u6709\u4f1a\u8bae\u3002",reducedUIText:"",roomname:"\u8bf7\u8f93\u5165\u623f\u95f4\u540d",roomnameHint:"\u8bf7\u8f93\u5165\u60a8\u60f3\u52a0\u5165\u623f\u95f4\u7684 URL \u5730\u5740\u6216\u8005\u623f\u95f4\u540d\u3002\u60a8\u4e5f\u53ef\u4ee5\u60f3\u4e2a\u623f\u540d\u521b\u5efa\u623f\u95f4\uff0c\u53ea\u8981\u5176\u4ed6\u4eba\u8f93\u5165\u548c\u60a8\u4e00\u6837\u7684\u540d\u79f0\u5c31\u80fd\u52a0\u5165\u60a8\u7684\u623f\u95f4\u3002",sendFeedback:"\u53d1\u9001\u53cd\u9988",terms:"\u6761\u6b3e",title:"\u5b89\u5168\uff0c\u529f\u80fd\u5b8c\u5584\u548c\u5b8c\u5168\u5f00\u6e90\u7684\u89c6\u9891\u4f1a\u8bae"}}},701,[]); +__d(function(e,r,t,f,h,n,o){h.exports={en:"\u82f1\u8a9e",af:"\u5357\u975e\u8377\u862d\u6587",bg:"\u4fdd\u52a0\u5229\u4e9e\u6587",ca:"\u5361\u9054\u9686\u5c3c\u4e9e\u6587",cs:"\u6377\u514b\u6587",de:"\u5fb7\u6587",el:"\u5e0c\u81d8\u6587",enGB:"\u82f1\u6587 (\u82f1\u570b)",eo:"\u4e16\u754c\u8a9e",es:"\u897f\u73ed\u7259\u6587",esUS:"\u897f\u73ed\u7259\u6587 (\u62c9\u4e01\u7f8e\u6d32)",fi:"\u82ac\u862d\u6587",fr:"\u6cd5\u6587",frCA:"\u6cd5\u6587 (\u52a0\u62ff\u5927)",hr:"\u514b\u7f85\u57c3\u897f\u4e9e\u6587",hu:"\u5308\u7259\u5229\u6587",hy:"\u4e9e\u7f8e\u5c3c\u4e9e\u6587",it:"\u7fa9\u5927\u5229\u6587",ja:"\u65e5\u8a9e",ko:"\u97d3\u6587",nl:"\u8377\u862d\u6587",oc:"\u5967\u897f\u5766\u6587",pl:"\u6ce2\u862d\u6587",ptBR:"\u8461\u8404\u7259\u6587 (\u5df4\u897f)",ru:"\u4fc4\u6587",sv:"\u745e\u5178\u6587",tr:"\u571f\u8033\u5176\u6587",vi:"\u8d8a\u5357\u6587",zhCN:"\u4e2d\u6587 (\u4e2d\u56fd\uff0c\u7b80\u4f53)",zhTW:"\u4e2d\u6587 (\u53f0\u7063\uff0c\u6b63\u9ad4)",et:"\u611b\u6c99\u5c3c\u4e9e\u6587",da:"\u4e39\u9ea5\u6587"}},702,[]); +__d(function(e,o,i,t,r,n,a){r.exports={addPeople:{add:"\u9080\u8acb",countryNotSupported:"\u6b64\u76ee\u6a19\u5340\u57df\u5c1a\u672a\u652f\u63f4\u3002",countryReminder:"\u5617\u8a66\u5728\u7f8e\u570b\u4ee5\u5916\u5730\u5340\u901a\u8a71\uff1f\u8acb\u78ba\u8a8d\u958b\u982d\u4f7f\u7528\u7684\u570b\u5bb6\u4ee3\u78bc\uff01",disabled:"\u60a8\u4e0d\u53ef\u4ee5\u9080\u8acb\u4eba\u54e1\u3002",failedToAdd:"\u589e\u52a0\u53c3\u8207\u4eba\u5931\u6557",footerText:"\u5c0d\u5916\u64ad\u865f\u5df2\u505c\u7528\u3002",loading:"\u5c0b\u627e\u806f\u7d61\u4eba\u53ca\u96fb\u8a71\u865f\u78bc",loadingNumber:"\u9a57\u8b49\u96fb\u8a71\u865f\u78bc",loadingPeople:"\u6b63\u5728\u5c0b\u641c\u4eba\u54e1\u9032\u884c\u9080\u8acb",noResults:"\u6c92\u6709\u7b26\u5408\u8981\u6c42\u7684\u641c\u5c0b\u7d50\u679c",noValidNumbers:"\u8acb\u8f38\u5165\u4e00\u7d44\u96fb\u8a71\u865f\u78bc",searchNumbers:"\u65b0\u589e\u96fb\u8a71\u865f\u78bc",searchPeople:"\u5c0b\u627e\u4eba\u54e1",searchPeopleAndNumbers:"\u5c0b\u627e\u4eba\u54e1\u6216\u65b0\u589e\u96fb\u8a71\u865f\u78bc",telephone:"\u96fb\u8a71\uff1a {{number}}",title:"\u9080\u8acb\u4eba\u54e1\u53c3\u52a0\u6703\u8b70"},audioDevices:{bluetooth:"\u85cd\u82bd",headphones:"\u8033\u6a5f",phone:"\u96fb\u8a71",speaker:"\u767c\u8a00\u8005",none:"\u6c92\u6709\u53ef\u7528\u7684\u97f3\u6548\u88dd\u7f6e"},audioOnly:{audioOnly:"\u4f4e\u983b\u5bec"},calendarSync:{addMeetingURL:"\u589e\u52a0\u6703\u8b70\u9023\u7d50",confirmAddLink:"\u60a8\u8981\u52a0\u4e0a Jitsi \u9023\u7d50\u65bc\u6b64\u4e8b\u4ef6\u55ce\uff1f",error:{appConfiguration:"\u884c\u4e8b\u66c6\u6574\u5408\u5c1a\u672a\u6b63\u78ba\u8a2d\u5b9a\u3002",generic:"\u767c\u751f\u932f\u8aa4\u3002\u8acb\u6aa2\u67e5\u884c\u4e8b\u66c6\u8a2d\u5b9a\uff0c\u6216\u662f\u91cd\u65b0\u6574\u7406\u884c\u4e8b\u66c6\u3002",notSignedIn:"\u67e5\u770b\u884c\u4e8b\u66c6\u4e8b\u4ef6\u9032\u884c\u8a8d\u8b49\u6642\u767c\u751f\u932f\u8aa4\u3002\u8acb\u6aa2\u67e5\u60a8\u7684\u884c\u4e8b\u66c6\u8a2d\u5b9a\uff0c\u4e26\u518d\u6b21\u767b\u5165\u3002"},join:"\u53c3\u52a0",joinTooltip:"\u53c3\u52a0\u6703\u8b70",nextMeeting:"\u4e0b\u6b21\u6703\u8b70",noEvents:"\u6c92\u6709\u9810\u5b9a\u4e8b\u4ef6\u6392\u5165\u884c\u7a0b\u3002",ongoingMeeting:"\u6b63\u5728\u9032\u884c\u7684\u6703\u8b70",permissionButton:"\u958b\u555f\u8a2d\u5b9a",permissionMessage:"\u884c\u4e8b\u66c6\u5141\u8a31\u6b0a\u9650\u662f\u5fc5\u9808\u7684\uff0c\u4ee5\u67e5\u770b\u60a8\u5728\u61c9\u7528\u7a0b\u5f0f\u4e2d\u7684\u6703\u8b70\u3002",refresh:"\u91cd\u65b0\u6574\u7406\u884c\u4e8b\u66c6",today:"\u4eca\u65e5"},chat:{error:"\u932f\u8aa4\uff1a\u60a8\u7684\u8a0a\u606f\u672a\u88ab\u50b3\u9001\u3002\u539f\u56e0\uff1a {{error}}",fieldPlaceHolder:"\u5728\u6b64\u8f38\u5165\u60a8\u7684\u8a0a\u606f",messagebox:"\u8f38\u5165\u8a0a\u606f",messageTo:"\u79c1\u4eba\u8a0a\u606f\u50b3\u9001\u81f3 {{recipient}}",noMessagesMessage:"\u6703\u8b70\u4e2d\u9084\u6c92\u6709\u8a0a\u606f\u3002\u5728\u6b64\u958b\u59cb\u5c0d\u8a71\uff01",nickname:{popover:"\u9078\u64c7\u540d\u7a31",title:"\u8f38\u5165\u540d\u7a31\u4f86\u4f7f\u7528\u4ea4\u8ac7"},privateNotice:"\u79c1\u4eba\u8a0a\u606f\u50b3\u9001\u81f3 {{recipient}}",title:"\u4ea4\u8ac7",you:"\u81ea\u5df1"},connectingOverlay:{joiningRoom:"\u5c07\u81ea\u5df1\u9023\u63a5\u81f3\u81ea\u8a02\u6703\u8b70..."},connection:{ATTACHED:"\u5df2\u7d93\u9644\u52a0",AUTHENTICATING:"\u8a8d\u8b49\u4e2d",AUTHFAIL:"\u8a8d\u8b49\u5931\u6557",CONNECTED:"\u5df2\u7d93\u9023\u63a5",CONNECTING:"\u9023\u63a5\u4e2d",CONNFAIL:"\u9023\u63a5\u5931\u6557",DISCONNECTED:"\u5df2\u7d93\u4e2d\u65b7\u9023\u63a5",DISCONNECTING:"\u4e2d\u65b7\u9023\u63a5\u4e2d",ERROR:"\u932f\u8aa4",RECONNECTING:"\u7db2\u8def\u767c\u751f\u554f\u984c\u3002\u91cd\u65b0\u9023\u7dda\u4e2d.........",GOT_SESSION_ID:"\u6b63\u5728\u53d6\u5f97 session-id\u2026 \u5b8c\u6210",GET_SESSION_ID_ERROR:"\u53d6\u5f97 session-id \u6642\u767c\u751f\u932f\u8aa4\uff1a{{code}}",FETCH_SESSION_ID:"\u6b63\u5728\u53d6\u5f97 session-id\u2026",LOW_BANDWIDTH:"\u5df2\u95dc\u9589 {{displayName}} \u7684\u5f71\u7247\u4ee5\u7bc0\u7701\u6d41\u91cf"},connectionindicator:{address:"\u4f4d\u5740\uff1a",bandwidth:"\u4f30\u8a08\u983b\u5bec\uff1a",bitrate:"\u6bd4\u7279\u7387\uff1a",bridgeCount:"\u4f3a\u670d\u5668\u6578\u91cf\uff1a",connectedTo:"\u5df2\u9023\u63a5\u81f3\uff1a",framerate:"\u5f71\u683c\u7387\uff1a",less:"\u986f\u793a\u8f03\u5c11",localaddress:"\u672c\u5730\u4f4d\u5740\uff1a",localport:"\u672c\u5730\u7aef\u53e3\uff1a",more:"\u986f\u793a\u66f4\u591a",packetloss:"\u4e1f\u5305\uff1a",quality:{good:"\u5f88\u597d",inactive:"\u672a\u555f\u7528",lost:"\u6f0f\u5931",nonoptimal:"\u4e0d\u751a\u7406\u60f3",poor:"\u4e0d\u597d"},remoteaddress:"\u9060\u7aef\u4f4d\u5740\uff1a",remoteport:"\u9060\u7aef\u7aef\u53e3\uff1a",resolution:"\u89e3\u6790\u5ea6\uff1a",status:"\u9023\u63a5\uff1a",transport:"\u50b3\u8f38\uff1a",transport_plural:"\u50b3\u8f38\uff1a",remoteport_plural:"\u9060\u7aef\u9023\u7dda\u57e0\uff1a",remoteaddress_plural:"\u9060\u7aef\u4f4d\u5740\uff1a",localport_plural:"\u672c\u6a5f\u9023\u7dda\u57e0\uff1a",localaddress_plural:"\u672c\u6a5f\u4f4d\u5740\uff1a",e2e_rtt:"E2E RTT\uff1a"},dateUtils:{earlier:"\u7a0d\u65e9",today:"\u4eca\u65e5",yesterday:"\u6628\u5929"},deepLinking:{appNotInstalled:"\u5728\u60a8\u7684\u624b\u6a5f\u4e0a\u9700\u8981 {{app}} \u884c\u52d5\u61c9\u7528\u7a0b\u5f0f\u53bb\u52a0\u5165\u9019\u5834\u6703\u8b70\u3002",description:"\u6c92\u6709\u767c\u751f\u4f5c\u7528\u55ce\uff1f\u6211\u5011\u5617\u8a66\u767c\u8d77\u60a8\u7684\u6703\u8b70\u65bc {{app}} \u684c\u9762\u61c9\u7528\u7a0b\u5f0f\u3002\u8acb\u518d\u8a66\u4e00\u6b21\uff0c\u6216\u662f\u5728 {{app}} \u7db2\u8def\u61c9\u7528\u7a0b\u5f0f\u767c\u8d77\u6703\u8b70\u3002",descriptionWithoutWeb:"\u6beb\u7121\u4f5c\u7528\u55ce\uff1f\u6211\u5011\u5df2\u8a66\u8457\u5c07\u60a8\u7684\u6703\u8b70\u5728\u684c\u6a5f\u61c9\u7528\u5de5\u5177 {{app}} \u4e2d\u555f\u52d5\u3002",downloadApp:"\u4e0b\u8f09\u61c9\u7528 APP",launchWebButton:"\u5728\u7db2\u8def\u4e0a\u767c\u8d77",openApp:"\u7e7c\u7e8c\u524d\u5f80\u6b64\u61c9\u7528\u7a0b\u5f0f",title:"\u767c\u8d77\u60a8\u7684\u6703\u8b70\u65bc {{app}}...",tryAgainButton:"\u5728\u684c\u9762\u4e0a\u518d\u8a66\u4e00\u6b21"},defaultLink:"\u4f8b\u5982 {{url}}",defaultNickname:"\u4f8b\u5982 \u6625\u5b0c \u5fd7\u660e",deviceError:{cameraError:"\u7121\u6cd5\u53d6\u7528\u60a8\u7684\u651d\u5f71\u88dd\u7f6e",cameraPermission:"\u7121\u6cd5\u7372\u5f97\u651d\u5f71\u88dd\u7f6e\u53d6\u7528\u6b0a\u9650",microphoneError:"\u7121\u6cd5\u53d6\u7528\u60a8\u7684\u9ea5\u514b\u98a8",microphonePermission:"\u7121\u6cd5\u7372\u5f97\u9ea5\u514b\u98a8\u53d6\u7528\u6b0a\u9650"},deviceSelection:{noPermission:"\u672a\u53d6\u5f97\u6b0a\u9650",previewUnavailable:"\u9810\u89bd\u7121\u6cd5\u4f7f\u7528",selectADevice:"\u9078\u64c7\u88dd\u7f6e",testAudio:"\u64ad\u653e\u6e2c\u8a66\u8072\u97f3"},dialog:{accessibilityLabel:{liveStreaming:"\u76f4\u64ad\u4e32\u6d41"},allow:"\u5141\u8a31",alreadySharedVideoMsg:"\u53e6\u4e00\u4f4d\u53c3\u8207\u8005\u5df2\u7d93\u9032\u884c\u5206\u4eab\u5f71\u50cf\u4e86\u3002\u6b64\u6703\u8b70\u540c\u500b\u6642\u9593\u53ea\u80fd\u5141\u8a31\u4e00\u4eba\u5206\u4eab\u5f71\u50cf\u756b\u9762\u3002",alreadySharedVideoTitle:"\u4e00\u6b21\u53ea\u5141\u8a31\u4e00\u4f4d\u5f71\u50cf\u5206\u4eab",applicationWindow:"\u61c9\u7528\u7a0b\u5f0f\u8996\u7a97",Back:"\u8fd4\u56de",cameraConstraintFailedError:"\u60a8\u7684\u651d\u5f71\u88dd\u7f6e\u4e0d\u7b26\u5408\u8981\u6c42\u3002",cameraNotFoundError:"\u672a\u767c\u73fe\u651d\u5f71\u88dd\u7f6e\u3002",cameraNotSendingData:"\u6211\u5011\u7121\u6cd5\u53d6\u7528\u60a8\u7684\u651d\u5f71\u88dd\u7f6e\u3002\u8acb\u6aa2\u67e5\u662f\u5426\u6709\u5176\u4ed6\u7a0b\u5e8f\u6b63\u5728\u4f7f\u7528\u9019\u500b\u8a2d\u5099\uff0c\u5426\u5247\u8acb\u5f9e\u8a2d\u7f6e\u9078\u55ae\u88e1\u9078\u64c7\u5176\u4ed6\u8a2d\u5099\u6216\u8005\u91cd\u65b0\u88dd\u8f09\u3002",cameraNotSendingDataTitle:"\u7121\u6cd5\u53d6\u7528\u651d\u5f71\u88dd\u7f6e",cameraPermissionDeniedError:"\u60a8\u672a\u53d6\u5f97\u6b0a\u9650\u4f7f\u7528\u651d\u5f71\u88dd\u7f6e\u3002\u60a8\u4ecd\u53ef\u53c3\u52a0\u6703\u8b70\uff0c\u4f46\u5176\u4ed6\u4eba\u7121\u6cd5\u770b\u5230\u3002\u53ef\u4ee5\u5229\u7528\u4f4d\u5740\u6b04\u4e2d\u7684\u651d\u5f71\u88dd\u7f6e\u6309\u9215\u4f86\u4fee\u6b63\u3002",cameraUnknownError:"\u7531\u65bc\u4e0d\u660e\u539f\u56e0\uff0c\u7121\u6cd5\u4f7f\u7528\u651d\u5f71\u88dd\u7f6e\u3002",cameraUnsupportedResolutionError:"\u60a8\u7684\u651d\u5f71\u88dd\u7f6e\u4e0d\u652f\u63f4\u6240\u9700\u7684\u5f71\u50cf\u89e3\u6790\u5ea6\u3002",Cancel:"\u53d6\u6d88",close:"\u95dc\u9589",conferenceDisconnectMsg:"\u8acb\u6aa2\u67e5\u4e00\u4e0b\u7db2\u8def\u9023\u63a5\u3002\u5c07\u5728 {{seconds}} \u79d2\u5f8c\u91cd\u65b0\u9023\u63a5...",conferenceDisconnectTitle:"\u60a8\u5df2\u7d93\u88ab\u4e2d\u65b7\u9023\u63a5\u3002",conferenceReloadMsg:"\u6211\u5011\u6b63\u8a66\u8457\u4fee\u5fa9\u72c0\u6cc1\u3002\u91cd\u65b0\u9023\u63a5\u65bc {{seconds}} \u79d2\u5167......",conferenceReloadTitle:"\u5f88\u4e0d\u5e78\uff0c\u6709\u9ede\u51fa\u932f\u4e86\u3002",confirm:"\u78ba\u8a8d",confirmNo:"\u5426",confirmYes:"\u662f\u7684",connectError:"\u5594\u54e6\uff01\u767c\u751f\u932f\u8aa4\uff0c\u7121\u6cd5\u9023\u63a5\u81f3\u6703\u8b70\u3002",connectErrorWithMsg:"\u5594\u54e6\uff01\u767c\u751f\u932f\u8aa4\uff0c\u7121\u6cd5\u9023\u63a5\u81f3\u6703\u8b70: {{msg}}",connecting:"\u9023\u63a5\u4e2d",contactSupport:"\u806f\u7d61\u652f\u63f4",copy:"\u8907\u88fd",dismiss:"\u89e3\u9664",displayNameRequired:"\u55e8\uff01\u8acb\u554f\u5927\u540d\uff1f",done:"\u5b8c\u6210",enterDisplayName:"\u8acb\u5728\u6b64\u8f38\u5165\u60a8\u81ea\u5df1\u7684\u540d\u5b57",error:"\u932f\u8aa4",externalInstallationMsg:"\u60a8\u9700\u8981\u5b89\u88dd\u684c\u9762\u5206\u4eab\u64f4\u5145\u61c9\u7528\u7a0b\u5f0f\u3002",externalInstallationTitle:"\u9700\u8981\u64f4\u5145\u61c9\u7528\u7a0b\u5f0f",goToStore:"\u524d\u5f80\u61c9\u7528\u5546\u5e97",gracefulShutdown:"\u6211\u5011\u7684\u670d\u52d9\u76ee\u524d\u95dc\u9589\u7dad\u8b77\u4e2d\uff0c\u8acb\u7a0d\u5f8c\u518d\u8a66\u3002",IamHost:"\u6211\u662f\u4e3b\u8fa6\u4eba",incorrectRoomLockPassword:"\u5bc6\u78bc\u4e0d\u7b26",incorrectPassword:"\u932f\u8aa4\u7684\u7528\u6236\u540d\u7a31\u6216\u5bc6\u78bc",inlineInstallationMsg:"\u60a8\u9700\u8981\u5b89\u88dd\u684c\u9762\u5206\u4eab\u64f4\u5145\u61c9\u7528\u7a0b\u5f0f\u3002",inlineInstallExtension:"\u7acb\u5373\u5b89\u88dd",internalError:"\u5594\u54e6\uff01\u51fa\u73fe\u4e86\u9ede\u554f\u984c\u3002\u767c\u751f\u932f\u8aa4\uff1a {{error}}",internalErrorTitle:"\u5167\u90e8\u932f\u8aa4",kickMessage:"\u60a8\u53ef\u4ee5\u806f\u7d61 {{participantDisplayName}} \u53d6\u5f97\u66f4\u8a73\u7d30\u8cc7\u8a0a\u3002",kickParticipantButton:"\u8e22\u51fa",kickParticipantDialog:"\u78ba\u5b9a\u8981\u5c07\u9019\u4f4d\u53c3\u8207\u8005\u8e22\u51fa\u6703\u8b70\uff1f",kickParticipantTitle:"\u8e22\u51fa\u9019\u4f4d\u53c3\u8207\u8005\uff1f",kickTitle:"\u5662\uff01 {{participantDisplayName}} \u5df2\u5c07\u60a8\u8e22\u51fa\u6703\u8b70",liveStreaming:"\u76f4\u64ad\u4e32\u6d41\u4e2d",liveStreamingDisabledForGuestTooltip:"\u8a2a\u5ba2\u7121\u6cd5\u555f\u52d5\u76f4\u64ad\u4e32\u6d41\u3002",liveStreamingDisabledTooltip:"\u555f\u52d5\u76f4\u64ad\u4e32\u6d41\u5df2\u505c\u7528\u3002",lockMessage:"\u9396\u5b9a\u6703\u8b70\u5931\u6557\u3002",lockRoom:"\u589e\u52a0\u6703\u8b70 $t(lockRoomPasswordUppercase)",lockTitle:"\u9396\u5b9a\u5931\u6557",logoutQuestion:"\u60a8\u78ba\u5b9a\u8981\u767b\u51fa\u4e26\u505c\u6b62\u6703\u8b70\u55ce\uff1f",logoutTitle:"\u767b\u51fa",maxUsersLimitReached:"\u53c3\u8207\u4eba\u6578\u5df2\u9054\u4e0a\u9650\uff0c\u6b64\u6703\u8b70\u76ee\u524d\u6eff\u984d\u3002\u8acb\u806f\u7d61\u6703\u8b70\u4e3b\u4eba\uff0c\u6216\u662f\u7a0d\u5f8c\u518d\u8a66\uff01",maxUsersLimitReachedTitle:"\u53c3\u8207\u4eba\u6578\u5df2\u9054\u4e0a\u9650",micConstraintFailedError:"\u60a8\u7684\u9ea5\u514b\u98a8\u4e0d\u7b26\u5408\u8981\u6c42\u3002",micNotFoundError:"\u672a\u767c\u73fe\u9ea5\u514b\u98a8\u3002",micNotSendingData:"\u81f3\u96fb\u8166\u8a2d\u5b9a\u4e2d\u89e3\u9664\u9ea5\u514b\u98a8\u975c\u97f3\u4e26\u8abf\u6574\u5927\u5c0f",micNotSendingDataTitle:"\u60a8\u7684\u9ea5\u514b\u98a8\u7531\u96fb\u8166\u7cfb\u7d71\u8a2d\u5b9a\u70ba\u975c\u97f3",micPermissionDeniedError:"\u60a8\u672a\u53d6\u5f97\u6b0a\u9650\u4f7f\u7528\u9ea5\u514b\u98a8\u3002\u60a8\u4ecd\u7136\u53ef\u53c3\u52a0\u6703\u8b70\uff0c\u4f46\u662f\u5176\u4ed6\u4eba\u7121\u6cd5\u807d\u5230\u3002\u53ef\u4ee5\u5229\u7528\u4f4d\u5740\u6b04\u4e2d\u7684\u651d\u5f71\u88dd\u7f6e\u6309\u9215\u4f86\u4fee\u6b63\u3002",micUnknownError:"\u4e0d\u660e\u539f\u56e0\u9020\u6210\u9ea5\u514b\u98a8\u7121\u6cd5\u4f7f\u7528\u3002",muteParticipantBody:"\u60a8\u7121\u6cd5\u5c0d\u4ed6\u5011\u89e3\u9664\u975c\u97f3\uff0c\u4f46\u662f\u4ed6\u5011\u81ea\u5df1\u96a8\u6642\u53ef\u4ee5\u89e3\u9664\u975c\u97f3\u3002",muteParticipantButton:"\u975c\u97f3",muteParticipantDialog:"\u78ba\u5b9a\u8981\u5c07\u9019\u4f4d\u53c3\u8207\u8005\u8a2d\u70ba\u975c\u97f3\uff1f\u60a8\u7121\u6cd5\u70ba\u4ed6\u5011\u89e3\u9664\uff0c\u4f46\u4ed6\u5011\u53ef\u4ee5\u96a8\u6642\u81ea\u884c\u89e3\u9664\u975c\u97f3\u3002",muteParticipantTitle:"\u5c07\u9019\u4f4d\u53c3\u8207\u8005\u8a2d\u70ba\u975c\u97f3\uff1f",Ok:"\u78ba\u5b9a",passwordLabel:"\u6703\u8b70\u5df2\u88ab\u53c3\u8207\u8005\u9396\u5b9a\u3002\u8acb\u8f38\u5165 $t(lockRoomPassword) \u4ee5\u52a0\u5165\u3002",passwordNotSupported:"\u8a2d\u7f6e\u6703\u8b70\u5bc6\u78bc $t(lockRoomPassword) \u5c1a\u672a\u652f\u63f4 \u3002",passwordNotSupportedTitle:"$t(lockRoomPasswordUppercase) \u5c1a\u672a\u652f\u63f4",passwordRequired:"$t(lockRoomPasswordUppercase) \u5fc5\u9808\u8981\u6709",popupError:"\u60a8\u7684\u700f\u89bd\u5668\u5728\u6b64\u7db2\u7ad9\u4e0a\u963b\u64cb\u5f48\u51fa\u8996\u7a97\u3002\u8acb\u5728\u700f\u89bd\u5668\u7684\u5b89\u5168\u8a2d\u7f6e\u4e2d\u958b\u555f\u4e26\u518d\u8a66\u4e00\u6b21\u3002",popupErrorTitle:"\u5f48\u51fa\u8996\u7a97\u906d\u5230\u963b\u64cb",recording:"\u9304\u5f71\u4e2d",recordingDisabledForGuestTooltip:"\u8a2a\u5ba2\u7121\u6cd5\u555f\u52d5\u9304\u5f71\u3002",recordingDisabledTooltip:"\u555f\u52d5\u9304\u5f71\u5df2\u505c\u7528\u3002",rejoinNow:"\u7acb\u5373\u91cd\u65b0\u52a0\u5165",remoteControlAllowedMessage:"{{user}} \u63a5\u53d7\u60a8\u9032\u884c\u9060\u7aef\u63a7\u5236\u7684\u8981\u6c42\uff01",remoteControlDeniedMessage:"{{user}} \u62d2\u7d55\u60a8\u9032\u884c\u9060\u7aef\u63a7\u5236\u7684\u8981\u6c42\uff01",remoteControlErrorMessage:"\u5728\u5617\u8a66\u5411 {{user}} \u8acb\u6c42\u9060\u7aef\u63a7\u5236\u6b0a\u9650\u6642\u767c\u751f\u932f\u8aa4\uff01",remoteControlRequestMessage:"\u60a8\u8981\u5141\u8a31 {{user}} \u9060\u7aef\u63a7\u5236\u60a8\u7684\u684c\u9762\u55ce\uff1f",remoteControlShareScreenWarning:"\u6ce8\u610f\uff1a\u5982\u679c\u6309\u4e0b \"\u5141\u8a31\" \u60a8\u5c07\u6703\u5206\u4eab\u51fa\u81ea\u5df1\u7684\u87a2\u5e55\uff01",remoteControlStopMessage:"\u9060\u7aef\u63a7\u5236\u968e\u6bb5\u7d50\u675f\uff01",remoteControlTitle:"\u9060\u7aef\u684c\u9762\u63a7\u5236",Remove:"\u79fb\u9664",removePassword:"\u79fb\u9664 $t(lockRoomPassword)",removeSharedVideoMsg:"\u60a8\u78ba\u5b9a\u8981\u79fb\u9664\u81ea\u5df1\u5206\u4eab\u7684\u5f71\u50cf\u55ce\uff1f",removeSharedVideoTitle:"\u79fb\u9664\u5206\u4eab\u7684\u5f71\u50cf",reservationError:"\u9810\u7d04\u7cfb\u7d71\u932f\u8aa4",reservationErrorMsg:"\u932f\u8aa4\u78bc\uff1a {{code}} \uff0c \u8a0a\u606f\uff1a {{msg}}",retry:"\u91cd\u8a66",screenSharingFailedToInstall:"\u5594\u54e6\uff01\u87a2\u5e55\u5206\u4eab\u64f4\u5145\u7a0b\u5f0f\u5b89\u88dd\u5931\u6557\u3002",screenSharingFailedToInstallTitle:"\u87a2\u5e55\u5206\u4eab\u64f4\u5145\u5b89\u88dd\u5931\u6557",screenSharingFirefoxPermissionDeniedError:"\u5617\u8a66\u9032\u884c\u87a2\u5e55\u5206\u4eab\u6642\u9047\u5230\u554f\u984c\u3002\u8acb\u78ba\u8a8d\u60a8\u6709\u6388\u4e88\u6b0a\u9650\u4ee5\u5206\u4eab\u3002 ",screenSharingFirefoxPermissionDeniedTitle:"\u5594\u54e6\uff01\u6211\u5011\u7121\u6cd5\u555f\u52d5\u87a2\u5e55\u5206\u4eab\uff01",screenSharingPermissionDeniedError:"\u5662\u5594\uff01\u60a8\u7684\u5f71\u50cf\u5206\u4eab\u64f4\u5145\u6b0a\u9650\u767c\u751f\u554f\u984c\u3002\u8acb\u91cd\u65b0\u8f09\u5165\uff0c\u518d\u8a66\u4e00\u6b21\u3002",sendPrivateMessage:"\u60a8\u6700\u8fd1\u6709\u6536\u5230\u79c1\u4eba\u8a0a\u606f\u3002\u60a8\u8981\u9032\u884c\u79c1\u4eba\u56de\u8986\uff0c\u6216\u662f\u8981\u5c07\u81ea\u5df1\u7684\u8a0a\u606f\u767c\u4f48\u81f3\u7fa4\u7d44\uff1f",sendPrivateMessageCancel:"\u767c\u4f48\u81f3\u7fa4\u7d44",sendPrivateMessageOk:"\u79c1\u4eba\u56de\u8986",sendPrivateMessageTitle:"\u79c1\u4eba\u50b3\u8a0a\uff1f",serviceUnavailable:"\u670d\u52d9\u7121\u6cd5\u4f7f\u7528",sessTerminated:"\u901a\u8a71\u5df2\u7d93\u7d42\u6b62",Share:"\u5206\u4eab",shareVideoLinkError:"\u8acb\u63d0\u4f9b\u6b63\u78ba\u7684 YouTube \u9023\u7d50\u3002",shareVideoTitle:"\u5206\u4eab\u5f71\u50cf",shareYourScreen:"\u5206\u4eab\u81ea\u5df1\u7684\u87a2\u5e55",shareYourScreenDisabled:"\u87a2\u5e55\u5206\u4eab\u5df2\u505c\u7528\u3002",shareYourScreenDisabledForGuest:"\u8a2a\u5ba2\u7121\u6cd5\u87a2\u5e55\u5206\u4eab\u3002",startLiveStreaming:"\u555f\u52d5\u76f4\u64ad\u4e32\u6d41",startRecording:"\u555f\u52d5\u9304\u5f71\u4f5c\u696d",startRemoteControlErrorMessage:"\u5617\u8a66\u555f\u52d5\u9060\u7aef\u63a7\u5236\u968e\u6bb5\u6642\u767c\u751f\u932f\u8aa4\uff01",stopLiveStreaming:"\u505c\u6b62\u76f4\u64ad\u4e32\u6d41",stopRecording:"\u505c\u6b62\u9304\u5f71",stopRecordingWarning:"\u78ba\u5b9a\u8981\u505c\u6b62\u9304\u5f71\u55ce\uff1f",stopStreamingWarning:"\u78ba\u5b9a\u8981\u505c\u6b62\u76f4\u64ad\u4e32\u6d41\u55ce\uff1f",streamKey:"\u76f4\u64ad\u4e32\u6d41\u5bc6\u9470",Submit:"\u63d0\u4ea4",thankYou:"\u611f\u8b1d\u60a8\u4f7f\u7528 {{appName}}\uff01",token:"\u6a19\u8a18",tokenAuthFailed:"\u62b1\u6b49\uff0c\u60a8\u672a\u88ab\u5141\u8a31\u52a0\u5165\u6b64\u6703\u8b70\u3002",tokenAuthFailedTitle:"\u8a8d\u8b49\u5931\u6557",transcribing:"\u8f49\u9304\u4e2d",unlockRoom:"\u79fb\u9664\u6703\u8b70 $t(lockRoomPassword)",userPassword:"\u7528\u6236\u5bc6\u78bc",WaitForHostMsg:"\u6b64\u6703\u8b70 {{room}} \u5c1a\u672a\u555f\u52d5\u3002\u5982\u679c\u60a8\u662f\u6703\u8b70\u4e3b\u4eba\uff0c\u8acb\u9032\u884c\u8a8d\u8b49\uff1b\u5426\u8005\uff0c\u8acb\u7b49\u5f85\u6703\u8b70\u4e3b\u4eba\u5230\u9054\u3002",WaitForHostMsgWOk:"\u6b64\u6703\u8b70 {{room}} \u5c1a\u672a\u555f\u52d5\u3002\u5982\u679c\u60a8\u662f\u6703\u8b70\u4e3b\u4eba\uff0c\u8acb\u6309 [\u78ba\u5b9a] \u9032\u884c\u8a8d\u8b49\uff1b\u5426\u8005\uff0c\u8acb\u7b49\u5f85\u6703\u8b70\u4e3b\u4eba\u5230\u9054\u3002",WaitingForHost:"\u7b49\u4faf\u4e3b\u8fa6\u4eba ...",Yes:"\u662f\u7684",yourEntireScreen:"\u81ea\u5df1\u7684\u5168\u87a2\u5e55",screenSharingAudio:"\u5206\u4eab\u97f3\u8a0a",muteEveryoneStartMuted:"\u73fe\u5728\u6240\u6709\u4eba\u7686\u5df2\u975c\u97f3",muteEveryoneSelf:"\u60a8\u81ea\u5df1",muteEveryoneTitle:"\u975c\u97f3\u6240\u6709\u4eba\uff1f",muteEveryoneDialog:"\u662f\u5426\u8981\u975c\u97f3\u6240\u6709\u4eba\uff1f\u60a8\u5c07\u4e0d\u80fd\u89e3\u9664\u5c0d\u65b9\u7684\u975c\u97f3\uff0c\u4f46\u5c0d\u65b9\u53ef\u4ee5\u96a8\u6642\u89e3\u9664\u81ea\u5df1\u7684\u975c\u97f3\u72c0\u614b\u3002",muteEveryoneElseTitle:"\u662f\u5426\u8981\u8b93\u9664\u4e86 {{whom}} \u4ee5\u5916\u7684\u4eba\u975c\u97f3\uff1f",muteEveryoneElseDialog:"\u975c\u97f3\u5f8c\uff0c\u4f60\u5c31\u4e0d\u80fd\u518d\u89e3\u9664\u5c0d\u65b9\u7684\u975c\u97f3\uff0c\u4f46\u5c0d\u65b9\u53ef\u4ee5\u96a8\u6642\u89e3\u9664\u81ea\u5df1\u7684\u975c\u97f3\u72c0\u614b\u3002"},dialOut:{statusMessage:"\u73fe\u5728\u72c0\u614b\u70ba {{status}}"},documentSharing:{title:"\u5206\u4eab\u7684\u6587\u4ef6"},feedback:{average:"\u666e\u901a\u4e2d\u7b49",bad:"\u5f88\u5dee",detailsLabel:"\u544a\u8a34\u6211\u5011\u95dc\u65bc\u672c\u6b21\u6703\u8b70\u4f7f\u7528\u4e0a\u66f4\u591a\u7d50\u679c\u3002",good:"\u5f88\u597d",rateExperience:"\u8acb\u60a8\u8a55\u5206\u672c\u6b21\u6703\u8b70\u7684\u9ad4\u9a57\u6548\u679c",veryBad:"\u6975\u5dee",veryGood:"\u6975\u597d"},incomingCall:{answer:"\u63a5\u901a",audioCallTitle:"\u4f86\u96fb",decline:"\u89e3\u9664",productLabel:"\u4f86\u81ea Jitsi Meet",videoCallTitle:"\u8996\u8a0a\u4f86\u96fb"},info:{accessibilityLabel:"\u986f\u793a\u8cc7\u8a0a",addPassword:"\u589e\u52a0 $t(lockRoomPassword)",cancelPassword:"\u53d6\u6d88 $t(lockRoomPassword)",conferenceURL:"\u9023\u7d50\uff1a",country:"\u570b\u5bb6",dialANumber:"\u8981\u53c3\u52a0\u60a8\u7684\u6703\u8b70\uff0c\u64a5\u6253\u4ee5\u4e0b\u865f\u78bc\u5176\u4e2d\u4e4b\u4e00\uff0c\u7136\u5f8c\u8f38\u5165 PIN \u78bc\u3002",dialInConferenceID:"PIN \u865f\u78bc\uff1a",dialInNotSupported:"\u62b1\u6b49\uff0c\u76ee\u524d\u4e0d\u652f\u63f4\u96fb\u8a71\u64a5\u5165\u3002",dialInNumber:"\u64a5\u5165\uff1a",dialInSummaryError:"\u76ee\u524d\u89e3\u6790\u64a5\u5165\u8cc7\u8a0a\u932f\u8aa4\u3002\u8acb\u7a0d\u5f8c\u518d\u8a66\u4e00\u6b21\u3002",dialInTollFree:"\u5b8c\u5168\u514d\u8cbb",genericError:"\u7cdf\u7cd5\uff01\u51fa\u932f\u4e86\u3002",inviteLiveStream:"\u8981\u67e5\u770b\u9019\u5834\u6703\u8b70\u7684\u76f4\u64ad\u4e32\u6d41\uff0c\u9ede\u6309\u6b64\u9023\u7d50\uff1a {{url}}",invitePhone:"\u8981\u7528\u96fb\u8a71\u53c3\u52a0\u6703\u8b70\uff0c\u8acb\u4f7f\u7528\uff1a {{number}},,{{conferenceID}}#\n",invitePhoneAlternatives:"\u8981\u627e\u53e6\u4e00\u7d44\u64a5\u5165\u865f\u78bc\uff1f\n\u8acb\u898b\u6703\u8b70\u64a5\u5165\u865f\u78bc\uff1a {{url}}\n\n\n\u5982\u679c\u4e5f\u8981\u7528\u5ba4\u5167\u96fb\u8a71\u64a5\u6253\uff0c\u4e0d\u7528\u9023\u63a5\u8a9e\u97f3\u9032\u884c\u52a0\u5165\uff1a {{silentUrl}}",inviteURLFirstPartGeneral:"\u60a8\u53d7\u9080\u53c3\u52a0\u6703\u8b70\u3002",inviteURLFirstPartPersonal:"{{name}} \u6b63\u5728\u9080\u8acb\u60a8\u52a0\u5165\u6703\u8b70\u3002\n",inviteURLSecondPart:"\n\u52a0\u5165\u6703\u8b70\uff1a\n{{url}}\n",liveStreamURL:"\u76f4\u64ad\u4e32\u6d41\uff1a",moreNumbers:"\u66f4\u591a\u6210\u54e1",noNumbers:"\u7121\u64a5\u5165\u865f\u78bc\u3002",noPassword:"\u7121",noRoom:"\u6c92\u6709\u6703\u8b70\u5ba4\u662f\u6307\u5b9a\u8981\u64ad\u6253\u9032\u5165\u3002",numbers:"\u64a5\u5165\u865f\u78bc",password:"$t(lockRoomPasswordUppercase)\uff1a",title:"\u5206\u4eab",tooltip:"\u986f\u793a\u6b64\u6703\u8b70\u7684\u9023\u7d50\u53ca\u96fb\u8a71\u64a5\u5165\u865f\u78bc",label:"\u6703\u8b70\u8cc7\u8a0a"},inviteDialog:{alertText:"\u9080\u8acb\u67d0\u4e9b\u53c3\u8207\u8005\u5931\u6557\u3002",header:"\u9080\u8acb",searchCallOnlyPlaceholder:"\u8f38\u5165\u96fb\u8a71\u865f\u78bc",searchPeopleOnlyPlaceholder:"\u641c\u5c0b\u53c3\u8207\u8005",searchPlaceholder:"\u53c3\u8207\u8005\u6216\u96fb\u8a71\u865f\u78bc",send:"\u767c\u9001"},inlineDialogFailure:{msg:"\u597d\u50cf\u6709\u9ede\u5361\u5361\u4e0d\u9806\u3002",retry:"\u91cd\u8a66",support:"\u652f\u63f4",supportMsg:"\u5982\u679c\u9019\u6a23\u72c0\u6cc1\u4e00\u76f4\u767c\u751f\uff0c\u8acb\u806f\u7d61"},keyboardShortcuts:{focusLocal:"\u805a\u7126\u65bc\u81ea\u5df1\u7684\u5f71\u50cf",focusRemote:"\u805a\u7126\u65bc\u53e6\u4e00\u4eba\u7684\u5f71\u50cf",fullScreen:"\u89c0\u770b\u6216\u96e2\u958b\u5168\u87a2\u5e55",keyboardShortcuts:"\u5feb\u6377\u9375",localRecording:"\u986f\u793a\u6216\u96b1\u85cf\u672c\u6a5f\u7aef\u9304\u5f71\u64cd\u63a7",mute:"\u975c\u97f3\u6216\u89e3\u9664\u975c\u97f3",pushToTalk:"\u6309\u9375\u901a\u8a71",raiseHand:"\u8209\u624b\u767c\u8a00\u6216\u4e0d\u4f5c\u767c\u8a00",showSpeakerStats:"\u986f\u793a\u767c\u8a00\u8005\u6578\u64da",toggleChat:"\u958b\u555f\u6216\u95dc\u9589\u4ea4\u8ac7",toggleFilmstrip:"\u986f\u793a\u6216\u96b1\u85cf\u5f71\u7247\u7e2e\u5716",toggleScreensharing:"\u5728\u651d\u5f71\u93e1\u982d\u548c\u87a2\u5e55\u5206\u4eab\u4e4b\u9593\u9032\u884c\u5207\u63db",toggleShortcuts:"\u986f\u793a\u6216\u96b1\u85cf\u9375\u76e4\u5feb\u6377\u9375",videoMute:"\u555f\u52d5\u6216\u505c\u6b62\u81ea\u5df1\u7684\u651d\u5f71\u88dd\u7f6e",videoQuality:"\u7ba1\u7406\u901a\u8a71\u54c1\u8cea"},liveStreaming:{busy:"\u6211\u5011\u6b63\u5728\u91cb\u653e\u4e32\u6d41\u8cc7\u6e90\u3002\u8acb\u904e\u5e7e\u5206\u9418\u5f8c\u518d\u8a66\u3002",busyTitle:"\u5168\u90e8\u4e32\u6d41\u8a2d\u5099\u6b63\u5728\u5fd9\u788c",changeSignIn:"\u5207\u63db\u5e33\u865f\u3002",choose:"\u9078\u64c7\u76f4\u64ad\u4e32\u6d41",chooseCTA:"\u8acb\u9078\u64c7\u76f4\u64ad\u4e32\u6d41\u9078\u9805\u3002\u60a8\u76ee\u524d\u662f\u4ee5 {{email}} \u8eab\u4efd\u767b\u5165\u3002",enterStreamKey:"\u5728\u6b64\u8f38\u5165\u60a8\u7684 YouTube \u76f4\u64ad\u4e32\u6d41\u5bc6\u9470\u3002",error:"\u76f4\u64ad\u4e32\u6d41\u5931\u6557\u3002\u8acb\u91cd\u8a66\u3002",errorAPI:"\u5728\u53d6\u7528\u60a8\u7684 YouTube \u76f4\u64ad\u4e32\u6d41\u6642\u767c\u751f\u554f\u984c\u3002\u8acb\u91cd\u65b0\u767b\u5165\u3002",errorLiveStreamNotEnabled:"\u76f4\u64ad\u4e32\u6d41\u5728 {{email}} \u5c1a\u672a\u555f\u7528\u3002\u8acb\u958b\u555f\u76f4\u64ad\u4e32\u6d41\u6216\u767b\u5165\u6709\u555f\u7528\u76f4\u64ad\u4e32\u6d41\u7684\u5e33\u6236\u3002",expandedOff:"\u76f4\u64ad\u4e32\u6d41\u5df2\u505c\u6b62",expandedOn:"\u6703\u8b70\u4e32\u6d41\u76ee\u524d\u9001\u81f3 YouTube \u3002",expandedPending:"\u76f4\u64ad\u4e32\u6d41\u6b63\u88ab\u555f\u52d5...",failedToStart:"\u76f4\u64ad\u4e32\u6d41\u555f\u52d5\u5931\u6557",getStreamKeyManually:"\u6211\u5011\u7121\u6cd5\u89e3\u6790\u4efb\u4f55\u76f4\u64ad\u4e32\u6d41\uff0c\u8acb\u5f9e YouTube \u53d6\u5f97\u60a8\u7684\u76f4\u64ad\u4e32\u6d41 Key \u3002",invalidStreamKey:"\u76f4\u64ad\u4e32\u6d41 Key \u53ef\u80fd\u4e0d\u6b63\u78ba\u3002",off:"\u76f4\u64ad\u4e32\u6d41\u5df2\u7d93\u505c\u6b62",offBy:"{{name}} \u505c\u6b62\u4e86\u76f4\u64ad\u4e32\u6d41",on:"\u76f4\u64ad\u4e32\u6d41\u4e2d",onBy:"{{name}} \u555f\u52d5\u4e86\u76f4\u64ad\u4e32\u6d41",pending:"\u555f\u52d5\u76f4\u64ad\u4e32\u6d41...",serviceName:"\u76f4\u64ad\u4e32\u6d41\u670d\u52d9",signedInAs:"\u60a8\u76ee\u524d\u767b\u5165\u540d\u7a31\u70ba\uff1a",signIn:"\u4f7f\u7528 Google \u5e33\u6236\u767b\u5165",signInCTA:"\u8f38\u5165 YouTube \u76f4\u64ad\u4e32\u6d41\u5bc6\u9470\uff0c\u6216\u767b\u5165 YouTube \u5e33\u865f\u3002",signOut:"\u767b\u51fa",start:"\u555f\u52d5\u76f4\u64ad\u4e32\u6d41",streamIdHelp:"\u9019\u662f\u4ec0\u9ebc\uff1f",unavailableTitle:"\u76f4\u64ad\u4e32\u6d41\u7121\u6cd5\u4f7f\u7528",googlePrivacyPolicy:"Google \u96b1\u79c1\u6b0a\u653f\u7b56",youtubeTerms:"YouTube \u670d\u52d9\u689d\u6b3e"},localRecording:{clientState:{off:"\u95dc",on:"\u958b",unknown:"\u4e0d\u660e"},dialogTitle:"\u672c\u5730\u7aef\u9304\u5f71\u63a7\u5236",duration:"\u671f\u9593",durationNA:"\u4e0d\u9069\u7528",encoding:"\u7de8\u78bc\u4e2d",label:"LOR",labelToolTip:"\u672c\u5730\u7aef\u9304\u5f71\u6295\u5165\u4e2d",localRecording:"\u672c\u5730\u7aef\u9304\u5f71\u4e2d",me:"\u81ea\u5df1",messages:{engaged:"\u672c\u5730\u7aef\u9304\u5f71\u5df2\u6295\u5165\u3002",finished:"\u9304\u5f71\u968e\u6bb5 {{token}} \u5df2\u5b8c\u6210\u3002\u8acb\u50b3\u9001\u9304\u5f71\u6a94\u6848\u81f3\u4e3b\u6301\u4eba\u3002",finishedModerator:"\u9304\u5f71\u968e\u6bb5 {{token}} \u5df2\u5b8c\u6210\u3002\u672c\u5730\u7aef\u9304\u5f71\u8ffd\u8e64\u5df2\u5b58\u6a94\u3002\u8acb\u8981\u6c42\u5404\u53c3\u8207\u8005\u63d0\u4ea4\u5176\u9304\u5f71\u6a94\u6848\u3002",notModerator:"\u60a8\u4e0d\u662f\u4e3b\u6301\u4eba\uff0c\u7121\u6cd5\u555f\u52d5\u6216\u505c\u6b62\u672c\u5730\u7aef\u9304\u5f71\u3002"},moderator:"\u4e3b\u6301\u4eba",no:"\u5426",participant:"\u53c3\u8207\u8005",participantStats:"\u53c3\u8207\u8005\u72c0\u614b",sessionToken:"\u5de5\u4f5c\u968e\u6bb5\u6a19\u8a18",start:"\u555f\u52d5\u9304\u5f71",stop:"\u505c\u6b62\u9304\u5f71",yes:"\u662f\u7684"},lockRoomPassword:"\u5bc6\u78bc",lockRoomPasswordUppercase:"\u5bc6\u78bc",me:"\u6211",notify:{connectedOneMember:"{{name}} \u52a0\u5165\u4e86\u6703\u8b70",connectedThreePlusMembers:"{{name}} \u53ca {{count}} \u4f4d\u4eba\u54e1\u52a0\u5165\u4e86\u6703\u8b70",connectedTwoMembers:"{{first}} \u53ca {{second}} \u52a0\u5165\u4e86\u6703\u8b70",disconnected:"\u5df2\u7d93\u4e2d\u65b7\u9023\u63a5",focus:"\u6703\u8b70\u7126\u9ede",focusFail:"{{component}} \u7121\u6cd5\u4f7f\u7528 - \u8acb\u5728 {{ms}} \u79d2\u5f8c\u91cd\u8a66",grantedTo:"\u4e3b\u6301\u4eba\u6b0a\u9650\u5df2\u6388\u4e88 {{to}} \uff01",invitedOneMember:"{{name}} \u5df2\u53d7\u9080\u8acb",invitedThreePlusMembers:"{{name}} \u53ca {{count}} \u4f4d\u4eba\u54e1\u5df2\u53d7\u9080\u8acb",invitedTwoMembers:"{{first}} \u53ca {{second}} \u5df2\u53d7\u9080\u8acb",kickParticipant:"{{kicked}} \u5df2\u88ab {{kicker}} \u8e22\u51fa\u6703\u8b70",me:"\u81ea\u5df1",moderator:"\u4e3b\u6301\u4eba\u6b0a\u9650\u5df2\u7d93\u53d6\u5f97\uff01",muted:"\u60a8\u5df2\u7d93\u555f\u52d5\u901a\u8a71\uff0c\u8655\u65bc\u975c\u97f3\u3002",mutedTitle:"\u60a8\u76ee\u524d\u8655\u65bc\u975c\u97f3\uff01",mutedRemotelyTitle:"\u60a8\u5df2\u7d93\u88ab {{participantDisplayName}} \u8a2d\u70ba\u975c\u97f3\u4e86\uff01",mutedRemotelyDescription:"\u7576\u60a8\u6e96\u5099\u597d\u8981\u767c\u8a00\uff0c\u5c31\u53ef\u4ee5\u53d6\u6d88\u975c\u97f3\u3002\u7576\u60a8\u7d50\u675f\u4e86\uff0c\u5728\u6703\u8b70\u4e2d\u8981\u907f\u958b\u566a\u97f3\uff0c\u5373\u53ef\u56de\u5fa9\u6210\u975c\u97f3\u3002",passwordRemovedRemotely:"$t(lockRoomPasswordUppercase) \u5df2\u88ab\u5176\u4ed6\u53c3\u8207\u8005\u79fb\u9664",passwordSetRemotely:"$t(lockRoomPasswordUppercase) \u5df2\u88ab\u5176\u4ed6\u53c3\u8207\u8005\u8a2d\u5b9a",raisedHand:"{{name}} \u60f3\u8981\u767c\u8a00\u3002",somebody:"\u67d0\u4eba",startSilentTitle:"\u60a8\u52a0\u5165\u4e86\u6703\u8b70\u800c\u7121\u8072\u97f3\u8f38\u51fa\uff01",startSilentDescription:"\u91cd\u65b0\u52a0\u5165\u6703\u8b70\u4ee5\u555f\u7528\u8a9e\u97f3",suboptimalBrowserWarning:"\u6050\u6015\u60a8\u672c\u6b21\u6703\u8b70\u9ad4\u9a57\u4e26\u4e0d\u592a\u597d\uff0c\u6211\u5011\u6703\u60f3\u8fa6\u6cd5\u6539\u9032\u7684\u3002\u4f46\u5728\u6b64\u4e4b\u524d\uff0c\u656c\u8acb\u4f7f\u7528 \u5b8c\u5168\u652f\u63f4\u7684\u700f\u89bd\u5668 \u3002",suboptimalExperienceTitle:"\u700f\u89bd\u5668\u8b66\u544a",unmute:"\u53d6\u6d88\u975c\u97f3",newDeviceCameraTitle:"\u5075\u6e2c\u5230\u65b0\u7684\u651d\u5f71\u88dd\u7f6e",newDeviceAudioTitle:"\u5075\u6e2c\u5230\u65b0\u7684\u97f3\u6548\u88dd\u7f6e",newDeviceAction:"\u4f7f\u7528"},passwordSetRemotely:"\u88ab\u5176\u4ed6\u53c3\u8207\u8005\u8a2d\u5b9a",passwordDigitsOnly:"\u63d0\u6607\u5230 {{number}} \u4f4d\u5143",poweredby:"\u6280\u8853\u652f\u63f4",presenceStatus:{busy:"\u5fd9\u7dda",calling:"\u4f86\u96fb...",connected:"\u5df2\u7d93\u9023\u63a5",connecting:"\u9023\u7dda\u4e2d...",connecting2:"\u901a\u8a71\u4e2d*...",disconnected:"\u5df2\u7d93\u4e2d\u65b7\u9023\u63a5",expired:"\u903e\u6642\u672a\u63a5",ignored:"\u5ffd\u7565\u4e0d\u63a5",initializingCall:"\u64ad\u6253\u96fb\u8a71...",invited:"\u53d7\u9080\u8acb\u7684",rejected:"\u62d2\u63a5",ringing:"\u9234\u9234\u9234..."},profile:{setDisplayNameLabel:"\u8a2d\u5b9a\u60a8\u7684\u986f\u793a\u540d\u7a31",setEmailInput:"\u8f38\u5165\u60a8\u7684\u96fb\u5b50\u4fe1\u7bb1",setEmailLabel:"\u8a2d\u7f6e\u60a8\u7684\u5927\u982d\u4eba\u50cf\u96fb\u5b50\u4fe1\u7bb1",title:"\u7c21\u4ecb"},raisedHand:"\u8acb\u6c42\u767c\u8a00",recording:{authDropboxText:"\u4e0a\u50b3\u81f3 Dropbox",availableSpace:"\u53ef\u7528\u7a7a\u9593\uff1a {{spaceLeft}} MB (\u5927\u7d04\u9304\u5f71\u6642\u9593 {{duration}} \u5206\u9418)",beta:"BETA",busy:"\u6211\u5011\u6b63\u5728\u91cb\u653e\u9304\u5f71\u8cc7\u6e90\u3002\u8acb\u904e\u5e7e\u5206\u9418\u5f8c\u518d\u8a66\u3002",busyTitle:"\u5168\u90e8\u9304\u5f71\u76ee\u524d\u5fd9\u788c",error:"\u9304\u5f71\u5931\u6557\u3002\u8acb\u518d\u6b21\u91cd\u8a66\u3002",expandedOff:"\u9304\u5f71\u5df2\u7d93\u505c\u6b62",expandedOn:"\u6b64\u6703\u8b70\u76ee\u524d\u6b63\u5728\u9304\u5f71\u3002",expandedPending:"\u9304\u5f71\u6b63\u5728\u555f\u52d5...",failedToStart:"\u9304\u5f71\u555f\u52d5\u5931\u6557",fileSharingdescription:"\u5206\u4eab\u9304\u5f71\u7d66\u6703\u8b70\u53c3\u8207\u8005",live:"\u76f4\u64ad",loggedIn:"\u4ee5 {{userName}} \u767b\u5165",off:"\u9304\u5f71\u5df2\u7d93\u505c\u6b62",offBy:"{{name}} \u505c\u6b62\u4e86\u9304\u5f71",on:"\u9304\u5f71\u4e2d",onBy:"{{name}} \u555f\u52d5\u4e86\u9304\u5f71",pending:"\u6e96\u5099\u9304\u5f71\u6b64\u6703\u8b70...",rec:"REC \u9304\u5f71",serviceDescription:"\u60a8\u7684\u9304\u5f71\u6703\u88ab\u5b58\u5728\u9304\u5f71\u4f3a\u670d\u5668\u4e2d",serviceName:"\u9304\u5f71\u4f3a\u670d",signIn:"\u767b\u5165",signOut:"\u767b\u51fa",unavailable:"\u5594\u54e6\uff01{{serviceName}} \u76ee\u524d\u7121\u6cd5\u4f7f\u7528\u3002\u6211\u5011\u6b63\u5728\u89e3\u6c7a\u6b64\u554f\u984c\uff0c\u8acb\u7a0d\u5f8c\u518d\u8a66\u3002",unavailableTitle:"\u9304\u5f71\u7121\u6cd5\u4f7f\u7528"},sectionList:{pullToRefresh:"\u62c9\u52d5\u4ee5\u91cd\u65b0\u6574\u7406"},settings:{calendar:{about:"\u6b64 {{appName}} \u884c\u4e8b\u66c6\u6574\u5408\u662f\u5b89\u5168\u5b58\u53d6\u60a8\u7684\u884c\u4e8b\u66c6\uff0c\u6240\u4ee5\u53ef\u4ee5\u8b80\u53d6\u5373\u5c07\u767c\u751f\u7684\u4e8b\u4ef6\u3002",disconnect:"\u4e2d\u65b7\u9023\u63a5",microsoftSignIn:"\u4f7f\u7528 Microsoft \u5e33\u6236\u767b\u5165",signedIn:"\u76ee\u524d\u662f\u4ee5 {{email}} \u4f86\u5b58\u53d6\u884c\u4e8b\u66c6\u4e8b\u4ef6\u3002\u9ede\u6309\u4e0b\u65b9\u53d6\u6d88\u9023\u63a5\u9215\u53ef\u4ee5\u505c\u6b62\u5b58\u53d6\u884c\u4e8b\u66c6\u4e8b\u4ef6\u3002",title:"\u884c\u4e8b\u66c6"},devices:"\u88dd\u7f6e",followMe:"\u5168\u90e8\u4eba\u8ddf\u96a8\u4eff\u7167\u6211",language:"\u8a9e\u8a00",loggedIn:"\u4ee5 {{name}} \u767b\u5165",moderator:"\u4e3b\u6301\u4eba",more:"\u66f4\u591a",name:"\u540d\u7a31",noDevice:"\u7121",selectAudioOutput:"\u97f3\u8a0a\u8f38\u51fa",selectCamera:"\u651d\u5f71\u88dd\u7f6e",selectMic:"\u9ea5\u514b\u98a8",startAudioMuted:"\u5168\u90e8\u4eba\u555f\u52d5\u6642\u8655\u65bc\u975c\u97f3",startVideoMuted:"\u5168\u90e8\u4eba\u555f\u52d5\u6642\u8655\u65bc\u96b1\u85cf",title:"\u8a2d\u7f6e",speakers:"\u63da\u8072\u5668",microphones:"\u9ea5\u514b\u98a8"},settingsView:{advanced:"\u9032\u968e",alertOk:"\u78ba\u5b9a",alertTitle:"\u8b66\u544a",alertURLText:"\u6240\u8f38\u5165\u7684\u4f3a\u670d\u5668 URL \u662f\u7121\u6548\u7684",buildInfoSection:"\u5efa\u7acb\u8cc7\u8a0a",conferenceSection:"\u6703\u8b70",disableCallIntegration:"\u505c\u7528\u539f\u751f\u96fb\u8a71\u6574\u5408",disableP2P:"\u505c\u7528\u7aef\u5c0d\u7aef\u6a21\u5f0f",displayName:"\u986f\u793a\u540d\u7a31",email:"\u96fb\u5b50\u90f5\u4ef6",header:"\u8a2d\u7f6e",profileSection:"\u7c21\u4ecb",serverURL:"\u4f3a\u670d\u5668 URL",showAdvanced:"\u986f\u793a\u9032\u968e\u8a2d\u5b9a",startWithAudioMuted:"\u555f\u52d5\u4e26\u975c\u97f3",startWithVideoMuted:"\u555f\u52d5\u4e26\u95dc\u9589\u5f71\u50cf",version:"\u7248\u672c"},share:{dialInfoText:"\n\n=====\n\n\u6b63\u8981\u64a5\u5165\u60a8\u7684\u6703\u8b70\u96fb\u8a71\uff1f\n\n{{defaultDialInNumber}} \u9ede\u6309\u6b64\u9023\u7d50\u4f86\u67e5\u770b\u6b64\u6703\u8b70\u7684\u96fb\u8a71\u64a5\u5165\u865f\u78bc\n{{dialInfoPageUrl}}",mainText:"\u6309\u4e00\u4e0b\u4e0b\u65b9\u9023\u7d50\u52a0\u5165\u6703\u8b70\uff1a\n{{roomUrl}}"},speaker:"\u767c\u8a00\u8005",speakerStats:{hours:"{{count}}\u6642",minutes:"{{count}}\u5206",name:"\u540d\u7a31",seconds:"{{count}}\u79d2",speakerStats:"\u767c\u8a00\u8005\u6578\u64da",speakerTime:"\u767c\u8a00\u8005\u6642\u9593"},startupoverlay:{policyText:" ",title:"{{app}} \u9700\u8981\u4f7f\u7528\u60a8\u7684\u9ea5\u514b\u98a8\u548c\u651d\u5f71\u88dd\u7f6e\u3002"},suspendedoverlay:{rejoinKeyTitle:"\u91cd\u65b0\u52a0\u5165",text:"\u6309\u4e0b \u91cd\u65b0\u52a0\u5165 \u6309\u9215\u91cd\u65b0\u9023\u63a5\u3002",title:"\u7531\u65bc\u96fb\u8166\u9032\u5165\u4f11\u7720\uff0c\u60a8\u7684\u8996\u8a0a\u901a\u8a71\u5df2\u7d93\u4e2d\u65b7\u3002"},toolbar:{accessibilityLabel:{audioOnly:"\u5207\u63db\u50c5\u6709\u8072\u97f3",audioRoute:"\u9078\u64c7\u8072\u97f3\u88dd\u7f6e",callQuality:"\u7ba1\u7406\u5f71\u50cf\u54c1\u8cea",cc:"\u5207\u63db\u5b57\u5e55",chat:"\u5207\u63db\u4ea4\u8ac7\u8996\u7a97",document:"\u5207\u63db\u5206\u4eab\u7684\u6587\u4ef6",download:"\u4e0b\u8f09\u6211\u5011\u7684 APPs",feedback:"\u7559\u8a00\u56de\u5831",fullScreen:"\u5207\u63db\u5168\u87a2\u5e55",hangup:"\u96e2\u958b\u4f86\u96fb",help:"\u8aaa\u660e",invite:"\u9080\u8acb\u4eba\u54e1",kick:"\u8e22\u51fa\u53c3\u8207\u8005",localRecording:"\u5207\u63db\u672c\u5730\u7aef\u9304\u5f71\u63a7\u5236",lockRoom:"\u5207\u63db\u6703\u8b70\u5bc6\u78bc",moreActions:"\u5207\u63db\u66f4\u591a\u52d5\u4f5c\u529f\u80fd\u8868",moreActionsMenu:"\u66f4\u591a\u52d5\u4f5c\u529f\u80fd\u8868",mute:"\u5207\u63db\u975c\u97f3",pip:"\u5207\u63db\u5b50\u6bcd\u756b\u9762\u6a21\u5f0f",privateMessage:"\u767c\u9001\u79c1\u4eba\u8a0a\u606f",profile:"\u7de8\u8f2f\u60a8\u7684\u7c21\u4ecb",raiseHand:"\u5207\u63db\u8209\u624b",recording:"\u5207\u63db\u9304\u5f71",remoteMute:"\u975c\u97f3\u53c3\u8207\u8005",Settings:"\u5207\u63db\u8a2d\u5b9a",sharedvideo:"\u5207\u63db Youtube \u5f71\u7247\u5206\u4eab",shareRoom:"\u9080\u8acb\u67d0\u4eba",shareYourScreen:"\u5207\u63db\u87a2\u5e55\u5206\u4eab",shortcuts:"\u5207\u63db\u5feb\u6377\u9375",show:"\u986f\u793a\u5728\u53f0\u4e0a",speakerStats:"\u5207\u63db\u767c\u8a00\u4eba\u7d71\u8a08",tileView:"\u5207\u63db\u5e73\u92ea\u6aa2\u8996",toggleCamera:"\u5207\u63db\u651d\u5f71\u6a5f",videomute:"\u5207\u63db\u7121\u5f71\u50cf",videoblur:"\u5207\u63db\u5f71\u50cf\u6a21\u7cca",toggleFilmstrip:"\u5207\u63db\u5e7b\u71c8\u7247",muteEveryone:"\u975c\u97f3\u6240\u6709\u4eba",moreOptions:"\u986f\u793a\u66f4\u591a\u9078\u9805"},addPeople:"\u65b0\u589e\u4eba\u54e1\u5230\u60a8\u7684\u901a\u8a71\u4e2d",audioOnlyOff:"\u505c\u7528\u4f4e\u983b\u5bec\u6a21\u5f0f",audioOnlyOn:"\u555f\u7528\u4f4e\u983b\u5bec\u6a21\u5f0f",audioRoute:"\u9078\u64c7\u8072\u97f3\u88dd\u7f6e",authenticate:"\u8a8d\u8b49",callQuality:"\u7ba1\u7406\u5f71\u50cf\u54c1\u8cea",chat:"\u958b\u555f/\u95dc\u9589 \u4ea4\u8ac7",closeChat:"\u95dc\u9589\u4ea4\u8ac7",documentClose:"\u95dc\u9589\u5206\u4eab\u7684\u6587\u4ef6\u6a94\u6848",documentOpen:"\u958b\u555f\u5206\u4eab\u7684\u6587\u4ef6\u6a94\u6848",download:"\u4e0b\u8f09\u6211\u5011\u7684 APPs",enterFullScreen:"\u89c0\u770b\u5168\u87a2\u5e55",enterTileView:"\u9032\u5165\u5e73\u92ea\u6aa2\u8996",exitFullScreen:"\u8df3\u51fa\u5168\u87a2\u5e55",exitTileView:"\u8df3\u51fa\u5e73\u92ea\u6aa2\u8996",feedback:"\u7559\u8a00\u56de\u5831",hangup:"\u7559\u8a00",help:"\u8aaa\u660e",invite:"\u9080\u8acb\u4eba\u54e1",login:"\u767b\u5165",logout:"\u767b\u51fa",lowerYourHand:"\u653e\u4e0b\u8209\u624b",moreActions:"\u66f4\u591a\u52d5\u4f5c",mute:"\u975c\u97f3 / \u89e3\u9664\u975c\u97f3",noAudioSignalTitle:"\u60a8\u7684\u9ea5\u514b\u98a8\u6c92\u6709\u8f38\u5165\u8a0a\u865f\uff01",noAudioSignalDesc:"\u5982\u679c\u60a8\u6c92\u6709\u7279\u5225\u5f9e\u7cfb\u7d71\u8a2d\u5b9a\u6216\u786c\u9ad4\u975c\u97f3\uff0c\u8acb\u8003\u616e\u66f4\u63db\u88dd\u7f6e\u3002",noAudioSignalDescSuggestion:"\u5982\u679c\u60a8\u6c92\u6709\u7279\u5225\u5f9e\u7cfb\u7d71\u8a2d\u5b9a\u6216\u786c\u9ad4\u975c\u97f3\uff0c\u8acb\u8003\u616e\u5207\u63db\u81f3\u5efa\u8b70\u88dd\u7f6e\u3002",openChat:"\u958b\u555f\u4ea4\u8ac7",pip:"\u9032\u5165\u5b50\u6bcd\u756b\u9762\u6a21\u5f0f",privateMessage:"\u767c\u9001\u79c1\u4eba\u8a0a\u606f",profile:"\u7de8\u8f2f\u60a8\u7684\u7c21\u4ecb",raiseHand:"\u8209\u624b/\u53d6\u6d88 \u8acb\u6c42\u767c\u8a00",raiseYourHand:"\u8209\u624b\u767c\u8a00",Settings:"\u8a2d\u7f6e",sharedvideo:"\u5206\u4eab YouTube \u5f71\u7247",shareRoom:"\u9080\u8acb\u67d0\u4eba",shortcuts:"\u67e5\u770b\u5feb\u6377\u9375",speakerStats:"\u767c\u8a00\u8005\u6578\u64da",startScreenSharing:"\u555f\u52d5\u87a2\u5e55\u5206\u4eab",startSubtitles:"\u555f\u52d5\u5b57\u5e55",stopScreenSharing:"\u505c\u6b62\u87a2\u5e55\u5206\u4eab",stopSubtitles:"\u505c\u6b62\u5b57\u5e55",stopSharedVideo:"\u505c\u6b62 YouTube \u5f71\u7247",talkWhileMutedPopup:"\u60a8\u8981\u767c\u8a00\u55ce? \u76ee\u524d\u60a8\u8655\u65bc\u975c\u97f3\u3002",tileViewToggle:"\u5207\u63db\u5e73\u92ea\u6aa2\u8996",toggleCamera:"\u5207\u63db\u651d\u5f71\u6a5f",videomute:"\u555f\u52d5/\u505c\u6b62 \u651d\u5f71\u88dd\u7f6e",startvideoblur:"\u6a21\u7cca\u6211\u7684\u80cc\u666f\u756b\u9762",stopvideoblur:"\u505c\u7528\u80cc\u666f\u6a21\u7cca\u756b\u9762",noisyAudioInputDesc:"\u566a\u97f3\u807d\u8d77\u4f86\u662f\u5f9e\u9ea5\u514b\u98a8\u50b3\u4f86\u7684\uff0c\u8acb\u8003\u616e\u975c\u97f3\u6216\u66f4\u63db\u88dd\u7f6e\u3002",noisyAudioInputTitle:"\u60a8\u7684\u9ea5\u514b\u98a8\u7591\u4f3c\u6709\u96dc\u97f3\uff01",noAudioSignalDialInLinkDesc:"\u64a5\u5165\u865f\u78bc",noAudioSignalDialInDesc:"\u60a8\u4ea6\u53ef\u4f7f\u7528\u4e0b\u8ff0\u65b9\u5f0f\u64a5\u5165\uff1a",muteEveryone:"\u975c\u97f3\u6240\u6709\u4eba",moreOptions:"\u66f4\u591a\u9078\u9805"},transcribing:{ccButtonTooltip:"\u555f\u52d5/\u505c\u6b62 \u5b57\u5e55",error:"\u8f49\u9304\u5931\u6557\u3002\u8acb\u91cd\u8a66\u3002",expandedLabel:"\u76ee\u524d\u8f49\u9304\u958b\u555f",failedToStart:"\u8f49\u9304\u555f\u52d5\u5931\u6557",labelToolTip:"\u6b64\u6703\u8b70\u6b63\u5728\u8f49\u9304",off:"\u8f49\u9304\u5df2\u505c\u6b62",pending:"\u6e96\u5099\u8f49\u9304\u6703\u8b70...",start:"\u555f\u52d5\u986f\u793a\u5b57\u5e55",stop:"\u505c\u6b62\u986f\u793a\u5b57\u5e55",tr:"TR \u8f49\u9304"},userMedia:{androidGrantPermissions:"\u7576\u700f\u89bd\u5668\u8981\u6c42\u6b0a\u9650\u6642\uff0c\u8acb\u9078\u64c7 \u5141\u8a31\u3002",chromeGrantPermissions:"\u7576\u700f\u89bd\u5668\u8981\u6c42\u6b0a\u9650\u6642\uff0c\u8acb\u9078\u64c7 \u5141\u8a31\u3002",edgeGrantPermissions:"\u7576\u700f\u89bd\u5668\u8981\u6c42\u6b0a\u9650\u6642\uff0c\u8acb\u9078\u64c7 \u662f\u7684\u3002",electronGrantPermissions:"\u8acb\u5141\u8a31\u6b0a\u9650\u4f7f\u7528\u60a8\u7684\u651d\u5f71\u88dd\u7f6e\u548c\u9ea5\u514b\u98a8",firefoxGrantPermissions:"\u7576\u700f\u89bd\u5668\u8acb\u6c42\u6b0a\u9650\u6642\uff0c\u8acb\u9078\u64c7\u5206\u4eab\u9078\u53d6\u88dd\u7f6e\u3002",iexplorerGrantPermissions:"\u7576\u700f\u89bd\u5668\u8981\u6c42\u6b0a\u9650\u6642\uff0c\u8acb\u9078\u64c7 \u78ba\u5b9a\u3002",nwjsGrantPermissions:"\u8acb\u5141\u8a31\u6b0a\u9650\u4f7f\u7528\u60a8\u7684\u651d\u5f71\u88dd\u7f6e\u548c\u9ea5\u514b\u98a8",operaGrantPermissions:"\u7576\u700f\u89bd\u5668\u8981\u6c42\u6b0a\u9650\u6642\uff0c\u8acb\u9078\u64c7 \u5141\u8a31\u3002","react-nativeGrantPermissions":"\u7576\u700f\u89bd\u5668\u8981\u6c42\u6b0a\u9650\u6642\uff0c\u8acb\u9078\u64c7 \u5141\u8a31\u3002",safariGrantPermissions:"\u7576\u700f\u89bd\u5668\u8981\u6c42\u6b0a\u9650\u6642\uff0c\u8acb\u9078\u64c7 \u78ba\u5b9a\u3002"},videoSIPGW:{busy:"\u6211\u5011\u6b63\u5728\u6e05\u7406\u91cb\u653e\u8cc7\u6e90\u3002\u8acb\u904e\u5e7e\u5206\u9418\u5f8c\u518d\u8a66\u3002",busyTitle:"\u6703\u8b70\u5ba4\u670d\u52d9\u6b63\u8655\u65bc\u5fd9\u788c\u4e2d",errorAlreadyInvited:"{{displayName}} \u5df2\u7d93\u9080\u8acb",errorInvite:"\u6703\u8b70\u5c1a\u672a\u958b\u59cb\uff0c\u8acb\u7a0d\u5f8c\u518d\u8a66\u3002",errorInviteFailed:"\u6211\u5011\u6b63\u5728\u89e3\u6c7a\u554f\u984c\u3002\u8acb\u7a0d\u5f8c\u518d\u8a66\u3002",errorInviteFailedTitle:"\u9080\u8acb {{displayName}} \u5931\u6557",errorInviteTitle:"\u932f\u8aa4\u9080\u8acb\u6703\u8b70\u5ba4",pending:"{{displayName}} \u5df2\u53d7\u9080\u8acb"},videoStatus:{audioOnly:"AUD \u8072\u97f3",audioOnlyExpanded:"\u60a8\u76ee\u524d\u8655\u65bc\u4f4e\u983b\u5bec\u6a21\u5f0f\u3002\u5728\u6b64\u6a21\u5f0f\u4e0b\u60a8\u50c5\u6703\u6536\u5230\u8a9e\u97f3\u53ca\u87a2\u5e55\u5206\u4eab\u3002",callQuality:"\u5f71\u50cf\u54c1\u8cea",hd:"HD",hdTooltip:"\u89c0\u770b\u9ad8\u89e3\u6790\u5ea6\u5f71\u50cf HD",highDefinition:"\u9ad8\u89e3\u6790\u5ea6 HD",labelTooiltipNoVideo:"\u7121\u5f71\u50cf",labelTooltipAudioOnly:"\u4f4e\u983b\u5bec\u6a21\u5f0f\u5df2\u555f\u7528",ld:"LD",ldTooltip:"\u89c0\u770b\u4f4e\u89e3\u6790\u5ea6\u5f71\u50cf LD",lowDefinition:"\u4f4e\u89e3\u6790\u5ea6 LD",onlyAudioAvailable:"\u50c5\u6709\u97f3\u8a0a\u53ef\u4ee5\u4f7f\u7528",onlyAudioSupported:"\u5728\u6b64\u700f\u89bd\u5668\u6211\u5011\u50c5\u652f\u63f4\u97f3\u8a0a\u529f\u80fd\u3002",p2pEnabled:"\u9ede\u5c0d\u9ede\u529f\u80fd\u5df2\u7d93\u555f\u7528",p2pVideoQualityDescription:"\u5728\u9ede\u5c0d\u9ede\u6a21\u5f0f\u4e0b\u6536\u5230\u7684\u5f71\u50cf\u54c1\u8cea\u53ea\u80fd\u5728\u9ad8\u6a94\u53ca\u50c5\u6709\u8a9e\u97f3\u9593\u5207\u63db\u3002\u5176\u4ed6\u7684\u8a2d\u5b9a\u5fc5\u9808\u5728\u9ede\u5c0d\u9ede\u9000\u51fa\u5f8c\u624d\u6703\u751f\u6548\u3002",recHighDefinitionOnly:"\u5c07\u6703\u504f\u597d\u4f7f\u7528\u9ad8\u89e3\u6790\u5ea6 HD\u3002",sd:"SD",sdTooltip:"\u89c0\u770b\u6a19\u6e96\u89e3\u6790\u5ea6\u5f71\u50cf SD",standardDefinition:"\u6a19\u6e96\u89e3\u6790\u5ea6 SD"},videothumbnail:{domute:"\u975c\u97f3",flip:"\u7ffb\u8f49",kick:"\u8e22\u51fa",moderator:"\u4e3b\u6301\u4eba",mute:"\u53c3\u8207\u8005\u8655\u65bc\u975c\u97f3",muted:"\u8655\u65bc\u975c\u97f3",remoteControl:"\u9060\u7aef\u63a7\u5236",show:"\u986f\u793a\u5728\u53f0\u4e0a",videomute:"\u53c3\u8207\u8005\u5df2\u7d93\u505c\u6b62\u651d\u5f71\u88dd\u7f6e",domuteOthers:"\u975c\u97f3\u5176\u4ed6\u6240\u6709\u4eba"},welcomepage:{accessibilityLabel:{join:"\u9ede\u6309\u5373\u53ef\u52a0\u5165",roomname:"\u8f38\u5165\u6703\u8b70\u5ba4\u540d\u7a31"},appDescription:"\u5feb\u4f86\u4f7f\u7528\u5427\uff0c\u5718\u968a\u5168\u90e8\u6210\u54e1\u90fd\u4f86\u4f7f\u7528\u8996\u8a0a\u901a\u8a71\u3002\u4e8b\u5be6\u4e0a\uff0c\u4efb\u4f55\u8a8d\u8b58\u7684\u4eba\u90fd\u53ef\u4ee5\u9080\u8acb\u3002 {{app}} \u662f\u4e00\u5957\u5b8c\u5168\u52a0\u5bc6\u3001100% \u958b\u653e\u6e90\u78bc\u7684\u8996\u8a0a\u6703\u8b70\u89e3\u6c7a\u65b9\u6848\u3002\u7121\u9700\u8a3b\u518a\u5e33\u865f\uff0c\u7121\u6642\u7121\u523b\u4e0d\u5206\u65e5\u591c\u5747\u53ef\u514d\u8cbb\u4f7f\u7528\u3002",audioVideoSwitch:{audio:"\u8a9e\u97f3",video:"\u5f71\u50cf"},calendar:"\u884c\u4e8b\u66c6",connectCalendarButton:"\u9023\u63a5\u81ea\u5df1\u7684\u884c\u4e8b\u66c6",connectCalendarText:"\u9023\u63a5\u81ea\u5df1\u7684\u884c\u4e8b\u66c6\u4f86\u67e5\u770b\u5728 {{app}} \u4e2d\u7684\u6703\u8b70\u3002\u6b64\u5916\uff0c\u589e\u52a0 {{provider}} \u7684\u6703\u8b70\u81f3\u81ea\u5df1\u7684\u884c\u4e8b\u66c6\uff0c\u53ea\u8981\u9ede\u6309\u4e00\u4e0b\u5373\u53ef\u555f\u52d5\u3002",enterRoomTitle:"\u555f\u52d5\u65b0\u7684\u6703\u8b70",roomNameAllowedChars:"\u6703\u8b70\u7684\u540d\u7a31\u4e0d\u53ef\u5305\u542b\u9019\u4e9b\u5b57\u5143: ?, &, :, ', \", %, #.",go:"\u958b\u59cb",goSmall:"\u958b\u59cb",join:"\u5efa\u7acb / \u52a0\u5165",info:"\u8cc7\u8a0a",privacy:"\u96b1\u79c1",recentList:"\u6700\u8fd1\u4f7f\u7528",recentListDelete:"\u522a\u9664",recentListEmpty:"\u76ee\u524d\u6700\u8fd1\u4f7f\u7528\u662f\u7a7a\u767d\u7684\u3002\u8207\u60a8\u7684\u5718\u968a\u6210\u54e1\u4ea4\u8ac7\uff0c\u5373\u6703\u5728\u6b64\u8655\u627e\u5230\u6700\u8fd1\u4f7f\u7528\u6703\u8b70\u3002",reducedUIText:"\u6b61\u8fce\u4f7f\u7528 {{app}}\uff01",roomname:"\u8f38\u5165\u6703\u8b70\u5ba4\u540d\u7a31",roomnameHint:"\u8acb\u8f38\u5165\u60a8\u60f3\u52a0\u5165\u7684\u6703\u8b70\u5ba4\u540d\u7a31\u6216 URL \u7db2\u5740\u3002\u60a8\u53ef\u4ee5\u7528\u500b\u540d\u7a31\u4f86\u5efa\u7acb\u6703\u8b70\u5ba4\uff0c\u53ea\u8981\u5176\u4ed6\u4eba\u8f38\u5165\u76f8\u540c\u7684\u540d\u7a31\u5c31\u80fd\u52a0\u5165\u6703\u8b70\u5ba4\u5594\u3002",sendFeedback:"\u767c\u9001\u56de\u5831",terms:"\u689d\u6b3e",title:"\u5b89\u5168\u3001\u5168\u529f\u80fd\u3001\u5b8c\u5168\u514d\u8cbb\u7684\u8996\u8a0a\u6703\u8b70",getHelp:"\u53d6\u5f97\u5354\u52a9"},chromeExtensionBanner:{dontShowAgain:"\u4e0d\u518d\u986f\u793a\u6b64\u8a0a\u606f",buttonText:"\u5b89\u88dd Chrome \u64f4\u5145\u5957\u4ef6",installExtensionText:"\u5b89\u88dd\u9069\u7528\u65bc Google \u884c\u4e8b\u66c6\u53ca Office 365 \u6574\u5408\u7684\u64f4\u5145\u5957\u4ef6"},helpView:{header:"\u8aaa\u660e\u4e2d\u5fc3"},lonelyMeetingExperience:{youAreAlone:"\u60a8\u662f\u6703\u8b70\u4e2d\u7684\u552f\u4e00\u4e00\u500b\u4eba",button:"\u9080\u8acb\u5176\u4ed6\u4eba"}}},703,[]); +__d(function(n,a,i,e,s,h,r){s.exports={en:"English",af:"Afrikaans",bg:"Bulgarian",ca:"Catalan",cs:"Czech",da:"Danish",de:"German",el:"Greek",enGB:"English (United Kingdom)",eo:"Esperanto",es:"Spanish",esUS:"Spanish (Latin America)",et:"Estonian",fi:"Finnish",fr:"French",frCA:"French (Canadian)",hr:"Croatian",hu:"Hungarian",hy:"Armenian",it:"Italian",ja:"Japanese",ko:"Korean",nl:"Dutch",oc:"Occitan",pl:"Polish",ptBR:"Portuguese (Brazil)",ru:"Russian",sv:"Swedish",tr:"Turkish",vi:"Vietnamese",zhCN:"Chinese (China)",zhTW:"Chinese (Taiwan)",mn:"\u041c\u043e\u043d\u0433\u043e\u043b"}},704,[]); +__d(function(e,o,i,t,r,n,a){r.exports={addPeople:{add:"\u0423\u0440\u0438\u0445",countryNotSupported:"\u0422\u0430\u043d\u0430\u0439 \u0443\u043b\u0441\u044b\u0433 \u0445\u0430\u0440\u0430\u0430\u0445\u0430\u043d \u0434\u044d\u043c\u0436\u0438\u0445\u0433\u04af\u0439 \u0431\u0430\u0439\u043d\u0430.",countryReminder:"\u0410\u041d\u0423-\u0430\u0430\u0441 \u04e9\u04e9\u0440 \u0443\u043b\u0441\u0440\u0443\u0443 \u0437\u0430\u043b\u0433\u0430\u0445 \u0431\u043e\u043b \u0443\u043b\u0441\u044b\u043d \u043a\u043e\u0434\u043e\u043e \u043e\u0440\u0443\u0443\u043b\u043d\u0430 \u0443\u0443!",disabled:"\u0425\u04af\u043c\u04af\u04af\u0441\u0438\u0439\u0433 \u0443\u0440\u0438\u0445 \u0431\u043e\u043b\u043e\u043c\u0436\u0433\u04af\u0439.",failedToAdd:"\u041e\u0440\u043e\u043b\u0446\u043e\u0433\u0447 \u043d\u044d\u043c\u0436 \u0447\u0430\u0434\u0441\u0430\u043d\u0433\u04af\u0439",footerText:"\u0414\u0443\u0443\u0434\u043b\u0430\u0433\u0430 \u0445\u0438\u0439\u0445 \u0438\u0434\u044d\u0432\u0445\u0433\u04af\u0439.",loading:"\u0425\u04af\u043c\u04af\u04af\u0441 \u0431\u043e\u043b\u043e\u043d \u0443\u0442\u0430\u0441\u043d\u044b \u0434\u0443\u0433\u0430\u0430\u0440\u044b\u0433 \u0445\u0430\u0439\u0436 \u0431\u0430\u0439\u043d\u0430",loadingNumber:"\u0423\u0442\u0430\u0441\u043d\u044b \u0434\u0443\u0433\u0430\u0430\u0440\u044b\u0433 \u0431\u0430\u0442\u0430\u043b\u0433\u0430\u0430\u0436\u0443\u0443\u043b\u0436 \u0431\u0430\u0439\u043d\u0430",loadingPeople:"\u0423\u0440\u0438\u0445 \u0445\u04af\u043c\u04af\u04af\u0441\u0438\u0439\u0433 \u0445\u0430\u0439\u0436 \u0431\u0430\u0439\u043d\u0430",noResults:"\u04ae\u0440 \u0434\u04af\u043d \u043e\u043b\u0434\u0441\u043e\u043d\u0433\u04af\u0439",noValidNumbers:"\u0423\u0442\u0430\u0441\u043d\u044b \u0434\u0443\u0433\u0430\u0430\u0440\u0430\u0430 \u043e\u0440\u0443\u0443\u043b\u043d\u0430 \u0443\u0443",searchNumbers:"\u0423\u0442\u0430\u0441\u043d\u044b \u0434\u0443\u0433\u0430\u0430\u0440 \u043d\u044d\u043c\u044d\u0445",searchPeople:"\u0425\u04af\u043c\u04af\u04af\u0441 \u0445\u0430\u0439\u0445",searchPeopleAndNumbers:"\u0425\u04af\u043c\u04af\u04af\u0441\u044d\u044d\u0441 \u0445\u0430\u0439\u0445 \u044d\u0441\u0432\u044d\u043b \u0443\u0442\u0430\u0441\u043d\u044b \u0434\u0443\u0433\u0430\u0430\u0440 \u043d\u044d\u043c\u043d\u044d \u04af\u04af",telephone:"\u0423\u0442\u0430\u0441: {{number}}",title:"\u0425\u04af\u043c\u04af\u04af\u0441\u0438\u0439\u0433 \u0445\u0443\u0440\u0430\u043b\u0434 \u0443\u0440\u0438\u0445"},audioDevices:{bluetooth:"Bluetooth",headphones:"\u0427\u0438\u0445\u044d\u0432\u0447",phone:"\u0423\u0442\u0430\u0441",speaker:"\u042f\u0440\u0438\u0433\u0447",none:"\u0414\u0443\u0443\u043d\u044b \u0442\u04e9\u0445\u04e9\u04e9\u0440\u04e9\u043c\u0436 \u0431\u0430\u0439\u0445\u0433\u04af\u0439"},audioOnly:{audioOnly:"\u0427\u0430\u043d\u0430\u0440 \u0431\u0430\u0433\u0430\u0441\u0433\u0430\u0445"},calendarSync:{addMeetingURL:"\u0425\u0443\u0440\u043b\u044b\u043d \u0445\u043e\u043b\u0431\u043e\u043e\u0441\u044b\u0433 \u043d\u044d\u043c\u043d\u044d \u04af\u04af",confirmAddLink:"\u0422\u0430 \u044d\u043d\u044d \u04af\u0439\u043b \u044f\u0432\u0434\u0430\u043b\u0434 \u0445\u043e\u043b\u0431\u043e\u043e\u0441\u044b\u0433 \u043d\u044d\u043c\u044d\u0445\u0438\u0439\u0433 \u0445\u04af\u0441\u0447 \u0431\u0430\u0439\u043d\u0430 \u0443\u0443?",error:{appConfiguration:"\u0426\u0430\u0433\u0430\u043b\u0431\u0430\u0440\u044b\u043d \u0445\u043e\u043b\u0431\u043e\u043b\u0442\u044b\u0433 \u0437\u04e9\u0432 \u0442\u043e\u0445\u0438\u0440\u0443\u0443\u043b\u0430\u0430\u0433\u04af\u0439 \u0431\u0430\u0439\u043d\u0430.",generic:"\u0410\u043b\u0434\u0430\u0430 \u0433\u0430\u0440\u0441\u0430\u043d \u0431\u0430\u0439\u043d\u0430. \u0426\u0430\u0433\u0430\u043b\u0431\u0430\u0440\u044b\u043d \u0442\u043e\u0445\u0438\u0440\u0433\u043e\u043e\u0433\u043e\u043e \u0448\u0430\u043b\u0433\u0430\u0445 \u044d\u0441\u0432\u044d\u043b \u0446\u0430\u0433\u0430\u043b\u0431\u0430\u0440 \u0434\u0430\u0445\u0438\u043d \u0430\u0447\u0430\u0430\u043b\u0436 \u04af\u0437\u043d\u044d \u04af\u04af.",notSignedIn:"An error occurred while authenticating to see calendar events. Please check your calendar settings and try logging in again."},join:"\u041d\u044d\u0433\u0434\u044d\u0445",joinTooltip:"\u0423\u0443\u043b\u0437\u0430\u043b\u0442\u0430\u0434 \u043d\u044d\u0433\u043b\u044d\u0445",nextMeeting:"\u0414\u0430\u0440\u0430\u0430\u0433\u0438\u0439\u043d \u0443\u0443\u043b\u0437\u0430\u043b\u0442",noEvents:"\u0423\u0434\u0430\u0445\u0433\u04af\u0439 \u0431\u043e\u043b\u043e\u0445 \u04af\u0439\u043b \u044f\u0432\u0434\u0430\u043b \u0431\u0430\u0439\u0445\u0433\u04af\u0439 \u0431\u0430\u0439\u043d\u0430.",ongoingMeeting:"\u0438\u0434\u044d\u0432\u0445\u0442\u044d\u0439 \u0443\u0443\u043b\u0437\u0430\u043b\u0442",permissionButton:"\u0422\u043e\u0445\u0438\u0440\u0433\u043e\u043e \u043d\u044d\u044d\u0445",permissionMessage:"\u0410\u043f\u043f-\u0434 \u0443\u0443\u043b\u0437\u0430\u043b\u0442\u0443\u0443\u0434\u0430\u0430 \u043d\u044d\u043c\u044d\u0445\u0438\u0439\u043d \u0442\u0443\u043b\u0434 \u0446\u0430\u0433\u0430\u043b\u0431\u0430\u0440\u044b\u043d \u0437\u04e9\u0432\u0448\u04e9\u04e9\u0440\u04e9\u043b \u0448\u0430\u0430\u0440\u0434\u043b\u0430\u0433\u0430\u0442\u0430\u0439.",refresh:"\u0426\u0430\u0433\u0430\u043b\u0431\u0430\u0440\u0430\u0430 \u0434\u0430\u0445\u0438\u043d \u0430\u0447\u0430\u0430\u043b\u0430\u0445",today:"\u04e8\u043d\u04e9\u04e9\u0434\u04e9\u0440"},chat:{error:"\u0410\u043b\u0434\u0430\u0430: \u0442\u0430\u043d\u044b \u043c\u0435\u0441\u0441\u0435\u0436 \u0438\u043b\u0433\u044d\u044d\u0433\u0434\u044d\u044d\u0433\u04af\u0439 \u0431\u0430\u0439\u043d\u0430. \u0428\u0430\u043b\u0442\u0433\u0430\u0430\u043d: {{error}}",fieldPlaceHolder:"\u042d\u043d\u0434 \u0447\u0430\u0442\u0430\u0430 \u0431\u0438\u0447\u043d\u044d \u04af\u04af",messagebox:"\u0417\u0443\u0440\u0432\u0430\u0441 \u0431\u0438\u0447\u0438\u0445",messageTo:"\u0425\u0443\u0432\u0438\u0439\u043d \u0437\u0443\u0440\u0432\u0430\u0441 {{recipient}}",noMessagesMessage:"\u042d\u043d\u044d \u0445\u0443\u0440\u0430\u043b\u0434 \u044f\u043c\u0430\u0440 \u0447 \u0437\u0443\u0440\u0432\u0430\u0441 \u0431\u0430\u0439\u0445\u0433\u04af\u0439. \u042d\u043d\u0434\u044d\u044d\u0441 \u0437\u0443\u0440\u0432\u0430\u0441\u0430\u0430 \u044d\u0445\u043b\u04af\u04af\u043b!",nickname:{popover:"\u041d\u044d\u0440 \u0431\u0438\u0447\u043d\u044d \u04af\u04af",title:"\u041d\u044d\u0440\u044d\u044d \u043e\u0440\u0443\u0443\u043b\u043d\u0430 \u0443\u0443"},privateNotice:"\u0425\u0443\u0432\u0438\u0439\u043d \u0437\u0443\u0440\u0432\u0430\u0441 {{recipient}}",title:"\u0427\u0430\u0442",you:"\u0447\u0438"},chromeExtensionBanner:{installExtensionText:"Install the extension for Google Calendar and Office 365 integration",buttonText:"Chrome Extension \u0441\u0443\u0443\u043b\u0433\u0430\u0445",dontShowAgain:"\u042d\u043d\u0438\u0439\u0433 \u0434\u0430\u0445\u0438\u043d \u0445\u0430\u0440\u0430\u0445\u0433\u04af\u0439"},connectingOverlay:{joiningRoom:"\u0422\u0430\u043d\u044b\u0433 \u0445\u0443\u0440\u0430\u043b\u0434 \u0445\u043e\u043b\u0431\u043e\u0436 \u0431\u0430\u0439\u043d\u0430..."},connection:{ATTACHED:"\u0425\u0430\u0432\u0441\u0430\u0440\u0433\u0430\u0441\u0430\u043d",AUTHENTICATING:"\u041d\u044d\u0432\u0442\u044d\u0440\u0447 \u0431\u0430\u0439\u043d\u0430",AUTHFAIL:"\u041d\u044d\u0432\u0442\u0440\u044d\u043b\u0442 \u0430\u043c\u0436\u0438\u043b\u0442\u0433\u04af\u0439 \u0431\u043e\u043b\u0441\u043e\u043d",CONNECTED:"\u0425\u043e\u043b\u0431\u043e\u0433\u0434\u0441\u043e\u043d",CONNECTING:"\u0425\u043e\u043b\u0431\u043e\u0436 \u0431\u0430\u0439\u043d\u0430",CONNFAIL:"\u0425\u043e\u043b\u0431\u043e\u043b\u0442 \u0430\u043c\u0436\u0438\u043b\u0442\u0433\u04af\u0439 \u0431\u043e\u043b\u0441\u043e\u043d",DISCONNECTED:"\u0425\u043e\u043b\u0431\u043e\u0433\u0434\u043e\u043e\u0433\u04af\u0439",DISCONNECTING:"\u0421\u0430\u043b\u0433\u0430\u0436 \u0431\u0430\u0439\u043d\u0430",ERROR:"\u0410\u043b\u0434\u0430\u0430",FETCH_SESSION_ID:"\u041e\u0440\u043e\u043b\u0446\u043e\u0433\u0447\u0438\u0439\u043d \u0445\u043e\u043b\u0431\u043e\u043b\u0442\u044b\u0433 \u043e\u043b\u043e\u0445...",GET_SESSION_ID_ERROR:"\u041e\u0440\u043e\u043b\u0446\u043e\u0433\u0447\u0438\u0439\u043d \u0445\u043e\u0431\u043e\u043b\u0442 \u0434\u044d\u044d\u0440 \u0430\u043b\u0434\u0430\u0430: {{code}}",GOT_SESSION_ID:"\u041e\u0440\u043e\u043b\u0446\u043e\u0433\u0447\u0438\u0439\u043d \u0445\u043e\u043b\u0431\u043e\u043b\u0442\u044b\u0433 \u043e\u043b\u043e\u0445... \u0414\u0443\u0443\u0441\u0441\u0430\u043d",LOW_BANDWIDTH:"{{displayName}} \u0447\u0430\u043d\u0430\u0440\u044b\u0433 \u0431\u0443\u0443\u0440\u0443\u0443\u043b\u0436 \u0432\u0438\u0434\u0435\u043e \u0443\u043d\u0442\u0440\u0430\u0430\u0441\u0430\u043d \u0431\u0430\u0439\u043d\u0430"},connectionindicator:{address:"\u0425\u0430\u044f\u0433:",bandwidth:"\u0422\u043e\u043e\u0446\u043e\u043e\u043b\u0441\u043e\u043d \u0447\u0430\u043d\u0430\u0440:",bitrate:"\u0411\u0438\u0442\u0440\u0430\u0442:",bridgeCount:"\u0421\u0435\u0440\u0432\u0435\u0440\u0438\u0439\u043d \u0442\u043e\u043e: ",connectedTo:"\u0425\u043e\u043b\u0431\u043e\u0433\u0434\u0441\u043e\u043d:",e2e_rtt:"E2E RTT:",framerate:"\u041d\u044f\u0433\u0442\u0430\u0440\u0448\u0438\u043b:",less:"\u0425\u0443\u0440\u0430\u0430\u0445",localaddress:"\u0414\u043e\u0442\u043e\u043e\u0434 \u0445\u0430\u044f\u0433:",localaddress_plural:"\u0414\u043e\u0442\u043e\u043e\u0434 \u0445\u0430\u044f\u0433\u0443\u0443\u0434:",localport:"\u0414\u043e\u0442\u043e\u043e\u0434 \u043f\u043e\u0440\u0442:",localport_plural:"\u0414\u043e\u0442\u043e\u043e\u0434 \u043f\u043e\u0440\u0442\u0443\u0443\u0434:",more:"\u0414\u044d\u043b\u0433\u044d\u0440\u044d\u043d\u0433\u04af\u0439",packetloss:"\u0410\u043b\u0434\u0430\u0433\u0434\u0430\u043b:",quality:{good:"\u0421\u0430\u0439\u043d",inactive:"\u0418\u0434\u044d\u0432\u0445\u0433\u04af\u0439",lost:"\u0410\u043b\u0434\u0430\u0433\u0434\u0430\u043b\u0442\u0430\u0439",nonoptimal:"\u041e\u0440\u043e\u043c\u0433\u04af\u0439",poor:"\u041c\u0443\u0443"},remoteaddress:"\u0413\u0430\u0434\u0430\u0430\u0434 \u0445\u0430\u044f\u0433:",remoteaddress_plural:"\u0413\u0430\u0434\u0430\u0430\u0434 \u0445\u0430\u044f\u0433\u0443\u0443\u0434:",remoteport:"\u0413\u0430\u0434\u0430\u0430\u0434 \u043f\u043e\u0440\u0442:",remoteport_plural:"\u0413\u0430\u0434\u0430\u0430\u0434 \u043f\u043e\u0440\u0442\u0443\u0443\u0434:",resolution:"\u0425\u044d\u043c\u0436\u044d\u044d:",status:"\u0425\u043e\u043b\u0431\u043e\u043b\u0442:",transport:"Transport:",transport_plural:"Transports:"},dateUtils:{earlier:"\u04e8\u043c\u043d\u04e9\u0445",today:"\u04e8\u043d\u04e9\u04e9\u0434\u04e9\u0440",yesterday:"\u04e8\u0447\u0438\u0433\u0434\u04e9\u0440"},deepLinking:{appNotInstalled:"\u0422\u0430 \u0443\u0442\u0441\u0430\u043d \u0434\u044d\u044d\u0440\u044d\u044d \u0445\u0443\u0440\u0430\u043b \u043e\u0440\u043e\u043b\u0446\u043e\u0445\u044b\u043d \u0442\u0443\u043b\u0434 \u0442\u0430\u043d\u0434 {{app}} \u043c\u043e\u0431\u0430\u0439\u043b \u0430\u043f\u043f \u0448\u0430\u0430\u0440\u0434\u043b\u0430\u0433\u0430\u0442\u0430\u0439.",description:"\u0411\u0438\u0434 \u0442\u0430\u043d\u044b \u0443\u0443\u043b\u0437\u0430\u043b\u0442\u044b\u0433 {{app}} desktop \u0430\u043f\u043f \u0434\u043e\u0442\u043e\u0440 \u044d\u0445\u043b\u04af\u04af\u043b\u044d\u0445\u0438\u0439\u0433 \u043e\u0440\u043e\u043b\u0434\u0441\u043e\u043d. \u0414\u0430\u0445\u0438\u043d \u043e\u0440\u043e\u043b\u0434\u043e\u0445 \u044d\u0441\u0432\u044d\u043b {{app}} \u0432\u0435\u0431 \u0430\u043f\u043f \u0434\u044d\u044d\u0440 \u044d\u0445\u043b\u04af\u04af\u043b\u043d\u044d \u04af\u04af.",descriptionWithoutWeb:"\u0411\u0438\u0434 \u0442\u0430\u043d\u044b \u0445\u0443\u0440\u043b\u044b\u0433 {{app}} desktop \u0430\u043f\u043f \u0434\u043e\u0442\u043e\u0440 \u044d\u0445\u043b\u04af\u04af\u043b\u044d\u0445\u0438\u0439\u0433 \u043e\u0440\u043e\u043b\u0434\u0441\u043e\u043d.",downloadApp:"\u0410\u043f\u043f \u0442\u0430\u0442\u0430\u0436 \u0430\u0432\u0430\u0445",launchWebButton:"\u0412\u044d\u0431 \u0434\u044d\u044d\u0440 \u0430\u0436\u0438\u043b\u043b\u0443\u0443\u043b\u0430\u0445",openApp:"\u0410\u043f\u043f-\u0430\u0430\u0440 \u04af\u0440\u0433\u044d\u043b\u0436\u043b\u04af\u04af\u043b\u044d\u0445",title:"\u0422\u0430\u043d\u044b \u0443\u0443\u043b\u0437\u0430\u043b\u0442\u044b\u0433 {{app}} \u044d\u0445\u043b\u04af\u04af\u043b\u0436 \u0431\u0430\u0439\u043d\u0430....",tryAgainButton:"\u0414\u0430\u0445\u0438\u043d \u043e\u0440\u043e\u043b\u0434\u043e\u043d\u043e \u0443\u0443"},defaultLink:"e.g. {{url}}",defaultNickname:"\u041d\u044d\u0440\u044d\u044d \u0431\u0438\u0447",deviceError:{cameraError:"\u0422\u0430\u043d\u044b \u043a\u0430\u043c\u0435\u0440 \u0440\u0443\u0443 \u043d\u044d\u0432\u0442\u0440\u044d\u0445 \u04af\u0439\u043b\u0434\u044d\u043b \u0430\u043c\u0436\u0438\u043b\u0442\u0433\u04af\u0439 \u0431\u043e\u043b\u0441\u043e\u043d \u0431\u0430\u0439\u043d\u0430",cameraPermission:"\u041a\u0430\u043c\u0435\u0440\u044b\u043d \u0437\u04e9\u0432\u0448\u04e9\u04e9\u0440\u04e9\u043b \u0430\u0432\u0430\u0445\u0430\u0434 \u0430\u043b\u0434\u0430\u0430 \u0433\u0430\u0440\u043b\u0430\u0430",microphoneError:"\u0422\u0430\u043d\u044b \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d \u0440\u0443\u0443 \u043d\u044d\u0432\u0442\u0440\u044d\u043b\u0442 \u0430\u043c\u0436\u0438\u043b\u0442\u0433\u04af\u0439 \u0431\u043e\u043b\u043b\u043e\u043e",microphonePermission:"\u041c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u044b \u0437\u04e9\u0432\u0448\u04e9\u04e9\u0440\u04e9\u043b \u0430\u0432\u0430\u0445\u0430\u0434 \u0430\u043b\u0434\u0430\u0430 \u0433\u0430\u0440\u043b\u0430\u0430"},deviceSelection:{noPermission:"\u0417\u04e9\u0432\u0448\u04e9\u04e9\u0440\u04e9\u043b \u04e9\u0433\u04e9\u04e9\u0433\u04af\u0439 \u0431\u0430\u0439\u043d\u0430",previewUnavailable:"\u0423\u0440\u044c\u0434\u0447\u0438\u043b\u0430\u043d \u0445\u0430\u0440\u0430\u0445 \u0431\u043e\u043b\u043e\u043c\u0436\u0433\u04af\u0439",selectADevice:"\u0422\u04e9\u0445\u04e9\u04e9\u0440\u04e9\u043c\u0436 \u0441\u043e\u043d\u0433\u043e\u043d\u043e \u0443\u0443",testAudio:"\u0422\u0443\u0440\u0448\u0438\u043b\u0442\u044b\u043d \u0434\u0443\u0443 \u0442\u043e\u0433\u043b\u0443\u0443\u043b"},dialog:{accessibilityLabel:{liveStreaming:"\u0428\u0443\u0443\u0434 \u0434\u0430\u043c\u0436\u0443\u0443\u043b\u0430\u043b\u0442"},allow:"\u0417\u04e9\u0432\u0448\u04e9\u04e9\u0440",alreadySharedVideoMsg:"\u0412\u0438\u0434\u0435\u043e \u0445\u0443\u0432\u0430\u0430\u043b\u0446\u0430\u0436 \u0431\u0430\u0439\u043d\u0430. \u0425\u0443\u0440\u0430\u043b\u0434 \u043d\u044d\u0433 \u0437\u044d\u0440\u044d\u0433 \u0437\u04e9\u0432\u0445\u04e9\u043d \u043d\u044d\u0433 \u043b \u0432\u0438\u0434\u0435\u043e\u0433 \u0445\u0443\u0432\u0430\u0430\u043b\u0446\u0430\u0445 \u0431\u043e\u043b\u043e\u043c\u0436\u0438\u0439\u0433 \u043e\u043b\u0433\u043e\u0434\u043e\u0433..",alreadySharedVideoTitle:"\u041d\u044d\u0433 \u0443\u0434\u0430\u0430\u0434 \u0437\u04e9\u0432\u0445\u04e9\u043d \u043d\u044d\u0433 \u043b \u0445\u0443\u0432\u0430\u0430\u043b\u0446\u0441\u0430\u043d \u0432\u0438\u0434\u0435\u043e\u0433 \u0437\u04e9\u0432\u0448\u04e9\u04e9\u0440\u043d\u04e9",applicationWindow:"\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u044b\u043d \u0446\u043e\u043d\u0445",Back:"\u0411\u0443\u0446\u0430\u0445",cameraConstraintFailedError:"\u0422\u0430\u043d\u044b \u043a\u0430\u043c\u0435\u0440 \u0437\u0430\u0440\u0438\u043c \u0448\u0430\u0430\u0440\u0434\u043b\u0430\u0433\u0430\u0442\u0430\u0439 \u0445\u044f\u0437\u0433\u0430\u0430\u0440\u043b\u0430\u043b\u0442\u044b\u0433 \u0445\u0430\u043d\u0433\u0430\u0436 \u0447\u0430\u0434\u0430\u0445\u0433\u04af\u0439 \u0431\u0430\u0439\u043d\u0430.",cameraNotFoundError:"\u041a\u0430\u043c\u0435\u0440 \u043e\u043b\u0434\u0441\u043e\u043d\u0433\u04af\u0439.",cameraNotSendingData:"\u0422\u0430\u043d\u044b \u043a\u0430\u043c\u0435\u0440\u0442 \u0445\u0430\u043d\u0434\u0430\u0445 \u0431\u043e\u043b\u043e\u043c\u0436\u0433\u04af\u0439 \u0431\u0430\u0439\u043d\u0430. \u0425\u044d\u0440\u044d\u0432 \u04e9\u04e9\u0440 \u043f\u0440\u043e\u0433\u0440\u0430\u043c \u044d\u043d\u044d \u0442\u04e9\u0445\u04e9\u04e9\u0440\u04e9\u043c\u0436\u0438\u0439\u0433 \u0430\u0448\u0438\u0433\u043b\u0430\u0436 \u0431\u0430\u0439\u0433\u0430\u0430 \u044d\u0441\u044d\u0445\u0438\u0439\u0433 \u0448\u0430\u043b\u0433\u0430\u0430\u0434, \u0442\u043e\u0445\u0438\u0440\u0433\u043e\u043e\u0433 \u0446\u044d\u0441\u043d\u044d\u044d\u0441 \u04e9\u04e9\u0440 \u0442\u04e9\u0445\u04e9\u04e9\u0440\u04e9\u043c\u0436\u0438\u0439\u0433 \u0441\u043e\u043d\u0433\u043e\u0445 \u044d\u0441\u0432\u044d\u043b \u0434\u0430\u0445\u0438\u043d \u0430\u0447\u0430\u0430\u043b\u0436 \u04af\u0437\u043d\u044d \u04af\u04af.",cameraNotSendingDataTitle:"\u041a\u0430\u043c\u0435\u0440\u0442 \u0445\u0430\u043d\u0434\u0430\u0445 \u0431\u043e\u043b\u043e\u043c\u0436\u0433\u04af\u0439 \u0431\u0430\u0439\u043d\u0430",cameraPermissionDeniedError:"\u0422\u0430 \u043a\u0430\u043c\u0435\u0440\u0430\u0430 \u0430\u0448\u0438\u0433\u043b\u0430\u0445 \u0437\u04e9\u0432\u0448\u04e9\u04e9\u0440\u04e9\u043b \u04e9\u0433\u04e9\u04e9\u0433\u04af\u0439 \u0431\u0430\u0439\u043d\u0430. \u0422\u0430 \u044d\u043d\u044d \u0445\u0443\u0440\u0430\u043b\u0434 \u043e\u0440\u043e\u043b\u0446\u043e\u0445 \u0431\u043e\u043b\u043e\u043c\u0436\u0442\u043e\u0439 \u0447 \u0431\u0443\u0441\u0430\u0434 \u0445\u04af\u043c\u04af\u04af\u0441 \u0442\u0430\u043d\u044b\u0433 \u0445\u0430\u0440\u0436 \u0447\u0430\u0434\u0430\u0445\u0433\u04af\u0439. \u04ae\u04af\u043d\u0438\u0439\u0433 \u0437\u0430\u0441\u0430\u0445\u044b\u043d \u0442\u0443\u043b\u0434 \u0445\u0430\u044f\u0433 \u0431\u0438\u0447\u0434\u044d\u0433 \u0445\u044d\u0441\u044d\u0433\u0438\u0439\u043d \u0445\u043e\u0439\u043d\u043e \u0431\u0430\u0439\u0433\u0430\u0430 \u043a\u0430\u043c\u0435\u0440\u044b\u043d \u0442\u043e\u0432\u0447\u0438\u0439\u0433 \u0434\u0430\u0440\u043d\u0430 \u0443\u0443.",cameraUnknownError:"\u042f\u043c\u0430\u0440 \u043d\u044d\u0433 \u0448\u0430\u043b\u0442\u0433\u0430\u0430\u043d\u044b \u0443\u043b\u043c\u0430\u0430\u0441 \u043a\u0430\u043c\u0435\u0440\u044b\u0433 \u0430\u0448\u0438\u0433\u043b\u0430\u0436 \u0447\u0430\u0434\u0430\u0445\u0433\u04af\u0439.",cameraUnsupportedResolutionError:"\u0422\u0430\u043d\u044b \u043a\u0430\u043c\u0435\u0440 \u0448\u0430\u0430\u0440\u0434\u043b\u0430\u0433\u0430\u0442\u0430\u0439 \u0432\u0438\u0434\u0435\u043e\u043d\u044b \u0445\u044d\u043c\u0436\u044d\u044d\u0433 \u0434\u044d\u043c\u0436\u0434\u044d\u0433\u0433\u04af\u0439.",Cancel:"\u0426\u0443\u0446\u043b\u0430\u0445",close:"\u0425\u0430\u0430\u0445",conferenceDisconnectMsg:"\u0421\u04af\u043b\u0436\u044d\u044d\u043d\u0438\u0439 \u0445\u043e\u043b\u0431\u043e\u043b\u0442 \u0448\u0430\u043b\u0433\u0430\u0436 \u0431\u0430\u0439\u043d\u0430. \u0414\u0430\u0445\u0438\u043d \u0445\u043e\u043b\u0431\u043e\u0433\u0434\u043e\u0436 \u0431\u0430\u0439\u043d\u0430 {{seconds}} \u0441\u0435\u043a...",conferenceDisconnectTitle:"\u0422\u0430 \u0441\u0430\u043b\u0441\u0430\u043d \u0431\u0430\u0439\u043d\u0430.",conferenceReloadMsg:"\u0411\u0438\u0434 \u0437\u0430\u0441\u0430\u0445\u0430\u0430\u0440 \u043e\u0440\u043e\u043b\u0434\u043e\u0436 \u0431\u0430\u0439\u043d\u0430. \u0414\u0430\u0445\u0438\u043d \u0445\u043e\u043b\u0431\u043e\u0433\u0434\u043e\u0436 \u0431\u0430\u0439\u043d\u0430 {{seconds}} \u0441\u0435\u043a...",conferenceReloadTitle:"\u0423\u0443\u0447\u043b\u0430\u0430\u0440\u0430\u0439. \u042f\u043c\u0430\u0440 \u043d\u044d\u0433 \u0430\u043b\u0434\u0430\u0430 \u0433\u0430\u0440\u0441\u0430\u043d \u0431\u0430\u0439\u043d\u0430.",confirm:"\u0411\u0430\u0442\u043b\u0430\u0445",confirmNo:"\u04ae\u0433\u04af\u0439",confirmYes:"\u0422\u0438\u0439\u0442",connectError:"\u0410\u043b\u0434\u0430\u0430 \u0433\u0430\u0440\u0441\u0430\u043d \u0442\u0443\u043b \u0431\u0438\u0434 \u0445\u0443\u0440\u0430\u043b\u0442\u0430\u0439 \u0445\u043e\u043b\u0431\u043e\u0433\u0434\u043e\u0436 \u0447\u0430\u0434\u0430\u0445\u0433\u04af\u0439 \u0431\u0430\u0439\u043d\u0430.",connectErrorWithMsg:"\u0410\u043b\u0434\u0430\u0430 \u0433\u0430\u0440\u0441\u0430\u043d \u0442\u0443\u043b \u0431\u0438\u0434 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0442\u0430\u0439 \u0445\u043e\u043b\u0431\u043e\u0433\u0434\u043e\u0436 \u0447\u0430\u0434\u0430\u0445\u0433\u04af\u0439 \u0431\u0430\u0439\u043d\u0430: {{msg}}",connecting:"\u0425\u043e\u043b\u0431\u043e\u0436 \u0431\u0430\u0439\u043d\u0430",contactSupport:"\u0414\u044d\u043c\u0436\u043b\u044d\u0433\u0442\u044d\u0439 \u0445\u043e\u043b\u0431\u043e\u043e \u0431\u0430\u0440\u0438\u043d\u0430 \u0443\u0443",copy:"\u0425\u0443\u0443\u043b\u0430\u0445",dismiss:"\u0445\u0430\u0430\u0445",displayNameRequired:"\u0422\u0430\u043d\u044b \u043d\u044d\u0440 \u0445\u044d\u043d \u0431\u044d?",done:"\u0414\u0443\u0443\u0441\u0433\u0430\u0445",enterDisplayName:"\u042d\u043d\u0434 \u043d\u044d\u0440\u044d\u044d \u043e\u0440\u0443\u0443\u043b\u043d\u0430 \u0443\u0443",error:"\u0410\u043b\u0434\u0430\u0430",externalInstallationMsg:"\u0422\u0430 \u043c\u0430\u043d\u0430\u0439 \u0434\u0435\u0441\u043a\u0442\u043e\u043f \u0445\u0443\u0432\u0430\u0430\u043b\u0446\u0430\u0445 \u04e9\u0440\u0433\u04e9\u0442\u0433\u04e9\u043b\u0438\u0439\u0433 \u0441\u0443\u0443\u043b\u0433\u0430\u0445 \u0445\u044d\u0440\u044d\u0433\u0442\u044d\u0439.",externalInstallationTitle:"\u04e8\u0440\u0433\u04e9\u0442\u0433\u04e9\u043b \u0441\u0443\u0443\u043b\u0433\u0430\u0445 \u0448\u0430\u0430\u0440\u0434\u043b\u0430\u0433\u0430\u0442\u0430\u0439",goToStore:"webstore \u043e\u0440\u043e\u0445",gracefulShutdown:"\u041c\u0430\u043d\u0430\u0439 \u04af\u0439\u043b\u0447\u0438\u043b\u0433\u044d\u044d \u043e\u0434\u043e\u043e\u0433\u043e\u043e\u0440 \u0437\u0430\u0441\u0432\u0430\u0440\u0442\u0430\u0439 \u0431\u0430\u0439\u043d\u0430. \u0414\u0430\u0440\u0430\u0430 \u0434\u0430\u0445\u0438\u043d \u043e\u0440\u043e\u043b\u0434\u043e\u0436 \u04af\u0437\u043d\u044d \u04af\u04af.",IamHost:"\u04ae\u04af\u0441\u0433\u044d\u0433\u0447",incorrectRoomLockPassword:"\u041d\u0443\u0443\u0446 \u04af\u0433 \u0431\u0443\u0440\u0443\u0443",incorrectPassword:"\u0425\u044d\u0440\u044d\u0433\u043b\u044d\u0433\u0447\u0438\u0439\u043d \u043d\u044d\u0440 \u044d\u0441\u0432\u044d\u043b \u043d\u0443\u0443\u0446 \u04af\u0433 \u0431\u0443\u0440\u0443\u0443 \u0431\u0430\u0439\u043d\u0430",inlineInstallationMsg:"\u0422\u0430 \u043c\u0430\u043d\u0430\u0439 \u0434\u0435\u0441\u043a\u0442\u043e\u043f \u0445\u0443\u0432\u0430\u0430\u043b\u0446\u0430\u0445 \u04e9\u0440\u0433\u04e9\u0442\u0433\u04e9\u043b\u0438\u0439\u0433 \u0441\u0443\u0443\u043b\u0433\u0430\u0445 \u0445\u044d\u0440\u044d\u0433\u0442\u044d\u0439.",inlineInstallExtension:"\u041e\u0434\u043e\u043e \u0441\u0443\u0443\u043b\u0433\u0430\u0445",internalError:"\u042f\u043c\u0430\u0440 \u043d\u044d\u0433\u044d\u043d \u0437\u04af\u0439\u043b \u0431\u0443\u0440\u0443\u0443 \u0431\u0430\u0439\u043d\u0430. \u0414\u0430\u0440\u0430\u0430\u0445 \u0430\u043b\u0434\u0430\u0430 \u0433\u0430\u0440\u0441\u0430\u043d \u0431\u0430\u0439\u043d\u0430: {{error}}",internalErrorTitle:"\u0414\u043e\u0442\u043e\u043e\u0434 \u0430\u043b\u0434\u0430\u0430",kickMessage:"\u0422\u0430 \u0434\u044d\u043b\u0433\u044d\u0440\u044d\u043d\u0433\u04af\u0439 \u043c\u044d\u0434\u044d\u044d\u043b\u043b\u0438\u0439\u0433 {{participantDisplayName}} \u0445\u043e\u043b\u0431\u043e\u0433\u0434\u043e\u0436 \u0430\u0432\u043d\u0430 \u0443\u0443..",kickParticipantButton:"\u0413\u0430\u0440\u0433\u0430\u0445",kickParticipantDialog:"\u0422\u0430 \u044d\u043d\u044d \u043e\u0440\u043e\u043b\u0446\u043e\u0433\u0447\u0438\u0439\u0433 \u0433\u0430\u0440\u0433\u0430\u0445\u0434\u0430\u0430 \u0438\u0442\u0433\u044d\u043b\u0442\u044d\u0439 \u0431\u0430\u0439\u043d\u0430 \u0443\u0443?",kickParticipantTitle:"\u042d\u043d\u044d \u043e\u0440\u043e\u043b\u0446\u043e\u0433\u0447\u0438\u0439\u0433 \u0433\u0430\u0440\u0433\u0430\u0445 \u04af\u04af?",kickTitle:"{{participantDisplayName}} \u0447\u0430\u043c\u0430\u0439\u0433 \u0445\u0443\u0440\u043b\u0430\u0430\u0441 \u0433\u0430\u0440\u0433\u0430\u0441\u0430\u043d",liveStreaming:"\u0428\u0443\u0443\u0434 \u0434\u0430\u043c\u0436\u0443\u0443\u043b\u0430\u043b\u0442",liveStreamingDisabledForGuestTooltip:"\u0417\u043e\u0447\u0438\u0434 \u0448\u0443\u0443\u0434 \u0434\u0430\u043c\u0436\u0443\u0443\u043b\u0430\u043b\u0442 \u044d\u0445\u043b\u04af\u04af\u043b\u044d\u0445 \u0431\u043e\u043b\u043e\u043c\u0436\u0433\u04af\u0439.",liveStreamingDisabledTooltip:"\u0428\u0443\u0443\u0434 \u0434\u0430\u043c\u0436\u0443\u0443\u043b\u0430\u043b\u0442\u044b\u0433 \u0438\u0434\u044d\u0432\u0445\u0433\u04af\u0439 \u0431\u043e\u043b\u0433\u043e\u0445.",lockMessage:"\u0425\u0443\u0440\u0430\u043b \u0442\u04af\u0433\u0436\u0438\u0433\u0434\u0441\u044d\u043d\u0433\u04af\u0439.",lockRoom:"\u0425\u0443\u0440\u0430\u043b \u043d\u044d\u043c\u044d\u0445 $t(lockRoomPasswordUppercase)",lockTitle:"\u0422\u04af\u0433\u0436\u0438\u0445\u044d\u0434 \u0430\u043b\u0434\u0430\u0430 \u0433\u0430\u0440\u043b\u0430\u0430",logoutQuestion:"\u0422\u0430 \u0445\u0443\u0440\u043b\u0430\u0430\u0441 \u0433\u0430\u0440\u0447, \u0445\u0443\u0440\u043b\u044b\u0433 \u0437\u043e\u0433\u0441\u043e\u043e\u0445\u044b\u0433 \u0445\u04af\u0441\u044d\u0436 \u0431\u0430\u0439\u043d\u0430 \u0443\u0443?",logoutTitle:"\u0413\u0430\u0440\u0430\u0445",maxUsersLimitReached:"\u041e\u0440\u043e\u043b\u0446\u043e\u0433\u0447\u0434\u044b\u043d \u0442\u043e\u043e\u043d\u044b \u0434\u044d\u044d\u0434 \u0445\u044f\u0437\u0433\u0430\u0430\u0440\u0442 \u0445\u04af\u0440\u0441\u044d\u043d \u0431\u0430\u0439\u043d\u0430. \u0423\u0443\u043b\u0437\u0430\u043b\u0442\u044b\u043d \u044d\u0437\u044d\u043c\u0448\u0438\u0433\u0447\u0442\u044d\u0439 \u0445\u043e\u043b\u0431\u043e\u043e \u0431\u0430\u0440\u0438\u043d\u0430 \u0443\u0443 \u044d\u0441\u0432\u044d\u043b \u0434\u0430\u0440\u0430\u0430 \u0434\u0430\u0445\u0438\u043d \u043e\u0440\u043e\u043b\u0434\u043e\u043d\u043e \u0443\u0443!",maxUsersLimitReachedTitle:"\u041e\u0440\u043e\u043b\u0446\u043e\u0433\u0447\u0434\u044b\u043d \u0434\u044d\u044d\u0434 \u0445\u044f\u0437\u0433\u0430\u0430\u0440\u0442 \u0445\u04af\u0440\u0441\u044d\u043d \u0431\u0430\u0439\u043d\u0430",micConstraintFailedError:"\u0422\u0430\u043d\u044b \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d \u0437\u0430\u0440\u0438\u043c \u0448\u0430\u0430\u0440\u0434\u043b\u0430\u0433\u0430\u0442\u0430\u0439 \u0445\u044f\u0437\u0433\u0430\u0430\u0440\u043b\u0430\u043b\u0442\u044b\u0433 \u0445\u0430\u043d\u0433\u0430\u0445\u0433\u04af\u0439 \u0431\u0430\u0439\u043d\u0430.",micNotFoundError:"\u041c\u0438\u043a\u0440\u043e\u0444\u043e\u043d \u043e\u043b\u0434\u0441\u043e\u043d\u0433\u04af\u0439.",micNotSendingData:"\u041c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u044b\u0433 \u0434\u0443\u0443\u0433\u04af\u0439 \u0431\u043e\u043b\u0433\u043e\u0445\u044b\u043d \u0442\u0443\u043b\u0434 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0438\u0439\u043d \u0442\u043e\u0445\u0438\u0440\u0433\u043e\u043e \u0440\u0443\u0443 \u043e\u0447\u043d\u043e \u0443\u0443",micNotSendingDataTitle:"\u0422\u0430\u043d\u044b \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u044b\u0433 \u0441\u0438\u0441\u0442\u0435\u043c\u0438\u0439\u043d \u0442\u043e\u0445\u0438\u0440\u0433\u043e\u043e\u043d\u043e\u043e\u0441 \u0445\u0430\u0430\u0441\u0430\u043d \u0431\u0430\u0439\u043d\u0430",micPermissionDeniedError:"\u0422\u0430 \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d \u0430\u0448\u0438\u0433\u043b\u0430\u0445 \u0437\u04e9\u0432\u0448\u04e9\u04e9\u0440\u04e9\u043b \u04e9\u0433\u04e9\u04e9\u0433\u04af\u0439 \u0431\u0430\u0439\u043d\u0430. \u0422\u0430 \u043e\u0434\u043e\u043e \u0447\u0443\u0443\u043b\u0433\u0430 \u0443\u0443\u043b\u0437\u0430\u043b\u0442\u0430\u043d\u0434 \u043e\u0440\u043e\u043b\u0446\u043e\u0436 \u0431\u043e\u043b\u043e\u0445 \u0447 \u0431\u0443\u0441\u0430\u0434 \u0445\u04af\u043c\u04af\u04af\u0441 \u0442\u0430\u043d\u044b\u0433 \u0441\u043e\u043d\u0441\u043e\u0445 \u0431\u043e\u043b\u043e\u043c\u0436\u0433\u04af\u0439. \u04ae\u04af\u043d\u0438\u0439\u0433 \u0437\u0430\u0441\u0430\u0445\u044b\u043d \u0442\u0443\u043b\u0434 \u0445\u0430\u044f\u0433\u0438\u0439\u043d \u0442\u0430\u043b\u0431\u0430\u0440\u0442 \u0431\u0430\u0439\u0433\u0430\u0430 \u043a\u0430\u043c\u0435\u0440\u044b\u043d \u0442\u043e\u0432\u0447\u0438\u0439\u0433 \u0430\u0448\u0438\u0433\u043b\u0430\u043d\u0430 \u0443\u0443.",micUnknownError:"\u042f\u043c\u0430\u0440 \u043d\u044d\u0433 \u0448\u0430\u043b\u0442\u0433\u0430\u0430\u043d\u044b \u0443\u043b\u043c\u0430\u0430\u0441 \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u044b\u0433 \u0430\u0448\u0438\u0433\u043b\u0430\u0445 \u0431\u043e\u043b\u043e\u043c\u0436\u0433\u04af\u0439 \u0431\u0430\u0439\u043d\u0430.",muteEveryoneElseDialog:"\u0411\u0443\u0441\u0430\u0434 \u043e\u0440\u043e\u043b\u0446\u043e\u0433\u0447\u0434\u044b\u043d \u0434\u0443\u0443 \u0445\u0430\u0430\u043b\u0442\u0442\u0430\u0439 \u04af\u0435\u0434 \u0442\u0430 \u0434\u0443\u0443\u0433 \u043d\u044d\u044d\u0445 \u0431\u043e\u043b\u043e\u043c\u0436\u0433\u04af\u0439, \u0433\u044d\u0445\u0434\u044d\u044d \u04e9\u04e9\u0440\u0438\u0439\u043d\u0445\u04e9\u04e9 \u0434\u0443\u0443\u0433 \u043d\u044d\u044d\u0445 \u0431\u043e\u043b\u043e\u043c\u0436\u0442\u043e\u0439.",muteEveryoneElseTitle:"\u0411\u04af\u0445 \u043e\u0440\u043e\u043b\u0446\u043e\u0433\u0447\u0434\u044b\u043d \u0434\u0443\u0443\u0433 \u0445\u0430\u0430\u0445 \u0443\u0443?",muteEveryoneDialog:"\u0422\u0430 \u0431\u04af\u0445 \u043e\u0440\u043e\u043b\u0446\u043e\u0433\u0447\u0434\u044b\u043d \u0434\u0443\u0443\u0433 \u0445\u0430\u0430\u0445\u0434\u0430\u0430 \u0438\u0442\u0433\u044d\u043b\u0442\u044d\u0439 \u0431\u0430\u0439\u043d\u0430 \u0443\u0443? \u0422\u0430 \u0442\u044d\u0434\u043d\u0438\u0439 \u0434\u0443\u0443\u0433 \u0438\u0434\u044d\u0432\u0445\u0436\u04af\u04af\u043b\u044d\u0445 \u0431\u043e\u043b\u043e\u043c\u0436\u0433\u04af\u0439 \u0447 \u0445\u04af\u0441\u0441\u044d\u043d \u04af\u0435\u0434\u044d\u044d \u04e9\u04e9\u0440\u0438\u0439\u043d\u0445\u04e9\u04e9 \u0434\u0443\u0443 \u043d\u044d\u044d\u0445 \u0431\u043e\u043b\u043e\u043c\u0436\u0442\u043e\u0439.",muteEveryoneTitle:"\u0411\u04af\u0445 \u043e\u0440\u043e\u043b\u0446\u043e\u0433\u0447\u0434\u044b\u043d \u0434\u0443\u0443\u0433 \u0445\u0430\u0430\u0445 \u0443\u0443?",muteEveryoneSelf:"\u0427\u0438 \u04e9\u04e9\u0440\u04e9\u04e9",muteEveryoneStartMuted:"\u041e\u0434\u043e\u043e\u043d\u043e\u043e\u0441 \u044d\u0445\u043b\u044d\u043d \u0431\u04af\u0445 \u043e\u0440\u043e\u043b\u0446\u043e\u0433\u0447\u0434\u044b\u043d \u0434\u0443\u0443 \u0445\u0430\u0430\u0433\u0434\u0430\u043d\u0430",muteParticipantBody:"\u0422\u0430 \u0442\u044d\u0434\u043d\u0438\u0439 \u0434\u0443\u0443\u0433 \u0438\u0434\u044d\u0432\u0445\u0436\u04af\u04af\u043b\u044d\u0445 \u0431\u043e\u043b\u043e\u043c\u0436\u0433\u04af\u0439 \u0447 \u0445\u04af\u0441\u0441\u044d\u043d \u04af\u0435\u0434\u044d\u044d \u04e9\u04e9\u0440\u0438\u0439\u043d \u0434\u0443\u0443\u0433 \u043d\u044d\u044d\u0445 \u0431\u043e\u043b\u043e\u043c\u0436\u0442\u043e\u0439.",muteParticipantButton:"\u0414\u0443\u0443\u0433\u04af\u0439 \u0431\u043e\u043b\u0433\u043e\u0445",muteParticipantDialog:"\u0422\u0430 \u044d\u043d\u044d \u043e\u0440\u043e\u043b\u0446\u043e\u0433\u0447\u0438\u0439\u043d \u0434\u0443\u0443\u0433 \u0445\u0430\u0430\u0445\u0434\u0430\u0430 \u0438\u0442\u0433\u044d\u043b\u0442\u044d\u0439 \u0431\u0430\u0439\u043d\u0430 \u0443\u0443? \u0422\u0430 \u0434\u0443\u0443\u0433 \u0438\u0434\u044d\u0432\u0445\u0436\u04af\u04af\u043b\u044d\u0445 \u0431\u043e\u043b\u043e\u043c\u0436\u0433\u04af\u0439 \u0447 \u0445\u04af\u0441\u0441\u044d\u043d \u04af\u0435\u0434\u044d\u044d \u04e9\u04e9\u0440\u0438\u0439\u043d \u0434\u0443\u0443\u0433 \u043d\u044d\u044d\u0445 \u0431\u043e\u043b\u043e\u043c\u0436\u0442\u043e\u0439.",muteParticipantTitle:"\u042d\u043d\u044d \u043e\u0440\u043e\u043b\u0446\u043e\u0433\u0447\u0438\u0439\u043d \u0434\u0443\u0443\u0433 \u0445\u0430\u0430\u0445 \u0443\u0443?",Ok:"Ok",passwordLabel:"$t(lockRoomPasswordUppercase)",passwordNotSupported:"$t(lockRoomPassword) \u0442\u043e\u0445\u0438\u0440\u0443\u0443\u043b\u0430\u0445 \u043d\u044c \u0434\u044d\u043c\u0436\u0438\u0433\u0434\u044d\u0445\u0433\u04af\u0439 \u0431\u0430\u0439\u043d\u0430.",passwordNotSupportedTitle:"$t(lockRoomPasswordUppercase) \u0434\u044d\u043c\u0436\u0438\u0433\u0434\u044d\u0445\u0433\u04af\u0439 \u0431\u0430\u0439\u043d\u0430",passwordRequired:"$t(lockRoomPasswordUppercase) \u0437\u0430\u0430\u0432\u0430\u043b",popupError:"\u0422\u0430\u043d\u044b \u0445\u04e9\u0442\u04e9\u0447 \u044d\u043d\u044d \u0441\u0430\u0439\u0442\u0430\u0430\u0441 \u043f\u043e\u043f\u0430\u043f \u0446\u043e\u043d\u0445\u0443\u0443\u0434\u044b\u0433 \u0431\u043b\u043e\u043a\u043b\u043e\u0436 \u0431\u0430\u0439\u043d\u0430. \u0425\u04e9\u0442\u0447\u04e9\u04e9 \u0430\u044e\u0443\u043b\u0433\u04af\u0439 \u0431\u0430\u0439\u0434\u043b\u044b\u043d \u0442\u043e\u0445\u0438\u0440\u0433\u043e\u043e\u043d \u0434\u044d\u044d\u0440 \u0433\u0430\u0440\u0447 \u0438\u0440\u044d\u0445 \u0446\u043e\u043d\u0445\u044b\u0433 \u0438\u0434\u044d\u0432\u0445\u0436\u04af\u04af\u043b\u044d\u044d\u0434 \u0434\u0430\u0445\u0438\u043d \u043e\u0440\u043e\u043b\u0434\u043e\u043d\u043e \u0443\u0443.",popupErrorTitle:"\u041f\u043e\u043f\u0430\u043f \u0445\u0430\u0430\u043b\u0442\u0442\u0430\u0439 \u0431\u0430\u0439\u043d\u0430",recording:"\u0411\u0438\u0447\u043b\u044d\u0433 \u0445\u0438\u0439\u0445",recordingDisabledForGuestTooltip:"\u0417\u043e\u0447\u0438\u0434 \u0431\u0438\u0447\u043b\u044d\u0433 \u0445\u0438\u0439\u0436 \u0431\u043e\u043b\u043e\u0445\u0433\u04af\u0439.",recordingDisabledTooltip:"\u0411\u0438\u0447\u043b\u044d\u0433 \u0445\u0438\u0439\u0445 \u0445\u0430\u0430\u043b\u0442\u0442\u0430\u0439.",rejoinNow:"\u041e\u0434\u043e\u043e \u0434\u0430\u0445\u0438\u043d \u043d\u044d\u0433\u0434\u044d\u0445",remoteControlAllowedMessage:"{{user}} \u0430\u043b\u0441\u044b\u043d \u0443\u0434\u0438\u0440\u0434\u043b\u0430\u0433\u044b\u043d \u0445\u04af\u0441\u044d\u043b\u0442\u0438\u0439\u0433 \u0445\u04af\u043b\u044d\u044d\u043d \u0430\u0432\u043b\u0430\u0430!",remoteControlDeniedMessage:"{{user}} \u0430\u043b\u0441\u044b\u043d \u0443\u0434\u0438\u0440\u0434\u043b\u0430\u0433\u044b\u043d \u0445\u04af\u0441\u044d\u043b\u0442\u044d\u044d\u0441 \u0442\u0430\u0442\u0433\u0430\u043b\u0437\u043b\u0430\u0430!",remoteControlErrorMessage:"\u0410\u043b\u0441\u044b\u043d \u0443\u0434\u0438\u0440\u0434\u043b\u0430\u0433\u0430\u0430\u0441 {{user}} \u0437\u04e9\u0432\u0448\u04e9\u04e9\u0440\u04e9\u043b \u0445\u04af\u0441\u044d\u0445 \u04af\u0435\u0434 \u0430\u043b\u0434\u0430\u0430 \u0433\u0430\u0440\u043b\u0430\u0430!",remoteControlRequestMessage:"\u0422\u0430 {{user}} \u0442\u0430\u043d\u044b \u0434\u0435\u0441\u043a\u0442\u043e\u043f\u043e\u043e\u0441 \u0430\u043b\u0441\u044b\u043d \u0437\u0430\u0439\u043d\u0430\u0430\u0441 \u0443\u0434\u0438\u0440\u0434\u0430\u0445\u044b\u0433 \u0437\u04e9\u0432\u0448\u04e9\u04e9\u0440\u04e9\u0445 \u04af\u04af?",remoteControlShareScreenWarning:"\u0425\u044d\u0440\u044d\u0432 \u0442\u0430 \"Allow\" \u0442\u043e\u0432\u0447\u0438\u0439\u0433 \u0434\u0430\u0440\u0432\u0430\u043b, \u0442\u0430\u043d\u044b \u0434\u044d\u043b\u0433\u044d\u0446\u0438\u0439\u0433 \u0445\u0443\u0432\u0430\u0430\u043b\u0446\u0430\u0445 \u0431\u043e\u043b\u043d\u043e \u0433\u044d\u0434\u0433\u0438\u0439\u0433 \u0430\u043d\u0445\u0430\u0430\u0440\u043d\u0430 \u0443\u0443!",remoteControlStopMessage:"\u0410\u043b\u0441\u044b\u043d \u0443\u0434\u0438\u0440\u0434\u043b\u0430\u0433\u044b\u043d \u0445\u044d\u0441\u044d\u0433 \u0434\u0443\u0443\u0441\u0441\u0430\u043d!",remoteControlTitle:"\u0410\u043b\u0441\u044b\u043d \u0443\u0434\u0438\u0440\u0434\u043b\u0430\u0433\u044b\u043d",Remove:"\u0423\u0441\u0442\u0433\u0430\u0445",removePassword:"$t(lockRoomPassword) \u0443\u0441\u0442\u0433\u0430\u0445",removeSharedVideoMsg:"\u0422\u0430 \u0445\u0443\u0432\u0430\u0430\u043b\u0446\u0441\u0430\u043d \u0432\u0438\u0434\u0435\u043e\u0433\u043e\u043e \u0443\u0441\u0442\u0433\u0430\u0445\u0434\u0430\u0430 \u0438\u0442\u0433\u044d\u043b\u0442\u044d\u0439 \u0431\u0430\u0439\u043d\u0430 \u0443\u0443?",removeSharedVideoTitle:"\u0425\u0443\u0432\u0430\u0430\u043b\u0446\u0441\u0430\u043d \u0432\u0438\u0434\u0435\u043e\u0433 \u0443\u0441\u0442\u0433\u0430\u0445",reservationError:"\u0417\u0430\u0445\u0438\u0430\u043b\u0433\u044b\u043d \u0441\u0438\u0441\u0442\u0435\u043c\u0438\u0439\u043d \u0430\u043b\u0434\u0430\u0430",reservationErrorMsg:"\u0410\u043b\u0434\u0430\u0430\u043d\u044b \u043a\u043e\u0434: {{code}}, \u043c\u0435\u0441\u0441\u0435\u0436: {{msg}}",retry:"\u0414\u0430\u0445\u0438\u0436",screenSharingFailedToInstall:"\u0414\u044d\u043b\u0433\u044d\u0446 \u0445\u0443\u0432\u0430\u0430\u043b\u0446\u0430\u0445 \u04e9\u0440\u0433\u04e9\u0442\u0433\u04e9\u043b\u0438\u0439\u0433 \u0441\u0443\u0443\u043b\u0433\u0430\u0436 \u0447\u0430\u0434\u0441\u0430\u043d\u0433\u04af\u0439.",screenSharingFailedToInstallTitle:"\u0414\u044d\u043b\u0433\u044d\u0446 \u0445\u0443\u0432\u0430\u0430\u043b\u0446\u0430\u0445 \u04e9\u0440\u0433\u04e9\u0442\u0433\u04e9\u043b\u0438\u0439\u0433 \u0441\u0443\u0443\u043b\u0433\u0430\u0436 \u0447\u0430\u0434\u0441\u0430\u043d\u0433\u04af\u0439",screenSharingFirefoxPermissionDeniedError:"\u0422\u0430\u043d\u044b \u0434\u044d\u043b\u0433\u044d\u0446\u0438\u0439\u0433 \u0445\u0443\u0432\u0430\u0430\u043b\u0446\u0430\u0445 \u04af\u0435\u0434 \u044f\u043c\u0430\u0440 \u043d\u044d\u0433 \u0430\u043b\u0434\u0430\u0430 \u0433\u0430\u0440\u043b\u0430\u0430. \u0422\u0430 \u0431\u0438\u0434\u044d\u043d\u0434 \u0437\u04e9\u0432\u0448\u04e9\u04e9\u0440\u04e9\u043b \u04e9\u0433\u0441\u04e9\u043d \u044d\u0441\u044d\u0445\u044d\u044d \u0448\u0430\u043b\u0433\u0430\u043d\u0430 \u0443\u0443. ",screenSharingFirefoxPermissionDeniedTitle:"\u0414\u044d\u043b\u0433\u044d\u0446 \u0445\u0443\u0432\u0430\u0430\u043b\u0446\u0430\u0445\u044b\u0433 \u044d\u0445\u043b\u04af\u04af\u043b\u044d\u0445 \u0431\u043e\u043b\u043e\u043c\u0436\u0433\u04af\u0439 \u0431\u0430\u0439\u043d\u0430!",screenSharingPermissionDeniedError:"\u0422\u0430\u043d\u044b \u0434\u044d\u043b\u0433\u044d\u0446\u0438\u0439\u0433 \u0445\u0443\u0432\u0430\u0430\u043b\u0446\u0430\u0445 \u0437\u04e9\u0432\u0448\u04e9\u04e9\u0440\u043b\u0438\u0439\u0433 \u0441\u0443\u0443\u043b\u0433\u0430\u0445\u0430\u0434 \u0430\u043b\u0434\u0430\u0430 \u0433\u0430\u0440\u0441\u0430\u043d \u0431\u0430\u0439\u043d\u0430. \u0424\u0430\u0439\u043b\u044b\u0433 \u0434\u0430\u0445\u0438\u043d \u0430\u0447\u0430\u0430\u043b\u043b\u0430\u0430\u0434, \u0434\u0430\u0445\u0438\u043d \u043e\u0440\u043e\u043b\u0434\u043e\u043d\u043e \u0443\u0443.",sendPrivateMessage:"\u0425\u0443\u0432\u0438\u0439\u043d \u043c\u0435\u0441\u0441\u0435\u0436 \u0445\u04af\u043b\u044d\u044d\u043d \u0430\u0432\u0441\u0430\u043d. \u0422\u0430 \u0442\u0443\u0441\u0434\u0430\u0430 \u0445\u0430\u0440\u0438\u0443 \u04e9\u0433\u04e9\u0445 \u0433\u044d\u0436 \u0431\u0430\u0439\u043d\u0430 \u0443\u0443, \u044d\u0441\u0432\u044d\u043b \u0442\u0430 \u0431\u04af\u043b\u044d\u0433\u0442 \u0438\u043b\u0433\u044d\u044d\u0445 \u04af\u04af?",sendPrivateMessageCancel:"\u0411\u04af\u043b\u044d\u0433\u0442 \u0438\u043b\u0433\u044d\u044d\u043d\u044d \u04af\u04af",sendPrivateMessageOk:"\u0425\u0443\u0432\u0438\u0439\u043d \u0431\u0430\u0439\u0434\u043b\u0430\u0430\u0440 \u0438\u043b\u0433\u044d\u044d\u0445",sendPrivateMessageTitle:"\u0425\u0443\u0432\u0438\u0430\u0440\u0430\u0430 \u0438\u043b\u0433\u044d\u044d\u0445 \u04af\u04af?",serviceUnavailable:"\u04ae\u0439\u043b\u0447\u0438\u043b\u0433\u044d\u044d \u0430\u0432\u0430\u0445 \u0431\u043e\u043b\u043e\u043c\u0436\u0433\u04af\u0439",sessTerminated:"\u0414\u0443\u0443\u0434\u043b\u0430\u0433\u0430 \u0441\u0430\u043b\u043b\u0430\u0430",Share:"\u0425\u0443\u0432\u0430\u0430\u043b\u0446\u0430\u0445",shareVideoLinkError:"YouTube-\u0438\u0439\u043d \u0437\u04e9\u0432 \u043b\u0438\u043d\u043a \u043e\u0440\u0443\u0443\u043b\u043d\u0430 \u0443\u0443.",shareVideoTitle:"\u0412\u0438\u0434\u0435\u043e \u0445\u0443\u0432\u0430\u0430\u043b\u0446\u0430\u0445",shareYourScreen:"\u0414\u044d\u043b\u0433\u044d\u0446\u044d\u044d \u0445\u0443\u0432\u0430\u0430\u043b\u0446\u0430\u0445",shareYourScreenDisabled:"\u0414\u044d\u043b\u0433\u044d\u0446 \u0445\u0443\u0432\u0430\u0430\u043b\u0446\u0430\u0445 \u0438\u0434\u044d\u0432\u0445\u0433\u04af\u0439",shareYourScreenDisabledForGuest:"\u0417\u043e\u0447\u0438\u0434 \u0434\u044d\u043b\u0433\u044d\u0446 \u0445\u0443\u0432\u0430\u0430\u043b\u0446\u0430\u0445 \u0431\u043e\u043b\u043e\u043c\u0436\u0433\u04af\u0439.",startLiveStreaming:"\u0428\u0443\u0443\u0434 \u0434\u0430\u043c\u0436\u0443\u0443\u043b\u0430\u043b\u0442\u044b\u0433 \u044d\u0445\u043b\u04af\u04af\u043b",startRecording:"\u0411\u0438\u0447\u043b\u044d\u0433 \u0445\u0438\u0439\u0436 \u044d\u0445\u044d\u043b",startRemoteControlErrorMessage:"\u0410\u043b\u0441\u044b\u043d \u0443\u0434\u0438\u0440\u0434\u043b\u0430\u0433\u0430 \u044d\u0445\u043b\u04af\u04af\u043b\u044d\u0445 \u04af\u0435\u0434 \u0430\u043b\u0434\u0430\u0430 \u0433\u0430\u0440\u043b\u0430\u0430!",stopLiveStreaming:"\u0428\u0443\u0443\u0434 \u0434\u0430\u043c\u0436\u0443\u0443\u043b\u0430\u043b\u0442\u044b\u0433 \u0437\u043e\u0433\u0441\u043e\u043e",stopRecording:"\u0411\u0438\u0447\u043b\u044d\u0433\u044d\u044d \u0437\u043e\u0433\u0441\u043e\u043e",stopRecordingWarning:"\u0422\u0430 \u0431\u0438\u0447\u043b\u044d\u0433\u044d\u044d \u0437\u043e\u0433\u0441\u043e\u043e\u0445\u0434\u043e\u043e \u0438\u0442\u0433\u044d\u043b\u0442\u044d\u0439 \u0431\u0430\u0439\u043d\u0430 \u0443\u0443?",stopStreamingWarning:"\u0422\u0430 \u0448\u0443\u0443\u0434 \u0434\u0430\u043c\u0436\u0443\u0443\u043b\u0430\u043b\u0442\u044b\u0433 \u0437\u043e\u0433\u0441\u043e\u043e\u0445\u0434\u043e\u043e \u0438\u0442\u0433\u044d\u043b\u0442\u044d\u0439 \u0431\u0430\u0439\u043d\u0430 \u0443\u0443?",streamKey:"\u0428\u0443\u0443\u0434 \u0434\u0430\u043c\u0436\u0443\u0443\u043b\u0430\u043b\u0442\u044b\u043d \u0442\u04af\u043b\u0445\u04af\u04af\u0440",Submit:"\u0418\u043b\u0433\u044d\u044d\u0445",thankYou:"{{appName}} \u0430\u0448\u0438\u0433\u043b\u0430\u0436 \u0431\u0443\u0439 \u0442\u0430\u043d\u0434 \u0431\u0430\u044f\u0440\u043b\u0430\u043b\u0430\u0430!",token:"token",tokenAuthFailed:"\u0423\u0443\u0447\u043b\u0430\u0430\u0440\u0430\u0439, \u0442\u0430 \u044d\u043d\u0434 \u043d\u044d\u0432\u0442\u0440\u044d\u0445 \u044d\u0440\u0445\u0433\u04af\u0439 \u0431\u0430\u0439\u043d\u0430.",tokenAuthFailedTitle:"\u041d\u044d\u0432\u0442\u0440\u044d\u043b\u0442 \u0430\u043c\u0436\u0438\u043b\u0442\u0433\u04af\u0439",transcribing:"\u041e\u0440\u0447\u0443\u0443\u043b\u0430\u0445",unlockRoom:"$t(lockRoomPassword) \u0445\u0443\u0440\u043b\u044b\u0433 \u0443\u0441\u0442\u0433\u0430\u043d\u0430 \u0443\u0443",userPassword:"\u0445\u044d\u0440\u044d\u0433\u043b\u044d\u0433\u0447\u0438\u0439\u043d \u043d\u0443\u0443\u0446 \u04af\u0433",WaitForHostMsg:"{{room}} \u0445\u0443\u0440\u0430\u043b \u0445\u0430\u0440\u0430\u0430\u0445\u0430\u043d \u044d\u0445\u043b\u044d\u044d\u0433\u04af\u0439 \u0431\u0430\u0439\u043d\u0430. \u0425\u044d\u0440\u044d\u0432 \u0442\u0430 \u0445\u043e\u0441\u0442 \u0431\u0430\u0439\u0433\u0430\u0430 \u0431\u043e\u043b \u043d\u044d\u0432\u0442\u044d\u0440\u043d\u044d \u04af\u04af. \u04ae\u0433\u04af\u0439 \u0431\u043e\u043b \u0445\u043e\u0441\u0442 \u0438\u0440\u044d\u0445\u0438\u0439\u0433 \u0445\u04af\u043b\u044d\u044d\u043d\u044d \u04af\u04af.",WaitForHostMsgWOk:"{{room}} \u0445\u0443\u0440\u0430\u043b \u0445\u0430\u0440\u0430\u0430\u0445\u0430\u043d \u044d\u0445\u043b\u044d\u044d\u0433\u04af\u0439 \u0431\u0430\u0439\u043d\u0430. \u0425\u044d\u0440\u044d\u0432 \u0442\u0430 \u0445\u043e\u0441\u0442 \u044d\u0437\u044d\u043c\u0448\u0438\u0433\u0447 \u0431\u043e\u043b \u0431\u0430\u0442\u0430\u043b\u0433\u0430\u0430\u0436\u0443\u0443\u043b\u0430\u0445\u044b\u043d \u0442\u0443\u043b\u0434 Ok \u0434\u044d\u044d\u0440 \u0434\u0430\u0440\u043d\u0430 \u0443\u0443. \u04ae\u0433\u04af\u0439 \u0431\u043e\u043b \u0445\u043e\u0441\u0442 \u0438\u0440\u044d\u0445\u0438\u0439\u0433 \u0445\u04af\u043b\u044d\u044d\u043d\u044d \u04af\u04af.",WaitingForHost:"\u0425\u043e\u0441\u0442\u044b\u0433 \u0445\u04af\u043b\u044d\u044d\u0436 \u0431\u0430\u0439\u043d\u0430 ...",Yes:"\u0422\u0438\u0439\u043c",yourEntireScreen:"\u0422\u0430\u043d\u044b \u0434\u044d\u043b\u0433\u044d\u0446\u0438\u0439\u0433 \u0431\u04af\u0445\u044d\u043b\u0434\u044d\u044d"},dialOut:{statusMessage:"\u043e\u0434\u043e\u043e {{status}} \u0431\u0430\u0439\u043d\u0430"},documentSharing:{title:"\u0411\u0438\u0447\u0438\u0433 \u0431\u0430\u0440\u0438\u043c\u0442 \u0445\u0443\u0432\u0430\u0430\u043b\u0446\u0430\u0445"},feedback:{average:"\u0414\u0443\u043d\u0434\u0430\u0436",bad:"\u041c\u0443\u0443",detailsLabel:"\u042d\u043d\u044d \u0442\u0430\u043b\u0430\u0430\u0440 \u0438\u043b\u04af\u04af \u0434\u044d\u043b\u0433\u044d\u0440\u044d\u043d\u0433\u04af\u0439.",good:"\u0421\u0430\u0439\u043d",rateExperience:"\u0425\u0443\u0440\u043b\u044b\u043d \u0442\u0443\u0440\u0448\u043b\u0430\u0433\u0430\u0430 \u04af\u043d\u044d\u043b\u044d\u0445",veryBad:"\u041c\u0430\u0448 \u043c\u0443\u0443",veryGood:"\u041c\u0430\u0448 \u0441\u0430\u0439\u043d"},incomingCall:{answer:"\u0425\u0430\u0440\u0438\u0443\u043b",audioCallTitle:"\u0414\u0443\u0443\u0434\u043b\u0430\u0433\u0430 \u0438\u0440\u043b\u044d\u044d",decline:"\u0413\u0430\u0440\u0433\u0430\u0445",productLabel:"\u0421\u0430\u043d\u0433\u0438\u0439\u043d \u042f\u0430\u043c",videoCallTitle:"\u0412\u0438\u0434\u0435\u043e \u0434\u0443\u0443\u0434\u043b\u0430\u0433\u0430 \u0438\u0440\u043b\u044d\u044d"},info:{accessibilityLabel:"\u041c\u044d\u0434\u044d\u044d\u043b\u043b\u0438\u0439\u0433 \u0445\u0430\u0440\u0443\u0443\u043b\u0430\u0445",addPassword:"$t(lockRoomPassword) \u043d\u044d\u043c\u044d\u0445",cancelPassword:"$t(lockRoomPassword) \u0446\u0443\u0446\u043b\u0430\u0445",conferenceURL:"\u0425\u043e\u043b\u0431\u043e\u043e\u0441:",country:"\u0423\u043b\u0441",dialANumber:"\u0423\u0443\u043b\u0437\u0430\u043b\u0442\u0430\u043d\u0434 \u043e\u0440\u043e\u043b\u0446\u043e\u0445\u044b\u043d \u0442\u0443\u043b\u0434 \u044d\u0434\u0433\u044d\u044d\u0440 \u0434\u0443\u0433\u0430\u0430\u0440\u0443\u0443\u0434\u044b\u043d \u0430\u043b\u044c \u043d\u044d\u0433\u0440\u04af\u04af \u043d\u044c \u0437\u0430\u043b\u0433\u0430\u0430\u0434, \u043f\u0438\u043d\u0433 \u043e\u0440\u0443\u0443\u043b\u043d\u0430 \u0443\u0443.",dialInConferenceID:"PIN:",dialInNotSupported:"\u0423\u0443\u0447\u043b\u0430\u0430\u0440\u0430\u0439, \u043e\u0434\u043e\u043e\u0433\u043e\u043e\u0440 \u0434\u0443\u0443\u0434\u043b\u0430\u0433\u0430 \u0445\u0438\u0439\u0445 \u0431\u043e\u043b\u043e\u043c\u0436\u0433\u04af\u0439 \u0431\u0430\u0439\u043d\u0430.",dialInNumber:"\u0414\u0443\u0443\u0434\u043b\u0430\u0433\u0430 \u0445\u0438\u0439\u0436 \u0431\u0430\u0439\u043d\u0430:",dialInSummaryError:"\u0417\u0430\u043b\u0433\u0430\u0436 \u043c\u044d\u0434\u044d\u044d\u043b\u043b\u0438\u0439\u0433 \u0430\u0432\u0430\u0445 \u04af\u0435\u0434 \u0430\u043b\u0434\u0430\u0430 \u0433\u0430\u0440\u043b\u0430\u0430. \u0414\u0430\u0440\u0430\u0430 \u0434\u0430\u0445\u0438\u043d \u043e\u0440\u043e\u043b\u0434\u043e\u0436 \u04af\u0437\u043d\u044d \u04af\u04af.",dialInTollFree:"Toll Free",genericError:"\u042f\u043c\u0430\u0440 \u043d\u044d\u0433 \u0430\u0441\u0443\u0443\u0434\u0430\u043b \u0433\u0430\u0440\u043b\u0430\u0430.",inviteLiveStream:"\u042d\u043d\u044d \u0443\u0443\u043b\u0437\u0430\u043b\u0442\u044b\u043d \u0448\u0443\u0443\u0434 \u0434\u0430\u043c\u0436\u0443\u0443\u043b\u0430\u043b\u0442\u044b\u0433 \u04af\u0437\u044d\u0445\u0438\u0439\u043d \u0442\u0443\u043b\u0434 \u044d\u043d\u044d \u0445\u043e\u043b\u0431\u043e\u043e\u0441\u044b\u0433 \u0434\u0430\u0440\u043d\u0430 \u0443\u0443: {{url}}",invitePhone:"\u0423\u0442\u0441\u0430\u0430\u0440 \u0445\u043e\u043b\u0431\u043e\u0433\u0434\u043e\u0445\u044b\u043d \u0442\u0443\u043b\u0434 \u044d\u043d\u044d \u0434\u044d\u044d\u0440 \u0434\u0430\u0440\u043d\u0430 \u0443\u0443: {{number}},,{{conferenceID}}#\n",invitePhoneAlternatives:"\u04e8\u04e9\u0440 \u0437\u0430\u043b\u0433\u0430\u0445 \u0434\u0443\u0433\u0430\u0430\u0440 \u0445\u0430\u0439\u0436 \u0431\u0430\u0439\u043d\u0430 \u0443\u0443?\n\u0423\u0443\u043b\u0437\u0430\u043b\u0442\u044b\u043d \u0434\u0443\u0433\u0430\u0430\u0440\u044b\u0433 \u0445\u0430\u0440\u0430\u0445: {{url}}\n\n\n\u0425\u044d\u0440\u044d\u0432 \u04e9\u0440\u04e9\u04e9\u043d\u0438\u0439 \u0443\u0442\u0430\u0441 \u0440\u0443\u0443 \u0437\u0430\u043b\u0433\u0430\u0445 \u0431\u043e\u043b \u0430\u0443\u0434\u0438\u043e\u0434 \u0445\u043e\u043b\u0431\u043e\u0433\u0434\u043e\u0445\u0433\u04af\u0439\u0433\u044d\u044d\u0440 \u043d\u044d\u0433\u0434\u044d\u044d\u0440\u044d\u0439: {{silentUrl}}",inviteURLFirstPartGeneral:"\u0422\u0430 \u0431\u04af\u0445\u043d\u0438\u0439\u0433 \u0443\u0443\u043b\u0437\u0430\u043b\u0442\u0430\u0434 \u0443\u0440\u044c\u0436 \u0431\u0430\u0439\u043d\u0430.",inviteURLFirstPartPersonal:"{{name}} \u0442\u0430\u043d\u044b\u0433 \u0443\u0443\u043b\u0437\u0430\u043b\u0442\u0430\u043d\u0434 \u0443\u0440\u044c\u0436 \u0431\u0430\u0439\u043d\u0430.\n",inviteURLSecondPart:"\n\u0423\u0443\u043b\u0437\u0430\u043b\u0442\u0430\u0434 \u043d\u044d\u0433\u0434\u044d\u044d\u0440\u044d\u0439:\n{{url}}\n",liveStreamURL:"\u0428\u0443\u0443\u0434 \u0434\u0430\u043c\u0436\u0443\u0443\u043b\u0430\u043b\u0442:",moreNumbers:"\u0411\u0443\u0441\u0430\u0434 \u0434\u0443\u0433\u0430\u0430\u0440",noNumbers:"\u0417\u0430\u043b\u0433\u0430\u0445 \u0434\u0443\u0433\u0430\u0430\u0440 \u0431\u0430\u0439\u0445\u0433\u04af\u0439 \u0431\u0430\u0439\u043d\u0430.",noPassword:"\u0425\u043e\u043e\u0441\u043e\u043d",noRoom:"\u041d\u044d\u0432\u0442\u0440\u044d\u0445 \u04e9\u0440\u04e9\u04e9 \u043e\u043b\u0434\u0441\u043e\u043d\u0433\u04af\u0439.",numbers:"\u0417\u0430\u043b\u0433\u0430\u0445 \u0434\u0443\u0433\u0430\u0430\u0440\u0443\u0443\u0434",password:"$t(lockRoomPasswordUppercase):",title:"\u0425\u0443\u0432\u0430\u0430\u043b\u0446\u0430\u0445",tooltip:"\u0425\u0443\u0440\u043b\u044b\u043d \u0445\u043e\u043b\u0431\u043e\u043e\u0441\u044b\u0433 \u0445\u0443\u0432\u0430\u0430\u043b\u0446\u0430\u0445",label:"\u0425\u0443\u0440\u043b\u044b\u043d \u043c\u044d\u0434\u044d\u044d\u043b\u044d\u043b"},inviteDialog:{alertText:"\u0417\u0430\u0440\u0438\u043c \u043e\u0440\u043e\u043b\u0446\u043e\u0433\u0447\u0434\u044b\u0433 \u0443\u0440\u044c\u0436 \u0447\u0430\u0434\u0441\u0430\u043d\u0433\u04af\u0439.",header:"\u0423\u0440\u0438\u0445",searchCallOnlyPlaceholder:"\u0423\u0442\u0430\u0441\u043d\u044b \u0434\u0443\u0433\u0430\u0430\u0440\u0430\u0430 \u043e\u0440\u0443\u0443\u043b\u043d\u0430 \u0443\u0443",searchPeopleOnlyPlaceholder:"\u041e\u0440\u043e\u043b\u0446\u043e\u0433\u0447\u0434\u044b\u0433 \u0445\u0430\u0439\u0445",searchPlaceholder:"\u041e\u0440\u043e\u043b\u0446\u043e\u0433\u0447 \u044d\u0441\u0432\u044d\u043b \u0443\u0442\u0430\u0441\u043d\u044b \u0434\u0443\u0433\u0430\u0430\u0440",send:"\u0418\u043b\u0433\u044d\u044d\u0445"},inlineDialogFailure:{msg:"\u0410\u0441\u0443\u0443\u0434\u0430\u043b \u0433\u0430\u0440\u043b\u0430\u0430",retry:"\u0414\u0430\u0445\u0438\u043d \u043e\u0440\u043e\u043b\u0434",support:"\u0414\u044d\u043c\u0436\u043b\u044d\u0433",supportMsg:"\u0425\u044d\u0440\u044d\u0432 \u0438\u0439\u043c \u0430\u0441\u0443\u0443\u0434\u0430\u043b \u0434\u0430\u0445\u0438\u0430\u0434 \u0442\u043e\u0445\u0438\u043e\u043b\u0434\u0432\u043e\u043b \u0445\u043e\u043b\u0431\u043e\u043e \u0431\u0430\u0440\u0438\u0430\u0440\u0430\u0439"},keyboardShortcuts:{focusLocal:"\u04e8\u04e9\u0440\u0438\u0439\u043d \u0432\u0438\u0434\u0435\u043e\u0433 \u04af\u0437\u044d\u0445",focusRemote:"\u04e8\u04e9\u0440 \u0445\u04af\u043d\u0438\u0439 \u0432\u0438\u0434\u0435\u043e\u0433 \u04af\u0437\u044d\u0445",fullScreen:"\u0414\u044d\u043b\u0433\u044d\u0446 \u0434\u04af\u04af\u0440\u0433\u044d\u0445 \u044d\u0441\u0432\u044d\u043b \u0433\u0430\u0440\u0430\u0445",keyboardShortcuts:"\u0413\u0430\u0440\u043d\u044b \u0442\u043e\u0432\u0447\u043b\u043e\u043b",localRecording:"\u04e8\u04e9\u0440\u0438\u0439\u043d \u0431\u0438\u0447\u043b\u044d\u0433\u0438\u0439\u043d \u0445\u044f\u043d\u0430\u043b\u0442\u044b\u0433 \u04af\u0437\u04af\u04af\u043b\u044d\u0445 \u044d\u0441\u0432\u044d\u043b \u043d\u0443\u0443\u0445",mute:"\u041c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u044b\u0433 \u0445\u0430\u0430\u0445 \u044d\u0441\u0432\u044d\u043b \u043d\u044d\u044d\u0445",pushToTalk:"\u042f\u0440\u0438\u0430 \u0440\u0443\u0443",raiseHand:"\u0413\u0430\u0440\u0430\u0430 \u04e9\u0440\u0433\u04e9\u0445 \u044d\u0441\u0432\u044d\u043b \u0434\u043e\u043e\u0448\u043b\u0443\u0443\u043b",showSpeakerStats:"\u042f\u0440\u0438\u0433\u0447\u0438\u0439\u043d \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a \u0445\u0430\u0440\u0430\u0445",toggleChat:"\u0417\u0443\u0440\u0432\u0430\u0441\u044b\u0433 \u043d\u044d\u044d\u0445 \u0431\u0443\u044e\u0443 \u0445\u0430\u0430\u0445",toggleFilmstrip:"\u0412\u0438\u0434\u0435\u043e \u0431\u0438\u0447\u043b\u044d\u0433\u0438\u0439\u043d \u04e9\u043d\u0433\u04e9\u0446 \u0437\u0443\u0440\u0433\u0438\u0439\u0433 \u04af\u0437\u04af\u04af\u043b\u044d\u0445 \u044d\u0441\u0432\u044d\u043b \u043d\u0443\u0443\u0445",toggleScreensharing:"\u041a\u0430\u043c\u0435\u0440 \u0431\u0430 \u0434\u044d\u043b\u0433\u044d\u0446 \u0445\u0443\u0432\u0430\u0430\u043b\u0446\u0430\u0445 \u0445\u043e\u043e\u0440\u043e\u043d\u0434 \u0448\u0438\u043b\u0436\u0438\u043d\u044d",toggleShortcuts:"\u0422\u043e\u0432\u0447\u043b\u043e\u043b\u0443\u0443\u0434\u044b\u0433 \u0445\u0430\u0440\u0443\u0443\u043b\u0430\u0445 \u044d\u0441\u0432\u044d\u043b \u043d\u0443\u0443\u0445",videoMute:"\u041a\u0430\u043c\u0435\u0440\u0430\u0430 \u044d\u0445\u043b\u04af\u04af\u043b\u044d\u0445 \u044d\u0441\u0432\u044d\u043b \u0437\u043e\u0433\u0441\u043e\u043e\u0445",videoQuality:"\u0412\u0438\u0434\u0435\u043e\u043d\u044b \u0447\u0430\u043d\u0430\u0440\u044b\u0433 \u0443\u0434\u0438\u0440\u0434\u0430\u0445"},liveStreaming:{busy:"\u0411\u0438\u0434 \u0443\u0440\u0441\u0433\u0430\u043b\u044b\u043d \u0447\u04e9\u043b\u04e9\u04e9\u043b\u04e9\u0445\u04e9\u04e9\u0440 \u0430\u0436\u0438\u043b\u043b\u0430\u0436 \u0431\u0430\u0439\u043d\u0430. \u0425\u044d\u0434\u044d\u043d \u043c\u0438\u043d\u0443\u0442\u044b\u043d \u0434\u0430\u0440\u0430\u0430 \u0434\u0430\u0445\u0438\u043d \u043e\u0440\u043e\u043b\u0434\u043e\u043d\u043e \u0443\u0443.",busyTitle:"\u0411\u04af\u0445 \u0434\u0430\u043c\u0436\u0443\u0443\u043b\u0430\u0433\u0447\u0438\u0434 \u0437\u0430\u0432\u0433\u04af\u0439 \u0431\u0430\u0439\u043d\u0430",changeSignIn:"\u0411\u04af\u0440\u0442\u0433\u044d\u043b \u0441\u043e\u043b\u0438\u0445.",choose:"\u0428\u0443\u0443\u0434 \u0434\u0430\u043c\u0436\u0443\u0443\u043b\u0430\u043b\u0442\u044b\u0433 \u0441\u043e\u043d\u0433\u043e\u043d\u043e \u0443\u0443",chooseCTA:"\u0414\u0430\u043c\u0436\u0443\u0443\u043b\u0430\u043b\u0442\u044b\u0433 \u0441\u043e\u043d\u0433\u043e\u043d\u043e \u0443\u0443. \u0422\u0430 {{email}} \u0430\u0448\u0438\u0433\u043b\u0430\u043d \u043d\u044d\u0432\u0442\u044d\u0440\u0441\u044d\u043d \u0431\u0430\u0439\u043d\u0430.",enterStreamKey:"YouTube \u0448\u0443\u0443\u0434 \u0434\u0430\u043c\u0436\u0443\u0443\u043b\u0430\u043b\u0442\u044b\u043d \u0442\u04af\u043b\u0445\u04af\u04af\u0440\u0438\u0439\u0433 \u044d\u043d\u0434 \u043e\u0440\u0443\u0443\u043b\u043d\u0430 \u0443\u0443.",error:"\u0428\u0443\u0443\u0434 \u0434\u0430\u043c\u0436\u0443\u0443\u043b\u0430\u043b\u0442 \u0430\u043c\u0436\u0438\u043b\u0442\u0433\u04af\u0439 \u0431\u043e\u043b\u0441\u043e\u043d. \u0414\u0430\u0445\u0438\u043d \u043e\u0440\u043e\u043b\u0434\u043e\u043d\u043e \u0443\u0443.",errorAPI:"\u0422\u0430\u043d\u044b YouTube \u0440\u04af\u04af \u043d\u044d\u0432\u0442\u0440\u044d\u0445 \u04af\u0435\u0434 \u0430\u043b\u0434\u0430\u0430 \u0433\u0430\u0440\u043b\u0430\u0430. \u0414\u0430\u0440\u0430\u0430 \u0434\u0430\u0445\u0438\u043d \u043d\u044d\u0432\u0442\u044d\u0440\u043d\u044d \u04af\u04af.",errorLiveStreamNotEnabled:"\u0428\u0443\u0443\u0434 \u0434\u0430\u043c\u0436\u0443\u0443\u043b\u0430\u043b\u0442 {{email}} \u0434\u044d\u044d\u0440 \u0438\u0434\u044d\u0432\u0445\u0436\u04af\u04af\u043b\u044d\u044d\u0433\u04af\u0439 \u0431\u0430\u0439\u043d\u0430. \u0428\u0443\u0443\u0434 \u0434\u0430\u043c\u0436\u0443\u0443\u043b\u0430\u043b\u0442\u044b\u0433 \u0438\u0434\u044d\u0432\u0445\u0436\u04af\u04af\u043b \u044d\u0441\u0432\u044d\u043b \u0448\u0443\u0443\u0434 \u0434\u0430\u043c\u0436\u0443\u0443\u043b\u0430\u043b\u0442 \u0445\u0438\u0439\u0445 \u0431\u043e\u043b\u043e\u043c\u0436\u0442\u043e\u0439 \u0431\u04af\u0440\u0442\u0433\u044d\u043b\u044d\u044d\u0440 \u043d\u044d\u0432\u0442\u044d\u0440\u043d\u044d \u04af\u04af.",expandedOff:"\u0428\u0443\u0443\u0434 \u0434\u0430\u043c\u0436\u0443\u0443\u043b\u0430\u043b\u0442 \u0437\u043e\u0433\u0441\u0441\u043e\u043d \u0431\u0430\u0439\u043d\u0430",expandedOn:"\u042d\u043d\u044d \u0445\u0443\u0440\u043b\u044b\u0433 YouTube \u0434\u044d\u044d\u0440 \u0448\u0443\u0443\u0434 \u0434\u0430\u043c\u0436\u0443\u0443\u043b\u0436 \u0431\u0430\u0439\u043d\u0430.",expandedPending:"\u0428\u0443\u0443\u0434 \u0434\u0430\u043c\u0436\u0443\u0443\u043b\u0430\u043b\u0442\u044b\u0433 \u044d\u0445\u043b\u04af\u04af\u043b\u0436 \u0431\u0430\u0439\u043d\u0430...",failedToStart:"\u0428\u0443\u0443\u0434 \u0434\u0430\u043c\u0436\u0443\u0443\u043b\u0430\u043b\u0442\u044b\u0433 \u044d\u0445\u043b\u04af\u04af\u043b\u0436 \u0447\u0430\u0434\u0441\u0430\u043d\u0433\u04af\u0439",getStreamKeyManually:"\u0428\u0443\u0443\u0434 \u0434\u0430\u043c\u0436\u0443\u0443\u043b\u0430\u043b\u0442\u044b\u0433 \u0445\u0438\u0439\u0445 \u0447\u0430\u0434\u0441\u0430\u043d\u0433\u04af\u0439. YouTube-\u044d\u044d\u0441 \u0448\u0443\u0443\u0434 \u0434\u0430\u043c\u0436\u0443\u0443\u043b\u0430\u043b\u0442\u044b\u043d \u0442\u04af\u043b\u0445\u04af\u04af\u0440\u044d\u044d \u0448\u0430\u043b\u0433\u0430\u0436 \u04af\u0437\u044d\u044d\u0440\u044d\u0439.",invalidStreamKey:"\u0428\u0443\u0443\u0434 \u0434\u0430\u043c\u0436\u0443\u0443\u043b\u0430\u043b\u0442\u044b\u043d \u0442\u04af\u043b\u0445\u04af\u04af\u0440\u044d\u044d \u0448\u0430\u043b\u0433\u0430\u043d\u0430 \u0443\u0443.",off:"\u0428\u0443\u0443\u0434 \u0434\u0430\u043c\u0436\u0443\u0443\u043b\u0430\u043b\u0442 \u0437\u043e\u0433\u0441\u0441\u043e\u043d",offBy:"{{name}} \u0448\u0443\u0443\u0434 \u0434\u0430\u043c\u0436\u0443\u0443\u043b\u0430\u043b\u0442\u044b\u0433 \u0437\u043e\u0433\u0441\u043e\u043e\u0441\u043e\u043d",on:"\u0428\u0443\u0443\u0434 \u0434\u0430\u043c\u0436\u0443\u0443\u043b\u0430\u043b\u0442",onBy:"{{name}} \u0448\u0443\u0443\u0434 \u0434\u0430\u043c\u0436\u0443\u0443\u043b\u0430\u043b\u0442 \u044d\u0445\u043b\u04af\u04af\u043b\u0441\u044d\u043d",pending:"\u0428\u0443\u0443\u0434 \u0434\u0430\u043c\u0436\u0443\u0443\u043b\u0430\u043b\u0442\u044b\u0433 \u044d\u0445\u043b\u04af\u04af\u043b\u0436 \u0431\u0430\u0439\u043d\u0430...",serviceName:"\u0428\u0443\u0443\u0434 \u0434\u0430\u043c\u0436\u0443\u0443\u043b\u0430\u043b\u0442 \u04af\u0439\u043b\u0447\u0438\u043b\u0433\u044d\u044d",signedInAs:"\u0422\u0430 \u043e\u0434\u043e\u043e \u043d\u044d\u0432\u0442\u044d\u0440\u0441\u044d\u043d \u0431\u0430\u0439\u043d\u0430:",signIn:"Google-\u0440 \u043d\u044d\u0432\u0442\u0440\u044d\u0445",signInCTA:"YouTube \u0434\u044d\u044d\u0440 \u0448\u0443\u0443\u0434 \u0434\u0430\u043c\u0436\u0443\u0443\u043b\u0430\u043b\u0442\u044b\u043d \u0442\u04af\u043b\u0445\u04af\u04af\u0440\u044d\u044d \u043e\u0440\u0443\u0443\u043b\u043d\u0430 \u0443\u0443.",signOut:"\u0413\u0430\u0440\u0430\u0445",start:"\u0428\u0443\u0443\u0434 \u0434\u0430\u043c\u0436\u0443\u0443\u043b\u0430\u043b\u0442 \u044d\u0445\u043b\u04af\u04af\u043b",streamIdHelp:"\u042d\u043d\u044d \u044e\u0443 \u0432\u044d?",unavailableTitle:"\u0428\u0443\u0443\u0434 \u0434\u0430\u043c\u0436\u0443\u0443\u043b\u0430\u043b\u0442 \u0431\u043e\u043b\u043e\u043c\u0436\u0433\u04af\u0439"},localRecording:{clientState:{off:"Off",on:"On",unknown:"\u0422\u0430\u043d\u0438\u0433\u0434\u0430\u0430\u0433\u04af\u0439"},dialogTitle:"\u0414\u043e\u0442\u043e\u043e\u0434 \u0431\u0438\u0447\u043b\u044d\u0433\u0438\u0439\u043d \u0445\u044f\u043d\u0430\u043b\u0442",duration:"\u04ae\u0440\u0433\u044d\u043b\u0436\u043b\u044d\u0445 \u0445\u0443\u0433\u0430\u0446\u0430\u0430",durationNA:"N/A",encoding:"Encoding",label:"LOR",labelToolTip:"\u0414\u043e\u0442\u043e\u043e\u0434 \u0431\u0438\u0447\u043b\u044d\u0433 \u0445\u0438\u0439\u043d\u044d",localRecording:"\u0414\u043e\u0442\u043e\u043e\u0434 \u0431\u0438\u0447\u043b\u044d\u0433",me:"\u041d\u0430\u0434\u0430\u0434",messages:{engaged:"\u0414\u043e\u0442\u043e\u043e\u0434 \u0431\u0438\u0447\u043b\u044d\u0433 \u0445\u0438\u0439\u0434\u044d\u0433",finished:"Recording session {{token}} finished. Please send the recorded file to the moderator.",finishedModerator:"Recording session {{token}} finished. The recording of the local track has been saved. Please ask the other participants to submit their recordings.",notModerator:"\u0422\u0430 \u0437\u043e\u0445\u0438\u0446\u0443\u0443\u043b\u0430\u0433\u0447 \u0431\u0438\u0448. \u0422\u0430 \u0434\u043e\u0442\u043e\u043e\u0434 \u0431\u0438\u0447\u043b\u044d\u0433\u0438\u0439\u0433 \u044d\u0445\u043b\u04af\u04af\u043b\u044d\u0445 \u044d\u0441\u0432\u044d\u043b \u0437\u043e\u0433\u0441\u043e\u043e\u0445 \u0431\u043e\u043b\u043e\u043c\u0436\u0433\u04af\u0439."},moderator:"\u0417\u043e\u0445\u0438\u0446\u0443\u0443\u043b\u0430\u0433\u0447",no:"\u04ae\u0433\u04af\u0439",participant:"\u041e\u0440\u043e\u043b\u0446\u043e\u0433\u0447",participantStats:"\u041e\u0440\u043e\u043b\u0446\u043e\u0433\u0447\u0434\u044b\u043d \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a",sessionToken:"\u0418\u0434\u044d\u0432\u0445\u0442\u044d\u0439 \u0422\u043e\u043a\u0435\u043d",start:"\u0411\u0438\u0447\u043b\u044d\u0433 \u0445\u0438\u0439\u0445",stop:"\u0411\u0438\u0447\u043b\u044d\u0433 \u0431\u043e\u043b\u0438\u0445",yes:"\u0422\u0438\u0439\u043c"},lockRoomPassword:"\u043d\u0443\u0443\u0446 \u04af\u0433",lockRoomPasswordUppercase:"\u041d\u0443\u0443\u0446 \u04af\u0433",me:"\u041d\u0430\u0434\u0430\u0434",notify:{connectedOneMember:"{{name}} \u0445\u0443\u0440\u0430\u043b\u0434 \u043d\u044d\u0433\u0434\u0441\u044d\u043d",connectedThreePlusMembers:"{{name}} \u0431\u043e\u043b\u043e\u043d \u0431\u0443\u0441\u0430\u0434 {{count}} \u0445\u0443\u0440\u0430\u043b\u0434 \u043d\u044d\u0433\u0434\u0441\u044d\u043d",connectedTwoMembers:"{{first}} \u0431\u0430 {{second}} \u0445\u0443\u0440\u0430\u043b\u0434 \u043d\u044d\u0433\u0434\u0441\u044d\u043d",disconnected:"\u0425\u0443\u0440\u043b\u0430\u0430\u0441 \u0433\u0430\u0440\u043b\u0430\u0430",focus:"\u0425\u0443\u0440\u0430\u043b \u0444\u043e\u043a\u0443\u0441",focusFail:"{{component}} \u0431\u043e\u043b\u043e\u043c\u0436\u0433\u04af\u0439 - {{ms}} \u0441\u0435\u043a \u0434\u0430\u0440\u0430\u0430 \u0434\u0430\u0445\u0438\u043d \u043e\u0440\u043e\u043b\u0434\u043e\u043d\u043e \u0443\u0443",grantedTo:"{{to}} \u0437\u043e\u0445\u0438\u0446\u0443\u0443\u043b\u0430\u0433\u0447 \u044d\u0440\u0445 \u04e9\u0433\u04e9\u0433\u0434\u0441\u04e9\u043d!",invitedOneMember:"{{name}} \u0443\u0440\u044c\u0441\u0430\u043d \u0431\u0430\u0439\u043d\u0430",invitedThreePlusMembers:"{{name}} \u0431\u043e\u043b\u043e\u043d \u0431\u0443\u0441\u0430\u0434 {{count}} \u0443\u0440\u044c\u0441\u0430\u043d \u0431\u0430\u0439\u043d\u0430",invitedTwoMembers:"{{first}} \u0431\u0430 {{second}} \u0443\u0440\u044c\u0441\u0430\u043d \u0431\u0430\u0439\u043d\u0430",kickParticipant:"{{kicked}} -\u0433 {{kicker}} \u0433\u0430\u0440\u0433\u0430\u0441\u0430\u043d",me:"\u041d\u0430\u0434\u0430\u0434",moderator:"\u0417\u043e\u0445\u0438\u0446\u0443\u0443\u043b\u0430\u0433\u0447\u0438\u0439\u043d \u044d\u0440\u0445 \u043e\u043b\u0433\u043e\u0441\u043e\u043d!",muted:"\u0422\u0430 \u0445\u0430\u0440\u0438\u043b\u0446\u0430\u043d \u044f\u0440\u0438\u0430\u0433 \u0445\u0430\u0430\u0441\u0430\u043d \u0431\u0430\u0439\u043d\u0430.",mutedTitle:"\u0422\u0430\u043d\u044b \u0434\u0443\u0443 \u0445\u0430\u0430\u043b\u0442\u0430\u0439 \u0431\u0430\u0439\u043d\u0430!",mutedRemotelyTitle:"\u0422\u0430\u043d\u044b \u0434\u0443\u0443\u0433 {{participantDisplayName}} \u0445\u0430\u0430\u0441\u0430\u043d \u0431\u0430\u0439\u043d\u0430!!",mutedRemotelyDescription:"\u0422\u0430 \u044f\u0440\u0438\u0445\u0430\u0434 \u0431\u044d\u043b\u044d\u043d \u04af\u0435\u0434\u044d\u044d \u0434\u0443\u0443\u0433 \u043d\u044d\u044d\u0436 \u044f\u0440\u0438\u0445 \u0431\u043e\u043b\u043e\u043c\u0436\u0442\u043e\u0439. \u0423\u0443\u043b\u0437\u0430\u043b\u0442\u0430\u0434 \u0434\u0443\u0443 \u0447\u0438\u043c\u044d\u044d \u0433\u0430\u0440\u0433\u0430\u0445\u0433\u04af\u0439 \u0431\u0430\u0439\u0445\u044b\u043d \u0442\u0443\u043b\u0434 \u0434\u0443\u0443\u0433\u0430\u0430 \u0445\u0430\u0430\u0433\u0430\u0430\u0440\u0430\u0439.",passwordRemovedRemotely:"$t(lockRoomPasswordUppercase) \u04e9\u04e9\u0440 \u043e\u0440\u043e\u043b\u0446\u043e\u0433\u0447 \u0443\u0441\u0442\u0433\u0430\u0441\u0430\u043d",passwordSetRemotely:"$t(lockRoomPasswordUppercase) \u04e9\u04e9\u0440 \u043e\u0440\u043e\u043b\u0446\u043e\u0433\u0447\u043e\u043e\u0441 \u0445\u0438\u0439\u0441\u044d\u043d",raisedHand:"{{name}} \u044f\u0440\u0438\u0445\u044b\u0433 \u0445\u04af\u0441\u0447 \u0431\u0430\u0439\u043d\u0430.",somebody:"\u0425\u044d\u043d \u043d\u044d\u0433\u044d\u043d",startSilentTitle:"\u0422\u0430 \u044f\u043c\u0430\u0440 \u0447 \u0430\u0443\u0434\u0438\u043e \u0442\u04e9\u0445\u04e9\u04e9\u0440\u04e9\u043c\u0436\u0433\u04af\u0439 \u043d\u044d\u0433\u0434\u0441\u044d\u043d!",startSilentDescription:"\u0414\u0443\u0443\u0433 \u0438\u0434\u044d\u0432\u0445\u0436\u04af\u04af\u043b\u044d\u0445\u0438\u0439\u043d \u0442\u0443\u043b\u0434 \u0445\u0443\u0440\u0430\u043b\u0434 \u0434\u0430\u0445\u0438\u043d \u043d\u044d\u0433\u0434\u044d\u044d\u0440\u044d\u0439",suboptimalBrowserWarning:"\u0422\u0430\u043d\u044b \u0445\u04e9\u0442\u04e9\u0447 \u0434\u044d\u044d\u0440 \u0431\u04af\u0440\u044d\u043d \u0434\u044d\u043c\u0436\u043b\u044d\u0433 \u043e\u0440\u043e\u043e\u0433\u04af\u0439 \u0431\u0430\u0439\u043d\u0430. \u0422\u0430 \u0431\u04af\u0440\u044d\u043d \u0434\u044d\u043c\u0436\u0438\u0433\u0434\u0441\u044d\u043d \u0445\u04e9\u0442\u04e9\u0447\u0438\u0439\u0433 \u0430\u0448\u0438\u0433\u043b\u0430\u043d\u0430 \u0443\u0443.",suboptimalExperienceTitle:"\u0425\u04e9\u0442\u04e9\u0447\u0438\u0439\u043d \u0430\u043d\u0445\u0430\u0430\u0440\u0443\u0443\u043b\u0433\u0430",unmute:"\u0414\u0443\u0443\u0442\u0430\u0439",newDeviceCameraTitle:"\u0428\u0438\u043d\u044d \u043a\u0430\u043c\u0435\u0440",newDeviceAudioTitle:"\u0428\u0438\u043d\u044d \u0430\u0443\u0434\u0438\u043e \u0442\u04e9\u0445\u04e9\u04e9\u0440\u04e9\u043c\u0436",newDeviceAction:"\u0425\u044d\u0440\u044d\u0433\u043b\u044d\u0445"},passwordSetRemotely:"\u04e9\u04e9\u0440 \u043e\u0440\u043e\u043b\u0446\u043e\u0433\u0447 \u0445\u0438\u0439\u0441\u044d\u043d",passwordDigitsOnly:"{{number}} \u0445\u04af\u0440\u0442\u044d\u043b\u0445 \u0442\u043e\u043e",poweredby:"\u0434\u044d\u043c\u0436\u0438\u0433\u0434\u0441\u044d\u043d",presenceStatus:{busy:"\u0417\u0430\u0432\u0433\u04af\u0439",calling:"\u0414\u0443\u0443\u0434\u0430\u0436 \u0431\u0430\u0439\u043d\u0430...",connected:"\u0425\u043e\u043b\u0431\u043e\u0433\u0434\u0441\u043e\u043d",connecting:"\u0425\u043e\u043b\u0431\u043e\u0436 \u0431\u0430\u0439\u043d\u0430...",connecting2:"\u0425\u043e\u043b\u0431\u043e\u0436 \u0431\u0430\u0439\u043d\u0430*...",disconnected:"\u0425\u043e\u043b\u0431\u043e\u0433\u0434\u043e\u043e\u0433\u04af\u0439",expired:"\u0425\u0443\u0433\u0430\u0446\u0430\u0430 \u043d\u044c \u0434\u0443\u0443\u0441\u0441\u0430\u043d",ignored:"Ignored",initializingCall:"\u0414\u0443\u0443\u0434\u043b\u0430\u0433\u044b\u0433 \u044d\u0445\u043b\u04af\u04af\u043b\u0436 \u0431\u0430\u0439\u043d\u0430...",invited:"\u0423\u0440\u044c\u0441\u0430\u043d",rejected:"\u0422\u0430\u0442\u0433\u0430\u043b\u0437\u0441\u0430\u043d",ringing:"\u0414\u0443\u0443\u0434\u0430\u0436 \u0431\u0430\u0439\u043d\u0430..."},profile:{setDisplayNameLabel:"\u041d\u044d\u0440\u044d\u044d \u043e\u0440\u0443\u0443\u043b\u043d\u0430 \u0443\u0443",setEmailInput:"\u0418-\u043c\u044d\u0439\u043b \u043e\u0440\u0443\u0443\u043b\u043d\u0430 \u0443\u0443",setEmailLabel:"\u0418-\u043c\u044d\u0439\u043b \u0445\u0430\u044f\u0433\u0430\u0430 \u043e\u0440\u0443\u0443\u043b\u043d\u0430 \u0443\u0443",title:"\u041f\u0440\u043e\u0444\u0430\u0439\u043b"},raisedHand:"\u042f\u0440\u044c\u043c\u0430\u0430\u0440 \u0431\u0430\u0439\u043d\u0430",recording:{authDropboxText:"Dropbox \u0431\u0430\u0439\u0440\u0448\u0443\u0443\u043b\u0430\u0445",availableSpace:"\u0411\u043e\u043b\u043e\u043c\u0436\u0442\u043e\u0439 \u0437\u0430\u0439: {{spaceLeft}} MB (\u043e\u0439\u0440\u043e\u043b\u0446\u043e\u043e\u0433\u043e\u043e\u0440 {{duration}} \u043c\u0438\u043d\u0443\u0442\u044b\u043d \u0431\u0438\u0447\u043b\u044d\u0433)",beta:"BETA",busy:"\u0411\u0438\u0447\u043b\u044d\u0433\u0438\u0439\u043d \u043d\u04e9\u04e9\u0446\u0438\u0439\u0433 \u0441\u0443\u043b \u0431\u043e\u043b\u0433\u043e\u0445\u043e\u043e\u0440 \u0430\u0436\u0438\u043b\u043b\u0430\u0436 \u0431\u0430\u0439\u043d\u0430. \u0425\u044d\u0434\u044d\u043d \u043c\u0438\u043d\u0443\u0442\u044b\u043d \u0434\u0430\u0440\u0430\u0430 \u0434\u0430\u0445\u0438\u043d \u043e\u0440\u043e\u043b\u0434\u043e\u043d\u043e \u0443\u0443.",busyTitle:"\u0411\u04af\u0445 \u0431\u0438\u0447\u0438\u0433\u0447\u0438\u0434 \u0437\u0430\u0432\u0433\u04af\u0439 \u0431\u0430\u0439\u043d\u0430",error:"\u0411\u0438\u0447\u043b\u044d\u0433 \u0445\u0438\u0439\u0445 \u0430\u043c\u0436\u0438\u043b\u0442\u0433\u04af\u0439 \u0431\u043e\u043b\u043b\u043e\u043e. \u0414\u0430\u0445\u0438\u043d \u043e\u0440\u043e\u043b\u0434\u043e\u043d\u043e \u0443\u0443.",expandedOff:"\u0411\u0438\u0447\u043b\u044d\u0433 \u0445\u0438\u0439\u0445 \u0437\u043e\u0433\u0441\u0441\u043e\u043d",expandedOn:"\u0425\u0443\u0440\u043b\u044b\u0433 \u043e\u0434\u043e\u043e \u0442\u044d\u043c\u0434\u044d\u0433\u043b\u044d\u0436 \u0431\u0430\u0439\u043d\u0430.",expandedPending:"\u0411\u0438\u0447\u043b\u044d\u0433\u0438\u0439\u0433 \u0445\u0438\u0439\u0436 \u0431\u0430\u0439\u043d\u0430...",failedToStart:"\u0411\u0438\u0447\u043b\u044d\u0433 \u0445\u0438\u0439\u0445 \u0430\u043c\u0436\u0438\u043b\u0442\u0433\u04af\u0439 \u0431\u043e\u043b\u043b\u043e\u043e",fileSharingdescription:"\u0411\u0438\u0447\u043b\u044d\u0433\u0438\u0439\u0433 \u0445\u0443\u0440\u043b\u044b\u043d \u043e\u0440\u043e\u043b\u0446\u043e\u0433\u0447\u0438\u0434\u0442\u043e\u0439 \u0445\u0443\u0432\u0430\u0430\u043b\u0446\u0430\u0445",live:"\u0428\u0423\u0423\u0414",loggedIn:"{{userName}} \u043d\u044d\u0432\u0442\u044d\u0440\u043d\u044d \u04af\u04af",off:"\u0411\u0438\u0447\u043b\u044d\u0433 \u0437\u043e\u0433\u0441\u0441\u043e\u043d",offBy:"{{name}} \u0431\u0438\u0447\u043b\u044d\u0433\u0438\u0439\u0433 \u0437\u043e\u0433\u0441\u043e\u043e\u0441\u043e\u043d",on:"\u0411\u0438\u0447\u0438\u0436 \u0431\u0430\u0439\u043d\u0430",onBy:"{{name}} \u0431\u0438\u0447\u043b\u044d\u0433 \u0445\u0438\u0439\u0436 \u044d\u0445\u043b\u044d\u0432",pending:"\u0425\u0443\u0440\u043b\u044b\u0433 \u0431\u0438\u0447\u0438\u0445\u044d\u044d\u0440 \u0431\u044d\u043b\u0442\u0433\u044d\u0436 \u0431\u0430\u0439\u043d\u0430...",rec:"REC",serviceDescription:"\u0422\u0430\u043d\u044b \u0431\u0438\u0447\u043b\u044d\u0433\u0438\u0439\u0433 \u0445\u0430\u0434\u0433\u0430\u043b\u043d\u0430",serviceName:"\u0411\u0438\u0447\u043b\u044d\u0433\u0438\u0439\u043d \u04af\u0439\u043b\u0447\u0438\u043b\u0433\u044d\u044d",signIn:"\u041d\u044d\u0432\u0442\u0440\u044d\u0445",signOut:"\u0413\u0430\u0440\u0430\u0445",unavailable:"{{serviceName}} \u043e\u0434\u043e\u043e\u0433\u043e\u043e\u0440 \u0430\u0436\u0438\u043b\u043b\u0430\u0445\u0433\u04af\u0439 \u0431\u0430\u0439\u043d\u0430. \u0411\u0438\u0434 \u0430\u0441\u0443\u0443\u0434\u043b\u044b\u0433 \u0448\u0438\u0439\u0434\u0432\u044d\u0440\u043b\u044d\u0445\u044d\u044d\u0440 \u0430\u0436\u0438\u043b\u043b\u0430\u0436 \u0431\u0430\u0439\u043d\u0430. \u0414\u0430\u0440\u0430\u0430 \u0434\u0430\u0445\u0438\u043d \u043e\u0440\u043e\u043b\u0434\u043e\u0436 \u04af\u0437\u043d\u044d \u04af\u04af.",unavailableTitle:"\u0411\u0438\u0447\u043b\u044d\u0433 \u0445\u0438\u0439\u0445 \u0431\u043e\u043b\u043e\u043c\u0436\u0433\u04af\u0439"},sectionList:{pullToRefresh:"\u0428\u0438\u043d\u044d\u0447\u043b\u044d\u0445 \u0431\u043e\u043b \u0442\u0430\u0442\u043d\u0430 \u0443\u0443"},settings:{calendar:{about:"The {{appName}} calendar integration is used to securely access your calendar so it can read upcoming events.",disconnect:"\u0421\u0430\u043b\u0433\u0430\u043b\u0430\u0430",microsoftSignIn:"Sign in with Microsoft",signedIn:"Currently accessing calendar events for {{email}}. Click the Disconnect button below to stop accessing calendar events.",title:"\u0426\u0430\u0433\u0430\u043b\u0431\u0430\u0440"},devices:"\u0422\u04e9\u0445\u04e9\u04e9\u0440\u04e9\u043c\u0436\u04af\u04af\u0434",followMe:"\u0411\u04af\u0433\u0434 \u043d\u0430\u043c\u0430\u0439\u0433 \u0434\u0430\u0433\u0430\u0436 \u0431\u0430\u0439\u043d\u0430",language:"\u0425\u044d\u043b",loggedIn:"{{name}} \u043d\u044d\u0432\u0442\u044d\u0440\u0441\u044d\u043d",moderator:"\u0417\u043e\u0445\u0438\u0446\u0443\u0443\u043b\u0430\u0433\u0447",more:"\u0426\u0430\u0430\u0448",name:"\u041d\u044d\u0440",noDevice:"\u0411\u0430\u0439\u0445\u0433\u04af\u0439",selectAudioOutput:"\u0410\u0443\u0434\u0438\u043e \u0433\u0430\u0440\u0430\u043b\u0442",selectCamera:"\u041a\u0430\u043c\u0435\u0440",selectMic:"\u041c\u0438\u043a\u0440\u043e\u0444\u043e\u043d",startAudioMuted:"\u0411\u04af\u0433\u0434 \u0434\u0443\u0443\u0433\u04af\u0439 \u044d\u0445\u043b\u044d\u0445",startVideoMuted:"\u0411\u04af\u0433\u0434 \u0434\u04af\u0440\u0441\u0433\u04af\u0439 \u044d\u0445\u043b\u044d\u0445",title:"\u0422\u043e\u0445\u0438\u0440\u0433\u043e\u043e"},settingsView:{advanced:"\u041d\u0430\u0440\u0438\u0439\u0432\u0447\u0438\u043b\u0441\u0430\u043d",alertOk:"OK",alertTitle:"\u0410\u043d\u0445\u0430\u0430\u0440\u0443\u0443\u043b\u0433\u0430",alertURLText:"\u041e\u0440\u0443\u0443\u043b\u0441\u0430\u043d \u0441\u0435\u0440\u0432\u0435\u0440\u0438\u0439\u043d URL \u0445\u04af\u0447\u0438\u043d\u0433\u04af\u0439 \u0431\u0430\u0439\u043d\u0430",buildInfoSection:"\u041c\u044d\u0434\u044d\u044d\u043b\u044d\u043b \u043e\u0440\u0443\u0443\u043b\u0430\u0445",conferenceSection:"\u0425\u0443\u0440\u0430\u043b",disableCallIntegration:"\u04ae\u043d\u0434\u0441\u044d\u043d \u0434\u0443\u0443\u0434\u043b\u0430\u0433\u0430\u0434 \u04e9\u0433\u04e9\u0445 \u0442\u043e\u0445\u0438\u0440\u0433\u043e\u043e\u0433 \u0438\u0434\u044d\u0432\u0445\u0433\u04af\u0439 \u0431\u043e\u043b\u0433\u043e\u0445",disableP2P:"Peer-To-Peer \u0433\u043e\u0440\u0438\u043c \u0438\u0434\u044d\u0432\u0445\u0433\u04af\u0439 \u0431\u043e\u043b\u0433\u043e\u0445",displayName:"\u0414\u044d\u043b\u0433\u044d\u0446 \u043d\u044d\u0440",email:"\u0418\u043c\u044d\u0439\u043b",header:"\u0422\u043e\u0445\u0438\u0440\u0433\u043e\u043e",profileSection:"\u041f\u0440\u043e\u0444\u0430\u0439\u043b",serverURL:"\u0421\u0435\u0440\u0432\u0435\u0440\u0438\u0439\u043d URL",showAdvanced:"\u041d\u0430\u0440\u0438\u0439\u0432\u0447\u0438\u043b\u0441\u0430\u043d \u0442\u043e\u0445\u0438\u0440\u0433\u043e\u043e\u0433 \u0445\u0430\u0440\u0443\u0443\u043b\u0430\u0445",startWithAudioMuted:"\u0410\u0443\u0434\u0438\u043e \u0434\u0443\u0443\u0433\u04af\u0439 \u0431\u043e\u043b\u0433\u043e\u0445",startWithVideoMuted:"\u0412\u0438\u0434\u0435\u043e\u0433 \u0434\u0443\u0443\u0433 \u0445\u0430\u0430\u0445",version:"\u0425\u0443\u0432\u0438\u043b\u0431\u0430\u0440"},share:{dialInfoText:"\n\n=====\n\n\u0423\u0442\u0441\u0430\u043d \u0434\u044d\u044d\u0440\u044d\u044d \u0437\u0430\u043b\u0433\u0430\u0445\u044b\u0433 \u0445\u04af\u0441\u0447 \u0431\u0430\u0439\u043d\u0430 \u0443\u0443?\n\n{{defaultDialInNumber}}\u042d\u043d\u044d \u0443\u0443\u043b\u0437\u0430\u043b\u0442\u044b\u043d \u0443\u0442\u0430\u0441\u043d\u044b \u0434\u0443\u0433\u0430\u0430\u0440\u043b\u0443\u0443 \u0437\u0430\u043b\u0433\u0430\u0445\u044b\u0433 \u0445\u0430\u0440\u0430\u0445\u044b\u043d \u0442\u0443\u043b\u0434 \u044d\u043d\u044d \u0445\u043e\u043b\u0431\u043e\u043e\u0441 \u0434\u044d\u044d\u0440 \u0434\u0430\u0440\u043d\u0430 \u0443\u0443\n{{dialInfoPageUrl}}",mainText:"\u0423\u0443\u043b\u0437\u0430\u043b\u0442\u0430\u043d\u0434 \u043d\u044d\u0433\u0434\u044d\u0445\u0438\u0439\u043d \u0442\u0443\u043b\u0434 \u0434\u0430\u0440\u0430\u0430\u0445 \u0445\u043e\u043b\u0431\u043e\u043e\u0441\u044b\u0433 \u0434\u0430\u0440\u043d\u0430 \u0443\u0443:\n{{roomUrl}}"},speaker:"\u042f\u0440\u0438\u0433\u0447",speakerStats:{hours:"{{count}}\u0446",minutes:"{{count}}\u043c",name:"\u041d\u044d\u0440",seconds:"{{count}}\u0441",speakerStats:"\u042f\u0440\u0438\u0433\u0447\u0438\u0439\u043d \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a",speakerTime:"\u042f\u0440\u0438\u0433\u0447\u0438\u0439\u043d \u0446\u0430\u0433"},startupoverlay:{policyText:" ",title:"{{app}} \u043d\u044c \u0442\u0430\u043d\u044b \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d \u0431\u043e\u043b\u043e\u043d \u043a\u0430\u043c\u0435\u0440\u044b\u0433 \u0430\u0448\u0438\u0433\u043b\u0430\u043d\u0430."},suspendedoverlay:{rejoinKeyTitle:"\u0414\u0430\u0445\u0438\u043d \u043d\u044d\u0433\u0434\u044d\u0445",text:"\u0414\u0430\u0445\u0438\u043d \u0445\u043e\u043b\u0431\u043e\u0445\u044b\u043d \u0442\u0443\u043b\u0434 Rejoin \u0442\u043e\u0432\u0447\u0438\u0439\u0433 \u0434\u0430\u0440\u043d\u0430 \u0443\u0443.",title:"\u042d\u043d\u044d \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440 \u0443\u043d\u0442\u0430\u0440\u0441\u0430\u043d \u0443\u0447\u0438\u0440 \u0442\u0430\u043d\u044b \u0432\u0438\u0434\u0435\u043e \u0434\u0443\u0443\u0434\u043b\u0430\u0433\u0430 \u0442\u0430\u0441\u0430\u0440\u043b\u0430\u0430."},toolbar:{accessibilityLabel:{audioOnly:"\u0417\u04e9\u0432\u0445\u04e9\u043d \u0430\u0443\u0434\u0438\u043e",audioRoute:"\u0414\u0443\u0443\u043d\u044b \u0442\u04e9\u0445\u04e9\u04e9\u0440\u04e9\u043c\u0436 \u0441\u043e\u043d\u0433\u043e",callQuality:"\u0412\u0438\u0434\u0435\u043e\u043d\u044b \u0447\u0430\u043d\u0430\u0440",cc:"\u0425\u0430\u0434\u043c\u0430\u043b \u043e\u0440\u0447\u0443\u0443\u043b\u0433\u0430",chat:"\u0417\u0443\u0440\u0432\u0430\u0441\u044b\u043d \u0446\u043e\u043d\u0445",document:"\u0411\u0438\u0447\u0438\u0433 \u0431\u0430\u0440\u0438\u043c\u0442 \u0445\u0443\u0432\u0430\u0430\u043b\u0446\u0430\u0445",download:"\u041c\u0430\u043d\u0430\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u0443\u0443\u0434\u044b\u0433 \u0442\u0430\u0442\u0430\u0445",feedback:"\u0421\u0430\u043d\u0430\u043b \u0445\u04af\u0441\u044d\u043b\u0442\u044d\u044d \u04af\u043b\u0434\u044d\u044d\u0445",fullScreen:"\u0411\u04af\u0442\u044d\u043d \u0434\u044d\u043b\u0433\u044d\u0446",hangup:"\u0421\u0430\u043b\u0433\u0430\u0445",help:"\u0422\u0443\u0441\u043b\u0430\u043c\u0436",invite:"\u0425\u04af\u043c\u04af\u04af\u0441\u0438\u0439\u0433 \u0443\u0440\u0438\u0445",kick:"\u041e\u0440\u043e\u043b\u0446\u043e\u0433\u0447\u0438\u0439\u0433 \u0433\u0430\u0440\u0433\u0430\u0445",localRecording:"\u0414\u043e\u0442\u043e\u043e\u0434 \u0431\u0438\u0447\u043b\u044d\u0433\u0438\u0439\u043d \u0445\u044f\u043d\u0430\u043b\u0442",lockRoom:"\u041d\u0443\u0443\u0446 \u04af\u0433 \u04e9\u0433\u04e9\u0445",moreActions:"\u0411\u0443\u0441\u0430\u0434 \u0446\u044d\u0441",moreActionsMenu:"\u0411\u0443\u0441\u0430\u0434 \u0446\u044d\u0441",moreOptions:"\u0418\u043b\u04af\u04af \u0441\u043e\u043d\u0433\u043e\u043b\u0442",mute:"\u0414\u0443\u0443\u0433 \u0445\u0430\u0430\u0445",muteEveryone:"\u0411\u04af\u0445 \u0434\u0443\u0443\u0433 \u0445\u0430\u0430\u0445",pip:"\u0417\u0443\u0440\u0430\u0433 \u0437\u0443\u0440\u0430\u0433 \u0433\u043e\u0440\u0438\u043c",privateMessage:"\u0425\u0443\u0432\u0438\u0439\u043d \u0437\u0443\u0440\u0432\u0430\u0441 \u0438\u043b\u0433\u044d\u044d\u0445",profile:"\u04e8\u04e9\u0440\u0438\u0439\u043d \u043f\u0440\u043e\u0444\u0430\u0439\u043b\u044b\u0433 \u0437\u0430\u0441\u0430\u0445",raiseHand:"\u0413\u0430\u0440\u0430\u0430 \u04e9\u0440\u0433\u04e9",recording:"\u0411\u0438\u0447\u043b\u044d\u0433 \u0445\u0438\u0439\u0445",remoteMute:"\u041e\u0440\u043e\u043b\u0446\u043e\u0433\u0447 \u0434\u0443\u0443\u0433 \u0445\u0430\u0430\u0445",Settings:"\u0422\u043e\u0445\u0438\u0440\u0433\u043e\u043e",sharedvideo:"Youtube-\u043d \u0432\u0438\u0434\u0435\u043e \u0445\u0443\u0432\u0430\u0430\u043b\u0446\u0430\u0445",shareRoom:"\u0425\u04af\u043d \u0443\u0440\u0438\u0445",shareYourScreen:"\u0414\u044d\u043b\u0433\u044d\u0446 \u0445\u0443\u0432\u0430\u0430\u043b\u0446\u0430\u0445",shortcuts:"\u0422\u043e\u0432\u0447\u043b\u043e\u043b",show:"\u04ae\u0437\u04af\u04af\u043b\u044d\u0445",speakerStats:"\u042f\u0440\u0438\u0433\u0447\u0438\u0439\u043d \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a",tileView:"\u0417\u044d\u0440\u044d\u0433\u0446\u04af\u04af\u043b\u0436 \u0445\u0430\u0440\u0430\u0445",toggleCamera:"\u041a\u0430\u043c\u0435\u0440",videomute:"\u0414\u04af\u0440\u0441\u0433\u04af\u0439 \u0432\u0438\u0434\u0435\u043e",videoblur:"\u0412\u0438\u0434\u0435\u043e \u0431\u04af\u0434\u044d\u0433\u0440\u04af\u04af\u043b\u044d\u0445"},addPeople:"\u0422\u0430\u043d\u044b \u0434\u0443\u0443\u0434\u043b\u0430\u0433\u0430\u0434 \u0445\u04af\u043d \u043d\u044d\u043c\u044d\u0445",audioOnlyOff:"\u0411\u0430\u0433\u0430 \u0434\u0430\u043c\u0436\u0443\u0443\u043b\u0430\u0445 \u0433\u043e\u0440\u0438\u043c\u044b\u0433 \u0438\u0434\u044d\u0432\u0445\u0433\u04af\u0439 \u0431\u043e\u043b\u0433\u043e\u0445",audioOnlyOn:"\u0411\u0430\u0433\u0430 \u0434\u0430\u043c\u0436\u0443\u0443\u043b\u0430\u0445 \u0433\u043e\u0440\u0438\u043c\u044b\u0433 \u0438\u0434\u044d\u0432\u0445\u0436\u04af\u04af\u043b\u044d\u0445",audioRoute:"\u0414\u0443\u0443\u043d\u044b \u0442\u04e9\u0445\u04e9\u04e9\u0440\u04e9\u043c\u0436 \u0441\u043e\u043d\u0433\u043e\u0445",authenticate:"\u041d\u044d\u0432\u0442\u0440\u044d\u043b\u0442",callQuality:"\u0412\u0438\u0434\u0435\u043e\u043d\u044b \u0447\u0430\u043d\u0430\u0440",chat:"\u0417\u0443\u0440\u0432\u0430\u0441 \u043d\u044d\u044d\u0445/\u0445\u0430\u0430\u0445",closeChat:"\u0417\u0443\u0440\u0432\u0430\u0441 \u0445\u0430\u0430\u0445",documentClose:"\u0425\u0443\u0432\u0430\u0430\u043b\u0446\u0441\u0430\u043d \u0431\u0438\u0447\u0438\u0433 \u0431\u0430\u0440\u0438\u043c\u0442 \u0445\u0430\u0430\u0445",documentOpen:"\u0425\u0443\u0432\u0430\u0430\u043b\u0446\u0441\u0430\u043d \u0431\u0438\u0447\u0438\u0433 \u0431\u0430\u0440\u0438\u043c\u0442 \u043d\u044d\u044d\u0445",download:"\u041c\u0430\u043d\u0430\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u0443\u0443\u0434\u044b\u0433 \u0442\u0430\u0442\u0430\u0445",enterFullScreen:"\u0411\u04af\u0442\u044d\u043d \u0434\u044d\u043b\u0433\u044d\u0446\u044d\u044d\u0440 \u0445\u0430\u0440\u0430\u0445",enterTileView:"\u0417\u044d\u0440\u044d\u0433\u0446\u04af\u04af\u043b\u0436 \u0445\u0430\u0440\u0430\u0445",exitFullScreen:"\u0411\u04af\u0442\u044d\u043d \u0434\u044d\u043b\u0433\u044d\u0446\u044d\u044d\u0441 \u0433\u0430\u0440\u0430\u0445",exitTileView:"\u0417\u044d\u0440\u044d\u0433\u0446\u04af\u04af\u043b\u0436 \u0445\u0430\u0440\u0430\u0445 \u0431\u043e\u043b\u0438\u0445",feedback:"\u0421\u0430\u043d\u0430\u043b \u0445\u04af\u0441\u044d\u043b\u0442\u044d\u044d \u04af\u043b\u0434\u044d\u044d\u0445",hangup:"\u0421\u0430\u043b\u0433\u0430\u0445",help:"\u0422\u0443\u0441\u043b\u0430\u043c\u0436",invite:"\u0425\u04af\u043c\u04af\u04af\u0441 \u0443\u0440\u0438\u0445",login:"\u041d\u044d\u0432\u0442\u0440\u044d\u0445",logout:"\u0413\u0430\u0440\u0430\u0445",lowerYourHand:"\u0413\u0430\u0440\u0430\u0430 \u0431\u043e\u043b\u0438\u0445",moreActions:"\u0411\u0443\u0441\u0430\u0434 \u04af\u0439\u043b\u0434\u044d\u043b",moreOptions:"\u0411\u0443\u0441\u0430\u0434 \u0442\u043e\u0445\u0438\u0440\u0433\u043e\u043e",mute:"\u0414\u0443\u0443 \u0445\u0430\u0430\u0445/\u043d\u044d\u044d\u0445",muteEveryone:"\u0411\u04af\u0445 \u0434\u0443\u0443\u0433 \u0445\u0430\u0430\u0445",noAudioSignalTitle:"\u0422\u0430\u043d\u044b \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u043e\u043e\u0441 \u043e\u0440\u0443\u0443\u043b\u0430\u0445 \u043e\u0440\u043e\u043b\u0442 \u0431\u0430\u0439\u0445\u0433\u04af\u0439 \u0431\u0430\u0439\u043d\u0430!",noAudioSignalDesc:"\u0425\u044d\u0440\u044d\u0432 \u0442\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0438\u0439\u043d \u0442\u043e\u0445\u0438\u0440\u0433\u043e\u043e \u044d\u0441\u0432\u044d\u043b \u0442\u0435\u0445\u043d\u0438\u043a \u0445\u0430\u043d\u0433\u0430\u043c\u0436\u0430\u0430\u0441 \u04af\u04af\u043d\u0438\u0439\u0433 \u0438\u0434\u044d\u0432\u0445\u0433\u04af\u0439 \u0431\u043e\u043b\u0433\u043e\u043e\u0433\u04af\u0439 \u0431\u043e\u043b \u0442\u04e9\u0445\u04e9\u04e9\u0440\u04e9\u043c\u0436\u0438\u0439\u0433 \u0441\u043e\u043b\u0438\u0436 \u04af\u0437\u043d\u044d \u04af\u04af.",noAudioSignalDescSuggestion:"\u0425\u044d\u0440\u044d\u0432 \u0442\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0438\u0439\u043d \u0442\u043e\u0445\u0438\u0440\u0433\u043e\u043e \u044d\u0441\u0432\u044d\u043b \u0442\u0435\u0445\u043d\u0438\u043a \u0445\u0430\u043d\u0433\u0430\u043c\u0436\u0430\u0430\u0441 \u04af\u04af\u043d\u0438\u0439\u0433 \u0438\u0434\u044d\u0432\u0445\u0433\u04af\u0439 \u0431\u043e\u043b\u0433\u043e\u043e\u0433\u04af\u0439 \u0431\u043e\u043b \u0441\u0430\u043d\u0430\u043b \u0431\u043e\u043b\u0433\u043e\u0441\u043e\u043d \u0442\u04e9\u0445\u04e9\u04e9\u0440\u04e9\u043c\u0436\u0438\u0434 \u0448\u0438\u043b\u0436\u04af\u04af\u043b\u043d\u044d \u04af\u04af.",noAudioSignalDialInDesc:"\u0417\u0430\u043b\u0433\u0430\u0436 \u0430\u0448\u0438\u0433\u043b\u0430\u0436 \u0431\u043e\u043b\u043d\u043e:",noAudioSignalDialInLinkDesc:"\u0417\u0430\u043b\u0433\u0430\u0445 \u0434\u0443\u0433\u0430\u0430\u0440\u0443\u0443\u0434",noisyAudioInputTitle:"\u0422\u0430\u043d\u044b \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d \u0448\u0443\u0443\u0433\u0438\u0430\u043d\u0442\u0430\u0439 \u0431\u0430\u0439\u043d\u0430!",noisyAudioInputDesc:"\u0422\u0430\u043d\u044b \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d \u0448\u0443\u0443\u0433\u0438\u0436 \u0431\u0430\u0439\u043d\u0430, \u0434\u0443\u0443\u0433 \u043d\u044c \u0445\u0430\u0430\u0445 \u044d\u0441\u0432\u044d\u043b \u04e9\u04e9\u0440\u0447\u0438\u043b\u043d\u04e9 \u04af\u04af.",openChat:"\u0417\u0443\u0440\u0432\u0430\u0441 \u043d\u044d\u044d\u043b\u0442\u0442\u044d\u0439",pip:"\u0417\u0443\u0440\u0430\u0433-\u0437\u0443\u0440\u0430\u0433 \u0433\u043e\u0440\u0438\u043c \u043e\u0440\u0443\u0443\u043b\u0430\u0445",privateMessage:"\u0425\u0443\u0432\u0438\u0439\u043d \u0437\u0443\u0440\u0432\u0430\u0441 \u0438\u043b\u0433\u044d\u044d\u0445",profile:"\u041f\u0440\u043e\u0444\u0430\u0439\u043b\u0430\u0430 \u0437\u0430\u0441\u043d\u0430 \u0443\u0443",raiseHand:"\u0413\u0430\u0440\u0430\u0430 \u04e9\u0440\u0433\u04e9\u0445/\u0431\u043e\u043b\u0438\u0445",raiseYourHand:"\u0413\u0430\u0440\u0430\u0430 \u04e9\u0440\u0433\u04e9",Settings:"\u0422\u043e\u0445\u0438\u0440\u0433\u043e\u043e",sharedvideo:"YouTube-\u043d \u0432\u0438\u0434\u0435\u043e \u0445\u0443\u0432\u0430\u0430\u043b\u0446\u0430\u0445",shareRoom:"\u0425\u044d\u043d \u043d\u044d\u0433\u043d\u0438\u0439\u0433 \u0443\u0440\u0438\u0445",shortcuts:"\u0422\u043e\u0432\u0447\u043b\u043e\u043b \u0445\u0430\u0440\u0430\u0445",speakerStats:"\u042f\u0440\u0438\u0433\u0447\u0438\u0439\u043d \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a",startScreenSharing:"\u0414\u044d\u043b\u0433\u044d\u0446 \u0445\u0443\u0432\u0430\u0430\u043b\u0446\u0430\u0445\u044b\u0433 \u044d\u0445\u043b\u04af\u04af\u043b",startSubtitles:"\u0425\u0430\u0434\u043c\u0430\u043b \u043e\u0440\u0447\u0443\u0443\u043b\u0433\u044b\u0433 \u044d\u0445\u043b\u04af\u04af\u043b",stopScreenSharing:"\u0414\u044d\u043b\u0433\u044d\u0446 \u0445\u0443\u0432\u0430\u0430\u043b\u0446\u0430\u0445\u044b\u0433 \u0437\u043e\u0433\u0441\u043e\u043e\u0445",stopSubtitles:"\u0425\u0430\u0434\u043c\u0430\u043b \u043e\u0440\u0447\u0443\u0443\u043b\u0433\u044b\u0433 \u0437\u043e\u0433\u0441\u043e\u043e\u0445",stopSharedVideo:"YouTube \u0432\u0438\u0434\u0435\u043e \u0437\u043e\u0433\u0441\u043e\u043e\u0445",talkWhileMutedPopup:"\u042f\u0440\u044c\u0436 \u04af\u0437\u043c\u044d\u044d\u0440 \u0431\u0430\u0439\u043d\u0430 \u0443\u0443? \u0414\u0443\u0443 \u0445\u0430\u0430\u043b\u0442\u0442\u0430\u0439 \u0431\u0430\u0439\u043d\u0430.",tileViewToggle:"\u0417\u044d\u0440\u044d\u0433\u0446\u04af\u04af\u043b\u0436 \u0445\u0430\u0440\u0430\u0445",toggleCamera:"\u041a\u0430\u043c\u0435\u0440",videomute:"\u041a\u0430\u043c\u0435\u0440 \u043d\u044d\u044d\u0445/\u0445\u0430\u0430\u0445",startvideoblur:"\u0414\u044d\u0432\u0441\u0433\u044d\u0440\u0438\u0439\u0433 \u0431\u04af\u0434\u0433\u044d\u0440\u04af\u04af\u043b",stopvideoblur:"\u0411\u04af\u0434\u044d\u0433\u0440\u04af\u04af\u043b\u044d\u043b\u0442\u0438\u0439\u0433 \u0431\u043e\u043b\u0438\u0443\u043b\u0430\u0445"},transcribing:{ccButtonTooltip:"\u0425\u0430\u0434\u043c\u0430\u043b \u043e\u0440\u0447\u0443\u0443\u043b\u0433\u044b\u0433 \u0445\u0430\u0440\u0443\u0443\u043b\u0430\u0445/\u0431\u043e\u043b\u0438\u0445",error:"\u041e\u0440\u0447\u0443\u0443\u043b\u0433\u0430 \u0430\u043c\u0436\u0438\u043b\u0442\u0433\u04af\u0439 \u0431\u043e\u043b\u043b\u043e\u043e. \u0414\u0430\u0445\u0438\u043d \u043e\u0440\u043e\u043b\u0434\u043e\u043d\u043e \u0443\u0443.",expandedLabel:"\u0425\u0430\u0434\u043c\u0430\u043b \u043e\u0440\u0447\u0443\u0443\u043b\u0433\u044b\u0433 \u0431\u0438\u0447\u0438\u0436 \u0431\u0430\u0439\u043d\u0430",failedToStart:"\u0425\u0430\u0434\u043c\u0430\u043b \u043e\u0440\u0447\u0443\u0443\u043b\u0433\u0430 \u044d\u0445\u043b\u04af\u04af\u043b\u0436 \u0447\u0430\u0434\u0441\u0430\u043d\u0433\u04af\u0439",labelToolTip:"\u0425\u0443\u0440\u043b\u044b\u043d \u0445\u0430\u0434\u043c\u0430\u043b \u043e\u0440\u0447\u0443\u0443\u043b\u0433\u0430",off:"\u0425\u0430\u0434\u043c\u0430\u043b \u043e\u0440\u0447\u0443\u0443\u043b\u0433\u0430 \u0431\u043e\u043b\u044c\u0441\u043e\u043d",pending:"\u0425\u0443\u0440\u043b\u044b\u043d \u0445\u0430\u0434\u043c\u0430\u043b \u043e\u0440\u0447\u0443\u0443\u043b\u0433\u0430 \u0445\u0438\u0439\u0445\u044d\u0434 \u0431\u044d\u043b\u0434\u044d\u0436 \u0431\u0430\u0439\u043d\u0430...",start:"\u0425\u0430\u0434\u043c\u0430\u043b \u043e\u0440\u0447\u0443\u0443\u043b\u0433\u044b\u0433 \u0445\u0430\u0440\u0443\u0443\u043b\u0430\u0445",stop:"\u0425\u0430\u0434\u043c\u0430\u043b \u043e\u0440\u0447\u0443\u0443\u043b\u0433\u044b\u0433 \u0431\u043e\u043b\u0438\u0443\u043b",tr:"TR"},userMedia:{androidGrantPermissions:"\u0425\u04e9\u0442\u04e9\u0447\u04e9\u04e9\u0441 \u0437\u04e9\u0432\u0448\u04e9\u04e9\u0440\u04e9\u043b \u0445\u04af\u0441\u044d\u0445 \u0442\u043e\u0445\u0438\u043e\u043b\u0434\u043e\u043b\u0434 Allow \u0434\u0430\u0440\u043d\u0430 \u0443\u0443.",chromeGrantPermissions:"\u0425\u04e9\u0442\u04e9\u0447\u04e9\u04e9\u0441 \u0437\u04e9\u0432\u0448\u04e9\u04e9\u0440\u04e9\u043b \u0445\u04af\u0441\u044d\u0445 \u0442\u043e\u0445\u0438\u043e\u043b\u0434\u043e\u043b\u0434 Allow \u0434\u0430\u0440\u043d\u0430 \u0443\u0443.",edgeGrantPermissions:"\u0425\u04e9\u0442\u04e9\u0447\u04e9\u04e9\u0441 \u0437\u04e9\u0432\u0448\u04e9\u04e9\u0440\u04e9\u043b \u0445\u04af\u0441\u044d\u0445 \u0442\u043e\u0445\u0438\u043e\u043b\u0434\u043e\u043b\u0434 Yes \u0434\u0430\u0440\u043d\u0430 \u0443\u0443.",electronGrantPermissions:"\u041a\u0430\u043c\u0435\u0440 \u0431\u043e\u043b\u043e\u043d \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d \u0430\u0448\u0438\u0433\u043b\u0430\u0445 \u0437\u04e9\u0432\u0448\u04e9\u04e9\u0440\u04e9\u043b \u04e9\u0433\u043d\u04e9 \u04af\u04af",firefoxGrantPermissions:"\u0425\u04e9\u0442\u04e9\u0447\u04e9\u04e9\u0441 \u0437\u04e9\u0432\u0448\u04e9\u04e9\u0440\u04e9\u043b \u0445\u04af\u0441\u044d\u0445 \u0442\u043e\u0445\u0438\u043e\u043b\u0434\u043e\u043b\u0434 Share Selected Device \u0434\u0430\u0440\u043d\u0430 \u0443\u0443.",iexplorerGrantPermissions:"\u0425\u04e9\u0442\u04e9\u0447\u04e9\u04e9\u0441 \u0437\u04e9\u0432\u0448\u04e9\u04e9\u0440\u04e9\u043b \u0445\u04af\u0441\u044d\u0445 \u0442\u043e\u0445\u0438\u043e\u043b\u0434\u043e\u043b\u0434 OK \u0434\u0430\u0440\u043d\u0430 \u0443\u0443.",nwjsGrantPermissions:"\u041a\u0430\u043c\u0435\u0440 \u0431\u043e\u043b\u043e\u043d \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d \u0430\u0448\u0438\u0433\u043b\u0430\u0445 \u0437\u04e9\u0432\u0448\u04e9\u04e9\u0440\u04e9\u043b \u04e9\u0433\u043d\u04e9 \u04af\u04af",operaGrantPermissions:"\u0425\u04e9\u0442\u04e9\u0447\u04e9\u04e9\u0441 \u0437\u04e9\u0432\u0448\u04e9\u04e9\u0440\u04e9\u043b \u0445\u04af\u0441\u044d\u0445 \u0442\u043e\u0445\u0438\u043e\u043b\u0434\u043e\u043b\u0434 Allow \u0434\u0430\u0440\u043d\u0430 \u0443\u0443.","react-nativeGrantPermissions":"\u0425\u04e9\u0442\u04e9\u0447\u04e9\u04e9\u0441 \u0437\u04e9\u0432\u0448\u04e9\u04e9\u0440\u04e9\u043b \u0445\u04af\u0441\u044d\u0445 \u0442\u043e\u0445\u0438\u043e\u043b\u0434\u043e\u043b\u0434 Allow \u0434\u0430\u0440\u043d\u0430 \u0443\u0443.",safariGrantPermissions:"\u0425\u04e9\u0442\u04e9\u0447\u04e9\u04e9\u0441 \u0437\u04e9\u0432\u0448\u04e9\u04e9\u0440\u04e9\u043b \u0445\u04af\u0441\u044d\u0445 \u0442\u043e\u0445\u0438\u043e\u043b\u0434\u043e\u043b\u0434 OK \u0434\u0430\u0440\u043d\u0430 \u0443\u0443."},videoSIPGW:{busy:"\u0411\u0438\u0434 \u043d\u04e9\u04e9\u0446\u0438\u0439\u0433 \u0447\u04e9\u043b\u04e9\u04e9\u043b\u04e9\u0445\u04e9\u04e9\u0440 \u0430\u0436\u0438\u043b\u043b\u0430\u0436 \u0431\u0430\u0439\u043d\u0430. \u0425\u044d\u0434\u044d\u043d \u043c\u0438\u043d\u0443\u0442\u044b\u043d \u0434\u0430\u0440\u0430\u0430 \u0434\u0430\u0445\u0438\u043d \u043e\u0440\u043e\u043b\u0434\u043e\u043d\u043e \u0443\u0443.",busyTitle:"\u04ae\u0439\u043b\u0447\u0438\u043b\u0433\u044d\u044d \u043e\u0434\u043e\u043e\u0433\u043e\u043e\u0440 \u0437\u0430\u0432\u0433\u04af\u0439 \u0431\u0430\u0439\u043d\u0430",errorAlreadyInvited:"{{displayName}} \u0443\u0440\u044c\u0441\u0430\u043d \u0431\u0430\u0439\u043d\u0430",errorInvite:"\u0425\u0443\u0440\u0430\u043b \u0445\u0430\u0440\u0430\u0430\u0445\u0430\u043d \u044d\u0445\u043b\u044d\u044d\u0433\u04af\u0439 \u0431\u0430\u0439\u043d\u0430. \u0414\u0430\u0440\u0430\u0430 \u0434\u0430\u0445\u0438\u043d \u043e\u0440\u043e\u043b\u0434\u043e\u0436 \u04af\u0437\u043d\u044d \u04af\u04af.",errorInviteFailed:"\u0411\u0438\u0434 \u0430\u0441\u0443\u0443\u0434\u043b\u044b\u0433 \u0448\u0438\u0439\u0434\u0432\u044d\u0440\u043b\u044d\u0445\u044d\u044d\u0440 \u0430\u0436\u0438\u043b\u043b\u0430\u0436 \u0431\u0430\u0439\u043d\u0430. \u0414\u0430\u0440\u0430\u0430 \u0434\u0430\u0445\u0438\u043d \u043e\u0440\u043e\u043b\u0434\u043e\u0436 \u04af\u0437\u043d\u044d \u04af\u04af.",errorInviteFailedTitle:"{{displayName}} \u0443\u0440\u0438\u043b\u0433\u0430 \u0430\u043c\u0436\u0438\u043b\u0442\u0433\u04af\u0439 \u0431\u043e\u043b\u0441\u043e\u043d",errorInviteTitle:"\u0425\u0443\u0440\u0430\u043b\u0434 \u0443\u0440\u0438\u0445\u0430\u0434 \u0430\u043b\u0434\u0430\u0430 \u0433\u0430\u0440\u043b\u0430\u0430",pending:"{{displayName}} \u0443\u0440\u044c\u0441\u0430\u043d \u0431\u0430\u0439\u043d\u0430"},videoStatus:{audioOnly:"AUD",audioOnlyExpanded:"\u0422\u0430\u043d\u044b \u0434\u0430\u043c\u0436\u0443\u0443\u043b\u0430\u0445 \u0447\u0430\u0434\u0432\u0430\u0440 \u043c\u0443\u0443 \u0431\u0430\u0439\u043d\u0430. \u042d\u043d\u044d \u0433\u043e\u0440\u0438\u043c\u0434 \u0442\u0430 \u0437\u04e9\u0432\u0445\u04e9\u043d \u0430\u0443\u0434\u0438\u043e \u0431\u043e\u043b\u043e\u043d \u0434\u044d\u043b\u0433\u044d\u0446\u0438\u0439\u043d \u0445\u0443\u0432\u0430\u0430\u043b\u0446\u0430\u0445\u044b\u0433 \u0445\u04af\u043b\u044d\u044d\u043d \u0430\u0432\u0430\u0445 \u0431\u043e\u043b\u043e\u043c\u0436\u0442\u043e\u0439.",callQuality:"\u0412\u0438\u0434\u0435\u043e\u043d\u044b \u0447\u0430\u043d\u0430\u0440",hd:"HD",hdTooltip:"\u04e8\u043d\u0434\u04e9\u0440 \u043d\u044f\u0433\u0442\u0430\u0440\u0448\u0438\u043b\u0442\u0430\u0439 \u0432\u0438\u0434\u0435\u043e\u0433 \u04af\u0437\u044d\u0436 \u0431\u0430\u0439\u043d\u0430",highDefinition:"\u04e8\u043d\u0434\u04e9\u0440 \u043d\u044f\u0433\u0442\u0430\u0440\u0448\u0438\u043b",labelTooiltipNoVideo:"\u0412\u0438\u0434\u0435\u043e \u0431\u0430\u0439\u0445\u0433\u04af\u0439",labelTooltipAudioOnly:"\u0414\u0430\u043c\u0436\u0443\u0443\u043b\u0430\u043b\u0442\u044b\u043d \u0431\u0430\u0433\u0442\u0430\u0430\u043c\u0436 \u0431\u0430\u0433\u0430 \u0433\u043e\u0440\u0438\u043c \u0438\u0434\u044d\u0432\u0445\u0436\u0441\u044d\u043d",ld:"LD",ldTooltip:"\u0411\u0430\u0433\u0430 \u043d\u044f\u0433\u0442\u0430\u0440\u0448\u0438\u043b\u0442\u0430\u0439 \u0432\u0438\u0434\u0435\u043e \u04af\u0437\u044d\u0436 \u0431\u0430\u0439\u043d\u0430",lowDefinition:"\u0411\u0430\u0433\u0430 \u043d\u044f\u0433\u0442\u0430\u0440\u0448\u0438\u043b",onlyAudioAvailable:"\u0417\u04e9\u0432\u0445\u04e9\u043d \u0430\u0443\u0434\u0438\u043e \u0430\u0448\u0438\u0433\u043b\u0430\u0445 \u0431\u043e\u043b\u043e\u043c\u0436\u0442\u043e\u0439",onlyAudioSupported:"\u042d\u043d\u044d \u0445\u04e9\u0442\u0447\u0438\u0434 \u0430\u0443\u0434\u0438\u043e \u0430\u0448\u0438\u0433\u043b\u0430\u0445 \u0431\u043e\u043b\u043e\u043c\u0436\u0442\u043e\u0439.",p2pEnabled:"P2P \u0438\u0434\u044d\u0432\u0445\u0442\u044d\u0439",p2pVideoQualityDescription:"P2P \u0433\u043e\u0440\u0438\u043c \u0434\u044d\u044d\u0440 \u0437\u04e9\u0432\u0445\u04e9\u043d \u04e9\u043d\u0434\u04e9\u0440 \u043d\u044f\u0433\u0442\u0430\u0440\u0448\u0438\u043b\u0442\u0430\u0439 \u0432\u0438\u0434\u0435\u043e \u0431\u043e\u043b\u043e\u043d \u0430\u0443\u0434\u0438\u043e \u0445\u043e\u043e\u0440\u043e\u043d\u0434 \u043b \u0448\u0438\u043b\u0436\u04af\u04af\u043b\u044d\u0445 \u0431\u043e\u043b\u043e\u043c\u0436\u0442\u043e\u0439. P2P \u0433\u0430\u0440\u0430\u0445 \u0445\u04af\u0440\u0442\u044d\u043b \u0431\u0443\u0441\u0430\u0434 \u0442\u043e\u0445\u0438\u0440\u0433\u043e\u043e\u0433 \u0445\u0438\u0439\u0445 \u0431\u043e\u043b\u043e\u043c\u0436\u0433\u04af\u0439.",recHighDefinitionOnly:"\u04e8\u043d\u0434\u04e9\u0440 \u043d\u044f\u0433\u0442\u0430\u0440\u0448\u0438\u043b\u0442\u0430\u0439\u0433 \u0438\u043b\u04af\u04af\u0434 \u04af\u0437\u0434\u044d\u0433.",sd:"SD",sdTooltip:"\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442 \u043d\u0430\u0440\u0438\u0439\u0432\u0447\u043b\u0430\u043b\u0442\u0430\u0439 \u0432\u0438\u0434\u0435\u043e \u04af\u0437\u044d\u0436 \u0431\u0430\u0439\u043d\u0430",standardDefinition:"\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442 \u043d\u044f\u0433\u0442\u0430\u0440\u0448\u0438\u043b"},videothumbnail:{domute:"\u0414\u0443\u0443 \u0445\u0430\u0430\u0445",domuteOthers:"\u0411\u04af\u0445 \u0434\u0443\u0443\u0433 \u0445\u0430\u0430\u0445",flip:"\u0423\u0440\u0441\u0430\u0445",kick:"\u0413\u0430\u0440\u0433\u0430\u0445",moderator:"\u0417\u043e\u0445\u0438\u0446\u0443\u0443\u043b\u0430\u0433\u0447",mute:"\u041e\u0440\u043e\u043b\u0446\u043e\u0433\u0447 \u0434\u0443\u0443\u0433\u04af\u0439 \u0431\u0430\u0439\u043d\u0430",muted:"\u0414\u0443\u0443\u0433\u04af\u0439",remoteControl:"\u0410\u043b\u0441\u044b\u043d \u0443\u0434\u0438\u0440\u0434\u043b\u0430\u0433\u044b\u0433 \u044d\u0445\u043b\u04af\u04af\u043b\u044d\u0445 / \u0437\u043e\u0433\u0441\u043e\u043e\u0445",show:"\u04ae\u0437\u04af\u04af\u043b\u044d\u0445",videomute:"\u041e\u0440\u043e\u043b\u0446\u043e\u0433\u0447 \u043a\u0430\u043c\u0435\u0440\u0430\u0430 \u0437\u043e\u0433\u0441\u043e\u043e\u0441\u043e\u043d \u0431\u0430\u0439\u043d\u0430"},welcomepage:{accessibilityLabel:{join:"\u0422\u043e\u0432\u0448\u043e\u043e\u0434 \u043d\u044d\u0433\u0434\u044d\u0445",roomname:"\u0425\u0443\u0440\u043b\u044b\u043d \u043d\u044d\u0440\u0438\u0439\u0433 \u043e\u0440\u0443\u0443\u043b\u043d\u0430 \u0443\u0443"},appDescription:"\u0422\u0430\u043d\u044c\u0434\u0430\u0433 \u0431\u04af\u0445 \u0445\u04af\u043c\u04af\u04af\u0441\u0438\u0439\u0433 \u0443\u0440\u044c. {{app}} \u043d\u044c \u0431\u04af\u0440\u044d\u043d \u0448\u0438\u0444\u0440\u043b\u044d\u0433\u0434\u0441\u044d\u043d, 100% \u043d\u044d\u044d\u043b\u0442\u0442\u044d\u0439, \u0432\u0438\u0434\u0435\u043e \u0445\u0443\u0440\u043b\u044b\u043d \u0448\u0438\u0439\u0434\u044d\u043b \u0431\u04e9\u0433\u04e9\u04e9\u0434 \u0442\u0430 \u04e9\u0434\u04e9\u0440 \u0431\u04af\u0440 \u04af\u043d\u044d \u0442\u04e9\u043b\u0431\u04e9\u0440\u0433\u04af\u0439 \u0430\u0448\u0438\u0433\u043b\u0430\u0436 \u0431\u043e\u043b\u043d\u043e.",audioVideoSwitch:{audio:"\u0414\u0443\u0443\u0442\u0430\u0439",video:"\u0412\u0438\u0434\u0435\u043e"},calendar:"\u0426\u0430\u0433\u0430\u043b\u0431\u0430\u0440",connectCalendarButton:"\u0426\u0430\u0433\u0430\u043b\u0431\u0430\u0440\u0430\u0430 \u0445\u043e\u043b\u0431\u043e\u043d\u043e \u0443\u0443",connectCalendarText:"\u0426\u0430\u0433\u0430\u043b\u0431\u0430\u0440 \u0434\u044d\u044d\u0440\u0445 \u0443\u0443\u043b\u0437\u0430\u043b\u0442\u0443\u0443\u0434\u0430\u0430 {{app}} \u0434\u044d\u044d\u0440 \u043e\u0440\u0443\u0443\u043b\u0436 \u0431\u043e\u043b\u043d\u043e. \u0422\u0430 \u0446\u0430\u0433\u0430\u043b\u0431\u0430\u0440\u0430\u0430 \u0445\u043e\u043b\u0431\u043e\u0445\u043e\u0434 \u0431\u043e\u043b\u043d\u043e.",enterRoomTitle:"\u0428\u0438\u043d\u044d \u0445\u0443\u0440\u0430\u043b \u044d\u0445\u043b\u04af\u04af\u043b\u044d\u0445",roomNameAllowedChars:"\u0425\u0443\u0440\u043b\u044b\u043d \u043d\u044d\u0440 \u043d\u044c \u044d\u0434\u0433\u044d\u044d\u0440 \u0442\u044d\u043c\u0434\u044d\u0433\u0442\u04af\u04af\u0434\u0438\u0439\u043d \u0430\u043b\u044c \u043d\u044d\u0433\u0438\u0439\u0433 \u0430\u0433\u0443\u0443\u043b\u0436 \u0431\u043e\u043b\u043e\u0445\u0433\u04af\u0439: ?, &, :, ', \", %, #.",go:"OK",goSmall:"OK",join:"\u04ae\u04ae\u0421\u0413\u042d\u0425 / \u041d\u042d\u0413\u0414\u042d\u0425",info:"\u041c\u044d\u0434\u044d\u044d\u043b\u044d\u043b",privacy:"\u041d\u0443\u0443\u0446\u043b\u0430\u043b",recentList:"\u041e\u043d\u0446\u043b\u043e\u0445",recentListDelete:"\u0423\u0441\u0442\u0433\u0430\u0445",recentListEmpty:"\u0422\u0430\u043d\u044b \u0436\u0430\u0433\u0441\u0430\u0430\u043b\u0442 \u0445\u043e\u043e\u0441\u043e\u043d \u0431\u0430\u0439\u043d\u0430. \u0422\u0430\u043d\u044b \u0445\u0438\u0439\u0441\u044d\u043d \u0431\u04af\u0445 \u0445\u0443\u0440\u043b\u0443\u0443\u0434 \u044d\u043d\u0434 \u0431\u0430\u0439\u043d\u0430.",reducedUIText:"{{app}}, \u0442\u0430\u0432\u0442\u0430\u0439 \u043c\u043e\u0440\u0438\u043b!",roomname:"\u0425\u0443\u0440\u043b\u044b\u043d \u043d\u044d\u0440\u0438\u0439\u0433 \u043e\u0440\u0443\u0443\u043b\u043d\u0430 \u0443\u0443",roomnameHint:"\u041d\u044d\u0433\u0434\u044d\u0445\u0438\u0439\u0433 \u0445\u04af\u0441\u0447 \u0431\u0443\u0439 \u0445\u0443\u0440\u043b\u044b\u043d \u043d\u044d\u0440, URL-\u0438\u0439\u0433 \u043e\u0440\u0443\u0443\u043b\u043d\u0430 \u0443\u0443. \u0422\u0430 \u0445\u0443\u0440\u043b\u044b\u043d \u043d\u044d\u0440\u044d\u044d \u04af\u04af\u0441\u0433\u044d\u0436 \u0431\u043e\u043b\u043d\u043e. \u0445\u0443\u0440\u0430\u043b\u0434 \u043e\u0440\u043e\u043b\u0446\u043e\u0445 \u0445\u04af\u043c\u04af\u04af\u0441\u0442\u044d\u044d \u0442\u044d\u0440 \u043d\u044d\u0440\u0438\u0439\u0433 \u04e9\u0433\u04e9\u04e9\u0440\u044d\u0439.",sendFeedback:"\u0421\u0430\u043d\u0430\u043b \u0438\u043b\u0433\u044d\u044d\u0445",terms:"\u041d\u04e9\u0445\u0446\u04e9\u043b\u04af\u04af\u0434",title:"\u0410\u044e\u0443\u043b\u0433\u04af\u0439, \u04af\u043d\u044d\u0433\u04af\u0439 \u0432\u0438\u0434\u0435\u043e \u0445\u0443\u0440\u0430\u043b \u0445\u0438\u0439\u0445 \u0431\u043e\u043b\u043e\u043c\u0436\u0442\u043e\u0439"},lonelyMeetingExperience:{button:"\u0411\u0443\u0441\u0434\u044b\u0433 \u0443\u0440\u044c",youAreAlone:"\u0422\u0430 \u044d\u043d\u044d \u0445\u0443\u0440\u0430\u043b\u0434 \u0433\u0430\u043d\u0446\u0430\u0430\u0440\u0430\u0430 \u0431\u0430\u0439\u043d\u0430"}}},705,[]); +__d(function(g,r,i,a,m,e,d){!(function(t,n){if('function'==typeof define&&define.amd)define(['moment'],n);else if('object'==typeof e)try{m.exports=n(r(d[0]))}catch(t){m.exports=n}t&&(t.momentDurationFormatSetup=t.moment?n(t.moment):n)})(this,function(t){var n=!1,u=!1,o="escape years months weeks days hours minutes seconds milliseconds general".split(" "),l=[{type:"seconds",targets:[{type:"minutes",value:60},{type:"hours",value:3600},{type:"days",value:86400},{type:"weeks",value:604800},{type:"months",value:2678400},{type:"years",value:31536e3}]},{type:"minutes",targets:[{type:"hours",value:60},{type:"days",value:1440},{type:"weeks",value:10080},{type:"months",value:44640},{type:"years",value:525600}]},{type:"hours",targets:[{type:"days",value:24},{type:"weeks",value:168},{type:"months",value:744},{type:"years",value:8760}]},{type:"days",targets:[{type:"weeks",value:7},{type:"months",value:31},{type:"years",value:365}]},{type:"months",targets:[{type:"years",value:12}]}];function s(t,n){return!(n.length>t.length)&&-1!==t.indexOf(n)}function c(t){for(var n="";t;)n+="0",t-=1;return n}function p(t){for(var n=t.split("").reverse(),u=0,o=!0;o&&u0&&(L.maximumSignificantDigits=w),!u){var b=I({},n);b.useGrouping=!1,b.decimalSeparator=".",t=parseFloat(f(t,b),10)}return t.toLocaleString(o,L)}var M=(w?t.toPrecision(w+1):t.toFixed(_+1)).split("e");h=M[1]||"",s=(M=M[0].split("."))[1]||"";var k=(l=M[0]||"").length,T=s.length,F=k+T,j=l+s;(w&&F===w+1||!w&&T===_+1)&&((j=p(j)).length===F+1&&(k+=1),T&&(j=j.slice(0,-1)),l=j.slice(0,k),s=j.slice(k)),w&&(s=s.replace(/0*$/,""));var G=parseInt(h,10);G>0?s.length<=G?(l+=s+=c(G-s.length),s=""):(l+=s.slice(0,G),s=s.slice(G)):G<0&&(s=c(Math.abs(G)-l.length)+l+s,l="0"),w||((s=s.slice(0,_)).length<_&&(s+=c(_-s.length)),l.lengthn.label.length?-1:t.label.length0,ee=Z?c.precision:0,te=ee,ne=c.minValue,ie=!1,re=c.maxValue,ae=!1,ue=c.useToLocaleString,oe=c.groupingSeparator,le=c.decimalSeparator,se=c.grouping;ue=ue&&n;var ce=c.trim;w(ce)&&(ce=ce.join(" ")),null===ce&&(C||re||Z)&&(ce="all"),null!==ce&&!0!==ce&&"left"!==ce&&"right"!==ce||(ce="large"),!1===ce&&(ce="");var me=function(t){return t.test(ce)},ge=/both/,pe=/^all|[^sm]all/,fe=C>0||G([/large/,ge,pe],me),he=G([/small/,ge,pe],me),ye=G([/mid/,pe],me),de=G([/final/,pe],me),ve=L(R.match(K),function(t,n){var u=$(t);return"*"===t.slice(0,1)&&(t=t.slice(1),"escape"!==u&&"general"!==u&&W.push(u)),{index:n,length:t.length,text:"",token:"escape"===u?t.replace(H.escape,"$1"):t,type:"escape"===u||"general"===u?null:u}}),Se={index:0,length:0,token:"",text:"",type:null},we=[];z&&ve.reverse(),D(ve,function(t){if(t.type)return(Se.type||Se.text)&&we.push(Se),void(Se=t);z?Se.text=t.token+Se.text:Se.text+=t.token}),(Se.type||Se.text)&&we.push(Se),z&&we.reverse();var Ve=T(o,k(M(b(we,"type"))));if(!Ve.length)return b(we,"text").join("");Ve=L(Ve,function(t,n){var u,o=n+1===Ve.length,l=!n;u="years"===t||"months"===t?P.as(t):E.as(t);var s=Math.floor(u),p=u-s,f=x(we,function(n){return t===n.type});return l&&re&&u>re&&(ae=!0),o&&ne&&Math.abs(c.duration.as(t))1&&(N=!0),E.subtract(s,t),P.subtract(s,t),{rawValue:u,wholeValue:s,decimalValue:o?p:0,isSmallest:o,isLargest:l,type:t,tokenLength:f.length}});var _e,xe=X?Math.floor:Math.round,De=function(t,n){var u=Math.pow(10,n);return xe(t*u)/u},Le=!1,be=!1,Me=function(t,n){var u={useGrouping:Q,groupingSeparator:oe,decimalSeparator:le,grouping:se,useToLocaleString:ue};return Z&&(ee<=0?(t.rawValue=0,t.wholeValue=0,t.decimalValue=0):(u.maximumSignificantDigits=ee,t.significantDigits=ee)),ae&&!be&&(t.isLargest?(t.wholeValue=re,t.decimalValue=0):(t.wholeValue=0,t.decimalValue=0)),ie&&!be&&(t.isSmallest?(t.wholeValue=ne,t.decimalValue=0):(t.wholeValue=0,t.decimalValue=0)),t.isSmallest||t.significantDigits&&t.significantDigits-t.wholeValue.toString().length<=0?J<0?t.value=De(t.wholeValue,J):0===J?t.value=xe(t.wholeValue+t.decimalValue):Z?(t.value=X?De(t.rawValue,ee-t.wholeValue.toString().length):t.rawValue,t.wholeValue&&(ee-=t.wholeValue.toString().length)):(u.fractionDigits=J,t.value=X?t.wholeValue+De(t.decimalValue,J):t.wholeValue+t.decimalValue):Z&&t.wholeValue?(t.value=Math.round(De(t.wholeValue,t.significantDigits-t.wholeValue.toString().length)),ee-=t.wholeValue.toString().length):t.value=t.wholeValue,t.tokenLength>1&&(N||Le)&&(u.minimumIntegerDigits=t.tokenLength,be&&u.maximumSignificantDigits0||""===ce||x(W,t.type)||x(U,t.type))&&(Le=!0),t.formattedValue=f(t.value,u,q),u.useGrouping=!1,u.decimalSeparator=".",t.formattedValueEn=f(t.value,u,"en"),2===t.tokenLength&&"milliseconds"===t.type&&(t.formattedValueMS=f(t.value,{minimumIntegerDigits:3,useGrouping:!1},"en").slice(0,2)),t};if((Ve=M(Ve=L(Ve,Me))).length>1){var ke=function(t){return x(Ve,function(n){return n.type===t})};D(l,function(t){var n=ke(t.type);n&&D(t.targets,function(t){var u=ke(t.type);u&&parseInt(n.formattedValueEn,10)===t.value&&(n.rawValue=0,n.wholeValue=0,n.decimalValue=0,u.rawValue+=1,u.wholeValue+=1,u.decimalValue=0,u.formattedValueEn=u.wholeValue.toString(),be=!0)})})}return be&&(Le=!1,ee=te,Ve=M(Ve=L(Ve,Me))),!U||ae&&!c.trim?(fe&&(Ve=F(Ve,function(t){return!t.isSmallest&&!t.wholeValue&&!x(W,t.type)})),C&&Ve.length&&(Ve=Ve.slice(0,C)),he&&Ve.length>1&&(_e=function(t){return!t.wholeValue&&!x(W,t.type)&&!t.isLargest},Ve=F(Ve.slice().reverse(),_e).reverse()),ye&&(Ve=M(Ve=L(Ve,function(t,n){return n>0&&n ",ae=!1,ie=!1),_&&(n.value>0||""===ce||x(W,n.type)||x(U,n.type))&&(u+="-",_=!1),"milliseconds"===t.type&&n.formattedValueMS?u+=n.formattedValueMS:u+=n.formattedValue,z||(u+=t.text),u})).join("").replace(/(,| |:|\.)*$/,"").replace(/^(,| |:|\.)*/,""))}function H(){var t=this.duration,n=function(n){return t._data[n]},u=x(this.types,n),o=_(this.types,n);switch(u){case"milliseconds":return"S __";case"seconds":case"minutes":return"*_MS_";case"hours":return"_HMS_";case"days":if(u===o)return"d __";case"weeks":return u===o?"w __":(null===this.trim&&(this.trim="both"),"w __, d __, h __");case"months":if(u===o)return"M __";case"years":return u===o?"y __":(null===this.trim&&(this.trim="both"),"y __, M __, d __");default:return null===this.trim&&(this.trim="both"),"y __, d __, h __, m __, s __"}}function $(t){if(!t)throw"Moment Duration Format init cannot find moment instance.";t.duration.format=P,t.duration.fn.format=O,t.duration.fn.format.defaults={trim:null,stopTrim:null,largest:null,maxValue:null,minValue:null,precision:0,trunc:!1,forceLength:null,userLocale:null,usePlural:!0,useLeftUnits:!1,useGrouping:!0,useSignificantDigits:!1,template:H,useToLocaleString:!0,groupingSeparator:",",decimalSeparator:".",grouping:[3]},t.updateLocale('en',S)}return n=!!((v=(v=!0)&&E())&&(v=(v=(v=v&&"1"===1..toLocaleString("en",{minimumIntegerDigits:1}))&&"01"===1..toLocaleString("en",{minimumIntegerDigits:2}))&&"001"===1..toLocaleString("en",{minimumIntegerDigits:3}))&&(v=(v=(v=(v=v&&"100"===99.99.toLocaleString("en",{maximumFractionDigits:0,minimumFractionDigits:0}))&&"100.0"===99.99.toLocaleString("en",{maximumFractionDigits:1,minimumFractionDigits:1}))&&"99.99"===99.99.toLocaleString("en",{maximumFractionDigits:2,minimumFractionDigits:2}))&&"99.990"===99.99.toLocaleString("en",{maximumFractionDigits:3,minimumFractionDigits:3}))&&(v=(v=(v=(v=(v=v&&"100"===99.99.toLocaleString("en",{maximumSignificantDigits:1}))&&"100"===99.99.toLocaleString("en",{maximumSignificantDigits:2}))&&"100"===99.99.toLocaleString("en",{maximumSignificantDigits:3}))&&"99.99"===99.99.toLocaleString("en",{maximumSignificantDigits:4}))&&"99.99"===99.99.toLocaleString("en",{maximumSignificantDigits:5}))&&(v=(v=v&&"1,000"===1e3.toLocaleString("en",{useGrouping:!0}))&&"1000"===1e3.toLocaleString("en",{useGrouping:!1}))),u=n&&"3.6"===3.55.toLocaleString("en",{useGrouping:!1,minimumIntegerDigits:1,minimumFractionDigits:1,maximumFractionDigits:1}),$(t),$})},706,[624]); +__d(function(g,r,i,a,m,e,d){var _,t;_=this,t=function(_){'use strict';return _.defineLocale('bg',{months:'\u044f\u043d\u0443\u0430\u0440\u0438_\u0444\u0435\u0432\u0440\u0443\u0430\u0440\u0438_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0438\u043b_\u043c\u0430\u0439_\u044e\u043d\u0438_\u044e\u043b\u0438_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043f\u0442\u0435\u043c\u0432\u0440\u0438_\u043e\u043a\u0442\u043e\u043c\u0432\u0440\u0438_\u043d\u043e\u0435\u043c\u0432\u0440\u0438_\u0434\u0435\u043a\u0435\u043c\u0432\u0440\u0438'.split('_'),monthsShort:'\u044f\u043d\u0440_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0439_\u044e\u043d\u0438_\u044e\u043b\u0438_\u0430\u0432\u0433_\u0441\u0435\u043f_\u043e\u043a\u0442_\u043d\u043e\u0435_\u0434\u0435\u043a'.split('_'),weekdays:'\u043d\u0435\u0434\u0435\u043b\u044f_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u044f\u0434\u0430_\u0447\u0435\u0442\u0432\u044a\u0440\u0442\u044a\u043a_\u043f\u0435\u0442\u044a\u043a_\u0441\u044a\u0431\u043e\u0442\u0430'.split('_'),weekdaysShort:'\u043d\u0435\u0434_\u043f\u043e\u043d_\u0432\u0442\u043e_\u0441\u0440\u044f_\u0447\u0435\u0442_\u043f\u0435\u0442_\u0441\u044a\u0431'.split('_'),weekdaysMin:'\u043d\u0434_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431'.split('_'),longDateFormat:{LT:'H:mm',LTS:'H:mm:ss',L:'D.MM.YYYY',LL:'D MMMM YYYY',LLL:'D MMMM YYYY H:mm',LLLL:'dddd, D MMMM YYYY H:mm'},calendar:{sameDay:'[\u0414\u043d\u0435\u0441 \u0432] LT',nextDay:'[\u0423\u0442\u0440\u0435 \u0432] LT',nextWeek:'dddd [\u0432] LT',lastDay:'[\u0412\u0447\u0435\u0440\u0430 \u0432] LT',lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return'[\u0412 \u0438\u0437\u043c\u0438\u043d\u0430\u043b\u0430\u0442\u0430] dddd [\u0432] LT';case 1:case 2:case 4:case 5:return'[\u0412 \u0438\u0437\u043c\u0438\u043d\u0430\u043b\u0438\u044f] dddd [\u0432] LT'}},sameElse:'L'},relativeTime:{future:'\u0441\u043b\u0435\u0434 %s',past:'\u043f\u0440\u0435\u0434\u0438 %s',s:'\u043d\u044f\u043a\u043e\u043b\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434\u0438',m:'\u043c\u0438\u043d\u0443\u0442\u0430',mm:'%d \u043c\u0438\u043d\u0443\u0442\u0438',h:'\u0447\u0430\u0441',hh:'%d \u0447\u0430\u0441\u0430',d:'\u0434\u0435\u043d',dd:'%d \u0434\u043d\u0438',M:'\u043c\u0435\u0441\u0435\u0446',MM:'%d \u043c\u0435\u0441\u0435\u0446\u0430',y:'\u0433\u043e\u0434\u0438\u043d\u0430',yy:'%d \u0433\u043e\u0434\u0438\u043d\u0438'},dayOfMonthOrdinalParse:/\d{1,2}-(\u0435\u0432|\u0435\u043d|\u0442\u0438|\u0432\u0438|\u0440\u0438|\u043c\u0438)/,ordinal:function(_){var t=_%10,s=_%100;return 0===_?_+'-\u0435\u0432':0===s?_+'-\u0435\u043d':s>10&&s<20?_+'-\u0442\u0438':1===t?_+'-\u0432\u0438':2===t?_+'-\u0440\u0438':7===t||8===t?_+'-\u043c\u0438':_+'-\u0442\u0438'},week:{dow:1,doy:7}})},'object'==typeof e&&void 0!==m&&'function'==typeof r?t(r(d[0])):'function'==typeof define&&define.amd?define(['../moment'],t):t(_.moment)},707,[624]); +__d(function(g,r,i,a,m,e,d){var n,t;n=this,t=function(n){'use strict';function t(n,t,_,o){var M={m:['eine Minute','einer Minute'],h:['eine Stunde','einer Stunde'],d:['ein Tag','einem Tag'],dd:[n+' Tage',n+' Tagen'],M:['ein Monat','einem Monat'],MM:[n+' Monate',n+' Monaten'],y:['ein Jahr','einem Jahr'],yy:[n+' Jahre',n+' Jahren']};return t?M[_][0]:M[_][1]}return n.defineLocale('de',{months:'Januar_Februar_M\xe4rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),monthsShort:'Jan._Feb._M\xe4rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),monthsParseExact:!0,weekdays:'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),weekdaysShort:'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),weekdaysMin:'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),weekdaysParseExact:!0,longDateFormat:{LT:'HH:mm',LTS:'HH:mm:ss',L:'DD.MM.YYYY',LL:'D. MMMM YYYY',LLL:'D. MMMM YYYY HH:mm',LLLL:'dddd, D. MMMM YYYY HH:mm'},calendar:{sameDay:'[heute um] LT [Uhr]',sameElse:'L',nextDay:'[morgen um] LT [Uhr]',nextWeek:'dddd [um] LT [Uhr]',lastDay:'[gestern um] LT [Uhr]',lastWeek:'[letzten] dddd [um] LT [Uhr]'},relativeTime:{future:'in %s',past:'vor %s',s:'ein paar Sekunden',m:t,mm:'%d Minuten',h:t,hh:'%d Stunden',d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:'%d.',week:{dow:1,doy:4}})},'object'==typeof e&&void 0!==m&&'function'==typeof r?t(r(d[0])):'function'==typeof define&&define.amd?define(['../moment'],t):t(n.moment)},708,[624]); +__d(function(g,r,i,a,m,e,d){var o,t;o=this,t=function(o){'use strict';return o.defineLocale('eo',{months:'januaro_februaro_marto_aprilo_majo_junio_julio_a\u016dgusto_septembro_oktobro_novembro_decembro'.split('_'),monthsShort:'jan_feb_mar_apr_maj_jun_jul_a\u016dg_sep_okt_nov_dec'.split('_'),weekdays:'diman\u0109o_lundo_mardo_merkredo_\u0135a\u016ddo_vendredo_sabato'.split('_'),weekdaysShort:'dim_lun_mard_merk_\u0135a\u016d_ven_sab'.split('_'),weekdaysMin:'di_lu_ma_me_\u0135a_ve_sa'.split('_'),longDateFormat:{LT:'HH:mm',LTS:'HH:mm:ss',L:'YYYY-MM-DD',LL:'D[-a de] MMMM, YYYY',LLL:'D[-a de] MMMM, YYYY HH:mm',LLLL:'dddd, [la] D[-a de] MMMM, YYYY HH:mm'},meridiemParse:/[ap]\.t\.m/i,isPM:function(o){return'p'===o.charAt(0).toLowerCase()},meridiem:function(o,t,n){return o>11?n?'p.t.m.':'P.T.M.':n?'a.t.m.':'A.T.M.'},calendar:{sameDay:'[Hodia\u016d je] LT',nextDay:'[Morga\u016d je] LT',nextWeek:'dddd [je] LT',lastDay:'[Hiera\u016d je] LT',lastWeek:'[pasinta] dddd [je] LT',sameElse:'L'},relativeTime:{future:'post %s',past:'anta\u016d %s',s:'sekundoj',m:'minuto',mm:'%d minutoj',h:'horo',hh:'%d horoj',d:'tago',dd:'%d tagoj',M:'monato',MM:'%d monatoj',y:'jaro',yy:'%d jaroj'},dayOfMonthOrdinalParse:/\d{1,2}a/,ordinal:'%da',week:{dow:1,doy:7}})},'object'==typeof e&&void 0!==m&&'function'==typeof r?t(r(d[0])):'function'==typeof define&&define.amd?define(['../moment'],t):t(o.moment)},709,[624]); +__d(function(g,r,i,a,m,e,d){var o,n;o=this,n=function(o){'use strict';var n='ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),t='ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),s=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],u=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;return o.defineLocale('es',{months:'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),monthsShort:function(o,s){return o?/-MMM-/.test(s)?t[o.month()]:n[o.month()]:n},monthsRegex:u,monthsShortRegex:u,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:s,longMonthsParse:s,shortMonthsParse:s,weekdays:'domingo_lunes_martes_mi\xe9rcoles_jueves_viernes_s\xe1bado'.split('_'),weekdaysShort:'dom._lun._mar._mi\xe9._jue._vie._s\xe1b.'.split('_'),weekdaysMin:'do_lu_ma_mi_ju_vi_s\xe1'.split('_'),weekdaysParseExact:!0,longDateFormat:{LT:'H:mm',LTS:'H:mm:ss',L:'DD/MM/YYYY',LL:'D [de] MMMM [de] YYYY',LLL:'D [de] MMMM [de] YYYY H:mm',LLLL:'dddd, D [de] MMMM [de] YYYY H:mm'},calendar:{sameDay:function(){return'[hoy a la'+(1!==this.hours()?'s':'')+'] LT'},nextDay:function(){return'[ma\xf1ana a la'+(1!==this.hours()?'s':'')+'] LT'},nextWeek:function(){return'dddd [a la'+(1!==this.hours()?'s':'')+'] LT'},lastDay:function(){return'[ayer a la'+(1!==this.hours()?'s':'')+'] LT'},lastWeek:function(){return'[el] dddd [pasado a la'+(1!==this.hours()?'s':'')+'] LT'},sameElse:'L'},relativeTime:{future:'en %s',past:'hace %s',s:'unos segundos',m:'un minuto',mm:'%d minutos',h:'una hora',hh:'%d horas',d:'un d\xeda',dd:'%d d\xedas',M:'un mes',MM:'%d meses',y:'un a\xf1o',yy:'%d a\xf1os'},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:'%d\xba',week:{dow:1,doy:4}})},'object'==typeof e&&void 0!==m&&'function'==typeof r?n(r(d[0])):'function'==typeof define&&define.amd?define(['../moment'],n):n(o.moment)},710,[624]); +__d(function(g,r,i,a,m,e,d){var n,s;n=this,s=function(n){'use strict';return n.defineLocale('fr',{months:'janvier_f\xe9vrier_mars_avril_mai_juin_juillet_ao\xfbt_septembre_octobre_novembre_d\xe9cembre'.split('_'),monthsShort:'janv._f\xe9vr._mars_avr._mai_juin_juil._ao\xfbt_sept._oct._nov._d\xe9c.'.split('_'),monthsParseExact:!0,weekdays:'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),weekdaysShort:'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),weekdaysMin:'Di_Lu_Ma_Me_Je_Ve_Sa'.split('_'),weekdaysParseExact:!0,longDateFormat:{LT:'HH:mm',LTS:'HH:mm:ss',L:'DD/MM/YYYY',LL:'D MMMM YYYY',LLL:'D MMMM YYYY HH:mm',LLLL:'dddd D MMMM YYYY HH:mm'},calendar:{sameDay:'[Aujourd\u2019hui \xe0] LT',nextDay:'[Demain \xe0] LT',nextWeek:'dddd [\xe0] LT',lastDay:'[Hier \xe0] LT',lastWeek:'dddd [dernier \xe0] LT',sameElse:'L'},relativeTime:{future:'dans %s',past:'il y a %s',s:'quelques secondes',m:'une minute',mm:'%d minutes',h:'une heure',hh:'%d heures',d:'un jour',dd:'%d jours',M:'un mois',MM:'%d mois',y:'un an',yy:'%d ans'},dayOfMonthOrdinalParse:/\d{1,2}(er|)/,ordinal:function(n,s){switch(s){case'D':return n+(1===n?'er':'');default:case'M':case'Q':case'DDD':case'd':return n+(1===n?'er':'e');case'w':case'W':return n+(1===n?'re':'e')}},week:{dow:1,doy:4}})},'object'==typeof e&&void 0!==m&&'function'==typeof r?s(r(d[0])):'function'==typeof define&&define.amd?define(['../moment'],s):s(n.moment)},711,[624]); +__d(function(g,r,i,a,m,e,d){var _,t;_=this,t=function(_){'use strict';return _.defineLocale('hy-am',{months:{format:'\u0570\u0578\u0582\u0576\u057e\u0561\u0580\u056b_\u0583\u0565\u057f\u0580\u057e\u0561\u0580\u056b_\u0574\u0561\u0580\u057f\u056b_\u0561\u057a\u0580\u056b\u056c\u056b_\u0574\u0561\u0575\u056b\u057d\u056b_\u0570\u0578\u0582\u0576\u056b\u057d\u056b_\u0570\u0578\u0582\u056c\u056b\u057d\u056b_\u0585\u0563\u0578\u057d\u057f\u0578\u057d\u056b_\u057d\u0565\u057a\u057f\u0565\u0574\u0562\u0565\u0580\u056b_\u0570\u0578\u056f\u057f\u0565\u0574\u0562\u0565\u0580\u056b_\u0576\u0578\u0575\u0565\u0574\u0562\u0565\u0580\u056b_\u0564\u0565\u056f\u057f\u0565\u0574\u0562\u0565\u0580\u056b'.split('_'),standalone:'\u0570\u0578\u0582\u0576\u057e\u0561\u0580_\u0583\u0565\u057f\u0580\u057e\u0561\u0580_\u0574\u0561\u0580\u057f_\u0561\u057a\u0580\u056b\u056c_\u0574\u0561\u0575\u056b\u057d_\u0570\u0578\u0582\u0576\u056b\u057d_\u0570\u0578\u0582\u056c\u056b\u057d_\u0585\u0563\u0578\u057d\u057f\u0578\u057d_\u057d\u0565\u057a\u057f\u0565\u0574\u0562\u0565\u0580_\u0570\u0578\u056f\u057f\u0565\u0574\u0562\u0565\u0580_\u0576\u0578\u0575\u0565\u0574\u0562\u0565\u0580_\u0564\u0565\u056f\u057f\u0565\u0574\u0562\u0565\u0580'.split('_')},monthsShort:'\u0570\u0576\u057e_\u0583\u057f\u0580_\u0574\u0580\u057f_\u0561\u057a\u0580_\u0574\u0575\u057d_\u0570\u0576\u057d_\u0570\u056c\u057d_\u0585\u0563\u057d_\u057d\u057a\u057f_\u0570\u056f\u057f_\u0576\u0574\u0562_\u0564\u056f\u057f'.split('_'),weekdays:'\u056f\u056b\u0580\u0561\u056f\u056b_\u0565\u0580\u056f\u0578\u0582\u0577\u0561\u0562\u0569\u056b_\u0565\u0580\u0565\u0584\u0577\u0561\u0562\u0569\u056b_\u0579\u0578\u0580\u0565\u0584\u0577\u0561\u0562\u0569\u056b_\u0570\u056b\u0576\u0563\u0577\u0561\u0562\u0569\u056b_\u0578\u0582\u0580\u0562\u0561\u0569_\u0577\u0561\u0562\u0561\u0569'.split('_'),weekdaysShort:'\u056f\u0580\u056f_\u0565\u0580\u056f_\u0565\u0580\u0584_\u0579\u0580\u0584_\u0570\u0576\u0563_\u0578\u0582\u0580\u0562_\u0577\u0562\u0569'.split('_'),weekdaysMin:'\u056f\u0580\u056f_\u0565\u0580\u056f_\u0565\u0580\u0584_\u0579\u0580\u0584_\u0570\u0576\u0563_\u0578\u0582\u0580\u0562_\u0577\u0562\u0569'.split('_'),longDateFormat:{LT:'HH:mm',LTS:'HH:mm:ss',L:'DD.MM.YYYY',LL:'D MMMM YYYY \u0569.',LLL:'D MMMM YYYY \u0569., HH:mm',LLLL:'dddd, D MMMM YYYY \u0569., HH:mm'},calendar:{sameDay:'[\u0561\u0575\u057d\u0585\u0580] LT',nextDay:'[\u057e\u0561\u0572\u0568] LT',lastDay:'[\u0565\u0580\u0565\u056f] LT',nextWeek:function(){return'dddd [\u0585\u0580\u0568 \u056a\u0561\u0574\u0568] LT'},lastWeek:function(){return'[\u0561\u0576\u0581\u0561\u056e] dddd [\u0585\u0580\u0568 \u056a\u0561\u0574\u0568] LT'},sameElse:'L'},relativeTime:{future:'%s \u0570\u0565\u057f\u0578',past:'%s \u0561\u057c\u0561\u057b',s:'\u0574\u056b \u0584\u0561\u0576\u056b \u057e\u0561\u0575\u0580\u056f\u0575\u0561\u0576',m:'\u0580\u0578\u057a\u0565',mm:'%d \u0580\u0578\u057a\u0565',h:'\u056a\u0561\u0574',hh:'%d \u056a\u0561\u0574',d:'\u0585\u0580',dd:'%d \u0585\u0580',M:'\u0561\u0574\u056b\u057d',MM:'%d \u0561\u0574\u056b\u057d',y:'\u057f\u0561\u0580\u056b',yy:'%d \u057f\u0561\u0580\u056b'},meridiemParse:/\u0563\u056b\u0577\u0565\u0580\u057e\u0561|\u0561\u057c\u0561\u057e\u0578\u057f\u057e\u0561|\u0581\u0565\u0580\u0565\u056f\u057e\u0561|\u0565\u0580\u0565\u056f\u0578\u0575\u0561\u0576/,isPM:function(_){return/^(\u0581\u0565\u0580\u0565\u056f\u057e\u0561|\u0565\u0580\u0565\u056f\u0578\u0575\u0561\u0576)$/.test(_)},meridiem:function(_){return _<4?'\u0563\u056b\u0577\u0565\u0580\u057e\u0561':_<12?'\u0561\u057c\u0561\u057e\u0578\u057f\u057e\u0561':_<17?'\u0581\u0565\u0580\u0565\u056f\u057e\u0561':'\u0565\u0580\u0565\u056f\u0578\u0575\u0561\u0576'},dayOfMonthOrdinalParse:/\d{1,2}|\d{1,2}-(\u056b\u0576|\u0580\u0564)/,ordinal:function(_,t){switch(t){case'DDD':case'w':case'W':case'DDDo':return 1===_?_+'-\u056b\u0576':_+'-\u0580\u0564';default:return _}},week:{dow:1,doy:7}})},'object'==typeof e&&void 0!==m&&'function'==typeof r?t(r(d[0])):'function'==typeof define&&define.amd?define(['../moment'],t):t(_.moment)},712,[624]); +__d(function(g,r,i,a,m,e,d){var n,o;n=this,o=function(n){'use strict';return n.defineLocale('it',{months:'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split('_'),monthsShort:'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),weekdays:'domenica_luned\xec_marted\xec_mercoled\xec_gioved\xec_venerd\xec_sabato'.split('_'),weekdaysShort:'dom_lun_mar_mer_gio_ven_sab'.split('_'),weekdaysMin:'do_lu_ma_me_gi_ve_sa'.split('_'),longDateFormat:{LT:'HH:mm',LTS:'HH:mm:ss',L:'DD/MM/YYYY',LL:'D MMMM YYYY',LLL:'D MMMM YYYY HH:mm',LLLL:'dddd, D MMMM YYYY HH:mm'},calendar:{sameDay:'[Oggi alle] LT',nextDay:'[Domani alle] LT',nextWeek:'dddd [alle] LT',lastDay:'[Ieri alle] LT',lastWeek:function(){switch(this.day()){case 0:return'[la scorsa] dddd [alle] LT';default:return'[lo scorso] dddd [alle] LT'}},sameElse:'L'},relativeTime:{future:function(n){return(/^[0-9].+$/.test(n)?'tra':'in')+' '+n},past:'%s fa',s:'alcuni secondi',m:'un minuto',mm:'%d minuti',h:'un\'ora',hh:'%d ore',d:'un giorno',dd:'%d giorni',M:'un mese',MM:'%d mesi',y:'un anno',yy:'%d anni'},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:'%d\xba',week:{dow:1,doy:4}})},'object'==typeof e&&void 0!==m&&'function'==typeof r?o(r(d[0])):'function'==typeof define&&define.amd?define(['../moment'],o):o(n.moment)},713,[624]); +__d(function(g,r,i,a,m,e,d){var t,n;t=this,n=function(t){'use strict';return t.defineLocale('nb',{months:'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),monthsShort:'jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),monthsParseExact:!0,weekdays:'s\xf8ndag_mandag_tirsdag_onsdag_torsdag_fredag_l\xf8rdag'.split('_'),weekdaysShort:'s\xf8._ma._ti._on._to._fr._l\xf8.'.split('_'),weekdaysMin:'s\xf8_ma_ti_on_to_fr_l\xf8'.split('_'),weekdaysParseExact:!0,longDateFormat:{LT:'HH:mm',LTS:'HH:mm:ss',L:'DD.MM.YYYY',LL:'D. MMMM YYYY',LLL:'D. MMMM YYYY [kl.] HH:mm',LLLL:'dddd D. MMMM YYYY [kl.] HH:mm'},calendar:{sameDay:'[i dag kl.] LT',nextDay:'[i morgen kl.] LT',nextWeek:'dddd [kl.] LT',lastDay:'[i g\xe5r kl.] LT',lastWeek:'[forrige] dddd [kl.] LT',sameElse:'L'},relativeTime:{future:'om %s',past:'%s siden',s:'noen sekunder',m:'ett minutt',mm:'%d minutter',h:'en time',hh:'%d timer',d:'en dag',dd:'%d dager',M:'en m\xe5ned',MM:'%d m\xe5neder',y:'ett \xe5r',yy:'%d \xe5r'},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:'%d.',week:{dow:1,doy:4}})},'object'==typeof e&&void 0!==m&&'function'==typeof r?n(r(d[0])):'function'==typeof define&&define.amd?define(['../moment'],n):n(t.moment)},714,[624]); +__d(function(g,r,i,a,m,e,d){var t,n;t=this,n=function(t){'use strict';var n='stycze\u0144_luty_marzec_kwiecie\u0144_maj_czerwiec_lipiec_sierpie\u0144_wrzesie\u0144_pa\u017adziernik_listopad_grudzie\u0144'.split('_'),o='stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_wrze\u015bnia_pa\u017adziernika_listopada_grudnia'.split('_');function s(t){return t%10<5&&t%10>1&&~~(t/10)%10!=1}function _(t,n,o){var _=t+' ';switch(o){case'm':return n?'minuta':'minut\u0119';case'mm':return _+(s(t)?'minuty':'minut');case'h':return n?'godzina':'godzin\u0119';case'hh':return _+(s(t)?'godziny':'godzin');case'MM':return _+(s(t)?'miesi\u0105ce':'miesi\u0119cy');case'yy':return _+(s(t)?'lata':'lat')}}return t.defineLocale('pl',{months:function(t,s){return t?''===s?'('+o[t.month()]+'|'+n[t.month()]+')':/D MMMM/.test(s)?o[t.month()]:n[t.month()]:n},monthsShort:'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_pa\u017a_lis_gru'.split('_'),weekdays:'niedziela_poniedzia\u0142ek_wtorek_\u015broda_czwartek_pi\u0105tek_sobota'.split('_'),weekdaysShort:'ndz_pon_wt_\u015br_czw_pt_sob'.split('_'),weekdaysMin:'Nd_Pn_Wt_\u015ar_Cz_Pt_So'.split('_'),longDateFormat:{LT:'HH:mm',LTS:'HH:mm:ss',L:'DD.MM.YYYY',LL:'D MMMM YYYY',LLL:'D MMMM YYYY HH:mm',LLLL:'dddd, D MMMM YYYY HH:mm'},calendar:{sameDay:'[Dzi\u015b o] LT',nextDay:'[Jutro o] LT',nextWeek:function(){switch(this.day()){case 0:return'[W niedziel\u0119 o] LT';case 2:return'[We wtorek o] LT';case 3:return'[W \u015brod\u0119 o] LT';case 6:return'[W sobot\u0119 o] LT';default:return'[W] dddd [o] LT'}},lastDay:'[Wczoraj o] LT',lastWeek:function(){switch(this.day()){case 0:return'[W zesz\u0142\u0105 niedziel\u0119 o] LT';case 3:return'[W zesz\u0142\u0105 \u015brod\u0119 o] LT';case 6:return'[W zesz\u0142\u0105 sobot\u0119 o] LT';default:return'[W zesz\u0142y] dddd [o] LT'}},sameElse:'L'},relativeTime:{future:'za %s',past:'%s temu',s:'kilka sekund',m:_,mm:_,h:_,hh:_,d:'1 dzie\u0144',dd:'%d dni',M:'miesi\u0105c',MM:_,y:'rok',yy:_},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:'%d.',week:{dow:1,doy:4}})},'object'==typeof e&&void 0!==m&&'function'==typeof r?n(r(d[0])):'function'==typeof define&&define.amd?define(['../moment'],n):n(t.moment)},715,[624]); +__d(function(g,r,i,a,m,e,d){var o,t;o=this,t=function(o){'use strict';return o.defineLocale('pt',{months:'janeiro_fevereiro_mar\xe7o_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split('_'),monthsShort:'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),weekdays:'Domingo_Segunda-feira_Ter\xe7a-feira_Quarta-feira_Quinta-feira_Sexta-feira_S\xe1bado'.split('_'),weekdaysShort:'Dom_Seg_Ter_Qua_Qui_Sex_S\xe1b'.split('_'),weekdaysMin:'Do_2\xaa_3\xaa_4\xaa_5\xaa_6\xaa_S\xe1'.split('_'),weekdaysParseExact:!0,longDateFormat:{LT:'HH:mm',LTS:'HH:mm:ss',L:'DD/MM/YYYY',LL:'D [de] MMMM [de] YYYY',LLL:'D [de] MMMM [de] YYYY HH:mm',LLLL:'dddd, D [de] MMMM [de] YYYY HH:mm'},calendar:{sameDay:'[Hoje \xe0s] LT',nextDay:'[Amanh\xe3 \xe0s] LT',nextWeek:'dddd [\xe0s] LT',lastDay:'[Ontem \xe0s] LT',lastWeek:function(){return 0===this.day()||6===this.day()?'[\xdaltimo] dddd [\xe0s] LT':'[\xdaltima] dddd [\xe0s] LT'},sameElse:'L'},relativeTime:{future:'em %s',past:'h\xe1 %s',s:'segundos',m:'um minuto',mm:'%d minutos',h:'uma hora',hh:'%d horas',d:'um dia',dd:'%d dias',M:'um m\xeas',MM:'%d meses',y:'um ano',yy:'%d anos'},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:'%d\xba',week:{dow:1,doy:4}})},'object'==typeof e&&void 0!==m&&'function'==typeof r?t(r(d[0])):'function'==typeof define&&define.amd?define(['../moment'],t):t(o.moment)},716,[624]); +__d(function(g,r,i,a,m,e,d){var o,s;o=this,s=function(o){'use strict';return o.defineLocale('pt-br',{months:'janeiro_fevereiro_mar\xe7o_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split('_'),monthsShort:'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),weekdays:'Domingo_Segunda-feira_Ter\xe7a-feira_Quarta-feira_Quinta-feira_Sexta-feira_S\xe1bado'.split('_'),weekdaysShort:'Dom_Seg_Ter_Qua_Qui_Sex_S\xe1b'.split('_'),weekdaysMin:'Do_2\xaa_3\xaa_4\xaa_5\xaa_6\xaa_S\xe1'.split('_'),weekdaysParseExact:!0,longDateFormat:{LT:'HH:mm',LTS:'HH:mm:ss',L:'DD/MM/YYYY',LL:'D [de] MMMM [de] YYYY',LLL:'D [de] MMMM [de] YYYY [\xe0s] HH:mm',LLLL:'dddd, D [de] MMMM [de] YYYY [\xe0s] HH:mm'},calendar:{sameDay:'[Hoje \xe0s] LT',nextDay:'[Amanh\xe3 \xe0s] LT',nextWeek:'dddd [\xe0s] LT',lastDay:'[Ontem \xe0s] LT',lastWeek:function(){return 0===this.day()||6===this.day()?'[\xdaltimo] dddd [\xe0s] LT':'[\xdaltima] dddd [\xe0s] LT'},sameElse:'L'},relativeTime:{future:'em %s',past:'%s atr\xe1s',s:'poucos segundos',ss:'%d segundos',m:'um minuto',mm:'%d minutos',h:'uma hora',hh:'%d horas',d:'um dia',dd:'%d dias',M:'um m\xeas',MM:'%d meses',y:'um ano',yy:'%d anos'},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:'%d\xba'})},'object'==typeof e&&void 0!==m&&'function'==typeof r?s(r(d[0])):'function'==typeof define&&define.amd?define(['../moment'],s):s(o.moment)},717,[624]); +__d(function(g,r,i,a,m,e,d){var t,_;t=this,_=function(t){'use strict';function _(t,_,s){var n,o;return'm'===s?_?'\u043c\u0438\u043d\u0443\u0442\u0430':'\u043c\u0438\u043d\u0443\u0442\u0443':t+' '+(n=+t,o={mm:_?'\u043c\u0438\u043d\u0443\u0442\u0430_\u043c\u0438\u043d\u0443\u0442\u044b_\u043c\u0438\u043d\u0443\u0442':'\u043c\u0438\u043d\u0443\u0442\u0443_\u043c\u0438\u043d\u0443\u0442\u044b_\u043c\u0438\u043d\u0443\u0442',hh:'\u0447\u0430\u0441_\u0447\u0430\u0441\u0430_\u0447\u0430\u0441\u043e\u0432',dd:'\u0434\u0435\u043d\u044c_\u0434\u043d\u044f_\u0434\u043d\u0435\u0439',MM:'\u043c\u0435\u0441\u044f\u0446_\u043c\u0435\u0441\u044f\u0446\u0430_\u043c\u0435\u0441\u044f\u0446\u0435\u0432',yy:'\u0433\u043e\u0434_\u0433\u043e\u0434\u0430_\u043b\u0435\u0442'}[s].split('_'),n%10==1&&n%100!=11?o[0]:n%10>=2&&n%10<=4&&(n%100<10||n%100>=20)?o[1]:o[2])}var s=[/^\u044f\u043d\u0432/i,/^\u0444\u0435\u0432/i,/^\u043c\u0430\u0440/i,/^\u0430\u043f\u0440/i,/^\u043c\u0430[\u0439\u044f]/i,/^\u0438\u044e\u043d/i,/^\u0438\u044e\u043b/i,/^\u0430\u0432\u0433/i,/^\u0441\u0435\u043d/i,/^\u043e\u043a\u0442/i,/^\u043d\u043e\u044f/i,/^\u0434\u0435\u043a/i];return t.defineLocale('ru',{months:{format:'\u044f\u043d\u0432\u0430\u0440\u044f_\u0444\u0435\u0432\u0440\u0430\u043b\u044f_\u043c\u0430\u0440\u0442\u0430_\u0430\u043f\u0440\u0435\u043b\u044f_\u043c\u0430\u044f_\u0438\u044e\u043d\u044f_\u0438\u044e\u043b\u044f_\u0430\u0432\u0433\u0443\u0441\u0442\u0430_\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044f_\u043e\u043a\u0442\u044f\u0431\u0440\u044f_\u043d\u043e\u044f\u0431\u0440\u044f_\u0434\u0435\u043a\u0430\u0431\u0440\u044f'.split('_'),standalone:'\u044f\u043d\u0432\u0430\u0440\u044c_\u0444\u0435\u0432\u0440\u0430\u043b\u044c_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b\u044c_\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044c_\u043e\u043a\u0442\u044f\u0431\u0440\u044c_\u043d\u043e\u044f\u0431\u0440\u044c_\u0434\u0435\u043a\u0430\u0431\u0440\u044c'.split('_')},monthsShort:{format:'\u044f\u043d\u0432._\u0444\u0435\u0432\u0440._\u043c\u0430\u0440._\u0430\u043f\u0440._\u043c\u0430\u044f_\u0438\u044e\u043d\u044f_\u0438\u044e\u043b\u044f_\u0430\u0432\u0433._\u0441\u0435\u043d\u0442._\u043e\u043a\u0442._\u043d\u043e\u044f\u0431._\u0434\u0435\u043a.'.split('_'),standalone:'\u044f\u043d\u0432._\u0444\u0435\u0432\u0440._\u043c\u0430\u0440\u0442_\u0430\u043f\u0440._\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433._\u0441\u0435\u043d\u0442._\u043e\u043a\u0442._\u043d\u043e\u044f\u0431._\u0434\u0435\u043a.'.split('_')},weekdays:{standalone:'\u0432\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0435\u0440\u0433_\u043f\u044f\u0442\u043d\u0438\u0446\u0430_\u0441\u0443\u0431\u0431\u043e\u0442\u0430'.split('_'),format:'\u0432\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u0435\u0434\u0443_\u0447\u0435\u0442\u0432\u0435\u0440\u0433_\u043f\u044f\u0442\u043d\u0438\u0446\u0443_\u0441\u0443\u0431\u0431\u043e\u0442\u0443'.split('_'),isFormat:/\[ ?[\u0412\u0432] ?(?:\u043f\u0440\u043e\u0448\u043b\u0443\u044e|\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e|\u044d\u0442\u0443)? ?\] ?dddd/},weekdaysShort:'\u0432\u0441_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431'.split('_'),weekdaysMin:'\u0432\u0441_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431'.split('_'),monthsParse:s,longMonthsParse:s,shortMonthsParse:s,monthsRegex:/^(\u044f\u043d\u0432\u0430\u0440[\u044c\u044f]|\u044f\u043d\u0432\.?|\u0444\u0435\u0432\u0440\u0430\u043b[\u044c\u044f]|\u0444\u0435\u0432\u0440?\.?|\u043c\u0430\u0440\u0442\u0430?|\u043c\u0430\u0440\.?|\u0430\u043f\u0440\u0435\u043b[\u044c\u044f]|\u0430\u043f\u0440\.?|\u043c\u0430[\u0439\u044f]|\u0438\u044e\u043d[\u044c\u044f]|\u0438\u044e\u043d\.?|\u0438\u044e\u043b[\u044c\u044f]|\u0438\u044e\u043b\.?|\u0430\u0432\u0433\u0443\u0441\u0442\u0430?|\u0430\u0432\u0433\.?|\u0441\u0435\u043d\u0442\u044f\u0431\u0440[\u044c\u044f]|\u0441\u0435\u043d\u0442?\.?|\u043e\u043a\u0442\u044f\u0431\u0440[\u044c\u044f]|\u043e\u043a\u0442\.?|\u043d\u043e\u044f\u0431\u0440[\u044c\u044f]|\u043d\u043e\u044f\u0431?\.?|\u0434\u0435\u043a\u0430\u0431\u0440[\u044c\u044f]|\u0434\u0435\u043a\.?)/i,monthsShortRegex:/^(\u044f\u043d\u0432\u0430\u0440[\u044c\u044f]|\u044f\u043d\u0432\.?|\u0444\u0435\u0432\u0440\u0430\u043b[\u044c\u044f]|\u0444\u0435\u0432\u0440?\.?|\u043c\u0430\u0440\u0442\u0430?|\u043c\u0430\u0440\.?|\u0430\u043f\u0440\u0435\u043b[\u044c\u044f]|\u0430\u043f\u0440\.?|\u043c\u0430[\u0439\u044f]|\u0438\u044e\u043d[\u044c\u044f]|\u0438\u044e\u043d\.?|\u0438\u044e\u043b[\u044c\u044f]|\u0438\u044e\u043b\.?|\u0430\u0432\u0433\u0443\u0441\u0442\u0430?|\u0430\u0432\u0433\.?|\u0441\u0435\u043d\u0442\u044f\u0431\u0440[\u044c\u044f]|\u0441\u0435\u043d\u0442?\.?|\u043e\u043a\u0442\u044f\u0431\u0440[\u044c\u044f]|\u043e\u043a\u0442\.?|\u043d\u043e\u044f\u0431\u0440[\u044c\u044f]|\u043d\u043e\u044f\u0431?\.?|\u0434\u0435\u043a\u0430\u0431\u0440[\u044c\u044f]|\u0434\u0435\u043a\.?)/i,monthsStrictRegex:/^(\u044f\u043d\u0432\u0430\u0440[\u044f\u044c]|\u0444\u0435\u0432\u0440\u0430\u043b[\u044f\u044c]|\u043c\u0430\u0440\u0442\u0430?|\u0430\u043f\u0440\u0435\u043b[\u044f\u044c]|\u043c\u0430[\u044f\u0439]|\u0438\u044e\u043d[\u044f\u044c]|\u0438\u044e\u043b[\u044f\u044c]|\u0430\u0432\u0433\u0443\u0441\u0442\u0430?|\u0441\u0435\u043d\u0442\u044f\u0431\u0440[\u044f\u044c]|\u043e\u043a\u0442\u044f\u0431\u0440[\u044f\u044c]|\u043d\u043e\u044f\u0431\u0440[\u044f\u044c]|\u0434\u0435\u043a\u0430\u0431\u0440[\u044f\u044c])/i,monthsShortStrictRegex:/^(\u044f\u043d\u0432\.|\u0444\u0435\u0432\u0440?\.|\u043c\u0430\u0440[\u0442.]|\u0430\u043f\u0440\.|\u043c\u0430[\u044f\u0439]|\u0438\u044e\u043d[\u044c\u044f.]|\u0438\u044e\u043b[\u044c\u044f.]|\u0430\u0432\u0433\.|\u0441\u0435\u043d\u0442?\.|\u043e\u043a\u0442\.|\u043d\u043e\u044f\u0431?\.|\u0434\u0435\u043a\.)/i,longDateFormat:{LT:'HH:mm',LTS:'HH:mm:ss',L:'DD.MM.YYYY',LL:'D MMMM YYYY \u0433.',LLL:'D MMMM YYYY \u0433., HH:mm',LLLL:'dddd, D MMMM YYYY \u0433., HH:mm'},calendar:{sameDay:'[\u0421\u0435\u0433\u043e\u0434\u043d\u044f \u0432] LT',nextDay:'[\u0417\u0430\u0432\u0442\u0440\u0430 \u0432] LT',lastDay:'[\u0412\u0447\u0435\u0440\u0430 \u0432] LT',nextWeek:function(t){if(t.week()===this.week())return 2===this.day()?'[\u0412\u043e] dddd [\u0432] LT':'[\u0412] dddd [\u0432] LT';switch(this.day()){case 0:return'[\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435] dddd [\u0432] LT';case 1:case 2:case 4:return'[\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439] dddd [\u0432] LT';case 3:case 5:case 6:return'[\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e] dddd [\u0432] LT'}},lastWeek:function(t){if(t.week()===this.week())return 2===this.day()?'[\u0412\u043e] dddd [\u0432] LT':'[\u0412] dddd [\u0432] LT';switch(this.day()){case 0:return'[\u0412 \u043f\u0440\u043e\u0448\u043b\u043e\u0435] dddd [\u0432] LT';case 1:case 2:case 4:return'[\u0412 \u043f\u0440\u043e\u0448\u043b\u044b\u0439] dddd [\u0432] LT';case 3:case 5:case 6:return'[\u0412 \u043f\u0440\u043e\u0448\u043b\u0443\u044e] dddd [\u0432] LT'}},sameElse:'L'},relativeTime:{future:'\u0447\u0435\u0440\u0435\u0437 %s',past:'%s \u043d\u0430\u0437\u0430\u0434',s:'\u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434',m:_,mm:_,h:'\u0447\u0430\u0441',hh:_,d:'\u0434\u0435\u043d\u044c',dd:_,M:'\u043c\u0435\u0441\u044f\u0446',MM:_,y:'\u0433\u043e\u0434',yy:_},meridiemParse:/\u043d\u043e\u0447\u0438|\u0443\u0442\u0440\u0430|\u0434\u043d\u044f|\u0432\u0435\u0447\u0435\u0440\u0430/i,isPM:function(t){return/^(\u0434\u043d\u044f|\u0432\u0435\u0447\u0435\u0440\u0430)$/.test(t)},meridiem:function(t,_,s){return t<4?'\u043d\u043e\u0447\u0438':t<12?'\u0443\u0442\u0440\u0430':t<17?'\u0434\u043d\u044f':'\u0432\u0435\u0447\u0435\u0440\u0430'},dayOfMonthOrdinalParse:/\d{1,2}-(\u0439|\u0433\u043e|\u044f)/,ordinal:function(t,_){switch(_){case'M':case'd':case'DDD':return t+'-\u0439';case'D':return t+'-\u0433\u043e';case'w':case'W':return t+'-\u044f';default:return t}},week:{dow:1,doy:4}})},'object'==typeof e&&void 0!==m&&'function'==typeof r?_(r(d[0])):'function'==typeof define&&define.amd?define(['../moment'],_):_(t.moment)},718,[624]); +__d(function(g,r,i,a,m,e,d){var t,n;t=this,n=function(t){'use strict';var n='janu\xe1r_febru\xe1r_marec_apr\xedl_m\xe1j_j\xfan_j\xfal_august_september_okt\xf3ber_november_december'.split('_'),o='jan_feb_mar_apr_m\xe1j_j\xfan_j\xfal_aug_sep_okt_nov_dec'.split('_');function s(t){return t>1&&t<5}function u(t,n,o,u){var c=t+' ';switch(o){case's':return n||u?'p\xe1r sek\xfand':'p\xe1r sekundami';case'm':return n?'min\xfata':u?'min\xfatu':'min\xfatou';case'mm':return n||u?c+(s(t)?'min\xfaty':'min\xfat'):c+'min\xfatami';case'h':return n?'hodina':u?'hodinu':'hodinou';case'hh':return n||u?c+(s(t)?'hodiny':'hod\xedn'):c+'hodinami';case'd':return n||u?'de\u0148':'d\u0148om';case'dd':return n||u?c+(s(t)?'dni':'dn\xed'):c+'d\u0148ami';case'M':return n||u?'mesiac':'mesiacom';case'MM':return n||u?c+(s(t)?'mesiace':'mesiacov'):c+'mesiacmi';case'y':return n||u?'rok':'rokom';case'yy':return n||u?c+(s(t)?'roky':'rokov'):c+'rokmi'}}return t.defineLocale('sk',{months:n,monthsShort:o,weekdays:'nede\u013ea_pondelok_utorok_streda_\u0161tvrtok_piatok_sobota'.split('_'),weekdaysShort:'ne_po_ut_st_\u0161t_pi_so'.split('_'),weekdaysMin:'ne_po_ut_st_\u0161t_pi_so'.split('_'),longDateFormat:{LT:'H:mm',LTS:'H:mm:ss',L:'DD.MM.YYYY',LL:'D. MMMM YYYY',LLL:'D. MMMM YYYY H:mm',LLLL:'dddd D. MMMM YYYY H:mm'},calendar:{sameDay:'[dnes o] LT',nextDay:'[zajtra o] LT',nextWeek:function(){switch(this.day()){case 0:return'[v nede\u013eu o] LT';case 1:case 2:return'[v] dddd [o] LT';case 3:return'[v stredu o] LT';case 4:return'[vo \u0161tvrtok o] LT';case 5:return'[v piatok o] LT';case 6:return'[v sobotu o] LT'}},lastDay:'[v\u010dera o] LT',lastWeek:function(){switch(this.day()){case 0:return'[minul\xfa nede\u013eu o] LT';case 1:case 2:return'[minul\xfd] dddd [o] LT';case 3:return'[minul\xfa stredu o] LT';case 4:case 5:return'[minul\xfd] dddd [o] LT';case 6:return'[minul\xfa sobotu o] LT'}},sameElse:'L'},relativeTime:{future:'za %s',past:'pred %s',s:u,m:u,mm:u,h:u,hh:u,d:u,dd:u,M:u,MM:u,y:u,yy:u},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:'%d.',week:{dow:1,doy:4}})},'object'==typeof e&&void 0!==m&&'function'==typeof r?n(r(d[0])):'function'==typeof define&&define.amd?define(['../moment'],n):n(t.moment)},719,[624]); +__d(function(g,r,i,a,m,e,d){var n,t;n=this,t=function(n){'use strict';function t(n,t,s,o){var u=n+' ';switch(s){case's':return t||o?'nekaj sekund':'nekaj sekundami';case'm':return t?'ena minuta':'eno minuto';case'mm':return u+=1===n?t?'minuta':'minuto':2===n?t||o?'minuti':'minutama':n<5?t||o?'minute':'minutami':t||o?'minut':'minutami';case'h':return t?'ena ura':'eno uro';case'hh':return u+=1===n?t?'ura':'uro':2===n?t||o?'uri':'urama':n<5?t||o?'ure':'urami':t||o?'ur':'urami';case'd':return t||o?'en dan':'enim dnem';case'dd':return u+=1===n?t||o?'dan':'dnem':2===n?t||o?'dni':'dnevoma':t||o?'dni':'dnevi';case'M':return t||o?'en mesec':'enim mesecem';case'MM':return u+=1===n?t||o?'mesec':'mesecem':2===n?t||o?'meseca':'mesecema':n<5?t||o?'mesece':'meseci':t||o?'mesecev':'meseci';case'y':return t||o?'eno leto':'enim letom';case'yy':return u+=1===n?t||o?'leto':'letom':2===n?t||o?'leti':'letoma':n<5?t||o?'leta':'leti':t||o?'let':'leti'}}return n.defineLocale('sl',{months:'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split('_'),monthsShort:'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split('_'),monthsParseExact:!0,weekdays:'nedelja_ponedeljek_torek_sreda_\u010detrtek_petek_sobota'.split('_'),weekdaysShort:'ned._pon._tor._sre._\u010det._pet._sob.'.split('_'),weekdaysMin:'ne_po_to_sr_\u010de_pe_so'.split('_'),weekdaysParseExact:!0,longDateFormat:{LT:'H:mm',LTS:'H:mm:ss',L:'DD.MM.YYYY',LL:'D. MMMM YYYY',LLL:'D. MMMM YYYY H:mm',LLLL:'dddd, D. MMMM YYYY H:mm'},calendar:{sameDay:'[danes ob] LT',nextDay:'[jutri ob] LT',nextWeek:function(){switch(this.day()){case 0:return'[v] [nedeljo] [ob] LT';case 3:return'[v] [sredo] [ob] LT';case 6:return'[v] [soboto] [ob] LT';case 1:case 2:case 4:case 5:return'[v] dddd [ob] LT'}},lastDay:'[v\u010deraj ob] LT',lastWeek:function(){switch(this.day()){case 0:return'[prej\u0161njo] [nedeljo] [ob] LT';case 3:return'[prej\u0161njo] [sredo] [ob] LT';case 6:return'[prej\u0161njo] [soboto] [ob] LT';case 1:case 2:case 4:case 5:return'[prej\u0161nji] dddd [ob] LT'}},sameElse:'L'},relativeTime:{future:'\u010dez %s',past:'pred %s',s:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:'%d.',week:{dow:1,doy:7}})},'object'==typeof e&&void 0!==m&&'function'==typeof r?t(r(d[0])):'function'==typeof define&&define.amd?define(['../moment'],t):t(n.moment)},720,[624]); +__d(function(g,r,i,a,m,e,d){var n,t;n=this,t=function(n){'use strict';return n.defineLocale('sv',{months:'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split('_'),monthsShort:'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),weekdays:'s\xf6ndag_m\xe5ndag_tisdag_onsdag_torsdag_fredag_l\xf6rdag'.split('_'),weekdaysShort:'s\xf6n_m\xe5n_tis_ons_tor_fre_l\xf6r'.split('_'),weekdaysMin:'s\xf6_m\xe5_ti_on_to_fr_l\xf6'.split('_'),longDateFormat:{LT:'HH:mm',LTS:'HH:mm:ss',L:'YYYY-MM-DD',LL:'D MMMM YYYY',LLL:'D MMMM YYYY [kl.] HH:mm',LLLL:'dddd D MMMM YYYY [kl.] HH:mm',lll:'D MMM YYYY HH:mm',llll:'ddd D MMM YYYY HH:mm'},calendar:{sameDay:'[Idag] LT',nextDay:'[Imorgon] LT',lastDay:'[Ig\xe5r] LT',nextWeek:'[P\xe5] dddd LT',lastWeek:'[I] dddd[s] LT',sameElse:'L'},relativeTime:{future:'om %s',past:'f\xf6r %s sedan',s:'n\xe5gra sekunder',m:'en minut',mm:'%d minuter',h:'en timme',hh:'%d timmar',d:'en dag',dd:'%d dagar',M:'en m\xe5nad',MM:'%d m\xe5nader',y:'ett \xe5r',yy:'%d \xe5r'},dayOfMonthOrdinalParse:/\d{1,2}(e|a)/,ordinal:function(n){var t=n%10;return n+(1==~~(n%100/10)?'e':1===t?'a':2===t?'a':'e')},week:{dow:1,doy:4}})},'object'==typeof e&&void 0!==m&&'function'==typeof r?t(r(d[0])):'function'==typeof define&&define.amd?define(['../moment'],t):t(n.moment)},721,[624]); +__d(function(g,r,i,a,m,e,d){var n,t;n=this,t=function(n){'use strict';var t={1:'\'inci',5:'\'inci',8:'\'inci',70:'\'inci',80:'\'inci',2:'\'nci',7:'\'nci',20:'\'nci',50:'\'nci',3:'\'\xfcnc\xfc',4:'\'\xfcnc\xfc',100:'\'\xfcnc\xfc',6:'\'nc\u0131',9:'\'uncu',10:'\'uncu',30:'\'uncu',60:'\'\u0131nc\u0131',90:'\'\u0131nc\u0131'};return n.defineLocale('tr',{months:'Ocak_\u015eubat_Mart_Nisan_May\u0131s_Haziran_Temmuz_A\u011fustos_Eyl\xfcl_Ekim_Kas\u0131m_Aral\u0131k'.split('_'),monthsShort:'Oca_\u015eub_Mar_Nis_May_Haz_Tem_A\u011fu_Eyl_Eki_Kas_Ara'.split('_'),weekdays:'Pazar_Pazartesi_Sal\u0131_\xc7ar\u015famba_Per\u015fembe_Cuma_Cumartesi'.split('_'),weekdaysShort:'Paz_Pts_Sal_\xc7ar_Per_Cum_Cts'.split('_'),weekdaysMin:'Pz_Pt_Sa_\xc7a_Pe_Cu_Ct'.split('_'),longDateFormat:{LT:'HH:mm',LTS:'HH:mm:ss',L:'DD.MM.YYYY',LL:'D MMMM YYYY',LLL:'D MMMM YYYY HH:mm',LLLL:'dddd, D MMMM YYYY HH:mm'},calendar:{sameDay:'[bug\xfcn saat] LT',nextDay:'[yar\u0131n saat] LT',nextWeek:'[gelecek] dddd [saat] LT',lastDay:'[d\xfcn] LT',lastWeek:'[ge\xe7en] dddd [saat] LT',sameElse:'L'},relativeTime:{future:'%s sonra',past:'%s \xf6nce',s:'birka\xe7 saniye',m:'bir dakika',mm:'%d dakika',h:'bir saat',hh:'%d saat',d:'bir g\xfcn',dd:'%d g\xfcn',M:'bir ay',MM:'%d ay',y:'bir y\u0131l',yy:'%d y\u0131l'},dayOfMonthOrdinalParse:/\d{1,2}'(inci|nci|\xfcnc\xfc|nc\u0131|uncu|\u0131nc\u0131)/,ordinal:function(n){if(0===n)return n+'\'\u0131nc\u0131';var _=n%10;return n+(t[_]||t[n%100-_]||t[n>=100?100:null])},week:{dow:1,doy:7}})},'object'==typeof e&&void 0!==m&&'function'==typeof r?t(r(d[0])):'function'==typeof define&&define.amd?define(['../moment'],t):t(n.moment)},722,[624]); +__d(function(g,r,i,a,m,e,d){var _,t;_=this,t=function(_){'use strict';return _.defineLocale('zh-cn',{months:'\u4e00\u6708_\u4e8c\u6708_\u4e09\u6708_\u56db\u6708_\u4e94\u6708_\u516d\u6708_\u4e03\u6708_\u516b\u6708_\u4e5d\u6708_\u5341\u6708_\u5341\u4e00\u6708_\u5341\u4e8c\u6708'.split('_'),monthsShort:'1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708'.split('_'),weekdays:'\u661f\u671f\u65e5_\u661f\u671f\u4e00_\u661f\u671f\u4e8c_\u661f\u671f\u4e09_\u661f\u671f\u56db_\u661f\u671f\u4e94_\u661f\u671f\u516d'.split('_'),weekdaysShort:'\u5468\u65e5_\u5468\u4e00_\u5468\u4e8c_\u5468\u4e09_\u5468\u56db_\u5468\u4e94_\u5468\u516d'.split('_'),weekdaysMin:'\u65e5_\u4e00_\u4e8c_\u4e09_\u56db_\u4e94_\u516d'.split('_'),longDateFormat:{LT:'HH:mm',LTS:'HH:mm:ss',L:'YYYY\u5e74MMMD\u65e5',LL:'YYYY\u5e74MMMD\u65e5',LLL:'YYYY\u5e74MMMD\u65e5Ah\u70b9mm\u5206',LLLL:'YYYY\u5e74MMMD\u65e5ddddAh\u70b9mm\u5206',l:'YYYY\u5e74MMMD\u65e5',ll:'YYYY\u5e74MMMD\u65e5',lll:'YYYY\u5e74MMMD\u65e5 HH:mm',llll:'YYYY\u5e74MMMD\u65e5dddd HH:mm'},meridiemParse:/\u51cc\u6668|\u65e9\u4e0a|\u4e0a\u5348|\u4e2d\u5348|\u4e0b\u5348|\u665a\u4e0a/,meridiemHour:function(_,t){return 12===_&&(_=0),'\u51cc\u6668'===t||'\u65e9\u4e0a'===t||'\u4e0a\u5348'===t?_:'\u4e0b\u5348'===t||'\u665a\u4e0a'===t?_+12:_>=11?_:_+12},meridiem:function(_,t,n){var s=100*_+t;return s<600?'\u51cc\u6668':s<900?'\u65e9\u4e0a':s<1130?'\u4e0a\u5348':s<1230?'\u4e2d\u5348':s<1800?'\u4e0b\u5348':'\u665a\u4e0a'},calendar:{sameDay:'[\u4eca\u5929]LT',nextDay:'[\u660e\u5929]LT',nextWeek:'[\u4e0b]ddddLT',lastDay:'[\u6628\u5929]LT',lastWeek:'[\u4e0a]ddddLT',sameElse:'L'},dayOfMonthOrdinalParse:/\d{1,2}(\u65e5|\u6708|\u5468)/,ordinal:function(_,t){switch(t){case'd':case'D':case'DDD':return _+'\u65e5';case'M':return _+'\u6708';case'w':case'W':return _+'\u5468';default:return _}},relativeTime:{future:'%s\u5185',past:'%s\u524d',s:'\u51e0\u79d2',m:'1 \u5206\u949f',mm:'%d \u5206\u949f',h:'1 \u5c0f\u65f6',hh:'%d \u5c0f\u65f6',d:'1 \u5929',dd:'%d \u5929',M:'1 \u4e2a\u6708',MM:'%d \u4e2a\u6708',y:'1 \u5e74',yy:'%d \u5e74'},week:{dow:1,doy:4}})},'object'==typeof e&&void 0!==m&&'function'==typeof r?t(r(d[0])):'function'==typeof define&&define.amd?define(['../moment'],t):t(_.moment)},723,[624]); +__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.translate=function(n){return(0,l.withTranslation)(['main','languages','countries'])(n)},e.translateToHTML=function(n,l){var u=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return t.default.createElement("span",{dangerouslySetInnerHTML:{__html:n(l,u)}})};var t=n(r(d[1])),l=r(d[2])},724,[3,13,725]); +__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"Trans",{enumerable:!0,get:function(){return t.Trans}}),Object.defineProperty(e,"useTranslation",{enumerable:!0,get:function(){return n.useTranslation}}),Object.defineProperty(e,"withTranslation",{enumerable:!0,get:function(){return u.withTranslation}}),Object.defineProperty(e,"Translation",{enumerable:!0,get:function(){return o.Translation}}),Object.defineProperty(e,"I18nextProvider",{enumerable:!0,get:function(){return c.I18nextProvider}}),Object.defineProperty(e,"withSSR",{enumerable:!0,get:function(){return f.withSSR}}),Object.defineProperty(e,"useSSR",{enumerable:!0,get:function(){return b.useSSR}}),Object.defineProperty(e,"I18nContext",{enumerable:!0,get:function(){return l.I18nContext}}),Object.defineProperty(e,"initReactI18next",{enumerable:!0,get:function(){return l.initReactI18next}}),Object.defineProperty(e,"setDefaults",{enumerable:!0,get:function(){return l.setDefaults}}),Object.defineProperty(e,"getDefaults",{enumerable:!0,get:function(){return l.getDefaults}}),Object.defineProperty(e,"setI18n",{enumerable:!0,get:function(){return l.setI18n}}),Object.defineProperty(e,"getI18n",{enumerable:!0,get:function(){return l.getI18n}}),Object.defineProperty(e,"composeInitialProps",{enumerable:!0,get:function(){return l.composeInitialProps}}),Object.defineProperty(e,"getInitialProps",{enumerable:!0,get:function(){return l.getInitialProps}});var t=r(d[0]),n=r(d[1]),u=r(d[2]),o=r(d[3]),c=r(d[4]),f=r(d[5]),b=r(d[6]),l=r(d[7])},725,[726,744,749,750,751,752,753,740]); +__d(function(g,r,i,a,m,e,d){"use strict";var t=r(d[0]),n=r(d[1]),o=r(d[2]);Object.defineProperty(e,"__esModule",{value:!0}),e.nodesToString=b,e.Trans=function(t){var n=t.children,o=t.count,s=t.parent,p=t.i18nKey,y=t.tOptions,v=t.values,E=t.defaults,O=t.components,k=t.ns,x=t.i18n,S=t.t,N=(0,c.default)(t,["children","count","parent","i18nKey","tOptions","values","defaults","components","ns","i18n","t"]),w=(0,f.getHasUsedI18nextProvider)()&&(0,u.useContext)(f.I18nContext)||{},V=w.i18n,A=w.defaultNS,I=x||V||(0,f.getI18n)();if(!I)return(0,h.warnOnce)('You will need pass in an i18next instance by using i18nextReactModule'),n;var K=S||I.t.bind(I)||function(t){return t},T=(0,l.default)({},(0,f.getDefaults)(),I.options&&I.options.react),H=void 0!==s?s:T.defaultTransParent,_=k||K.ns||A||I.options&&I.options.defaultNS;_='string'==typeof _?[_]:_||['translation'];var B=E||b('',n,0,T)||T.transEmptyNodeValue,P=T.hashTransKey,C=p||(P?P(B):B),D=v?{}:{interpolation:{prefix:'#$?',suffix:'?$#'}},F=(0,l.default)({},y,v,D,{defaultValue:B,count:o,ns:_}),M=C?K(C,F):B;return H?u.default.createElement(H,N,j(O||n,M,I,T,F)):j(O||n,M,I,T,F)};var c=o(r(d[3])),l=o(r(d[4])),s=o(r(d[5])),u=n(r(d[6])),p=o(r(d[7])),f=r(d[8]),h=r(d[9]);function y(t){return t&&(t.children||t.props&&t.props.children)}function v(t){return t?t&&t.children?t.children:t.props&&t.props.children:[]}function b(t,n,o,c){if(!n)return'';'[object Array]'!==Object.prototype.toString.call(n)&&(n=[n]);var p=c.transKeepBasicHtmlNodesFor||[];return n.forEach(function(n,o){var f="".concat(o);if('string'==typeof n)t="".concat(t).concat(n);else if(y(n)){var j=p.indexOf(n.type)>-1&&1===Object.keys(n.props).length&&'string'==typeof y(n)?n.type:f;t=n.props&&n.props.i18nIsDynamicList?"".concat(t,"<").concat(j,">"):"".concat(t,"<").concat(j,">").concat(b('',v(n),o+1,c),"")}else if(u.default.isValidElement(n))t=p.indexOf(n.type)>-1&&0===Object.keys(n.props).length?"".concat(t,"<").concat(n.type,"/>"):"".concat(t,"<").concat(f,">");else if('object'===(0,s.default)(n)){var E=(0,l.default)({},n),O=E.format;delete E.format;var k=Object.keys(E);O&&1===k.length?t="".concat(t,"{{").concat(k[0],", ").concat(O,"}}"):1===k.length?t="".concat(t,"{{").concat(k[0],"}}"):(0,h.warn)("react-i18next: the passed in object contained more than one variable - the object should look like {{ value, format }} where format is optional.",n)}else(0,h.warn)("Trans: the passed in value is invalid - seems you passed in a variable like {number} - please pass in variables for interpolation as full objects like {{number}}.",n)}),t}function j(n,o,c,f,h){if(''===o)return[];var b=f.transKeepBasicHtmlNodesFor||[],j=o&&new RegExp(b.join('|')).test(o);if(!n&&!j)return[o];var E={};return(function n(o){'[object Array]'!==Object.prototype.toString.call(o)&&(o=[o]),o.forEach(function(o){'string'!=typeof o&&(y(o)?n(v(o)):'object'!==(0,s.default)(o)||u.default.isValidElement(o)||t(E,o))})})(n),o=c.services.interpolator.interpolate(o,(0,l.default)({},E,h),c.language),v((function t(n,o){return'[object Array]'!==Object.prototype.toString.call(n)&&(n=[n]),'[object Array]'!==Object.prototype.toString.call(o)&&(o=[o]),o.reduce(function(o,c,p){var h,b=c.children&&c.children[0]&&c.children[0].content;if('tag'===c.type){var E=n[parseInt(c.name,10)]||{},O=u.default.isValidElement(E);if('string'==typeof E)o.push(E);else if(y(E)){var k=v(E),x=t(k,c.children),S=(h=k,'[object Array]'===Object.prototype.toString.call(h)&&h.every(function(t){return u.default.isValidElement(t)})&&0===x.length?k:x);E.dummy&&(E.children=S),o.push(u.default.cloneElement(E,(0,l.default)({},E.props,{key:p}),S))}else if(j&&'object'===(0,s.default)(E)&&E.dummy&&!O){var N=t(n,c.children);o.push(u.default.cloneElement(E,(0,l.default)({},E.props,{key:p}),N))}else if(isNaN(c.name)&&f.transSupportBasicHtmlNodes)if(c.voidElement)o.push(u.default.createElement(c.name,{key:"".concat(c.name,"-").concat(p)}));else{var w=t(n,c.children);o.push(u.default.createElement(c.name,{key:"".concat(c.name,"-").concat(p)},w))}else if('object'!==(0,s.default)(E)||O)1===c.children.length&&b?o.push(u.default.cloneElement(E,(0,l.default)({},E.props,{key:p}),b)):o.push(u.default.cloneElement(E,(0,l.default)({},E.props,{key:p})));else{var V=c.children[0]?b:null;V&&o.push(V)}}else'text'===c.type&&o.push(c.content);return o},[])})([{dummy:!0,children:n}],p.default.parse("<0>".concat(o,"")))[0])}},726,[727,728,729,730,732,734,13,735,740,743]); +__d(function(g,r,i,a,m,e,d){function t(){return m.exports=t=Object.assign||function(t){for(var n=1;n=0||Object.prototype.propertyIsEnumerable.call(n,l)&&(b[l]=n[l])}return b}},730,[731]); +__d(function(g,r,i,a,m,e,d){m.exports=function(n,t){if(null==n)return{};var f,u,o={},c=Object.keys(n);for(u=0;u=0||(o[f]=n[f]);return o}},731,[]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);m.exports=function(n){for(var o=1;o|<(?:"[^"]*"['"]*|'[^']*'['"]*|[^'">])+>)/g,t=r(d[0]),c=Object.create?Object.create(null):{};function o(n,t,c,o,h){var p=t.indexOf('<',o),s=t.slice(o,-1===p?void 0:p);/^\s*$/.test(s)&&(s=' '),(!h&&p>-1&&c+n.length>=0||' '!==s)&&n.push({type:'text',content:s})}m.exports=function(h,p){p||(p={}),p.components||(p.components=c);var s,l=[],u=-1,f=[],v={},x=!1;return h.replace(n,function(n,c){if(x){if(n!=='')return;x=!1}var O,y='/'!==n.charAt(1),W=0===n.indexOf('\x3c!--'),b=c+n.length,j=h.charAt(b);y&&!W&&(u++,'tag'===(s=t(n)).type&&p.components[s.name]&&(s.type='component',x=!0),s.voidElement||x||!j||'<'===j||o(s.children,h,u,b,p.ignoreWhitespace),v[s.tagName]=s,0===u&&l.push(s),(O=f[u-1])&&O.children.push(s),f[u]=s),(W||!y||s.voidElement)&&(W||u--,!x&&'<'!==j&&j&&o(O=-1===u?l:f[u].children,h,u,b,p.ignoreWhitespace))}),!l.length&&h.length&&o(l,h,0,0,p.ignoreWhitespace),l}},736,[737]); +__d(function(g,r,i,a,m,e,d){var t=/([\w-]+)|=|(['"])([.\s\S]*?)\2/g,n=r(d[0]);m.exports=function(o){var c,l=0,v=!0,s={type:'tag',name:'',voidElement:!1,attrs:{},children:[]};return o.replace(t,function(t){if('='===t)return v=!0,void l++;v?0===l?((n[t]||'/'===o.charAt(o.length-2))&&(s.voidElement=!0),s.name=t):(s.attrs[c]=t.replace(/^['"]|['"]$/g,''),c=void 0):(c&&(s.attrs[c]=c),c=t),l++,v=!1}),s}},737,[738]); +__d(function(g,r,i,a,m,e,d){m.exports={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,menuitem:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0}},738,[]); +__d(function(g,r,i,a,m,e,d){function n(n){var t=[];for(var u in n)t.push(u+'="'+n[u]+'"');return t.length?' '+t.join(' '):''}function t(u,c){switch(c.type){case'text':return u+c.content;case'tag':return u+='<'+c.name+(c.attrs?n(c.attrs):'')+(c.voidElement?'/>':'>'),c.voidElement?u:u+c.children.reduce(t,'')+''}}m.exports=function(n){return n.reduce(function(n,u){return n+t('',u)},'')}},739,[]); +__d(function(g,r,i,a,m,e,d){"use strict";var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.usedI18nextProvider=function(t){s=t},e.getHasUsedI18nextProvider=function(){return s},e.setDefaults=l,e.getDefaults=function(){return f},e.setI18n=I,e.getI18n=N,e.composeInitialProps=function(t){return function(n){return new Promise(function(s){var u=P();t.getInitialProps?t.getInitialProps(n).then(function(t){s((0,c.default)({},t,u))}):s(u)})}},e.getInitialProps=P,e.initReactI18next=e.ReportNamespaces=e.I18nContext=void 0;var n,s,u=t(r(d[1])),o=t(r(d[2])),c=t(r(d[3])),f={bindI18n:'languageChanging languageChanged',bindI18nStore:'',transEmptyNodeValue:'',transSupportBasicHtmlNodes:!0,transKeepBasicHtmlNodesFor:['br','strong','i','p'],useSuspense:!0},p=t(r(d[4])).default.createContext();function l(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};f=(0,c.default)({},f,t)}e.I18nContext=p;var v=(function(){function t(){(0,u.default)(this,t),this.usedNamespaces={}}return(0,o.default)(t,[{key:"addUsedNamespaces",value:function(t){var n=this;t.forEach(function(t){n.usedNamespaces[t]||(n.usedNamespaces[t]=!0)})}},{key:"getUsedNamespaces",value:function(){return Object.keys(this.usedNamespaces)}}]),t})();function I(t){n=t}function N(){return n}e.ReportNamespaces=v;var h={type:'3rdParty',init:function(t){l(t.options.react),I(t)}};function P(){var t=N(),n=t.reportNamespaces?t.reportNamespaces.getUsedNamespaces():[],s={},u={};return t.languages.forEach(function(s){u[s]={},n.forEach(function(n){u[s][n]=t.getResourceBundle(s,n)||{}})}),s.initialI18nStore=u,s.initialLanguage=t.language,s}e.initReactI18next=h},740,[729,741,742,732,13]); +__d(function(g,r,i,a,m,e,d){m.exports=function(n,o){if(!(n instanceof o))throw new TypeError("Cannot call a class as a function")}},741,[]); +__d(function(g,r,i,a,m,e,d){function n(n,t){for(var o=0;o0?n:'Unknown')};var t={};function o(){for(var o=arguments.length,s=new Array(o),c=0;c1&&void 0!==arguments[1]?arguments[1]:{},p=f.i18n,l=(0,u.getHasUsedI18nextProvider)()&&(0,o.useContext)(u.I18nContext)||{},v=l.i18n,N=l.defaultNS,I=p||v||(0,u.getI18n)();I&&!I.reportNamespaces&&(I.reportNamespaces=new u.ReportNamespaces);if(!I){(0,c.warnOnce)('You will need pass in an i18next instance by using initReactI18next');var S=[function(n){return n},{},!0];return S.t=function(n){return n},S.i18n={},S.ready=!0,S}var x=(0,s.default)({},(0,u.getDefaults)(),I.options.react),y=f.useSuspense,b=void 0===y?x.useSuspense:y,h=n||N||I.options&&I.options.defaultNS;h='string'==typeof h?[h]:h||['translation'],I.reportNamespaces.addUsedNamespaces&&I.reportNamespaces.addUsedNamespaces(h);var w=(I.isInitialized||I.initializedStoreOnce)&&h.every(function(n){return(0,c.hasLoadedNamespace)(n,I)});function _(){return{t:I.getFixedT(null,'fallback'===x.nsMode?h:h[0])}}var E=(0,o.useState)(_()),O=(0,t.default)(E,2),P=O[0],U=O[1];(0,o.useEffect)(function(){var n=!0,t=x.bindI18n,s=x.bindI18nStore;function o(){n&&U(_())}return w||b||(0,c.loadNamespaces)(I,h,function(){n&&U(_())}),t&&I&&I.on(t,o),s&&I&&I.store.on(s,o),function(){n=!1,t&&I&&t.split(' ').forEach(function(n){return I.off(n,o)}),s&&I&&s.split(' ').forEach(function(n){return I.store.off(n,o)})}},[h.join()]);var j=[P.t,I,w];if(j.t=P.t,j.i18n=I,j.ready=w,w)return j;if(!w&&!b)return j;throw new Promise(function(n){(0,c.loadNamespaces)(I,h,function(){U(_()),n()})})};var t=n(r(d[1])),s=n(r(d[2])),o=r(d[3]),u=r(d[4]),c=r(d[5])},744,[729,745,732,13,740,743]); +__d(function(g,r,i,a,m,e,d){var n=r(d[0]),t=r(d[1]),o=r(d[2]);m.exports=function(u,c){return n(u)||t(u,c)||o()}},745,[746,747,748]); +__d(function(g,r,i,a,m,e,d){m.exports=function(n){if(Array.isArray(n))return n}},746,[]); +__d(function(g,r,i,a,m,e,d){m.exports=function(t,n){var o=[],l=!0,u=!1,f=void 0;try{for(var y,c=t["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();!(l=(y=c.next()).done)&&(o.push(y.value),!n||o.length!==n);l=!0);}catch(t){u=!0,f=t}finally{try{l||null==c.return||c.return()}finally{if(u)throw f}}return o}},747,[]); +__d(function(g,r,i,a,m,e,d){m.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}},748,[]); +__d(function(g,r,i,a,m,e,d){"use strict";var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.withTranslation=function(t){var c=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function(s){function p(l,p){var v=(0,o.useTranslation)(t,l),h=(0,u.default)(v,3),w=h[0],y=h[1],R=h[2],_=(0,n.default)({},l,{t:w,i18n:y,tReady:R});return c.withRef&&p&&(_.ref=p),f.default.createElement(s,_)}return p.displayName="withI18nextTranslation(".concat((0,l.getDisplayName)(s),")"),p.WrappedComponent=s,c.withRef?f.default.forwardRef(p):p}};var n=t(r(d[1])),u=t(r(d[2])),f=t(r(d[3])),o=r(d[4]),l=r(d[5])},749,[729,732,745,13,744,743]); +__d(function(g,r,i,a,m,e,d){"use strict";var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.Translation=function(n){var s=n.ns,c=n.children,o=(0,l.default)(n,["ns","children"]),f=(0,u.useTranslation)(s,o),v=(0,t.default)(f,3),_=v[0],h=v[1],T=v[2];return c(_,{i18n:h,lng:h.language},T)};var t=n(r(d[1])),l=n(r(d[2])),u=(n(r(d[3])),r(d[4]))},750,[729,745,730,13,744]); +__d(function(g,r,i,a,m,e,d){"use strict";var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.I18nextProvider=function(t){var l=t.i18n,o=t.defaultNS,v=t.children;return(0,u.usedI18nextProvider)(!0),n.default.createElement(u.I18nContext.Provider,{value:{i18n:l,defaultNS:o}},v)};var n=t(r(d[1])),u=r(d[2])},751,[729,13,740]); +__d(function(g,r,i,a,m,e,d){"use strict";var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.withSSR=function(){return function(t){function s(c){var p=c.initialI18nStore,s=c.initialLanguage,f=(0,u.default)(c,["initialI18nStore","initialLanguage"]);return(0,l.useSSR)(p,s),o.default.createElement(t,(0,n.default)({},f))}return s.getInitialProps=(0,c.composeInitialProps)(t),s.displayName="withI18nextSSR(".concat((0,p.getDisplayName)(t),")"),s.WrappedComponent=t,s}};var n=t(r(d[1])),u=t(r(d[2])),o=t(r(d[3])),l=r(d[4]),c=r(d[5]),p=r(d[6])},752,[729,732,730,13,753,740,743]); +__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.useSSR=function(o,s){var u=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).i18n,c=((0,t.getHasUsedI18nextProvider)()?(0,n.useContext)(t.I18nContext):{}).i18n,l=u||c||(0,t.getI18n)();if(l.options&&l.options.isClone)return;o&&!l.initializedStoreOnce&&(l.services.resourceStore.data=o,l.initializedStoreOnce=!0);s&&!l.initializedLanguageOnce&&(l.changeLanguage(s),l.initializedLanguageOnce=!0)};var n=r(d[0]),t=r(d[1])},753,[13,740]); +__d(function(g,r,i,a,m,e,d){var s=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=s(r(d[1])),n=s(r(d[2])),u=s(r(d[3])),o=s(r(d[4])),l=s(r(d[5])),p=s(r(d[6])),f=r(d[7]),c=r(d[8]),_=(function(s){function f(s){var n;return(0,t.default)(this,f),(n=(0,u.default)(this,(0,o.default)(f).call(this,s)))._onDismissed=n._onDismissed.bind((0,p.default)((0,p.default)(n))),n}return(0,l.default)(f,s),(0,n.default)(f,[{key:"_getDescription",value:function(){var s=this.props,t=s.description,n=s.descriptionArguments,u=s.descriptionKey,o=s.t,l=[];return u&&l.push(o(u,n)),t&&l.push(t),l}},{key:"_onDismissed",value:function(){this.props.onDismissed(this.props.uid)}}]),f})(f.Component);e.default=_,_.defaultProps={appearance:c.NOTIFICATION_TYPE.NORMAL,isDismissAllowed:!0}},754,[3,4,5,6,9,10,8,13,618]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=r(d[0]),t={contentColumn:{justifyContent:'center',flex:1,flexDirection:'column',paddingLeft:1.5*o.BoxModel.padding},contentText:{alignSelf:'flex-start',color:o.ColorPalette.white},dismissIcon:{color:o.ColorPalette.white,fontSize:20,padding:1.5*o.BoxModel.padding},notification:{backgroundColor:'#768898',flexDirection:'row',height:48,marginTop:.5*o.BoxModel.margin},notificationContainer:{flexGrow:0,justifyContent:'flex-end'},notificationContent:{flexDirection:'column'}};e.default=t},755,[406]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=n(r(d[2])),l=n(r(d[3])),o=n(r(d[4])),s=n(r(d[5])),f=n(r(d[6])),c=n(r(d[7])),p=n(r(d[8])),h=r(d[9]),v=r(d[10]),_=t(r(d[11])),y=n(r(d[12])),b=n(r(d[13])),E=(function(t){function n(){return(0,l.default)(this,n),(0,s.default)(this,(0,f.default)(n).apply(this,arguments))}return(0,c.default)(n,t),(0,o.default)(n,[{key:"render",value:function(){var t=this.props._notifications,n=t&&t.length&&t[0];return n?p.default.createElement(h.View,{pointerEvents:"box-none",style:[b.default.notificationContainer,this.props.style]},p.default.createElement(y.default,(0,u.default)({},n.props,{onDismissed:this._onDismissed,uid:n.uid}))):null}}]),n})(_.default),D=(0,v.connect)(_._abstractMapStateToProps)(E);e.default=D},756,[2,3,16,4,5,6,9,10,13,17,549,757,621,755]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e._abstractMapStateToProps=function(t){var o=t['features/notifications'].notifications;return{_notifications:(0,T.areThereNotifications)(t)?o:[],autoDismissTimeout:'undefined'==typeof interfaceConfig?void 0:interfaceConfig.ENFORCE_NOTIFICATION_AUTO_DISMISS_TIMEOUT}},e.default=void 0;var o=t(r(d[1])),s=t(r(d[2])),n=t(r(d[3])),u=t(r(d[4])),f=t(r(d[5])),c=t(r(d[6])),l=r(d[7]),_=r(d[8]),T=r(d[9]),h=(function(t){function l(t){var s;return(0,o.default)(this,l),(s=(0,n.default)(this,(0,u.default)(l).call(this,t)))._notificationDismissTimeout=null,s._onDismissed=s._onDismissed.bind((0,c.default)((0,c.default)(s))),s}return(0,f.default)(l,t),(0,s.default)(l,[{key:"componentDidMount",value:function(){this._manageDismissTimeout()}},{key:"componentDidUpdate",value:function(t){this._manageDismissTimeout(t)}},{key:"_manageDismissTimeout",value:function(t){var o=this,s=this.props,n=s._notifications,u=s.autoDismissTimeout;if(n.length){var f=n[0];if(f!==(t&&t._notifications.length?t._notifications[0]:void 0)&&(this._clearNotificationDismissTimeout(),f&&(f.timeout||'number'==typeof u)&&!1!==f.props.isDismissAllowed)){var c=f.timeout,l=void 0===c?u:c,_=f.uid;this._notificationDismissTimeout=setTimeout(function(){o._onDismissed(_)},l)}}else this._notificationDismissTimeout&&this._clearNotificationDismissTimeout()}},{key:"componentWillUnmount",value:function(){this._clearNotificationDismissTimeout()}},{key:"_clearNotificationDismissTimeout",value:function(){this._notificationDismissTimeout&&clearTimeout(this._notificationDismissTimeout),this._notificationDismissTimeout=null}},{key:"_onDismissed",value:function(t){var o=this.props._notifications;o.length&&o[0].uid!==t||this._clearNotificationDismissTimeout(),this.props.dispatch((0,_.hideNotification)(t))}}]),l})(l.Component);e.default=h},757,[3,4,5,6,9,10,8,13,603,758]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.areThereNotifications=function(t){var o=(0,n.toState)(t)['features/notifications'],f=o.enabled,c=o.notifications;return f&&c.length>0},e.joinLeaveNotificationsDisabled=function(){var n;return Boolean('undefined'!=typeof interfaceConfig&&(null==(n=interfaceConfig)?void 0:n.DISABLE_JOIN_LEAVE_NOTIFICATIONS))};var n=r(d[0])},758,[549]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]),o=r(d[2]),c=r(d[3]),f=r(d[4]),s=r(d[5]);o.MiddlewareRegistry.register(function(t){return function(o){return function(I){switch(I.type){case n.PARTICIPANT_JOINED:var y=o(I),T=I.participant,p=t.dispatch,N=t.getState;if(T.local||(0,s.joinLeaveNotificationsDisabled)()||p((0,c.showParticipantJoinedNotification)((0,n.getParticipantDisplayName)(N,T.id))),'object'==typeof interfaceConfig&&!interfaceConfig.DISABLE_FOCUS_INDICATOR&&T.role===n.PARTICIPANT_ROLE.MODERATOR){var l=(0,n.getParticipantDisplayName)(N,T.id);p((0,c.showNotification)({descriptionArguments:{to:l||'$t(notify.somebody)'},descriptionKey:'notify.grantedTo',titleKey:'notify.somebody',title:l},f.NOTIFICATION_TIMEOUT))}return y;case n.PARTICIPANT_LEFT:if(!(0,s.joinLeaveNotificationsDisabled)()){var A=(0,n.getParticipantById)(t.getState(),I.participant.id);'object'==typeof interfaceConfig&&A&&!A.local&&t.dispatch((0,c.showNotification)({descriptionKey:'notify.disconnected',titleKey:'notify.somebody',title:A.name},f.NOTIFICATION_TIMEOUT))}return o(I);case n.PARTICIPANT_UPDATED:if('undefined'==typeof interfaceConfig||interfaceConfig.DISABLE_FOCUS_INDICATOR)return o(I);var O=I.participant,u=O.id,C=O.role,P=t.getState(),R=(0,n.getParticipantById)(P,u),D=null==R?void 0:R.role;if(D&&D!==C&&C===n.PARTICIPANT_ROLE.MODERATOR){var _=(0,n.getParticipantDisplayName)(P,u);t.dispatch((0,c.showNotification)({descriptionArguments:{to:_||'$t(notify.somebody)'},descriptionKey:'notify.grantedTo',titleKey:'notify.somebody',title:_},f.NOTIFICATION_TIMEOUT))}return o(I)}return o(I)}}}),o.StateListenerRegistry.register(function(n){return(0,t.getCurrentConference)(n)},function(t,n){var o=n.dispatch;t||o((0,c.clearNotifications)())})},759,[383,547,549,603,618,758]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0])(r(d[1])),n=r(d[2]),o=r(d[3]),I=r(d[4]),c={enabled:!0,notifications:[]};function u(t,n){for(var o=I.NOTIFICATION_TYPE_PRIORITIES[n.props.appearance]||0,c=t.length,u=1;u0&&void 0!==arguments[0]?arguments[0]:c,I=arguments.length>1?arguments[1]:void 0;switch(I.type){case o.CLEAR_NOTIFICATIONS:return(0,t.default)({},n,{notifications:[]});case o.HIDE_NOTIFICATION:return(0,t.default)({},n,{notifications:n.notifications.filter(function(t){return t.uid!==I.uid})});case o.SET_NOTIFICATIONS_ENABLED:return(0,t.default)({},n,{enabled:I.enabled});case o.SHOW_NOTIFICATION:return(0,t.default)({},n,{notifications:u(n.notifications,{component:I.component,props:I.props,timeout:I.timeout,uid:I.uid})})}return n})},760,[3,54,549,617,618]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.SET_LOADABLE_AVATAR_URL=e.HIDDEN_PARTICIPANT_LEFT=e.HIDDEN_PARTICIPANT_JOINED=e.PIN_PARTICIPANT=e.PARTICIPANT_UPDATED=e.PARTICIPANT_LEFT=e.PARTICIPANT_KICKED=e.PARTICIPANT_JOINED=e.PARTICIPANT_ID_CHANGED=e.PARTICIPANT_DISPLAY_NAME_CHANGED=e.MUTE_REMOTE_PARTICIPANT=e.KICK_PARTICIPANT=e.DOMINANT_SPEAKER_CHANGED=void 0;e.DOMINANT_SPEAKER_CHANGED='DOMINANT_SPEAKER_CHANGED';e.KICK_PARTICIPANT='KICK_PARTICIPANT';e.MUTE_REMOTE_PARTICIPANT='MUTE_REMOTE_PARTICIPANT';e.PARTICIPANT_DISPLAY_NAME_CHANGED='PARTICIPANT_DISPLAY_NAME_CHANGED';e.PARTICIPANT_ID_CHANGED='PARTICIPANT_ID_CHANGED';e.PARTICIPANT_JOINED='PARTICIPANT_JOINED';e.PARTICIPANT_KICKED='PARTICIPANT_KICKED';e.PARTICIPANT_LEFT='PARTICIPANT_LEFT';e.PARTICIPANT_UPDATED='PARTICIPANT_UPDATED';e.PIN_PARTICIPANT='PIN_PARTICIPANT';e.HIDDEN_PARTICIPANT_JOINED='HIDDEN_PARTICIPANT_JOINED';e.HIDDEN_PARTICIPANT_LEFT='HIDDEN_PARTICIPANT_LEFT';e.SET_LOADABLE_AVATAR_URL='SET_LOADABLE_AVATAR_URL'},761,[]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.getFirstLoadableAvatarUrl=function(t){var n=(0,l.createDeferred)(),u=n.promise.then(function(){return E(t)}).then(function(t){if(A.length){var n=A.shift();n.resolve()}return t});A.length?A.push(n):n.resolve();return u},e.getLocalParticipant=y,e.getNormalizedDisplayName=function(t){if(!t||!t.trim())return;return t.trim().substring(0,p.MAX_DISPLAY_NAME_LENGTH)},e.getParticipantById=I,e.getParticipantCount=function(t){return h(t).length},e.getParticipantCountWithFake=function(t){return T(t).length},e.getParticipantDisplayName=function(t,n){var u=I(t,n);if(u){if(u.name)return u.name;if(u.local)return'object'==typeof interfaceConfig?interfaceConfig.DEFAULT_LOCAL_DISPLAY_NAME:'me'}return'object'==typeof interfaceConfig?interfaceConfig.DEFAULT_REMOTE_DISPLAY_NAME:'Fellow Jitster'},e.getParticipantPresenceStatus=function(t,n){if(!n)return;var u=I(t,n);if(!u)return;return u.presence},e.getParticipants=h,e.getPinnedParticipant=function(t){return T(t).find(function(t){return t.pinned})},e.isEveryoneModerator=function(t){for(var n=T(t),u=Array.isArray(n),o=0,n=u?n:n["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var c;if(u){if(o>=n.length)break;c=n[o++]}else{if((o=n.next()).done)break;c=o.value}var f=c;if(f.role!==p.PARTICIPANT_ROLE.MODERATOR)return!1}return!0},e.isIconUrl=function(t){return Boolean(t)&&'object'==typeof t},e.isLocalParticipantModerator=function(t){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],u=(0,o.toState)(t),c=y(u);if(!c)return!1;return c.role===p.PARTICIPANT_ROLE.MODERATOR&&(n||!u['features/base/config'].enableUserRolesBasedOnToken||!u['features/base/jwt'].isGuest)},e.shouldRenderParticipantVideo=function(t,n){var u=(0,o.toState)(t),l=I(u,n);if(!l)return!1;var p=(0,s.getTrackByMediaTypeAndParticipant)(u['features/base/tracks'],f.MEDIA_TYPE.VIDEO,n);if(!(0,f.shouldRenderVideoTrack)(p,!1))return!1;if((l.connectionStatus||c.JitsiParticipantConnectionStatus.ACTIVE)!==c.JitsiParticipantConnectionStatus.ACTIVE)return!1;if(!u['features/base/audio-only'].enabled)return!0;var v=u['features/video-layout'].screenShares||[],A=u['features/large-video'].participantId;return l.id===A&&v.includes(l.id)};var n=t(r(d[1])),u=r(d[2]),o=r(d[3]),c=r(d[4]),f=r(d[5]),s=r(d[6]),l=r(d[7]),p=r(d[8]),v=r(d[9]),A=[],P=new Map,b=[function(t){return t&&t.isJigasi?p.JIGASI_PARTICIPANT_ICON:null},function(t){return t&&t.avatarURL?t.avatarURL:null},function(t){return t&&t.email?(0,u.getGravatarURL)(t.email):null}];function y(t){return T(t).find(function(t){return t.local})}function I(t,n){return T(t).find(function(t){return t.id===n})}function h(t){return T(t).filter(function(t){return!t.isFakeParticipant})}function T(t){return Array.isArray(t)?t:(0,o.toState)(t)['features/base/participants']||[]}function E(t){var u,o,c;return n.default.async(function(f){for(;;)switch(f.prev=f.next){case 0:u=0;case 1:if(!(u1&&void 0!==arguments[1]?arguments[1]:{urlPrefix:'https://abotars.jitsi.net/meeple/',urlSuffix:''},s=v.urlPrefix,x=v.urlSuffix;return f(o)||n(u||l,s,x)},e.getGravatarURL=f;var u=t(r(d[1]));function n(t,n,f){return n+u.default.hex(t.trim().toLowerCase())+f}function f(t){var n;return"https://www.gravatar.com/avatar/"+((n=t)&&n.indexOf('@')>0?u.default.hex(t.trim().toLowerCase()):t)+'?d=404&size=200'}},763,[3,764]); +__d(function(g,r,i,a,m,e,d){!(function(){'use strict';var ERROR='input is invalid type',WINDOW='object'==typeof window,root=WINDOW?window:{};root.JS_MD5_NO_WINDOW&&(WINDOW=!1);var WEB_WORKER=!WINDOW&&'object'==typeof self,NODE_JS=!root.JS_MD5_NO_NODE_JS&&'object'==typeof process&&process.versions&&process.versions.node;NODE_JS?root=g:WEB_WORKER&&(root=self);var COMMON_JS=!root.JS_MD5_NO_COMMON_JS&&'object'==typeof m&&m.exports,AMD='function'==typeof define&&define.amd,ARRAY_BUFFER=!root.JS_MD5_NO_ARRAY_BUFFER&&'undefined'!=typeof ArrayBuffer,HEX_CHARS='0123456789abcdef'.split(''),EXTRA=[128,32768,8388608,-2147483648],SHIFT=[0,8,16,24],OUTPUT_TYPES=['hex','array','digest','buffer','arrayBuffer','base64'],BASE64_ENCODE_CHAR='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split(''),blocks=[],buffer8;if(ARRAY_BUFFER){var buffer=new ArrayBuffer(68);buffer8=new Uint8Array(buffer),blocks=new Uint32Array(buffer)}!root.JS_MD5_NO_NODE_JS&&Array.isArray||(Array.isArray=function(t){return'[object Array]'===Object.prototype.toString.call(t)}),!ARRAY_BUFFER||!root.JS_MD5_NO_ARRAY_BUFFER_IS_VIEW&&ArrayBuffer.isView||(ArrayBuffer.isView=function(t){return'object'==typeof t&&t.buffer&&t.buffer.constructor===ArrayBuffer});var createOutputMethod=function(t){return function(s){return new Md5(!0).update(s)[t]()}},createMethod=function(){var t=createOutputMethod('hex');NODE_JS&&(t=nodeWrap(t)),t.create=function(){return new Md5},t.update=function(s){return t.create().update(s)};for(var s=0;s>2]|=t[n]<>6,R[f++]=128|63&h):h<55296||h>=57344?(R[f++]=224|h>>12,R[f++]=128|h>>6&63,R[f++]=128|63&h):(h=65536+((1023&h)<<10|1023&t.charCodeAt(++n)),R[f++]=240|h>>18,R[f++]=128|h>>12&63,R[f++]=128|h>>6&63,R[f++]=128|63&h);else for(f=this.start;n>2]|=h<>2]|=(192|h>>6)<>2]|=(128|63&h)<=57344?(u[f>>2]|=(224|h>>12)<>2]|=(128|h>>6&63)<>2]|=(128|63&h)<>2]|=(240|h>>18)<>2]|=(128|h>>12&63)<>2]|=(128|h>>6&63)<>2]|=(128|63&h)<=64?(this.start=f-64,this.hash(),this.hashed=!0):this.start=f}return this.bytes>4294967295&&(this.hBytes+=this.bytes/4294967296<<0,this.bytes=this.bytes%4294967296),this}},Md5.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var t=this.blocks,s=this.lastByteIndex;t[s>>2]|=EXTRA[3&s],s>=56&&(this.hashed||this.hash(),t[0]=t[16],t[16]=t[1]=t[2]=t[3]=t[4]=t[5]=t[6]=t[7]=t[8]=t[9]=t[10]=t[11]=t[12]=t[13]=t[14]=t[15]=0),t[14]=this.bytes<<3,t[15]=this.hBytes<<3|this.bytes>>>29,this.hash()}},Md5.prototype.hash=function(){var t,s,o,h,f,n,A=this.blocks;this.first?s=((s=((t=((t=A[0]-680876937)<<7|t>>>25)-271733879<<0)^(o=((o=(-271733879^(h=((h=(-1732584194^2004318071&t)+A[1]-117830708)<<12|h>>>20)+t<<0)&(-271733879^t))+A[2]-1126478375)<<17|o>>>15)+h<<0)&(h^t))+A[3]-1316259209)<<22|s>>>10)+o<<0:(t=this.h0,s=this.h1,o=this.h2,s=((s+=((t=((t+=((h=this.h3)^s&(o^h))+A[0]-680876936)<<7|t>>>25)+s<<0)^(o=((o+=(s^(h=((h+=(o^t&(s^o))+A[1]-389564586)<<12|h>>>20)+t<<0)&(t^s))+A[2]+606105819)<<17|o>>>15)+h<<0)&(h^t))+A[3]-1044525330)<<22|s>>>10)+o<<0),s=((s+=((t=((t+=(h^s&(o^h))+A[4]-176418897)<<7|t>>>25)+s<<0)^(o=((o+=(s^(h=((h+=(o^t&(s^o))+A[5]+1200080426)<<12|h>>>20)+t<<0)&(t^s))+A[6]-1473231341)<<17|o>>>15)+h<<0)&(h^t))+A[7]-45705983)<<22|s>>>10)+o<<0,s=((s+=((t=((t+=(h^s&(o^h))+A[8]+1770035416)<<7|t>>>25)+s<<0)^(o=((o+=(s^(h=((h+=(o^t&(s^o))+A[9]-1958414417)<<12|h>>>20)+t<<0)&(t^s))+A[10]-42063)<<17|o>>>15)+h<<0)&(h^t))+A[11]-1990404162)<<22|s>>>10)+o<<0,s=((s+=((t=((t+=(h^s&(o^h))+A[12]+1804603682)<<7|t>>>25)+s<<0)^(o=((o+=(s^(h=((h+=(o^t&(s^o))+A[13]-40341101)<<12|h>>>20)+t<<0)&(t^s))+A[14]-1502002290)<<17|o>>>15)+h<<0)&(h^t))+A[15]+1236535329)<<22|s>>>10)+o<<0,s=((s+=((h=((h+=(s^o&((t=((t+=(o^h&(s^o))+A[1]-165796510)<<5|t>>>27)+s<<0)^s))+A[6]-1069501632)<<9|h>>>23)+t<<0)^t&((o=((o+=(t^s&(h^t))+A[11]+643717713)<<14|o>>>18)+h<<0)^h))+A[0]-373897302)<<20|s>>>12)+o<<0,s=((s+=((h=((h+=(s^o&((t=((t+=(o^h&(s^o))+A[5]-701558691)<<5|t>>>27)+s<<0)^s))+A[10]+38016083)<<9|h>>>23)+t<<0)^t&((o=((o+=(t^s&(h^t))+A[15]-660478335)<<14|o>>>18)+h<<0)^h))+A[4]-405537848)<<20|s>>>12)+o<<0,s=((s+=((h=((h+=(s^o&((t=((t+=(o^h&(s^o))+A[9]+568446438)<<5|t>>>27)+s<<0)^s))+A[14]-1019803690)<<9|h>>>23)+t<<0)^t&((o=((o+=(t^s&(h^t))+A[3]-187363961)<<14|o>>>18)+h<<0)^h))+A[8]+1163531501)<<20|s>>>12)+o<<0,s=((s+=((h=((h+=(s^o&((t=((t+=(o^h&(s^o))+A[13]-1444681467)<<5|t>>>27)+s<<0)^s))+A[2]-51403784)<<9|h>>>23)+t<<0)^t&((o=((o+=(t^s&(h^t))+A[7]+1735328473)<<14|o>>>18)+h<<0)^h))+A[12]-1926607734)<<20|s>>>12)+o<<0,s=((s+=((n=(h=((h+=((f=s^o)^(t=((t+=(f^h)+A[5]-378558)<<4|t>>>28)+s<<0))+A[8]-2022574463)<<11|h>>>21)+t<<0)^t)^(o=((o+=(n^s)+A[11]+1839030562)<<16|o>>>16)+h<<0))+A[14]-35309556)<<23|s>>>9)+o<<0,s=((s+=((n=(h=((h+=((f=s^o)^(t=((t+=(f^h)+A[1]-1530992060)<<4|t>>>28)+s<<0))+A[4]+1272893353)<<11|h>>>21)+t<<0)^t)^(o=((o+=(n^s)+A[7]-155497632)<<16|o>>>16)+h<<0))+A[10]-1094730640)<<23|s>>>9)+o<<0,s=((s+=((n=(h=((h+=((f=s^o)^(t=((t+=(f^h)+A[13]+681279174)<<4|t>>>28)+s<<0))+A[0]-358537222)<<11|h>>>21)+t<<0)^t)^(o=((o+=(n^s)+A[3]-722521979)<<16|o>>>16)+h<<0))+A[6]+76029189)<<23|s>>>9)+o<<0,s=((s+=((n=(h=((h+=((f=s^o)^(t=((t+=(f^h)+A[9]-640364487)<<4|t>>>28)+s<<0))+A[12]-421815835)<<11|h>>>21)+t<<0)^t)^(o=((o+=(n^s)+A[15]+530742520)<<16|o>>>16)+h<<0))+A[2]-995338651)<<23|s>>>9)+o<<0,s=((s+=((h=((h+=(s^((t=((t+=(o^(s|~h))+A[0]-198630844)<<6|t>>>26)+s<<0)|~o))+A[7]+1126891415)<<10|h>>>22)+t<<0)^((o=((o+=(t^(h|~s))+A[14]-1416354905)<<15|o>>>17)+h<<0)|~t))+A[5]-57434055)<<21|s>>>11)+o<<0,s=((s+=((h=((h+=(s^((t=((t+=(o^(s|~h))+A[12]+1700485571)<<6|t>>>26)+s<<0)|~o))+A[3]-1894986606)<<10|h>>>22)+t<<0)^((o=((o+=(t^(h|~s))+A[10]-1051523)<<15|o>>>17)+h<<0)|~t))+A[1]-2054922799)<<21|s>>>11)+o<<0,s=((s+=((h=((h+=(s^((t=((t+=(o^(s|~h))+A[8]+1873313359)<<6|t>>>26)+s<<0)|~o))+A[15]-30611744)<<10|h>>>22)+t<<0)^((o=((o+=(t^(h|~s))+A[6]-1560198380)<<15|o>>>17)+h<<0)|~t))+A[13]+1309151649)<<21|s>>>11)+o<<0,s=((s+=((h=((h+=(s^((t=((t+=(o^(s|~h))+A[4]-145523070)<<6|t>>>26)+s<<0)|~o))+A[11]-1120210379)<<10|h>>>22)+t<<0)^((o=((o+=(t^(h|~s))+A[2]+718787259)<<15|o>>>17)+h<<0)|~t))+A[9]-343485551)<<21|s>>>11)+o<<0,this.first?(this.h0=t+1732584193<<0,this.h1=s-271733879<<0,this.h2=o-1732584194<<0,this.h3=h+271733878<<0,this.first=!1):(this.h0=this.h0+t<<0,this.h1=this.h1+s<<0,this.h2=this.h2+o<<0,this.h3=this.h3+h<<0)},Md5.prototype.hex=function(){this.finalize();var t=this.h0,s=this.h1,o=this.h2,h=this.h3;return HEX_CHARS[t>>4&15]+HEX_CHARS[15&t]+HEX_CHARS[t>>12&15]+HEX_CHARS[t>>8&15]+HEX_CHARS[t>>20&15]+HEX_CHARS[t>>16&15]+HEX_CHARS[t>>28&15]+HEX_CHARS[t>>24&15]+HEX_CHARS[s>>4&15]+HEX_CHARS[15&s]+HEX_CHARS[s>>12&15]+HEX_CHARS[s>>8&15]+HEX_CHARS[s>>20&15]+HEX_CHARS[s>>16&15]+HEX_CHARS[s>>28&15]+HEX_CHARS[s>>24&15]+HEX_CHARS[o>>4&15]+HEX_CHARS[15&o]+HEX_CHARS[o>>12&15]+HEX_CHARS[o>>8&15]+HEX_CHARS[o>>20&15]+HEX_CHARS[o>>16&15]+HEX_CHARS[o>>28&15]+HEX_CHARS[o>>24&15]+HEX_CHARS[h>>4&15]+HEX_CHARS[15&h]+HEX_CHARS[h>>12&15]+HEX_CHARS[h>>8&15]+HEX_CHARS[h>>20&15]+HEX_CHARS[h>>16&15]+HEX_CHARS[h>>28&15]+HEX_CHARS[h>>24&15]},Md5.prototype.toString=Md5.prototype.hex,Md5.prototype.digest=function(){this.finalize();var t=this.h0,s=this.h1,o=this.h2,h=this.h3;return[255&t,t>>8&255,t>>16&255,t>>24&255,255&s,s>>8&255,s>>16&255,s>>24&255,255&o,o>>8&255,o>>16&255,o>>24&255,255&h,h>>8&255,h>>16&255,h>>24&255]},Md5.prototype.array=Md5.prototype.digest,Md5.prototype.arrayBuffer=function(){this.finalize();var t=new ArrayBuffer(16),s=new Uint32Array(t);return s[0]=this.h0,s[1]=this.h1,s[2]=this.h2,s[3]=this.h3,t},Md5.prototype.buffer=Md5.prototype.arrayBuffer,Md5.prototype.base64=function(){for(var t,s,o,h='',f=this.array(),n=0;n<15;)t=f[n++],s=f[n++],o=f[n++],h+=BASE64_ENCODE_CHAR[t>>>2]+BASE64_ENCODE_CHAR[63&(t<<4|s>>>4)]+BASE64_ENCODE_CHAR[63&(s<<2|o>>>6)]+BASE64_ENCODE_CHAR[63&o];return t=f[n],h+=BASE64_ENCODE_CHAR[t>>>2]+BASE64_ENCODE_CHAR[t<<4&63]+'=='};var exports=createMethod();COMMON_JS?m.exports=exports:(root.md5=exports,AMD&&define(function(){return exports}))})()},764,[]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})});var u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}})});var o=r(d[3]);Object.keys(o).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return o[t]}})});var c=r(d[4]);Object.keys(c).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return c[t]}})}),r(d[5]),r(d[6])},765,[766,767,769,768,900,901,907]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.setAudioAvailable=function(n){return{type:t.SET_AUDIO_AVAILABLE,available:n}},e.setAudioMuted=function(n){var u=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return{type:t.SET_AUDIO_MUTED,ensureTrack:u,muted:n}},e.setCameraFacingMode=function(n){return{type:t.SET_CAMERA_FACING_MODE,cameraFacingMode:n}},e.setVideoAvailable=function(n){return{type:t.SET_VIDEO_AVAILABLE,available:n}},e.setVideoMuted=function(u){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n.MEDIA_TYPE.VIDEO,E=arguments.length>2&&void 0!==arguments[2]?arguments[2]:n.VIDEO_MUTISM_AUTHORITY.USER,_=arguments.length>3&&void 0!==arguments[3]&&arguments[3];return function(n,A){var T=A()['features/base/media'].video.muted,c=u?T|E:T&~E;return n({type:t.SET_VIDEO_MUTED,authority:E,mediaType:o,ensureTrack:_,muted:c})}},e.storeVideoTransform=function(n,u){return{type:t.STORE_VIDEO_TRANSFORM,streamId:n,transform:u}},e.toggleCameraFacingMode=function(){return{type:t.TOGGLE_CAMERA_FACING_MODE}};var t=r(d[0]),n=r(d[1])},766,[767,768]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.TOGGLE_CAMERA_FACING_MODE=e.STORE_VIDEO_TRANSFORM=e.SET_VIDEO_MUTED=e.SET_VIDEO_AVAILABLE=e.SET_CAMERA_FACING_MODE=e.SET_AUDIO_AVAILABLE=e.SET_AUDIO_MUTED=void 0;e.SET_AUDIO_MUTED='SET_AUDIO_MUTED';e.SET_AUDIO_AVAILABLE='SET_AUDIO_AVAILABLE';e.SET_CAMERA_FACING_MODE='SET_CAMERA_FACING_MODE';e.SET_VIDEO_AVAILABLE='SET_VIDEO_AVAILABLE';e.SET_VIDEO_MUTED='SET_VIDEO_MUTED';e.STORE_VIDEO_TRANSFORM='STORE_VIDEO_TRANSFORM';e.TOGGLE_CAMERA_FACING_MODE='TOGGLE_CAMERA_FACING_MODE'},767,[]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.VIDEO_TYPE=e.VIDEO_MUTISM_AUTHORITY=e.MEDIA_TYPE=e.CAMERA_FACING_MODE=void 0;e.CAMERA_FACING_MODE={ENVIRONMENT:'environment',USER:'user'};e.MEDIA_TYPE={AUDIO:'audio',PRESENTER:'presenter',VIDEO:'video'};e.VIDEO_MUTISM_AUTHORITY={AUDIO_ONLY:1,BACKGROUND:2,USER:4};e.VIDEO_TYPE={CAMERA:'camera',DESKTOP:'desktop'}},768,[]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},769,[770]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},770,[771]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"Audio",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(e,"Video",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(e,"VideoTrack",{enumerable:!0,get:function(){return o.default}});var n=t(r(d[1])),u=t(r(d[2])),o=t(r(d[3]))},771,[3,772,776,812]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])),n=t(r(d[2])),l=t(r(d[3])),o=t(r(d[4])),s=t(r(d[5])),f=t(r(d[6])),h=t(r(d[7])),p=t(r(d[8])),c=(function(t){function c(){return(0,u.default)(this,c),(0,l.default)(this,(0,o.default)(c).apply(this,arguments))}return(0,f.default)(c,t),(0,n.default)(c,[{key:"_soundLoadedCallback",value:function(t){t?p.default.error('Failed to load sound',t):this.setAudioElementImpl(this._sound)}},{key:"componentDidMount",value:function(){this._sound=this.props.src?new h.default(this.props.src,null,this._soundLoadedCallback.bind(this)):null}},{key:"componentWillUnmount",value:function(){this._sound&&(this._sound.release(),this._sound=null,this.setAudioElementImpl(null))}},{key:"play",value:function(){this._sound&&(this._sound.setNumberOfLoops(this.props.loop?-1:0),(0,s.default)((0,o.default)(c.prototype),"play",this).call(this))}},{key:"render",value:function(){return null}},{key:"stop",value:function(){this._sound&&this._sound.stop()}}]),c})(t(r(d[9])).default);e.default=c},772,[3,4,5,6,9,47,10,773,774,775]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=t.NativeModules.RNSound,o=n.IsAndroid,s=n.IsWindows,u=r(d[1]),h=new t.NativeEventEmitter(n),p=0;function l(t,l,y,_){var c=this,f=u(t);f?(this._filename=f.uri,y=l):(this._filename=l?l+'/'+t:t,!o||l||/^(\/|http(s?)|asset)/.test(t)||(this._filename=t.toLowerCase().replace(/\.[^.]+$/,''))),this.registerOnPlay=function(){var t=this;null==this.onPlaySubscription?s||(this.onPlaySubscription=h.addListener('onPlayChange',function(n){var o=n.isPlaying;n.playerKey===t._key&&(t._playing=!!o)})):console.warn('On Play change event listener is already registered')},this._loaded=!1,this._key=p++,this._playing=!1,this._duration=-1,this._numberOfChannels=-1,this._volume=1,this._pan=0,this._numberOfLoops=0,this._speed=1,n.prepare(this._filename,this._key,_||{},function(t,n){n&&('number'==typeof n.duration&&(c._duration=n.duration),'number'==typeof n.numberOfChannels&&(c._numberOfChannels=n.numberOfChannels)),null===t&&(c._loaded=!0,c.registerOnPlay()),y&&y(t,n)})}l.prototype.isLoaded=function(){return this._loaded},l.prototype.play=function(t){return this._loaded?n.play(this._key,function(n){return t&&t(n)}):t&&t(!1),this},l.prototype.pause=function(t){var o=this;return this._loaded&&n.pause(this._key,function(){o._playing=!1,t&&t()}),this},l.prototype.stop=function(t){var o=this;return this._loaded&&n.stop(this._key,function(){o._playing=!1,t&&t()}),this},l.prototype.reset=function(){return this._loaded&&o&&(n.reset(this._key),this._playing=!1),this},l.prototype.release=function(){return this._loaded&&(n.release(this._key),this._loaded=!1,s||null!=this.onPlaySubscription&&(this.onPlaySubscription.remove(),this.onPlaySubscription=null)),this},l.prototype.getDuration=function(){return this._duration},l.prototype.getNumberOfChannels=function(){return this._numberOfChannels},l.prototype.getVolume=function(){return this._volume},l.prototype.setVolume=function(t){return this._volume=t,this._loaded&&(o||s?n.setVolume(this._key,t,t):n.setVolume(this._key,t)),this},l.prototype.getSystemVolume=function(t){return s||n.getSystemVolume(t),this},l.prototype.setSystemVolume=function(t){return o&&n.setSystemVolume(t),this},l.prototype.getPan=function(){return this._pan},l.prototype.setPan=function(t){return this._loaded&&n.setPan(this._key,this._pan=t),this},l.prototype.getNumberOfLoops=function(){return this._numberOfLoops},l.prototype.setNumberOfLoops=function(t){return this._numberOfLoops=t,this._loaded&&(o||s?n.setLooping(this._key,!!t):n.setNumberOfLoops(this._key,t)),this},l.prototype.setSpeed=function(t){return this._speed=t,this._loaded&&(s||n.setSpeed(this._key,t)),this},l.prototype.getCurrentTime=function(t){this._loaded&&n.getCurrentTime(this._key,t)},l.prototype.setCurrentTime=function(t){return this._loaded&&n.setCurrentTime(this._key,t),this},l.prototype.setSpeakerphoneOn=function(t){o&&n.setSpeakerphoneOn(this._key,t)},l.prototype.setCategory=function(t){l.setCategory(t,!1)},l.prototype.isPlaying=function(){return this._playing},l.enable=function(t){n.enable(t)},l.enableInSilenceMode=function(t){o||s||n.enableInSilenceMode(t)},l.setActive=function(t){o||s||n.setActive(t)},l.setCategory=function(t){var o=arguments.length>1&&void 0!==arguments[1]&&arguments[1];s||n.setCategory(t,o)},l.setMode=function(t){o||s||n.setMode(t)},l.setSpeakerPhone=function(t){o||s||n.setSpeakerPhone(t)},l.MAIN_BUNDLE=n.MainBundlePath,l.DOCUMENT=n.NSDocumentDirectory,l.LIBRARY=n.NSLibraryDirectory,l.CACHES=n.NSCachesDirectory,m.exports=l},773,[17,177]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=(0,r(d[0]).getLogger)('features/base/media');e.default=t},774,[591]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=t(r(d[1])),n=t(r(d[2])),u=t(r(d[3])),o=t(r(d[4])),s=t(r(d[5])),f=t(r(d[6])),p=r(d[7]),h=t(r(d[8])),I=(function(t){function p(t){var n;return(0,l.default)(this,p),(n=(0,u.default)(this,(0,o.default)(p).call(this,t))).setAudioElementImpl=n.setAudioElementImpl.bind((0,f.default)((0,f.default)(n))),n}return(0,s.default)(p,t),(0,n.default)(p,[{key:"pause",value:function(){this._audioElementImpl&&this._audioElementImpl.pause()}},{key:"play",value:function(){this._audioElementImpl&&this._audioElementImpl.play()}},{key:"setAudioElementImpl",value:function(t){this._audioElementImpl=t;var l=this.props.setRef;'function'==typeof l&&l(t?this:null)}},{key:"setSinkId",value:function(t){this._audioElementImpl&&'function'==typeof this._audioElementImpl.setSinkId&&this._audioElementImpl.setSinkId(t).catch(function(t){return h.default.error('Error setting sink',t)})}},{key:"stop",value:function(){this._audioElementImpl&&this._audioElementImpl.stop()}}]),p})(p.Component);e.default=I},775,[3,4,5,6,9,10,8,13,774]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=n(r(d[2])),l=n(r(d[3])),u=n(r(d[4])),s=n(r(d[5])),f=n(r(d[6])),c=t(r(d[7])),p=r(d[8]),v=r(d[9]),h=n(r(d[10])),y=n(r(d[11])),b=(function(t){function n(){return(0,o.default)(this,n),(0,u.default)(this,(0,s.default)(n).apply(this,arguments))}return(0,f.default)(n,t),(0,l.default)(n,[{key:"componentDidMount",value:function(){var t=this.props.onPlaying;t&&t()}},{key:"render",value:function(){var t=this.props,n=t.onPress,o=t.stream,l=t.zoomEnabled;if(o){var u=h.default.video,s=l?'contain':u&&u.objectFit||'cover',f=c.default.createElement(p.RTCView,{mirror:this.props.mirror,objectFit:s,streamURL:o.toURL(),style:u,zOrder:this.props.zOrder});return l?c.default.createElement(y.default,{enabled:l,onPress:n,streamId:o.id,style:u},f):c.default.createElement(v.Pressable,{onPress:n},f)}return null}}]),n})(c.Component);e.default=b},776,[2,3,4,5,6,9,10,13,777,394,810,811]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.registerGlobals=function(){if('object'!=typeof navigator)throw new Error('navigator is not an object');navigator.mediaDevices||(navigator.mediaDevices={});navigator.mediaDevices.getUserMedia=s.default.getUserMedia.bind(s.default),navigator.mediaDevices.enumerateDevices=s.default.enumerateDevices.bind(s.default),g.RTCPeerConnection=n.default,g.RTCIceCandidate=u.default,g.RTCSessionDescription=o.default,g.MediaStream=c.default,g.MediaStreamTrack=l.default},Object.defineProperty(e,"RTCPeerConnection",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(e,"RTCIceCandidate",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(e,"RTCSessionDescription",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(e,"RTCView",{enumerable:!0,get:function(){return f.default}}),Object.defineProperty(e,"MediaStream",{enumerable:!0,get:function(){return c.default}}),Object.defineProperty(e,"MediaStreamTrack",{enumerable:!0,get:function(){return l.default}}),Object.defineProperty(e,"mediaDevices",{enumerable:!0,get:function(){return s.default}}),Object.defineProperty(e,"permissions",{enumerable:!0,get:function(){return b.default}});var n=t(r(d[1])),u=t(r(d[2])),o=t(r(d[3])),f=t(r(d[4])),c=t(r(d[5])),l=t(r(d[6])),s=t(r(d[7])),b=t(r(d[8]))},777,[3,778,797,796,801,783,789,806,809]); +__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]),t=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=t(r(d[2])),c=t(r(d[3])),s=t(r(d[4])),u=t(r(d[5])),f=t(r(d[6])),l=t(r(d[7])),v=t(r(d[8])),h=r(d[9]),p=t(r(d[10])),C=t(r(d[11])),_=(t(r(d[12])),t(r(d[13]))),S=t(r(d[14])),E=t(r(d[15])),I=t(r(d[16])),w=t(r(d[17])),k=t(r(d[18])),y=t(r(d[19])),D=n(r(d[20])),O=h.NativeModules.WebRTCModule,L=0,b=(function(n){function t(n){var o;return(0,c.default)(this,t),(o=(0,u.default)(this,(0,f.default)(t).call(this))).signalingState='stable',o.iceGatheringState='new',o.iceConnectionState='new',o._localStreams=[],o._remoteStreams=[],o._dataChannelIds=new Set,o._peerConnectionId=L++,O.peerConnectionInit(n,o._peerConnectionId),o._registerEvents(),o}return(0,l.default)(t,n),(0,s.default)(t,[{key:"addStream",value:function(n){-1===this._localStreams.indexOf(n)&&(O.peerConnectionAddStream(n._reactTag,this._peerConnectionId),this._localStreams.push(n))}},{key:"removeStream",value:function(n){var t=this._localStreams.indexOf(n);-1!==t&&(this._localStreams.splice(t,1),O.peerConnectionRemoveStream(n._reactTag,this._peerConnectionId))}},{key:"createOffer",value:function(n){var t=this;return new Promise(function(o,c){O.peerConnectionCreateOffer(t._peerConnectionId,D.normalizeOfferAnswerOptions(n),function(n,t){n?o(new I.default(t)):c(t)})})}},{key:"createAnswer",value:function(){var n=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return new Promise(function(o,c){O.peerConnectionCreateAnswer(n._peerConnectionId,D.normalizeOfferAnswerOptions(t),function(n,t){n?o(new I.default(t)):c(t)})})}},{key:"setConfiguration",value:function(n){O.peerConnectionSetConfiguration(n,this._peerConnectionId)}},{key:"setLocalDescription",value:function(n){var t=this;return new Promise(function(o,c){O.peerConnectionSetLocalDescription(n.toJSON?n.toJSON():n,t._peerConnectionId,function(s,u){s?(t.localDescription=n,o()):c(u)})})}},{key:"setRemoteDescription",value:function(n){var t=this;return new Promise(function(o,c){O.peerConnectionSetRemoteDescription(n.toJSON?n.toJSON():n,t._peerConnectionId,function(s,u){s?(t.remoteDescription=n,o()):c(u)})})}},{key:"addIceCandidate",value:function(n){var t=this;return new Promise(function(o,c){O.peerConnectionAddICECandidate(n.toJSON?n.toJSON():n,t._peerConnectionId,function(n){n?o():c(new Error('Failed to add ICE candidate'))})})}},{key:"getStats",value:function(n){var t=this;return new Promise(function(o,c){O.peerConnectionGetStats(n&&n.id||'',t._peerConnectionId,function(n,t){if(n)try{var s=JSON.parse(t);o(s)}catch(n){c(n)}else c(new Error(t))})})}},{key:"getLocalStreams",value:function(){return this._localStreams.slice()}},{key:"getRemoteStreams",value:function(){return this._remoteStreams.slice()}},{key:"close",value:function(){O.peerConnectionClose(this._peerConnectionId)}},{key:"_getTrack",value:function(n,t){var o=this._remoteStreams.find(function(t){return t._reactTag===n});return o&&o._tracks.find(function(n){return n.id===t})}},{key:"_unregisterEvents",value:function(){this._subscriptions.forEach(function(n){return n.remove()}),this._subscriptions=[]}},{key:"_registerEvents",value:function(){var n=this;this._subscriptions=[h.DeviceEventEmitter.addListener('peerConnectionOnRenegotiationNeeded',function(t){t.id===n._peerConnectionId&&n.dispatchEvent(new y.default('negotiationneeded'))}),h.DeviceEventEmitter.addListener('peerConnectionIceConnectionChanged',function(t){t.id===n._peerConnectionId&&(n.iceConnectionState=t.iceConnectionState,n.dispatchEvent(new y.default('iceconnectionstatechange')),'closed'===t.iceConnectionState&&n._unregisterEvents())}),h.DeviceEventEmitter.addListener('peerConnectionSignalingStateChanged',function(t){t.id===n._peerConnectionId&&(n.signalingState=t.signalingState,n.dispatchEvent(new y.default('signalingstatechange')))}),h.DeviceEventEmitter.addListener('peerConnectionAddedStream',function(t){if(t.id===n._peerConnectionId){var o=new p.default(t);n._remoteStreams.push(o),n.dispatchEvent(new C.default('addstream',{stream:o}))}}),h.DeviceEventEmitter.addListener('peerConnectionRemovedStream',function(t){if(t.id===n._peerConnectionId){var o=n._remoteStreams.find(function(n){return n._reactTag===t.streamId});if(o){var c=n._remoteStreams.indexOf(o);-1!==c&&n._remoteStreams.splice(c,1)}n.dispatchEvent(new C.default('removestream',{stream:o}))}}),h.DeviceEventEmitter.addListener('mediaStreamTrackMuteChanged',function(t){if(t.peerConnectionId===n._peerConnectionId){var o=n._getTrack(t.streamReactTag,t.trackId);if(o){o.muted=t.muted;var c=t.muted?'mute':'unmute';o.dispatchEvent(new _.default(c,{track:o}))}}}),h.DeviceEventEmitter.addListener('peerConnectionGotICECandidate',function(t){if(t.id===n._peerConnectionId){var o=new w.default(t.candidate),c=new k.default('icecandidate',{candidate:o});n.dispatchEvent(c)}}),h.DeviceEventEmitter.addListener('peerConnectionIceGatheringChanged',function(t){t.id===n._peerConnectionId&&(n.iceGatheringState=t.iceGatheringState,'complete'===n.iceGatheringState&&n.dispatchEvent(new k.default('icecandidate',null)),n.dispatchEvent(new y.default('icegatheringstatechange')))}),h.DeviceEventEmitter.addListener('peerConnectionDidOpenDataChannel',function(t){if(t.id===n._peerConnectionId){var o=t.dataChannel,c=o.id;if('number'==typeof c&&-1!==c){var s=new S.default(n._peerConnectionId,o.label,o);n._dataChannelIds.add(c),n.dispatchEvent(new E.default('datachannel',{channel:s}))}}})]}},{key:"createDataChannel",value:function(n,t){var c,s=this._dataChannelIds;if(t&&'id'in t){if('number'!=typeof(c=t.id))throw new TypeError('DataChannel id must be a number: '+c);if(s.has(c))throw new ResourceInUse('DataChannel id already in use: '+c)}else{for(c=1;c<65535&&s.has(c);++c);t=(0,o.default)({id:c},t)}return O.createDataChannel(this._peerConnectionId,n,t),s.add(c),new S.default(this._peerConnectionId,n,t)}}]),t})((0,v.default)(['connectionstatechange','icecandidate','icecandidateerror','iceconnectionstatechange','icegatheringstatechange','negotiationneeded','signalingstatechange','datachannel','addstream','removestream']));e.default=b},778,[2,3,16,4,5,6,9,10,779,17,783,791,789,792,793,795,796,797,798,799,800]); +__d(function(g,r,i,a,m,e,d){"use strict";var t=r(d[0]),n=r(d[1]),l=r(d[2]),o=t.LISTENERS,u=t.CAPTURE,f=t.BUBBLE,c=t.ATTRIBUTE,s=t.newNode,v=n.defineCustomEventTarget,h=l.createEventWrapper,E=l.STOP_IMMEDIATE_PROPAGATION_FLAG,p="undefined"!=typeof window&&void 0!==window.EventTarget,w=m.exports=function t(){if(!(this instanceof t)){if(1===arguments.length&&Array.isArray(arguments[0]))return v(t,arguments[0]);if(arguments.length>0){for(var n=Array(arguments.length),l=0;l=f.length)break;T=f[h++]}else{if((h=f.next()).done)break;T=h.value}var _=T;o.addTrack(_)}}else if(Array.isArray(t)){y.mediaStreamCreate(o.id);var b=t,p=Array.isArray(b),S=0;for(b=p?b:b["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var A;if(p){if(S>=b.length)break;A=b[S++]}else{if((S=b.next()).done)break;A=S.value}var R=A;o.addTrack(R)}}else{if(!('object'==typeof t&&t.streamId&&t.streamReactTag&&t.tracks))throw new TypeError("invalid type: "+typeof t);o.id=t.streamId,o._reactTag=t.streamReactTag;var w=t.tracks,x=Array.isArray(w),C=0;for(w=x?w:w["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var I;if(x){if(C>=w.length)break;I=w[C++]}else{if((C=w.next()).done)break;I=C.value}var M=I;o._tracks.push(new v.default(M))}}return o}return(0,f.default)(s,t),(0,o.default)(s,[{key:"addTrack",value:function(t){-1===this._tracks.indexOf(t)&&(this._tracks.push(t),y.mediaStreamAddTrack(this._reactTag,t.id))}},{key:"removeTrack",value:function(t){var n=this._tracks.indexOf(t);-1!==n&&(this._tracks.splice(n,1),y.mediaStreamRemoveTrack(this._reactTag,t.id))}},{key:"getTracks",value:function(){return this._tracks.slice()}},{key:"getTrackById",value:function(t){return this._tracks.find(function(n){return n.id===t})}},{key:"getAudioTracks",value:function(){return this._tracks.filter(function(t){return'audio'===t.kind})}},{key:"getVideoTracks",value:function(){return this._tracks.filter(function(t){return'video'===t.kind})}},{key:"clone",value:function(){throw new Error('Not implemented.')}},{key:"toURL",value:function(){return this._reactTag}},{key:"release",value:function(){y.mediaStreamRelease(this._reactTag)}}]),s})((0,l.default)(['active','inactive','addtrack','removetrack']));e.default=h},783,[3,4,5,6,9,10,17,779,784,789]); +__d(function(g,r,i,a,m,e,d){var v=r(d[0]),n=r(d[1]),o=n;o.v1=v,o.v4=n,m.exports=o},784,[785,788]); +__d(function(g,r,i,a,m,e,d){var n,o,s=r(d[0]),c=r(d[1]),v=0,l=0;m.exports=function(u,t,f){var k=t&&f||0,q=t||[],w=(u=u||{}).node||n,h=void 0!==u.clockseq?u.clockseq:o;if(null==w||null==h){var _=s();null==w&&(w=n=[1|_[0],_[1],_[2],_[3],_[4],_[5]]),null==h&&(h=o=16383&(_[6]<<8|_[7]))}var p=void 0!==u.msecs?u.msecs:(new Date).getTime(),x=void 0!==u.nsecs?u.nsecs:l+1,C=p-v+(x-l)/1e4;if(C<0&&void 0===u.clockseq&&(h=h+1&16383),(C<0||p>v)&&void 0===u.nsecs&&(x=0),x>=1e4)throw new Error('uuid.v1(): Can\'t create more than 10M uuids/sec');v=p,l=x,o=h;var D=(1e4*(268435455&(p+=122192928e5))+x)%4294967296;q[k++]=D>>>24&255,q[k++]=D>>>16&255,q[k++]=D>>>8&255,q[k++]=255&D;var E=p/4294967296*1e4&268435455;q[k++]=E>>>8&255,q[k++]=255&E,q[k++]=E>>>24&15|16,q[k++]=E>>>16&255,q[k++]=h>>>8|128,q[k++]=255&h;for(var M=0;M<6;++M)q[k+M]=w[M];return t||c(q)}},785,[786,787]); +__d(function(g,r,i,a,m,e,d){var n='undefined'!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||'undefined'!=typeof msCrypto&&'function'==typeof window.msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto);if(n){var t=new Uint8Array(16);m.exports=function(){return n(t),t}}else{var o=new Array(16);m.exports=function(){for(var n,t=0;t<16;t++)0==(3&t)&&(n=4294967296*Math.random()),o[t]=n>>>((3&t)<<3)&255;return o}}},786,[]); +__d(function(g,r,i,a,m,e,d){for(var n=[],t=0;t<256;++t)n[t]=(t+256).toString(16).substr(1);m.exports=function(t,o){var u=o||0,f=n;return[f[t[u++]],f[t[u++]],f[t[u++]],f[t[u++]],'-',f[t[u++]],f[t[u++]],'-',f[t[u++]],f[t[u++]],'-',f[t[u++]],f[t[u++]],'-',f[t[u++]],f[t[u++]],f[t[u++]],f[t[u++]],f[t[u++]],f[t[u++]]].join('')}},787,[]); +__d(function(g,r,i,a,m,e,d){var n=r(d[0]),o=r(d[1]);m.exports=function(t,f,u){var l=f&&u||0;'string'==typeof t&&(f='binary'===t?new Array(16):null,t=null);var v=(t=t||{}).random||(t.rng||n)();if(v[6]=15&v[6]|64,v[8]=63&v[8]|128,f)for(var y=0;y<16;++y)f[l+y]=v[y];return f||o(v)}},788,[786,787]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),o=t(r(d[2])),l=t(r(d[3])),u=t(r(d[4])),s=t(r(d[5])),c=r(d[6]),f=t(r(d[7])),h=(t(r(d[8])),c.NativeModules.WebRTCModule),v=(function(t){function c(t){var o;(0,n.default)(this,c),o=(0,l.default)(this,(0,u.default)(c).call(this));var s=t.readyState.toLowerCase();return o._enabled=t.enabled,o.id=t.id,o.kind=t.kind,o.label=t.label,o.muted=!1,o.readonly=!0,o.remote=t.remote,o.readyState="initializing"===s||"live"===s?"live":"ended",o}return(0,s.default)(c,t),(0,o.default)(c,[{key:"stop",value:function(){h.mediaStreamTrackSetEnabled(this.id,!1),this.readyState='ended'}},{key:"_switchCamera",value:function(){if(this.remote)throw new Error('Not implemented for remote tracks');if('video'!==this.kind)throw new Error('Only implemented for video tracks');h.mediaStreamTrackSwitchCamera(this.id)}},{key:"applyConstraints",value:function(){throw new Error('Not implemented.')}},{key:"clone",value:function(){throw new Error('Not implemented.')}},{key:"getCapabilities",value:function(){throw new Error('Not implemented.')}},{key:"getConstraints",value:function(){throw new Error('Not implemented.')}},{key:"getSettings",value:function(){throw new Error('Not implemented.')}},{key:"release",value:function(){h.mediaStreamTrackRelease(this.id)}},{key:"enabled",get:function(){return this._enabled},set:function(t){t!==this._enabled&&(h.mediaStreamTrackSetEnabled(this.id,!this._enabled),this._enabled=!this._enabled,this.muted=!this._enabled)}}]),c})((0,f.default)(['ended','mute','unmute','overconstrained']));e.default=v},789,[3,4,5,6,9,10,17,779,790]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])),f=t(r(d[2]));e.default=function t(l,n){(0,f.default)(this,t),this.type=l.toString(),(0,u.default)(this,n)}},790,[3,16,4]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])),f=t(r(d[2]));e.default=function t(l,n){(0,f.default)(this,t),this.type=l.toString(),(0,u.default)(this,n)}},791,[3,16,4]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])),f=t(r(d[2]));e.default=function t(l,n){(0,f.default)(this,t),this.type=l.toString(),(0,u.default)(this,n)}},792,[3,16,4]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),o=t(r(d[2])),s=t(r(d[3])),f=t(r(d[4])),u=t(r(d[5])),l=t(r(d[6])),c=r(d[7]),h=t(r(d[8])),y=t(r(d[9])),p=t(r(d[10])),v=t(r(d[11])),b=c.NativeModules.WebRTCModule,_=((function(t){function n(){return(0,o.default)(this,n),(0,s.default)(this,(0,f.default)(n).apply(this,arguments))}(0,u.default)(n,t)})((0,l.default)(Error)),(function(t){function l(t,n,u){var c;return(0,o.default)(this,l),(c=(0,s.default)(this,(0,f.default)(l).call(this))).binaryType='arraybuffer',c.bufferedAmount=0,c.bufferedAmountLowThreshold=0,c.maxPacketLifeTime=null,c.maxRetransmits=null,c.negotiated=!1,c.ordered=!0,c.protocol='',c.readyState='connecting',c._peerConnectionId=t,c.label=n,c.id='id'in u?u.id:-1,c.ordered=!!u.ordered,c.maxPacketLifeTime=u.maxPacketLifeTime,c.maxRetransmits=u.maxRetransmits,c.protocol=u.protocol||'',c.negotiated=!!u.negotiated,c._registerEvents(),c}return(0,u.default)(l,t),(0,n.default)(l,[{key:"send",value:function(t){if('string'!=typeof t){if(ArrayBuffer.isView(t))t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength);else{if(!(t instanceof ArrayBuffer))throw new TypeError('Data must be either string, ArrayBuffer, or ArrayBufferView');t=new Uint8Array(t)}b.dataChannelSend(this._peerConnectionId,this.id,h.default.fromByteArray(t),'binary')}else b.dataChannelSend(this._peerConnectionId,this.id,t,'text')}},{key:"close",value:function(){'closing'!==this.readyState&&'closed'!==this.readyState&&(this.readyState='closing',b.dataChannelClose(this._peerConnectionId,this.id))}},{key:"_unregisterEvents",value:function(){this._subscriptions.forEach(function(t){return t.remove()}),this._subscriptions=[]}},{key:"_registerEvents",value:function(){var t=this;this._subscriptions=[c.DeviceEventEmitter.addListener('dataChannelStateChanged',function(n){n.peerConnectionId===t._peerConnectionId&&n.id===t.id&&(t.readyState=n.state,'open'===t.readyState?t.dispatchEvent(new v.default('open',{channel:t})):'close'===t.readyState&&(t.dispatchEvent(new v.default('close',{channel:t})),t._unregisterEvents()))}),c.DeviceEventEmitter.addListener('dataChannelReceiveMessage',function(n){if(n.peerConnectionId===t._peerConnectionId&&n.id===t.id){var o=n.data;'binary'===n.type&&(o=h.default.toByteArray(n.data).buffer),t.dispatchEvent(new p.default('message',{data:o}))}})]}}]),l})((0,y.default)(['open','message','bufferedamountlow','close','error'])));e.default=_},793,[3,5,4,6,9,10,98,17,126,779,794,795]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])),f=t(r(d[2]));e.default=function t(l,n){(0,f.default)(this,t),this.type=l.toString(),(0,u.default)(this,n)}},794,[3,16,4]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])),f=t(r(d[2]));e.default=function t(l,n){(0,f.default)(this,t),this.type=l.toString(),(0,u.default)(this,n)}},795,[3,16,4]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])),s=t(r(d[2])),n=(function(){function t(s){(0,u.default)(this,t),this.sdp=s.sdp,this.type=s.type}return(0,s.default)(t,[{key:"toJSON",value:function(){return{sdp:this.sdp,type:this.type}}}]),t})();e.default=n},796,[3,4,5]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),s=t(r(d[2])),u=(function(){function t(s){(0,n.default)(this,t),this.candidate=s.candidate,this.sdpMLineIndex=s.sdpMLineIndex,this.sdpMid=s.sdpMid}return(0,s.default)(t,[{key:"toJSON",value:function(){return{candidate:this.candidate,sdpMLineIndex:this.sdpMLineIndex,sdpMid:this.sdpMid}}}]),t})();e.default=u},797,[3,4,5]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1]));e.default=function t(u,c){(0,n.default)(this,t),this.type=u.toString(),this.candidate=null,c&&c.candidate&&(this.candidate=c.candidate)}},798,[3,4]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])),f=t(r(d[2]));e.default=function t(l,n){(0,f.default)(this,t),this.type=l.toString(),(0,u.default)(this,n)}},799,[3,16,4]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.normalizeOfferAnswerOptions=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o={};if(!t)return o;t.mandatory&&(t=t.mandatory);for(var f=Object.entries(t),c=0;c0&&void 0!==arguments[0]?arguments[0]:{};if('object'!=typeof o)return Promise.reject(new TypeError('constraints is not a dictionary'));if(!(void 0!==o.audio&&o.audio||void 0!==o.video&&o.video))return Promise.reject(new TypeError('audio and/or video is required'));var t=[];(o=u.normalizeConstraints(o)).audio?t.push(v.default.request({name:'microphone'})):t.push(Promise.resolve(!1));o.video?t.push(v.default.request({name:'camera'})):t.push(Promise.resolve(!1));return new Promise(function(s,u){Promise.all(t).then(function(t){var v=(0,n.default)(t,2),p=v[0],h=v[1];if(p||h){p||delete o.audio,h||delete o.video;f.getUserMedia(o,function(o,t){var n={streamId:o,streamReactTag:o,tracks:t};s(new c.default(n))},function(o,t){var n;switch(o){case'TypeError':n=new TypeError(t)}n||(n=new l.default({message:t,name:o}));u(n)})}else{u(new l.default({message:'Permission denied.',name:'SecurityError'}))}})})};var n=t(r(d[2])),s=r(d[3]),u=o(r(d[4])),c=t(r(d[5])),l=t(r(d[6])),v=t(r(d[7])),f=s.NativeModules.WebRTCModule},807,[2,3,26,17,800,783,808,809]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var s=t(r(d[1]));e.default=function t(n){(0,s.default)(this,t),this.name=n.name,this.message=n.message,this.constraintName=n.constraintName}},808,[3,4]); +__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=n(r(d[1])),o=n(r(d[2])),s=r(d[3]),u=s.NativeModules.WebRTCModule,P=new((function(){function n(){(0,t.default)(this,n),this.RESULT={DENIED:'denied',GRANTED:'granted',PROMPT:'prompt'},this.VALID_PERMISSIONS=['camera','microphone'],this._lastReq=Promise.resolve()}return(0,o.default)(n,[{key:"_requestPermissionAndroid",value:function(n){return new Promise(function(t,o){s.PermissionsAndroid.request(n).then(function(n){return t(!0===n||n===s.PermissionsAndroid.RESULTS.GRANTED)},function(){return t(!1)})})}},{key:"_validatePermissionDescriptior",value:function(n){if("object"!=typeof n)throw new TypeError("Argument 1 of Permissions.query is not an object.");if(void 0===n.name)throw new TypeError("Missing required 'name' member of PermissionDescriptor.");if(-1===this.VALID_PERMISSIONS.indexOf(n.name))throw new TypeError("'name' member of PermissionDescriptor is not a valid value for enumeration PermissionName.")}},{key:"query",value:function(n){var t=this;try{this._validatePermissionDescriptior(n)}catch(n){return Promise.reject(n)}if('android'===s.Platform.OS){var o='camera'===n.name?s.PermissionsAndroid.PERMISSIONS.CAMERA:s.PermissionsAndroid.PERMISSIONS.RECORD_AUDIO;return new Promise(function(n,u){s.PermissionsAndroid.check(o).then(function(o){return n(o?t.RESULT.GRANTED:t.RESULT.PROMPT)},function(){return n(t.RESULT.PROMPT)})})}return'ios'===s.Platform.OS?u.checkPermission(n.name):Promise.reject(new TypeError("Unsupported platform."))}},{key:"request",value:function(n){var t=this;try{this._validatePermissionDescriptior(n)}catch(n){return Promise.reject(n)}if('android'===s.Platform.OS){var o='camera'===n.name?s.PermissionsAndroid.PERMISSIONS.CAMERA:s.PermissionsAndroid.PERMISSIONS.RECORD_AUDIO,P=function(){return t._requestPermissionAndroid(o)};return this._lastReq=this._lastReq.then(P,P),this._lastReq}return'ios'===s.Platform.OS?u.requestPermission(n.name):Promise.reject(new TypeError("Unsupported platform."))}}]),n})());e.default=P},809,[3,4,5,17]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=r(d[0]).StyleSheet.create({videoTranformedView:{flex:1},videoTransformedViewContainer:{overflow:'hidden'},video:{flex:1}});e.default=o},810,[17]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var s=n(r(d[2])),o=n(r(d[3])),l=n(r(d[4])),u=n(r(d[5])),h=n(r(d[6])),f=n(r(d[7])),c=n(r(d[8])),v=n(r(d[9])),p=t(r(d[10])),_=r(d[11]),y=r(d[12]),P=r(d[13]),T=n(r(d[14])),S={scale:1,translateX:0,translateY:0},R=5,M=(function(t){function n(t){var s;return(0,l.default)(this,n),(s=(0,h.default)(this,(0,f.default)(n).call(this,t))).state={layout:null,transform:s._getSavedTransform(t.streamId)||S},s._didMove=s._didMove.bind((0,v.default)((0,v.default)(s))),s._getTransformStyle=s._getTransformStyle.bind((0,v.default)((0,v.default)(s))),s._onGesture=s._onGesture.bind((0,v.default)((0,v.default)(s))),s._onLayout=s._onLayout.bind((0,v.default)((0,v.default)(s))),s._onMoveShouldSetPanResponder=s._onMoveShouldSetPanResponder.bind((0,v.default)((0,v.default)(s))),s._onPanResponderGrant=s._onPanResponderGrant.bind((0,v.default)((0,v.default)(s))),s._onPanResponderMove=s._onPanResponderMove.bind((0,v.default)((0,v.default)(s))),s._onPanResponderRelease=s._onPanResponderRelease.bind((0,v.default)((0,v.default)(s))),s._onStartShouldSetPanResponder=s._onStartShouldSetPanResponder.bind((0,v.default)((0,v.default)(s))),s.moveThreshold=_.PixelRatio.get()*R,s.gestureHandlers=_.PanResponder.create({onPanResponderGrant:s._onPanResponderGrant,onPanResponderMove:s._onPanResponderMove,onPanResponderRelease:s._onPanResponderRelease,onPanResponderTerminationRequest:function(){return!0},onMoveShouldSetPanResponder:s._onMoveShouldSetPanResponder,onShouldBlockNativeResponder:function(){return!1},onStartShouldSetPanResponder:s._onStartShouldSetPanResponder}),s}return(0,c.default)(n,t),(0,u.default)(n,[{key:"componentDidUpdate",value:function(t,n){t.streamId!==this.props.streamId&&(this._storeTransform(t.streamId,n.transform),this._restoreTransform(this.props.streamId))}},{key:"componentWillUnmount",value:function(){this._storeTransform(this.props.streamId,this.state.transform)}},{key:"render",value:function(){var t=this.props,n=t.children,s=t.style;return p.default.createElement(_.View,(0,o.default)({onLayout:this._onLayout,pointerEvents:"box-only",style:[T.default.videoTransformedViewContainer,s]},this.gestureHandlers.panHandlers),p.default.createElement(_.View,{style:[T.default.videoTranformedView,this._getTransformStyle()]},n))}},{key:"_calculateTransformIncrement",value:function(t){var n=this.state.transform,s=n.scale,o=n.translateX,l=n.translateY,u=t.scale,h=t.translateX,f=t.translateY;return{scale:s=Math.min(s*(u||1),5),translateX:o+=(h||0)/s,translateY:l+=(f||0)/s}}},{key:"_didMove",value:function(t){var n=t.dx,s=t.dy;return Math.abs(n)>this.moveThreshold||Math.abs(s)>this.moveThreshold}},{key:"_getSavedTransform",value:function(t){var n=this.props,s=n.enabled,o=n._transforms;return s&&o[t]||null}},{key:"_getTouchDistance",value:function(t){var n=t.nativeEvent.touches,s=Math.abs(n[0].pageX-n[1].pageX),o=Math.abs(n[0].pageY-n[1].pageY);return Math.sqrt(Math.pow(s,2)+Math.pow(o,2))}},{key:"_getTouchPosition",value:function(t){var n=t.nativeEvent.touches;return{x:n[0].pageX,y:n[0].pageY}}},{key:"_getTransformStyle",value:function(){if(!this.props.enabled)return null;var t=this.state.transform;return{transform:[{scale:t.scale},{translateX:t.translateX},{translateY:t.translateY}]}}},{key:"_limitAndApplyTransformation",value:function(t){var n=this.state.layout;if(n){var s=this.state.transform.scale,o=t.scale,l=t.translateX,u=t.translateY,h=Math.max(o,1),f={a:{x:n.x,y:n.y},d:{x:n.x+n.width,y:n.y+n.height}},c={x:(n.x+n.width)/2+l*h,y:(n.y+n.height)/2+u*h},v={height:n.height*h,width:n.width*h},p={a:{x:c.x-v.width/2,y:c.y-v.height/2},d:{x:c.x+v.width/2,y:c.y+v.height/2}},_=100;o0&&void 0!==arguments[0]?arguments[0]:{};return function(n,c){var o=t.devices||[u.MEDIA_TYPE.AUDIO,u.MEDIA_TYPE.VIDEO],s={dispatch:n,getState:c},l=function(o){if((0,T.getLocalTrack)(c()['features/base/tracks'],o,!0))throw new Error("Local track for "+o+" already exists");var l=(0,T.createLocalTracksF)({cameraDeviceId:t.cameraDeviceId,devices:[o],facingMode:t.facingMode||u.CAMERA_FACING_MODE.USER,micDeviceId:t.micDeviceId},!1,s).then(function(t){if(1!==t.length)throw new Error("Expected exactly 1 track, but was given "+t.length+" tracks for device: "+o+".");return l.canceled?I(t).then(function(){return n(N(o))}):n(k(t[0]))},function(t){return n(l.canceled?N(o):S(t,o))});l.cancel=function(){return l.canceled=!0,l},n({type:f.TRACK_WILL_CREATE,track:{gumProcess:l,local:!0,mediaType:o}})},E=o,A=Array.isArray(E),D=0;for(E=A?E:E["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var v;if(A){if(D>=E.length)break;v=E[D++]}else{if((D=E.next()).done)break;v=D.value}l(v)}}}function A(t){return{type:f.TRACK_NO_DATA_FROM_SOURCE,track:t}}function D(t){return function(n,c){var u,s=(0,T.getTrackByJitsiTrack)(c()['features/base/tracks'],t);if(s){if(s.isReceivingData)u=void 0;else{var f=(0,o.showErrorNotification)({descriptionKey:'dialog.cameraNotSendingData',titleKey:'dialog.cameraNotSendingDataTitle'});n(f),u={uid:f.uid}}n(_(t,u))}}}function k(t){return function(n,T){t.on(c.JitsiTrackEvents.TRACK_MUTE_CHANGED,function(){return n(v(t))}),t.on(c.JitsiTrackEvents.TRACK_VIDEOTYPE_CHANGED,function(c){return n(R(t,c))});var l,E,k,_=t.isLocal(),p=t.getType();if(_){n(h());var y=(0,s.getLocalParticipant)(T);if(y&&(k=y.id),l=t.isReceivingData(),t.on(c.JitsiTrackEvents.NO_DATA_FROM_SOURCE,function(){return n(A({jitsiTrack:t}))}),!l)if(p===u.MEDIA_TYPE.AUDIO){var C=(0,o.showNotification)({descriptionKey:'dialog.micNotSendingData',titleKey:'dialog.micNotSendingDataTitle'});n(C),n(h(C.uid)),E={uid:C.uid}}else{E={timeout:setTimeout(function(){return n(D(t))},5e3)}}}else k=t.getParticipantId(),l=!0;return n({type:f.TRACK_ADDED,track:{jitsiTrack:t,isReceivingData:l,local:_,mediaType:p,mirror:O(t),muted:t.isMuted(),noDataFromSourceNotificationInfo:E,participantId:k,videoStarted:!1,videoType:t.videoType}})}}function v(t){return{type:f.TRACK_UPDATED,track:{jitsiTrack:t,muted:t.isMuted()}}}function _(t,n){return{type:f.TRACK_UPDATED,track:{jitsiTrack:t,noDataFromSourceNotificationInfo:n}}}function p(t){return t.removeAllListeners(c.JitsiTrackEvents.TRACK_MUTE_CHANGED),t.removeAllListeners(c.JitsiTrackEvents.TRACK_VIDEOTYPE_CHANGED),t.removeAllListeners(c.JitsiTrackEvents.NO_DATA_FROM_SOURCE),{type:f.TRACK_REMOVED,track:{jitsiTrack:t}}}function R(t,n){return{type:f.TRACK_UPDATED,track:{jitsiTrack:t,videoType:n}}}function y(t){var n=function(t){return l.default.error('gumProcess.cancel failed',JSON.stringify(t))};return Promise.all(t()['features/base/tracks'].filter(function(t){return t.local}).map(function(t){var c=t.gumProcess;return c&&c.cancel().catch(n)}))}function C(t){return function(n){return I(t).then(function(){return Promise.all(t.map(function(t){return n(p(t))}))})}}function I(t){return Promise.all(t.map(function(t){return t.dispose().catch(function(t){if(t.name!==c.JitsiTrackErrors.TRACK_IS_DISPOSED)throw t})}))}function S(t,n){var c=t.gum;return function(t){if(c){var o=c.error;o&&t({type:f.TRACK_CREATE_ERROR,permissionDenied:'SecurityError'===o.name,trackType:n})}}}function O(t){return t&&t.isLocal()&&t.isVideoTrack()&&t.getCameraFacingMode()===u.CAMERA_FACING_MODE.USER}function N(t){return{type:f.TRACK_CREATE_CANCELED,trackType:t}}function h(t){return{type:f.SET_NO_SRC_DATA_NOTIFICATION_UID,uid:t}}},815,[3,385,388,602,765,547,816,817,897]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.TRACK_WILL_CREATE=e.TRACK_UPDATED=e.TRACK_REMOVED=e.TRACK_NO_DATA_FROM_SOURCE=e.TRACK_CREATE_ERROR=e.TRACK_CREATE_CANCELED=e.TRACK_ADDED=e.TOGGLE_SCREENSHARING=e.SET_NO_SRC_DATA_NOTIFICATION_UID=void 0;e.SET_NO_SRC_DATA_NOTIFICATION_UID='SET_NO_SRC_DATA_NOTIFICATION_UID';e.TOGGLE_SCREENSHARING='TOGGLE_SCREENSHARING';e.TRACK_ADDED='TRACK_ADDED';e.TRACK_CREATE_CANCELED='TRACK_CREATE_CANCELED';e.TRACK_CREATE_ERROR='TRACK_CREATE_ERROR';e.TRACK_NO_DATA_FROM_SOURCE='TRACK_NO_DATA_FROM_SOURCE';e.TRACK_REMOVED='TRACK_REMOVED';e.TRACK_UPDATED='TRACK_UPDATED';e.TRACK_WILL_CREATE='TRACK_WILL_CREATE'},816,[]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.createLocalPresenterTrack=function(t,n){var f,l,E,T,v,k,I;return c.default.async(function(p){for(;;)switch(p.prev=p.next){case 0:return f=t.cameraDeviceId,l=5,E=[180,270,360,540,720].find(function(t){return n/l0&&void 0!==arguments[0]?arguments[0]:{},c=arguments.length>1?arguments[1]:void 0,o=arguments.length>2?arguments[2]:void 0,s=n.cameraDeviceId,T=n.micDeviceId;if('undefined'!=typeof APP){o||(o=APP.store);var v=o.getState();void 0!==s&&null!==s||(s=(0,f.getUserSelectedCameraDeviceId)(v)),void 0!==T&&null!==T||(T=(0,f.getUserSelectedMicDeviceId)(v))}var k=o.getState(),I=k['features/base/config'],p=I.desktopSharingFrameRate,D=I.firefox_fake_device,P=I.resolution,S=null!=(t=n.constraints)?t:k['features/base/config'].constraints;return(0,l.default)(o).then(function(t){var o=t.filter(function(t){return Boolean(t)});return u.default.createLocalTracks({cameraDeviceId:s,constraints:S,desktopSharingExtensionExternalInstallation:n.desktopSharingExtensionExternalInstallation,desktopSharingFrameRate:p,desktopSharingSourceDevice:n.desktopSharingSourceDevice,desktopSharingSources:n.desktopSharingSources,devices:n.devices.slice(0),effects:o,firefox_fake_device:D,micDeviceId:T,resolution:P},c).catch(function(t){return E.default.error('Failed to create local tracks',n.devices,t),Promise.reject(t)})})},e.getLocalAudioTrack=function(t){return T(t,s.MEDIA_TYPE.AUDIO)},e.getLocalTrack=T,e.getLocalTracks=v,e.getLocalVideoTrack=function(t){return T(t,s.MEDIA_TYPE.VIDEO)},e.getLocalVideoType=function(t){return T(t,s.MEDIA_TYPE.PRESENTER)?s.MEDIA_TYPE.PRESENTER:s.MEDIA_TYPE.VIDEO},e.getTrackByMediaTypeAndParticipant=k,e.getTrackByJitsiTrack=function(t,n){return t.find(function(t){return t.jitsiTrack===n})},e.getTracksByMediaType=function(t,n){return t.filter(function(t){return t.mediaType===n})},e.isLocalVideoTrackMuted=function(t){var n=T(t,s.MEDIA_TYPE.PRESENTER),c=T(t,s.MEDIA_TYPE.VIDEO);if(n)return I(t,s.MEDIA_TYPE.PRESENTER);if(c)return'camera'!==c.videoType||I(t,s.MEDIA_TYPE.VIDEO);return!0},e.isLocalTrackMuted=I,e.isRemoteTrackMuted=function(t,n,c){var o=k(t,n,c);return!o||o.muted},e.isUserInteractionRequiredForUnmute=function(t){return u.browser.isUserInteractionRequiredForUnmute()&&window&&window.self!==window.top&&!t['features/base/user-interaction'].interacted},e.setTrackMuted=function(t,n){if(n=Boolean(n),t.isMuted()===n)return Promise.resolve();var c=n?'mute':'unmute';return t[c]().catch(function(t){t.name!==u.JitsiTrackErrors.TRACK_IS_DISPOSED&&E.default.error("set track "+c+" failed",t)})};var c=n(r(d[2])),o=n(r(d[3])),u=t(r(d[4])),s=r(d[5]),f=r(d[6]),l=n(r(d[7])),E=n(r(d[8]));function T(t,n){return v(t,arguments.length>2&&void 0!==arguments[2]&&arguments[2]).find(function(t){return t.mediaType===n})}function v(t){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return t.filter(function(t){return t.local&&(t.jitsiTrack||n)})}function k(t,n,c){return t.find(function(t){return t.participantId===c&&t.mediaType===n})}function I(t,n){var c=T(t,n);return!c||c.muted}},817,[2,3,268,26,388,765,818,896,897]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})});var u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}})});var o=r(d[3]);Object.keys(o).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return o[t]}})}),r(d[4]),r(d[5])},818,[819,820,821,822,883,891]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.updateSettings=function(n){return{type:t.SETTINGS_UPDATED,settings:n}};var t=r(d[0])},819,[820]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.SETTINGS_UPDATED=void 0;e.SETTINGS_UPDATED='SETTINGS_UPDATED'},820,[]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.DEFAULT_SERVER_URL=void 0;e.DEFAULT_SERVER_URL='https://meet.jit.si'},821,[]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var n={handleCallIntegrationChange:!0};e.handleCallIntegrationChange=function(n){c.setUseConnectionService&&c.setUseConnectionService(!n)};var t=r(d[0]),o=r(d[1]);Object.keys(o).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(n,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return o[t]}}))});var c=t.NativeModules.AudioMode},822,[17,823]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.getPropertyValue=function(t,v,n){n=(0,c.default)({config:!0,jwt:!0,settings:!0,urlParams:!0},n);var l=(0,u.toState)(t);if(n.jwt){var f=l['features/base/jwt'][v];if(void 0!==f)return f[v]}if(n.urlParams&&-1!==s.CONFIG_WHITELIST.indexOf(v)){var o=(0,s.parseURLParams)(l['features/base/connection'].locationURL),b=o["config."+v];if(void 0!==b)return b}if(n.settings){var D=l['features/base/settings'][v];if(void 0!==D)return D}if(n.config){var S=l['features/base/config'][v];if(void 0!==S)return S}return},e.getServerURL=function(t){return(0,u.toState)(t)['features/base/settings'].serverURL||v.DEFAULT_SERVER_URL},e.getUserSelectedCameraDeviceId=function(t){var c=(0,u.toState)(t),s=c['features/base/settings'],v=s.userSelectedCameraDeviceId,l=s.userSelectedCameraDeviceLabel;return n({availableDevices:c['features/base/devices'].availableDevices.videoInput,matchRegex:/\s#\d*(?!.*\s#\d*)/,userSelectedDeviceId:v,userSelectedDeviceLabel:l,replacement:''})},e.getUserSelectedMicDeviceId=function(t){var c=(0,u.toState)(t),s=c['features/base/settings'],v=s.userSelectedMicDeviceId,l=s.userSelectedMicDeviceLabel;return n({availableDevices:c['features/base/devices'].availableDevices.audioInput,matchRegex:/\s\(\d*-\s(?!.*\s\(\d*-\s)/,userSelectedDeviceId:v,userSelectedDeviceLabel:l,replacement:' ('})},e.getUserSelectedOutputDeviceId=function(t){var c=(0,u.toState)(t),s=c['features/base/settings'],v=s.userSelectedAudioOutputDeviceId,l=s.userSelectedAudioOutputDeviceLabel;return n({availableDevices:c['features/base/devices'].availableDevices.audioOutput,matchRegex:void 0,userSelectedDeviceId:v,userSelectedDeviceLabel:l,replacement:void 0})};var c=t(r(d[1])),s=r(d[2]),u=r(d[3]),v=r(d[4]);function n(t){var c=t.availableDevices,s=t.matchRegex,u=t.userSelectedDeviceId,v=t.userSelectedDeviceLabel,n=t.replacement;if(!v||!u)return u;if(c.find(function(t){return t.deviceId===u}))return u;var l=s?v.replace(s,n):v,f=c.find(function(t){var c=t.label;if(!c)return!1;if(l===c)return!0;var u=c.replace(s,n);return l===u});return f?f.deviceId:u}},823,[3,54,824,549,821]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0});var n={CONFIG_WHITELIST:!0};Object.defineProperty(e,"CONFIG_WHITELIST",{enumerable:!0,get:function(){return u.default}});var o=r(d[1]);Object.keys(o).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(n,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return o[t]}}))});var c=r(d[2]);Object.keys(c).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(n,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return c[t]}}))});var u=t(r(d[3])),f=r(d[4]);Object.keys(f).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(n,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return f[t]}}))}),r(d[5]),r(d[6])},824,[3,825,871,875,873,881,882]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.configWillLoad=function(n,o){return{type:t.CONFIG_WILL_LOAD,locationURL:n,room:o}},e.loadConfigError=function(n,o){return{type:t.LOAD_CONFIG_ERROR,error:n,locationURL:o}},e.setConfig=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return function(o,c){var u=c()['features/base/connection'].locationURL;u&&(0,f.setConfigFromURLParams)(n,window.interfaceConfig,window.loggingConfig,u),o({type:t.SET_CONFIG,config:n})}},e.storeConfig=function(t,f){return function(u){var l=!1;try{void 0!==window.config&&window.config===f||(window.localStorage.setItem(c._CONFIG_STORE_PREFIX+"/"+t,JSON.stringify(f)),l=!0)}catch(n){}if(l)try{u((0,n.addKnownDomains)((0,o.parseURIString)(t).host))}catch(n){}return l}};var n=r(d[0]),o=r(d[1]),t=r(d[2]),c=r(d[3]),f=r(d[4])},825,[826,860,871,872,873]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})}),r(d[2]),r(d[3])},826,[827,828,829,870]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.addKnownDomains=function(o){return{type:n.ADD_KNOWN_DOMAINS,knownDomains:'string'==typeof o?[o]:o}};var n=r(d[0])},827,[828]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.ADD_KNOWN_DOMAINS=void 0;e.ADD_KNOWN_DOMAINS='ADD_KNOWN_DOMAINS'},828,[]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]),o=r(d[2]),s=r(d[3]),c=r(d[4]),u=r(d[5]);function f(t){var n,o=t.dispatch,s=(0,t.getState)()['features/base/connection'].locationURL;s&&(n=s.host)&&o((0,u.addKnownDomains)(n))}s.MiddlewareRegistry.register(function(s){return function(h){return function(R){var _,p,w,L,S=h(R);switch(R.type){case n.APP_WILL_MOUNT:p=(_=s).dispatch,w=_.getState,L=(0,c.parseURIString)((0,t.getDefaultURL)(w)),p((0,u.addKnownDomains)(L.host));break;case o.SET_ROOM:f(s)}return S}}})},829,[381,830,383,549,860,827]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})});var u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}})});var o=r(d[3]);Object.keys(o).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return o[t]}})}),r(d[4])},830,[831,832,833,858,859]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.appWillMount=function(t){return function(p){'object'==typeof APP&&APP.API.init(),p({type:n.APP_WILL_MOUNT,app:t})}},e.appWillUnmount=function(t){return{type:n.APP_WILL_UNMOUNT,app:t}};var n=r(d[0])},831,[832]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.APP_WILL_UNMOUNT=e.APP_WILL_MOUNT=void 0;e.APP_WILL_MOUNT='APP_WILL_MOUNT';e.APP_WILL_UNMOUNT='APP_WILL_UNMOUNT'},832,[]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"BaseApp",{enumerable:!0,get:function(){return n.default}});var n=t(r(d[1]))},833,[3,834]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=n(r(d[2])),u=n(r(d[3])),l=n(r(d[4])),s=n(r(d[5])),c=n(r(d[6])),f=n(r(d[7])),v=t(r(d[8])),h=r(d[9]),p=r(d[10]),y=r(d[11]),_=n(r(d[12])),P=r(d[13]),E=r(d[14]),w=r(d[15]),S=r(d[16]),k=r(d[17]),M=n(r(d[18])),R=(function(t){function n(t){var u;return(0,o.default)(this,n),(u=(0,l.default)(this,(0,s.default)(n).call(this,t))).state={route:{},store:void 0},u}return(0,c.default)(n,t),(0,u.default)(n,[{key:"componentDidMount",value:function(){var t=this;this._init=this._initStorage().catch(function(t){M.default.error(t)}).then(function(){return new Promise(function(n){t.setState({store:t._createStore()},n)})}).then(function(){return t.state.store.dispatch((0,k.appWillMount)(t))}).catch(function(t){M.default.error(t)})}},{key:"componentWillUnmount",value:function(){this.state.store.dispatch((0,k.appWillUnmount)(this))}},{key:"_initStorage",value:function(){return window.localStorage._initializing||Promise.resolve()}},{key:"render",value:function(){var t=this.state,n=t.route.component,o=t.store;return o?v.default.createElement(h.I18nextProvider,{i18n:P.i18next},v.default.createElement(p.Provider,{store:o},v.default.createElement(v.Fragment,null,this._createMainElement(n),v.default.createElement(w.SoundCollection,null),this._createExtraElement(),this._renderDialogContainer()))):null}},{key:"_createExtraElement",value:function(){return null}},{key:"_createMainElement",value:function(t,n){return t?v.default.createElement(t,n||{}):null}},{key:"_createStore",value:function(){var t,n=E.ReducerRegistry.combineReducers(),o=E.MiddlewareRegistry.applyMiddleware(_.default);'object'==typeof window&&(t=window.devToolsExtension)&&(o=(0,y.compose)(o,t()));var u=(0,y.createStore)(n,S.PersistenceRegistry.getPersistedState(),o);return E.StateListenerRegistry.subscribe(u),'undefined'!=typeof APP&&(APP.store=u),u}},{key:"_navigate",value:function(t){var n=this;return f.default.isEqual(t,this.state.route)?Promise.resolve():t.href?(window.location.href=t.href,Promise.resolve()):new Promise(function(o){n.setState({route:t},o)})}}]),n})(v.Component);e.default=R},834,[2,3,4,5,6,9,10,551,13,725,552,571,835,622,549,836,845,831,857]); +__d(function(g,r,i,a,m,e,d){'use strict';function t(t){return function(n){var u=n.dispatch,c=n.getState;return function(n){return function(f){return'function'==typeof f?f(u,c,t):n(f)}}}}e.__esModule=!0;var n=t();n.withExtraArgument=t,e.default=n},835,[]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})});var u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}})}),r(d[3]),r(d[4])},836,[837,838,840,842,844]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e._addAudioElement=function(t,u){return{type:n._ADD_AUDIO_ELEMENT,audioElement:u,soundId:t}},e._removeAudioElement=function(t){return{type:n._REMOVE_AUDIO_ELEMENT,soundId:t}},e.playSound=function(t){return{type:n.PLAY_SOUND,soundId:t}},e.registerSound=function(u,o){var _=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return{type:n.REGISTER_SOUND,soundId:u,src:(0,t.getSoundsPath)()+"/"+o,options:_}},e.stopSound=function(t){return{type:n.STOP_SOUND,soundId:t}},e.unregisterSound=function(t){return{type:n.UNREGISTER_SOUND,soundId:t}};var n=r(d[0]),t=r(d[1])},837,[838,839]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.UNREGISTER_SOUND=e.STOP_SOUND=e.REGISTER_SOUND=e.PLAY_SOUND=e._REMOVE_AUDIO_ELEMENT=e._ADD_AUDIO_ELEMENT=void 0;e._ADD_AUDIO_ELEMENT='_ADD_AUDIO_ELEMENT';e._REMOVE_AUDIO_ELEMENT='_REMOVE_AUDIO_ELEMENT';e.PLAY_SOUND='PLAY_SOUND';e.REGISTER_SOUND='REGISTER_SOUND';e.STOP_SOUND='STOP_SOUND';e.UNREGISTER_SOUND='UNREGISTER_SOUND'},838,[]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.getSoundsPath=function(){return(0,t.getSdkBundlePath)()};var t=r(d[0])},839,[381]); +__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"SoundCollection",{enumerable:!0,get:function(){return t.default}});var t=n(r(d[1]))},840,[3,841]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e._mapDispatchToProps=A,e.default=void 0;var o=n(r(d[2])),u=n(r(d[3])),s=n(r(d[4])),f=n(r(d[5])),l=n(r(d[6])),p=n(r(d[7])),c=t(r(d[8])),_=r(d[9]),v=r(d[10]),h=r(d[11]),y=(function(t){function n(){return(0,u.default)(this,n),(0,f.default)(this,(0,l.default)(n).apply(this,arguments))}return(0,p.default)(n,t),(0,s.default)(n,[{key:"render",value:function(){var t=0,n=[],u=this.props._sounds.entries(),s=Array.isArray(u),f=0;for(u=s?u:u["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var l;if(s){if(f>=u.length)break;l=u[f++]}else{if((f=u.next()).done)break;l=f.value}var p=l,v=(0,o.default)(p,2),h=v[0],y=v[1],A=y.options,b=y.src;n.push(c.default.createElement(_.Audio,{key:t,setRef:this._setRef.bind(this,h),src:b,loop:A.loop})),t+=1}return n}},{key:"_setRef",value:function(t,n){n?this.props._addAudioElement(t,n):this.props._removeAudioElement(t)}}]),n})(c.Component);function A(t){return{_addAudioElement:function(n,o){t((0,h._addAudioElement)(n,o))},_removeAudioElement:function(n){t((0,h._removeAudioElement)(n))}}}var b=(0,v.connect)(function(t){return{_sounds:t['features/base/sounds']}},A)(y);e.default=b},841,[2,3,26,4,5,6,9,10,13,765,549,837]); +__d(function(g,r,i,a,m,e,d){var n=r(d[0]),t=r(d[1]),o=r(d[2]),u=n(r(d[3]));function s(n,t){var o=(0,n.getState)()['features/base/sounds'].get(t);o?o.audioElement?o.audioElement.play():u.default.warn("PLAY_SOUND: sound not loaded yet for id: "+t):u.default.warn("PLAY_SOUND: no sound found for id: "+t)}function f(n,t){var o=(0,n.getState)()['features/base/sounds'].get(t);if(o){var s=o.audioElement;s?s.stop():u.default.warn("STOP_SOUND: sound not loaded yet for id: "+t)}else u.default.warn("STOP_SOUND: no sound found for id: "+t)}t.MiddlewareRegistry.register(function(n){return function(t){return function(u){switch(u.type){case o.PLAY_SOUND:s(n,u.soundId);break;case o.STOP_SOUND:f(n,u.soundId)}return t(u)}}})},842,[3,549,838,843]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=(0,r(d[0]).getLogger)('features/base/sounds');e.default=t},843,[591]); +__d(function(g,r,i,a,m,e,d){var n=r(d[0]),t=r(d[1]),s=r(d[2]),u=n(r(d[3])),o=new Map;function E(n,o){var E=o.type===s._ADD_AUDIO_ELEMENT,c=new Map(n),_=o.soundId,f=c.get(_);return f?E?c.set(_,(0,t.assign)(f,{audioElement:o.audioElement})):c.set(_,(0,t.assign)(f,{audioElement:void 0})):u.default.warn(o.type+": no sound for id: "+_),c}function c(n,t){var s=new Map(n);return s.set(t.soundId,{src:t.src,options:t.options}),s}function _(n,t){var s=new Map(n);return s.delete(t.soundId),s}t.ReducerRegistry.register('features/base/sounds',function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:o,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case s._ADD_AUDIO_ELEMENT:case s._REMOVE_AUDIO_ELEMENT:return E(n,t);case s.REGISTER_SOUND:return c(n,t);case s.UNREGISTER_SOUND:return _(n,t);default:return n}})},844,[3,549,838,843]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0});var n={PersistenceRegistry:!0};Object.defineProperty(e,"PersistenceRegistry",{enumerable:!0,get:function(){return o.default}});var c=r(d[1]);Object.keys(c).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(n,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return c[t]}}))});var o=t(r(d[2]));r(d[3])},845,[3,846,853,856]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},846,[847]); +__d(function(g,r,i,a,m,e,d){r(d[0])},847,[848]); +__d(function(g,r,i,a,m,e,d){var o,t=r(d[0])(r(d[1]));void 0===(o=g||window||this).localStorage&&(o.localStorage=new t.default('@jitsi-meet/')),void 0===o.sessionStorage&&(o.sessionStorage=new t.default)},848,[3,849]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),l=t(r(d[2])),u=t(r(d[3])),f=t(r(d[4])),o=(function(){function t(n){var u=this;(0,l.default)(this,t),this._keyPrefix=n;var f=this._initializeAsync();f&&(this._initializing=f,f.finally(function(){u._initializing===f&&(u._initializing=void 0)}))}return(0,u.default)(t,[{key:"clear",value:function(){for(var t=Object.keys(this),n=0;n=s.length)break;v=s[y++]}else{if((y=s.next()).done)break;v=y.value}var c=v,k=(0,n.default)(c,2),_=k[0],P=k[1];_=_.substring(o),t.hasOwnProperty(_)||(t[_]=P)}l()})})})}},{key:"key",value:function(t){var n=Object.keys(this);return t "+u),this._checksum=u}}},{key:"register",value:function(t){var s=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],u=arguments.length>2?arguments[2]:void 0;this._elements[t]=s,this._defaultStates[t]=u}},{key:"_calculateChecksum",value:function(t){try{return n.default.hex(JSON.stringify(t)||'')}catch(t){return c.default.error('Error calculating checksum for state',t),''}}},{key:"_getFilteredState",value:function(t){for(var s={},u=Object.keys(this._elements),l=0;l>2]|=t[n]<>6,R[f++]=128|63&h):h<55296||h>=57344?(R[f++]=224|h>>12,R[f++]=128|h>>6&63,R[f++]=128|63&h):(h=65536+((1023&h)<<10|1023&t.charCodeAt(++n)),R[f++]=240|h>>18,R[f++]=128|h>>12&63,R[f++]=128|h>>6&63,R[f++]=128|63&h);else for(f=this.start;n>2]|=h<>2]|=(192|h>>6)<>2]|=(128|63&h)<=57344?(u[f>>2]|=(224|h>>12)<>2]|=(128|h>>6&63)<>2]|=(128|63&h)<>2]|=(240|h>>18)<>2]|=(128|h>>12&63)<>2]|=(128|h>>6&63)<>2]|=(128|63&h)<=64?(this.start=f-64,this.hash(),this.hashed=!0):this.start=f}return this}},Md5.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var t=this.blocks,s=this.lastByteIndex;t[s>>2]|=EXTRA[3&s],s>=56&&(this.hashed||this.hash(),t[0]=t[16],t[16]=t[1]=t[2]=t[3]=t[4]=t[5]=t[6]=t[7]=t[8]=t[9]=t[10]=t[11]=t[12]=t[13]=t[14]=t[15]=0),t[14]=this.bytes<<3,this.hash()}},Md5.prototype.hash=function(){var t,s,o,h,f,n,A=this.blocks;this.first?s=((s=((t=((t=A[0]-680876937)<<7|t>>>25)-271733879<<0)^(o=((o=(-271733879^(h=((h=(-1732584194^2004318071&t)+A[1]-117830708)<<12|h>>>20)+t<<0)&(-271733879^t))+A[2]-1126478375)<<17|o>>>15)+h<<0)&(h^t))+A[3]-1316259209)<<22|s>>>10)+o<<0:(t=this.h0,s=this.h1,o=this.h2,s=((s+=((t=((t+=((h=this.h3)^s&(o^h))+A[0]-680876936)<<7|t>>>25)+s<<0)^(o=((o+=(s^(h=((h+=(o^t&(s^o))+A[1]-389564586)<<12|h>>>20)+t<<0)&(t^s))+A[2]+606105819)<<17|o>>>15)+h<<0)&(h^t))+A[3]-1044525330)<<22|s>>>10)+o<<0),s=((s+=((t=((t+=(h^s&(o^h))+A[4]-176418897)<<7|t>>>25)+s<<0)^(o=((o+=(s^(h=((h+=(o^t&(s^o))+A[5]+1200080426)<<12|h>>>20)+t<<0)&(t^s))+A[6]-1473231341)<<17|o>>>15)+h<<0)&(h^t))+A[7]-45705983)<<22|s>>>10)+o<<0,s=((s+=((t=((t+=(h^s&(o^h))+A[8]+1770035416)<<7|t>>>25)+s<<0)^(o=((o+=(s^(h=((h+=(o^t&(s^o))+A[9]-1958414417)<<12|h>>>20)+t<<0)&(t^s))+A[10]-42063)<<17|o>>>15)+h<<0)&(h^t))+A[11]-1990404162)<<22|s>>>10)+o<<0,s=((s+=((t=((t+=(h^s&(o^h))+A[12]+1804603682)<<7|t>>>25)+s<<0)^(o=((o+=(s^(h=((h+=(o^t&(s^o))+A[13]-40341101)<<12|h>>>20)+t<<0)&(t^s))+A[14]-1502002290)<<17|o>>>15)+h<<0)&(h^t))+A[15]+1236535329)<<22|s>>>10)+o<<0,s=((s+=((h=((h+=(s^o&((t=((t+=(o^h&(s^o))+A[1]-165796510)<<5|t>>>27)+s<<0)^s))+A[6]-1069501632)<<9|h>>>23)+t<<0)^t&((o=((o+=(t^s&(h^t))+A[11]+643717713)<<14|o>>>18)+h<<0)^h))+A[0]-373897302)<<20|s>>>12)+o<<0,s=((s+=((h=((h+=(s^o&((t=((t+=(o^h&(s^o))+A[5]-701558691)<<5|t>>>27)+s<<0)^s))+A[10]+38016083)<<9|h>>>23)+t<<0)^t&((o=((o+=(t^s&(h^t))+A[15]-660478335)<<14|o>>>18)+h<<0)^h))+A[4]-405537848)<<20|s>>>12)+o<<0,s=((s+=((h=((h+=(s^o&((t=((t+=(o^h&(s^o))+A[9]+568446438)<<5|t>>>27)+s<<0)^s))+A[14]-1019803690)<<9|h>>>23)+t<<0)^t&((o=((o+=(t^s&(h^t))+A[3]-187363961)<<14|o>>>18)+h<<0)^h))+A[8]+1163531501)<<20|s>>>12)+o<<0,s=((s+=((h=((h+=(s^o&((t=((t+=(o^h&(s^o))+A[13]-1444681467)<<5|t>>>27)+s<<0)^s))+A[2]-51403784)<<9|h>>>23)+t<<0)^t&((o=((o+=(t^s&(h^t))+A[7]+1735328473)<<14|o>>>18)+h<<0)^h))+A[12]-1926607734)<<20|s>>>12)+o<<0,s=((s+=((n=(h=((h+=((f=s^o)^(t=((t+=(f^h)+A[5]-378558)<<4|t>>>28)+s<<0))+A[8]-2022574463)<<11|h>>>21)+t<<0)^t)^(o=((o+=(n^s)+A[11]+1839030562)<<16|o>>>16)+h<<0))+A[14]-35309556)<<23|s>>>9)+o<<0,s=((s+=((n=(h=((h+=((f=s^o)^(t=((t+=(f^h)+A[1]-1530992060)<<4|t>>>28)+s<<0))+A[4]+1272893353)<<11|h>>>21)+t<<0)^t)^(o=((o+=(n^s)+A[7]-155497632)<<16|o>>>16)+h<<0))+A[10]-1094730640)<<23|s>>>9)+o<<0,s=((s+=((n=(h=((h+=((f=s^o)^(t=((t+=(f^h)+A[13]+681279174)<<4|t>>>28)+s<<0))+A[0]-358537222)<<11|h>>>21)+t<<0)^t)^(o=((o+=(n^s)+A[3]-722521979)<<16|o>>>16)+h<<0))+A[6]+76029189)<<23|s>>>9)+o<<0,s=((s+=((n=(h=((h+=((f=s^o)^(t=((t+=(f^h)+A[9]-640364487)<<4|t>>>28)+s<<0))+A[12]-421815835)<<11|h>>>21)+t<<0)^t)^(o=((o+=(n^s)+A[15]+530742520)<<16|o>>>16)+h<<0))+A[2]-995338651)<<23|s>>>9)+o<<0,s=((s+=((h=((h+=(s^((t=((t+=(o^(s|~h))+A[0]-198630844)<<6|t>>>26)+s<<0)|~o))+A[7]+1126891415)<<10|h>>>22)+t<<0)^((o=((o+=(t^(h|~s))+A[14]-1416354905)<<15|o>>>17)+h<<0)|~t))+A[5]-57434055)<<21|s>>>11)+o<<0,s=((s+=((h=((h+=(s^((t=((t+=(o^(s|~h))+A[12]+1700485571)<<6|t>>>26)+s<<0)|~o))+A[3]-1894986606)<<10|h>>>22)+t<<0)^((o=((o+=(t^(h|~s))+A[10]-1051523)<<15|o>>>17)+h<<0)|~t))+A[1]-2054922799)<<21|s>>>11)+o<<0,s=((s+=((h=((h+=(s^((t=((t+=(o^(s|~h))+A[8]+1873313359)<<6|t>>>26)+s<<0)|~o))+A[15]-30611744)<<10|h>>>22)+t<<0)^((o=((o+=(t^(h|~s))+A[6]-1560198380)<<15|o>>>17)+h<<0)|~t))+A[13]+1309151649)<<21|s>>>11)+o<<0,s=((s+=((h=((h+=(s^((t=((t+=(o^(s|~h))+A[4]-145523070)<<6|t>>>26)+s<<0)|~o))+A[11]-1120210379)<<10|h>>>22)+t<<0)^((o=((o+=(t^(h|~s))+A[2]+718787259)<<15|o>>>17)+h<<0)|~t))+A[9]-343485551)<<21|s>>>11)+o<<0,this.first?(this.h0=t+1732584193<<0,this.h1=s-271733879<<0,this.h2=o-1732584194<<0,this.h3=h+271733878<<0,this.first=!1):(this.h0=this.h0+t<<0,this.h1=this.h1+s<<0,this.h2=this.h2+o<<0,this.h3=this.h3+h<<0)},Md5.prototype.hex=function(){this.finalize();var t=this.h0,s=this.h1,o=this.h2,h=this.h3;return HEX_CHARS[t>>4&15]+HEX_CHARS[15&t]+HEX_CHARS[t>>12&15]+HEX_CHARS[t>>8&15]+HEX_CHARS[t>>20&15]+HEX_CHARS[t>>16&15]+HEX_CHARS[t>>28&15]+HEX_CHARS[t>>24&15]+HEX_CHARS[s>>4&15]+HEX_CHARS[15&s]+HEX_CHARS[s>>12&15]+HEX_CHARS[s>>8&15]+HEX_CHARS[s>>20&15]+HEX_CHARS[s>>16&15]+HEX_CHARS[s>>28&15]+HEX_CHARS[s>>24&15]+HEX_CHARS[o>>4&15]+HEX_CHARS[15&o]+HEX_CHARS[o>>12&15]+HEX_CHARS[o>>8&15]+HEX_CHARS[o>>20&15]+HEX_CHARS[o>>16&15]+HEX_CHARS[o>>28&15]+HEX_CHARS[o>>24&15]+HEX_CHARS[h>>4&15]+HEX_CHARS[15&h]+HEX_CHARS[h>>12&15]+HEX_CHARS[h>>8&15]+HEX_CHARS[h>>20&15]+HEX_CHARS[h>>16&15]+HEX_CHARS[h>>28&15]+HEX_CHARS[h>>24&15]},Md5.prototype.toString=Md5.prototype.hex,Md5.prototype.digest=function(){this.finalize();var t=this.h0,s=this.h1,o=this.h2,h=this.h3;return[255&t,t>>8&255,t>>16&255,t>>24&255,255&s,s>>8&255,s>>16&255,s>>24&255,255&o,o>>8&255,o>>16&255,o>>24&255,255&h,h>>8&255,h>>16&255,h>>24&255]},Md5.prototype.array=Md5.prototype.digest,Md5.prototype.arrayBuffer=function(){this.finalize();var t=new ArrayBuffer(16),s=new Uint32Array(t);return s[0]=this.h0,s[1]=this.h1,s[2]=this.h2,s[3]=this.h3,t},Md5.prototype.buffer=Md5.prototype.arrayBuffer,Md5.prototype.base64=function(){for(var t,s,o,h='',f=this.array(),n=0;n<15;)t=f[n++],s=f[n++],o=f[n++],h+=BASE64_ENCODE_CHAR[t>>>2]+BASE64_ENCODE_CHAR[63&(t<<4|s>>>4)]+BASE64_ENCODE_CHAR[63&(s<<2|o>>>6)]+BASE64_ENCODE_CHAR[63&o];return t=f[n],h+=BASE64_ENCODE_CHAR[t>>>2]+BASE64_ENCODE_CHAR[t<<4&63]+'=='};var exports=createMethod();COMMON_JS?m.exports=exports:(root.md5=exports,AMD&&define(function(){return exports}))})()},854,[]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=(0,r(d[0]).getLogger)('features/base/storage');e.default=t},855,[591]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=t(r(d[1])),u=r(d[2]),o=t(r(d[3])),f=n.default.throttle(function(t){return o.default.persistState(t)},2e3);'function'==typeof window.addEventListener&&window.addEventListener('unload',function(){f.flush()}),u.MiddlewareRegistry.register(function(t){return function(n){return function(o){var c=(0,u.toState)(t),s=n(o),l=(0,u.toState)(t);return c===l||f(l),s}}})},856,[3,551,549,853]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=(0,r(d[0]).getLogger)('features/base/app');e.default=t},857,[591]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.getAppProp=function(p,n){var o=(0,t.toState)(p)['features/base/app'];if(o){var u=o.app;if(u)return u.props[n]}return};var t=r(d[0])},858,[549]); +__d(function(g,r,i,a,m,e,d){var p=r(d[0])(r(d[1])),t=r(d[2]),n=r(d[3]);t.ReducerRegistry.register('features/base/app',function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},u=arguments.length>1?arguments[1]:void 0;switch(u.type){case n.APP_WILL_MOUNT:var f=u.app;if(t.app!==f)return(0,p.default)({},t,{app:f});break;case n.APP_WILL_UNMOUNT:if(t.app===u.app)return(0,p.default)({},t,{app:void 0})}return t})},859,[3,54,549,832]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})});var u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}})});var o=r(d[3]);Object.keys(o).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return o[t]}})});var c=r(d[4]);Object.keys(c).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return c[t]}})})},860,[861,862,864,865,867]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.createDeferred=function(){var n={};return n.promise=new Promise(function(o,t){n.resolve=o,n.reject=t}),n},e.escapeRegexp=function(o){if('string'!=typeof o)throw new TypeError('Expected a string');return o.replace(n,'\\$&')},e.getBaseUrl=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window,o=n.document.querySelector('base');if(o&&o.href)return o.href;var t=n.location,u=t.protocol,c=t.host;return u+"//"+c},e.getJitsiMeetGlobalNS=function(){window.JitsiMeetJS||(window.JitsiMeetJS={});window.JitsiMeetJS.app||(window.JitsiMeetJS.app={});return window.JitsiMeetJS.app},e.assignIfDefined=function(n,o){var t=Object(n);for(var u in o)if(o.hasOwnProperty(u)){var c=o[u];void 0!==c&&(t[u]=c)}return t},e.reportError=function(n){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:'';console.error(o,n),window.onerror&&window.onerror(o,null,null,null,n)};var n=/[|\\{}()[\]^$+*?.-]/g},861,[]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.doGetJSON=function(o,u){var c=fetch(o).then(function(t){var n=t.json();return t.ok?n:n.then(function(t){return Promise.reject(t)})});if(u)return(0,t.timeoutPromise)(c,n).catch(function(o){return o.status>=400&&o.status<500?Promise.reject(o):(0,t.timeoutPromise)(c,n)});return c};var t=r(d[0]),n=3e3},862,[863]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.timeoutPromise=function(t,n){return new Promise(function(o,u){var c=setTimeout(function(){return u(new Error('timeout'))},n);t.then(function(t){o(t),clearTimeout(c)},function(t){u(t),clearTimeout(c)})})}},863,[]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.loadScript=function(t){var u,s,c,l,f,p,w,h,x,b,v,_=arguments;return n.default.async(function(k){for(;;)switch(k.prev=k.next){case 0:if(u=_.length>1&&void 0!==_[1]?_[1]:o,s=_.length>2&&void 0!==_[2]&&_[2],c=new URL(t),l=c.hostname,f=c.pathname,p=c.protocol,l&&f&&p){k.next=5;break}throw new Error("unexpected url: "+t);case 5:return w=new AbortController,h=w.signal,x=setTimeout(function(){w.abort()},u),k.next=10,n.default.awrap(fetch(t,{signal:h}));case 10:b=k.sent,clearTimeout(x),k.t0=b.status,k.next=200===k.t0?15:21;break;case 15:return k.next=17,n.default.awrap(b.text());case 17:if(v=k.sent,!s){k.next=20;break}return k.abrupt("return",v);case 20:return k.abrupt("return",eval.call(window,v));case 21:throw new Error("loadScript error: "+b.statusText);case 22:case"end":return k.stop()}},null,this)};var n=t(r(d[1])),o=5e3},864,[3,268]); +__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.openURLInBrowser=function(n){o.Linking.openURL(n).catch(function(o){t.default.error("An error occurred while trying to open "+n,o)})};var o=r(d[1]),t=n(r(d[2]))},865,[3,17,866]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=(0,r(d[0]).getLogger)('features/base/util');e.default=t},866,[591]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.getBackendSafeRoomName=function(n){if(!n)return n;try{n=decodeURIComponent(n)}catch(t){}return n=(n=(0,t.normalizeNFKC)(n)).toLowerCase(),(n=encodeURIComponent(n)).toLowerCase()},e.getLocationContextRoot=c,e.parseStandardURIString=f,e.parseURIString=function(t){if('string'!=typeof t)return;var n=f(h(t));n.contextRoot=c(n);var o=n.pathname,u=o.lastIndexOf('/'),p=o.substring(u+1)||void 0;if(p){var v=s(p);v!==p&&(p=v,n.pathname=o.substring(0,u+1)+(p||''))}return n.room=p,n},e.safeDecodeURIComponent=function(t){try{return decodeURIComponent(t)}catch(t){}return t},e.toURLString=function(t){var n;switch(typeof t){case'object':t&&(n=t instanceof URL?t.href:v(t));break;case'string':n=String(t)}return n},e.urlObjectToString=v,e.URI_PROTOCOL_PATTERN=e.APP_LINK_SCHEME=void 0;var t=r(d[0]);e.APP_LINK_SCHEME='org.jitsi.meet:';var n='[\\:\\?#\\[\\]@!$&\'()*+,;=>0&&void 0!==arguments[0]?arguments[0]:{},n=[];for(var o in t)try{n.push(o+"="+encodeURIComponent(JSON.stringify(t[o])))}catch(t){console.warn("Error encoding "+o+": "+t)}return n}function f(t){var n,s,h,c={toString:p};if(t=t.replace(/\s/g,''),(s=(n=new RegExp(o,'gi')).exec(t))&&(c.protocol=s[1].toLowerCase(),t=t.substring(n.lastIndex)),s=(n=new RegExp("^(//[^/?#]+)",'gi')).exec(t)){var u=s[1].substring(2);t=t.substring(n.lastIndex);var f=u.indexOf('@');-1!==f&&(u=u.substring(f+1)),c.host=u;var v=u.lastIndexOf(':');-1!==v&&(c.port=u.substring(v+1),u=u.substring(0,v)),c.hostname=u}if((s=(n=new RegExp("^([^?#]*)",'gi')).exec(t))&&(h=s[1],t=t.substring(n.lastIndex)),h?h.startsWith('/')||(h="/"+h):h='/',c.pathname=h,t.startsWith('?')){var l=t.indexOf('#',1);-1===l&&(l=t.length),c.search=t.substring(0,l),t=t.substring(l)}else c.search='';return c.hash=t.startsWith('#')?t:'',c}function p(t){var n=t||this,o=n.hash,s=n.host,h=n.pathname,c=n.protocol,u=n.search,f='';return c&&(f+=c),s&&(f+="//"+s),f+=h||'/',u&&(f+=u),o&&(f+=o),f}function v(t){var n=f(h(t.serverURL&&t.room?new URL(t.room,t.serverURL).toString():t.room?t.room:t.url||''));if(!n.protocol){var o=t.protocol||t.scheme;o&&(o.endsWith(':')||(o+=':'),n.protocol=o)}var s=n.pathname;if(!n.host){var c=t.domain||t.host||t.hostname;if(c){var p=f(h("org.jitsi.meet://"+c)),v=p.host,l=p.hostname,R=p.pathname,x=p.port;v&&(n.host=v,n.hostname=l,n.port=x),'/'===s&&'/'!==R&&(s=R)}}var I=t.roomName||t.room;!I||!n.pathname.endsWith('/')&&n.pathname.endsWith("/"+I)||(s.endsWith('/')||(s+='/'),s+=I),n.pathname=s;var O=t.jwt;if(O){var b=n.search;-1===b.indexOf('?jwt=')&&-1===b.indexOf('&jwt=')&&(b.startsWith('?')||(b="?"+b),1===b.length||(b+='&'),b+="jwt="+O,n.search=b)}for(var w=n.hash,C=['config','interfaceConfig','devices','userInfo'],L=0;L>8&255]>o&&(v[n]=u),u},function(t,n,o){return o?t(n,o):new C(n,null)},function(t,n,o){var v;if(n=55296&&t<=56319},C.isLowSurrogate=function(t){return t>=56320&&t<=57343},C.prototype.prepFeature=function(){this.feature||(this.feature=C.fromCharCode(this.codepoint,!0).feature)},C.prototype.toString=function(){if(this.codepoint<65536)return String.fromCharCode(this.codepoint);var t=this.codepoint-65536;return String.fromCharCode(Math.floor(t/1024)+55296,t%1024+56320)},C.prototype.getDecomp=function(){return this.prepFeature(),this.feature[0]||null},C.prototype.isCompatibility=function(){return this.prepFeature(),!!this.feature[1]&&256&this.feature[1]},C.prototype.isExclude=function(){return this.prepFeature(),!!this.feature[1]&&512&this.feature[1]},C.prototype.getCanonicalClass=function(){return this.prepFeature(),this.feature[1]?255&this.feature[1]:0},C.prototype.getComposite=function(t){if(this.prepFeature(),!this.feature[2])return null;var n=this.feature[2][t.codepoint];return n?C.fromCharCode(n):null};var F=function(t){this.str=t,this.cursor=0};F.prototype.next=function(){if(this.str&&this.cursor0;--o){if(this.resBuf[o-1].getCanonicalClass()<=t)break}this.resBuf.splice(o,0,n)}while(0!==t);return this.resBuf.shift()};var S=function(t){this.it=t,this.procBuf=[],this.resBuf=[],this.lastClass=null};S.prototype.next=function(){for(;0===this.resBuf.length;){var t=this.it.next();if(!t){this.resBuf=this.procBuf,this.procBuf=[];break}if(0===this.procBuf.length)this.lastClass=t.getCanonicalClass(),this.procBuf.push(t);else{var n=this.procBuf[0].getComposite(t),o=t.getCanonicalClass();n&&(this.lastClass=o.length)break;y=o[f++]}else{if((f=o.next()).done)break;y=f.value}var A=y;A=A.toLowerCase(),!s.includes(A)&&s.push(A)}}return s}s.PersistenceRegistry.register("features/base/known-domains"),n.ReducerRegistry.register("features/base/known-domains",function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:u,s=arguments.length>1?arguments[1]:void 0;switch(s.type){case o.ADD_KNOWN_DOMAINS:return f(n,s.knownDomains);case t.APP_WILL_MOUNT:return f(n,u);default:return n}})},870,[830,549,845,828]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e._UPDATE_CONFIG=e.SET_CONFIG=e.LOAD_CONFIG_ERROR=e.CONFIG_WILL_LOAD=void 0;e.CONFIG_WILL_LOAD='CONFIG_WILL_LOAD';e.LOAD_CONFIG_ERROR='LOAD_CONFIG_ERROR';e.SET_CONFIG='SET_CONFIG';e._UPDATE_CONFIG='_UPDATE_CONFIG'},871,[]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e._CONFIG_STORE_PREFIX=void 0;e._CONFIG_STORE_PREFIX='config.js'},872,[]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t={_cleanupConfig:!0};e._cleanupConfig=function(t){t.analytics.scriptURLs=[],l.NativeModules.AppInfo.LIBRE_BUILD&&(delete t.analytics.amplitudeAPPKey,delete t.analytics.googleAnalyticsTrackingId,delete t.callStatsID,delete t.callStatsSecret)};var l=r(d[0]),n=r(d[1]);Object.keys(n).forEach(function(l){"default"!==l&&"__esModule"!==l&&(Object.prototype.hasOwnProperty.call(t,l)||Object.defineProperty(e,l,{enumerable:!0,get:function(){return n[l]}}))})},873,[17,874]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.createFakeConfig=function(t){var n=new URL(t);return{hosts:{domain:n.hostname,muc:"conference."+n.hostname},bosh:t+"http-bind",clientNode:'https://jitsi.org/jitsi-meet',p2p:{enabled:!0}}},e.overrideConfigJSON=v,e.restoreConfig=function(t){var n,o=f._CONFIG_STORE_PREFIX+"/"+t;try{var u=(n=window.localStorage).getItem(o);if(u)return JSON.parse(u)||void 0}catch(t){n&&n.removeItem(o)}return},e.setConfigFromURLParams=function(t,n,o,f){var u=(0,c.default)(f),l={};t&&(l.config={}),n&&(l.interfaceConfig={}),o&&(l.loggingConfig={});for(var s=Object.keys(u),p=0;p=O.length)break;S=O[k++]}else{if((k=O.next()).done)break;S=k.value}var _=S;b=b[_]=b[_]||{}}b[C]=u[y]}v(t,n,o,l)},Object.defineProperty(e,"parseURLParams",{enumerable:!0,get:function(){return c.default}}),Object.defineProperty(e,"getRoomName",{enumerable:!0,get:function(){return s.default}});var n=t(r(d[1])),o=t(r(d[2])),f=r(d[3]),u=t(r(d[4])),c=t(r(d[5])),l=t(r(d[6])),s=t(r(d[7]));function v(t,o,f,u){for(var c=Object.keys(u),s=0;s1&&void 0!==arguments[1]&&arguments[1],h=arguments.length>2&&void 0!==arguments[2]?arguments[2]:'hash',s='search'===h?n.search:n.hash,l={},u=s&&s.substr(1).split('&')||[];if('hash'===h&&1===u.length){var v=u[0];if(v.startsWith('/')&&1===v.split('&').length)return l}return u.forEach(function(n){var h=n.split('='),s=h[0];if(s){var u;try{if(u=h[1],!o){var v=decodeURIComponent(u).replace(/\\&/,'&');u='undefined'===v?void 0:JSON.parse(v)}}catch(n){return void(0,t.reportError)(n,"Failed to parse URL parameter value: "+String(u))}l[s]=u}}),l};var t=r(d[0])},878,[860]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=(0,r(d[0]).getLogger)('features/base/config');e.default=t},879,[591]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){var t=window.location.pathname,o=t.substring(t.lastIndexOf('/')+1)||void 0;return(0,n.getBackendSafeRoomName)(o)};var n=r(d[0])},880,[860]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]),o=r(d[2]),s=r(d[3]),u=r(d[4]),c=r(d[5]);function f(t,o,u){var f=o(u),v=window.localStorage;if(v){for(var _=c._CONFIG_STORE_PREFIX+"/",w=[],h=0;;++h){var l=v.key(h);if(!l)break;var p=void 0;if(l.startsWith(_)&&(p=l.substring(_.length))){var P=(0,s.parseURIString)(p),b=void 0;P&&(b=P.host)&&w.push(b)}}w.length&&t.dispatch((0,n.addKnownDomains)(w))}return f}function v(t,n,o){var s=t.dispatch,c=t.getState,f=n(o),v=c(),_=v['features/base/settings'],w={};return void 0!==_.disableP2P&&(w.p2p={enabled:!_.disableP2P}),s({type:u._UPDATE_CONFIG,config:w}),void 0!==window.config&&(window.config=v['features/base/config']),f}o.MiddlewareRegistry.register(function(n){return function(o){return function(s){switch(s.type){case t.APP_WILL_MOUNT:return f(n,o,s);case u.SET_CONFIG:return v(n,o,s)}return o(s)}}})},881,[830,826,549,860,871,872]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=t(r(d[1])),o=t(r(d[2])),c=t(r(d[3])),l=t(r(d[4])),u=r(d[5]),f=r(d[6]),s=r(d[7]),v={},y={analytics:{},disableAudioLevels:!0,p2p:{disableH264:!1,preferH264:!0},remoteVideoMenu:{}};function p(){return'ReactNative'===navigator.product?y:v}function R(t,n){var o=n.config;o=_(o);var c=l.default.merge({},o,{error:void 0},p());return(0,s._cleanupConfig)(c),(0,u.equals)(t,c)?t:c}function _(t){var l=t,f={analytics:[['analyticsScriptUrls','scriptURLs'],['googleAnalyticsTrackingId','googleAnalyticsTrackingId']]};return Object.keys(f).forEach(function(s){'object'!=typeof t[s]&&(l=(0,u.set)(l,s,{}));var v=f[s],y=Array.isArray(v),p=0;for(v=y?v:v["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var R;if(y){if(p>=v.length)break;R=v[p++]}else{if((p=v.next()).done)break;R=p.value}var _=R,b=(0,c.default)(_,2),L=b[0],A=b[1];if(L in l&&!(A in l[s])){var O=l[L];l===t&&(l=(0,o.default)({},l)),delete l[L],l[s]=(0,o.default)({},l[s],(0,n.default)({},A,O))}}}),l}function b(t,n){var o=n.config,c=l.default.merge({},t,o);return(0,s._cleanupConfig)(c),(0,u.equals)(t,c)?t:c}u.ReducerRegistry.register('features/base/config',function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:p(),n=arguments.length>1?arguments[1]:void 0;switch(n.type){case f._UPDATE_CONFIG:return b(t,n);case f.CONFIG_WILL_LOAD:return{error:void 0,locationURL:n.locationURL};case f.LOAD_CONFIG_ERROR:if(t.locationURL===n.locationURL)return{error:n.error};break;case f.SET_CONFIG:return R(t,n)}return t})},882,[3,55,54,26,551,549,871,873]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=t(r(d[1])),o=t(r(d[2])),s=r(d[3]),c=r(d[4]),l=t(r(d[5])),u=r(d[6]),f=r(d[7]),p=r(d[8]),h=r(d[9]),y=r(d[10]);function b(t){var n=(0,t.getState)()['features/base/settings'].disableCallIntegration;'boolean'==typeof n&&(0,y.handleCallIntegrationChange)(n)}function v(t){switch(t){case'displayName':return'name'}return t}function I(t){var n=t.settings.disableCallIntegration;'boolean'==typeof n&&(0,y.handleCallIntegrationChange)(n)}function C(t,n){var o=t.dispatch,s=n.settings.startAudioOnly;'boolean'==typeof s&&o((0,c.setAudioOnly)(s,!0))}function L(t,o){var s=t.dispatch,c=t.getState,l=o.settings,u=(0,f.getLocalParticipant)(c()),p=(0,n.default)({},u);for(var h in l)l.hasOwnProperty(h)&&(p[v(h)]=l[h]);s((0,f.participantUpdated)(p))}function _(t){var s=t.dispatch,c=t.getState,u=(0,l.default)(c()['features/base/connection'].locationURL),p=u['userInfo.email'],h=u['userInfo.displayName'];if(p||h){var y=(0,f.getLocalParticipant)(c());y&&s((0,f.participantUpdated)((0,n.default)({},y,{email:o.default.escape(p),name:o.default.escape(h)})))}}p.MiddlewareRegistry.register(function(t){return function(n){return function(o){var c=n(o);switch(o.type){case s.APP_WILL_MOUNT:b(t);break;case h.SETTINGS_UPDATED:I(o),C(t,o),L(t,o);break;case u.SET_LOCATION_URL:_(t)}return c}}})},883,[3,54,551,830,884,878,890,547,549,820,822]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})}),r(d[2])},884,[885,887,889]); +__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.setAudioOnly=f,e.toggleAudioOnly=function(){return function(n,t){var u=t()['features/base/audio-only'].enabled;return n(f(!u,!0))}};var t=n(r(d[1])),u=r(d[2]),o=r(d[3]),l=n(r(d[4]));function f(n){var f=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return function(y,s){s()['features/base/audio-only'].enabled!==n&&((0,u.sendAnalytics)((0,u.createAudioOnlyChangedEvent)(n)),l.default.log("Audio-only "+(n?'enabled':'disabled')),y({type:o.SET_AUDIO_ONLY,audioOnly:n,ensureVideoTrack:f}),'undefined'!=typeof APP&&APP.UI.emitEvent(t.default.TOGGLE_AUDIO_ONLY,n))}}},885,[3,886,385,887,888]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;e.default={NICKNAME_CHANGED:'UI.nickname_changed',EMAIL_CHANGED:'UI.email_changed',AUDIO_MUTED:'UI.audio_muted',VIDEO_MUTED:'UI.video_muted',ETHERPAD_CLICKED:'UI.etherpad_clicked',SHARED_VIDEO_CLICKED:'UI.start_shared_video',UPDATE_SHARED_VIDEO:'UI.update_shared_video',TOGGLE_FULLSCREEN:'UI.toogle_fullscreen',FULLSCREEN_TOGGLED:'UI.fullscreen_toggled',AUTH_CLICKED:'UI.auth_clicked',TOGGLE_AUDIO_ONLY:'UI.toggle_audioonly',TOGGLE_FILMSTRIP:'UI.toggle_filmstrip',TOGGLE_SCREENSHARING:'UI.toggle_screensharing',HANGUP:'UI.hangup',LOGOUT:'UI.logout',VIDEO_DEVICE_CHANGED:'UI.video_device_changed',AUDIO_DEVICE_CHANGED:'UI.audio_device_changed',LOCAL_FLIPX_CHANGED:'UI.local_flipx_changed',RESOLUTION_CHANGED:'UI.resolution_changed',EXTERNAL_INSTALLATION_CANCELED:'UI.external_installation_canceled',SIDE_TOOLBAR_CONTAINER_TOGGLED:'UI.side_container_toggled',LOCAL_RAISE_HAND_CHANGED:'UI.local_raise_hand_changed',LARGE_VIDEO_AVATAR_VISIBLE:'UI.large_video_avatar_visible',LARGE_VIDEO_ID_CHANGED:'UI.large_video_id_changed'}},886,[]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.SET_AUDIO_ONLY=void 0;e.SET_AUDIO_ONLY='SET_AUDIO_ONLY'},887,[]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=(0,r(d[0]).getLogger)('features/base/audio-only');e.default=o},888,[591]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0])(r(d[1])),n=r(d[2]),u=r(d[3]),l={enabled:!1};n.ReducerRegistry.register('features/base/audio-only',function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:l,o=arguments.length>1?arguments[1]:void 0;switch(o.type){case u.SET_AUDIO_ONLY:return(0,t.default)({},n,{enabled:o.audioOnly});default:return n}})},889,[3,54,549,887]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.SET_LOCATION_URL=e.CONNECTION_WILL_CONNECT=e.CONNECTION_FAILED=e.CONNECTION_ESTABLISHED=e.CONNECTION_DISCONNECTED=void 0;e.CONNECTION_DISCONNECTED='CONNECTION_DISCONNECTED';e.CONNECTION_ESTABLISHED='CONNECTION_ESTABLISHED';e.CONNECTION_FAILED='CONNECTION_FAILED';e.CONNECTION_WILL_CONNECT='CONNECTION_WILL_CONNECT';e.SET_LOCATION_URL='SET_LOCATION_URL'},890,[]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),o=t(r(d[1])),c=r(d[2]),l=t(r(d[3])),s=r(d[4]),u=r(d[5]),v=r(d[6]),n=r(d[7]),I=r(d[8]),f=r(d[9]),D=t(r(d[10])),p={audioOutputDeviceId:void 0,avatarID:void 0,avatarURL:void 0,cameraDeviceId:void 0,disableCallIntegration:void 0,disableP2P:void 0,displayName:void 0,email:void 0,localFlipX:!0,micDeviceId:void 0,serverURL:void 0,startAudioOnly:!1,startWithAudioMuted:!1,startWithVideoMuted:!1,userSelectedAudioOutputDeviceId:void 0,userSelectedCameraDeviceId:void 0,userSelectedMicDeviceId:void 0,userSelectedAudioOutputDeviceLabel:void 0,userSelectedCameraDeviceLabel:void 0,userSelectedMicDeviceLabel:void 0},w={};function S(){var t=window.localStorage.getItem('features/base/profile');if(t)try{if((t=JSON.parse(t))&&'object'==typeof t)return t.profile||t}catch(t){D.default.warn('Error parsing persisted legacy profile',t)}return{}}function b(t){var o=t,s=window.localStorage.getItem('displayname'),v=window.localStorage.getItem('email'),n=l.default.escape(window.localStorage.getItem('avatarId')),f=null===s?void 0:l.default.escape(s),D=null===v?void 0:l.default.escape(v);if(n||(n=(0,c.randomHexString)(32)),o=(0,I.assignIfDefined)({avatarID:n,displayName:f,email:D},o),!u.browser.isReactNative()){var p=JSON.parse(window.localStorage.getItem('localFlipX')||'true'),w=window.localStorage.getItem('cameraDeviceId')||'',b=window.localStorage.getItem('micDeviceId')||'',y=window.localStorage.getItem('audioOutputDeviceId')||'default';o=(0,I.assignIfDefined)({audioOutputDeviceId:y,cameraDeviceId:w,localFlipX:p,micDeviceId:b},o)}var O=S();return o=(0,I.assignIfDefined)(O,o)}Object.keys(p).forEach(function(t){w[t]=!0}),w.audioOutputDeviceId=!1,w.cameraDeviceId=!1,w.micDeviceId=!1,n.PersistenceRegistry.register("features/base/settings",w),v.ReducerRegistry.register("features/base/settings",function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:p,c=arguments.length>1?arguments[1]:void 0;switch(c.type){case s.APP_WILL_MOUNT:return b(t);case f.SETTINGS_UPDATED:return(0,o.default)({},t,c.settings)}return t})},891,[3,54,892,551,830,388,549,845,860,820,895]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})})},892,[893,894]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.randomAlphanumString=function(t){return f(t,n)},e.randomElement=o,e.randomHexDigit=function(){return o(t)},e.randomHexString=function(n){return f(n,t)},e.randomInt=u;var n='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',t='0123456789abcdef';function o(n){return n[u(0,n.length-1)]}function u(n,t){return Math.floor(Math.random()*(t-n+1))+n}function f(n,t){for(var u='',f=0;f=0)return!0;return!1}},894,[893]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=(0,r(d[0]).getLogger)('features/base/settings');e.default=t},895,[591]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(n){return Promise.resolve([])}},896,[]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=(0,r(d[0]).getLogger)('features/base/tracks');e.default=t},897,[591]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),o=r(d[1]),c=r(d[2]),n=r(d[3]),s=t(r(d[4])),u=r(d[5]),T=r(d[6]),E=r(d[7]);function A(t,c){var n=t.getState,s=t.dispatch,T=(0,E.getTrackByJitsiTrack)(n()['features/base/tracks'],c.track.jitsiTrack);if(T&&T.local){var A=T.jitsiTrack;if(T.mediaType===o.MEDIA_TYPE.AUDIO&&T.isReceivingData&&k(t,c.track),T.mediaType===o.MEDIA_TYPE.VIDEO){var f=T.noDataFromSourceNotificationInfo,D=void 0===f?{}:f;if(T.isReceivingData)D.timeout&&(clearTimeout(D.timeout),s((0,u.trackNoDataFromSourceNotificationInfoChanged)(A,void 0))),k(t,c.track);else{if(D.timeout)return;var I=setTimeout(function(){return s((0,u.showNoDataFromSourceVideoError)(A))},5e3);s((0,u.trackNoDataFromSourceNotificationInfoChanged)(A,{timeout:I}))}}}}function f(t,o){var c=t.getState,n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return(0,E.getLocalTrack)(c()['features/base/tracks'],o,n)}function k(t,o){var n=t.getState,s=t.dispatch,T=(0,E.getTrackByJitsiTrack)(n()['features/base/tracks'],o.jitsiTrack)||{},A=T.jitsiTrack,f=T.noDataFromSourceNotificationInfo,k=void 0===f?{}:f;k&&k.uid&&(s((0,c.hideNotification)(k.uid)),s((0,u.trackNoDataFromSourceNotificationInfoChanged)(A,void 0)))}function D(t,c,n){var s=c.ensureTrack,T=c.authority,A=c.muted,k=f(t,n,!0);if(k){var D=k.jitsiTrack,I=T===o.VIDEO_MUTISM_AUTHORITY.AUDIO_ONLY;D&&('desktop'!==D.videoType||I)&&(0,E.setTrackMuted)(D,A)}else!A&&s&&'undefined'==typeof APP&&t.dispatch((0,u.createLocalTracksA)({devices:[n]}))}n.MiddlewareRegistry.register(function(t){return function(c){return function(n){switch(n.type){case T.TRACK_NO_DATA_FROM_SOURCE:var u=c(n);return A(t,n),u;case T.TRACK_REMOVED:k(t,n.track);break;case o.SET_AUDIO_MUTED:if(!n.muted&&(0,E.isUserInteractionRequiredForUnmute)(t.getState()))return;D(t,n,o.MEDIA_TYPE.AUDIO);break;case o.SET_CAMERA_FACING_MODE:var I,_=f(t,o.MEDIA_TYPE.VIDEO);_&&(I=_.jitsiTrack)&&I.getCameraFacingMode()!==n.cameraFacingMode&&t.dispatch((0,o.toggleCameraFacingMode)());break;case o.SET_VIDEO_MUTED:if(!n.muted&&(0,E.isUserInteractionRequiredForUnmute)(t.getState()))return;D(t,n,n.mediaType);break;case o.TOGGLE_CAMERA_FACING_MODE:var P,M=f(t,o.MEDIA_TYPE.VIDEO);if(M&&(P=M.jitsiTrack)){P._switchCamera();var v=P.getCameraFacingMode()===o.CAMERA_FACING_MODE.USER;t.dispatch({type:T.TRACK_UPDATED,track:{jitsiTrack:P,mirror:v}})}break;case T.TOGGLE_SCREENSHARING:'object'==typeof APP&&APP.UI.emitEvent(s.default.TOGGLE_SCREENSHARING);break;case T.TRACK_UPDATED:if('undefined'!=typeof APP){var S=n.track.jitsiTrack,R=S.isMuted(),p=S.getParticipantId();S.type!==o.MEDIA_TYPE.AUDIO?(S.type===o.MEDIA_TYPE.PRESENTER&&APP.conference.mutePresenter(R),S.isLocal()&&'desktop'!==S.videoType?APP.conference.setVideoMuteStatus(R):APP.UI.setVideoMuted(p,R),APP.UI.onPeerVideoTypeChanged(p,S.videoType)):S.isLocal()?APP.conference.setAudioMuteStatus(R):APP.UI.setAudioMuted(p,R)}}return c(n)}}})},898,[3,765,602,549,886,815,816,817]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),c=t(r(d[1])),n=t(r(d[2])),u=r(d[3]),s=r(d[4]),T=r(d[5]);function R(t,c){switch(c.type){case u.PARTICIPANT_ID_CHANGED:if(t.participantId===c.oldValue)return(0,n.default)({},t,{participantId:c.newValue});break;case T.TRACK_UPDATED:var s=c.track;if(t.jitsiTrack===s.jitsiTrack)for(var R in s)if(t[R]!==s[R])return(0,n.default)({},t,s);break;case T.TRACK_NO_DATA_FROM_SOURCE:var A=c.track;if(t.jitsiTrack===A.jitsiTrack){var _=A.jitsiTrack.isReceivingData();if(t.isReceivingData!==_)return(0,n.default)({},t,{isReceivingData:_})}}return t}s.ReducerRegistry.register('features/base/tracks',function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1?arguments[1]:void 0;switch(n.type){case u.PARTICIPANT_ID_CHANGED:case T.TRACK_NO_DATA_FROM_SOURCE:case T.TRACK_UPDATED:return t.map(function(t){return R(t,n)});case T.TRACK_ADDED:var s=t;return n.track.local&&(s=t.filter(function(t){return!t.local||t.mediaType!==n.track.mediaType})),(0,c.default)(s).concat([n.track]);case T.TRACK_CREATE_CANCELED:case T.TRACK_CREATE_ERROR:return t.filter(function(t){return!t.local||t.mediaType!==n.trackType});case T.TRACK_REMOVED:return t.filter(function(t){return t.jitsiTrack!==n.track.jitsiTrack});case T.TRACK_WILL_CREATE:return(0,c.default)(t).concat([n.track]);default:return t}}),s.ReducerRegistry.register('features/base/no-src-data',function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},c=arguments.length>1?arguments[1]:void 0;switch(c.type){case T.SET_NO_SRC_DATA_NOTIFICATION_UID:return(0,s.set)(t,'noSrcDataNotificationUid',c.uid);default:return t}})},899,[3,32,54,547,549,816]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.isVideoMutedByAudioOnly=function(t){return u(t,n.VIDEO_MUTISM_AUTHORITY.AUDIO_ONLY)},e.isVideoMutedByUser=function(t){return u(t,n.VIDEO_MUTISM_AUTHORITY.USER)},e.shouldRenderVideoTrack=function(t,n){return t&&!t.muted&&(!n||t.videoStarted)};var t=r(d[0]),n=r(d[1]);function u(n,u){var o=(0,t.toState)(n)['features/base/media'].video.muted;return Boolean(o&u)}},900,[549,768]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]),o=r(d[2]),u=r(d[3]),s=r(d[4]),c=t(r(d[5])),E=r(d[6]),T=r(d[7]),A=r(d[8]),l=r(d[9]),I=r(d[10]),_=t(r(d[11])),M=r(d[12]);function D(t,o,u){var s=t.dispatch,c='active'!==u.appState;return(0,n.sendAnalytics)((0,n.createTrackMutedEvent)('video','background mode',c)),s((0,l.setVideoMuted)(c,I.MEDIA_TYPE.VIDEO,I.VIDEO_MUTISM_AUTHORITY.BACKGROUND)),o(u)}function O(t,o,u){var s=t.dispatch,c=u.audioOnly,E=u.ensureVideoTrack;return(0,n.sendAnalytics)((0,n.createTrackMutedEvent)('video','audio-only mode',c)),s((0,l.setVideoMuted)(c,I.MEDIA_TYPE.VIDEO,I.VIDEO_MUTISM_AUTHORITY.AUDIO_ONLY,E)),'ReactNative'!==navigator.product&&s((0,l.setVideoMuted)(c,I.MEDIA_TYPE.PRESENTER,I.VIDEO_MUTISM_AUTHORITY.AUDIO_ONLY,E)),o(u)}function y(t,o,E){var A,D=t.dispatch,O=(0,t.getState)(),y=E.room,S=(0,s.isRoomValid)(y),v={config:!0,settings:!0,urlParams:!0,jwt:!1},p=S?Boolean((0,T.getPropertyValue)(O,'startWithAudioMuted',v)):M._AUDIO_INITIAL_MEDIA_STATE.muted,V=S?Boolean((0,T.getPropertyValue)(O,'startWithVideoMuted',v)):M._VIDEO_INITIAL_MEDIA_STATE.muted;return(0,n.sendAnalytics)((0,n.createStartMutedConfigurationEvent)('local',p,V)),_.default.log("Start muted: "+(p?'audio, ':'')+(V?'video':'')),D((0,l.setAudioMuted)(p)),D((0,l.setCameraFacingMode)(I.CAMERA_FACING_MODE.USER)),D((0,l.setVideoMuted)(V)),A=!c.default.mediaDevices.supportsVideo()||Boolean((0,T.getPropertyValue)(O,'startAudioOnly',{config:S,urlParams:!0,jwt:!1,settings:!0})),(0,n.sendAnalytics)((0,n.createStartAudioOnlyEvent)(A)),_.default.log("Start audio only set to "+A.toString()),D((0,u.setAudioOnly)(A,!1)),o(E)}function S(t,o){var u=(0,t.getState)()['features/base/media'],s=o.mediaType===I.MEDIA_TYPE.PRESENTER?I.MEDIA_TYPE.VIDEO:o.mediaType,c=Boolean(u[s].muted);o.muted!==c&&((0,n.sendAnalytics)((0,n.createSyncTrackStateEvent)(o.mediaType,c)),_.default.log("Sync "+o.mediaType+" track muted state to "+(c?'muted':'unmuted')),o.muted=c,(0,A.setTrackMuted)(o.jitsiTrack,c))}E.MiddlewareRegistry.register(function(t){return function(n){return function(c){switch(c.type){case o.APP_STATE_CHANGED:return D(t,n,c);case u.SET_AUDIO_ONLY:return O(t,n,c);case s.SET_ROOM:return y(t,n,c);case A.TRACK_ADDED:var E=n(c),T=c.track;return T.local&&'desktop'!==T.videoType&&S(t,T),E}return n(c)}}})},901,[3,385,902,884,383,388,549,818,814,766,768,774,907]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})}),r(d[2]),r(d[3])},902,[903,904,905,906]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e._setAppStateListener=function(n){return{type:t._SET_APP_STATE_LISTENER,listener:n}},e.appStateChanged=function(n){return{type:t.APP_STATE_CHANGED,appState:n}};var t=r(d[0])},903,[904]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.APP_STATE_CHANGED=e._SET_APP_STATE_LISTENER=void 0;e._SET_APP_STATE_LISTENER='_SET_APP_STATE_LISTENER';e.APP_STATE_CHANGED='APP_STATE_CHANGED'},904,[]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]),s=r(d[2]),p=r(d[3]),c=r(d[4]);function u(t,n){t((0,p.appStateChanged)(n))}function _(n,s,p){var c=n.getState,u=c()['features/background'].appStateListener,_=s(p),o=c()['features/background'].appStateListener;return u!==o&&(u&&t.AppState.removeEventListener('change',u),o&&t.AppState.addEventListener('change',o)),_}s.MiddlewareRegistry.register(function(t){return function(s){return function(o){switch(o.type){case c._SET_APP_STATE_LISTENER:return _(t,s,o);case n.APP_WILL_MOUNT:var L=t.dispatch;L((0,p._setAppStateListener)(u.bind(void 0,L)));break;case n.APP_WILL_UNMOUNT:t.dispatch((0,p._setAppStateListener)(void 0))}return s(o)}}})},905,[17,830,549,903,904]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0])(r(d[1])),n=r(d[2]),u=r(d[3]),p={appState:'active'};n.ReducerRegistry.register('features/background',function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:p,c=arguments.length>1?arguments[1]:void 0;switch(c.type){case u._SET_APP_STATE_LISTENER:return(0,t.default)({},n,{appStateListener:c.listener});case u.APP_STATE_CHANGED:return(0,t.default)({},n,{appState:c.appState})}return n})},906,[3,54,549,904]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e._VIDEO_INITIAL_MEDIA_STATE=e._AUDIO_INITIAL_MEDIA_STATE=void 0;var E=t(r(d[1])),n=t(r(d[2])),u=r(d[3]),_=r(d[4]),A=r(d[5]),f=r(d[6]),s=r(d[7]),I=r(d[8]),l={available:!0,muted:!1};e._AUDIO_INITIAL_MEDIA_STATE=l;var c={available:!0,facingMode:I.CAMERA_FACING_MODE.USER,muted:0,transforms:{}};function o(t){return(0,n.default)({},t,{transforms:c.transforms})}function M(t,u){var _=u.streamId,A=u.transform;return(0,n.default)({},t,{transforms:(0,n.default)({},t.transforms,(0,E.default)({},_,A))})}function T(t,E){var u=E.track.jitsiTrack;if(u){var _=u.getStreamId();if(_&&_ in t.transforms){var A=(0,n.default)({},t.transforms);return delete A[_],(0,n.default)({},t,{transforms:A})}}return t}e._VIDEO_INITIAL_MEDIA_STATE=c,A.ReducerRegistry.register('features/base/media',(0,u.combineReducers)({audio:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:l,E=arguments.length>1?arguments[1]:void 0;switch(E.type){case s.SET_AUDIO_AVAILABLE:return(0,n.default)({},t,{available:E.available});case s.SET_AUDIO_MUTED:return(0,n.default)({},t,{muted:E.muted});default:return t}},video:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:c,E=arguments.length>1?arguments[1]:void 0;switch(E.type){case _.CONFERENCE_FAILED:case _.CONFERENCE_LEFT:return o(t);case s.SET_CAMERA_FACING_MODE:return(0,n.default)({},t,{facingMode:E.cameraFacingMode});case s.SET_VIDEO_AVAILABLE:return(0,n.default)({},t,{available:E.available});case s.SET_VIDEO_MUTED:return(0,n.default)({},t,{muted:E.muted});case s.STORE_VIDEO_TRANSFORM:return M(t,E);case s.TOGGLE_CAMERA_FACING_MODE:var u=t.facingMode;return u=u===I.CAMERA_FACING_MODE.USER?I.CAMERA_FACING_MODE.ENVIRONMENT:I.CAMERA_FACING_MODE.USER,(0,n.default)({},t,{facingMode:u});case f.TRACK_REMOVED:return T(t,E);default:return t}}}))},907,[3,55,54,571,383,549,814,767,768]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.PARTICIPANT_ROLE=e.PARTICIPANT_LEFT_SOUND_ID=e.PARTICIPANT_JOINED_SOUND_ID=e.MAX_DISPLAY_NAME_LENGTH=e.LOCAL_PARTICIPANT_DEFAULT_ID=e.JIGASI_PARTICIPANT_ICON=e.DEFAULT_AVATAR_RELATIVE_PATH=void 0;var A=r(d[0]);e.DEFAULT_AVATAR_RELATIVE_PATH='images/avatar.png';var I=A.IconPhone;e.JIGASI_PARTICIPANT_ICON=I;e.LOCAL_PARTICIPANT_DEFAULT_ID='local';e.MAX_DISPLAY_NAME_LENGTH=50;e.PARTICIPANT_JOINED_SOUND_ID='PARTICIPANT_JOINED_SOUND';e.PARTICIPANT_LEFT_SOUND_ID='PARTICIPANT_LEFT_SOUND';e.PARTICIPANT_ROLE={MODERATOR:'moderator',NONE:'none',PARTICIPANT:'participant'}},908,[403]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.preloadImage=function(t){if((0,o.isIconUrl)(t))return Promise.resolve(t);return new Promise(function(o,u){n.Image.prefetch(t).then(function(){return o(t)},u)})};var n=r(d[0]),o=r(d[1])},909,[17,762]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"ParticipantView",{enumerable:!0,get:function(){return n.default}});var n=t(r(d[1]))},910,[3,911]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=n(r(d[2])),s=n(r(d[3])),c=n(r(d[4])),l=n(r(d[5])),p=n(r(d[6])),u=n(r(d[7])),f=t(r(d[8])),v=r(d[9]),h=r(d[10]),E=r(d[11]),I=r(d[12]),_=r(d[13]),y=r(d[14]),T=r(d[15]),C=r(d[16]),V=r(d[17]),k=r(d[18]),P=n(r(d[19])),b=(function(t){function n(){return(0,s.default)(this,n),(0,l.default)(this,(0,p.default)(n).apply(this,arguments))}return(0,u.default)(n,t),(0,c.default)(n,[{key:"_renderConnectionInfo",value:function(t){var n;switch(t){case I.JitsiParticipantConnectionStatus.INACTIVE:n='connection.LOW_BANDWIDTH';break;default:return null}var s=this.props,c=s.avatarSize,l=s._participantName,p=s.t,u=(0,o.default)({},P.default.connectionInfoContainer,{width:1.5*c});return f.default.createElement(v.View,{pointerEvents:"box-none",style:u},f.default.createElement(v.Text,{style:P.default.connectionInfoText},p(n,{displayName:l})))}},{key:"render",value:function(){var t=this.props,n=t._connectionStatus,s=t._renderVideo,c=t._videoTrack,l=t.onPress,p=t.tintStyle,u=n!==I.JitsiParticipantConnectionStatus.ACTIVE,E=u||this.props.tintEnabled,T=this.props.testHintId?this.props.testHintId:"org.jitsi.meet.Participant#"+this.props.participantId;return f.default.createElement(y.Container,{onClick:s?void 0:l,style:(0,o.default)({},P.default.participantView,this.props.style),touchFeedback:!1},f.default.createElement(C.TestHint,{id:T,onPress:l,value:""}),s&&f.default.createElement(_.VideoTrack,{onPress:l,videoTrack:c,waitForVideoStarted:!1,zOrder:this.props.zOrder,zoomEnabled:this.props.zoomEnabled}),!s&&f.default.createElement(v.View,{style:P.default.avatarContainer},f.default.createElement(h.Avatar,{participantId:this.props.participantId,size:this.props.avatarSize})),E&&f.default.createElement(y.TintedView,{style:u?void 0:p}),this.props.useConnectivityInfoLabel&&this._renderConnectionInfo(n))}}]),n})(f.Component);var S=(0,E.translate)((0,T.connect)(function(t,n){var o=n.disableVideo,s=n.participantId;return{_connectionStatus:I.JitsiParticipantConnectionStatus.ACTIVE,_participantName:void 0,_renderVideo:(0,k.shouldRenderParticipantVideo)(t,s)&&!o,_videoTrack:(0,V.getTrackByMediaTypeAndParticipant)(t['features/base/tracks'],_.MEDIA_TYPE.VIDEO,s)}})(b));e.default=S},911,[2,3,54,4,5,6,9,10,13,17,399,622,388,765,394,549,912,814,762,925]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"TestConnectionInfo",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(e,"TestHint",{enumerable:!0,get:function(){return u.default}});var n=t(r(d[1])),u=t(r(d[2]))},912,[3,913,923]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=n(r(d[2])),s=n(r(d[3])),l=n(r(d[4])),c=n(r(d[5])),u=n(r(d[6])),f=n(r(d[7])),p=t(r(d[8])),_=r(d[9]),S=r(d[10]),v=r(d[11]),b=r(d[12]),h=r(d[13]),U=(function(t){function n(t){var s;return(0,o.default)(this,n),(s=(0,l.default)(this,(0,c.default)(n).call(this,t)))._onStatsUpdated=s._onStatsUpdated.bind((0,f.default)((0,f.default)(s))),s.state={stats:{bitrate:{download:0,upload:0}}},s}return(0,u.default)(n,t),(0,s.default)(n,[{key:"_onStatsUpdated",value:function(){var t,n,o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.setState({stats:{bitrate:{download:(null==(t=o.bitrate)?void 0:t.download)||0,upload:(null==(n=o.bitrate)?void 0:n.upload)||0}}})}},{key:"componentDidMount",value:function(){v.statsEmitter.subscribeToClientStats(this.props._localUserId,this._onStatsUpdated)}},{key:"componentDidUpdate",value:function(t){t._localUserId!==this.props._localUserId&&(v.statsEmitter.unsubscribeToClientStats(t._localUserId,this._onStatsUpdated),v.statsEmitter.subscribeToClientStats(this.props._localUserId,this._onStatsUpdated))}},{key:"componentWillUnmount",value:function(){v.statsEmitter.unsubscribeToClientStats(this.props._localUserId,this._onStatsUpdated)}},{key:"render",value:function(){return this.props._testMode?p.default.createElement(p.Fragment,{accessible:!1},p.default.createElement(b.TestHint,{id:"org.jitsi.meet.conference.connectionState",value:this.props._conferenceConnectionState}),p.default.createElement(b.TestHint,{id:"org.jitsi.meet.conference.joinedState",value:this.props._conferenceJoinedState}),p.default.createElement(b.TestHint,{id:"org.jitsi.meet.stats.rtp",value:JSON.stringify(this.state.stats)})):null}}]),n})(p.Component);var E=(0,S.connect)(function(t){var n=Boolean(t['features/base/conference'].conference),o=(0,_.getLocalParticipant)(t);return{_conferenceConnectionState:t['features/testing'].connectionState,_conferenceJoinedState:n.toString(),_localUserId:o&&o.id,_testMode:(0,h.isTestModeEnabled)(t)}})(U);e.default=E},913,[2,3,4,5,6,9,10,8,13,547,549,914,912,922]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0});var n={statsEmitter:!0};Object.defineProperty(e,"statsEmitter",{enumerable:!0,get:function(){return u.default}});var o=r(d[1]);Object.keys(o).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(n,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return o[t]}}))});var u=t(r(d[2]));r(d[3])},914,[3,915,919,921]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},915,[916]); +__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"ConnectionIndicator",{enumerable:!0,get:function(){return t.default}});var t=n(r(d[1]))},916,[3,917]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),l=t(r(d[2])),o=t(r(d[3])),u=t(r(d[4])),c=t(r(d[5])),f=t(r(d[6])),s=r(d[7]),v=r(d[8]),I=r(d[9]),h=t(r(d[10])),O=r(d[11]),_=[s.IconSignalLevel0,s.IconSignalLevel1,s.IconSignalLevel2],S=(function(t){function s(t){var l;return(0,n.default)(this,s),(l=(0,o.default)(this,(0,u.default)(s).call(this,t))).state={autoHideTimeout:void 0,showIndicator:!1,stats:{}},l}return(0,c.default)(s,t),(0,l.default)(s,[{key:"render",value:function(){var t=this.state,n=t.showIndicator,l=t.stats.percent;if(!n||void 0===l)return null;var o=Math.floor(l/33.4);return f.default.createElement(v.BaseIndicator,{icon:_[o],iconStyle:{color:O.CONNECTOR_INDICATOR_COLORS[o]}})}}]),s})(h.default),C=(0,I.connect)()(S);e.default=C},917,[3,4,5,6,9,10,13,403,394,549,918,920]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.INDICATOR_DISPLAY_THRESHOLD=void 0;var n=t(r(d[1])),o=t(r(d[2])),u=t(r(d[3])),s=t(r(d[4])),p=t(r(d[5])),c=t(r(d[6])),l=t(r(d[7])),f=r(d[8]),h=t(r(d[9]));e.INDICATOR_DISPLAY_THRESHOLD=30;var I=(function(t){function f(t){var n;return(0,o.default)(this,f),(n=(0,s.default)(this,(0,p.default)(f).call(this,t)))._onStatsUpdated=n._onStatsUpdated.bind((0,l.default)((0,l.default)(n))),n}return(0,c.default)(f,t),(0,u.default)(f,[{key:"componentDidMount",value:function(){h.default.subscribeToClientStats(this.props.participantId,this._onStatsUpdated)}},{key:"componentDidUpdate",value:function(t){t.participantId!==this.props.participantId&&(h.default.unsubscribeToClientStats(t.participantId,this._onStatsUpdated),h.default.subscribeToClientStats(this.props.participantId,this._onStatsUpdated))}},{key:"componentWillUnmount",value:function(){h.default.unsubscribeToClientStats(this.props.participantId,this._onStatsUpdated),clearTimeout(this.autoHideTimeout)}},{key:"_onStatsUpdated",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=t.connectionQuality,u=void 0===o?{}:{percent:o},s=(0,n.default)({},this.state.stats,t,u);this.setState({stats:s}),this._updateIndicatorAutoHide(s.percent)}},{key:"_updateIndicatorAutoHide",value:function(t){var n=this;t<30?(clearTimeout(this.autoHideTimeout),this.autoHideTimeout=void 0,this.setState({showIndicator:!0})):this.autoHideTimeout||(this.autoHideTimeout=setTimeout(function(){n.setState({showIndicator:!1})},'undefined'==typeof interfaceConfig?5e3:interfaceConfig.CONNECTION_INDICATOR_AUTO_HIDE_TIMEOUT))}}]),f})(f.Component);e.default=I},918,[3,16,4,5,6,9,10,8,13,919]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),o=t(r(d[2])),s=r(d[3]),u={},f={startListeningForStats:function(t){var n=this;t.on(s.JitsiConnectionQualityEvents.LOCAL_STATS_UPDATED,function(o){return n._onStatsUpdated(t.myUserId(),o)}),t.on(s.JitsiConnectionQualityEvents.REMOTE_STATS_UPDATED,function(t,o){return n._emitStatsUpdate(t,o)}),t.on(s.JitsiE2ePingEvents.E2E_RTT_CHANGED,function(t,o){var s={e2eRtt:o,region:t.getProperty('region')};n._emitStatsUpdate(t.getId(),s)})},subscribeToClientStats:function(t,n){t&&(u[t]||(u[t]=[]),u[t].push(n))},unsubscribeToClientStats:function(t,n){if(u[t]){var o=u[t].filter(function(t){return t!==n});o.length?u[t]=o:delete u[t]}},_emitStatsUpdate:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};(u[t]||[]).forEach(function(t){t(n)})},_onStatsUpdated:function(t,s){var u=this,f=s.framerate||{},c=s.resolution||{},l=(0,n.default)({},s,{framerate:f[t],resolution:c[t]});this._emitStatsUpdate(t,l);var _=Object.keys(f),v=Object.keys(c);o.default.union(_,v).filter(function(n){return n!==t}).forEach(function(t){var n={},o=f[t];o&&(n.framerate=o);var s=c[t];s&&(n.resolution=s),u._emitStatsUpdate(t,n)})}};e.default=f},919,[3,16,551,388]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.CONNECTOR_INDICATOR_COLORS=void 0;var C=r(d[0]),O=[C.ColorPalette.red,C.ColorPalette.Y200,C.ColorPalette.green];e.CONNECTOR_INDICATOR_COLORS=O},920,[406]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]),s=r(d[2]);t.MiddlewareRegistry.register(function(t){return function(t){return function(c){switch(c.type){case n.CONFERENCE_JOINED:s.statsEmitter.startListeningForStats(c.conference)}return t(c)}}})},921,[549,383,914]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.isTestModeEnabled=function(t){var n=t['features/base/config'].testing;return Boolean(n&&n.testMode)}},922,[]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var s=n(r(d[2])),u=n(r(d[3])),l=n(r(d[4])),o=n(r(d[5])),p=n(r(d[6])),f=t(r(d[7])),c=r(d[8]),h=r(d[9]),v=r(d[10]),_=(function(t){function n(){return(0,s.default)(this,n),(0,l.default)(this,(0,o.default)(n).apply(this,arguments))}return(0,p.default)(n,t),(0,u.default)(n,[{key:"render",value:function(){return this.props._testModeEnabled?f.default.createElement(c.Text,{accessibilityLabel:this.props.value,onPress:this.props.onPress,testID:this.props.id}):null}}]),n})(f.Component),b=(0,h.connect)(v._mapStateToProps)(_);e.default=b},923,[2,3,4,5,6,9,10,13,17,549,924]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e._mapStateToProps=function(n){return{_testModeEnabled:(0,t.isTestModeEnabled)(n)}};var t=r(d[0])},924,[922]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=r(d[0]),t={avatarContainer:{alignItems:'center',justifyContent:'center'},connectionInfoText:{color:n.ColorPalette.white,fontSize:12,marginVertical:n.BoxModel.margin,marginHorizontal:n.BoxModel.margin,textAlign:'center'},connectionInfoContainer:{alignSelf:'center',backgroundColor:n.ColorPalette.darkGrey,borderRadius:20,marginTop:n.BoxModel.margin},participantView:{alignItems:'stretch',flex:1,justifyContent:'center'}};e.default=t},925,[406]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0])(r(d[1])),n=r(d[2]),c=r(d[3]),s=r(d[4]),o=r(d[5]),I=r(d[6]),f=r(d[7]),P=r(d[8]),A=r(d[9]),u=r(d[10]),p=r(d[11]),T=r(d[12]),_=r(d[13]);function N(t,n,c){var s=t.getState,o=t.dispatch,I=n(c),f=s()['features/base/settings'];return o((0,A.localParticipantJoined)({avatarID:f.avatarID,avatarURL:f.avatarURL,email:f.email,name:f.displayName})),I}function l(t,n,c){var s=t.dispatch,o=n(c);return s((0,A.localParticipantLeft)()),o}function L(t,n){var s=t.getState,o=t.dispatch,I=s(),f=I['features/base/config'].startAudioMuted;if(!n.participant.local&&(!f||(0,T.getParticipantCount)(I)=s.length)break;f=s[I++]}else{if((I=s.next()).done)break;f=I.value}var P=f;!P.local&&(!t||P.conference!==t)&&c((0,A.participantLeft)(P.id,P.conference))}}),f.StateListenerRegistry.register(function(t){return t['features/base/conference']},function(t,n){var c,s=t.leaving,I=n.dispatch,f=(0,n.getState)(),P=(0,T.getLocalParticipant)(f);P&&(c=P.id)!==p.LOCAL_PARTICIPANT_DEFAULT_ID&&((0,o.forEachConference)(f,function(t){return t===s||t.myUserId()!==c})&&I((0,A.localParticipantIdChanged)(p.LOCAL_PARTICIPANT_DEFAULT_ID)))}),f.StateListenerRegistry.register(function(t){return t['features/base/conference'].conference},function(t,n){t?t.on(I.JitsiConferenceEvents.PARTICIPANT_PROPERTY_CHANGED,function(c,s,o,I){switch(s){case'features_jigasi':n.dispatch((0,A.participantUpdated)({conference:t,id:c.getId(),isJigasi:I}));break;case'features_screen-sharing':n.dispatch((0,A.participantUpdated)({conference:t,id:c.getId(),features:{'screen-sharing':!0}}));break;case'raisedHand':E(n,t,c.getId(),I)}}):E(n,t,void 0,!1)})},926,[3,886,602,927,830,383,388,549,836,548,761,908,762,932]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})})},927,[928,930]); +__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"PresenceLabel",{enumerable:!0,get:function(){return t.default}});var t=n(r(d[1]))},928,[3,929]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=n(r(d[2])),l=n(r(d[3])),s=n(r(d[4])),c=n(r(d[5])),f=n(r(d[6])),p=n(r(d[7])),o=t(r(d[8])),v=r(d[9]),_=r(d[10]),h=r(d[11]),y=r(d[12]),P=r(d[13]),T=r(d[14]),x=(function(t){function n(){return(0,l.default)(this,n),(0,c.default)(this,(0,f.default)(n).apply(this,arguments))}return(0,p.default)(n,t),(0,s.default)(n,[{key:"render",value:function(){var t=this._getPresenceText();if(null===t)return null;var n=this.props,l=n.style,s=n.className;return o.default.createElement(h.Text,(0,u.default)({className:s},l),t)}},{key:"_getPresenceText",value:function(){var t=this.props,n=t._presence,u=t.t;if(!n)return null;var l=P.STATUS_TO_I18N_KEY[n];return l?u(l):n}}]),n})(o.Component);x.defaultProps={_presence:''};var I=(0,v.translate)((0,y.connect)(function(t,n){var u=(0,_.getParticipantById)(t,n.participantID);return{_presence:(0,T.presenceStatusDisabled)()?'':(null==u?void 0:u.presence)||n.defaultPresence}})(x));e.default=I},929,[2,3,16,4,5,6,9,10,13,622,547,394,549,930,931]); +__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.STATUS_TO_I18N_KEY=e.DISCONNECTED=e.CONNECTED_PHONE_NUMBER=e.CONNECTING2=e.CONNECTING=e.INITIALIZING_CALL=e.EXPIRED=e.IGNORED=e.REJECTED=e.BUSY=e.CONNECTED_USER=e.RINGING=e.CALLING=e.INVITED=void 0;var t,c=n(r(d[1]));e.INVITED="Invited";e.CALLING="calling";e.RINGING="ringing";e.CONNECTED_USER="connected";e.BUSY="busy";e.REJECTED="rejected";e.IGNORED="ignored";e.EXPIRED="expired";e.INITIALIZING_CALL="Initializing Call";e.CONNECTING="Connecting";e.CONNECTING2="Connecting*";e.CONNECTED_PHONE_NUMBER="Connected";e.DISCONNECTED="Disconnected";var N=(t={},(0,c.default)(t,"Invited",'presenceStatus.invited'),(0,c.default)(t,"ringing",'presenceStatus.ringing'),(0,c.default)(t,"calling",'presenceStatus.calling'),(0,c.default)(t,"busy",'presenceStatus.busy'),(0,c.default)(t,"rejected",'presenceStatus.rejected'),(0,c.default)(t,"ignored",'presenceStatus.ignored'),(0,c.default)(t,"expired",'presenceStatus.expired'),(0,c.default)(t,"Initializing Call",'presenceStatus.initializingCall'),(0,c.default)(t,"Connecting",'presenceStatus.connecting'),(0,c.default)(t,"Connecting*",'presenceStatus.connecting2'),(0,c.default)(t,"Connected",'presenceStatus.connected'),(0,c.default)(t,"connected",'presenceStatus.connected'),(0,c.default)(t,"Disconnected",'presenceStatus.disconnected'),t);e.STATUS_TO_I18N_KEY=N},930,[3,55]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.presenceStatusDisabled=function(){var n;return Boolean('undefined'!=typeof interfaceConfig&&(null==(n=interfaceConfig)?void 0:n.DISABLE_PRESENCE_STATUS))}},931,[]); __d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.PARTICIPANT_LEFT_FILE=e.PARTICIPANT_JOINED_FILE=void 0;e.PARTICIPANT_JOINED_FILE='joined.wav';e.PARTICIPANT_LEFT_FILE='left.wav'},932,[]); -__d(function(g,r,i,a,m,e,d){var n=r(d[0]),t=n(r(d[1])),c=n(r(d[2])),A=r(d[3]),o=r(d[4]),T=r(d[5]),l=['conference','id','local','dominantSpeaker','pinned'];function I(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},c=arguments.length>1?arguments[1]:void 0;switch(c.type){case o.DOMINANT_SPEAKER_CHANGED:return(0,A.set)(n,'dominantSpeaker',n.id===c.participant.id);case o.PARTICIPANT_ID_CHANGED:var I=c.conference;if(n.id===c.oldValue&&n.conference===I&&(I||n.local))return(0,t.default)({},n,{id:c.newValue});break;case o.SET_LOADABLE_AVATAR_URL:case o.PARTICIPANT_UPDATED:var s=c.participant,P=s.id,p=s.local;if(!P&&p&&(P=T.LOCAL_PARTICIPANT_DEFAULT_ID),n.id===P){var _=(0,t.default)({},n);for(var u in s)s.hasOwnProperty(u)&&-1===l.indexOf(u)&&(_[u]=s[u]);return _}break;case o.PIN_PARTICIPANT:return(0,A.set)(n,'pinned',n.id===c.participant.id)}return n}function s(n){var t=n.participant,c=t.avatarID,A=t.avatarURL,o=t.botType,l=t.connectionStatus,I=t.dominantSpeaker,s=t.email,P=t.isFakeParticipant,p=t.isJigasi,_=t.loadableAvatarUrl,u=t.local,N=t.name,f=t.pinned,R=t.presence,D=t.role,v=t.conference,E=t.id;return u&&(v=void 0,E||(E=T.LOCAL_PARTICIPANT_DEFAULT_ID)),{avatarID:c,avatarURL:A,botType:o,conference:v,connectionStatus:l,dominantSpeaker:I||!1,email:s,id:E,isFakeParticipant:P,isJigasi:p,loadableAvatarUrl:_,local:u||!1,name:N,pinned:f||!1,presence:R,role:D||T.PARTICIPANT_ROLE.NONE}}A.ReducerRegistry.register('features/base/participants',function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0;switch(t.type){case o.SET_LOADABLE_AVATAR_URL:case o.DOMINANT_SPEAKER_CHANGED:case o.PARTICIPANT_ID_CHANGED:case o.PARTICIPANT_UPDATED:case o.PIN_PARTICIPANT:return n.map(function(n){return I(n,t)});case o.PARTICIPANT_JOINED:return(0,c.default)(n).concat([s(t)]);case o.PARTICIPANT_LEFT:var A=t.participant,T=A.conference,l=A.id;return n.filter(function(n){return!(n.id===l&&n.conference===T&&(T||n.local))})}return n})},933,[3,54,32,539,747,909]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.getAvatarColor=function(t){var o=0;if(t){for(var l=0,u=t,v=Array.isArray(u),b=0,u=v?u:u["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var s;if(v){if(b>=u.length)break;s=u[b++]}else{if((b=u.next()).done)break;s=b.value}var y=s;l+=y.codePointAt(0)}o=l%n.length}return"rgba("+n[o]+", "+f+")"},e.getInitials=function(t){for(var n=o.default.split(t,'@')[0],f='',l=o.default.words(n),u=Array.isArray(l),v=0,l=u?l:l["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var b;if(u){if(v>=l.length)break;b=l[v++]}else{if((v=l.next()).done)break;b=v.value}var s=b;f.length<2&&(f+=s.substr(0,1).toUpperCase())}return f};var o=t(r(d[1])),n=['232, 105, 156','255, 198, 115','128, 128, 255','105, 232, 194','234, 255, 128'],f=.4},934,[3,541]); +__d(function(g,r,i,a,m,e,d){var n=r(d[0]),t=n(r(d[1])),c=n(r(d[2])),A=r(d[3]),o=r(d[4]),T=r(d[5]),l=['conference','id','local','dominantSpeaker','pinned'];function I(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},c=arguments.length>1?arguments[1]:void 0;switch(c.type){case o.DOMINANT_SPEAKER_CHANGED:return(0,A.set)(n,'dominantSpeaker',n.id===c.participant.id);case o.PARTICIPANT_ID_CHANGED:var I=c.conference;if(n.id===c.oldValue&&n.conference===I&&(I||n.local))return(0,t.default)({},n,{id:c.newValue});break;case o.SET_LOADABLE_AVATAR_URL:case o.PARTICIPANT_UPDATED:var s=c.participant,P=s.id,p=s.local;if(!P&&p&&(P=T.LOCAL_PARTICIPANT_DEFAULT_ID),n.id===P){var _=(0,t.default)({},n);for(var u in s)s.hasOwnProperty(u)&&-1===l.indexOf(u)&&(_[u]=s[u]);return _}break;case o.PIN_PARTICIPANT:return(0,A.set)(n,'pinned',n.id===c.participant.id)}return n}function s(n){var t=n.participant,c=t.avatarID,A=t.avatarURL,o=t.botType,l=t.connectionStatus,I=t.dominantSpeaker,s=t.email,P=t.isFakeParticipant,p=t.isJigasi,_=t.loadableAvatarUrl,u=t.local,N=t.name,f=t.pinned,R=t.presence,D=t.role,v=t.conference,E=t.id;return u&&(v=void 0,E||(E=T.LOCAL_PARTICIPANT_DEFAULT_ID)),{avatarID:c,avatarURL:A,botType:o,conference:v,connectionStatus:l,dominantSpeaker:I||!1,email:s,id:E,isFakeParticipant:P,isJigasi:p,loadableAvatarUrl:_,local:u||!1,name:N,pinned:f||!1,presence:R,role:D||T.PARTICIPANT_ROLE.NONE}}A.ReducerRegistry.register('features/base/participants',function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0;switch(t.type){case o.SET_LOADABLE_AVATAR_URL:case o.DOMINANT_SPEAKER_CHANGED:case o.PARTICIPANT_ID_CHANGED:case o.PARTICIPANT_UPDATED:case o.PIN_PARTICIPANT:return n.map(function(n){return I(n,t)});case o.PARTICIPANT_JOINED:return(0,c.default)(n).concat([s(t)]);case o.PARTICIPANT_LEFT:var A=t.participant,T=A.conference,l=A.id;return n.filter(function(n){return!(n.id===l&&n.conference===T&&(T||n.local))})}return n})},933,[3,54,32,549,761,908]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.getAvatarColor=function(t){var o=0;if(t){for(var l=0,u=t,v=Array.isArray(u),b=0,u=v?u:u["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var s;if(v){if(b>=u.length)break;s=u[b++]}else{if((b=u.next()).done)break;s=b.value}var y=s;l+=y.codePointAt(0)}o=l%n.length}return"rgba("+n[o]+", "+f+")"},e.getInitials=function(t){for(var n=o.default.split(t,'@')[0],f='',l=o.default.words(n),u=Array.isArray(l),v=0,l=u?l:l["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var b;if(u){if(v>=l.length)break;b=l[v++]}else{if((v=l.next()).done)break;b=v.value}var s=b;f.length<2&&(f+=s.substr(0,1).toUpperCase())}return f};var o=t(r(d[1])),n=['232, 105, 156','255, 198, 115','128, 128, 255','105, 232, 194','234, 255, 128'],f=.4},934,[3,551]); __d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.TINTED_VIEW_DEFAULT=e.UNDERLAY_COLOR=e.AVATAR_SIZE=void 0;var o=t(r(d[1])),n=r(d[2]);e.AVATAR_SIZE=65;e.UNDERLAY_COLOR='rgba(255, 255, 255, 0.2)';var l={pageContainer:{flex:1},pageIndicator:{alignItems:'center',flexDirection:'column',justifyContent:'center',padding:n.BoxModel.padding/2},pageIndicatorActive:{color:n.ColorPalette.white},pageIndicatorContainer:{alignItems:'center',backgroundColor:n.ColorPalette.blue,flexDirection:'row',justifyContent:'space-around'},pageIndicatorContent:{alignItems:'center',flexDirection:'column',justifyContent:'center'},pageIndicatorIcon:{color:n.ColorPalette.blueHighlight,fontSize:24},pageIndicatorText:{color:n.ColorPalette.blueHighlight},pagedList:{flex:1},pagedListContainer:{flex:1,flexDirection:'column'},pagedListContainerDisabled:{opacity:.2}},c={avatarContainer:{alignItems:'center',flexDirection:'row',justifyContent:'space-around',padding:5},avatarContent:{backgroundColor:'rgba(0, 0, 0, 0)',color:"rgba(255, 255, 255, 0.6)",fontSize:Math.floor(32.5),fontWeight:'100',textAlign:'center'},container:{flex:1},list:{flex:1,flexDirection:'column'},listItem:{alignItems:'center',flex:1,flexDirection:'row',padding:5},listItemDetails:{flex:1,flexDirection:'column',overflow:'hidden',paddingHorizontal:5},listItemText:{color:"rgba(255, 255, 255, 0.6)",fontSize:14},listItemTitle:{fontWeight:'bold',fontSize:16},listSection:{alignItems:'center',backgroundColor:'rgba(255, 255, 255, 0.2)',flex:1,flexDirection:'row',paddingVertical:5,paddingHorizontal:10},listSectionText:{color:"rgba(255, 255, 255, 0.6)",fontSize:14,fontWeight:'normal'},pullToRefresh:{alignItems:'center',flex:1,flexDirection:'column',justifyContent:'center',padding:20},pullToRefreshIcon:{backgroundColor:'transparent',color:"rgba(255, 255, 255, 0.6)",fontSize:20},pullToRefreshText:{backgroundColor:'transparent',color:"rgba(255, 255, 255, 0.6)"},secondaryActionContainer:{alignItems:'center',backgroundColor:n.ColorPalette.blue,borderRadius:3,height:30,justifyContent:'center',margin:.5*n.BoxModel.margin,marginRight:n.BoxModel.margin,width:30},secondaryActionLabel:{color:n.ColorPalette.white},touchableView:{flexDirection:'row'}},f={backgroundColor:n.ColorPalette.appBackground,opacity:.8};e.TINTED_VIEW_DEFAULT=f;var s=(0,o.default)({},l,c);e.default=s},935,[3,54,406]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=n(r(d[2])),l=n(r(d[3])),u=n(r(d[4])),s=n(r(d[5])),c=n(r(d[6])),f=t(r(d[7])),h=r(d[8]),p=r(d[9]),y=r(d[10]),v=r(d[11]),_=(function(t){function n(){return(0,o.default)(this,n),(0,u.default)(this,(0,s.default)(n).apply(this,arguments))}return(0,c.default)(n,t),(0,l.default)(n,[{key:"render",value:function(){return f.default.createElement(h.TouchableOpacity,{accessibilityLabel:'Back',onPress:this.props.onPress},f.default.createElement(y.Icon,{src:y.IconArrowBack,style:[this.props._headerStyles.headerButtonIcon,this.props.style]}))}}]),n})(f.Component);var b=(0,v.connect)(function(t){return{_headerStyles:p.ColorSchemeRegistry.get(t,'Header')}})(_);e.default=b},936,[2,3,4,5,6,9,10,13,17,937,403,539]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=n(r(d[2])),l=n(r(d[3])),u=n(r(d[4])),s=n(r(d[5])),c=n(r(d[6])),f=t(r(d[7])),h=r(d[8]),p=r(d[9]),y=r(d[10]),v=r(d[11]),_=(function(t){function n(){return(0,o.default)(this,n),(0,u.default)(this,(0,s.default)(n).apply(this,arguments))}return(0,c.default)(n,t),(0,l.default)(n,[{key:"render",value:function(){return f.default.createElement(h.TouchableOpacity,{accessibilityLabel:'Back',onPress:this.props.onPress},f.default.createElement(y.Icon,{src:y.IconArrowBack,style:[this.props._headerStyles.headerButtonIcon,this.props.style]}))}}]),n})(f.Component);var b=(0,v.connect)(function(t){return{_headerStyles:p.ColorSchemeRegistry.get(t,'Header')}})(_);e.default=b},936,[2,3,4,5,6,9,10,13,17,937,403,549]); __d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0});var o={ColorSchemeRegistry:!0};Object.defineProperty(e,"ColorSchemeRegistry",{enumerable:!0,get:function(){return l.default}});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(o,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}}))});var c=r(d[2]);Object.keys(c).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(o,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return c[t]}}))});var u=r(d[3]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(o,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}}))});var l=t(r(d[4]));r(d[5])},937,[3,938,939,940,941,943]); __d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.setColorScheme=function(t){return{type:o.SET_COLOR_SCHEME,colorScheme:t}};var o=r(d[0])},938,[939]); __d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.SET_COLOR_SCHEME=void 0;e.SET_COLOR_SCHEME='SET_COLOR_SCHEME'},939,[]); __d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.schemeColor=function(n){return function(){return n}}},940,[]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=t(r(d[1])),s=t(r(d[2])),o=t(r(d[3])),u=t(r(d[4])),f=r(d[5]),n=(r(d[6]),t(r(d[7]))),h=new((function(){function t(){(0,o.default)(this,t),this._schemedStyles=new Map,this._styleTemplates=new Map}return(0,u.default)(t,[{key:"clear",value:function(){this._schemedStyles.clear()}},{key:"get",value:function(t,l){var s=this._schemedStyles.get(l);return s||(s=this._applyColorScheme(t,l,this._styleTemplates.get(l)),this._schemedStyles.set(l,s)),s}},{key:"register",value:function(t,l){this._styleTemplates.set(t,l),this._schemedStyles.delete(t)}},{key:"_applyColorScheme",value:function(t,o,u){var f;if(Array.isArray(u)){f=[];var n=u,h=Array.isArray(n),y=0;for(n=h?n:n["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var c;if(h){if(y>=n.length)break;c=n[y++]}else{if((y=n.next()).done)break;c=y.value}var _=c;f.push(this._applyColorScheme(t,o,_))}}else{f=(0,s.default)({},u);for(var v=Object.entries(f),p=0;p0&&void 0!==arguments[0]?arguments[0]:{},o=arguments.length>1?arguments[1]:void 0;switch(o.type){case n.SET_COLOR_SCHEME:return t.default.cloneDeep(o.colorScheme)||c}return c})},943,[3,541,539,939]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=t(r(d[1])),s=t(r(d[2])),o=t(r(d[3])),u=t(r(d[4])),f=r(d[5]),n=(r(d[6]),t(r(d[7]))),h=new((function(){function t(){(0,o.default)(this,t),this._schemedStyles=new Map,this._styleTemplates=new Map}return(0,u.default)(t,[{key:"clear",value:function(){this._schemedStyles.clear()}},{key:"get",value:function(t,l){var s=this._schemedStyles.get(l);return s||(s=this._applyColorScheme(t,l,this._styleTemplates.get(l)),this._schemedStyles.set(l,s)),s}},{key:"register",value:function(t,l){this._styleTemplates.set(t,l),this._schemedStyles.delete(t)}},{key:"_applyColorScheme",value:function(t,o,u){var f;if(Array.isArray(u)){f=[];var n=u,h=Array.isArray(n),y=0;for(n=h?n:n["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var c;if(h){if(y>=n.length)break;c=n[y++]}else{if((y=n.next()).done)break;c=y.value}var _=c;f.push(this._applyColorScheme(t,o,_))}}else{f=(0,s.default)({},u);for(var v=Object.entries(f),p=0;p0&&void 0!==arguments[0]?arguments[0]:{},o=arguments.length>1?arguments[1]:void 0;switch(o.type){case n.SET_COLOR_SCHEME:return t.default.cloneDeep(o.colorScheme)||c}return c})},943,[3,551,549,939]); __d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=l(r(d[2])),u=l(r(d[3])),f=l(r(d[4])),o=l(r(d[5])),c=l(r(d[6])),h=t(r(d[7])),s=r(d[8]),p=r(d[9]),v=l(r(d[10])),y=(function(t){function l(){return(0,n.default)(this,l),(0,f.default)(this,(0,o.default)(l).apply(this,arguments))}return(0,c.default)(l,t),(0,u.default)(l,[{key:"render",value:function(){var t=this.props,l=t.highlight,n=t.icon,u=t.iconStyle;return h.default.createElement(s.View,{style:l?v.default.highlightedIndicator:null},h.default.createElement(p.Icon,{src:n,style:[v.default.indicator,u]}))}}]),l})(h.Component);e.default=y},944,[2,3,4,5,6,9,10,13,17,403,945]); __d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=r(d[0]),t={highlightedIndicator:{backgroundColor:o.ColorPalette.blue,borderRadius:16,padding:4},indicator:{backgroundColor:o.ColorPalette.transparent,color:o.ColorPalette.white,fontSize:12,textShadowColor:o.ColorPalette.black,textShadowOffset:{height:-1,width:0}}};e.default=t},945,[406]); __d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=n(r(d[2])),l=n(r(d[3])),o=n(r(d[4])),f=n(r(d[5])),s=n(r(d[6])),p=t(r(d[7])),c=r(d[8]),h=(function(t){function n(){return(0,u.default)(this,n),(0,o.default)(this,(0,f.default)(n).apply(this,arguments))}return(0,s.default)(n,t),(0,l.default)(n,[{key:"render",value:function(){return p.default.createElement(c.TouchableOpacity,{onPress:this.props.onValueChange},p.default.createElement(c.Text,{style:this.props.style},this.props.children))}}]),n})(p.Component);e.default=h},946,[2,3,4,5,6,9,10,13,17]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]),s=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=s(r(d[2])),n=s(r(d[3])),o=s(r(d[4])),u=s(r(d[5])),p=s(r(d[6])),c=t(r(d[7])),f=r(d[8]),h=r(d[9]),y=r(d[10]),b=r(d[11]),v=(function(t){function s(){return(0,l.default)(this,s),(0,o.default)(this,(0,u.default)(s).apply(this,arguments))}return(0,p.default)(s,t),(0,n.default)(s,[{key:"render",value:function(){var t=this.props._headerStyles;return c.default.createElement(f.TouchableOpacity,{accessibilityLabel:'Forward',disabled:this.props.disabled,onPress:this.props.onPress},c.default.createElement(f.Text,{style:[t.headerButtonText,this.props.disabled&&t.disabledButtonText,this.props.style]},this.props.t(this.props.labelKey)))}}]),s})(c.Component);var _=(0,y.translate)((0,b.connect)(function(t){return{_headerStyles:h.ColorSchemeRegistry.get(t,'Header')}})(v));e.default=_},947,[2,3,4,5,6,9,10,13,17,937,612,539]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=n(r(d[2])),o=n(r(d[3])),u=n(r(d[4])),s=n(r(d[5])),c=n(r(d[6])),f=n(r(d[7])),p=t(r(d[8])),C=r(d[9]),h=r(d[10]),_=r(d[11]),v=r(d[12]),y=r(d[13]),S=(function(t){function n(t){var o;return(0,l.default)(this,n),(o=(0,u.default)(this,(0,s.default)(n).call(this,t)))._getIOS10CompatiblePadding=o._getIOS10CompatiblePadding.bind((0,f.default)((0,f.default)(o))),o}return(0,c.default)(n,t),(0,o.default)(n,[{key:"render",value:function(){var t=this.props._styles;return p.default.createElement(C.View,{style:[t.headerOverlay,this._getIOS10CompatiblePadding()]},p.default.createElement(C.StatusBar,{backgroundColor:t.statusBar,barStyle:this._getStatusBarContentColor(),translucent:!1}),p.default.createElement(C.SafeAreaView,null,p.default.createElement(C.View,{style:[t.screenHeader,this.props.style]},this.props.children)))}},{key:"_getIOS10CompatiblePadding",value:function(){if('ios'===C.Platform.OS&&parseInt(C.Platform.Version,10)<=10)return{paddingTop:y.HEADER_PADDING+20};return null}},{key:"_getStatusBarContentColor",value:function(){var t=this.props._styles,n=t.statusBarContent;if(n)return(0,v.isDarkColor)(n)?"dark-content":"light-content";var l=t.statusBar,o=t.screenHeader;return(0,v.isDarkColor)(l||o.backgroundColor)?"light-content":"dark-content"}}]),n})(p.Component);var b=(0,_.connect)(function(t){return{_styles:h.ColorSchemeRegistry.get(t,'Header')}})(S);e.default=b},948,[2,3,4,5,6,9,10,8,13,17,937,539,406,949]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.HEADER_PADDING=void 0;var o=t(r(d[1])),n=r(d[2]),l=r(d[3]),c=r(d[4]),s=c.BoxModel.padding/2;e.HEADER_PADDING=s,l.ColorSchemeRegistry.register('Header',{disabledButtonText:{opacity:.6},headerButtonIcon:{alignSelf:'center',color:(0,l.schemeColor)('icon'),fontSize:22,marginRight:12,padding:8},headerButtonText:{color:(0,l.schemeColor)('text'),fontSize:18},headerOverlay:{backgroundColor:(0,l.schemeColor)('background')},headerText:{color:(0,l.schemeColor)('text'),fontSize:18},headerTextWrapper:{alignItems:'center',justifyContent:'center',left:0,position:'absolute',right:0},page:(0,o.default)({},n.StyleSheet.absoluteFillObject,{alignItems:'stretch',flex:1,flexDirection:'column',overflow:'hidden'}),screenHeader:{alignItems:'center',backgroundColor:(0,l.schemeColor)('background'),flexDirection:'row',height:48,justifyContent:'space-between',paddingHorizontal:c.BoxModel.padding,paddingVertical:s},statusBar:(0,l.schemeColor)('statusBar'),statusBarContent:(0,l.schemeColor)('statusBarContent')})},949,[3,54,17,937,406]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=n(r(d[2])),u=n(r(d[3])),o=n(r(d[4])),s=n(r(d[5])),f=n(r(d[6])),p=t(r(d[7])),c=r(d[8]),h=r(d[9]),y=r(d[10]),v=r(d[11]),_=(function(t){function n(){return(0,l.default)(this,n),(0,o.default)(this,(0,s.default)(n).apply(this,arguments))}return(0,f.default)(n,t),(0,u.default)(n,[{key:"render",value:function(){var t=this.props._headerStyles;return p.default.createElement(c.View,{pointerEvents:"box-none",style:t.headerTextWrapper},p.default.createElement(c.Text,{style:[t.headerText]},this.props.t(this.props.labelKey)))}}]),n})(p.Component);var x=(0,y.translate)((0,v.connect)(function(t){return{_headerStyles:h.ColorSchemeRegistry.get(t,'Header')}})(_));e.default=x},950,[2,3,4,5,6,9,10,13,17,937,612,539]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),n=l(r(d[3])),s=l(r(d[4])),f=l(r(d[5])),o=l(r(d[6])),p=t(r(d[7])),c=r(d[8]),h=l(r(d[9])),b=l(r(d[10])),y=l(r(d[11])),v=l(r(d[12])),P=(function(t){function l(){return(0,u.default)(this,l),(0,s.default)(this,(0,f.default)(l).apply(this,arguments))}return(0,o.default)(l,t),(0,n.default)(l,[{key:"render",value:function(){var t=this.props,l=t.onPressBack,u=t.onPressForward;return p.default.createElement(y.default,null,l&&p.default.createElement(h.default,{onPress:l}),p.default.createElement(v.default,{labelKey:this.props.headerLabelKey}),u&&p.default.createElement(b.default,{disabled:this.props.forwardDisabled,labelKey:this.props.forwardLabelKey,onPress:u}))}}]),l})(p.Component),E=(0,c.translate)(P);e.default=E},951,[2,3,4,5,6,9,10,13,612,936,947,948,950]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),s=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=s(r(d[2])),n=s(r(d[3])),o=s(r(d[4])),u=s(r(d[5])),p=s(r(d[6])),c=t(r(d[7])),f=r(d[8]),h=r(d[9]),y=r(d[10]),b=r(d[11]),v=(function(t){function s(){return(0,l.default)(this,s),(0,o.default)(this,(0,u.default)(s).apply(this,arguments))}return(0,p.default)(s,t),(0,n.default)(s,[{key:"render",value:function(){var t=this.props._headerStyles;return c.default.createElement(f.TouchableOpacity,{accessibilityLabel:'Forward',disabled:this.props.disabled,onPress:this.props.onPress},c.default.createElement(f.Text,{style:[t.headerButtonText,this.props.disabled&&t.disabledButtonText,this.props.style]},this.props.t(this.props.labelKey)))}}]),s})(c.Component);var _=(0,y.translate)((0,b.connect)(function(t){return{_headerStyles:h.ColorSchemeRegistry.get(t,'Header')}})(v));e.default=_},947,[2,3,4,5,6,9,10,13,17,937,622,549]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=n(r(d[2])),o=n(r(d[3])),u=n(r(d[4])),s=n(r(d[5])),c=n(r(d[6])),f=t(r(d[7])),h=r(d[8]),y=r(d[9]),p=r(d[10]),v=r(d[11]);r(d[12]);var C=(function(t){function n(){return(0,l.default)(this,n),(0,u.default)(this,(0,s.default)(n).apply(this,arguments))}return(0,c.default)(n,t),(0,o.default)(n,[{key:"render",value:function(){var t=this.props._styles;return f.default.createElement(h.View,{style:t.headerOverlay},f.default.createElement(h.StatusBar,{backgroundColor:t.statusBar,barStyle:this._getStatusBarContentColor(),translucent:!1}),f.default.createElement(h.SafeAreaView,null,f.default.createElement(h.View,{style:[t.screenHeader,this.props.style]},this.props.children)))}},{key:"_getStatusBarContentColor",value:function(){var t=this.props._styles,n=t.statusBarContent;if(n)return(0,v.isDarkColor)(n)?"dark-content":"light-content";var l=t.statusBar,o=t.screenHeader;return(0,v.isDarkColor)(l||o.backgroundColor)?"light-content":"dark-content"}}]),n})(f.PureComponent);var _=(0,p.connect)(function(t){return{_styles:y.ColorSchemeRegistry.get(t,'Header')}})(C);e.default=_},948,[2,3,4,5,6,9,10,13,17,937,549,406,949]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0])(r(d[1])),o=r(d[2]),n=r(d[3]),l=r(d[4]),c=l.BoxModel.padding/2;n.ColorSchemeRegistry.register('Header',{disabledButtonText:{opacity:.6},headerButtonIcon:{alignSelf:'center',color:(0,n.schemeColor)('icon'),fontSize:22,marginRight:12,padding:8},headerButtonText:{color:(0,n.schemeColor)('text'),fontSize:18},headerOverlay:{backgroundColor:(0,n.schemeColor)('background')},headerText:{color:(0,n.schemeColor)('text'),fontSize:18},headerTextWrapper:{alignItems:'center',justifyContent:'center',left:0,position:'absolute',right:0},page:(0,t.default)({},o.StyleSheet.absoluteFillObject,{alignItems:'stretch',flex:1,flexDirection:'column',overflow:'hidden'}),screenHeader:{alignItems:'center',backgroundColor:(0,n.schemeColor)('background'),flexDirection:'row',height:48,justifyContent:'space-between',paddingHorizontal:l.BoxModel.padding,paddingVertical:c},statusBar:(0,n.schemeColor)('statusBar'),statusBarContent:(0,n.schemeColor)('statusBarContent')})},949,[3,54,17,937,406]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=n(r(d[2])),u=n(r(d[3])),o=n(r(d[4])),s=n(r(d[5])),f=n(r(d[6])),p=t(r(d[7])),c=r(d[8]),h=r(d[9]),y=r(d[10]),v=r(d[11]),_=(function(t){function n(){return(0,l.default)(this,n),(0,o.default)(this,(0,s.default)(n).apply(this,arguments))}return(0,f.default)(n,t),(0,u.default)(n,[{key:"render",value:function(){var t=this.props._headerStyles;return p.default.createElement(c.View,{pointerEvents:"box-none",style:t.headerTextWrapper},p.default.createElement(c.Text,{style:[t.headerText]},this.props.t(this.props.labelKey)))}}]),n})(p.Component);var x=(0,y.translate)((0,v.connect)(function(t){return{_headerStyles:h.ColorSchemeRegistry.get(t,'Header')}})(_));e.default=x},950,[2,3,4,5,6,9,10,13,17,937,622,549]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),n=l(r(d[3])),s=l(r(d[4])),f=l(r(d[5])),o=l(r(d[6])),p=t(r(d[7])),c=r(d[8]),h=l(r(d[9])),b=l(r(d[10])),y=l(r(d[11])),v=l(r(d[12])),P=(function(t){function l(){return(0,u.default)(this,l),(0,s.default)(this,(0,f.default)(l).apply(this,arguments))}return(0,o.default)(l,t),(0,n.default)(l,[{key:"render",value:function(){var t=this.props,l=t.onPressBack,u=t.onPressForward;return p.default.createElement(y.default,null,l&&p.default.createElement(h.default,{onPress:l}),p.default.createElement(v.default,{labelKey:this.props.headerLabelKey}),u&&p.default.createElement(b.default,{disabled:this.props.forwardDisabled,labelKey:this.props.forwardLabelKey,onPress:u}))}}]),l})(p.Component),E=(0,c.translate)(P);e.default=E},951,[2,3,4,5,6,9,10,13,622,936,947,948,950]); __d(function(g,r,i,a,m,e,d){var t=r(d[0]),u=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=u(r(d[2])),l=u(r(d[3])),f=u(r(d[4])),o=u(r(d[5])),s=u(r(d[6])),c=t(r(d[7])),p=r(d[8]),h=(function(t){function u(){return(0,n.default)(this,u),(0,f.default)(this,(0,o.default)(u).apply(this,arguments))}return(0,s.default)(u,t),(0,l.default)(u,[{key:"render",value:function(){return c.default.createElement(p.Image,{source:this.props.src,style:this.props.style})}}]),u})(c.Component);e.default=h},952,[2,3,4,5,6,9,10,13,17]); __d(function(g,r,i,a,m,e,d){var n=r(d[0]),t=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[2])),s=t(r(d[3])),o=t(r(d[4])),l=t(r(d[5])),f=t(r(d[6])),c=t(r(d[7])),p=n(r(d[8])),h=r(d[9]),v=t(r(d[10])),_=(function(n){function t(n){var s;return(0,u.default)(this,t),(s=(0,o.default)(this,(0,l.default)(t).call(this,n)))._onPress=s._onPress.bind((0,c.default)((0,c.default)(s))),s}return(0,f.default)(t,n),(0,s.default)(t,[{key:"render",value:function(){return p.default.createElement(v.default,{onPress:this._onPress,style:this.props.style},this.props.children)}},{key:"_onLinkingOpenURLRejected",value:function(n){var t=this.props.onLinkingOpenURLRejected;t&&t(n)}},{key:"_onPress",value:function(){var n=this;h.Linking.openURL(this.props.url).catch(function(t){return n._onLinkingOpenURLRejected(t)})}}]),t})(p.Component);e.default=_},953,[2,3,4,5,6,9,10,8,13,17,954]); __d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.Text}});var t=r(d[0])},954,[17]); @@ -974,20 +974,20 @@ __d(function(g,r,i,a,m,e,d){m.exports=["aaa","aarp","abarth","abb","abbott","abb __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){return t}},968,[]); __d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=l(r(d[2])),o=l(r(d[3])),u=l(r(d[4])),f=l(r(d[5])),s=l(r(d[6])),c=l(r(d[7])),p=l(r(d[8])),v=t(r(d[9])),h=r(d[10]),y=r(d[11]),_=(function(t){function l(){return(0,u.default)(this,l),(0,s.default)(this,(0,c.default)(l).apply(this,arguments))}return(0,p.default)(l,t),(0,f.default)(l,[{key:"render",value:function(){var t=this.props.color,l=void 0===t?y.ColorPalette.white:t,u=this.props.size,f=void 0===u?'large':u;'medium'===f&&(f='large');var s=(0,o.default)({animating:!0,color:l},this.props,{size:f});return v.default.createElement(h.ActivityIndicator,(0,n.default)({animating:!0},s,{size:f}))}}]),l})(v.Component);e.default=_},969,[2,3,16,54,4,5,6,9,10,13,17,406]); __d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=n(r(d[2])),l=n(r(d[3])),f=n(r(d[4])),o=n(r(d[5])),p=n(r(d[6])),s=n(r(d[7])),c=n(r(d[8])),h=t(r(d[9])),v=r(d[10]),y=(function(t){function n(){return(0,f.default)(this,n),(0,p.default)(this,(0,s.default)(n).apply(this,arguments))}return(0,c.default)(n,t),(0,o.default)(n,[{key:"render",value:function(){var t=this.props,n=t.children,f=(0,l.default)(t,["children"]);return h.default.createElement(v.Modal,(0,u.default)({animationType:'slide',supportedOrientations:['landscape','portrait'],transparent:!0},f),n)}}]),n})(h.Component);e.default=y},970,[2,3,16,56,4,5,6,9,10,13,17]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),n=l(r(d[3])),f=l(r(d[4])),o=l(r(d[5])),s=l(r(d[6])),c=t(r(d[7])),p=r(d[8]),h=r(d[9]),v=r(d[10]),y=l(r(d[11])),T=(function(t){function l(){return(0,u.default)(this,l),(0,f.default)(this,(0,o.default)(l).apply(this,arguments))}return(0,s.default)(l,t),(0,n.default)(l,[{key:"render",value:function(){var t=this.props.t;return c.default.createElement(p.View,{style:y.default.pullToRefresh},c.default.createElement(p.Text,{style:y.default.pullToRefreshText},t('sectionList.pullToRefresh')),c.default.createElement(v.Icon,{src:v.IconMenuDown,style:y.default.pullToRefreshIcon}))}}]),l})(c.Component),R=(0,h.translate)(T);e.default=R},971,[2,3,4,5,6,9,10,13,17,612,403,935]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),n=l(r(d[3])),f=l(r(d[4])),o=l(r(d[5])),s=l(r(d[6])),c=t(r(d[7])),p=r(d[8]),h=r(d[9]),v=r(d[10]),y=l(r(d[11])),T=(function(t){function l(){return(0,u.default)(this,l),(0,f.default)(this,(0,o.default)(l).apply(this,arguments))}return(0,s.default)(l,t),(0,n.default)(l,[{key:"render",value:function(){var t=this.props.t;return c.default.createElement(p.View,{style:y.default.pullToRefresh},c.default.createElement(p.Text,{style:y.default.pullToRefreshText},t('sectionList.pullToRefresh')),c.default.createElement(v.Icon,{src:v.IconMenuDown,style:y.default.pullToRefreshIcon}))}}]),l})(c.Component),R=(0,h.translate)(T);e.default=R},971,[2,3,4,5,6,9,10,13,17,622,403,935]); __d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=n(r(d[2])),o=n(r(d[3])),u=n(r(d[4])),s=n(r(d[5])),f=n(r(d[6])),c=n(r(d[7])),y=t(r(d[8])),v=n(r(d[9])),p=r(d[10]),b=n(r(d[11])),h=n(r(d[12])),_=n(r(d[13])),k=n(r(d[14])),A=(function(t){function n(t){var o;return(0,l.default)(this,n),(o=(0,u.default)(this,(0,s.default)(n).call(this,t)))._renderItemLine=o._renderItemLine.bind((0,c.default)((0,c.default)(o))),o._renderItemLines=o._renderItemLines.bind((0,c.default)((0,c.default)(o))),o}return(0,f.default)(n,t),(0,o.default)(n,[{key:"_renderItemLine",value:function(t,n){return t?y.default.createElement(_.default,{key:n,numberOfLines:1,style:k.default.listItemText},t):null}},{key:"_renderItemLines",value:function(t){return t&&t.length?t.map(this._renderItemLine):null}},{key:"_renderSecondaryAction",value:function(){var t=this.props.secondaryAction;return y.default.createElement(h.default,{onClick:t,style:k.default.secondaryActionContainer},y.default.createElement(_.default,{style:k.default.secondaryActionLabel},"+"))}},{key:"render",value:function(){var t,n=this.props,l=n.item,o=n.slideActions,u=l.id;if(o){t=[];var s=o,f=Array.isArray(s),c=0;for(s=f?s:s["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var h;if(f){if(c>=s.length)break;h=s[c++]}else{if((c=s.next()).done)break;h=c.value}var _=h;t.push({backgroundColor:_.backgroundColor,onPress:_.onPress.bind(void 0,u),text:_.text})}}return y.default.createElement(v.default,{autoClose:!0,backgroundColor:p.ColorPalette.transparent,right:t},y.default.createElement(b.default,{item:l,onPress:this.props.onPress},this.props.secondaryAction&&this._renderSecondaryAction()))}}]),n})(y.Component);e.default=A},972,[2,3,4,5,6,9,10,8,13,973,406,398,416,954,935]); -__d(function(g,r,i,a,m,e,d){'use strict';Object.defineProperty(e,"__esModule",{value:!0});var t=Object.assign||function(t){for(var n=1;nt.props.sensitivity&&Math.abs(o.dy)<=t.props.sensitivity},onPanResponderGrant:this._handlePanResponderGrant,onPanResponderMove:this._handlePanResponderMove,onPanResponderRelease:this._handlePanResponderEnd,onPanResponderTerminate:this._handlePanResponderEnd,onShouldBlockNativeResponder:function(t,n){return!1},onPanResponderTerminationRequest:function(){return!1}})},componentWillReceiveProps:function(t){t.close&&this._close(),t.openRight&&this._openRight(),t.openLeft&&this._openLeft()},_handlePanResponderGrant:function(t,n){var o=this;this.props.disabled||(this.state.openedLeft||this.state.openedRight?this._callOnClose():this._callOnOpen(),this.refs.swipeoutContent.measure(function(t,n,s,h){var p=o.props.buttonWidth||s/5;o.setState({btnWidth:p,btnsLeftWidth:o.props.left?p*o.props.left.length:0,btnsRightWidth:o.props.right?p*o.props.right.length:0,swiping:!0,timeStart:(new Date).getTime()})}))},_handlePanResponderMove:function(t,n){if(!this.props.disabled){var o=n.dx,s=n.dy,h=this.state.btnsLeftWidth,p=this.state.btnsRightWidth;if(this.state.openedRight)o=n.dx-p;else if(this.state.openedLeft)o=n.dx+h;var l=Math.abs(o)>Math.abs(s);this.props.scroll&&(l?this.props.scroll(!1):this.props.scroll(!0)),this.state.swiping&&(o<0&&this.props.right?this.setState({contentPos:Math.min(o,0)}):o>0&&this.props.left&&this.setState({contentPos:Math.max(o,0)}))}},_handlePanResponderEnd:function(t,n){if(!this.props.disabled){var o=n.dx,s=this.state.contentPos,h=this.state.contentWidth,p=this.state.btnsLeftWidth,l=this.state.btnsRightWidth,u=.33*h,f=o>u||o>p/2,c=o<-u||o<-l/2;if(this.state.openedRight)c=o-u<-u;if(this.state.openedLeft)f=o+u>u;if((new Date).getTime()-this.state.timeStart<200)c=o<-u/10&&!this.state.openedLeft,f=o>u/10&&!this.state.openedRight;this.state.swiping&&(c&&s<0&&o<0?this._open(-l,'right'):f&&s>0&&o>0?this._open(p,'left'):this._close()),this.props.scroll&&this.props.scroll(!0)}},_tweenContent:function(t,o){this.tweenState(t,{easing:n.default.easingTypes.easeInOutQuad,duration:0===o?1.5*this.state.tweenDuration:this.state.tweenDuration,endValue:o})},_rubberBandEasing:function(t,n){return t<0&&t0&&t>n?n+Math.pow(t-n,.85):t},_autoClose:function(t){this.state.autoClose&&this._close();var n=t.onPress;n&&n()},_open:function(t,n){var o='left'===n,s=this.props,h=s.sectionID,p=s.rowID,l=s.onOpen;l&&l(h,p,n),this._tweenContent('contentPos',t),this.setState({contentPos:t,openedLeft:o,openedRight:!o,swiping:!1})},_close:function(){var t=this.props,n=t.sectionID,o=t.rowID,s=t.onClose;s&&(this.state.openedLeft||this.state.openedRight)&&s(n,o,this.state.openedRight?'right':'left');this._tweenContent('contentPos',0),this._callOnClose(),this.setState({openedRight:!1,openedLeft:!1,swiping:!1})},_callOnClose:function(){this.props.onClose&&this.props.onClose(this.props.sectionID,this.props.rowID)},_callOnOpen:function(){this.props.onOpen&&this.props.onOpen(this.props.sectionID,this.props.rowID)},_openRight:function(){var t=this;this.refs.swipeoutContent.measure(function(n,o,s,h){var p=t.props.buttonWidth||s/5;t.setState({btnWidth:p,btnsRightWidth:t.props.right?p*t.props.right.length:0},function(){t._tweenContent('contentPos',-t.state.btnsRightWidth),t._callOnOpen(),t.setState({contentPos:-t.state.btnsRightWidth,openedLeft:!1,openedRight:!0,swiping:!1})})})},_openLeft:function(){var t=this;this.refs.swipeoutContent.measure(function(n,o,s,h){var p=t.props.buttonWidth||s/5;t.setState({btnWidth:p,btnsLeftWidth:t.props.left?p*t.props.left.length:0},function(){t._tweenContent('contentPos',t.state.btnsLeftWidth),t._callOnOpen(),t.setState({contentPos:t.state.btnsLeftWidth,openedLeft:!0,openedRight:!1,swiping:!1})})})},render:function(){var n=this.state.contentWidth,o=this.getTweeningValue('contentPos'),p=[s.default.swipeout,this.props.style];this.props.backgroundColor&&p.push([{backgroundColor:this.props.backgroundColor}]);var l=-this.state.btnsRightWidth;if(o>0)l=this.state.btnsLeftWidth;var f={left:{left:0,overflow:'hidden',width:Math.min(l*(o/l),l)}},c={right:{left:Math.abs(n+Math.max(l,o)),right:0}},b={content:{transform:[{translateX:this._rubberBandEasing(o,l)}]}},w=[s.default.swipeoutContent];w.push(b.content);var y=[s.default.swipeoutBtns];y.push(c.right);var _=[s.default.swipeoutBtns];_.push(f.left);var R=o<0,v=o>0;return h.default.createElement(u.View,{style:p},h.default.createElement(u.View,t({ref:'swipeoutContent',style:w,onLayout:this._onLayout},this._panResponder.panHandlers),this.props.children),this._renderButtons(this.props.right,R,y),this._renderButtons(this.props.left,v,_))},_onLayout:function(t){var n=t.nativeEvent.layout,o=n.width,s=n.height;this.setState({contentWidth:o,contentHeight:s})},_renderButtons:function(t,n,o){return t&&n?h.default.createElement(u.View,{style:o},t.map(this._renderButton)):h.default.createElement(u.View,null)},_renderButton:function(t,n){var o=this;return h.default.createElement(c,{backgroundColor:t.backgroundColor,color:t.color,component:t.component,disabled:t.disabled,height:this.state.contentHeight,key:n,onPress:function(){return o._autoClose(t)},text:t.text,type:t.type,underlayColor:t.underlayColor,width:this.state.btnWidth})}});b.NativeButton=o.default,b.SwipeoutButton=c,e.default=b},973,[974,975,976,13,788,280,17]); +__d(function(g,r,i,a,m,e,d){'use strict';Object.defineProperty(e,"__esModule",{value:!0});var t=Object.assign||function(t){for(var n=1;nt.props.sensitivity&&Math.abs(o.dy)<=t.props.sensitivity},onPanResponderGrant:this._handlePanResponderGrant,onPanResponderMove:this._handlePanResponderMove,onPanResponderRelease:this._handlePanResponderEnd,onPanResponderTerminate:this._handlePanResponderEnd,onShouldBlockNativeResponder:function(t,n){return!1},onPanResponderTerminationRequest:function(){return!1}})},componentWillReceiveProps:function(t){t.close&&this._close(),t.openRight&&this._openRight(),t.openLeft&&this._openLeft()},_handlePanResponderGrant:function(t,n){var o=this;this.props.disabled||(this.state.openedLeft||this.state.openedRight?this._callOnClose():this._callOnOpen(),this.refs.swipeoutContent.measure(function(t,n,s,h){var p=o.props.buttonWidth||s/5;o.setState({btnWidth:p,btnsLeftWidth:o.props.left?p*o.props.left.length:0,btnsRightWidth:o.props.right?p*o.props.right.length:0,swiping:!0,timeStart:(new Date).getTime()})}))},_handlePanResponderMove:function(t,n){if(!this.props.disabled){var o=n.dx,s=n.dy,h=this.state.btnsLeftWidth,p=this.state.btnsRightWidth;if(this.state.openedRight)o=n.dx-p;else if(this.state.openedLeft)o=n.dx+h;var l=Math.abs(o)>Math.abs(s);this.props.scroll&&(l?this.props.scroll(!1):this.props.scroll(!0)),this.state.swiping&&(o<0&&this.props.right?this.setState({contentPos:Math.min(o,0)}):o>0&&this.props.left&&this.setState({contentPos:Math.max(o,0)}))}},_handlePanResponderEnd:function(t,n){if(!this.props.disabled){var o=n.dx,s=this.state.contentPos,h=this.state.contentWidth,p=this.state.btnsLeftWidth,l=this.state.btnsRightWidth,u=.33*h,f=o>u||o>p/2,c=o<-u||o<-l/2;if(this.state.openedRight)c=o-u<-u;if(this.state.openedLeft)f=o+u>u;if((new Date).getTime()-this.state.timeStart<200)c=o<-u/10&&!this.state.openedLeft,f=o>u/10&&!this.state.openedRight;this.state.swiping&&(c&&s<0&&o<0?this._open(-l,'right'):f&&s>0&&o>0?this._open(p,'left'):this._close()),this.props.scroll&&this.props.scroll(!0)}},_tweenContent:function(t,o){this.tweenState(t,{easing:n.default.easingTypes.easeInOutQuad,duration:0===o?1.5*this.state.tweenDuration:this.state.tweenDuration,endValue:o})},_rubberBandEasing:function(t,n){return t<0&&t0&&t>n?n+Math.pow(t-n,.85):t},_autoClose:function(t){this.state.autoClose&&this._close();var n=t.onPress;n&&n()},_open:function(t,n){var o='left'===n,s=this.props,h=s.sectionID,p=s.rowID,l=s.onOpen;l&&l(h,p,n),this._tweenContent('contentPos',t),this.setState({contentPos:t,openedLeft:o,openedRight:!o,swiping:!1})},_close:function(){var t=this.props,n=t.sectionID,o=t.rowID,s=t.onClose;s&&(this.state.openedLeft||this.state.openedRight)&&s(n,o,this.state.openedRight?'right':'left');this._tweenContent('contentPos',0),this._callOnClose(),this.setState({openedRight:!1,openedLeft:!1,swiping:!1})},_callOnClose:function(){this.props.onClose&&this.props.onClose(this.props.sectionID,this.props.rowID)},_callOnOpen:function(){this.props.onOpen&&this.props.onOpen(this.props.sectionID,this.props.rowID)},_openRight:function(){var t=this;this.refs.swipeoutContent.measure(function(n,o,s,h){var p=t.props.buttonWidth||s/5;t.setState({btnWidth:p,btnsRightWidth:t.props.right?p*t.props.right.length:0},function(){t._tweenContent('contentPos',-t.state.btnsRightWidth),t._callOnOpen(),t.setState({contentPos:-t.state.btnsRightWidth,openedLeft:!1,openedRight:!0,swiping:!1})})})},_openLeft:function(){var t=this;this.refs.swipeoutContent.measure(function(n,o,s,h){var p=t.props.buttonWidth||s/5;t.setState({btnWidth:p,btnsLeftWidth:t.props.left?p*t.props.left.length:0},function(){t._tweenContent('contentPos',t.state.btnsLeftWidth),t._callOnOpen(),t.setState({contentPos:t.state.btnsLeftWidth,openedLeft:!0,openedRight:!1,swiping:!1})})})},render:function(){var n=this.state.contentWidth,o=this.getTweeningValue('contentPos'),p=[s.default.swipeout,this.props.style];this.props.backgroundColor&&p.push([{backgroundColor:this.props.backgroundColor}]);var l=-this.state.btnsRightWidth;if(o>0)l=this.state.btnsLeftWidth;var f={left:{left:0,overflow:'hidden',width:Math.min(l*(o/l),l)}},c={right:{left:Math.abs(n+Math.max(l,o)),right:0}},b={content:{transform:[{translateX:this._rubberBandEasing(o,l)}]}},w=[s.default.swipeoutContent];w.push(b.content);var y=[s.default.swipeoutBtns];y.push(c.right);var _=[s.default.swipeoutBtns];_.push(f.left);var R=o<0,v=o>0;return h.default.createElement(u.View,{style:p},h.default.createElement(u.View,t({ref:'swipeoutContent',style:w,onLayout:this._onLayout},this._panResponder.panHandlers),this.props.children),this._renderButtons(this.props.right,R,y),this._renderButtons(this.props.left,v,_))},_onLayout:function(t){var n=t.nativeEvent.layout,o=n.width,s=n.height;this.setState({contentWidth:o,contentHeight:s})},_renderButtons:function(t,n,o){return t&&n?h.default.createElement(u.View,{style:o},t.map(this._renderButton)):h.default.createElement(u.View,null)},_renderButton:function(t,n){var o=this;return h.default.createElement(c,{backgroundColor:t.backgroundColor,color:t.color,component:t.component,disabled:t.disabled,height:this.state.contentHeight,key:n,onPress:function(){return o._autoClose(t)},text:t.text,type:t.type,underlayColor:t.underlayColor,width:this.state.btnWidth})}});b.NativeButton=o.default,b.SwipeoutButton=c,e.default=b},973,[974,975,976,13,802,280,17]); __d(function(g,r,i,a,m,e,d){var n,t;n=this,t=function(){return(function(n){function t(o){if(u[o])return u[o].exports;var c=u[o]={exports:{},id:o,loaded:!1};return n[o].call(c.exports,c,c.exports,t),c.loaded=!0,c.exports}var u={};return t.m=n,t.c=u,t.p="",t(0)})({0:function(n,t,u){n.exports=u(90)},1:function(n,t){function u(){v=!1,f.length?h=f.concat(h):p=-1,h.length&&o()}function o(){if(!v){var n=setTimeout(u);v=!0;for(var t=h.length;t;){for(f=h,h=[];++p1)for(var u=1;uv.duration?v.duration:Math.max(0,s-h);u+=(0===v.duration?v.endValue:v.easing(p,v.beginValue,v.endValue,v.duration))-v.endValue}}return u},_rafCb:function(){var n=this.state;if(0!==n.tweenQueue.length){for(var t=Date.now(),u=[],o=0;on?c*Math.pow(2,10*(n-=1))*Math.sin((n*o-f)*(2*Math.PI)/s)*-.5+t:c*Math.pow(2,-10*(n-=1))*Math.sin((n*o-f)*(2*Math.PI)/s)*.5+l+t)},easeInBack:function(n,t,u,o,c){return void 0===c&&(c=1.70158),(u-t)*(n/=o)*n*((c+1)*n-c)+t},easeOutBack:function(n,t,u,o,c){return void 0===c&&(c=1.70158),(u-t)*((n=n/o-1)*n*((c+1)*n+c)+1)+t},easeInOutBack:function(n,t,u,o,c){var s=u-t;return void 0===c&&(c=1.70158),(n/=o/2)<1?s/2*(n*n*((1+(c*=1.525))*n-c))+t:s/2*((n-=2)*n*((1+(c*=1.525))*n+c)+2)+t},easeInBounce:function(n,t,o,c){var s=o-t;return s-u.easeOutBounce(c-n,0,s,c)+t},easeOutBounce:function(n,t,u,o){var c=u-t;return(n/=o)<.36363636363636365?c*(7.5625*n*n)+t:.7272727272727273>n?c*(7.5625*(n-=.5454545454545454)*n+.75)+t:.9090909090909091>n?c*(7.5625*(n-=.8181818181818182)*n+.9375)+t:c*(7.5625*(n-=.9545454545454546)*n+.984375)+t},easeInOutBounce:function(n,t,o,c){var s=o-t;return c/2>n?.5*u.easeInBounce(2*n,0,s,c)+t:.5*u.easeOutBounce(2*n-c,0,s,c)+.5*s+t}};n.exports=u}})},"object"==typeof e&&"object"==typeof m?m.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof e?e.tweenState=t():n.tweenState=t()},974,[]); -__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0});var s=Object.assign||function(t){for(var s=1;s1?this._renderPagedList(t):p.default.createElement(n[0].component,{disabled:t,style:_.default.pagedList}))}},{key:"_getIndicatorStyle",value:function(t){return this.state.pageIndex===t?_.default.pageIndicatorActive:null}},{key:"_maybeRefreshSelectedPage",value:function(){var t,n=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],l=this.props.pages[this.state.pageIndex];l&&(t=l.component)&&(t.WrappedComponent||t).refresh.call(t,this.props.dispatch,n)}},{key:"_onSelectPage",value:function(t){var n=this;return function(){t=n._validatePageIndex(t);var l=n.props.onSelectPage;l&&l(t),n.setState({pageIndex:t},n._maybeRefreshSelectedPage)}}},{key:"_renderPage",value:function(t,n){return t.component?p.default.createElement(h.View,{style:_.default.pageContainer},p.default.createElement(t.component,{disabled:n})):null}},{key:"_renderPagedList",value:function(t){var n=this,l=this.props.pages,u=this.state.pageIndex;return p.default.createElement(h.View,{style:_.default.pagedListContainer},this._renderPage(l[u],t),p.default.createElement(h.SafeAreaView,{style:_.default.pageIndicatorContainer},l.map(function(l,u){return n._renderPageIndicator(l,u,t)})))}},{key:"_renderPageIndicator",value:function(t,n,l){return t.component?p.default.createElement(h.TouchableOpacity,{disabled:l,key:n,onPress:this._onSelectPage(n),style:_.default.pageIndicator},p.default.createElement(h.View,{style:_.default.pageIndicatorContent},p.default.createElement(y.Icon,{src:t.icon,style:[_.default.pageIndicatorIcon,this._getIndicatorStyle(n)]}),p.default.createElement(h.Text,{style:[_.default.pageIndicatorText,this._getIndicatorStyle(n)]},t.title))):null}},{key:"_validatePageIndex",value:function(t){var n=this.props.pages.filter(function(t){return t.component}).length-1;return Math.max(0,Math.min(n,t))}}]),n})(p.Component),P=(0,v.connect)()(I);e.default=P},978,[2,3,4,5,6,9,10,8,13,17,403,539,935]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=n(r(d[2])),u=n(r(d[3])),o=n(r(d[4])),s=n(r(d[5])),c=n(r(d[6])),f=n(r(d[7])),p=t(r(d[8])),h=r(d[9]),y=r(d[10]),v=r(d[11]),_=n(r(d[12])),I=(function(t){function n(t){var u;return(0,l.default)(this,n),(u=(0,o.default)(this,(0,s.default)(n).call(this,t))).state={pageIndex:u._validatePageIndex(t.defaultPage)},u._maybeRefreshSelectedPage=u._maybeRefreshSelectedPage.bind((0,f.default)((0,f.default)(u))),u}return(0,c.default)(n,t),(0,u.default)(n,[{key:"render",value:function(){var t=this.props.disabled,n=this.props.pages.filter(function(t){return t.component});return p.default.createElement(h.View,{style:[_.default.pagedListContainer,t?_.default.pagedListContainerDisabled:null]},n.length>1?this._renderPagedList(t):p.default.createElement(n[0].component,{disabled:t,style:_.default.pagedList}))}},{key:"_getIndicatorStyle",value:function(t){return this.state.pageIndex===t?_.default.pageIndicatorActive:null}},{key:"_maybeRefreshSelectedPage",value:function(){var t,n=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],l=this.props.pages[this.state.pageIndex];l&&(t=l.component)&&(t.WrappedComponent||t).refresh.call(t,this.props.dispatch,n)}},{key:"_onSelectPage",value:function(t){var n=this;return function(){t=n._validatePageIndex(t);var l=n.props.onSelectPage;l&&l(t),n.setState({pageIndex:t},n._maybeRefreshSelectedPage)}}},{key:"_renderPage",value:function(t,n){return t.component?p.default.createElement(h.View,{style:_.default.pageContainer},p.default.createElement(t.component,{disabled:n})):null}},{key:"_renderPagedList",value:function(t){var n=this,l=this.props.pages,u=this.state.pageIndex;return p.default.createElement(h.View,{style:_.default.pagedListContainer},this._renderPage(l[u],t),p.default.createElement(h.SafeAreaView,{style:_.default.pageIndicatorContainer},l.map(function(l,u){return n._renderPageIndicator(l,u,t)})))}},{key:"_renderPageIndicator",value:function(t,n,l){return t.component?p.default.createElement(h.TouchableOpacity,{disabled:l,key:n,onPress:this._onSelectPage(n),style:_.default.pageIndicator},p.default.createElement(h.View,{style:_.default.pageIndicatorContent},p.default.createElement(y.Icon,{src:t.icon,style:[_.default.pageIndicatorIcon,this._getIndicatorStyle(n)]}),p.default.createElement(h.Text,{style:[_.default.pageIndicatorText,this._getIndicatorStyle(n)]},t.title))):null}},{key:"_validatePageIndex",value:function(t){var n=this.props.pages.filter(function(t){return t.component}).length-1;return Math.max(0,Math.min(n,t))}}]),n})(p.Component),P=(0,v.connect)()(I);e.default=P},978,[2,3,4,5,6,9,10,8,13,17,403,549,935]); __d(function(g,r,i,a,m,e,d){var t=r(d[0]),u=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=u(r(d[2])),l=u(r(d[3])),o=u(r(d[4])),f=u(r(d[5])),s=u(r(d[6])),c=t(r(d[7])),h=r(d[8]),p=(function(t){function u(){return(0,n.default)(this,u),(0,o.default)(this,(0,f.default)(u).apply(this,arguments))}return(0,s.default)(u,t),(0,l.default)(u,[{key:"render",value:function(){var t=this.props,u=t.children,n=t.onPress;return n?c.default.createElement(h.TouchableWithoutFeedback,{onPress:n},u):u}}]),u})(c.Component);e.default=p},979,[2,3,4,5,6,9,10,13,17]); __d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var s=n(r(d[2])),o=n(r(d[3])),p=n(r(d[4])),f=n(r(d[5])),u=n(r(d[6])),l=t(r(d[7])),c=r(d[8]),h=n(r(d[9])),y=(function(t){function n(){return(0,s.default)(this,n),(0,p.default)(this,(0,f.default)(n).apply(this,arguments))}return(0,u.default)(n,t),(0,o.default)(n,[{key:"render",value:function(){return l.default.createElement(c.SafeAreaView,{style:h.default.container},l.default.createElement(c.SectionList,{ListEmptyComponent:this.props.ListEmptyComponent,keyExtractor:this.props.keyExtractor,onRefresh:this.props.onRefresh,refreshing:this.props.refreshing,renderItem:this.props.renderItem,renderSectionHeader:this.props.renderSectionHeader,sections:this.props.sections,style:h.default.list}))}}]),n})(l.Component);e.default=y},980,[2,3,4,5,6,9,10,13,17,935]); __d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=n(r(d[2])),s=n(r(d[3])),l=n(r(d[4])),u=n(r(d[5])),f=n(r(d[6])),h=n(r(d[7])),c=n(r(d[8])),p=n(r(d[9])),v=t(r(d[10])),w=r(d[11]),y=r(d[12]),_=n(r(d[13])),k=(function(t){function n(t){var o;(0,l.default)(this,n),o=(0,u.default)(this,(0,f.default)(n).call(this,t));var s=w.Dimensions.get('window'),h=s.height,c=s.width,v=t.position,y=h;return'left'!==v&&'right'!==v||(y=c),o.state={showOverlay:!1,sliderAnimation:new w.Animated.Value(0),positionOffset:y},o._onHardwareBackPress=o._onHardwareBackPress.bind((0,p.default)((0,p.default)(o))),o._onHide=o._onHide.bind((0,p.default)((0,p.default)(o))),o}return(0,c.default)(n,t),(0,h.default)(n,null,[{key:"getDerivedStateFromProps",value:function(t,n){return{showOverlay:t.show||n.showOverlay}}}]),(0,h.default)(n,[{key:"componentDidMount",value:function(){y.BackButtonRegistry.addListener(this._onHardwareBackPress,!0),this._mounted=!0,this._setShow(this.props.show)}},{key:"componentDidUpdate",value:function(t){var n=this.props.show;t.show!==n&&this._setShow(n)}},{key:"componentWillUnmount",value:function(){y.BackButtonRegistry.removeListener(this._onHardwareBackPress),this._mounted=!1}},{key:"render",value:function(){return this.state.showOverlay?v.default.createElement(w.View,{pointerEvents:"box-none",style:_.default.sliderViewContainer},v.default.createElement(w.TouchableWithoutFeedback,{onPress:this._onHide},v.default.createElement(w.View,{style:_.default.sliderViewShadow})),v.default.createElement(w.Animated.View,{pointerEvents:"box-none",style:this._getContentStyle()},this.props.children)):null}},{key:"_getContentStyle",value:function(){var t=(0,s.default)({},this.props.style,_.default.sliderViewContent),n=this.state.positionOffset;switch(this.props.position){case'bottom':(0,o.default)(t,{bottom:-n,left:0,right:0,top:n},{transform:[{translateY:this.state.sliderAnimation}]});break;case'left':(0,o.default)(t,{bottom:0,left:-n,right:n,top:0},{transform:[{translateX:this.state.sliderAnimation}]})}return t}},{key:"_onHardwareBackPress",value:function(){var t=this.props.onHide;return'function'==typeof t&&t()}},{key:"_onHide",value:function(){var t=this;this._setShow(!1).then(function(){var n=t.props.onHide;n&&n()})}},{key:"_setShow",value:function(t){var n=this;return new Promise(function(o){if(n._mounted){var s=n.state.positionOffset,l=n.props.position,u=s;'bottom'!==l&&'right'!==l||(u=-s),w.Animated.timing(n.state.sliderAnimation,{duration:200,toValue:t?u:0,useNativeDriver:!0}).start(function(s){s.finished&&n._mounted&&!t&&n.setState({showOverlay:!1},function(){n.forceUpdate()}),o()})}else o()})}}]),n})(v.PureComponent);e.default=k},981,[2,3,16,54,4,6,9,5,10,8,13,17,982,985]); __d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"BackButtonRegistry",{enumerable:!0,get:function(){return n.default}});var n=t(r(d[1]));r(d[2])},982,[3,983,984]); __d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),s=t(r(d[2])),l=new((function(){function t(){(0,n.default)(this,t),this._listeners=[]}return(0,s.default)(t,[{key:"addListener",value:function(t){arguments.length>1&&void 0!==arguments[1]&&arguments[1]?this._listeners.splice(0,0,t):this._listeners.push(t)}},{key:"removeListener",value:function(t){this._listeners=this._listeners.filter(function(n){return n!==t})}},{key:"onHardwareBackPress",value:function(){var t=this._listeners,n=Array.isArray(t),s=0;for(t=n?t:t["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var l;if(n){if(s>=t.length)break;l=t[s++]}else{if((s=t.next()).done)break;l=s.value}if(!0===l())return!0}return!1}}]),t})());e.default=l},983,[3,4,5]); -__d(function(g,r,i,a,m,e,d){var n=r(d[0]),t=r(d[1]),s=r(d[2]),c=r(d[3]),u=n(r(d[4]));u.default.onHardwareBackPress=u.default.onHardwareBackPress.bind(u.default),c.MiddlewareRegistry.register(function(){return function(n){return function(c){switch(c.type){case s.APP_WILL_MOUNT:t.BackHandler.addEventListener('hardwareBackPress',u.default.onHardwareBackPress);break;case s.APP_WILL_UNMOUNT:t.BackHandler.removeEventListener('hardwareBackPress',u.default.onHardwareBackPress)}return n(c)}}})},984,[3,17,856,539,983]); +__d(function(g,r,i,a,m,e,d){var n=r(d[0]),t=r(d[1]),s=r(d[2]),c=r(d[3]),u=n(r(d[4]));u.default.onHardwareBackPress=u.default.onHardwareBackPress.bind(u.default),c.MiddlewareRegistry.register(function(){return function(n){return function(c){switch(c.type){case s.APP_WILL_MOUNT:t.BackHandler.addEventListener('hardwareBackPress',u.default.onHardwareBackPress);break;case s.APP_WILL_UNMOUNT:t.BackHandler.removeEventListener('hardwareBackPress',u.default.onHardwareBackPress)}return n(c)}}})},984,[3,17,830,549,983]); __d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=t(r(d[1])),o=r(d[2]),u=r(d[3]),n={sliderViewContainer:(0,l.default)({},o.StyleSheet.absoluteFillObject,{zIndex:u.OVERLAY_Z_INDEX}),sliderViewContent:{position:'absolute'},sliderViewShadow:(0,l.default)({},o.StyleSheet.absoluteFillObject,{backgroundColor:'rgba(0, 0, 0, 0.5)'})};e.default=n},985,[3,54,17,986]); __d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.OVERLAY_Z_INDEX=void 0;e.OVERLAY_Z_INDEX=1e3},986,[]); __d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.Switch}});var t=r(d[0])},987,[17]); @@ -998,635 +998,669 @@ __d(function(g,r,i,a,m,e,d){},991,[]); __d(function(g,r,i,a,m,e,d){function t(t){this.options=t||{locator:{}}}function n(t,n,c){if(!t){if(n instanceof o)return n;t=n}var s={},u=t instanceof Function;function h(n){var o=t[n];!o&&u&&(o=2==t.length?function(o){t(n,o)}:t),s[n]=o&&function(t){o('[xmldom '+n+']\t'+t+l(c))}||function(){}}return c=c||{},h('warning'),h('error'),h('fatalError'),s}function o(){this.cdata=!1}function c(t,n){n.lineNumber=t.lineNumber,n.columnNumber=t.columnNumber}function l(t){if(t)return'\n@'+(t.systemId||'')+'#[line:'+t.lineNumber+',col:'+t.columnNumber+']'}function s(t,n,o){return'string'==typeof t?t.substr(n,o):t.length>=n+o||n?new java.lang.String(t,n,o)+'':t}function u(t,n){t.currentElement?t.currentElement.appendChild(n):t.doc.appendChild(n)}t.prototype.parseFromString=function(t,c){var l=this.options,s=new h,u=l.domBuilder||new o,f=l.errorHandler,p=l.locator,D=l.xmlns||{},E={lt:'<',gt:'>',amp:'&',quot:'"',apos:"'"};return p&&u.setDocumentLocator(p),s.errorHandler=n(f,u,p),s.domBuilder=l.domBuilder||u,/\/x?html?$/.test(c)&&(E.nbsp='\xa0',E.copy='\xa9',D['']='http://www.w3.org/1999/xhtml'),D.xml=D.xml||'http://www.w3.org/XML/1998/namespace',t?s.parse(t,D,E):s.errorHandler.error("invalid doc source"),u.doc},o.prototype={startDocument:function(){this.doc=(new f).createDocument(null,null,null),this.locator&&(this.doc.documentURI=this.locator.systemId)},startElement:function(t,n,o,l){var s=this.doc,h=s.createElementNS(t,o||n),f=l.length;u(this,h),this.currentElement=h,this.locator&&c(this.locator,h);for(var p=0;p65535){var n=55296+((t-=65536)>>10),s=56320+(1023&t);return String.fromCharCode(n,s)}return String.fromCharCode(t)}function l(t){var n=t.slice(1,-1);return n in s?s[n]:'#'===n.charAt(0)?o(parseInt(n.substr(1).replace('x','0x'))):(u.error('entity not found:'+t),t)}function f(n){if(n>O){var s=t.substring(O,n).replace(/&#?\w+;/g,l);x&&h(O),c.characters(s,0,n-O),O=n}}function h(n,s){for(;n>=w&&(s=b.exec(t));)p=s.index,w=p+s[0].length,x.lineNumber++;x.columnNumber=n-p+1}for(var p=0,w=0,b=/.*(?:\r\n?|\n)|.*$/g,x=c.locator,E=[{currentNSMap:n}],M={},O=0;;){try{var T=t.indexOf('<',O);if(T<0){if(!t.substr(O).match(/^\s*$/)){var S=c.doc,q=S.createTextNode(t.substr(O));S.appendChild(q),c.currentElement=q}return}switch(T>O&&f(T),t.charAt(T+1)){case'/':var y=t.indexOf('>',T+3),_=t.substring(T+2,y),I=E.pop();y<0?(_=t.substring(T+2).replace(/[\s<].*/,''),u.error("end tag name: "+_+' is not complete:'+I.tagName),y=T+1+_.length):_.match(/\sO?O=y:f(Math.max(T,O)+1)}}function v(t,n){return n.lineNumber=t.lineNumber,n.columnNumber=t.columnNumber,n}function N(t,n,s,b,x,v){for(var N,F=++n,D=c;;){var k=t.charAt(F);switch(k){case'=':if(D===u)N=t.slice(n,F),D=l;else{if(D!==o)throw new Error('attribute equal must after attrName');D=l}break;case'\'':case'"':if(D===l||D===u){if(D===u&&(v.warning('attribute value must after "="'),N=t.slice(n,F)),n=F+1,!((F=t.indexOf(k,n))>0))throw new Error('attribute value no end \''+k+'\' match');E=t.slice(n,F).replace(/&#?\w+;/g,x),s.add(N,E,n-1),D=h}else{if(D!=f)throw new Error('attribute value must after "="');E=t.slice(n,F).replace(/&#?\w+;/g,x),s.add(N,E,n),v.warning('attribute "'+N+'" missed start quot('+k+')!!'),n=F+1,D=h}break;case'/':switch(D){case c:s.setTagName(t.slice(n,F));case h:case p:case w:D=w,s.closed=!0;case f:case u:case o:break;default:throw new Error("attribute invalid close char('/')")}break;case'':return v.error('unexpected end of input'),D==c&&s.setTagName(t.slice(n,F)),F;case'>':switch(D){case c:s.setTagName(t.slice(n,F));case h:case p:case w:break;case f:case u:'/'===(E=t.slice(n,F)).slice(-1)&&(s.closed=!0,E=E.slice(0,-1));case o:D===o&&(E=N),D==f?(v.warning('attribute "'+E+'" missed quot(")!!'),s.add(N,E.replace(/&#?\w+;/g,x),n)):('http://www.w3.org/1999/xhtml'===b['']&&E.match(/^(?:disabled|checked|selected)$/i)||v.warning('attribute "'+E+'" missed value!! "'+E+'" instead!!'),s.add(E,E,n));break;case l:throw new Error('attribute value missed!!')}return F;case"\x80":k=' ';default:if(k<=' ')switch(D){case c:s.setTagName(t.slice(n,F)),D=p;break;case u:N=t.slice(n,F),D=o;break;case f:var E=t.slice(n,F).replace(/&#?\w+;/g,x);v.warning('attribute "'+E+'" missed quot(")!!'),s.add(N,E,n);case h:D=p}else switch(D){case o:s.tagName;'http://www.w3.org/1999/xhtml'===b['']&&N.match(/^(?:disabled|checked|selected)$/i)||v.warning('attribute "'+N+'" missed value!! "'+N+'" instead2!!'),s.add(N,N,n),n=F,D=u;break;case h:v.warning('attribute space is required"'+N+'"!!');case p:D=u,n=F;break;case l:D=f,n=F;break;case w:throw new Error("elements closed character '/' and '>' must be connected to")}}F++}}function F(t,n,s){for(var c=t.tagName,u=null,o=t.length;o--;){var l=t[o],f=l.qName,h=l.value;if((x=f.indexOf(':'))>0)var p=l.prefix=f.slice(0,x),w=f.slice(x+1),b='xmlns'===p&&w;else w=f,p=null,b='xmlns'===f&&'';l.localName=w,!1!==b&&(null==u&&(u={},E(s,s={})),s[b]=u[b]=h,l.uri='http://www.w3.org/2000/xmlns/',n.startPrefixMapping(b,h))}for(o=t.length;o--;){(p=(l=t[o]).prefix)&&('xml'===p&&(l.uri='http://www.w3.org/XML/1998/namespace'),'xmlns'!==p&&(l.uri=s[p||'']))}var x;(x=c.indexOf(':'))>0?(p=t.prefix=c.slice(0,x),w=t.localName=c.slice(x+1)):(p=null,w=t.localName=c);var v=t.uri=s[p||''];if(n.startElement(v,w,c,t),!t.closed)return t.currentNSMap=s,t.localNSMap=u,!0;if(n.endElement(v,w,c),u)for(p in u)n.endPrefixMapping(p)}function D(t,n,s,c,u){if(/^(?:script|textarea)$/i.test(s)){var o=t.indexOf('',n),l=t.substring(n+1,o);if(/[&<]/.test(l))return/^script$/i.test(s)?(u.characters(l,0,l.length),o):(l=l.replace(/&#?\w+;/g,c),u.characters(l,0,l.length),o)}return n+1}function k(t,n,s,c){var u=c[s];return null==u&&((u=t.lastIndexOf(''))n?(s.comment(t,n+4,u-n-4),u+3):(c.error("Unclosed comment"),-1):-1;default:if('CDATA['==t.substr(n+3,6)){var u=t.indexOf(']]>',n+9);return s.startCDATA(),s.characters(t,n+9,u-n-9),s.endCDATA(),u+3}var o=O(t,n),l=o.length;if(l>1&&/!doctype/i.test(o[0][0])){var f=o[1][0],h=l>3&&/^public$/i.test(o[2][0])&&o[3][0],p=l>4&&o[4][0],w=o[l-1];return s.startDTD(f,h&&h.replace(/^(['"])(.*?)\1$/,'$2'),p&&p.replace(/^(['"])(.*?)\1$/,'$2')),s.endDTD(),w.index+w[0].length}}return-1}function $(t,n,s){var c=t.indexOf('?>',n);if(c){var u=t.substring(n,c).match(/^<\?(\S*)\s*([\s\S]*?)\s*$/);if(u){u[0].length;return s.processingInstruction(u[1],u[2]),c+2}return-1}return-1}function A(t){}function M(t,n){return t.__proto__=n,t}function O(t,n){var s,c=[],u=/'[^']+'|"[^"]+"|[^\s<>\/=]+=?|(\/?\s*>|<)/g;for(u.lastIndex=n,u.exec(t);s=u.exec(t);)if(c.push(s),s[1])return c}b.prototype={parse:function(t,n,s){var c=this.domBuilder;c.startDocument(),E(n,n={}),x(t,n,s,c,this.errorHandler),c.endDocument()}},A.prototype={setTagName:function(t){if(!s.test(t))throw new Error('invalid tagName:'+t);this.tagName=t},add:function(t,n,c){if(!s.test(t))throw new Error('invalid attribute:'+t);this[this.length++]={qName:t,value:n,offset:c}},length:0,getLocalName:function(t){return this[t].localName},getLocator:function(t){return this[t].locator},getQName:function(t){return this[t].qName},getURI:function(t){return this[t].uri},getValue:function(t){return this[t].value}},M({},M.prototype)instanceof M||(M=function(t,n){function s(){}for(n in s.prototype=n,s=new s,t)s[n]=t[n];return s}),e.XMLReader=b},993,[]); __d(function(g,r,i,a,m,e,d){function t(t,n){for(var o in t)n[o]=t[o]}function n(n,o){var u=n.prototype;if(Object.create){var s=Object.create(o.prototype);u.__proto__=s}if(!(u instanceof o)){function l(){}l.prototype=o.prototype,t(u,l=new l),n.prototype=u=l}u.constructor!=n&&('function'!=typeof n&&console.error("unknow Class:"+n),u.constructor=n)}var o='http://www.w3.org/1999/xhtml',u={},s=u.ELEMENT_NODE=1,l=u.ATTRIBUTE_NODE=2,c=u.TEXT_NODE=3,h=u.CDATA_SECTION_NODE=4,p=u.ENTITY_REFERENCE_NODE=5,f=u.ENTITY_NODE=6,N=u.PROCESSING_INSTRUCTION_NODE=7,v=u.COMMENT_NODE=8,w=u.DOCUMENT_NODE=9,E=u.DOCUMENT_TYPE_NODE=10,y=u.DOCUMENT_FRAGMENT_NODE=11,b=u.NOTATION_NODE=12,T={},_={},D=(T.INDEX_SIZE_ERR=(_[1]="Index size error",1),T.DOMSTRING_SIZE_ERR=(_[2]="DOMString size error",2),T.HIERARCHY_REQUEST_ERR=(_[3]="Hierarchy request error",3)),S=(T.WRONG_DOCUMENT_ERR=(_[4]="Wrong document",4),T.INVALID_CHARACTER_ERR=(_[5]="Invalid character",5),T.NO_DATA_ALLOWED_ERR=(_[6]="No data allowed",6),T.NO_MODIFICATION_ALLOWED_ERR=(_[7]="No modification allowed",7),T.NOT_FOUND_ERR=(_[8]="Not found",8)),C=(T.NOT_SUPPORTED_ERR=(_[9]="Not supported",9),T.INUSE_ATTRIBUTE_ERR=(_[10]="Attribute in use",10));T.INVALID_STATE_ERR=(_[11]="Invalid state",11),T.SYNTAX_ERR=(_[12]="Syntax error",12),T.INVALID_MODIFICATION_ERR=(_[13]="Invalid modification",13),T.NAMESPACE_ERR=(_[14]="Invalid namespace",14),T.INVALID_ACCESS_ERR=(_[15]="Invalid access",15);function I(t,n){if(n instanceof Error)var o=n;else o=this,Error.call(this,_[t]),this.message=_[t],Error.captureStackTrace&&Error.captureStackTrace(this,I);return o.code=t,n&&(this.message=this.message+": "+n),o}function A(){}function R(t,n){this._node=t,this._refresh=n,x(this)}function x(n){var o=n._node._inc||n._node.ownerDocument._inc;if(n._inc!=o){var u=n._refresh(n._node);he(n,'length',u.length),t(u,n),n._inc=o}}function O(){}function U(t,n){for(var o=t.length;o--;)if(t[o]===n)return o}function M(t,n,o,u){if(u?n[U(n,u)]=o:n[n.length++]=o,t){o.ownerElement=t;var s=t.ownerDocument;s&&(u&&Y(s,t,u),F(s,t,o))}}function B(t,n,o){var u=U(n,o);if(!(u>=0))throw I(S,new Error(t.tagName+'@'+o));for(var s=n.length-1;u'==t&&'>')||'&'==t&&'&'||'"'==t&&'"'||'&#'+t.charCodeAt()+';'}function k(t,n){if(n(t))return!0;if(t=t.firstChild)do{if(k(t,n))return!0}while(t=t.nextSibling)}function j(){}function F(t,n,o){t&&t._inc++,'http://www.w3.org/2000/xmlns/'==o.namespaceURI&&(n._nsMap[o.prefix?o.localName:'']=o.value)}function Y(t,n,o,u){t&&t._inc++,'http://www.w3.org/2000/xmlns/'==o.namespaceURI&&delete n._nsMap[o.prefix?o.localName:'']}function z(t,n,o){if(t&&t._inc){t._inc++;var u=n.childNodes;if(o)u[u.length++]=o;else{for(var s=n.firstChild,l=0;s;)u[l++]=s,s=s.nextSibling;u.length=l}}}function $(t,n){var o=n.previousSibling,u=n.nextSibling;return o?o.nextSibling=u:t.firstChild=u,u?u.previousSibling=o:t.lastChild=o,z(t.ownerDocument,t),n}function X(t,n,o){var u=n.parentNode;if(u&&u.removeChild(n),n.nodeType===y){var s=n.firstChild;if(null==s)return n;var l=n.lastChild}else s=l=n;var c=o?o.previousSibling:t.lastChild;s.previousSibling=c,l.nextSibling=o,c?c.nextSibling=s:t.firstChild=s,null==o?t.lastChild=l:o.previousSibling=l;do{s.parentNode=t}while(s!==l&&(s=s.nextSibling));return z(t.ownerDocument||t,t),n.nodeType==y&&(n.firstChild=n.lastChild=null),n}function G(t,n){var o=n.parentNode;if(o){var u=t.lastChild;o.removeChild(n);u=t.lastChild}u=t.lastChild;return n.parentNode=t,n.previousSibling=u,n.nextSibling=null,u?u.nextSibling=n:t.firstChild=n,t.lastChild=n,z(t.ownerDocument,t,n),n}function H(){this._nsMap={}}function W(){}function q(){}function Z(){}function Q(){}function J(){}function K(){}function ee(){}function te(){}function ne(){}function re(){}function ie(){}function oe(){}function ae(t,n){var o=[],u=9==this.nodeType?this.documentElement:this,s=u.prefix,l=u.namespaceURI;if(l&&null==s&&null==(s=u.lookupPrefix(l)))var c=[{namespace:l,prefix:null}];return se(this,o,t,n,c),o.join('')}function ue(t,n,o){var u=t.prefix||'',s=t.namespaceURI;if(!u&&!s)return!1;if("xml"===u&&"http://www.w3.org/XML/1998/namespace"===s||'http://www.w3.org/2000/xmlns/'==s)return!1;for(var l=o.length;l--;){var c=o[l];if(c.prefix==u)return c.namespace!=s}return!0}function se(t,n,u,f,b){if(f){if(!(t=f(t)))return;if('string'==typeof t)return void n.push(t)}switch(t.nodeType){case s:b||(b=[]);b.length;var T=t.attributes,_=T.length,D=t.firstChild,S=t.tagName;u=o===t.namespaceURI||u,n.push('<',S);for(var C=0;C<_;C++){'xmlns'==(I=T.item(C)).prefix?b.push({prefix:I.localName,namespace:I.value}):'xmlns'==I.nodeName&&b.push({prefix:'',namespace:I.value})}for(C=0;C<_;C++){var I;if(ue(I=T.item(C),0,b)){var A=I.prefix||'',R=I.namespaceURI,x=A?' xmlns:'+A:" xmlns";n.push(x,'="',R,'"'),b.push({prefix:A,namespace:R})}se(I,n,u,f,b)}if(ue(t,0,b)){A=t.prefix||'',R=t.namespaceURI,x=A?' xmlns:'+A:" xmlns";n.push(x,'="',R,'"'),b.push({prefix:A,namespace:R})}if(D||u&&!/^(?:meta|link|img|br|hr|input)$/i.test(S)){if(n.push('>'),u&&/^script$/i.test(S))for(;D;)D.data?n.push(D.data):se(D,n,u,f,b),D=D.nextSibling;else for(;D;)se(D,n,u,f,b),D=D.nextSibling;n.push('')}else n.push('/>');return;case w:case y:for(D=t.firstChild;D;)se(D,n,u,f,b),D=D.nextSibling;return;case l:return n.push(' ',t.name,'="',t.value.replace(/[<&"]/g,V),'"');case c:return n.push(t.data.replace(/[<&]/g,V));case h:return n.push('');case v:return n.push("\x3c!--",t.data,"--\x3e");case E:var O=t.publicId,U=t.systemId;if(n.push('');else if(U&&'.'!=U)n.push(' SYSTEM "',U,'">');else{var M=t.internalSubset;M&&n.push(" [",M,"]"),n.push(">")}return;case N:return n.push("");case p:return n.push('&',t.nodeName,';');default:n.push('??',t.nodeName)}}function le(t,n,o){var u;switch(n.nodeType){case s:(u=n.cloneNode(!1)).ownerDocument=t;case y:break;case l:o=!0}if(u||(u=n.cloneNode(!1)),u.ownerDocument=t,u.parentNode=null,o)for(var c=n.firstChild;c;)u.appendChild(le(t,c,o)),c=c.nextSibling;return u}function ce(t,n,o){var u=new n.constructor;for(var c in n){var h=n[c];'object'!=typeof h&&h!=u[c]&&(u[c]=h)}switch(n.childNodes&&(u.childNodes=new A),u.ownerDocument=t,u.nodeType){case s:var p=n.attributes,f=u.attributes=new O,N=p.length;f._ownerElement=u;for(var v=0;v0},lookupPrefix:function(t){for(var n=this;n;){var o=n._nsMap;if(o)for(var u in o)if(o[u]==t)return u;n=n.nodeType==l?n.ownerDocument:n.parentNode}return null},lookupNamespaceURI:function(t){for(var n=this;n;){var o=n._nsMap;if(o&&t in o)return o[t];n=n.nodeType==l?n.ownerDocument:n.parentNode}return null},isDefaultNamespace:function(t){return null==this.lookupPrefix(t)}},t(u,L),t(u,L.prototype),j.prototype={nodeName:'#document',nodeType:w,doctype:null,documentElement:null,_inc:1,insertBefore:function(t,n){if(t.nodeType==y){for(var o=t.firstChild;o;){var u=o.nextSibling;this.insertBefore(o,n),o=u}return t}return null==this.documentElement&&t.nodeType==s&&(this.documentElement=t),X(this,t,n),t.ownerDocument=this,t},removeChild:function(t){return this.documentElement==t&&(this.documentElement=null),$(this,t)},importNode:function(t,n){return le(this,t,n)},getElementById:function(t){var n=null;return k(this.documentElement,function(o){if(o.nodeType==s&&o.getAttribute('id')==t)return n=o,!0}),n},createElement:function(t){var n=new H;return n.ownerDocument=this,n.nodeName=t,n.tagName=t,n.childNodes=new A,(n.attributes=new O)._ownerElement=n,n},createDocumentFragment:function(){var t=new re;return t.ownerDocument=this,t.childNodes=new A,t},createTextNode:function(t){var n=new Z;return n.ownerDocument=this,n.appendData(t),n},createComment:function(t){var n=new Q;return n.ownerDocument=this,n.appendData(t),n},createCDATASection:function(t){var n=new J;return n.ownerDocument=this,n.appendData(t),n},createProcessingInstruction:function(t,n){var o=new ie;return o.ownerDocument=this,o.tagName=o.target=t,o.nodeValue=o.data=n,o},createAttribute:function(t){var n=new W;return n.ownerDocument=this,n.name=t,n.nodeName=t,n.localName=t,n.specified=!0,n},createEntityReference:function(t){var n=new ne;return n.ownerDocument=this,n.nodeName=t,n},createElementNS:function(t,n){var o=new H,u=n.split(':'),s=o.attributes=new O;return o.childNodes=new A,o.ownerDocument=this,o.nodeName=n,o.tagName=n,o.namespaceURI=t,2==u.length?(o.prefix=u[0],o.localName=u[1]):o.localName=n,s._ownerElement=o,o},createAttributeNS:function(t,n){var o=new W,u=n.split(':');return o.ownerDocument=this,o.nodeName=n,o.name=n,o.namespaceURI=t,o.specified=!0,2==u.length?(o.prefix=u[0],o.localName=u[1]):o.localName=n,o}},n(j,L),H.prototype={nodeType:s,hasAttribute:function(t){return null!=this.getAttributeNode(t)},getAttribute:function(t){var n=this.getAttributeNode(t);return n&&n.value||''},getAttributeNode:function(t){return this.attributes.getNamedItem(t)},setAttribute:function(t,n){var o=this.ownerDocument.createAttribute(t);o.value=o.nodeValue=""+n,this.setAttributeNode(o)},removeAttribute:function(t){var n=this.getAttributeNode(t);n&&this.removeAttributeNode(n)},appendChild:function(t){return t.nodeType===y?this.insertBefore(t,null):G(this,t)},setAttributeNode:function(t){return this.attributes.setNamedItem(t)},setAttributeNodeNS:function(t){return this.attributes.setNamedItemNS(t)},removeAttributeNode:function(t){return this.attributes.removeNamedItem(t.nodeName)},removeAttributeNS:function(t,n){var o=this.getAttributeNodeNS(t,n);o&&this.removeAttributeNode(o)},hasAttributeNS:function(t,n){return null!=this.getAttributeNodeNS(t,n)},getAttributeNS:function(t,n){var o=this.getAttributeNodeNS(t,n);return o&&o.value||''},setAttributeNS:function(t,n,o){var u=this.ownerDocument.createAttributeNS(t,n);u.value=u.nodeValue=""+o,this.setAttributeNode(u)},getAttributeNodeNS:function(t,n){return this.attributes.getNamedItemNS(t,n)},getElementsByTagName:function(t){return new R(this,function(n){var o=[];return k(n,function(u){u===n||u.nodeType!=s||'*'!==t&&u.tagName!=t||o.push(u)}),o})},getElementsByTagNameNS:function(t,n){return new R(this,function(o){var u=[];return k(o,function(l){l===o||l.nodeType!==s||'*'!==t&&l.namespaceURI!==t||'*'!==n&&l.localName!=n||u.push(l)}),u})}},j.prototype.getElementsByTagName=H.prototype.getElementsByTagName,j.prototype.getElementsByTagNameNS=H.prototype.getElementsByTagNameNS,n(H,L),W.prototype.nodeType=l,n(W,L),q.prototype={data:'',substringData:function(t,n){return this.data.substring(t,t+n)},appendData:function(t){t=this.data+t,this.nodeValue=this.data=t,this.length=t.length},insertData:function(t,n){this.replaceData(t,0,n)},appendChild:function(t){throw new Error(_[D])},deleteData:function(t,n){this.replaceData(t,n,"")},replaceData:function(t,n,o){o=this.data.substring(0,t)+o+this.data.substring(t+n),this.nodeValue=this.data=o,this.length=o.length}},n(q,L),Z.prototype={nodeName:"#text",nodeType:c,splitText:function(t){var n=this.data,o=n.substring(t);n=n.substring(0,t),this.data=this.nodeValue=n,this.length=n.length;var u=this.ownerDocument.createTextNode(o);return this.parentNode&&this.parentNode.insertBefore(u,this.nextSibling),u}},n(Z,q),Q.prototype={nodeName:"#comment",nodeType:v},n(Q,q),J.prototype={nodeName:"#cdata-section",nodeType:h},n(J,q),K.prototype.nodeType=E,n(K,L),ee.prototype.nodeType=b,n(ee,L),te.prototype.nodeType=f,n(te,L),ne.prototype.nodeType=p,n(ne,L),re.prototype.nodeName="#document-fragment",re.prototype.nodeType=y,n(re,L),ie.prototype.nodeType=N,n(ie,L),oe.prototype.serializeToString=function(t,n,o){return ae.call(t,n,o)},L.prototype.toString=ae;try{if(Object.defineProperty){function pe(t){switch(t.nodeType){case s:case y:var n=[];for(t=t.firstChild;t;)7!==t.nodeType&&8!==t.nodeType&&n.push(pe(t)),t=t.nextSibling;return n.join('');default:return t.nodeValue}}Object.defineProperty(R.prototype,'length',{get:function(){return x(this),this.$$length}}),Object.defineProperty(L.prototype,'textContent',{get:function(){return pe(this)},set:function(t){switch(this.nodeType){case s:case y:for(;this.firstChild;)this.removeChild(this.firstChild);(t||String(t))&&this.appendChild(this.ownerDocument.createTextNode(t));break;default:this.data=t,this.value=t,this.nodeValue=t}}}),he=function(t,n,o){t['$$'+n]=o}}}catch(t){}e.DOMImplementation=P,e.XMLSerializer=oe},994,[]); -__d(function(e,t,r,i,s,a,n){s.exports={_args:[["react-native@0.61.3","/usr/local/var/jenkins/workspace/jitsi-meet-ios-sdk/jitsi-meet"]],_from:"react-native@0.61.3",_id:"react-native@0.61.3",_inBundle:!1,_integrity:"sha512-7p89m62+Wsc93tYEy010LZMZtQMOQjUC8nOiVF+XPBn4Fa3WUt7IlQjKs9tO9rcByZ4ilzeMp+W2kr1/U2lPLw==",_location:"/react-native",_phantomChildren:{"@hapi/joi":"15.1.1","@react-native-community/cli-platform-android":"3.0.0-alpha.7","@react-native-community/cli-platform-ios":"3.0.0-alpha.7","@react-native-community/cli-tools":"3.0.0-alpha.7","@react-native-community/cli-types":"3.0.0-alpha.7","@types/mkdirp":"0.5.2","@types/node-notifier":"5.4.0","@types/semver":"6.2.0","@types/ws":"6.0.3","color-convert":"1.9.1","command-exists":"1.2.8",commander:"2.20.0",compression:"1.7.4",connect:"3.7.0","core-js":"2.5.3",cosmiconfig:"5.2.0",deepmerge:"3.3.0",envinfo:"7.4.0",errorhandler:"1.5.1","escape-string-regexp":"1.0.5",execa:"1.0.0","fbjs-css-vars":"1.0.2","fs-extra":"7.0.1",glob:"7.1.2","graceful-fs":"4.1.11",inquirer:"3.3.0","isomorphic-fetch":"2.2.1","js-tokens":"3.0.2",lodash:"4.17.13","loose-envify":"1.3.1",metro:"0.56.3","metro-config":"0.56.3","metro-core":"0.56.3","metro-react-native-babel-transformer":"0.56.3",minimist:"1.2.0",mkdirp:"0.5.1",morgan:"1.9.1","node-notifier":"5.4.3","object-assign":"4.1.1",open:"6.4.0",ora:"3.4.0",plist:"3.0.1",promise:"7.3.1","serve-static":"1.13.2",setimmediate:"1.0.5","shell-quote":"1.6.1","sudo-prompt":"9.0.0",wcwidth:"1.0.1",ws:"1.1.5"},_requested:{type:"version",registry:!0,raw:"react-native@0.61.3",name:"react-native",escapedName:"react-native",rawSpec:"0.61.3",saveSpec:null,fetchSpec:"0.61.3"},_requiredBy:["/"],_resolved:"https://registry.npmjs.org/react-native/-/react-native-0.61.3.tgz",_spec:"0.61.3",_where:"/usr/local/var/jenkins/workspace/jitsi-meet-ios-sdk/jitsi-meet",bin:{"react-native":"./cli.js"},bugs:{url:"https://github.com/facebook/react-native/issues"},dependencies:{"@babel/runtime":"^7.0.0","@react-native-community/cli":"^3.0.0-alpha.1","@react-native-community/cli-platform-android":"^3.0.0-alpha.1","@react-native-community/cli-platform-ios":"^3.0.0-alpha.1","abort-controller":"^3.0.0",art:"^0.10.0","base64-js":"^1.1.2",connect:"^3.6.5","create-react-class":"^15.6.3","escape-string-regexp":"^1.0.5","event-target-shim":"^5.0.1",fbjs:"^1.0.0","fbjs-scripts":"^1.1.0","hermes-engine":"^0.2.1",invariant:"^2.2.4","jsc-android":"^245459.0.0","metro-babel-register":"^0.56.0","metro-react-native-babel-transformer":"^0.56.0","metro-source-map":"^0.56.0",nullthrows:"^1.1.0","pretty-format":"^24.7.0",promise:"^7.1.1","prop-types":"^15.7.2","react-devtools-core":"^3.6.3","react-refresh":"^0.4.0","regenerator-runtime":"^0.13.2",scheduler:"0.15.0","stacktrace-parser":"^0.1.3","whatwg-fetch":"^3.0.0"},description:"A framework for building native apps using React",detox:{"test-runner":"jest","runner-config":"RNTester/e2e/config.json",specs:"",configurations:{"ios.sim.release":{binaryPath:"RNTester/build/Build/Products/Release-iphonesimulator/RNTester.app/",build:"xcodebuild -workspace RNTester/RNTesterPods.xcworkspace -scheme RNTester -configuration Release -sdk iphonesimulator -derivedDataPath RNTester/build -UseModernBuildSystem=NO -quiet",type:"ios.simulator",name:"iPhone 6s"},"ios.sim.debug":{binaryPath:"RNTester/build/Build/Products/Debug-iphonesimulator/RNTester.app/",build:"xcodebuild -workspace RNTester/RNTesterPods.xcworkspace -scheme RNTester -configuration Debug -sdk iphonesimulator -derivedDataPath RNTester/build -UseModernBuildSystem=NO -quiet",type:"ios.simulator",name:"iPhone 6s"}}},devDependencies:{"@babel/core":"^7.0.0","@babel/generator":"^7.0.0","@react-native-community/eslint-plugin":"1.0.0","@reactions/component":"^2.0.2",async:"^2.4.0","babel-eslint":"10.0.1","clang-format":"^1.2.4",coveralls:"^3.0.2",detox:"12.2.0",eslint:"5.1.0","eslint-config-fb-strict":"24.3.0","eslint-config-fbjs":"2.1.0","eslint-config-prettier":"^6.0.0","eslint-plugin-babel":"^5.3.0","eslint-plugin-eslint-comments":"^3.1.1","eslint-plugin-flowtype":"2.50.3","eslint-plugin-jest":"22.4.1","eslint-plugin-jsx-a11y":"6.2.1","eslint-plugin-prettier":"2.6.2","eslint-plugin-react":"7.12.4","eslint-plugin-react-hooks":"^1.5.1","eslint-plugin-react-native":"3.6.0","eslint-plugin-relay":"1.3.0","flow-bin":"^0.105.0","flow-remove-types":"1.2.3",jest:"^24.8.0","jest-junit":"^6.3.0",jscodeshift:"^0.6.2",mkdirp:"^0.5.1",prettier:"1.17.0",react:"16.9.0","react-test-renderer":"16.9.0",shelljs:"^0.7.8",ws:"^6.1.4",yargs:"^9.0.0"},engines:{node:">=8.3"},files:[".flowconfig","android","cli.js","flow","init.sh","scripts/compose-source-maps.js","scripts/ios-configure-glog.sh","scripts/ios-install-third-party.sh","scripts/launchPackager.bat","scripts/launchPackager.command","scripts/node-binary.sh","scripts/packager.sh","scripts/react-native-xcode.sh","jest-preset.js","jest","lib","rn-get-polyfills.js","Libraries","LICENSE","packager","react-native.config.js","react.gradle","React.podspec","React-Core.podspec","React","ReactAndroid","ReactCommon","README.md","third-party-podspecs","template","local-cli","template.config.js","!template/node_modules","!template/yarn.lock","!template/package-lock.json"],homepage:"https://github.com/facebook/react-native#readme","jest-junit":{outputDirectory:"reports/junit",outputName:"js-test-results.xml"},license:"MIT",main:"Libraries/react-native/react-native-implementation.js",name:"react-native",peerDependencies:{react:"16.9.0"},repository:{type:"git",url:"git+ssh://git@github.com/facebook/react-native.git"},scripts:{"build-ios-e2e":"detox build -c ios.sim.release","clang-format":"clang-format -i --glob=*/**/*.{h,cpp,m,mm}","docker-build-android":"docker build -t reactnativeci/android -f .circleci/Dockerfiles/Dockerfile.android .","docker-setup-android":"docker pull reactnativecommunity/react-native-android",flow:"flow","flow-check-android":"flow check --flowconfig-name .flowconfig.android","flow-check-ios":"flow check",format:"npm run prettier && npm run clang-format","format-check":"prettier --list-different \"./**/*.{js,md,yml}\"",lint:"eslint .","lint-ci":"./scripts/circleci/analyze_code.sh && yarn shellcheck",prettier:"prettier --write \"./**/*.{js,md,yml}\"",shellcheck:"./scripts/circleci/analyze_scripts.sh",start:"react-native start",test:"jest","test-android-all":"yarn run docker-build-android && yarn run test-android-run-unit && yarn run test-android-run-instrumentation && yarn run test-android-run-e2e","test-android-e2e":"yarn run docker-build-android && yarn run test-android-run-e2e","test-android-instrumentation":"yarn run docker-build-android && yarn run test-android-run-instrumentation","test-android-run-e2e":"docker run --privileged -it reactnativeci/android bash .circleci/Dockerfiles/scripts/run-ci-e2e-tests.sh --android --js","test-android-run-instrumentation":"docker run --cap-add=SYS_ADMIN -it reactnativeci/android bash .circleci/Dockerfiles/scripts/run-android-docker-instrumentation-tests.sh","test-android-run-unit":"docker run --cap-add=SYS_ADMIN -it reactnativeci/android bash .circleci/Dockerfiles/scripts/run-android-docker-unit-tests.sh","test-android-unit":"yarn run docker-build-android && yarn run test-android-run-unit","test-ci":"jest --maxWorkers=2 --ci --reporters=\"default\" --reporters=\"jest-junit\"","test-ios":"./scripts/objc-test.sh test","test-ios-e2e":"detox test -c ios.sim.release RNTester/e2e"},version:"0.61.3"}},995,[]); -__d(function(g,r,i,a,m,e,d){var n=r(d[0]),o=r(d[1]),t=n(r(d[2]));!(function(n){void 0===n.MediaStream&&(n.MediaStream=o.MediaStream),void 0===n.MediaStreamTrack&&(n.MediaStreamTrack=o.MediaStreamTrack),void 0===n.RTCIceCandidate&&(n.RTCIceCandidate=o.RTCIceCandidate),void 0===n.RTCPeerConnection&&(n.RTCPeerConnection=t.default),void 0===n.RTCPeerConnection&&(n.webkitRTCPeerConnection=t.default),void 0===n.RTCSessionDescription&&(n.RTCSessionDescription=o.RTCSessionDescription);var s=n.navigator;s&&(void 0===s.mediaDevices&&(s.mediaDevices=o.mediaDevices),void 0===s.permissions&&(s.permissions=o.permissions))})(g||window||this)},996,[3,763,997]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=p;var n=t(r(d[1])),o=t(r(d[2])),u=r(d[3]),s=r(d[4]),f=t(r(d[5]));function p(){for(var t=this,n=arguments.length,o=new Array(n),u=0;u=10&&'typ'===c[6]){for(var v=[c[4]],h=!1,y=8;y=8.3"},files:[".flowconfig","android","cli.js","flow","init.sh","scripts/compose-source-maps.js","scripts/ios-configure-glog.sh","scripts/ios-install-third-party.sh","scripts/launchPackager.bat","scripts/launchPackager.command","scripts/node-binary.sh","scripts/packager.sh","scripts/react-native-xcode.sh","jest-preset.js","jest","lib","rn-get-polyfills.js","Libraries","LICENSE","packager","react-native.config.js","react.gradle","React.podspec","React-Core.podspec","React","ReactAndroid","ReactCommon","README.md","third-party-podspecs","template","local-cli","template.config.js","!template/node_modules","!template/yarn.lock","!template/package-lock.json"],homepage:"https://github.com/facebook/react-native#readme","jest-junit":{outputDirectory:"reports/junit",outputName:"js-test-results.xml"},license:"MIT",main:"Libraries/react-native/react-native-implementation.js",name:"react-native",peerDependencies:{react:"16.9.0"},repository:{type:"git",url:"git+ssh://git@github.com/facebook/react-native.git"},scripts:{"build-ios-e2e":"detox build -c ios.sim.release","clang-format":"clang-format -i --glob=*/**/*.{h,cpp,m,mm}","docker-build-android":"docker build -t reactnativeci/android -f .circleci/Dockerfiles/Dockerfile.android .","docker-setup-android":"docker pull reactnativecommunity/react-native-android",flow:"flow","flow-check-android":"flow check --flowconfig-name .flowconfig.android","flow-check-ios":"flow check",format:"npm run prettier && npm run clang-format","format-check":"prettier --list-different \"./**/*.{js,md,yml}\"",lint:"eslint .","lint-ci":"./scripts/circleci/analyze_code.sh && yarn shellcheck",prettier:"prettier --write \"./**/*.{js,md,yml}\"",shellcheck:"./scripts/circleci/analyze_scripts.sh",start:"react-native start",test:"jest","test-android-all":"yarn run docker-build-android && yarn run test-android-run-unit && yarn run test-android-run-instrumentation && yarn run test-android-run-e2e","test-android-e2e":"yarn run docker-build-android && yarn run test-android-run-e2e","test-android-instrumentation":"yarn run docker-build-android && yarn run test-android-run-instrumentation","test-android-run-e2e":"docker run --privileged -it reactnativeci/android bash .circleci/Dockerfiles/scripts/run-ci-e2e-tests.sh --android --js","test-android-run-instrumentation":"docker run --cap-add=SYS_ADMIN -it reactnativeci/android bash .circleci/Dockerfiles/scripts/run-android-docker-instrumentation-tests.sh","test-android-run-unit":"docker run --cap-add=SYS_ADMIN -it reactnativeci/android bash .circleci/Dockerfiles/scripts/run-android-docker-unit-tests.sh","test-android-unit":"yarn run docker-build-android && yarn run test-android-run-unit","test-ci":"jest --maxWorkers=2 --ci --reporters=\"default\" --reporters=\"jest-junit\"","test-ios":"./scripts/objc-test.sh test","test-ios-e2e":"detox test -c ios.sim.release RNTester/e2e"},version:"0.61.5-jitsi.1"}},995,[]); +__d(function(g,r,i,a,m,e,d){var n=r(d[0]),o=r(d[1]),t=n(r(d[2]));!(function(n){void 0===n.MediaStream&&(n.MediaStream=o.MediaStream),void 0===n.MediaStreamTrack&&(n.MediaStreamTrack=o.MediaStreamTrack),void 0===n.RTCIceCandidate&&(n.RTCIceCandidate=o.RTCIceCandidate),void 0===n.RTCPeerConnection&&(n.RTCPeerConnection=t.default),void 0===n.RTCPeerConnection&&(n.webkitRTCPeerConnection=t.default),void 0===n.RTCSessionDescription&&(n.RTCSessionDescription=o.RTCSessionDescription);var s=n.navigator;s&&(void 0===s.mediaDevices&&(s.mediaDevices=o.mediaDevices),void 0===s.permissions&&(s.permissions=o.permissions))})(g||window||this)},996,[3,777,997]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=p;var n=t(r(d[1])),o=t(r(d[2])),u=r(d[3]),s=r(d[4]),f=t(r(d[5]));function p(){for(var t=this,n=arguments.length,o=new Array(n),u=0;u=10&&'typ'===c[6]){for(var v=[c[4]],h=!1,y=8;y>18&63)+s.charAt(h>>12&63)+s.charAt(h>>6&63)+s.charAt(63&h);return 2==A?(n=t.charCodeAt(p)<<8,o=t.charCodeAt(++p),l+=s.charAt((h=n+o)>>10)+s.charAt(h>>4&63)+s.charAt(h<<2&63)+'='):1==A&&(h=t.charCodeAt(p),l+=s.charAt(h>>2)+s.charAt(h<<4&63)+'=='),l},decode:function(t){var n=(t=String(t).replace(A,'')).length;n%4==0&&(n=(t=t.replace(/==?$/,'')).length),(n%4==1||/[^+a-zA-Z0-9/]/.test(t))&&f('Invalid character: the string to be decoded is not correctly encoded.');for(var o,c,h=0,l='',p=-1;++p>(-2*h&6)));return l},version:'0.1.0'};if('function'==typeof define&&'object'==typeof define.amd&&define.amd)define(function(){return l});else if(n&&!n.nodeType)if(o)o.exports=l;else for(var p in l)l.hasOwnProperty(p)&&(n[p]=l[p]);else t.base64=l})(this)},1000,[]); __d(function(g,r,i,a,m,e,d){'use strict';!(function(n){function t(n,t,o){var h,l,A,p,E,H,v,S,U,k=0,F=[],R=0,y=!1,B=[],L=[],T=!1,C=!1,Y=-1;if(h=(o=o||{}).encoding||"UTF8",(U=o.numRounds||1)!==parseInt(U,10)||1>U)throw Error("numRounds must a integer >= 1");if("SHA-1"===n)E=512,H=N,v=j,p=160,S=function(n){return n.slice()};else if(0===n.lastIndexOf("SHA-",0))if(H=function(t,o){return z(t,o,n)},v=function(t,o,u,f){var w,s;if("SHA-224"===n||"SHA-256"===n)w=15+(o+65>>>9<<4),s=16;else{if("SHA-384"!==n&&"SHA-512"!==n)throw Error("Unexpected error in SHA-2 implementation");w=31+(o+129>>>10<<5),s=32}for(;t.length<=w;)t.push(0);for(t[o>>>5]|=128<<24-o%32,o+=u,t[w]=4294967295&o,t[w-1]=o/4294967296|0,u=t.length,o=0;ot;t+=1)o[t]=n[t].slice();return o},Y=1,"SHA3-224"===n)E=1152,p=224;else if("SHA3-256"===n)E=1088,p=256;else if("SHA3-384"===n)E=832,p=384;else if("SHA3-512"===n)E=576,p=512;else if("SHAKE128"===n)E=1344,p=-1,x=31,C=!0;else{if("SHAKE256"!==n)throw Error("Chosen SHA variant is not supported");E=1088,p=-1,x=31,C=!0}v=function(n,t,o,u,f){var w,s=x,c=[],b=(o=E)>>>5,h=0,l=t>>>5;for(w=0;w=o;w+=b)u=Z(n.slice(w,w+b),u),t-=o;for(n=n.slice(w),t%=o;n.length>>3)>>2]^=s<=f));)c.push(n.a),0==64*(h+=1)%o&&Z(null,u);return c}}A=b(t,h,Y),l=K(n),this.setHMACKey=function(t,o,u){var f;if(!0===y)throw Error("HMAC key already set");if(!0===T)throw Error("Cannot set HMAC key after calling update");if(!0===C)throw Error("SHAKE is not supported for HMAC");if(t=(o=b(o,h=(u||{}).encoding||"UTF8",Y)(t)).binLen,o=o.value,u=(f=E>>>3)/4-1,ft/8){for(;o.length<=u;)o.push(0);o[u]&=4294967040}for(t=0;t<=u;t+=1)B[t]=909522486^o[t],L[t]=1549556828^o[t];l=H(B,l),k=E,y=!0},this.update=function(n){var t,o,u,f=0,w=E>>>5;for(n=(t=A(n,F,R)).binLen,o=t.value,t=n>>>5,u=0;u>>5),R=n%E,T=!0},this.getHash=function(t,o){var b,h,A,E;if(!0===y)throw Error("Cannot call getHash after setting HMAC key");if(A=c(o),!0===C){if(-1===A.shakeLen)throw Error("shakeLen must be specified in options");p=A.shakeLen}switch(t){case"HEX":b=function(n){return u(n,p,Y,A)};break;case"B64":b=function(n){return f(n,p,Y,A)};break;case"BYTES":b=function(n){return w(n,p,Y)};break;case"ARRAYBUFFER":try{h=new ArrayBuffer(0)}catch(n){throw Error("ARRAYBUFFER not supported by this environment")}b=function(n){return s(n,p,Y)};break;default:throw Error("format must be HEX, B64, BYTES, or ARRAYBUFFER")}for(E=v(F.slice(),R,k,S(l),p),h=1;h>>24-p%32),E=v(E,p,0,K(n),p);return b(E)},this.getHMAC=function(t,o){var b,h,A,U;if(!1===y)throw Error("Cannot call getHMAC without first setting HMAC key");switch(A=c(o),t){case"HEX":b=function(n){return u(n,p,Y,A)};break;case"B64":b=function(n){return f(n,p,Y,A)};break;case"BYTES":b=function(n){return w(n,p,Y)};break;case"ARRAYBUFFER":try{b=new ArrayBuffer(0)}catch(n){throw Error("ARRAYBUFFER not supported by this environment")}b=function(n){return s(n,p,Y)};break;default:throw Error("outputFormat must be HEX, B64, BYTES, or ARRAYBUFFER")}return h=v(F.slice(),R,k,S(l),p),U=H(L,K(n)),b(U=v(h,p,E,U,p))}}function o(n,t){this.a=n,this.b=t}function u(n,t,o,u){var f,w,s,c="";for(t/=8,s=-1===o?3:0,f=0;f>>2]>>>8*(s+f%4*o),c+="0123456789abcdef".charAt(w>>>4&15)+"0123456789abcdef".charAt(15&w);return u.outputUpper?c.toUpperCase():c}function f(n,t,o,u){var f,w,s,c,b="",h=t/8;for(c=-1===o?3:0,f=0;f>>2]:0,s=f+2>>2]:0,s=(n[f>>>2]>>>8*(c+f%4*o)&255)<<16|(w>>>8*(c+(f+1)%4*o)&255)<<8|s>>>8*(c+(f+2)%4*o)&255,w=0;4>w;w+=1)b+=8*f+6*w<=t?"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(s>>>6*(3-w)&63):u.b64Pad;return b}function w(n,t,o){var u,f,w,s="";for(t/=8,w=-1===o?3:0,u=0;u>>2]>>>8*(w+u%4*o)&255,s+=String.fromCharCode(f);return s}function s(n,t,o){t/=8;var u,f,w,s=new ArrayBuffer(t);for(w=new Uint8Array(s),f=-1===o?3:0,u=0;u>>2]>>>8*(f+u%4*o)&255;return s}function c(n){var t={outputUpper:!1,b64Pad:"=",shakeLen:-1};if(n=n||{},t.outputUpper=n.outputUpper||!1,!0===n.hasOwnProperty("b64Pad")&&(t.b64Pad=n.b64Pad),!0===n.hasOwnProperty("shakeLen")){if(0!=n.shakeLen%8)throw Error("shakeLen must be a multiple of 8");t.shakeLen=n.shakeLen}if("boolean"!=typeof t.outputUpper)throw Error("Invalid outputUpper formatting option");if("string"!=typeof t.b64Pad)throw Error("Invalid b64Pad formatting option");return t}function b(n,t,o){switch(t){case"UTF8":case"UTF16BE":case"UTF16LE":break;default:throw Error("encoding must be UTF8, UTF16BE, or UTF16LE")}switch(n){case"HEX":n=function(n,t,u){var f,w,s,c,b,h,l=n.length;if(0!=l%2)throw Error("String of HEX type must be in byte increments");for(t=t||[0],b=(u=u||0)>>>3,h=-1===o?3:0,f=0;f>>1)+b)>>>2;t.length<=s;)t.push(0);t[s]|=w<<8*(h+c%4*o)}return{value:t,binLen:4*l+u}};break;case"TEXT":n=function(n,u,f){var w,s,c,b,h,l,A,p,E=0;if(u=u||[0],h=(f=f||0)>>>3,"UTF8"===t)for(p=-1===o?3:0,c=0;c(w=n.charCodeAt(c))?s.push(w):2048>w?(s.push(192|w>>>6),s.push(128|63&w)):55296>w||57344<=w?s.push(224|w>>>12,128|w>>>6&63,128|63&w):(c+=1,w=65536+((1023&w)<<10|1023&n.charCodeAt(c)),s.push(240|w>>>18,128|w>>>12&63,128|w>>>6&63,128|63&w)),b=0;b>>2;u.length<=l;)u.push(0);u[l]|=s[b]<<8*(p+A%4*o),E+=1}else if("UTF16BE"===t||"UTF16LE"===t)for(p=-1===o?2:0,s="UTF16LE"===t&&1!==o||"UTF16LE"!==t&&1===o,c=0;c>>8),l=(A=E+h)>>>2;u.length<=l;)u.push(0);u[l]|=w<<8*(p+A%4*o),E+=2}return{value:u,binLen:8*E+f}};break;case"B64":n=function(n,t,u){var f,w,s,c,b,h,l,A,p=0;if(-1===n.search(/^[a-zA-Z0-9=+\/]+$/))throw Error("Invalid character in base-64 string");if(w=n.indexOf("="),n=n.replace(/\=/g,""),-1!==w&&w0;){var t=e.shift();if("function"==typeof t){var n=e.shift(),r=e.shift();t.call(n,r)}else t._settlePromises()}},i.prototype._drainQueues=function(){this._drainQueue(this._normalQueue),this._reset(),this._haveDrainedQueues=!0,this._drainQueue(this._lateQueue)},i.prototype._queueTick=function(){this._isTickUsed||(this._isTickUsed=!0,this._schedule(this.drainQueues))},i.prototype._reset=function(){this._isTickUsed=!1},n.exports=i,n.exports.firstLineError=c},{"./queue":26,"./schedule":29,"./util":36}],3:[function(e,t,n){"use strict";t.exports=function(e,t,n,r){var i=!1,a=function(e,t){this._reject(t)},o=function(e,t){t.promiseRejectionQueued=!0,t.bindingPromise._then(a,a,null,this,e)},s=function(e,t){0==(50397184&this._bitField)&&this._resolveCallback(t.target)},c=function(e,t){t.promiseRejectionQueued||this._reject(e)};e.prototype.bind=function(a){i||(i=!0,e.prototype._propagateFrom=r.propagateFromFunction(),e.prototype._boundValue=r.boundValueFunction());var u=n(a),l=new e(t);l._propagateFrom(this,1);var f=this._target();if(l._setBoundTo(u),u instanceof e){var d={promiseRejectionQueued:!1,promise:l,target:f,bindingPromise:u};f._then(t,o,void 0,l,d),u._then(s,c,void 0,l,d),l._setOnCancel(u)}else l._resolveCallback(f);return l},e.prototype._setBoundTo=function(e){void 0!==e?(this._bitField=2097152|this._bitField,this._boundTo=e):this._bitField=-2097153&this._bitField},e.prototype._isBound=function(){return 2097152==(2097152&this._bitField)},e.bind=function(t,n){return e.resolve(n).bind(t)}}},{}],4:[function(e,t,n){"use strict";var r;"undefined"!=typeof Promise&&(r=Promise);var i=e("./promise")();i.noConflict=function(){try{Promise===i&&(Promise=r)}catch(e){}return i},t.exports=i},{"./promise":22}],5:[function(e,t,n){"use strict";var r=Object.create;if(r){var i=r(null),a=r(null);i[" size"]=a[" size"]=0}t.exports=function(t){function n(e,n){var r;if(null!=e&&(r=e[n]),"function"!=typeof r){var i="Object "+o.classString(e)+" has no method '"+o.toString(n)+"'";throw new t.TypeError(i)}return r}function r(e){return n(e,this.pop()).apply(e,this)}function i(e){return e[this]}function a(e){var t=+this;return t<0&&(t=Math.max(0,t+e.length)),e[t]}var o=e("./util"),s=o.canEvaluate;o.isIdentifier,t.prototype.call=function(e){var t=[].slice.call(arguments,1);return t.push(e),this._then(r,void 0,void 0,t,void 0)},t.prototype.get=function(e){var t;if("number"==typeof e)t=a;else if(s){var n=(void 0)(e);t=null!==n?n:i}else t=i;return this._then(t,void 0,void 0,e,void 0)}}},{"./util":36}],6:[function(e,t,n){"use strict";t.exports=function(t,n,r,i){var a=e("./util"),o=a.tryCatch,s=a.errorObj,c=t._async;t.prototype.break=t.prototype.cancel=function(){if(!i.cancellation())return this._warn("cancellation is disabled");for(var e=this,t=e;e._isCancellable();){if(!e._cancelBy(t)){t._isFollowing()?t._followee().cancel():t._cancelBranched();break}var n=e._cancellationParent;if(null==n||!n._isCancellable()){e._isFollowing()?e._followee().cancel():e._cancelBranched();break}e._isFollowing()&&e._followee().cancel(),e._setWillBeCancelled(),t=e,e=n}},t.prototype._branchHasCancelled=function(){this._branchesRemainingToCancel--},t.prototype._enoughBranchesHaveCancelled=function(){return void 0===this._branchesRemainingToCancel||this._branchesRemainingToCancel<=0},t.prototype._cancelBy=function(e){return e===this?(this._branchesRemainingToCancel=0,this._invokeOnCancel(),!0):(this._branchHasCancelled(),!!this._enoughBranchesHaveCancelled()&&(this._invokeOnCancel(),!0))},t.prototype._cancelBranched=function(){this._enoughBranchesHaveCancelled()&&this._cancel()},t.prototype._cancel=function(){this._isCancellable()&&(this._setCancelled(),c.invoke(this._cancelPromises,this,void 0))},t.prototype._cancelPromises=function(){this._length()>0&&this._settlePromises()},t.prototype._unsetOnCancel=function(){this._onCancelField=void 0},t.prototype._isCancellable=function(){return this.isPending()&&!this._isCancelled()},t.prototype.isCancellable=function(){return this.isPending()&&!this.isCancelled()},t.prototype._doInvokeOnCancel=function(e,t){if(a.isArray(e))for(var n=0;n=0)return i[e]}var r=!1,i=[];return e.prototype._promiseCreated=function(){},e.prototype._pushContext=function(){},e.prototype._popContext=function(){return null},e._peekContext=e.prototype._peekContext=function(){},t.prototype._pushContext=function(){void 0!==this._trace&&(this._trace._promiseCreated=null,i.push(this._trace))},t.prototype._popContext=function(){if(void 0!==this._trace){var e=i.pop(),t=e._promiseCreated;return e._promiseCreated=null,t}return null},t.CapturedTrace=null,t.create=function(){if(r)return new t},t.deactivateLongStackTraces=function(){},t.activateLongStackTraces=function(){var i=e.prototype._pushContext,a=e.prototype._popContext,o=e._peekContext,s=e.prototype._peekContext,c=e.prototype._promiseCreated;t.deactivateLongStackTraces=function(){e.prototype._pushContext=i,e.prototype._popContext=a,e._peekContext=o,e.prototype._peekContext=s,e.prototype._promiseCreated=c,r=!1},r=!0,e.prototype._pushContext=t.prototype._pushContext,e.prototype._popContext=t.prototype._popContext,e._peekContext=e.prototype._peekContext=n,e.prototype._promiseCreated=function(){var e=this._peekContext();e&&null==e._promiseCreated&&(e._promiseCreated=this)}},t}},{}],9:[function(t,n,r){"use strict";n.exports=function(n,r){function i(e,t){return{promise:t}}function a(){return!1}function o(e,t,n){var r=this;try{e(t,n,function(e){if("function"!=typeof e)throw new TypeError("onCancel must be a function, got: "+x.toString(e));r._attachCancellationCallback(e)})}catch(e){return e}}function s(e){if(!this._isCancellable())return this;var t=this._onCancel();void 0!==t?x.isArray(t)?t.push(e):this._setOnCancel([t,e]):this._setOnCancel(e)}function c(){return this._onCancelField}function u(e){this._onCancelField=e}function l(){this._cancellationParent=void 0,this._onCancelField=void 0}function f(e,t){if(0!=(1&t)){this._cancellationParent=e;var n=e._branchesRemainingToCancel;void 0===n&&(n=0),e._branchesRemainingToCancel=n+1}0!=(2&t)&&e._isBound()&&this._setBoundTo(e._boundTo)}function d(){var e=this._boundTo;return void 0!==e&&e instanceof n?e.isFulfilled()?e.value():void 0:e}function h(){this._trace=new I(this._peekContext())}function p(e,t){if(D(e)){var n=this._trace;if(void 0!==n&&t&&(n=n._parent),void 0!==n)n.attachExtraTrace(e);else if(!e.__stackCleaned__){var r=k(e);x.notEnumerableProp(e,"stack",r.message+"\n"+r.stack.join("\n")),x.notEnumerableProp(e,"__stackCleaned__",!0)}}}function v(e,t,r){if(ne.warnings){var i,a=new A(e);if(t)r._attachExtraTrace(a);else if(ne.longStackTraces&&(i=n._peekContext()))i.attachExtraTrace(a);else{var o=k(a);a.stack=o.message+"\n"+o.stack.join("\n")}$("warning",a)||w(a,"",!0)}}function g(e,t){for(var n=0;n=0;--s)if(r[s]===a){o=s;break}for(s=o;s>=0;--s){var c=r[s];if(t[i]!==c)break;t.pop(),i--}t=r}}function b(e){for(var t=[],n=0;n0&&"SyntaxError"!=e.name&&(t=t.slice(n)),t}function k(e){var t=e.stack,n=e.toString();return t="string"==typeof t&&t.length>0?S(e):[" (No stack trace)"],{message:n,stack:"SyntaxError"==e.name?t:b(t)}}function w(e,t,n){if("undefined"!=typeof console){var r;if(x.isObject(e)){var i=e.stack;r=t+N(i,e)}else r=t+String(e);"function"==typeof M?M(r,n):"function"!=typeof console.log&&"object"!=typeof console.log||console.log(r)}}function C(e,t,n,r){var i=!1;try{"function"==typeof t&&(i=!0,"rejectionHandled"===e?t(r):t(n,r))}catch(e){j.throwLater(e)}"unhandledRejection"===e?$(e,n,r)||i||w(n,"Unhandled rejection "):$(e,r)}function _(e){var t;if("function"==typeof e)t="[function "+(e.name||"anonymous")+"]";else{if(t=e&&"function"==typeof e.toString?e.toString():x.toString(e),/\[object [a-zA-Z0-9$_]+\]/.test(t))try{t=JSON.stringify(e)}catch(e){}0===t.length&&(t="(empty array)")}return"(<"+T(t)+">, no stack trace)"}function T(e){return e.length<41?e:e.substr(0,38)+"..."}function P(){return"function"==typeof te}function E(e){var t=e.match(ee);if(t)return{fileName:t[1],line:parseInt(t[2],10)}}function I(e){this._parent=e,this._promisesCreated=0;var t=this._length=1+(void 0===e?0:e._length);te(this,I),t>32&&this.uncycle()}var R,O,M,F=n._getDomain,j=n._async,A=t("./errors").Warning,x=t("./util"),D=x.canAttachTrace,U=/[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/,L=/\((?:timers\.js):\d+:\d+\)/,B=/[\/<\(](.+?):(\d+):(\d+)\)?\s*$/,H=null,N=null,V=!1,W=!(0==x.env("BLUEBIRD_DEBUG")),q=!(0==x.env("BLUEBIRD_WARNINGS")||!W&&!x.env("BLUEBIRD_WARNINGS")),G=!(0==x.env("BLUEBIRD_LONG_STACK_TRACES")||!W&&!x.env("BLUEBIRD_LONG_STACK_TRACES")),z=0!=x.env("BLUEBIRD_W_FORGOTTEN_RETURN")&&(q||!!x.env("BLUEBIRD_W_FORGOTTEN_RETURN"));n.prototype.suppressUnhandledRejections=function(){var e=this._target();e._bitField=-1048577&e._bitField|524288},n.prototype._ensurePossibleRejectionHandled=function(){if(0==(524288&this._bitField)){this._setRejectionIsUnhandled();var e=this;setTimeout(function(){e._notifyUnhandledRejection()},1)}},n.prototype._notifyUnhandledRejectionIsHandled=function(){C("rejectionHandled",R,void 0,this)},n.prototype._setReturnedNonUndefined=function(){this._bitField=268435456|this._bitField},n.prototype._returnedNonUndefined=function(){return 0!=(268435456&this._bitField)},n.prototype._notifyUnhandledRejection=function(){if(this._isRejectionUnhandled()){var e=this._settledValue();this._setUnhandledRejectionIsNotified(),C("unhandledRejection",O,e,this)}},n.prototype._setUnhandledRejectionIsNotified=function(){this._bitField=262144|this._bitField},n.prototype._unsetUnhandledRejectionIsNotified=function(){this._bitField=-262145&this._bitField},n.prototype._isUnhandledRejectionNotified=function(){return(262144&this._bitField)>0},n.prototype._setRejectionIsUnhandled=function(){this._bitField=1048576|this._bitField},n.prototype._unsetRejectionIsUnhandled=function(){this._bitField=-1048577&this._bitField,this._isUnhandledRejectionNotified()&&(this._unsetUnhandledRejectionIsNotified(),this._notifyUnhandledRejectionIsHandled())},n.prototype._isRejectionUnhandled=function(){return(1048576&this._bitField)>0},n.prototype._warn=function(e,t,n){return v(e,t,n||this)},n.onPossiblyUnhandledRejection=function(e){var t=F();O="function"==typeof e?null===t?e:x.domainBind(t,e):void 0},n.onUnhandledRejectionHandled=function(e){var t=F();R="function"==typeof e?null===t?e:x.domainBind(t,e):void 0};var Q=function(){};n.longStackTraces=function(){if(j.haveItemsQueued()&&!ne.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n");if(!ne.longStackTraces&&P()){var e=n.prototype._captureStackTrace,t=n.prototype._attachExtraTrace;ne.longStackTraces=!0,Q=function(){if(j.haveItemsQueued()&&!ne.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n");n.prototype._captureStackTrace=e,n.prototype._attachExtraTrace=t,r.deactivateLongStackTraces(),j.enableTrampoline(),ne.longStackTraces=!1},n.prototype._captureStackTrace=h,n.prototype._attachExtraTrace=p,r.activateLongStackTraces(),j.disableTrampolineIfNecessary()}},n.hasLongStackTraces=function(){return ne.longStackTraces&&P()};var J=(function(){try{if("function"==typeof CustomEvent){var e=new CustomEvent("CustomEvent");return x.global.dispatchEvent(e),function(e,t){var n=new CustomEvent(e.toLowerCase(),{detail:t,cancelable:!0});return!x.global.dispatchEvent(n)}}if("function"==typeof Event){e=new Event("CustomEvent");return x.global.dispatchEvent(e),function(e,t){var n=new Event(e.toLowerCase(),{cancelable:!0});return n.detail=t,!x.global.dispatchEvent(n)}}return(e=document.createEvent("CustomEvent")).initCustomEvent("testingtheevent",!1,!0,{}),x.global.dispatchEvent(e),function(e,t){var n=document.createEvent("CustomEvent");return n.initCustomEvent(e.toLowerCase(),!1,!0,t),!x.global.dispatchEvent(n)}}catch(e){}return function(){return!1}})(),K=x.isNode?function(){return e.emit.apply(e,arguments)}:x.global?function(e){var t="on"+e.toLowerCase(),n=x.global[t];return!!n&&(n.apply(x.global,[].slice.call(arguments,1)),!0)}:function(){return!1},X={promiseCreated:i,promiseFulfilled:i,promiseRejected:i,promiseResolved:i,promiseCancelled:i,promiseChained:function(e,t,n){return{promise:t,child:n}},warning:function(e,t){return{warning:t}},unhandledRejection:function(e,t,n){return{reason:t,promise:n}},rejectionHandled:i},$=function(e){var t=!1;try{t=K.apply(null,arguments)}catch(e){j.throwLater(e),t=!0}var n=!1;try{n=J(e,X[e].apply(null,arguments))}catch(e){j.throwLater(e),n=!0}return n||t};n.config=function(e){if("longStackTraces"in(e=Object(e))&&(e.longStackTraces?n.longStackTraces():!e.longStackTraces&&n.hasLongStackTraces()&&Q()),"warnings"in e){var t=e.warnings;ne.warnings=!!t,z=ne.warnings,x.isObject(t)&&"wForgottenReturn"in t&&(z=!!t.wForgottenReturn)}if("cancellation"in e&&e.cancellation&&!ne.cancellation){if(j.haveItemsQueued())throw new Error("cannot enable cancellation after promises are in use");n.prototype._clearCancellationData=l,n.prototype._propagateFrom=f,n.prototype._onCancel=c,n.prototype._setOnCancel=u,n.prototype._attachCancellationCallback=s,n.prototype._execute=o,Y=f,ne.cancellation=!0}return"monitoring"in e&&(e.monitoring&&!ne.monitoring?(ne.monitoring=!0,n.prototype._fireEvent=$):!e.monitoring&&ne.monitoring&&(ne.monitoring=!1,n.prototype._fireEvent=a)),n},n.prototype._fireEvent=a,n.prototype._execute=function(e,t,n){try{e(t,n)}catch(e){return e}},n.prototype._onCancel=function(){},n.prototype._setOnCancel=function(e){},n.prototype._attachCancellationCallback=function(e){},n.prototype._captureStackTrace=function(){},n.prototype._attachExtraTrace=function(){},n.prototype._clearCancellationData=function(){},n.prototype._propagateFrom=function(e,t){};var Y=function(e,t){0!=(2&t)&&e._isBound()&&this._setBoundTo(e._boundTo)},Z=function(){return!1},ee=/[\/<\(]([^:\/]+):(\d+):(?:\d+)\)?\s*$/;x.inherits(I,Error),r.CapturedTrace=I,I.prototype.uncycle=function(){var e=this._length;if(!(e<2)){for(var t=[],n={},r=0,i=this;void 0!==i;++r)t.push(i),i=i._parent;for(r=(e=this._length=r)-1;r>=0;--r){var a=t[r].stack;void 0===n[a]&&(n[a]=r)}for(r=0;r0&&(t[o-1]._parent=void 0,t[o-1]._length=1),t[r]._parent=void 0,t[r]._length=1;var s=r>0?t[r-1]:this;o=0;--u)t[u]._length=c,c++;return}}}},I.prototype.attachExtraTrace=function(e){if(!e.__stackCleaned__){this.uncycle();for(var t=k(e),n=t.message,r=[t.stack],i=this;void 0!==i;)r.push(b(i.stack.split("\n"))),i=i._parent;m(r),y(r),x.notEnumerableProp(e,"stack",g(n,r)),x.notEnumerableProp(e,"__stackCleaned__",!0)}};var te=(function(){var e=/^\s*at\s*/,t=function(e,t){return"string"==typeof e?e:void 0!==t.name&&void 0!==t.message?t.toString():_(t)};if("number"==typeof Error.stackTraceLimit&&"function"==typeof Error.captureStackTrace){Error.stackTraceLimit+=6,H=e,N=t;var n=Error.captureStackTrace;return Z=function(e){return U.test(e)},function(e,t){Error.stackTraceLimit+=6,n(e,t),Error.stackTraceLimit-=6}}var r,i=new Error;if("string"==typeof i.stack&&i.stack.split("\n")[0].indexOf("stackDetection@")>=0)return H=/@/,N=t,V=!0,function(e){e.stack=(new Error).stack};try{throw new Error}catch(e){r="stack"in e}return"stack"in i||!r||"number"!=typeof Error.stackTraceLimit?(N=function(e,t){return"string"==typeof e?e:"object"!=typeof t&&"function"!=typeof t||void 0===t.name||void 0===t.message?_(t):t.toString()},null):(H=e,N=t,function(e){Error.stackTraceLimit+=6;try{throw new Error}catch(t){e.stack=t.stack}Error.stackTraceLimit-=6})})();"undefined"!=typeof console&&void 0!==console.warn&&(M=function(e){console.warn(e)},x.isNode&&e.stderr.isTTY?M=function(e,t){var n=t?"\x1b[33m":"\x1b[31m";console.warn(n+e+"\x1b[0m\n")}:x.isNode||"string"!=typeof(new Error).stack||(M=function(e,t){console.warn("%c"+e,t?"color: darkorange":"color: red")}));var ne={warnings:q,longStackTraces:!1,cancellation:!1,monitoring:!1};return G&&n.longStackTraces(),{longStackTraces:function(){return ne.longStackTraces},warnings:function(){return ne.warnings},cancellation:function(){return ne.cancellation},monitoring:function(){return ne.monitoring},propagateFromFunction:function(){return Y},boundValueFunction:function(){return d},checkForgottenReturns:function(e,t,n,r,i){if(void 0===e&&null!==t&&z){if(void 0!==i&&i._returnedNonUndefined())return;if(0==(65535&r._bitField))return;n&&(n+=" ");var a="",o="";if(t._trace){for(var s=t._trace.stack.split("\n"),c=b(s),u=c.length-1;u>=0;--u){var l=c[u];if(!L.test(l)){var f=l.match(B);f&&(a="at "+f[1]+":"+f[2]+":"+f[3]+" ");break}}if(c.length>0){var d=c[0];for(u=0;u0&&(o="\n"+s[u-1]);break}}}var h="a promise was created in a "+n+"handler "+a+"but was not returned from it, see http://goo.gl/rRqMUw"+o;r._warn(h,!0,t)}},setBounds:function(e,t){if(P()){for(var n,r,i=e.stack.split("\n"),a=t.stack.split("\n"),o=-1,s=-1,c=0;c=s||(Z=function(e){if(U.test(e))return!0;var t=E(e);return!!(t&&t.fileName===n&&o<=t.line&&t.line<=s)})}},warn:v,deprecated:function(e,t){var n=e+" is deprecated and will be removed in a future version.";return t&&(n+=" Use "+t+" instead."),v(n)},CapturedTrace:I,fireDomEvent:J,fireGlobalEvent:K}}},{"./errors":12,"./util":36}],10:[function(e,t,n){"use strict";t.exports=function(e){function t(){return this.value}function n(){throw this.reason}e.prototype.return=e.prototype.thenReturn=function(n){return n instanceof e&&n.suppressUnhandledRejections(),this._then(t,void 0,void 0,{value:n},void 0)},e.prototype.throw=e.prototype.thenThrow=function(e){return this._then(n,void 0,void 0,{reason:e},void 0)},e.prototype.catchThrow=function(e){if(arguments.length<=1)return this._then(void 0,n,void 0,{reason:e},void 0);var t=arguments[1];return this.caught(e,function(){throw t})},e.prototype.catchReturn=function(n){if(arguments.length<=1)return n instanceof e&&n.suppressUnhandledRejections(),this._then(void 0,t,void 0,{value:n},void 0);var r=arguments[1];r instanceof e&&r.suppressUnhandledRejections();return this.caught(n,function(){return r})}}},{}],11:[function(e,t,n){"use strict";t.exports=function(e,t){function n(){return i(this)}var r=e.reduce,i=e.all;e.prototype.each=function(e){return r(this,e,t,0)._then(n,void 0,void 0,this,void 0)},e.prototype.mapSeries=function(e){return r(this,e,t,t)},e.each=function(e,i){return r(e,i,t,0)._then(n,void 0,void 0,e,void 0)},e.mapSeries=function(e,n){return r(e,n,t,t)}}},{}],12:[function(e,t,n){"use strict";function r(e,t){function n(r){if(!(this instanceof n))return new n(r);f(this,"message","string"==typeof r?r:t),f(this,"name",e),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):Error.call(this)}return l(n,Error),n}function i(e){if(!(this instanceof i))return new i(e);f(this,"name","OperationalError"),f(this,"message",e),this.cause=e,this.isOperational=!0,e instanceof Error?(f(this,"message",e.message),f(this,"stack",e.stack)):Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}var a,o,s=e("./es5"),c=s.freeze,u=e("./util"),l=u.inherits,f=u.notEnumerableProp,d=r("Warning","warning"),h=r("CancellationError","cancellation error"),p=r("TimeoutError","timeout error"),v=r("AggregateError","aggregate error");try{a=TypeError,o=RangeError}catch(e){a=r("TypeError","type error"),o=r("RangeError","range error")}for(var g="join pop push shift unshift slice filter forEach some every map indexOf lastIndexOf reduce reduceRight sort reverse".split(" "),y=0;y1?e.cancelPromise._reject(t):e.cancelPromise._cancel(),e.cancelPromise=null,!0)}function s(){return u.call(this,this.promise._target()._settledValue())}function c(e){if(!o(this,e))return d.e=e,d}function u(e){var i=this.promise,u=this.handler;if(!this.called){this.called=!0;var l=this.isFinallyHandler()?u.call(i._boundValue()):u.call(i._boundValue(),e);if(l===r)return l;if(void 0!==l){i._setReturnedNonUndefined();var h=n(l,i);if(h instanceof t){if(null!=this.cancelPromise){if(h._isCancelled()){var p=new f("late cancellation observer");return i._attachExtraTrace(p),d.e=p,d}h.isPending()&&h._attachCancellationCallback(new a(this))}return h._then(s,c,void 0,this,void 0)}}}return i.isRejected()?(o(this),d.e=e,d):(o(this),e)}var l=e("./util"),f=t.CancellationError,d=l.errorObj,h=e("./catch_filter")(r);return i.prototype.isFinallyHandler=function(){return 0===this.type},a.prototype._resultCancelled=function(){o(this.finallyHandler)},t.prototype._passThrough=function(e,t,n,r){return"function"!=typeof e?this.then():this._then(n,r,void 0,new i(this,t,e),void 0)},t.prototype.lastly=t.prototype.finally=function(e){return this._passThrough(e,0,u,u)},t.prototype.tap=function(e){return this._passThrough(e,1,u)},t.prototype.tapCatch=function(e){var n=arguments.length;if(1===n)return this._passThrough(e,1,void 0,u);var r,i=new Array(n-1),a=0;for(r=0;r0&&"function"==typeof arguments[t]&&(e=arguments[t]);var r=[].slice.call(arguments);e&&r.pop();var i=new n(r).promise();return void 0!==e?i.spread(e):i}}},{"./util":36}],18:[function(e,t,n){"use strict";t.exports=function(t,n,r,i,a,o){function s(e,t,n,r){this.constructor$(e),this._promise._captureStackTrace();var i=u();this._callback=null===i?t:l.domainBind(i,t),this._preservedValues=r===a?new Array(this.length()):null,this._limit=n,this._inFlight=0,this._queue=[],h.invoke(this._asyncInit,this,void 0)}function c(e,n,i,a){if("function"!=typeof n)return r("expecting a function but got "+l.classString(n));var o=0;if(void 0!==i){if("object"!=typeof i||null===i)return t.reject(new TypeError("options argument must be an object but it is "+l.classString(i)));if("number"!=typeof i.concurrency)return t.reject(new TypeError("'concurrency' must be a number but it is "+l.classString(i.concurrency)));o=i.concurrency}return new s(e,n,o="number"==typeof o&&isFinite(o)&&o>=1?o:0,a).promise()}var u=t._getDomain,l=e("./util"),f=l.tryCatch,d=l.errorObj,h=t._async;l.inherits(s,n),s.prototype._asyncInit=function(){this._init$(void 0,-2)},s.prototype._init=function(){},s.prototype._promiseFulfilled=function(e,n){var r=this._values,a=this.length(),s=this._preservedValues,c=this._limit;if(n<0){if(r[n=-1*n-1]=e,c>=1&&(this._inFlight--,this._drainQueue(),this._isResolved()))return!0}else{if(c>=1&&this._inFlight>=c)return r[n]=e,this._queue.push(n),!1;null!==s&&(s[n]=e);var u=this._promise,l=this._callback,h=u._boundValue();u._pushContext();var p=f(l).call(h,e,n,a),v=u._popContext();if(o.checkForgottenReturns(p,v,null!==s?"Promise.filter":"Promise.map",u),p===d)return this._reject(p.e),!0;var g=i(p,this._promise);if(g instanceof t){var y=(g=g._target())._bitField;if(0==(50397184&y))return c>=1&&this._inFlight++,r[n]=g,g._proxy(this,-1*(n+1)),!1;if(0==(33554432&y))return 0!=(16777216&y)?(this._reject(g._reason()),!0):(this._cancel(),!0);p=g._value()}r[n]=p}return++this._totalResolved>=a&&(null!==s?this._filter(r,s):this._resolve(r),!0)},s.prototype._drainQueue=function(){for(var e=this._queue,t=this._limit,n=this._values;e.length>0&&this._inFlight1){a.deprecated("calling Promise.try with more than 1 argument");var u=arguments[1],l=arguments[2];r=o.isArray(u)?s(e).apply(l,u):s(e).call(l,u)}else r=s(e)();var f=c._popContext();return a.checkForgottenReturns(r,f,"Promise.try",c),c._resolveFromSyncValue(r),c},t.prototype._resolveFromSyncValue=function(e){e===o.errorObj?this._rejectCallback(e.e,!1):this._resolveCallback(e,!0)}}},{"./util":36}],20:[function(e,t,n){"use strict";function r(e){return e instanceof Error&&c.getPrototypeOf(e)===Error.prototype}function i(e){var t;if(r(e)){(t=new s(e)).name=e.name,t.message=e.message,t.stack=e.stack;for(var n=c.keys(e),i=0;i1){var n,r=new Array(t-1),i=0;for(n=0;n0&&"function"!=typeof e&&"function"!=typeof t){var n=".then() only accepts functions but was passed: "+p.classString(e);arguments.length>1&&(n+=", "+p.classString(t)),this._warn(n)}return this._then(e,t,void 0,void 0,void 0)},a.prototype.done=function(e,t){this._then(e,t,void 0,void 0,void 0)._setIsFinal()},a.prototype.spread=function(e){return"function"!=typeof e?d("expecting a function but got "+p.classString(e)):this.all()._then(e,void 0,void 0,w,void 0)},a.prototype.toJSON=function(){var e={isFulfilled:!1,isRejected:!1,fulfillmentValue:void 0,rejectionReason:void 0};return this.isFulfilled()?(e.fulfillmentValue=this.value(),e.isFulfilled=!0):this.isRejected()&&(e.rejectionReason=this.reason(),e.isRejected=!0),e},a.prototype.all=function(){return arguments.length>0&&this._warn(".all() was passed arguments but it does not take any"),new T(this).promise()},a.prototype.error=function(e){return this.caught(p.originatesFromRejection,e)},a.getNewLibraryCopy=n.exports,a.is=function(e){return e instanceof a},a.fromNode=a.fromCallback=function(e){var t=new a(k);t._captureStackTrace();var n=arguments.length>1&&!!Object(arguments[1]).multiArgs,r=j(e)(M(t,n));return r===F&&t._rejectCallback(r.e,!0),t._isFateSealed()||t._setAsyncGuaranteed(),t},a.all=function(e){return new T(e).promise()},a.cast=function(e){var t=_(e);return t instanceof a||((t=new a(k))._captureStackTrace(),t._setFulfilled(),t._rejectionHandler0=e),t},a.resolve=a.fulfilled=a.cast,a.reject=a.rejected=function(e){var t=new a(k);return t._captureStackTrace(),t._rejectCallback(e,!0),t},a.setScheduler=function(e){if("function"!=typeof e)throw new b("expecting a function but got "+p.classString(e));return y.setScheduler(e)},a.prototype._then=function(e,t,n,r,i){var o=void 0!==i,s=o?i:new a(k),c=this._target(),l=c._bitField;o||(s._propagateFrom(this,3),s._captureStackTrace(),void 0===r&&0!=(2097152&this._bitField)&&(r=0!=(50397184&l)?this._boundValue():c===this?void 0:this._boundTo),this._fireEvent("promiseChained",this,s));var f=u();if(0!=(50397184&l)){var d,h,v=c._settlePromiseCtx;0!=(33554432&l)?(h=c._rejectionHandler0,d=e):0!=(16777216&l)?(h=c._fulfillmentHandler0,d=t,c._unsetRejectionIsUnhandled()):(v=c._settlePromiseLateCancellationObserver,h=new S("late cancellation observer"),c._attachExtraTrace(h),d=t),y.invoke(v,c,{handler:null===f?d:"function"==typeof d&&p.domainBind(f,d),promise:s,receiver:r,value:h})}else c._addCallbacks(e,t,s,r,f);return s},a.prototype._length=function(){return 65535&this._bitField},a.prototype._isFateSealed=function(){return 0!=(117506048&this._bitField)},a.prototype._isFollowing=function(){return 67108864==(67108864&this._bitField)},a.prototype._setLength=function(e){this._bitField=-65536&this._bitField|65535&e},a.prototype._setFulfilled=function(){this._bitField=33554432|this._bitField,this._fireEvent("promiseFulfilled",this)},a.prototype._setRejected=function(){this._bitField=16777216|this._bitField,this._fireEvent("promiseRejected",this)},a.prototype._setFollowing=function(){this._bitField=67108864|this._bitField,this._fireEvent("promiseResolved",this)},a.prototype._setIsFinal=function(){this._bitField=4194304|this._bitField},a.prototype._isFinal=function(){return(4194304&this._bitField)>0},a.prototype._unsetCancelled=function(){this._bitField=-65537&this._bitField},a.prototype._setCancelled=function(){this._bitField=65536|this._bitField,this._fireEvent("promiseCancelled",this)},a.prototype._setWillBeCancelled=function(){this._bitField=8388608|this._bitField},a.prototype._setAsyncGuaranteed=function(){y.hasCustomScheduler()||(this._bitField=134217728|this._bitField)},a.prototype._receiverAt=function(e){var t=0===e?this._receiver0:this[4*e-4+3];if(t!==h)return void 0===t&&this._isBound()?this._boundValue():t},a.prototype._promiseAt=function(e){return this[4*e-4+2]},a.prototype._fulfillmentHandlerAt=function(e){return this[4*e-4+0]},a.prototype._rejectionHandlerAt=function(e){return this[4*e-4+1]},a.prototype._boundValue=function(){},a.prototype._migrateCallback0=function(e){var t=(e._bitField,e._fulfillmentHandler0),n=e._rejectionHandler0,r=e._promise0,i=e._receiverAt(0);void 0===i&&(i=h),this._addCallbacks(t,n,r,i,null)},a.prototype._migrateCallbackAt=function(e,t){var n=e._fulfillmentHandlerAt(t),r=e._rejectionHandlerAt(t),i=e._promiseAt(t),a=e._receiverAt(t);void 0===a&&(a=h),this._addCallbacks(n,r,i,a,null)},a.prototype._addCallbacks=function(e,t,n,r,i){var a=this._length();if(a>=65531&&(a=0,this._setLength(0)),0===a)this._promise0=n,this._receiver0=r,"function"==typeof e&&(this._fulfillmentHandler0=null===i?e:p.domainBind(i,e)),"function"==typeof t&&(this._rejectionHandler0=null===i?t:p.domainBind(i,t));else{var o=4*a-4;this[o+2]=n,this[o+3]=r,"function"==typeof e&&(this[o+0]=null===i?e:p.domainBind(i,e)),"function"==typeof t&&(this[o+1]=null===i?t:p.domainBind(i,t))}return this._setLength(a+1),a},a.prototype._proxy=function(e,t){this._addCallbacks(void 0,void 0,t,e,null)},a.prototype._resolveCallback=function(e,t){if(0==(117506048&this._bitField)){if(e===this)return this._rejectCallback(l(),!1);var n=_(e,this);if(!(n instanceof a))return this._fulfill(e);t&&this._propagateFrom(n,2);var r=n._target();if(r===this)return void this._reject(l());var i=r._bitField;if(0==(50397184&i)){var o=this._length();o>0&&r._migrateCallback0(this);for(var s=1;s>>16)){if(e===this){var n=l();return this._attachExtraTrace(n),this._reject(n)}this._setFulfilled(),this._rejectionHandler0=e,(65535&t)>0&&(0!=(134217728&t)?this._settlePromises():y.settlePromises(this))}},a.prototype._reject=function(e){var t=this._bitField;if(!((117506048&t)>>>16)){if(this._setRejected(),this._fulfillmentHandler0=e,this._isFinal())return y.fatalError(e,p.isNode);(65535&t)>0?y.settlePromises(this):this._ensurePossibleRejectionHandled()}},a.prototype._fulfillPromises=function(e,t){for(var n=1;n0){if(0!=(16842752&e)){var n=this._fulfillmentHandler0;this._settlePromise0(this._rejectionHandler0,n,e),this._rejectPromises(t,n)}else{var r=this._rejectionHandler0;this._settlePromise0(this._fulfillmentHandler0,r,e),this._fulfillPromises(t,r)}this._setLength(0)}this._clearCancellationData()},a.prototype._settledValue=function(){var e=this._bitField;return 0!=(33554432&e)?this._rejectionHandler0:0!=(16777216&e)?this._fulfillmentHandler0:void 0},a.defer=a.pending=function(){return I.deprecated("Promise.defer","new Promise"),{promise:new a(k),resolve:o,reject:s}},p.notEnumerableProp(a,"_makeSelfResolutionError",l),t("./method")(a,k,_,d,I),t("./bind")(a,k,_,I),t("./cancel")(a,T,d,I),t("./direct_resolve")(a),t("./synchronous_inspection")(a),t("./join")(a,T,_,k,y,u),a.Promise=a,a.version="3.5.1",t("./map.js")(a,T,d,_,k,I),t("./call_get.js")(a),t("./using.js")(a,d,_,E,k,I),t("./timers.js")(a,k,I),t("./generators.js")(a,d,k,_,r,I),t("./nodeify.js")(a),t("./promisify.js")(a,k),t("./props.js")(a,T,_,d),t("./race.js")(a,k,_,d),t("./reduce.js")(a,T,d,_,k,I),t("./settle.js")(a,T,I),t("./some.js")(a,T,d),t("./filter.js")(a,k),t("./each.js")(a,k),t("./any.js")(a),p.toFastProperties(a),p.toFastProperties(a.prototype),c({a:1}),c({b:2}),c({c:3}),c(1),c(function(){}),c(void 0),c(!1),c(new a(k)),I.setBounds(g.firstLineError,p.lastLineError),a}},{"./any.js":1,"./async":2,"./bind":3,"./call_get.js":5,"./cancel":6,"./catch_filter":7,"./context":8,"./debuggability":9,"./direct_resolve":10,"./each.js":11,"./errors":12,"./es5":13,"./filter.js":14,"./finally":15,"./generators.js":16,"./join":17,"./map.js":18,"./method":19,"./nodeback":20,"./nodeify.js":21,"./promise_array":23,"./promisify.js":24,"./props.js":25,"./race.js":27,"./reduce.js":28,"./settle.js":30,"./some.js":31,"./synchronous_inspection":32,"./thenables":33,"./timers.js":34,"./using.js":35,"./util":36}],23:[function(e,t,n){"use strict";t.exports=function(t,n,r,i,a){function o(e){switch(e){case-2:return[];case-3:return{};case-6:return new Map}}function s(e){var r=this._promise=new t(n);e instanceof t&&r._propagateFrom(e,3),r._setOnCancel(this),this._values=e,this._length=0,this._totalResolved=0,this._init(void 0,-2)}var c=e("./util");return c.isArray,c.inherits(s,a),s.prototype.length=function(){return this._length},s.prototype.promise=function(){return this._promise},s.prototype._init=function e(n,a){var s=r(this._values,this._promise);if(s instanceof t){var u=(s=s._target())._bitField;if(this._values=s,0==(50397184&u))return this._promise._setAsyncGuaranteed(),s._then(e,this._reject,void 0,this,a);if(0==(33554432&u))return 0!=(16777216&u)?this._reject(s._reason()):this._cancel();s=s._value()}if(null!==(s=c.asArray(s)))0!==s.length?this._iterate(s):-5===a?this._resolveEmptyArray():this._resolve(o(a));else{var l=i("expecting an array or an iterable object but got "+c.classString(s)).reason();this._promise._rejectCallback(l,!1)}},s.prototype._iterate=function(e){var n=this.getActualLength(e.length);this._length=n,this._values=this.shouldCopyValues()?new Array(n):this._values;for(var i=this._promise,a=!1,o=null,s=0;s=this._length&&(this._resolve(this._values),!0)},s.prototype._promiseCancelled=function(){return this._cancel(),!0},s.prototype._promiseRejected=function(e){return this._totalResolved++,this._reject(e),!0},s.prototype._resultCancelled=function(){if(!this._isResolved()){var e=this._values;if(this._cancel(),e instanceof t)e.cancel();else for(var n=0;n=this._length){var n;if(this._isMap)n=d(this._values);else{n={};for(var r=this.length(),i=0,a=this.length();i>1},t.prototype.props=function(){return o(this)},t.props=function(e){return o(e)}}},{"./es5":13,"./util":36}],26:[function(e,t,n){"use strict";function r(e,t,n,r,i){for(var a=0;a=this._length&&(this._resolve(this._values),!0)},i.prototype._promiseFulfilled=function(e,t){var n=new a;return n._bitField=33554432,n._settledValueField=e,this._promiseResolved(t,n)},i.prototype._promiseRejected=function(e,t){var n=new a;return n._bitField=16777216,n._settledValueField=e,this._promiseResolved(t,n)},t.settle=function(e){return r.deprecated(".settle()",".reflect()"),new i(e).promise()},t.prototype.settle=function(){return t.settle(this)}}},{"./util":36}],31:[function(e,t,n){"use strict";t.exports=function(t,n,r){function i(e){this.constructor$(e),this._howMany=0,this._unwrap=!1,this._initialized=!1}function a(e,t){if((0|t)!==t||t<0)return r("expecting a positive integer\n\n See http://goo.gl/MqrFmX\n");var n=new i(e),a=n.promise();return n.setHowMany(t),n.init(),a}var o=e("./util"),s=e("./errors").RangeError,c=e("./errors").AggregateError,u=o.isArray,l={};o.inherits(i,n),i.prototype._init=function(){if(this._initialized){if(0===this._howMany)return void this._resolve([]);this._init$(void 0,-5);var e=u(this._values);!this._isResolved()&&e&&this._howMany>this._canPossiblyFulfill()&&this._reject(this._getRangeError(this.length()))}},i.prototype.init=function(){this._initialized=!0,this._init()},i.prototype.setUnwrap=function(){this._unwrap=!0},i.prototype.howMany=function(){return this._howMany},i.prototype.setHowMany=function(e){this._howMany=e},i.prototype._promiseFulfilled=function(e){return this._addFulfilled(e),this._fulfilled()===this.howMany()&&(this._values.length=this.howMany(),1===this.howMany()&&this._unwrap?this._resolve(this._values[0]):this._resolve(this._values),!0)},i.prototype._promiseRejected=function(e){return this._addRejected(e),this._checkOutcome()},i.prototype._promiseCancelled=function(){return this._values instanceof t||null==this._values?this._cancel():(this._addRejected(l),this._checkOutcome())},i.prototype._checkOutcome=function(){if(this.howMany()>this._canPossiblyFulfill()){for(var e=new c,t=this.length();t0?this._reject(e):this._cancel(),!0}return!1},i.prototype._fulfilled=function(){return this._totalResolved},i.prototype._rejected=function(){return this._values.length-this.length()},i.prototype._addRejected=function(e){this._values.push(e)},i.prototype._addFulfilled=function(e){this._values[this._totalResolved++]=e},i.prototype._canPossiblyFulfill=function(){return this.length()-this._rejected()},i.prototype._getRangeError=function(e){var t="Input array must contain at least "+this._howMany+" items but contains only "+e+" items";return new s(t)},i.prototype._resolveEmptyArray=function(){this._reject(this._getRangeError(0))},t.some=function(e,t){return a(e,t)},t.prototype.some=function(e){return a(this,e)},t._SomePromiseArray=i}},{"./errors":12,"./util":36}],32:[function(e,t,n){"use strict";t.exports=function(e){function t(e){void 0!==e?(e=e._target(),this._bitField=e._bitField,this._settledValueField=e._isFateSealed()?e._settledValue():void 0):(this._bitField=0,this._settledValueField=void 0)}t.prototype._settledValue=function(){return this._settledValueField};var n=t.prototype.value=function(){if(!this.isFulfilled())throw new TypeError("cannot get fulfillment value of a non-fulfilled promise\n\n See http://goo.gl/MqrFmX\n");return this._settledValue()},r=t.prototype.error=t.prototype.reason=function(){if(!this.isRejected())throw new TypeError("cannot get rejection reason of a non-rejected promise\n\n See http://goo.gl/MqrFmX\n");return this._settledValue()},i=t.prototype.isFulfilled=function(){return 0!=(33554432&this._bitField)},a=t.prototype.isRejected=function(){return 0!=(16777216&this._bitField)},o=t.prototype.isPending=function(){return 0==(50397184&this._bitField)},s=t.prototype.isResolved=function(){return 0!=(50331648&this._bitField)};t.prototype.isCancelled=function(){return 0!=(8454144&this._bitField)},e.prototype.__isCancelled=function(){return 65536==(65536&this._bitField)},e.prototype._isCancelled=function(){return this._target().__isCancelled()},e.prototype.isCancelled=function(){return 0!=(8454144&this._target()._bitField)},e.prototype.isPending=function(){return o.call(this._target())},e.prototype.isRejected=function(){return a.call(this._target())},e.prototype.isFulfilled=function(){return i.call(this._target())},e.prototype.isResolved=function(){return s.call(this._target())},e.prototype.value=function(){return n.call(this._target())},e.prototype.reason=function(){var e=this._target();return e._unsetRejectionIsUnhandled(),r.call(e)},e.prototype._value=function(){return this._settledValue()},e.prototype._reason=function(){return this._unsetRejectionIsUnhandled(),this._settledValue()},e.PromiseInspection=t}},{}],33:[function(e,t,n){"use strict";t.exports=function(t,n){function r(e){return e.then}function i(e){try{return r(e)}catch(e){return c.e=e,c}}function a(e){try{return l.call(e,"_promise0")}catch(e){return!1}}function o(e,r,i){var a=new t(n),o=a;i&&i._pushContext(),a._captureStackTrace(),i&&i._popContext();var u=!0,l=s.tryCatch(r).call(e,function(e){a&&(a._resolveCallback(e),a=null)},function(e){a&&(a._rejectCallback(e,u,!0),a=null)});return u=!1,a&&l===c&&(a._rejectCallback(l.e,!0,!0),a=null),o}var s=e("./util"),c=s.errorObj,u=s.isObject,l={}.hasOwnProperty;return function(e,r){if(u(e)){if(e instanceof t)return e;var s=i(e);if(s===c){r&&r._pushContext();var l=t.reject(s.e);return r&&r._popContext(),l}if("function"==typeof s)return a(e)?(l=new t(n),e._then(l._fulfill,l._reject,void 0,l,null),l):o(e,s,r)}return e}}},{"./util":36}],34:[function(e,t,n){"use strict";t.exports=function(t,n,r){function i(e){this.handle=e}function a(e){return clearTimeout(this.handle),e}function o(e){throw clearTimeout(this.handle),e}var s=e("./util"),c=t.TimeoutError;i.prototype._resultCancelled=function(){clearTimeout(this.handle)};var u=function(e){return l(+this).thenReturn(e)},l=t.delay=function(e,a){var o,s;return void 0!==a?(o=t.resolve(a)._then(u,null,null,e,void 0),r.cancellation()&&a instanceof t&&o._setOnCancel(a)):(o=new t(n),s=setTimeout(function(){o._fulfill()},+e),r.cancellation()&&o._setOnCancel(new i(s)),o._captureStackTrace()),o._setAsyncGuaranteed(),o};t.prototype.delay=function(e){return l(e,this)};var f=function(e,t,n){var r;r="string"!=typeof t?t instanceof Error?t:new c("operation timed out"):new c(t),s.markAsOriginatingFromRejection(r),e._attachExtraTrace(r),e._reject(r),null!=n&&n.cancel()};t.prototype.timeout=function(e,t){e=+e;var n,s,c=new i(setTimeout(function(){n.isPending()&&f(n,t,s)},e));return r.cancellation()?(s=this.then(),(n=s._then(a,o,void 0,c,void 0))._setOnCancel(c)):n=this._then(a,o,void 0,c,void 0),n}}},{"./util":36}],35:[function(e,t,n){"use strict";t.exports=function(t,n,r,i,a,o){function s(e){setTimeout(function(){throw e},0)}function c(e){var t=r(e);return t!==e&&"function"==typeof e._isDisposable&&"function"==typeof e._getDisposer&&e._isDisposable()&&t._setDisposable(e._getDisposer()),t}function u(e,n){var i=0,o=e.length,u=new t(a);return(function a(){if(i>=o)return u._fulfill();var l=c(e[i++]);if(l instanceof t&&l._isDisposable()){try{l=r(l._getDisposer().tryDispose(n),e.promise)}catch(e){return s(e)}if(l instanceof t)return l._then(a,s,null,null,null)}a()})(),u}function l(e,t,n){this._data=e,this._promise=t,this._context=n}function f(e,t,n){this.constructor$(e,t,n)}function d(e){return l.isDisposer(e)?(this.resources[this.index]._setDisposable(e),e.promise()):e}function h(e){this.length=e,this.promise=null,this[e-1]=null}var p=e("./util"),v=e("./errors").TypeError,g=e("./util").inherits,y=p.errorObj,m=p.tryCatch,b={};l.prototype.data=function(){return this._data},l.prototype.promise=function(){return this._promise},l.prototype.resource=function(){return this.promise().isFulfilled()?this.promise().value():b},l.prototype.tryDispose=function(e){var t=this.resource(),n=this._context;void 0!==n&&n._pushContext();var r=t!==b?this.doDispose(t,e):null;return void 0!==n&&n._popContext(),this._promise._unsetDisposable(),this._data=null,r},l.isDisposer=function(e){return null!=e&&"function"==typeof e.resource&&"function"==typeof e.tryDispose},g(f,l),f.prototype.doDispose=function(e,t){return this.data().call(e,e,t)},h.prototype._resultCancelled=function(){for(var e=this.length,n=0;n0},t.prototype._getDisposer=function(){return this._disposer},t.prototype._unsetDisposable=function(){this._bitField=-131073&this._bitField,this._disposer=void 0},t.prototype.disposer=function(e){if("function"==typeof e)return new f(e,this,i());throw new v}}},{"./errors":12,"./util":36}],36:[function(n,r,i){"use strict";function a(){try{var e=d;return d=null,e.apply(this,arguments)}catch(e){return v.e=e,v}}function o(e){return null==e||!0===e||!1===e||"string"==typeof e||"number"==typeof e}function s(e,t,n){if(o(e))return e;var r={value:n,configurable:!0,enumerable:!1,writable:!0};return h.defineProperty(e,t,r),e}function c(e){try{return e+""}catch(e){return"[no string representation]"}}function u(e){return e instanceof Error||null!==e&&"object"==typeof e&&"string"==typeof e.message&&"string"==typeof e.name}function l(e){return u(e)&&h.propertyIsWritable(e,"stack")}function f(e){return{}.toString.call(e)}var d,h=n("./es5"),p="undefined"==typeof navigator,v={e:{}},g="undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==t?t:void 0!==this?this:null,y=(function(){var e=[Array.prototype,Object.prototype,Function.prototype],t=function(t){for(var n=0;n1,r=t.length>0&&!(1===t.length&&"constructor"===t[0]),i=m.test(e+"")&&h.names(e).length>0;if(n||r||i)return!0}return!1}catch(e){return!1}},isIdentifier:function(e){return b.test(e)},inheritedDataKeys:y,getDataPropertyOrDefault:function(e,t,n){if(!h.isES5)return{}.hasOwnProperty.call(e,t)?e[t]:void 0;var r=Object.getOwnPropertyDescriptor(e,t);return null!=r?null==r.get&&null==r.set?r.value:n:void 0},thrower:function(e){throw e},isArray:h.isArray,asArray:k,notEnumerableProp:s,isPrimitive:o,isObject:function(e){return"function"==typeof e||"object"==typeof e&&null!==e},isError:u,canEvaluate:p,errorObj:v,tryCatch:function(e){return d=e,a},inherits:function(e,t){function n(){for(var n in this.constructor=e,this.constructor$=t,t.prototype)r.call(t.prototype,n)&&"$"!==n.charAt(n.length-1)&&(this[n+"$"]=t.prototype[n])}var r={}.hasOwnProperty;return n.prototype=t.prototype,e.prototype=new n,e.prototype},withAppended:function(e,t){var n,r=e.length,i=new Array(r+1);for(n=0;n10||t[0]>0})(),T.isNode&&T.toFastProperties(e);try{throw new Error}catch(e){T.lastLineError=e}r.exports=T},{"./es5":13}]},{},[4])(4)}),"undefined"!=typeof window&&null!==window?window.P=window.Promise:"undefined"!=typeof self&&null!==self&&(self.P=self.Promise)}).call(this,t("_process"),void 0!==e?e:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},t("timers").setImmediate)},{_process:15,timers:16}],2:[function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0}),n.PreCallTest=void 0;var i=(function(){function e(e,t){for(var n=0;n=10?e.stop():(e.turnConnection.disconnect(),setTimeout(function(){e._start()},0))}))}},{key:"stop",value:function(){var e=this;if(this.browserInfo.browserName!==l.Constants.browserName.msie&&this.active){this.active=!1,this.activeTurnTest&&this.activeTurnTest.forceStop();var t=this.onlineCheck.stop();this.resultsHandler&&this.resultsHandler.add("onlineStatus",t),this.turnConnection.getIceResults().then(function(t){e.resultsHandler&&e.resultsHandler.add("ice",t),e.turnConnection.disconnect(),e.sendResults()},function(t){e.resultsHandler&&e.resultsHandler.failure(t),e.turnConnection.disconnect(),e.sendResults()})}}},{key:"sendResults",value:function(){if(this.resultsHandler){var e=this.resultsHandler.getResults();this.resultsHandler=null,this.callback&&this.callback(e,null)}else this.callback&&this.callback(null,"No results present")}},{key:"callStarts",value:function(){this.callsInProgress+=1,this.resultsHandler&&this.resultsHandler.setStatusStopped(),this.stop()}},{key:"callFinished",value:function(){this.callsInProgress-=1}},{key:"getId",value:function(){return this.resultsHandler?this.resultsHandler.getId():null}},{key:"crashDisconnect",value:function(){try{this.turnConnection.disconnect()}catch(e){}}},{key:"startTurnTests",value:function(){var e=this;if(this.turnTestCounter>=this.turnTests.length)return new f(function(e,t){e()});var t=this.turnTests[this.turnTestCounter],n=null;switch(t){case d.RTT:n=new o.RttTest(this.turnConnection);break;case d.THROUGHPUT:n=new s.ThroughputTest(this.turnConnection,this.rtt);break;default:return new f(function(e,n){n(new Error("Unknown test: "+t))})}return this.activeTurnTest=n,this.active?n.start().then(function(){return e.handleTestResults(t,n.getResults()),e.turnTestCounter+=1,e.activeTurnTest=null,e.startTurnTests()},function(r){return e.handleTestResults(t,n.getResults(),r),e.turnTestCounter+=1,e.activeTurnTest=null,e.startTurnTests()}):new f(function(e,t){t(new Error("Test trying to start while testing is not active"))})}},{key:"handleTestResults",value:function(e,t){null==(2=this.intervalLength){var r=n-this.intervalStart,i=this.averageThroughput(this.intervalBytes,r),a=null;try{a=n-JSON.parse(this.lastMessage).timestamp}catch(e){}this.intervals.push({startTimestamp:this.intervalStart,endTimestamp:n,bytesReceived:this.intervalBytes,average:i,rtt:a}),this.intervalStart=n,this.intervalBytes=0}this.results.startTimestamp&&n-this.results.startTimestamp>this.duration/2&&(this.secondHalfStart||(this.secondHalfStart=n),this.secondHalfBytes+=e.length)}}},{key:"handleError",value:function(e){this.stop(),this.failed(e)}},{key:"averageThroughput",value:function(e,t){return e/(t/1e3)*8/1024}},{key:"bufferListener",value:function(){this.sendChannel.removeEventListener("bufferedamountlow",this.bufferListener.bind(this)),this.fillBuffer()}},{key:"fillBuffer",value:function(){for(0==this.sendChannel.bufferedAmount&&(this.bufferEmpty+=1);this.isActive();){if(this.sendChannel.bufferedAmount>this.bufferFullThreshold)return void(this.usePolling?setTimeout(this.fillBuffer.bind(this),250):this.sendChannel.addEventListener("bufferedamountlow",this.bufferListener.bind(this)));var e=this.messageMaker.make(this.sentBytes);this.sentBytes+=e.length,this.send(e)}this.sendChannel.removeEventListener("bufferedamountlow",this.bufferListener.bind(this))}},{key:"startSend",value:function(){this.isActive()&&(this.bufferFullThreshold=1e3*this.chunkSize,this.sendChannel=this.connection.sendChannel,this.usePolling=!0,"number"==typeof this.sendChannel.bufferedAmountLowThreshold&&(this.usePolling=!1,this.sendChannel.bufferedAmountLowThreshold=this.bufferFullThreshold/10),setTimeout(this.fillBuffer.bind(this),0))}},{key:"fillResults",value:function(){this.results.endTimestamp=c.getCurrent(),this.results.maxDuration=this.duration,this.results.forceStopped=this.forceStopped,this.results.bufferEmpty=this.bufferEmpty,this.results.intervals=this.intervals,this.results.bytesPrepared=this.sentBytes,this.results.bytesReceived=this.receivedBytes;var e=0,t=0;this.secondHalfStart&&(e=this.results.endTimestamp-this.secondHalfStart,t=this.averageThroughput(this.secondHalfBytes,e));var n=this.results.endTimestamp-this.results.startTimestamp,r=this.averageThroughput(this.receivedBytes,n);t>24;if("rtp"===this.protocol&&0<=n&&n<=2)switch(n){case 0:t="TLS";break;case 1:t="TCP";break;case 2:t="UDP"}return t}},{key:"getString",value:function(){return this.iceCandidateStr}},{key:"getType",value:function(){return this.type}},{key:"isHost",value:function(){return"host"===this.type.toLowerCase()}},{key:"isServerReflexive",value:function(){return"srflx"===this.type.toLowerCase()}},{key:"isPeerReflexive",value:function(){return"prflx"===this.type.toLowerCase()}},{key:"isRelay",value:function(){return"relay"===this.type.toLowerCase()||"relayed"===this.type.toLowerCase()}},{key:"getTypeTransport",value:function(){return this.typeTransport}},{key:"isTypeTransportUdp",value:function(){return"UDP"===this.typeTransport}},{key:"isTypeTransportTcp",value:function(){return"TCP"===this.typeTransport}},{key:"isTypeTransportTls",value:function(){return"TLS"===this.typeTransport}},{key:"getTransport",value:function(){return this.transport}},{key:"isUdp",value:function(){return"udp"===this.transport.toLowerCase()}},{key:"isTcp",value:function(){return"tcp"===this.transport.toLowerCase()}},{key:"getProtocol",value:function(){return this.protocol}},{key:"isRtp",value:function(){return"rtp"===this.protocol}},{key:"isRtcp",value:function(){return"rtcp"===this.protocol}},{key:"isIpv6",value:function(){return this.ipv6}},{key:"getIpAddress",value:function(){return this.ipAddress}},{key:"getPort",value:function(){return this.port}}]),e})();n.ParsedIceCandidate=a},{}],10:[function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0}),n.ResultsHandler=void 0;var i="function"==typeof Symbol&&"symbol"==typeof("function"==typeof Symbol?Symbol.iterator:"@@iterator")?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==("function"==typeof Symbol?Symbol.prototype:"@@prototype")?"symbol":typeof e},a=(function(){function e(e,t){for(var n=0;n>24;c.mozLocalTransport=this.formatRelayType(u)}c.mozLocalTransport=c.mozLocalTransport.toLowerCase()}t.push(c)}else s.remoteCandidate&&n.push(s.remoteCandidate)}if(i)for(var l=0;l1)for(var n=1;n=0&&(e._idleTimeoutId=setTimeout(function(){e._onTimeout&&e._onTimeout()},t))},n.setImmediate="function"==typeof t?t:function(e){var t=u++,r=!(arguments.length<2)&&s.call(arguments,1);return c[t]=!0,a(function(){c[t]&&(r?e.apply(null,r):e.call(null),n.clearImmediate(t))}),t},n.clearImmediate="function"==typeof r?r:function(e){delete c[e]}}).call(this,e("timers").setImmediate,e("timers").clearImmediate)},{"process/browser.js":15,timers:16}],17:[function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0});var i=(function(){function e(e,t){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:"")}function s(){var e=null,t=v.Registry.getEndpoint().getBrowserName();return"Firefox"===t?e=mozRTCPeerConnection:"Chrome"===t||"Opera"===t?e=webkitRTCPeerConnection:"Safari"===t?g.log("Browser type Safari"):"Edge"===t&&(e=window.RTCPeerConnection),e}function c(e){if(null===e)return!1;var t=v.Registry.getEndpoint().getCodeBase();if(t===f.codeBaseType.firefox)return"undefined"!=typeof mozRTCPeerConnection&&e instanceof mozRTCPeerConnection||"undefined"!=typeof RTCPeerConnection&&e instanceof RTCPeerConnection;if(t===f.codeBaseType.edge||"function"==typeof e)return!0;var n=s();return null!==n&&e instanceof n||void 0!==e.createOffer}var u="function"==typeof Symbol&&"symbol"==typeof("function"==typeof Symbol?Symbol.iterator:"@@iterator")?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==("function"==typeof Symbol?Symbol.prototype:"@@prototype")?"symbol":typeof e},l=(function(){function e(e,t){for(var n=0;n ("+r+") ["+t.toString()+"]"),null!==t.getLeft()&&e(t.getLeft(),n+1,"Left"),null!==t.getRight()&&e(t.getRight(),n+1,"Right")}})(this.root,0,"Root")):s.log("This tree is empty Duplicate Counter: "+this.duplicate_counter)}}]),e})();n.BinaryTree=c},{"../utility/csiologger":92,"./binarytreenode.js":24}],24:[function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0});var i=(function(){function e(e,t){for(var n=0;n1&&void 0!==arguments[1]&&arguments[1];this.length()>1e6?a.error("Maximum cached items reached, dropping."):t?this.priority.push(e):this.queue.push(e)}},{key:"pop",value:function(){return this.priority.length>0?this.priority.shift():this.queue.shift()}},{key:"peak",value:function(){return this.priority.length>0?this.priority[0]:this.queue.length>0?this.queue[0]:null}},{key:"length",value:function(){return this.queue.length+this.priority.length}},{key:"updateConferenceId",value:function(e){for(var t=0;t0&&void 0!==arguments[0]?arguments[0]:"Unknown";r(this,e),this.name=t,this.ports=new Map}return i(e,[{key:"bindPort",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this;this.ports.has(e)?o.warn("Port ("+e+") for "+this.name+" already exists."):this.ports.set(e,new a.Port(t,n))}},{key:"declarePort",value:function(e){this.ports.has(e)?o.warn("Port ("+e+") for "+this.name+" already exists."):this.ports.set(e,null)}},{key:"getPort",value:function(e){return this.ports.get(e)}},{key:"isConnected",value:function(e){return!!this.ports.has(e)&&null!==this.ports.get(e)}},{key:"connect",value:function(e,t){this.ports.has(e)?this.ports.set(e,t):o.warn("Port ("+e+") for "+this.name+" does not exists.")}},{key:"transmit",value:function(e){var t=this.ports.get(e);if(void 0!==t)if(null!==t){for(var n=arguments.length,r=Array(n>1?n-1:0),i=1;i1?n-1:0),i=1;i=a.pctSampleSize&&this.pctMeasurements.shift(),this.pctMeasurements.push(e);var t=e.getProvider();this.pctMeasurementsMap.has(t)||this.pctMeasurementsMap.set(t,[]),this.pctMeasurementsMap.get(t).push(e)}},{key:"clearPCTMeasurements",value:function(){this.pctMeasurements=[],this.pctMeasurementsMap=new Map}},{key:"doStats",value:function(e){var t={};return t.min=this.findMin(e),t.max=this.findMax(e),t.mean=this.calculateAverage(e),t.median=this.calculateMedian(e),t.stddev=this.calculateStandardDeviation(e,t.mean),t}},{key:"findMax",value:function(e){return e&&e.length?Math.max.apply(null,e):null}},{key:"findMin",value:function(e){return e&&e.length?Math.min.apply(null,e):null}},{key:"calculateAverage",value:function(e){return e&&e.length?e.reduce(function(e,t){return e+t},0)/e.length:0}},{key:"calculateMedian",value:function(e){if(!e)return 0;if(!e.length)return 0;var t=e.slice(0).sort(function(e,t){return e-t}),n=Math.floor(t.length/2);return t.length%2==0?(t[n]+t[n-1])/2:t[n]}},{key:"calculateStandardDeviation",value:function(e,t){if(!e)return 0;if(!e.length)return 0;var n=e.map(function(e){var n=e-t;return n*n}).reduce(function(e,t){return e+t},0);return Math.sqrt(n/(e.length-1))}},{key:"setAcceptability",value:function(e){var t=[];return t.push(e.throughput.median<30),t.push(e.loss.median>.05),t.push(e.rtt.median>400),e.acceptable=!t.reduce(function(e,t){return e||t},!1),e}},{key:"doInternalMeasurement",value:function(e){var t={},n=[],r=[],i=[],a=[];if(e)for(var o=0;o=.04?t-=3:t,t=n>=.025?t-=1:t,t=n>=.01?t-=1:t,t=r>=.04?t-=5:t,t=r>=.025?t-=3:t,r>=.005?t-=2:t}},{key:"scoreThroughPut",value:function(e){var t=0;if(!e||!e.throughput)return t;var n=e.throughput.median,r=e.throughput.min;return t=n>5e3?t+=5:t,t=n>2e3?t+=2:t,t=n>200?t+=1:t,t=r<100?t-=3:t,t=r<1e3?t-=2:t,(t=r<2e3?t-=1:t)>0?t:0}},{key:"aggregate",value:function(){var e=this,t=[];return e.pctMeasurementsMap.forEach(function(n,r){var i={};i.provider=r;var a=e.doInternalMeasurement(n);i.rtt=a.rtt,i.jitter=a.jitter,i.loss=a.loss,i.throughput=a.throughput,(i=e.setAcceptability(i)).rttScore=e.scoreRtt(),i.lossesScore=e.scoreLosses(),i.throughputScore=e.scoreThroughPut(),t.push(i)}),t}},{key:"getAggregate",value:function(e){var t=[];if(!e)return t;for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:null;r(this,e),this.target=t,this.object=n}return i(e,[{key:"transmit",value:function(e){this.target.apply(this.object,e)}},{key:"request",value:function(e){return this.target.apply(this.object,e)}}]),e})();n.Port=a},{}],30:[function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0});var i=Object.assign||function(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:void 0;r(this,e),this.value=t,this.next=n}return a(e,[{key:"setNext",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0;this.next=e}}]),e})(),s=(function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;r(this,e),this.capacity=t,this.root=n,this.tail=i,this.currentLength=0}return a(e,[{key:"size",value:function(){return this.currentLength}},{key:"isEmpty",value:function(){return this.currentLength<1}},{key:"isOverflow",value:function(){return this.size()>this.capacity}},{key:"push",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=this.tail;this.tail=new o(e),this.isEmpty()?this.root=this.tail:t.setNext(this.tail),this.currentLength+=1;var n=void 0;return this.isOverflow()&&(n=this.pop()),n}},{key:"pop",value:function(){if(!this.isEmpty()){var e=this.root.value;return this.root=this.root.next,this.currentLength-=1,e}}},{key:"getFront",value:function(){return this.root}},{key:"getBack",value:function(){return this.tail}},{key:"clear",value:function(){this.root=void 0,this.tail=void 0,this.currentLength=0}},{key:"toArray",value:function(){for(var e=i({},this.root),t=[];e;){var n=e,r=n.value;e=n.next,t.push(r)}return t}}]),e})();n.Queue=s},{}],31:[function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0}),n.SlidingWindow=void 0;var i=(function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:0;return this.items.length<=e?null:this.items[this.items.length-e-1].getValue()}},{key:"attach",value:function(e){this.plugins.push(e)}},{key:"addPreProcess",value:function(e){this.preProcesses.push(e)}},{key:"addPostProcess",value:function(e){this.postProcesses.push(e)}},{key:"detach",value:function(e){this.plugins=this.plugins.filter(function(t){return t!==e})}}]),e})();n.SlidingWindow=s},{"../utility/timestamps":104,"./switem":32}],32:[function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0}),n.SWItem=void 0;var i=(function(){function e(e,t){for(var n=0;n>>0,r=arguments[1],i=void 0,a=0;a0&&f.Registry.getEventMessageBuilder().make(v.precalltestEvents.associate,r,e,{ids:u})}},{key:"onStartPrecallTests",value:function(e,t){var n=f.Registry.getAuthenticator().getIceServers();n[0].label="callstats",e.push(n[0]),f.Registry.getPCTRunnerService().start(e,t)}},{key:"onSendCallDetails",value:function(e,t,n){d.warn("FSM onSendCallDetails");var r={};r.callType=n.callType,r.role=n.role,n.contactQueue&&(r.contactQueue=n.contactQueue),n.contactQueueID&&(r.contactQueueID=n.contactQueueID),n.routingProfile&&(r.routingProfile=n.routingProfile),n.routingProfileID&&(r.routingProfileID=n.routingProfileID),n.contactID&&(r.contactID=n.contactID),n.siteID&&(r.siteID=n.siteID,f.Registry.getCredentials().setSiteId(n.siteID)),f.Registry.getEventMessageBuilder().make(v.fabricEvent.callDetails,t,e,r)}},{key:"onSendFabricEvent",value:function(e,t,n,r){d.warn("FSM onSendFabricEvent");var i={};r&&((i=r).ssrc&&(i.ssrc=String(i.ssrc))),t===v.fabricEvent.activeDeviceList&&(i={mediaDeviceList:h.normalizeMediaDeviceList(r.deviceList)}),f.Registry.getEventMessageBuilder().make(t,n,e,i);var a=f.Registry.getConferenceManager().get(n);if(a){var o=a.getPeerConnectionManager().getPcHandler(e);t!==v.fabricEvent.fabricTerminated&&t!==v.internalFabricEvent.fabricSetupFailed||(o.stopUserAliveHandler(),o.setPcState(v.fabricState.terminated),o.stopStatsPolling(),a.getPeerConnectionManager().removePcStats(o&&o.getPcHash()),a.updateState()),t===v.fabricEvent.fabricHold&&(o.setPcState(v.fabricState.hold),o.stopStatsPolling()),t===v.fabricEvent.fabricResume&&(o.setPcState(v.fabricState.established),o.startStatsPolling())}}},{key:"onReportError",value:function(e,t,n,r,i,a){d.warn("FSM onReportError");var o={delay:0,reason:this.callFailureClassifier(n),function:n,magicKey:f.Registry.getEndpoint().getMagicKey(),endpoint:f.Registry.getEndpoint().serialize(),level:"debug"};if(r){var s=this.formatDomError(r);o.message=s.message,o.messageType=s.messageType,o.name=r.name,o.stack=r.stack}if(e){var c=f.Registry.getConferenceManager().get(t),u=void 0;if(c&&(u=c.getPeerConnectionManager().getPcHandler(e)),!u)return void d.error("onReportError: No handler found for given PeerConnection!");if(o.delay=p.getCurrent()-u.getStartTime(),o.fabricState=u.getPcState(),o.iceConnectionState=u.getIceConnectionState(),(i||a||e&&"closed"!==e.signalingState)&&f.Registry.getCredentials().getCollectSDP()&&n!==v.webRTCFunctions.applicationLog){var l={};l.localSDP=this.pickSDP(e,i,"localDescription"),l.remoteSDP=this.pickSDP(e,a,"remoteDescription"),f.Registry.getEventMessageBuilder().make(v.callstatsChannels.sdpSubmission,t,e,l)}}n===v.webRTCFunctions.applicationLog||n===v.webRTCFunctions.applicationError?f.Registry.getEventMessageBuilder().make(v.fabricEvent.applicationErrorLog,t,e,o):n===v.webRTCFunctions.iceConnectionFailure?this.handleIceConnectionFailure(e,t,o):(f.Registry.getEventMessageBuilder().make(v.fabricEvent.fabricSetupFailed,t,e,o),n===v.webRTCFunctions.getUserMedia&&this.handleGUMErrors(t))}},{key:"onAssociateMstWithUserID",value:function(e,t,n,r,i,a){var o=f.Registry.getConferenceManager().get(n);if(o){var s=o.getPeerConnectionManager().getPcHandler(e);"string"!=typeof r&&(r+=""),s.updateSSRCInfo(r,t,i,a)}}},{key:"onAttachWifiStatsHandler",value:function(e){f.Registry.getWifiStatsExecutor().setGetWifiStatsMethod(e)}},{key:"onSetProxyConfig",value:function(e){d.warn("FSM onSetProxyConfig"),e.collectorURL&&g.setBaseUrl(e.collectorURL),e.authServiceURL&&g.setAuthServiceUrl(e.authServiceURL),e.csioInternalAPIURL&&g.setQmodelThresholdsAPIUrl(e.csioInternalAPIURL),e.wsURL&&g.setWsUrl(e.wsURL),e.restEventURL&&g.setRestEventUrl(e.restEventURL),e.restStatsURL&&g.setRestStatsUrl(e.restStatsURL),e.appSettingsURL&&g.setConfigServiceUrl(e.appSettingsURL)}},{key:"onSendUserFeedback",value:function(e,t,n){var r={feedback:{overallRating:t.overall}};t.video&&(r.feedback.videoQualityRating=t.video),t.audio&&(r.feedback.audioQualityRating=t.audio),t.comment&&(r.feedback.comments=t.comment),f.Registry.getEventMessageBuilder().make(v.callstatsChannels.userFeedback,e,null,r)}},{key:"onOn",value:function(e,t){f.Registry.getCallbacks().set(e,t)}},{key:"onSetIdentifiers",value:function(e,t){if(e.conferenceID&&(f.Registry.getConferenceManager().updateConferenceId(e.conferenceID),f.Registry.getTransmissionManager().updateConferenceId(e.conferenceID),f.Registry.getTransmissionManager().trySend()),e.remoteUserID&&t){var n=f.Registry.getConferenceManager().getConferenceForPc(t);if(!n)return void d.log("onSetIdentifiers conference not found");var r=n.getPeerConnectionManager().getPcHandler(t);if(!r)return void d.log("pcHandler not found");r.updateRemoteId(e.remoteUserID),f.Registry.getTransmissionManager().trySend()}}},{key:"onMakePrecallTest",value:function(e,t){var n=e,r=t||"callstats";e||(n=this.authenticator.getIceServers(),r="callstats"),f.Registry.getPCTRunnerService().doPrecalltest(n,r)}},{key:"handleIceConnectionFailure",value:function(e,t,n){if(e){var r=f.Registry.getConferenceManager().get(t),i=void 0;if(r&&(i=r.getPeerConnectionManager().getPcHandler(e)),i)if(i.isFabricSetupSent()){var a={localIceCandidates:[],remoteIceCandidates:[],iceCandidatePairs:[]};a.delay=p.getCurrent()-i.getStartTime(),a.currIceConnectionState="failed",a.prevIceConnectionState="disconnected",f.Registry.getEventMessageBuilder().make(v.internalFabricEvent.iceFailed,t,e,a)}else n.delay=p.getCurrent()-i.getStartTime(),n.fabricState=i.getPcState(),n.iceConnectionState=i.getIceConnectionState(),f.Registry.getEventMessageBuilder().make(v.fabricEvent.fabricSetupFailed,t,e,n)}}},{key:"handleGUMErrors",value:function(e){var t=f.Registry.getConferenceManager().get(e);if(t||(f.Registry.getConferenceManager().add(e,f.Registry.getCredentials()),t=f.Registry.getConferenceManager().get(e)),!t.getUcId()){var n={endpointInfo:f.Registry.getEndpoint().serialize()};f.Registry.getEventMessageBuilder().make(v.internalFabricEvent.userJoined,e,null,n),t.setUserJoinedSent(!0)}}},{key:"callFailureClassifier",value:function(e){var t=void 0;return v.webRTCFunctions.hasOwnProperty(e)?e===v.webRTCFunctions.createOffer||e===v.webRTCFunctions.createAnswer||e===v.webRTCFunctions.setRemoteDescription?t=v.callFailureReasons.negotiationFailure:e===v.webRTCFunctions.setLocalDescription?t=v.callFailureReasons.sdpError:e===v.webRTCFunctions.addIceCandidate?t=v.callFailureReasons.sdpError:e===v.webRTCFunctions.getUserMedia?t=v.callFailureReasons.mediaConfigError:e===v.webRTCFunctions.iceConnectionFailure?t=v.callFailureReasons.iceFailure:e===v.webRTCFunctions.signalingError?t=v.callFailureReasons.signalingError:(e===v.webRTCFunctions.applicationLog||v.webRTCFunctions.applicationError)&&(t=v.callFailureReasons.applicationLog):t=v.callFailureReasons.invalidWebRTCFunctionName,t}},{key:"formatDomError",value:function(e){var t={},n={};e&&(window.DOMException&&e instanceof window.DOMException?(n.message=e.message,n.name=e.name,t.messageType="domError"):"object"===(void 0===e?"undefined":c(e))?(e.message&&(n.message=e.message),e.name&&(n.name=e.name),e.constraintName&&(n.name=e.constraintName),e.stack&&(n.stack=e.stack),t.messageType="json"):(n=e,t.messageType="text"));var r=this.truncateLog(n);return"object"===(void 0===r?"undefined":c(r))?t.message=JSON.stringify(r):t.message=r,t}},{key:"pickSDP",value:function(e,t,n){return t||(e&&e[n]?e[n].sdp:"")}},{key:"truncateString",value:function(e){return e.length>2e4&&(d.log("Log exceeds 20kb, It will be truncated"),e=e.substring(0,2e4)),e}},{key:"truncateLog",value:function(e){return e?("string"==typeof e?e=this.truncateString(e):"object"===(void 0===e?"undefined":c(e))&&e.message&&(e.message=this.truncateString(e.message)),e):e}}]),t})();n.MainFSM=T},{"../config/constants":36,"../config/settings":37,"../statspipeline/statsadapter":73,"../statspipeline/statsassembler":74,"../statspipeline/statsmonitor":76,"../statspipeline/statsparser":77,"../statspipeline/statstransmitter":78,"../utility/csiologger":92,"../utility/registry":100,"../utility/timestamps":104,"../utility/utils":106,"./statemachine":40}],39:[function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0});var i=(function(){function e(e,t){for(var n=0;n1?t-1:0),r=1;r",this.iceConnectionState);var e={changedState:o.fabricStateChangeType.iceConnectionState,prevState:this.oldIceConnectionState,newState:this.iceConnectionState};this.sendFabricStateChange(e)}},{key:"handleIceGatheringState",value:function(){if(this.iceGatheringState!==this.pc.iceGatheringState){"complete"===this.pc.iceGatheringState&&(this.iceGatheringDelay=c.getCurrent()-this.startTime),this.oldIceGatheringState=this.iceGatheringState,this.iceGatheringState=this.pc.iceGatheringState,l.warn("CALLBACK: ICE gathering state change",this.oldIceGatheringState,"->",this.iceGatheringState);var e={changedState:o.fabricStateChangeType.iceGatheringState,prevState:this.oldIceGatheringState,newState:this.iceGatheringState};this.sendFabricStateChange(e)}}},{key:"handleIceChecking",value:function(){var e=c.getCurrent();if("disconnected"===this.oldIceConnectionState&&(this.pcState===o.fabricState.checkingDisrupted||this.pcState===o.fabricState.disrupted)){var t={prevIceConnectionState:this.oldIceConnectionState,currIceConnectionState:this.iceConnectionState,delay:e-this.connectionDisruptedTS};this.pcState===o.fabricState.disrupted&&(t.prevIceCandidatePair=this.prevActiveIceCandidatePair,t.currIceCandidatePair=this.activeIceCandidatePair,t.delay=e-this.disruptedTS,this.emb.make(o.internalFabricEvent.iceDisruptionEnd,this.conferenceId,this.pc,t)),this.pcState=o.fabricState.initializing,this.emb.make(o.internalFabricEvent.iceConnectionDisruptionEnd,this.conferenceId,this.pc,t)}}},{key:"handleIceConnectedOrCompleted",value:function(e){var t=c.getCurrent();this.pcState===o.fabricState.disrupted&&(e.prevIceCandidatePair=this.prevActiveIceCandidatePair,e.currIceCandidatePair=this.activeIceCandidatePair,e.delay=t-this.disruptedTS,this.emb.make(o.internalFabricEvent.iceDisruptionEnd,this.conferenceId,this.pc,e)),this.iceConnectivityDelay=t-this.startTime,this.established=!0,this.pcState=o.fabricState.established,this.sendfabricSetup(),this.startStatsPolling()}},{key:"sendfabricSetup",value:function(){if(this.fabricSetupSent)l.log("fabricSetup has been sent already");else{var e={delay:c.getCurrent()-this.startTime,iceGatheringDelay:this.iceGatheringDelay,iceConnectivityDelay:this.iceConnectivityDelay,localIceCandidates:this.localIceCandidates,remoteIceCandidates:this.remoteIceCandidates,iceCandidatePairs:this.iceCandidatePairs,remoteEndpointType:o.endpointType.peer,fabricTransmissionDirection:o.transmissionDirection.sendrecv,iceServers:this.iceServersURLs,sdpSemantics:this.sdpSemantics},t=this.getActiveIceCandidatePair();t&&(e.selectedCandidatePairID=t.id),this.fabricSetupSent=!0;var n=void 0;if(this.conferenceId){var r=s.Registry.getConferenceManager().get(this.conferenceId);r&&r.getPeerConnectionManager()&&(n=r.getPeerConnectionManager().getPcHandler(this.pc),e.remoteEndpointType=n.getRemoteEndpointType(),e.fabricTransmissionDirection=n.getFabricTransmissionDirection())}this.pcState=o.fabricState.established,this.emb.make(o.internalFabricEvent.fabricSetup,this.conferenceId,this.pc,e)}}},{key:"isFabricSetupSent",value:function(){return this.fabricSetupSent}},{key:"startStatsPolling",value:function(){this.getStatsHandler.startStatsPolling()}},{key:"stopStatsPolling",value:function(){this.getStatsHandler.stopStatsPolling()}},{key:"handleIceFailed",value:function(e){e.currIceCandidatePair=this.activeIceCandidatePair,e.delay=c.getCurrent()-this.startTime,this.pcState=o.fabricState.failed,"checking"===e.prevIceConnectionState?this.sendIceFailed(e):"completed"===e.prevIceConnectionState||"connected"===e.prevIceConnectionState?this.emb.make(o.internalFabricEvent.fabricDropped,this.conferenceId,this.pc,e):"disconnected"===e.prevIceConnectionState&&this.established?this.emb.make(o.internalFabricEvent.fabricDropped,this.conferenceId,this.pc,e):"disconnected"===e.prevIceConnectionState&&this.sendIceFailed(e)}},{key:"getActiveIceCandidatePair",value:function(){var e=null,t=this.iceCandidatePairs;if(t&&t.length>0){var n=t.filter(function(e){return"true"===e.selected||"true"===e.googActiveConnection||!0===e.selected||!0===e.googActiveConnection});n.length>0&&(e=n[0])}return e}},{key:"sendIceFailed",value:function(e){e.localIceCandidates=this.localIceCandidates,e.remoteIceCandidates=this.remoteIceCandidates,e.iceCandidatePairs=this.iceCandidatePairs,l.log("sending icefailed ",e),this.emb.make(o.internalFabricEvent.iceFailed,this.conferenceId,this.pc,e)}},{key:"sendFabricTransportSwitch",value:function(e){var t=this,n={};n.prevIceCandidatePair=t.activeIceCandidatePair,n.relayType=e,n.currIceConnectionState=t.iceConnectionState,n.prevIceConnectionState=t.oldIceConnectionState,n.switchDelay=null,t.getStatsHandler.getIceCandidates().then(function(e){t.localIceCandidates=e.localIceCandidates,t.remoteIceCandidates=e.remoteIceCandidates,t.iceCandidatePairs=e.iceCandidatePairs,t.activeIceCandidatePair=t.getActiveIceCandidatePair(),n.currIceCandidatePair=t.activeIceCandidatePair,n.localIceCandidates=t.localIceCandidates,n.remoteIceCandidates=t.remoteIceCandidates,l.log("sending fabric transport switch ",n),"completed"!==n.currIceConnectionState&&"connected"!==n.currIceConnectionState||"completed"!==n.prevIceConnectionState&&"connected"!==n.prevIceConnectionState||t.emb.make(o.internalFabricEvent.fabricTransportSwitch,t.conferenceId,t.pc,n)})}},{key:"handleIceDisconnected",value:function(e){var t=c.getCurrent();this.startTime=t,e.prevIceConnectionStateTs=this.iceConnectionStateTS,e.currIceCandidatePair=this.activeIceCandidatePair,"connected"===e.prevIceConnectionState||"completed"===e.prevIceConnectionState?(this.pcState=o.fabricState.disrupted,this.disruptedTS=t,this.emb.make(o.internalFabricEvent.iceDisruptionStart,this.conferenceId,this.pc,e),this.callback&&this.callback(u.csError.appConnectivityError,"Connectivity check for PC object to "+this.remoteId+" failed.")):"checking"===e.prevIceConnectionState&&(this.pcState=o.fabricState.checkingDisrupted,this.connectionDisruptedTS=t,this.emb.make(o.internalFabricEvent.iceConnectionDisruptionStart,this.conferenceId,this.pc,e),this.callback&&this.callback(u.csError.appConnectivityError,"Connectivity check for PC object to "+this.remoteId+" failed."))}},{key:"handleIceClosed",value:function(e){"new"===e.prevIceConnectionState||"checking"===e.prevIceConnectionState?(e.delay=c.getCurrent()-this.startTime,e.localIceCandidates=this.localIceCandidates,e.remoteIceCandidates=this.remoteIceCandidates,e.iceCandidatePairs=this.iceCandidatePairs,this.emb.make(o.internalFabricEvent.iceAborted,this.conferenceId,this.pc,e)):"connected"!==e.prevIceConnectionState&&"completed"!==e.prevIceConnectionState||(e.prevIceCandidatePair=this.activeIceCandidatePair,this.emb.make(o.internalFabricEvent.iceTerminated,this.conferenceId,this.pc,e)),this.pcState=o.fabricState.terminated,this.conferenceId&&s.Registry.getConferenceManager().get(this.conferenceId).updateState(),this.stopStatsPolling()}},{key:"handleIceRestart",value:function(e){e.prevIceCandidatePair=this.prevActiveIceCandidatePair,"new"!==e.prevIceConnectionState&&(l.log("iceRestarted sending"),this.established=!1,this.emb.make(o.internalFabricEvent.iceRestarted,this.conferenceId,this.pc,e))}},{key:"pcSignalingStateChangeCallback",value:function(e){var t=this;if(e){var n=this.signalingState;this.signalingState=this.pc.signalingState,l.warn("CALLBACK: signaling state change",n,"->",this.signalingState);var r={changedState:o.fabricStateChangeType.signalingState,prevState:n,newState:this.signalingState};if(this.sendFabricStateChange(r),"have-remote-offer"!==this.signalingState&&"stable"!==this.signalingState||(this.precalltest.callStarts(),s.Registry.getPCTRunnerService().setCallInProgress(!0),this.genericevent.sendEvent(o.logEvents.log,{msg:"precalltest told to stop "})),"closed"===this.signalingState&&(this.emb.make(o.fabricEvent.fabricTerminated,this.conferenceId,this.pc),this.userAlive.stop(),this.precalltest.callFinished(),s.Registry.getPCTRunnerService().setCallInProgress(!1),this.stopStatsPolling(),this.pcState=o.fabricState.terminated,this.conferenceId)){var i=s.Registry.getConferenceManager().get(this.conferenceId);if(i&&i.getPeerConnectionManager()){var a=i.getPeerConnectionManager().getPcHandler(this.pc);i.getPeerConnectionManager().removePcStats(a&&a.getPcHash())}i.updateState()}"have-local-offer"!==this.signalingState&&"have-local-pranswer"!==this.signalingState&&"stable"!==this.signalingState||(l.log(this.signalingState,".. requesting sender config."),s.Registry.getConfigServiceWrapper().initiateSenderConfig(this.pc).then(function(){var e=s.Registry.getConfigServiceWrapper().getSenderConfig();l.log("Sender config:",e);var n=o.callstatsChannels.senderConfiguration;e&&s.Registry.getEventMessageBuilder().make(n,t.conferenceId,t.pc,e)}).catch(function(e){l.warn(e)}))}}},{key:"pcNegotiationNeededCallback",value:function(e){e&&(this.negotiationNeeded++,this.startTime=c.getCurrent(),l.warn("CALLBACK: negotiation needed",this.negotiationNeeded))}}]),e})();n.PcCallbackHandler=f},{"../config/callstatserrors":35,"../config/constants":36,"../utility/csiologger":92,"../utility/registry":100,"../utility/timestamps":104}],43:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0}),n.PeerConnectionHandler=void 0;var a=(function(){function e(e,t){for(var n=0;n0)this.handleErrorActions(r["urn:x-callstats:auth:errorActions"]);else{if(200===t.status){if("bearer"!==r.token_type)return S.error(this.name+": successful, but token type was not bearer. Scheduling retry."),void this.sendNextRequest();this.setupToken(r.access_token),r.iceServers&&(this.iceServers=r.iceServers),r.metadata&&r.metadata.urls&&(this.backendURLs=r.metadata.urls,this.backendURLs.events&&f.setRestEventUrl(this.backendURLs.events+"/"),this.backendURLs.stats&&f.setRestStatsUrl(this.backendURLs.stats+"/"),this.backendURLs.config&&f.setConfigServiceUrl(this.backendURLs.config+"/"));var i=parseInt(1e3*parseInt(r.expires_in)*.9);return this.setupReauthTimer(i),this.renew=!1,this.initCallback&&this.initCallback(h.csError.success,p.csCallBackMessages.authSuccessful),this.elapsed=n,void this.completeProcess()}S.error("Authentication failed, but no error actions were defined in response."),this.sendNextRequest()}}},{key:"request",value:function(){var e=this;this.clearReauthTimer();var t=new Promise(function(t,n){e.tempResolve=t,e.tempReject=n});return this.tokenGenerator(this.renew,function(t,n){if(null!==t)return e.initCallback&&e.initCallback(h.csError.tokenGenerationError,t.toString()),e.rejectCb(new Error(e.name+": tokenGenerationError")),S.error("tokenGenerationError ",t),null;var r=f.authServiceUrl+"authenticate",i={client_id:e.credentials.userId+"@"+e.credentials.getAppId(),code:n,grant_type:"authorization_code"};(0,y.sendPostRequest)(r,{"Content-Type":"application/x-www-form-urlencoded"},k,i).then(function(t){e.tempResolve(t)},function(t){e.tempReject(t)})}),t}},{key:"tokenGeneratorCreator",value:function(e,t){var n=this;return function(r,i){var a=null;if(!r&&null!==a)return i(null,a);var o=n.credentials,s={userID:o.getUserId(),appID:o.getAppId()};t&&(s.keyId=t),n.jwt.sign({alg:"HS256"},s,e).then(function(e){a=e,i(null,e)}).catch(function(e){i(e)})}}},{key:"createTokenGenerator",value:function(e){var t=this;return new Promise(function(n,r){var i=null;e.indexOf(":")>-1&&(i=d.strtohex(e.split(":")[0]),e=e.split(":")[1]),t.jwt.importKey(e).then(function(r){e=null;var a=t.tokenGeneratorCreator(r,i);n(a)}).catch(function(e){S.error(t.name+": could not import key ("+e+")"),r(e)})})}}]),t})();n.Authenticator=w},{"../browserapi/localstorage":20,"../config/callstatserrors":35,"../config/constants":36,"../config/settings":37,"../utility/base64":89,"../utility/csiologger":92,"../utility/json":97,"../utility/registry":100,"./jwt/jwt":54,"./jwt/jwttoken":55,"./xmlhttp":60,"./xmlhttpservice":61}],47:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0}),n.GenericEventHandler=void 0;var a=(function(){function e(e,t){for(var n=0;n6e4?(h.Registry.getGenericEventHandler().sendEvent(p.logEvents.log,{msg:"latency > MAX_ALLOWED_LATENCY: clockSync reset"}),this.offsetResults=[]):this.addOffset(e,r,n),this.offsetResults.length>=5?(this.calculateOffset(),this.endTime=f.getCurrent(),this.completeProcess()):this.sendRequest()}},{key:"isCompleted",value:function(){return this.completed}},{key:"addOffset",value:function(e,t,n){var r=e.now+t-n;this.offsetResults.push(r)}},{key:"calculateOffset",value:function(){var e=this.offsetResults.reduce(function(e,t){return e+t});this.currentOffset=e/this.offsetResults.length,this.currentOffset=isNaN(this.currentOffset)?0:this.currentOffset,h.Registry.getGenericEventHandler().sendEvent(p.logEvents.log,{msg:"clockSync Done, offset is: "+this.currentOffset+"results length"+this.offsetResults.length}),this.offsetResults=[],this.completed=!0}}]),t})();n.ClockSync=v},{"../config/constants":36,"../config/settings":37,"../utility/registry":100,"../utility/timestamps":104,"./xmlhttp":60,"./xmlhttpservice":61}],49:[function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0});var i=(function(){function e(e,t){for(var n=0;n1)return f.warn("Multiple PCs found, skipping"),null;if(!e.getSenders||"function"!=typeof e.getSenders)return f.warn("Get senders error"),t;for(var r=e.getSenders(),i=void 0,o=0;o=0;h--)f[h]=c.charCodeAt(h);var p=r.subtlecrypto.sign(d,n,f);"ie"===r.cryptotype?(p.onerror=a,p.oncomplete=function(e){c=r.buildToken(e.target.result,c),i(c)}):p.then(function(e){c=r.buildToken(e,c),i(c)}).catch(function(e){a(e)})})}},{key:"buildToken",value:function(e,t){for(var n="",r=new Uint8Array(e),i=r.byteLength,a=0;a0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return function(n,r,i){"success"===n.status?e&&e(n,r):t&&t(n)}}Object.defineProperty(n,"__esModule",{value:!0}),n.RestRelays=void 0;var o=(function(){function e(e,t){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:null;i(this,e),this.baseUrl=t,this.urlAppendix=n,this.responseHandler=r}return o(e,[{key:"getRequestUrl",value:function(e,t,n){return this.makeRequestUrl(e,t,n),this.requestUrl.toString()}},{key:"makeRequestUrl",value:function(e,t,n){e===s.precalltestEvents.results?this.requestUrl=new l.Url(this.baseUrl,u.Registry.getCredentials().getAppId(),this.urlAppendix):(e===s.internalFabricEvent.userJoined&&n&&(n=""),this.requestUrl=new l.Url(this.baseUrl,u.Registry.getCredentials().getAppId()+"/conferences/"+t,n,this.urlAppendix))}},{key:"handleResponse",value:function(e,t,n){this.responseHandler(e,t,n)}}]),e})();n.RestRelays=d},{"../config/constants":36,"../config/settings":37,"../utility/csiologger":92,"../utility/registry":100,"../utility/url":105}],59:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0}),n.TransmissionManager=void 0;var a=(function(){function e(e,t){for(var n=0;n0&&this.startTimer());this.setupConnection()}},{key:"setupConnection",value:function(){this.connectionManager.setup().then(function(){l.log("Connected to connectionManager")}).catch(function(e){return l.log("Could not connect to connectionManager",e)})}},{key:"canSendUserAlive",value:function(e,t){return!(this.lastUserAliveTS[t]&&e-this.lastUserAliveTS[t]<9e3)}},{key:"sendMessage",value:function(){var e=void 0,t=void 0;if(0===this.getCacheLength())return!1;for(var n in this.cache)if(this.cache.hasOwnProperty(n)&&(t=n,(e=this.cache[t].peak())&&e.canBeSent()))break;if(!e||!e.canBeSent())return!1;if(e=this.cache[t].pop(),this.lastTS=o.getCurrent(),e.eventType===u.internalFabricEvent.userAlive){if(!this.canSendUserAlive(this.lastTS,t))return!0;this.lastUserAliveTS[t]=this.lastTS}return l.log("sending message type :",e.eventType,e.toJson()),this.connectionManager.send(e.toJson()),!0}},{key:"startTimer",value:function(){var e=this;this.timerStarted||0!=this.getCacheLength()&&(this.timerStarted=!0,setTimeout(function(){e.timerStarted=!1,e.trySend()},200))}},{key:"timeToSend",value:function(){return o.getCurrent()>=this.lastTS+200}},{key:"getCacheLength",value:function(){var e=0;for(var t in this.cache)this.cache.hasOwnProperty(t)&&(e+=this.cache[t].length());return e}},{key:"updateConferenceId",value:function(e){var t=u.tmpConferenceId;this.cache[t]&&this.cache[t].updateConferenceId(e)}}]),e})();n.TransmissionManager=f},{"../collections/cache":25,"../config/constants":36,"../utility/csiologger":92,"../utility/registry":100,"../utility/timestamps":104}],60:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t,n,r,i){return new Promise(function(a,o){var f,d=null,h=new XMLHttpRequest,p=u.Registry.getEndpoint().getBrowserName();if(h){for(var v in f=s.getCurrent(),h.open(e,t),p!==c.browserName.msie&&(h.timeout=r),n)n.hasOwnProperty(v)&&h.setRequestHeader(v,n[v]);var g=null;if("POST"===e){if("application/x-www-form-urlencoded"===n["Content-Type"]){var y=[];for(var m in i)i.hasOwnProperty(m)&&y.push(encodeURIComponent(m)+"="+encodeURIComponent(i[m]));g=y.join("&")}"application/json"===n["Content-Type"]&&(g=JSON.stringify(i))}h.onload=function(){d=s.getCurrent();var e=new l(h,d-f);a(e)},h.ontimeout=function(){o(new Error("connection timeout"))},h.onreadystatechange=function(){4===h.readyState&&0===h.status&&o(new Error("no server response received"))},h.send(g)}else o(new Error("creating instance failed"))})}Object.defineProperty(n,"__esModule",{value:!0});var o=(function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:"XMLHttpService",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:s,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:c;r(this,e),this.name=t,this.minRetryTimeout=n,this.sigmoid=new a.Sigmoid(i-n,15,.5),this.reset()}return i(e,[{key:"reset",value:function(){this.inProgress=!1,this.completed=!1,this.resolveCb&&this.rejectCb(new Error(this.name+": resetting")),this.resolveCb=null,this.rejectCb=null}},{key:"initiate",value:function(){var e=this;if(this.inProgress)return new Promise(function(t,n){n(new Error(e.name+": in progress"))});var t=new Promise(function(t,n){e.resolveCb=t,e.rejectCb=n});return this.inProgress=!0,this.sendRequest(),t}},{key:"isCompleted",value:function(){return this.completed}},{key:"handleSendError",value:function(e){o.log(this.name+": send next request ("+e+")"),this.sendNextRequest()}},{key:"handleResponseProxy",value:function(e){this.handleResponse(e),this.resetTimeout()}},{key:"handleResponse",value:function(e){o.error(this.name+": handleResponse() not implemented"),this.completeProcess()}},{key:"completeProcess",value:function(){this.inProgress=!1,this.completed=!0,this.resolveCb.apply(this,arguments)}},{key:"request",value:function(){return o.error(this.name+": request() not implemented!"),new Promise(function(e,t){e()})}},{key:"sendRequest",value:function(){if(this.inProgress){var e=this.request();e&&e.then(this.handleResponseProxy.bind(this),this.handleSendError.bind(this))}}},{key:"sendNextRequest",value:function(){setTimeout(this.sendRequest.bind(this),this.getTimeout())}},{key:"resetTimeout",value:function(){this.sigmoid.reset()}},{key:"getTimeout",value:function(){return this.minRetryTimeout+this.sigmoid.getActual()}}]),e})();n.XMLHttpService=u},{"../utility/csiologger":92,"../utility/sigmoid":102}],62:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0}),n.IntervalStatsMonitor=void 0;var a=(function(){function e(e,t){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:0,r=this.getTotalBytes(e),i=this.getTotalBytes(t);if(!u.checkForPositiveValue(r)||!u.checkForPositiveValue(i)||!u.checkForPositiveValue(n))return null;var a=(8*r-8*i)/Math.max(n,1);return u.checkForPositiveValue(a)?a:null}},{key:"getIntervalPacketLoss",value:function(e,t,n){var r=this.getTotalLostPackets(e);if(!n)return u.checkForPositiveValue(r)?r:null;var i=this.getTotalLostPackets(t);if(!u.checkForPositiveValue(r)||!u.checkForPositiveValue(i))return null;var a=r-i;return u.checkForPositiveValue(a)?a:null}},{key:"getIntervalPacketRate",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;if(!u.checkForPositiveValue(n))return null;var r=this.getTotalPackets(e),i=this.getTotalPackets(t);if(!u.checkForPositiveValue(r)<0||!u.checkForPositiveValue(i))return null;var a=(r-i)/(Math.max(n,1)/1e3);return u.checkForPositiveValue(a)?a:null}},{key:"getIntervalFractionLost",value:function(e,t,n){var r=this.getIntervalPacketLoss(e,t,n),i=this.getTotalPackets(e)-this.getTotalPackets(t);if(!u.checkForPositiveValue(r)||!u.checkForPositiveValue(i))return null;var a=r/Math.max(i+r,1);return u.checkForPositiveValue(a)?a:null}},{key:"getIntervalStat",value:function(e,t){var n=e.getCurrent(),r=e.getPrevious(t),i=e.getElapsedTime(t),a=new Map;if(r)for(var o=0,s=r.length;o0&&void 0!==arguments[0]?arguments[0]:{},t=arguments[1],n=e,r=e.tracks||[],i=0,a=r.length;i0&&this.frameHeight>0?this.resolution=new a.Resolution(this.frameWidth,this.frameHeight,this.frameRateReceived):this.resolution=null}},{key:"getJitter",value:function(){return this.jitter}},{key:"getRTT",value:function(){return this.rtt}},{key:"getLostPackets",value:function(){return this.lostPackets}},{key:"getDiscardedPackets",value:function(){return this.discardedPackets}},{key:"getReceivedPackets",value:function(){return this.receivedPackets}},{key:"getSentPackets",value:function(){return this.sentPackets}},{key:"getSentBytes",value:function(){return this.sentBytes}},{key:"getReceivedBytes",value:function(){return this.receivedBytes}},{key:"setFractionLost",value:function(e){this.fractionLost=void 0===e?null:e}},{key:"getFractionLost",value:function(){return this.fractionLost}},{key:"extractTrack",value:function(){var e=this.track;return this.track=null,e}},{key:"toString",value:function(){return"pcHash: "+this.pcHash+", ssrc: "+this.ssrc+", streamType: "+this.streamType+", mediaType: "+this.mediaType+", reportType: "+this.reportType+", frameRateReceived: "+this.frameRateReceived+", frameHeight: "+this.frameHeight+", frameWidth: "+this.frameWidth+", droppedFramesNum: "+this.droppedFramesNum+", rtt: "+this.rtt+", jitter: "+this.jitter+", lostPackets: "+this.lostPackets+", receivedPackets: "+this.receivedPackets+", sentPackets: "+this.sentPackets+", discardedPackets: "+this.discardedPackets+", sentBytes: "+this.sentBytes+", receivedBytes: "+this.receivedBytes+", fractionLost: "+this.fractionLost}}]),e})();n.Measurement=s},{"./resolution":72,"./validator":87}],64:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0}),n.CPULimitationObserver=void 0;var a=(function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:void 0,t=e&&e.getRequestedMeasurement();if(!t)return!0;if(e.getStreamType()===o.streamType.inbound){if(t.getReceivedBytes()<1)return!0}else if(t.getSentBytes()<1)return!0;return!e.lastTrack||!e.lastTrack.data||!e.lastTrack.data.mimeType&&!e.lastTrack.data.googCodecName}},{key:"isValidTrack",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:o.streamType.inbound;if(!e)return!1;var n=e.getRequestedMeasurement();return!!n&&n.getReportType()===o.reportType.local&&e.getStreamType()===t&&e.getMediaType()===o.mediaType.audio}},{key:"accept",value:function(e){var t=this,n=e.filter(function(e){return t.isValidTrack(e,o.streamType.inbound)}),r=e.filter(function(e){return t.isValidTrack(e,o.streamType.outbound)}),i=this.getDisruptions(n,r);i.length>0&&this.notifierCallback(i)}},{key:"toString",value:function(){return"DisruptionObserver"}},{key:"getDisruptedTrack",value:function(){var e=this;return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).find(function(t){return t&&!1===t.hasTraffic()&&!1===e.isDeadTrack(t)})}},{key:"isStartedAndHasTraffic",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=e.filter(function(e){return 0===e.getStartTime()}).length<1,n=e.filter(function(e){return!e.hasTraffic()}).length<1;return e.length>0&&t&&n}},{key:"hasTracksAndTraffic",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=e.filter(function(e){return!e.hasTraffic()}).length<1;return e.length>0&&t}},{key:"isInitialSetupDelayPassed",value:function(){return c.getCurrent()>this.startTime+15e3}},{key:"isInbOneWayAudioDisruption",value:function(e,t){if(this.isStartedAndHasTraffic(t)&&this.isInitialSetupDelayPassed()){var n=void 0;if(!this.hasTracksAndTraffic(e)){var r=this.getDisruptedTrack(e),i=r&&r.getSSRC();i&&(n=new s.OneWayMediaDisruption(o.oneWayMediaTypes.audio,i,o.streamType.inbound))}return n}}},{key:"isOutbOneWayAudioDisruption",value:function(e,t){if(this.isStartedAndHasTraffic(e)&&this.isInitialSetupDelayPassed()){var n=void 0;if(!this.hasTracksAndTraffic(t)){var r=this.getDisruptedTrack(t),i=r&&r.getSSRC();i&&(n=new s.OneWayMediaDisruption(o.oneWayMediaTypes.audio,i,o.streamType.outbound))}return n}}},{key:"updateDisruptionAndRecoveryCount",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return e?(t=Math.min(t+1,l),n=0):(n=Math.min(n+1,l),t=0),{disruptionCount:t,recoveryCount:n}}},{key:"getDisruptionState",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return!1===n&&e>=5?f:!0===n&&t>=5?d:h}},{key:"getAudioDisruption",value:function(e,t,n){var r=void 0,i=void 0;if(n===o.streamType.inbound?(r=this.isInbOneWayAudioDisruption(e,t),i=this.oneWayInbAudioDisruption):n===o.streamType.outbound&&(r=this.isOutbOneWayAudioDisruption(e,t),i=this.oneWayOutbAudioDisruption),i){var a=this.updateDisruptionAndRecoveryCount(r,i.disruptionCount,i.recoveryCount),s=a.disruptionCount,c=a.recoveryCount,u=this.getDisruptionState(s,c,i.started);return u===f?(i.started=!0,i.disruption=r.setStart(),i.disruptionCount=0,i.recoveryCount=0):u===d?(i.started=!1,i.disruption=i.disruption.setEnd(),i.disruptionCount=0,i.recoveryCount=0):(i.recoveryCount=c,i.disruptionCount=s),u!==h?i.disruption:void 0}}},{key:"getDisruptions",value:function(e,t){var n=[],r=this.getAudioDisruption(e,t,o.streamType.inbound),i=this.getAudioDisruption(e,t,o.streamType.outbound);return r&&n.push(r),i&&n.push(i),n}}]),e})();n.OneWayMediaObserver=p},{"../../config/constants":36,"../../utility/registry":100,"../../utility/timestamps":104,"../onewaymediadisruption":69}],66:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0}),n.QPSumObserver=void 0;var a=(function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;if(null===e||void 0===e||Math.abs(e)i;return a?(this.consecutivePositive+=1,this.consecutivePositive>this.resetThreshold&&this.runningStats.reset()):this.consecutivePositive=0,a}}]),e})(),p=(function(){function e(t){var n=t.maxMarginFactor,r=void 0===n?l.adaptiveStatsThresholds.maxMarginFactor:n,a=t.marginReductionFactor,o=void 0===a?l.adaptiveStatsThresholds.marginReductionFactor:a,s=t.marginIncreaseFactor,c=void 0===s?l.adaptiveStatsThresholds.marginIncreaseFactor:s,u=t.marginDecreaseIntervalInMs,f=void 0===u?l.adaptiveStatsThresholds.marginDecreaseIntervalInMs:u,d=t.maxGradualCounter,p=void 0===d?l.adaptiveStatsThresholds.maxGradualCounter:d,v=t.minIntervalInMs,g=void 0===v?l.adaptiveStatsThresholds.minIntervalInMs:v,y=t.rippleBase,m=void 0===y?l.adaptiveStatsThresholds.rippleBase:y,b=t.windowSize,S=void 0===b?l.adaptiveStatsThresholds.windowSize:b,k=t.resetThreshold,w=void 0===k?l.adaptiveStatsThresholds.resetThreshold:k,C=t.minThreshold,_=void 0===C?l.adaptiveStatsThresholds.minThreshold:C;i(this,e),this.rttTester=new h("RTT Tester",_.rtt,S,w),this.throughputTester=new h("Throughput Tester",_.throughput,S,w),this.FLTester=new h("FL Tester",_.fractionalLoss,S,w),this.marginFactor=1,this.lastDecreased=0,this.lastTriggering=0,this.maxMarginFactor=r,this.marginReductionFactor=o,this.marginIncreaseFactor=c,this.marginDecreaseIntervalInMs=f,this.maxGradualCounter=p,this.gradualCounter=p,this.minIntervalInMs=g,this.rippleBase=m}return o(e,[{key:"test",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,n=t?{}:e.peek();if(!n)return!1;var r=(t?{}:e.getTrack()).data,i=t?t.rtt:n.getRTT(),a=u.checkForNan(parseInt(t?t.throughput:r.intervalBandwidth,10)),o=t?t.loss:n.getFractionLost(),c=t?t.time:s.getCurrent(),l=this.rttTester.doTest(i,this.marginFactor),f=this.throughputTester.doTest(a,this.marginFactor),d=this.FLTester.doTest(o,this.marginFactor);if(l||f||d)return this.marginFactor=Math.min(this.marginFactor*this.marginIncreaseFactor,this.maxMarginFactor),this.lastTriggering=c,this.lastDecreased=c,this.gradualCounter=0,!0;if(c-this.lastDecreased>this.marginDecreaseIntervalInMs&&(this.marginFactor=Math.max(this.marginFactor*this.marginReductionFactor,1),this.lastDecreased=c),this.gradualCounter1&&void 0!==arguments[1]?arguments[1]:{};i(this,e),t?(this.notifyCallback=t,this.minIntervalInMs=n.minIntervalInMs||l.adaptiveStatsThresholds.minIntervalInMs,this.maxIntervalInMs=n.maxIntervalInMs||l.adaptiveStatsThresholds.maxIntervalInMs,this.config=n,this.notified=0,this.testers=new Map):d.warn("notifyCallback was null or undefined : "+t)}return o(e,[{key:"setup",value:function(e,t){this.minIntervalInMs=e,this.maxIntervalInMs=t}},{key:"getMostRecentTrackStartTime",value:function(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).reduce(function(e,t){return!!t&&"function"==typeof t.getCreationTime&&Math.max(t.getCreationTime(),e)},Number.MIN_VALUE)}},{key:"accept",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,n=t?t.time:s.getCurrent(),r=n-this.notified,i=this.doSend(e,t);if(this.minIntervalInMs===this.maxIntervalInMs)return d.log("Elapsed time in fix intervalset: "+r),void(r>this.minIntervalInMs&&(this.notifyCallback&&this.notifyCallback(n),this.notified=n));if(!(rl.adaptiveStatsThresholds.initialNotifyIntervalTimeoutInMs)return this.notifyCallback&&this.notifyCallback(n),void(this.notified=n);r0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0;if(t){if(this.testers.has("test-ssrc")||this.testers.set("test-ssrc",new p(a({},this.config,{minIntervalInMs:this.minIntervalInMs,maxIntervalInMs:this.maxIntervalInMs}))),this.testers.get("test-ssrc").test(e,t))return!0}else for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:"0",i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];r(this,e),this.mediaType=t,this.ssrc=""+n,this.streamType=i,this.started=a}return i(e,[{key:"setStart",value:function(){return this.started=!0,this}},{key:"setEnd",value:function(){return this.started=!1,this}},{key:"getContent",value:function(){return{mediaType:this.mediaType,ssrc:this.ssrc,streamType:this.streamType}}},{key:"isStarted",value:function(){return this.started}},{key:"toString",value:function(){return JSON.stringify({started:this.started,ssrc:this.ssrc,mediaType:this.mediaType})}}]),e})();n.OneWayMediaDisruption=a},{}],70:[function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0});var i=(function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:o.avQualityRatings.unknown){case o.avQualityRatings.bad:return o.qualityRating.bad;case o.avQualityRatings.fair:return o.qualityRating.fair;case o.avQualityRatings.excellent:return o.qualityRating.excellent}return 0}},{key:"toQualityString",value:function(){switch(arguments.length>0&&void 0!==arguments[0]?arguments[0]:o.qualityRating.excellent){case o.qualityRating.excellent:return o.avQualityRatings.excellent;case o.qualityRating.good:case o.qualityRating.fair:case o.qualityRating.poor:return o.avQualityRatings.fair;case o.qualityRating.bad:return o.avQualityRatings.bad}return o.avQualityRatings.unknown}},{key:"inboundAudioQuality",value:function(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).data||{},t=[];if(e.csioIntBRKbps&&00&&void 0!==arguments[0]?arguments[0]:{}).data||{},t=[];if(e.csioIntBRKbps&&00&&void 0!==arguments[0]?arguments[0]:{}).data||{},t=[];if(e.csioIntBRKbps&&00&&void 0!==arguments[0]?arguments[0]:{}).data||{},t=[];if(e.csioIntBRKbps&&00&&void 0!==arguments[0]?arguments[0]:[],t=0,n=0,r=0,i=e.length;r0&&void 0!==arguments[0]?arguments[0]:{},t=e.tracks||[],n=0,i=t.length;n0)return r;for(var o=void 0,s=0;s0||parseInt(a.transportStats.bytesSent,10)>0)&&n.transportStats.push(a.transportStats):"true"!==a.transportStats.selected&&!0!==a.transportStats.selected||n.transportStats.push(a.transportStats))}if(n.tracks){var o=f.Registry.getConferenceManager().getConferenceForPcHash(t),s=void 0;o&&(s=o.getPeerConnectionManager().getPcHandlerByHash(t)),n.tracks.forEach(function(e){var t=s.getSSRCInfo(e.data.ssrc);void 0!==t&&t.localStartTime||s&&(s.updateSDP(n.tracks),t=s.getSSRCInfo(e.data.ssrc)),t&&(e.cname=t.cname,e.msid=t.msid,e.associatedVideoTag=t.associatedVideoTag,e.usageLabel=t.usageLabel)})}return n.transportStats&&this.codeBase===u.codeBaseType.firefox&&(n.transportStats=this.getAddressInfoFromCandidates(n.transportStats,n.localIceCandidates,n.remoteIceCandidates)),n}},{key:"getParsedStats",value:function(e){var t={};if(e.timestamp instanceof Date&&(t.timestamp=e.timestamp.getTime().toString()),e.type&&(t.type=e.type),e.names){for(var n=e.names(),r=0;r0)return n[0]}}},{key:"formatRelayType",value:function(e){var t="None";switch(e){case 0:t="TURN/TLS";break;case 1:t="TURN/TCP";break;case 2:t="TURN/UDP"}return t}},{key:"getRelayType",value:function(e,t){var n=this,r=void 0;return t.getIceCandidates().some(function(t){if(t.typePreference){var i=t.typePreference>>24;return"rtp"===t.protocol&&t.address===e&&(i>=0&&i<=2&&(r=n.formatTypePreference(i)),!0)}return!1}),r}},{key:"getTransportInfo",value:function(e,t){for(var n={},r=!1,i=0;i0?a.statsType="outbound-rtp":a.statsType="inbound-rtp"}"remote-inbound-rtp"!==a.statsType&&"remote-outbound-rtp"!==a.statsType&&(!0!==i.isRemote&&"true"!==i.isRemote||(a.statsType="remote-"+a.statsType)),n.streams[i.ssrc]=a,n.mediaStreamTracks.push(a)}}this.callback(n)}}]),e})();n.StatsCallbackBuilder=o},{"../utility/registry":100}],76:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(n,"__esModule",{value:!0}),n.StatsMonitor=n.StatsMonitorIO=void 0;var s=(function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:null;null===e&&(e=k.statsDestination.backend);var t=new h.StatsTuple(this.getCandidatePairs(),this.lastPcStats.getCodec(),this.lastPcStats.getTrackStats(),this.transportsmonitor.getIntervalStats(),this.tracksmonitor.extractTracks(),e),n=this.intervalstatsmonitor.getIntervalStats(e);t=this.intervalstatsmonitor.updateIntervalStats(t,n),t=this.qualityevaluator.updateQualityStats(t),this.transmit(C.StatsTupleOut,t)}},{key:"sendDisruptions",value:function(e){var t=this;e.forEach(function(e){e.isStarted()?t.sendEventMsg(k.internalFabricEvent.oneWayMediaStart,e.getContent()):t.sendEventMsg(k.internalFabricEvent.oneWayMediaStop,e.getContent())})}},{key:"sendCPULimitationObservations",value:function(e){}},{key:"sendQPSumDistortions",value:function(e){}},{key:"sendThroughputObservations",value:function(e){this.sendEventMsg(k.internalFabricEvent.sendingThroughputObservations,e)}},{key:"sendEventMsg",value:function(e,t){if(this.lastPcHash){var n=p.Registry.getConferenceManager().getConferenceForPcHash(this.lastPcHash);if(n){var r=n.getPeerConnectionManager().getPcHandlerByHash(this.lastPcHash),i=r.getPeerConnection(),a=r.getConferenceId();p.Registry.getEventMessageBuilder().make(e,a,i,t)}}}},{key:"delete",value:function(e){this.tracksmonitor&&this.tracksmonitor.deleteTracks(e),this.transportsmonitor&&this.transportsmonitor.delete(e),this.intervalstatsmonitor&&this.intervalstatsmonitor.delete(e),this.candidatepairs&&this.candidatepairs.has(e)&&this.candidatepairs.delete(e)}}]),t})();n.StatsMonitor=_},{"../collections/component":26,"../config/constants":36,"../utility/csiologger":92,"../utility/registry":100,"../utility/timestamps":104,"./intervalstatsmonitor":62,"./monitorhooks/cpulimitationobserver":64,"./monitorhooks/onewaymediaobserver":65,"./monitorhooks/qpsumobserver":66,"./monitorhooks/sendingtrigger":67,"./monitorhooks/throughputobserver":68,"./qualityevaluator":71,"./statstuple":79,"./tracksmonitor":85,"./transportsmonitor":86}],77:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(n,"__esModule",{value:!0}),n.StatsParser=n.StatsParserIO=void 0;var s=(function(){function e(e,t){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:null;r(this,t);var o=i(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,n,a));return o.sum=0,o.counter=0,o}return a(t,s.SWPlugin),o(t,[{key:"add",value:function(e){this.filter(e)&&(this.sum+=this.extract(e),++this.counter,this.calculate())}},{key:"remove",value:function(e){this.filter(e)&&(this.sum-=this.extract(e),--this.counter,this.calculate())}},{key:"calculate",value:function(){var e=0;this.counter<1?this.notify(e):(e=this.sum/this.counter,this.notify(e))}}]),t})();n.SWAvg=c},{"./swplugin":83}],81:[function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(n,"__esModule",{value:!0}),n.SWBTreePercentile=void 0;var o=(function(){function e(e,t){var n=[],r=!0,i=!1,a=void 0;try{for(var o,s=e["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();!(r=(o=s.next()).done)&&(n.push(o.value),!t||n.length!==t);r=!0);}catch(e){i=!0,a=e}finally{try{!r&&s.return&&s.return()}finally{if(i)throw a}}return n}return function(t,n){if(Array.isArray(t))return t;if(("function"==typeof Symbol?Symbol.iterator:"@@iterator")in Object(t))return e(t,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}})(),s=(function(){function e(e,t){for(var n=0;n4&&void 0!==arguments[4]?arguments[4]:null,c=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null,u=arguments.length>6&&void 0!==arguments[6]?arguments[6]:null;r(this,t);var f=i(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,a,o,c));if(992&&void 0!==arguments[2]?arguments[2]:null;r(this,t);var o=i(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,null,null,a));return o.addFunc=e,o.remFunc=n,o}return a(t,s.SWPlugin),o(t,[{key:"add",value:function(e){this.filter(e)&&this.addFunc&&this.addFunc(e)}},{key:"remove",value:function(e){this.filter(e)&&this.remFunc&&this.remFunc(e)}},{key:"toString",value:function(){return"SWFuncPlugin"}}]),t})();n.SWFunctor=c},{"./swplugin":83}],83:[function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0}),n.SWPlugin=void 0;var i=(function(){function e(e,t){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:null;r(this,e),this.extractorFnc=t,this.notifierFnc=n,this.filterFunc=i}return i(e,[{key:"notify",value:function(e){this.notifierFnc?this.notifierFnc(e):a.warn("Failed notification for "+this.toString())}},{key:"extract",value:function(e){return this.extractorFnc?this.extractorFnc(e):(a.warn(this.toString()+" tried to extract without extractorFnc"),null)}},{key:"filter",value:function(e){return!this.filterFunc||this.filterFunc(e)}},{key:"add",value:function(e){a.log("Abstract method is called width value: "+e)}},{key:"remove",value:function(e){a.log("Abstract method is called with value: "+e)}},{key:"toString",value:function(){return"SWPlugin"}}]),e})();n.SWPlugin=o},{"../../utility/csiologger":92}],84:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0}),n.TrackMonitor=void 0;var c=function e(t,n,r){null===t&&(t=Function.prototype);var i=Object.getOwnPropertyDescriptor(t,n);if(void 0===i){var a=Object.getPrototypeOf(t);return null===a?void 0:e(a,n,r)}if("value"in i)return i.value;var o=i.get;return void 0!==o?o.call(r):void 0},u=(function(){function e(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:1};this.evaluators.push(t)}}]),e})(),S=(function(e){function t(e,n,r,a){o(this,t);var s=i(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,n));return s.thresholds=[],s.enableThresholds=!1,s.requestTime=0,s.started=0,s.created=v.getCurrent(),s.mediaType=a,s.streamType=r,s.qualityHelper=new b,s.metrics=s.makeTrack(),s.lastTrack={},s.prevFrameRateMean=null,s.ssrc=null,s}return a(t,f.SlidingWindow),u(t,null,[{key:"make",value:function(e,n,r,i){var a=new t(e,n,r,i),o=a.metrics;return a.attach(new d.SWAvg(function(e){return e.getJitter()},function(e){o.csioAvgJitter=e},function(e){var t=e.getJitter();return null!==t&&void 0!==t})),a.attach(new d.SWAvg(function(e){return e.getRTT()},function(e){o.csioAvgRtt=e},function(e){var t=e.getRTT();return null!==t&&void 0!==t})),a.attach(new h.SWBTreePercentile(95,function(e,t){var n=e.getJitter(),r=t.getJitter();return n==r?0:n0&&r>=0&&(t.csioEstFrameRatePerSecond=1e3*r/i)}}),e.attach(new p.SWFunctor(function(n){var r=v.getCurrent(),i=n.getResolution(),a=e.getRequestedMeasurement(),o=e.getRequestTime(),s=8*n.getReceivedBytes(),c=n.getReceivedPackets(),u=0,f=0,d=0,h=Math.max(r-e.getStartTime(),d);a?(u=s-8*a.getReceivedBytes(),f=Math.max(r-o,d)):(d=l.Registry.getCredentials().isAdaptiveStatsEnabled()?g.adaptiveStatsIntervalsInMs.min:l.Registry.getCredentials().getStatsSubmissionInterval(),h=Math.max(r-e.getStartTime(),d),u=s,f=Math.max(h,d)),t.csioAvgBRKbps=s/h,t.intervalBandwidth=Math.max(u/f,0),t.csioAvgPacketSize=n.getReceivedBytes()/Math.max(c,1),t.csiores=i},null,null)),e.attach(new h.SWBTreePercentile(95,function(e,t){var n=e.getFractionLost(),r=t.getFractionLost();return n==r?0:n=0},function(e,t){return e}))}},{key:"setupOutboundMonitor",value:function(e){var t=e.metrics;e.addPreProcess(function(t){var n=t.getFractionLost();if(!y.checkForPositiveValue(n)){var r=t.getLostPackets(),i=t.getReceivedPackets(),a=e.getRequestedMeasurement(),o=0,s=0;a?(o=r-a.getLostPackets(),s=i-a.getReceivedPackets()):(o=r,s=i),y.checkForPositiveValue(o)&&y.checkForPositiveValue(s)&&(n=o/Math.max(s+o,1),y.checkForPositiveValue(n)&&t.setFractionLost(n))}}),e.attach(new p.SWFunctor(function(n){var r=v.getCurrent(),i=n.getResolution(),a=e.getRequestedMeasurement(),o=e.getRequestTime(),s=8*n.getSentBytes(),c=n.getSentPackets(),u=0,f=0,d=0,h=Math.max(r-e.getStartTime(),d);a?(u=s-8*a.getSentBytes(),f=Math.max(r-o,d)):(d=l.Registry.getCredentials().isAdaptiveStatsEnabled()?g.adaptiveStatsIntervalsInMs.min:l.Registry.getCredentials().getStatsSubmissionInterval(),h=Math.max(r-e.getStartTime(),d),u=s,f=Math.max(h,d)),t.csioAvgBRKbps=s/h,t.intervalBandwidth=Math.max(u/f,0),t.csioAvgPacketSize=n.getSentBytes()/Math.max(c,1),t.csiores=i},null,null)),e.attach(new h.SWBTreePercentile(95,function(e,t){var n=e.getFractionLost(),r=t.getFractionLost();return n==r?0:n=0},function(e,t){return e}))}},{key:"setupAudioMonitor",value:function(e){var t=e.metrics;e.attach(new p.SWFunctor(function(e){t.csioMediaType=g.mediaType.audio},null,null))}},{key:"setupVideoMonitor",value:function(e){var t=e.metrics;e.attach(new d.SWAvg(function(e){return e.getFrameRateReceived()},function(n){e.prevFrameRateMean=t.csioFrameRateMean,t.csioPrevFrameRateMean=t.csioFrameRateMean,t.csioFrameRateMean=n},function(e){var t=e.getFrameRateReceived();return null!==t&&void 0!==t})),e.attach(new d.SWAvg(function(e){return e.getFrameHeight()},function(e){t.csioFrameHeightMean=e},function(e){var t=e.getFrameHeight();return null!==t&&void 0!==t})),e.attach(new d.SWAvg(function(e){return e.getFrameWidth()},function(e){t.csioFrameWidthMean=e},function(e){var t=e.getFrameWidth();return null!==t&&void 0!==t})),e.attach(new h.SWBTreePercentile(50,function(e,t){var n=e.getFrameRateReceived(),r=t.getFrameRateReceived();return n==r?0:n1&&void 0!==arguments[1]?arguments[1]:1;this.qualityHelper.addEvaluator(e,t)}},{key:"addPreProcess",value:function(e){c(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"addPreProcess",this).call(this,e)}},{key:"addPostProcess",value:function(e){c(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"addPostProcess",this).call(this,e)}}]),t})();n.TrackMonitor=S},{"../collections/slidingwindow":31,"../config/constants":36,"../statspipeline/swplugins/swavg":80,"../statspipeline/swplugins/swbtreepercentile":81,"../statspipeline/swplugins/swfunctor":82,"../utility/csiologger":92,"../utility/registry":100,"../utility/timestamps":104,"./validator":87}],85:[function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0}),n.TracksMonitor=void 0;var i=(function(){function e(e,t){for(var n=0;n0||a.csioIntBytesReceived>0)?(a.csioTurnMins=r+o.csioTurnMins,a.csioBytesSent=o.csioBytesSent+a.csioIntBytesSent,a.csioBytesReceived=o.csioBytesReceived+a.csioIntBytesReceived):a.csioTurnMins=o.csioTurnMins}return t}},{key:"getIntervalStatForChrome",value:function(e){var t=e.getActual(),n=e.getPrevious(),r=e.getElapsedTime();if(!n)return actual;for(var i=0;i0||a.csioIntBytesReceived>0)?(a.csioTurnMins=r+o.csioTurnMins,a.csioBytesSent=o.csioBytesSent+a.csioIntBytesSent,a.csioBytesReceived=o.csioBytesReceived+a.csioIntBytesReceived):a.csioTurnMins=o.csioTurnMins}return t}}]),e})();n.TransportsMonitor=u},{"../config/constants":36,"../utility/timestamps":104}],87:[function(e,t,n){"use strict";function r(e){return isNaN(e)?null:e}Object.defineProperty(n,"__esModule",{value:!0}),n.checkForNan=r,n.checkForNegativeValue=function(e){return null!==r(e)&&0<=e?e:null},n.checkForPositiveValue=function(e){return void 0!==e&&null!==r(e)&&e>=0}},{}],88:[function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0});var i=(function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]&&arguments[0];this.adaptiveStatsEnabled=e}}]),e})();n.Credentials=u},{"../config/constants":36,"./csiologger":92}],92:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.info=function(){var e;"true"===r.csioDebug&&(e=console).info.apply(e,arguments)},n.log=function(){var e;"true"===r.csioDebug&&(e=console).log.apply(e,arguments)},n.warn=function(){var e;"true"===r.csioDebug&&(e=console).warn.apply(e,arguments)},n.error=function(){var e;(e=console).warn.apply(e,arguments)};var r=(function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t})(e("../config/settings"))},{"../config/settings":37}],93:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0}),n.Endpoint=void 0;var a=(function(){function e(e,t){for(var n=0;n3&&void 0!==arguments[3]?arguments[3]:{};if("string"!=typeof e||null===r||"object"!==(void 0===r?"undefined":a(r)))return l.error("failed typeof checks:",e,void 0===e?"undefined":a(e),void 0===r?"undefined":a(r),r),u.Registry.getGenericEventHandler().sendEvent(c.logEvents.error,{msg:"failed typeof checks:"+e+":"+(void 0===r?"undefined":a(r))+":"+(void 0===e?"undefined":a(e))}),!1;if(null===t&&e!==c.precalltestEvents.results)return l.error("failed conferenceId checks:",e,t),u.Registry.getGenericEventHandler().sendEvent(c.logEvents.error,{msg:"failed conferenceId checks:"+e}),!1;if(!n&&e!==c.callstatsChannels.userFeedback&&e!==c.fabricEvent.applicationErrorLog&&e!==c.fabricEvent.fabricSetupFailed&&e!==c.internalFabricEvent.userJoined&&e!==c.precalltestEvents.results)return l.error("peerconnection cannot be null",e),u.Registry.getGenericEventHandler().sendEvent(c.logEvents.error,{msg:"peerconnection cannot be null"+e}),!1;if(!s.EventMessage.checkCustomEntries(e,r))return l.error("failed checks:",e,r),u.Registry.getGenericEventHandler().sendEvent(c.logEvents.error,{msg:"failed customEntries checks:"+e}),!1;var i=void 0;if(t){var o=u.Registry.getConferenceManager().get(t);o&&n&&(i=o.getPeerConnectionManager().getPcHandler(n))}var f=new s.EventMessage(e,t,r,i);return this.transmissionmanager.send(f),!0}}]),e})();n.EventMessageBuilder=f},{"../config/constants":36,"./csiologger":92,"./eventmessage":94,"./registry":100}],96:[function(e,t,n){"use strict";function r(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=0;if(!e)return n;for(var r=0,i=e.length;r127&&r<2048?(t[t.length]=r>>6|192,t[t.length]=63&r|128):(t[t.length]=r>>12|224,t[t.length]=r>>6&63|128,t[t.length]=63&r|128)}return new Uint8Array(t).buffer}function a(e){for(var t=new DataView(e),n="",r=void 0,i=0;i-1){for(var n=!1,r={fileName:e.filename,line:e.lineno,col:e.colno,jsVersion:a.version,eventType:"error",message:e.message,pageURL:window.location.href},s=i.Registry.getConferenceManager().getConferenceIds(),c=0;c0&&void 0!==arguments[0]?arguments[0]:100;r(this,e),this.queue=new a.Queue(t),this.cumulativeSum=0}return i(e,[{key:"add",value:function(e){this.cumulativeSum+=e;var t=this.queue.push(e);t&&(this.cumulativeSum-=t)}},{key:"getMean",value:function(){return this.queue.size()<1?null:this.cumulativeSum/this.queue.size()}},{key:"getVariance",value:function(){if(this.queue.size()<2)return null;for(var e=this.getMean(),t=0,n=this.queue.getFront();n;){var r=n,i=r.value-e;t+=i*i,n=r.next}return t/this.queue.size()}},{key:"getStd",value:function(){if(this.queue.size()<2)return null;var e=this.getVariance();return Math.sqrt(e)}},{key:"reset",value:function(){this.cumulativeSum=0,this.queue.clear()}}]),e})();n.RunningStats=o},{"../collections/queue":30}],102:[function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0});var i=(function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:1;return this.actualStep+=e,this.max/(1+Math.exp(-1*this.stepness*(this.actualStep-this.midpoint)))}}]),e})();n.Sigmoid=a},{}],103:[function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0}),n.TimeoutProcess=void 0;var i=(function(){function e(e,t){for(var n=0;n1?n-1:0),a=1;a0&&(e.splice(l-1,2),l-=2)}e=e.join("/")}if((h||y)&&v){for(l=(n=e.split("/")).length;l>0;l-=1){if(r=n.slice(0,l).join("/"),h)for(p=h.length;p>0;p-=1)if((i=v[h.slice(0,p).join("/")])&&(i=i[r])){o=i,s=l;break}if(o)break;!c&&y&&y[r]&&(c=y[r],u=l)}!o&&c&&(o=c,s=u),o&&(n.splice(0,s,o),e=n.join("/"))}return e}function g(t,n){return function(){var r=h.call(arguments,0);return"string"!=typeof r[0]&&1===r.length&&r.push(null),a.apply(e,r.concat([t,n]))}}function S(e){return function(t){u[e]=t}}function _(n){if(v(l,n)){var r=l[n];delete l[n],p[n]=!0,t.apply(e,r)}if(!v(u,n)&&!v(p,n))throw new Error("No "+n);return u[n]}function b(e){var t,n=e?e.indexOf("!"):-1;return n>-1&&(t=e.substring(0,n),e=e.substring(n+1,e.length)),[t,e]}function E(e){return e?b(e):[]}function T(e){return function(){return d&&d.config&&d.config[e]||{}}}s=function(e,t){var n,r,i=b(e),o=i[0],a=t[1];return e=i[1],o&&(n=_(o=y(o,a))),o?e=n&&n.normalize?n.normalize(e,(r=a,function(e){return y(e,r)})):y(e,a):(o=(i=b(e=y(e,a)))[0],e=i[1],o&&(n=_(o))),{f:o?o+"!"+e:e,n:e,pr:o,p:n}},c={require:function(e){return g(e)},exports:function(e){var t=u[e];return void 0!==t?t:u[e]={}},module:function(e){return{id:e,uri:"",exports:u[e],config:T(e)}}},t=function(t,n,r,i){var a,d,f,h,m,y,b,T=[],C=o(r);if(y=E(i=i||t),"undefined"===C||"function"===C){for(n=!n.length&&r.length?["require","exports","module"]:n,m=0;m>>0;if("function"!=typeof e)throw new TypeError(e+" is not a function");for(arguments.length>1&&(n=t),r=0;r>2,a=(3&n)<<4|(r=e.charCodeAt(l++))>>4,s=(15&r)<<2|(i=e.charCodeAt(l++))>>6,c=63&i,isNaN(r)?(a=(3&n)<<4,s=c=64):isNaN(i)&&(c=64),u=u+t.charAt(o)+t.charAt(a)+t.charAt(s)+t.charAt(c)}while(l>4,r=(15&o)<<4|(a=t.indexOf(e.charAt(u++)))>>2,i=(3&a)<<6|(s=t.indexOf(e.charAt(u++))),c+=String.fromCharCode(n),64!==a&&(c+=String.fromCharCode(r)),64!==s&&(c+=String.fromCharCode(i))}while(u>5]|=128<<24-r%32,e[15+(r+64>>9<<4)]=r;var a,s,c,u,l,d,p,f,h=new Array(80),m=1732584193,v=-271733879,y=-1732584194,g=271733878,S=-1009589776;for(a=0;a16&&(r=e(r,8*t.length));for(var i=new Array(16),o=new Array(16),s=0;s<16;s++)i[s]=909522486^r[s],o[s]=1549556828^r[s];var c=e(i.concat(a(n)),512+8*n.length);return e(o.concat(c),672)}function i(e,t){var n=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(n>>16)<<16|65535&n}function o(e,t){return e<>>32-t}function a(e){for(var t=[],n=0;n<8*e.length;n+=8)t[n>>5]|=(255&e.charCodeAt(n/8))<<24-n%32;return t}function s(e){for(var t="",n=0;n<32*e.length;n+=8)t+=String.fromCharCode(e[n>>5]>>>24-n%32&255);return t}function c(e){for(var t,n,r="",i=0;i<4*e.length;i+=3)for(t=(e[i>>2]>>8*(3-i%4)&255)<<16|(e[i+1>>2]>>8*(3-(i+1)%4)&255)<<8|e[i+2>>2]>>8*(3-(i+2)%4)&255,n=0;n<4;n++)8*i+6*n>32*e.length?r+="=":r+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(t>>6*(3-n)&63);return r}return{b64_hmac_sha1:function(e,t){return c(r(e,t))},b64_sha1:function(t){return c(e(a(t),8*t.length))},binb2str:s,core_hmac_sha1:r,str_hmac_sha1:function(e,t){return s(r(e,t))},str_sha1:function(t){return s(e(a(t),8*t.length))}}},"function"==typeof i&&i.amd?i("strophe-sha1",[],function(){return a()}):"object"===o(t)?e.exports=a():this.SHA1=a(),(function(n,r){"function"==typeof i&&i.amd?i("strophe-md5",[],function(){return r()}):"object"===o(t)?e.exports=r():n.MD5=r()})(this,function(){var e=function(e,t){var n=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(n>>16)<<16|65535&n},t=function(e){for(var t=[],n=0;n<8*e.length;n+=8)t[n>>5]|=(255&e.charCodeAt(n/8))<>>32-c,r);var s,c},r=function(e,t,r,i,o,a,s){return n(t&r|~t&i,e,t,o,a,s)},i=function(e,t,r,i,o,a,s){return n(t&i|r&~i,e,t,o,a,s)},o=function(e,t,r,i,o,a,s){return n(t^r^i,e,t,o,a,s)},a=function(e,t,r,i,o,a,s){return n(r^(t|~i),e,t,o,a,s)},s=function(t,n){t[n>>5]|=128<>>9<<4)]=n;for(var s,c,u,l,d=1732584193,p=-271733879,f=-1732584194,h=271733878,m=0;m>2]>>n%4*8+4&15)+"0123456789abcdef".charAt(e[n>>2]>>n%4*8&15);return t})(s(t(e),8*e.length))},hash:function(e){return(function(e){for(var t="",n=0;n<32*e.length;n+=8)t+=String.fromCharCode(e[n>>5]>>>n%32&255);return t})(s(t(e),8*e.length))}}}),(function(n,r){"function"==typeof i&&i.amd?i("strophe-utils",[],function(){return r()}):"object"===o(t)?e.exports=r():n.stropheUtils=r()})(this,function(){return{utf16to8:function(e){var t,n,r="",i=e.length;for(t=0;t=0&&n<=127?r+=e.charAt(t):n>2047?(r+=String.fromCharCode(224|n>>12&15),r+=String.fromCharCode(128|n>>6&63),r+=String.fromCharCode(128|n>>0&63)):(r+=String.fromCharCode(192|n>>6&31),r+=String.fromCharCode(128|n>>0&63));return r},addCookies:function(e){var t,n,r,i,a,s,c;for(t in e||{})a="",s="",c="",r="object"===o(n=e[t]),i=escape(unescape(r?n.value:n)),r&&(a=n.expires?";expires="+n.expires:"",s=n.domain?";domain="+n.domain:"",c=n.path?";path="+n.path:""),document.cookie=t+"="+i+a+s+c}}}),(function(n,a){if("function"==typeof i&&i.amd)i("strophe-core",["strophe-sha1","strophe-md5","strophe-utils"],function(){return a.apply(this,arguments)});else if("object"===o(t))e.exports=a(r("./sha1"),r("./md5"),r("./utils"));else{var s=a(n.SHA1,n.MD5,n.stropheUtils);n.Strophe=s.Strophe,n.$build=s.$build,n.$iq=s.$iq,n.$msg=s.$msg,n.$pres=s.$pres,n.SHA1=s.SHA1,n.MD5=s.MD5,n.b64_hmac_sha1=s.SHA1.b64_hmac_sha1,n.b64_sha1=s.SHA1.b64_sha1,n.str_hmac_sha1=s.SHA1.str_hmac_sha1,n.str_sha1=s.SHA1.str_sha1}})(this,function(e,t,n){var r;function i(e,t){return new r.Builder(e,t)}function a(e){return new r.Builder("iq",e)}function s(e){return new r.Builder("presence",e)}return(r={VERSION:"1.2.16",NS:{HTTPBIND:"http://jabber.org/protocol/httpbind",BOSH:"urn:xmpp:xbosh",CLIENT:"jabber:client",AUTH:"jabber:iq:auth",ROSTER:"jabber:iq:roster",PROFILE:"jabber:iq:profile",DISCO_INFO:"http://jabber.org/protocol/disco#info",DISCO_ITEMS:"http://jabber.org/protocol/disco#items",MUC:"http://jabber.org/protocol/muc",SASL:"urn:ietf:params:xml:ns:xmpp-sasl",STREAM:"http://etherx.jabber.org/streams",FRAMING:"urn:ietf:params:xml:ns:xmpp-framing",BIND:"urn:ietf:params:xml:ns:xmpp-bind",SESSION:"urn:ietf:params:xml:ns:xmpp-session",VERSION:"jabber:iq:version",STANZAS:"urn:ietf:params:xml:ns:xmpp-stanzas",XHTML_IM:"http://jabber.org/protocol/xhtml-im",XHTML:"http://www.w3.org/1999/xhtml"},XHTML:{tags:["a","blockquote","br","cite","em","img","li","ol","p","span","strong","ul","body"],attributes:{a:["href"],blockquote:["style"],br:[],cite:["style"],em:[],img:["src","alt","style","height","width"],li:["style"],ol:["style"],p:["style"],span:["style"],strong:[],ul:["style"],body:[]},css:["background-color","color","font-family","font-size","font-style","font-weight","margin-left","margin-right","text-align","text-decoration"],validTag:function(e){for(var t=0;t0)for(var n=0;n/g,">")).replace(/'/g,"'")).replace(/"/g,""")},xmlunescape:function(e){return(e=(e=(e=(e=e.replace(/\&/g,"&")).replace(/</g,"<")).replace(/>/g,">")).replace(/'/g,"'")).replace(/"/g,'"')},xmlTextNode:function(e){return r.xmlGenerator().createTextNode(e)},xmlHtmlNode:function(e){var t;return DOMParser?t=(new DOMParser).parseFromString(e,"text/xml"):((t=new ActiveXObject("Microsoft.XMLDOM")).async="false",t.loadXML(e)),t},getText:function(e){if(!e)return null;var t="";0===e.childNodes.length&&e.nodeType===r.ElementType.TEXT&&(t+=e.nodeValue);for(var n=0;n0&&(c=u.join("; "),n.setAttribute(s,c))}else n.setAttribute(s,c);for(t=0;t/g,"\\3e").replace(/@/g,"\\40")},unescapeNode:function(e){return"string"!=typeof e?e:e.replace(/\\20/g," ").replace(/\\22/g,'"').replace(/\\26/g,"&").replace(/\\27/g,"'").replace(/\\2f/g,"/").replace(/\\3a/g,":").replace(/\\3c/g,"<").replace(/\\3e/g,">").replace(/\\40/g,"@").replace(/\\5c/g,"\\")},getNodeFromJid:function(e){return e.indexOf("@")<0?null:e.split("@")[0]},getDomainFromJid:function(e){var t=r.getBareJidFromJid(e);if(t.indexOf("@")<0)return t;var n=t.split("@");return n.splice(0,1),n.join("@")},getResourceFromJid:function(e){var t=e.split("/");return t.length<2?null:(t.splice(0,1),t.join("/"))},getBareJidFromJid:function(e){return e?e.split("/")[0]:null},_handleError:function(e){void 0!==e.stack&&r.fatal(e.stack),e.sourceURL?r.fatal("error: "+this.handler+" "+e.sourceURL+":"+e.line+" - "+e.name+": "+e.message):e.fileName?r.fatal("error: "+this.handler+" "+e.fileName+":"+e.lineNumber+" - "+e.name+": "+e.message):r.fatal("error: "+e.message)},log:function(e,t){e===this.LogLevel.FATAL&&"object"===o(window.console)&&"function"==typeof window.console.error&&window.console.error(t)},debug:function(e){this.log(this.LogLevel.DEBUG,e)},info:function(e){this.log(this.LogLevel.INFO,e)},warn:function(e){this.log(this.LogLevel.WARN,e)},error:function(e){this.log(this.LogLevel.ERROR,e)},fatal:function(e){this.log(this.LogLevel.FATAL,e)},serialize:function(e){var t;if(!e)return null;"function"==typeof e.tree&&(e=e.tree());var n,i,o=e.nodeName;for(e.getAttribute("_realname")&&(o=e.getAttribute("_realname")),t="<"+o,n=0;n0){for(t+=">",n=0;n"}t+=""}else t+="/>";return t},_requestId:0,_connectionPlugins:{},addConnectionPlugin:function(e,t){r._connectionPlugins[e]=t}}).Builder=function(e,t){"presence"!==e&&"message"!==e&&"iq"!==e||(t&&!t.xmlns?t.xmlns=r.NS.CLIENT:t||(t={xmlns:r.NS.CLIENT})),this.nodeTree=r.xmlElement(e,t),this.node=this.nodeTree},r.Builder.prototype={tree:function(){return this.nodeTree},toString:function(){return r.serialize(this.nodeTree)},up:function(){return this.node=this.node.parentNode,this},root:function(){return this.node=this.nodeTree,this},attrs:function(e){for(var t in e)e.hasOwnProperty(t)&&(void 0===e[t]?this.node.removeAttribute(t):this.node.setAttribute(t,e[t]));return this},c:function(e,t,n){var i=r.xmlElement(e,t,n);return this.node.appendChild(i),"string"!=typeof n&&"number"!=typeof n&&(this.node=i),this},cnode:function(e){var t,n=r.xmlGenerator();try{t=void 0!==n.importNode}catch(e){t=!1}var i=t?n.importNode(e,!0):r.copyElement(e);return this.node.appendChild(i),this.node=i,this},t:function(e){var t=r.xmlTextNode(e);return this.node.appendChild(t),this},h:function(e){var t=document.createElement("body");t.innerHTML=e;for(var n=r.createHtml(t);n.childNodes.length>0;)this.node.appendChild(n.childNodes[0]);return this}},r.Handler=function(e,t,n,i,o,a,s){this.handler=e,this.ns=t,this.name=n,this.type=i,this.id=o,this.options=s||{matchBareFromJid:!1,ignoreNamespaceFragment:!1},this.options.matchBare&&(r.warn('The "matchBare" option is deprecated, use "matchBareFromJid" instead.'),this.options.matchBareFromJid=this.options.matchBare,delete this.options.matchBare),this.options.matchBareFromJid?this.from=a?r.getBareJidFromJid(a):null:this.from=a,this.user=!0},r.Handler.prototype={getNamespace:function(e){var t=e.getAttribute("xmlns");return t&&this.options.ignoreNamespaceFragment&&(t=t.split("#")[0]),t},namespaceMatch:function(e){var t=!1;if(!this.ns)return!0;var n=this;return r.forEachChild(e,null,function(e){n.getNamespace(e)===n.ns&&(t=!0)}),t=t||this.getNamespace(e)===this.ns},isMatch:function(e){var t=e.getAttribute("from");this.options.matchBareFromJid&&(t=r.getBareJidFromJid(t));var n=e.getAttribute("type");return!(!this.namespaceMatch(e)||this.name&&!r.isTagEqual(e,this.name)||this.type&&(Array.isArray(this.type)?-1===this.type.indexOf(n):n!==this.type)||this.id&&e.getAttribute("id")!==this.id||this.from&&t!==this.from)},run:function(e){var t=null;try{t=this.handler(e)}catch(e){throw r._handleError(e),e}return t},toString:function(){return"{Handler: "+this.handler+"("+this.name+","+this.id+","+this.ns+")}"}},r.TimedHandler=function(e,t){this.period=e,this.handler=t,this.lastCalled=(new Date).getTime(),this.user=!0},r.TimedHandler.prototype={run:function(){return this.lastCalled=(new Date).getTime(),this.handler()},reset:function(){this.lastCalled=(new Date).getTime()},toString:function(){return"{TimedHandler: "+this.handler+"("+this.period+")}"}},r.Connection=function(e,t){this.service=e,this.options=t||{};var i=this.options.protocol||"";for(var o in 0===e.indexOf("ws:")||0===e.indexOf("wss:")||0===i.indexOf("ws")?this._proto=new r.Websocket(this):this._proto=new r.Bosh(this),this.jid="",this.domain=null,this.features=null,this._sasl_data={},this.do_session=!1,this.do_bind=!1,this.timedHandlers=[],this.handlers=[],this.removeTimeds=[],this.removeHandlers=[],this.addTimeds=[],this.addHandlers=[],this.protocolErrorHandlers={HTTP:{},websocket:{}},this._idleTimeout=null,this._disconnectTimeout=null,this.authenticated=!1,this.connected=!1,this.disconnecting=!1,this.do_authentication=!0,this.paused=!1,this.restored=!1,this._data=[],this._uniqueId=0,this._sasl_success_handler=null,this._sasl_failure_handler=null,this._sasl_challenge_handler=null,this.maxRetries=5,this._idleTimeout=setTimeout(function(){this._onIdle()}.bind(this),100),n.addCookies(this.options.cookies),this.registerSASLMechanisms(this.options.mechanisms),r._connectionPlugins)if(r._connectionPlugins.hasOwnProperty(o)){var a=r._connectionPlugins[o],s=function(){};s.prototype=a,this[o]=new s,this[o].init(this)}},r.Connection.prototype={reset:function(){this._proto._reset(),this.do_session=!1,this.do_bind=!1,this.timedHandlers=[],this.handlers=[],this.removeTimeds=[],this.removeHandlers=[],this.addTimeds=[],this.addHandlers=[],this.authenticated=!1,this.connected=!1,this.disconnecting=!1,this.restored=!1,this._data=[],this._requests=[],this._uniqueId=0},pause:function(){this.paused=!0},resume:function(){this.paused=!1},getUniqueId:function(e){var t="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){var t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)});return"string"==typeof e||"number"==typeof e?t+":"+e:t+""},addProtocolErrorHandler:function(e,t,n){this.protocolErrorHandlers[e][t]=n},connect:function(e,t,n,i,o,a,s){this.jid=e,this.authzid=r.getBareJidFromJid(this.jid),this.authcid=s||r.getNodeFromJid(this.jid),this.pass=t,this.servtype="xmpp",this.connect_callback=n,this.disconnecting=!1,this.connected=!1,this.authenticated=!1,this.restored=!1,this.domain=r.getDomainFromJid(this.jid),this._changeConnectStatus(r.Status.CONNECTING,null),this._proto._connect(i,o,a)},attach:function(e,t,n,i,o,a,s){if(!(this._proto instanceof r.Bosh))throw{name:"StropheSessionError",message:'The "attach" method can only be used with a BOSH connection.'};this._proto._attach(e,t,n,i,o,a,s)},restore:function(e,t,n,r,i){if(!this._sessionCachingSupported())throw{name:"StropheSessionError",message:'The "restore" method can only be used with a BOSH connection.'};this._proto._restore(e,t,n,r,i)},_sessionCachingSupported:function(){if(this._proto instanceof r.Bosh){if(!JSON)return!1;try{sessionStorage.setItem("_strophe_","_strophe_"),sessionStorage.removeItem("_strophe_")}catch(e){return!1}return!0}return!1},xmlInput:function(e){},xmlOutput:function(e){},rawInput:function(e){},rawOutput:function(e){},nextValidRid:function(e){},send:function(e){if(null!==e){if("function"==typeof e.sort)for(var t=0;t=0&&this.addHandlers.splice(t,1)},registerSASLMechanisms:function(e){this.mechanisms={},(e=e||[r.SASLAnonymous,r.SASLExternal,r.SASLMD5,r.SASLOAuthBearer,r.SASLXOAuth2,r.SASLPlain,r.SASLSHA1]).forEach(this.registerSASLMechanism.bind(this))},registerSASLMechanism:function(e){this.mechanisms[e.prototype.name]=e},disconnect:function(e){if(this._changeConnectStatus(r.Status.DISCONNECTING,e),r.info("Disconnect was called because: "+e),this.connected){var t=!1;this.disconnecting=!0,this.authenticated&&(t=s({xmlns:r.NS.CLIENT,type:"unavailable"})),this._disconnectTimeout=this._addSysTimedHandler(3e3,this._onDisconnectTimeout.bind(this)),this._proto._disconnect(t)}else r.info("Disconnect was called before Strophe connected to the server"),this._proto._abortAllRequests(),this._doDisconnect()},_changeConnectStatus:function(e,t,n){for(var i in r._connectionPlugins)if(r._connectionPlugins.hasOwnProperty(i)){var o=this[i];if(o.statusChanged)try{o.statusChanged(e,t)}catch(e){r.error(i+" plugin caused an exception changing status: "+e)}}if(this.connect_callback)try{this.connect_callback(e,t,n)}catch(e){r._handleError(e),r.error("User connection callback caused an exception: "+e)}},_doDisconnect:function(e){"number"==typeof this._idleTimeout&&clearTimeout(this._idleTimeout),null!==this._disconnectTimeout&&(this.deleteTimedHandler(this._disconnectTimeout),this._disconnectTimeout=null),r.info("_doDisconnect was called"),this._proto._doDisconnect(),this.authenticated=!1,this.disconnecting=!1,this.restored=!1,this.handlers=[],this.timedHandlers=[],this.removeTimeds=[],this.removeHandlers=[],this.addTimeds=[],this.addHandlers=[],this._changeConnectStatus(r.Status.DISCONNECTED,e),this.connected=!1},_dataRecv:function(e,t){r.info("_dataRecv called");var n=this._proto._reqToData(e);if(null!==n){var i,o;for(this.xmlInput!==r.Connection.prototype.xmlInput&&(n.nodeName===this._proto.strip&&n.childNodes.length?this.xmlInput(n.childNodes[0]):this.xmlInput(n)),this.rawInput!==r.Connection.prototype.rawInput&&(t?this.rawInput(t):this.rawInput(r.serialize(n)));this.removeHandlers.length>0;)o=this.removeHandlers.pop(),(i=this.handlers.indexOf(o))>=0&&this.handlers.splice(i,1);for(;this.addHandlers.length>0;)this.handlers.push(this.addHandlers.pop());if(this.disconnecting&&this._proto._emptyQueue())this._doDisconnect();else{var a,s,c=n.getAttribute("type");if(null!==c&&"terminate"===c){if(this.disconnecting)return;return a=n.getAttribute("condition"),s=n.getElementsByTagName("conflict"),null!==a?("remote-stream-error"===a&&s.length>0&&(a="conflict"),this._changeConnectStatus(r.Status.CONNFAIL,a)):this._changeConnectStatus(r.Status.CONNFAIL,r.ErrorCondition.UNKOWN_REASON),void this._doDisconnect(a)}var u=this;r.forEachChild(n,null,function(e){var t,n;for(n=u.handlers,u.handlers=[],t=0;t0:i.getElementsByTagName("stream:features").length>0||i.getElementsByTagName("features").length>0){var o,a,s=[],c=i.getElementsByTagName("mechanism");if(c.length>0)for(o=0;oe[r].prototype.priority&&(r=n);r!==t&&(i=e[t],e[t]=e[r],e[r]=i)}return e},_attemptSASLAuth:function(e){e=this.sortMechanismsByPriority(e||[]);var t=0,n=!1;for(t=0;t0&&(t=r.ErrorCondition.CONFLICT),this._changeConnectStatus(r.Status.AUTHFAIL,t,e),!1;var n,i=e.getElementsByTagName("bind");if(!(i.length>0))return r.info("SASL binding failed."),this._changeConnectStatus(r.Status.AUTHFAIL,null,e),!1;(n=i[0].getElementsByTagName("jid")).length>0&&(this.jid=r.getText(n[0]),this.do_session?(this._addSysHandler(this._sasl_session_cb.bind(this),null,null,null,"_session_auth_2"),this.send(a({type:"set",id:"_session_auth_2"}).c("session",{xmlns:r.NS.SESSION}).tree())):(this.authenticated=!0,this._changeConnectStatus(r.Status.CONNECTED,null)))},_sasl_session_cb:function(e){if("result"===e.getAttribute("type"))this.authenticated=!0,this._changeConnectStatus(r.Status.CONNECTED,null);else if("error"===e.getAttribute("type"))return r.info("Session creation failed."),this._changeConnectStatus(r.Status.AUTHFAIL,null,e),!1;return!1},_sasl_failure_cb:function(e){return this._sasl_success_handler&&(this.deleteHandler(this._sasl_success_handler),this._sasl_success_handler=null),this._sasl_challenge_handler&&(this.deleteHandler(this._sasl_challenge_handler),this._sasl_challenge_handler=null),this._sasl_mechanism&&this._sasl_mechanism.onFailure(),this._changeConnectStatus(r.Status.AUTHFAIL,null,e),!1},_auth2_cb:function(e){return"result"===e.getAttribute("type")?(this.authenticated=!0,this._changeConnectStatus(r.Status.CONNECTED,null)):"error"===e.getAttribute("type")&&(this._changeConnectStatus(r.Status.AUTHFAIL,null,e),this.disconnect("authentication failed")),!1},_addSysTimedHandler:function(e,t){var n=new r.TimedHandler(e,t);return n.user=!1,this.addTimeds.push(n),n},_addSysHandler:function(e,t,n,i,o){var a=new r.Handler(e,t,n,i,o);return a.user=!1,this.addHandlers.push(a),a},_onDisconnectTimeout:function(){return r.info("_onDisconnectTimeout was called"),this._changeConnectStatus(r.Status.CONNTIMEOUT,null),this._proto._onDisconnectTimeout(),this._doDisconnect(),!1},_onIdle:function(){for(var e,t,n;this.addTimeds.length>0;)this.timedHandlers.push(this.addTimeds.pop());for(;this.removeTimeds.length>0;)t=this.removeTimeds.pop(),(e=this.timedHandlers.indexOf(t))>=0&&this.timedHandlers.splice(e,1);var r=(new Date).getTime();for(n=[],e=0;e0&&(n="conflict"),this._conn._changeConnectStatus(e.Status.CONNFAIL,n)):this._conn._changeConnectStatus(e.Status.CONNFAIL,"unknown"),this._conn._doDisconnect(n),e.Status.CONNFAIL;this.sid||(this.sid=t.getAttribute("sid"));var o=t.getAttribute("requests");o&&(this.window=parseInt(o,10));var a=t.getAttribute("hold");a&&(this.hold=parseInt(a,10));var s=t.getAttribute("wait");s&&(this.wait=parseInt(s,10));var c=t.getAttribute("inactivity");c&&(this.inactivity=parseInt(c,10))},_disconnect:function(e){this._sendTerminate(e)},_doDisconnect:function(){this.sid=null,this.rid=Math.floor(4294967295*Math.random()),this._conn._sessionCachingSupported()&&window.sessionStorage.removeItem("strophe-bosh-session"),this._conn.nextValidRid(this.rid)},_emptyQueue:function(){return 0===this._requests.length},_callProtocolErrorHandlers:function(e){var t,n=this._getRequestStatus(e);(t=this._conn.protocolErrorHandlers.HTTP[n])&&t.call(this,n)},_hitError:function(t){this.errors++,e.warn("request errored, status: "+t+", number of errors: "+this.errors),this.errors>4&&this._conn._onDisconnectTimeout()},_no_auth_received:function(t){e.warn("Server did not yet offer a supported authentication mechanism. Sending a blank poll request."),t=t?t.bind(this._conn):this._conn._connect_cb.bind(this._conn);var n=this._buildBody();this._requests.push(new e.Request(n.tree(),this._onRequestStateChange.bind(this,t),n.tree().getAttribute("rid"))),this._throttledRequestHandler()},_onDisconnectTimeout:function(){this._abortAllRequests()},_abortAllRequests:function(){for(var e;this._requests.length>0;)(e=this._requests.pop()).abort=!0,e.xhr.abort(),e.xhr.onreadystatechange=function(){}},_onIdle:function(){var t=this._conn._data;if(this._conn.authenticated&&0===this._requests.length&&0===t.length&&!this._conn.disconnecting&&(e.info("no requests during idle cycle, sending blank request"),t.push(null)),!this._conn.paused){if(this._requests.length<2&&t.length>0){for(var n=this._buildBody(),r=0;r0){var i=this._requests[0].age();null!==this._requests[0].dead&&this._requests[0].timeDead()>Math.floor(e.SECONDARY_TIMEOUT*this.wait)&&this._throttledRequestHandler(),i>Math.floor(e.TIMEOUT*this.wait)&&(e.warn("Request "+this._requests[0].id+" timed out, over "+Math.floor(e.TIMEOUT*this.wait)+" seconds since last activity"),this._throttledRequestHandler())}}},_getRequestStatus:function(t,n){var r;if(4===t.xhr.readyState)try{r=t.xhr.status}catch(t){e.error("Caught an error while retrieving a request's status, reqStatus: "+r)}return void 0===r&&(r="number"==typeof n?n:0),r},_onRequestStateChange:function(t,n){if(e.debug("request id "+n.id+"."+n.sends+" state changed to "+n.xhr.readyState),n.abort)n.abort=!1;else if(4===n.xhr.readyState){var r=this._getRequestStatus(n);if(this.lastResponseHeaders=n.xhr.getAllResponseHeaders(),this.disconnecting&&r>=400)return this._hitError(r),void this._callProtocolErrorHandlers(n);var i=r>0&&r<500,o=n.sends>this._conn.maxRetries;if((i||o)&&(this._removeRequest(n),e.debug("request id "+n.id+" should now be removed")),200===r){var a=this._requests[0]===n;(this._requests[1]===n||a&&this._requests.length>0&&this._requests[0].age()>Math.floor(e.SECONDARY_TIMEOUT*this.wait))&&this._restartRequest(0),this._conn.nextValidRid(Number(n.rid)+1),e.debug("request id "+n.id+"."+n.sends+" got 200"),t(n),this.errors=0}else 0===r||r>=400&&r<600||r>=12e3?(e.error("request id "+n.id+"."+n.sends+" error "+r+" happened"),this._hitError(r),this._callProtocolErrorHandlers(n),r>=400&&r<500&&(this._conn._changeConnectStatus(e.Status.DISCONNECTING,null),this._conn._doDisconnect())):e.error("request id "+n.id+"."+n.sends+" error "+r+" happened");i||o?o&&!this._conn.connected&&this._conn._changeConnectStatus(e.Status.CONNFAIL,"giving-up"):this._throttledRequestHandler()}},_processRequest:function(t){var n=this,r=this._requests[t],i=this._getRequestStatus(r,-1);if(r.sends>this._conn.maxRetries)this._conn._onDisconnectTimeout();else{var o=r.age(),a=!isNaN(o)&&o>Math.floor(e.TIMEOUT*this.wait),s=null!==r.dead&&r.timeDead()>Math.floor(e.SECONDARY_TIMEOUT*this.wait),c=4===r.xhr.readyState&&(i<1||i>=500);if((a||s||c)&&(s&&e.error("Request "+this._requests[t].id+" timed out (secondary), restarting"),r.abort=!0,r.xhr.abort(),r.xhr.onreadystatechange=function(){},this._requests[t]=new e.Request(r.xmlData,r.origFunc,r.rid,r.sends),r=this._requests[t]),0===r.xhr.readyState){e.debug("request id "+r.id+"."+r.sends+" posting");try{var u=this._conn.options.contentType||"text/xml; charset=utf-8";r.xhr.open("POST",this._conn.service,!this._conn.options.sync),void 0!==r.xhr.setRequestHeader&&r.xhr.setRequestHeader("Content-Type",u),this._conn.options.withCredentials&&(r.xhr.withCredentials=!0)}catch(t){return e.error("XHR open failed: "+t.toString()),this._conn.connected||this._conn._changeConnectStatus(e.Status.CONNFAIL,"bad-service"),void this._conn.disconnect()}var l=function(){if(r.date=new Date,n._conn.options.customHeaders){var e=n._conn.options.customHeaders;for(var t in e)e.hasOwnProperty(t)&&r.xhr.setRequestHeader(t,e[t])}r.xhr.send(r.data)};if(r.sends>1){var d=1e3*Math.min(Math.floor(e.TIMEOUT*this.wait),Math.pow(r.sends,3));setTimeout(function(){l()},d)}else l();r.sends++,this._conn.xmlOutput!==e.Connection.prototype.xmlOutput&&(r.xmlData.nodeName===this.strip&&r.xmlData.childNodes.length?this._conn.xmlOutput(r.xmlData.childNodes[0]):this._conn.xmlOutput(r.xmlData)),this._conn.rawOutput!==e.Connection.prototype.rawOutput&&this._conn.rawOutput(r.data)}else e.debug("_processRequest: "+(0===t?"first":"second")+" request has readyState of "+r.xhr.readyState)}},_removeRequest:function(t){var n;for(e.debug("removing request"),n=this._requests.length-1;n>=0;n--)t===this._requests[n]&&this._requests.splice(n,1);t.xhr.onreadystatechange=function(){},this._throttledRequestHandler()},_restartRequest:function(e){var t=this._requests[e];null===t.dead&&(t.dead=new Date),this._processRequest(e)},_reqToData:function(e){try{return e.getResponse()}catch(e){if("parsererror"!==e)throw e;this._conn.disconnect("strophe-parsererror")}},_sendTerminate:function(t){e.info("_sendTerminate was called");var n=this._buildBody().attrs({type:"terminate"});t&&n.cnode(t.tree());var r=new e.Request(n.tree(),this._onRequestStateChange.bind(this,this._conn._dataRecv.bind(this._conn)),n.tree().getAttribute("rid"));this._requests.push(r),this._throttledRequestHandler()},_send:function(){clearTimeout(this._conn._idleTimeout),this._throttledRequestHandler(),this._conn._idleTimeout=setTimeout(function(){this._onIdle()}.bind(this._conn),100)},_sendRestart:function(){this._throttledRequestHandler(),clearTimeout(this._conn._idleTimeout)},_throttledRequestHandler:function(){this._requests?e.debug("_throttledRequestHandler called with "+this._requests.length+" requests"):e.debug("_throttledRequestHandler called with undefined requests"),this._requests&&0!==this._requests.length&&(this._requests.length>0&&this._processRequest(0),this._requests.length>1&&Math.abs(this._requests[0].rid-this._requests[1].rid): "+r);var i=t.getAttribute("version");return"string"!=typeof i?n="Missing version in ":"1.0"!==i&&(n="Wrong version in : "+i),!n||(this._conn._changeConnectStatus(e.Status.CONNFAIL,n),this._conn._doDisconnect(),!1)},_connect_cb_wrapper:function(t){if(0===t.data.indexOf("\s*)*/,"");if(""===n)return;var r=(new DOMParser).parseFromString(n,"text/xml").documentElement;this._conn.xmlInput(r),this._conn.rawInput(t.data),this._handleStreamStart(r)&&this._connect_cb(r)}else if(0===t.data.indexOf("=0&&o.indexOf("wss:")>=0||a.indexOf("ws:")>=0)&&(this._conn._changeConnectStatus(e.Status.REDIRECT,"Received see-other-uri, resetting connection"),this._conn.reset(),this._conn.service=o,this._connect())}else this._conn._changeConnectStatus(e.Status.CONNFAIL,"Received closing stream"),this._conn._doDisconnect()}else{var s=this._streamWrap(t.data),c=(new DOMParser).parseFromString(s,"text/xml").documentElement;this.socket.onmessage=this._onMessage.bind(this),this._conn._connect_cb(c,null,t.data)}},_disconnect:function(n){if(this.socket&&this.socket.readyState!==WebSocket.CLOSED){n&&this._conn.send(n);var r=t("close",{xmlns:e.NS.FRAMING});this._conn.xmlOutput(r.tree());var i=e.serialize(r);this._conn.rawOutput(i);try{this.socket.send(i)}catch(t){e.info("Couldn't send tag.")}}this._conn._doDisconnect()},_doDisconnect:function(){e.info("WebSockets _doDisconnect was called"),this._closeSocket()},_streamWrap:function(e){return""+e+""},_closeSocket:function(){if(this.socket)try{this.socket.onerror=null,this.socket.close()}catch(e){}this.socket=null},_emptyQueue:function(){return!0},_onClose:function(t){this._conn.connected&&!this._conn.disconnecting?(e.error("Websocket closed unexpectedly"),this._conn._doDisconnect()):t&&1006===t.code&&!this._conn.connected&&this.socket?(e.error("Websocket closed unexcectedly"),this._conn._changeConnectStatus(e.Status.CONNFAIL,"The WebSocket connection could not be established or was disconnected."),this._conn._doDisconnect()):e.info("Websocket closed")},_no_auth_received:function(t){e.error("Server did not offer a supported authentication mechanism"),this._changeConnectStatus(e.Status.CONNFAIL,e.ErrorCondition.NO_AUTH_MECH),t&&t.call(this._conn),this._conn._doDisconnect()},_onDisconnectTimeout:function(){},_abortAllRequests:function(){},_onError:function(t){e.error("Websocket error "+t),this._conn._changeConnectStatus(e.Status.CONNFAIL,"The WebSocket connection could not be established or was disconnected."),this._disconnect()},_onIdle:function(){var t=this._conn._data;if(t.length>0&&!this._conn.paused){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:{};e?(t="object"===v(e)?e:{name:e,properties:n},g.log(JSON.stringify(t)),this.analytics.sendEvent(e,n)):g.warn("No event or event name given.")},b.sendAnalytics=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.analytics.sendEvent(e,t)}}).call(this,"modules/statistics/statistics.js")},function(e,t,n){"use strict";(function(e){var r=n(4),i=n(33),o=n.n(i),a=n(3);function s(e){return(function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t2?t[2]:null]},buildRTPMap:function(e){var t="a=rtpmap:".concat(e.getAttribute("id")," ").concat(e.getAttribute("name"),"/").concat(e.getAttribute("clockrate"));return e.getAttribute("channels")&&"1"!==e.getAttribute("channels")&&(t+="/".concat(e.getAttribute("channels"))),t},parseCrypto:function(e){var t={},n=e.substring(9).split(" ");return t.tag=n.shift(),t["crypto-suite"]=n.shift(),t["key-params"]=n.shift(),n.length&&(t["session-params"]=n.join(" ")),t},parseFingerprint:function(e){var t={},n=e.substring(14).split(" ");return t.hash=n.shift(),t.fingerprint=n.shift(),t},parseFmtp:function(e){var t=[],n=e.split(" ");n.shift(),n=n.join(" ").split(";");for(var r=0;r1&&0===n)){var r=null;if(1===t)r=e.ssrcs[0].id;else if(2===t){var i=e.ssrcGroups.find(function(e){return"FID"===e.semantics});i&&(r=i.ssrcs.split(" ")[0])}else if(t>=3){var o=e.ssrcGroups.find(function(e){return"SIM"===e.semantics});o&&(r=o.ssrcs.split(" ")[0])}return r}},generateSsrc:function(){return o.a.randomInt(1,4294967295)},getSsrcAttribute:function(e,t,n){for(var r=0;r0)return t[0].substr("a=ice-ufrag:".length)},preferVideoCodec:function(e,t){var n=null;if(e&&t){for(var r=0;r0){var l=n.map(function(e){return"apt=".concat(e)}),d=e.fmtp.filter(function(e){return-1!==l.indexOf(e.config)});n.push.apply(n,s(d.map(function(e){return e.payload})));var p=e.payloads.toString().split(" ").map(Number).filter(function(e){return-1===n.indexOf(e)});0===p.length?(e.port=0,e.direction="inactive",e.payloads="*"):e.payloads=p.join(" "),e.rtp=e.rtp.filter(function(e){return-1!==p.indexOf(e.payload)}),e.fmtp=e.fmtp.filter(function(e){return-1!==p.indexOf(e.payload)}),e.rtcpFb&&(e.rtcpFb=e.rtcpFb.filter(function(e){return-1!==p.indexOf(e.payload)}))}}}};t.a=u}).call(this,"modules/xmpp/SDPUtil.js")},function(e,t,n){"use strict";function r(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:{};return{type:o,source:"get.user.media",action:e,attributes:t}},L=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{type:o,source:"peer.conn.status",action:"duration",attributes:e}},M=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return{type:o,action:e,source:"jingle",attributes:t}},x=function(e,t){return{attributes:{media_type:e,value:t},action:"track.no.data.from.source",type:o}},j=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return{type:o,action:e,source:"p2p",attributes:t}},F=function(){return{type:o,action:"remotely.muted"}},U=function(e){return{type:o,action:"rtp.stats",attributes:e}},H=function(e){return{type:o,action:"rtt.by.region",attributes:e}};function J(e,t,n){return{type:o,action:"audio.output.problem",attributes:{userID:e,localAudioLevels:t,remoteAudioLevels:n}}}var G=function(e,t){return{type:o,action:"bridge-channel.error",attributes:{code:e,reason:t}}},B=function(e){return I("ttfm",e)}},function(e,t){e.exports={CREATE_ANSWER_FAILED:"rtc.create_answer_failed",CREATE_OFFER_FAILED:"rtc.create_offer_failed",DATA_CHANNEL_OPEN:"rtc.data_channel_open",ENDPOINT_CONN_STATUS_CHANGED:"rtc.endpoint_conn_status_changed",DOMINANT_SPEAKER_CHANGED:"rtc.dominant_speaker_changed",LASTN_ENDPOINT_CHANGED:"rtc.lastn_endpoint_changed",GRANTED_PERMISSIONS:"rtc.granted_permissions",IS_SELECTED_CHANGED:"rtc.is_selected_change",LASTN_VALUE_CHANGED:"rtc.lastn_value_changed",LOCAL_TRACK_SSRC_UPDATED:"rtc.local_track_ssrc_updated",TRACK_ATTACHED:"rtc.track_attached",REMOTE_TRACK_ADDED:"rtc.remote_track_added",REMOTE_TRACK_MUTE:"rtc.remote_track_mute",REMOTE_TRACK_REMOVED:"rtc.remote_track_removed",REMOTE_TRACK_UNMUTE:"rtc.remote_track_unmute",SET_LOCAL_DESCRIPTION_FAILED:"rtc.set_local_description_failed",SET_REMOTE_DESCRIPTION_FAILED:"rtc.set_remote_description_failed",AUDIO_OUTPUT_DEVICE_CHANGED:"rtc.audio_output_device_changed",DEVICE_LIST_CHANGED:"rtc.device_list_changed",DEVICE_LIST_WILL_CHANGE:"rtc.device_list_will_change",DEVICE_LIST_AVAILABLE:"rtc.device_list_available",ENDPOINT_MESSAGE_RECEIVED:"rtc.endpoint_message_received",LOCAL_UFRAG_CHANGED:"rtc.local_ufrag_changed",REMOTE_UFRAG_CHANGED:"rtc.remote_ufrag_changed"}},function(e,t,n){"use strict";n.d(t,"a",function(){return r}),n.d(t,"b",function(){return i});var r="audio",i="video"},function(e,t,n){"use strict";(function(e){var r=n(7),i=n(39),o=n.n(i),a=n(29),s=n.n(a),c=n(4),u=n(11),l=n.n(u),d=n(15),p=n(24),f=n(9),h=n(30),m=n.n(h),v=n(3),y=n(8),g=n.n(y),S=n(40),_=n(6),b=n(5),E=n(14),T=n.n(E);function C(e){return(C="function"==typeof Symbol&&"symbol"==typeof("function"==typeof Symbol?Symbol.iterator:"@@iterator")?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==("function"==typeof Symbol?Symbol.prototype:"@@prototype")?"symbol":typeof e})(e)}function R(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:{},n={audio:!1,video:!1},r=v.a.isFirefox()||v.a.isSafariWithVP8()||v.a.isEdge()||v.a.isReactNative();if(e.indexOf("video")>=0){if(n.video={mandatory:{},optional:[]},t.cameraDeviceId)r&&(n.video.deviceId=t.cameraDeviceId),n.video.mandatory.sourceId=t.cameraDeviceId;else{var i=t.facingMode||o.a.USER;r&&(n.video.facingMode=i),n.video.optional.push({facingMode:i})}(t.minFps||t.maxFps||t.fps)&&((t.minFps||t.fps)&&(t.minFps=t.minFps||t.fps,n.video.mandatory.minFrameRate=t.minFps),t.maxFps&&(n.video.mandatory.maxFrameRate=t.maxFps)),(function(e,t,n){m.a[n]&&(t&&(e.video.width={ideal:m.a[n].width},e.video.height={ideal:m.a[n].height}),e.video.mandatory.minWidth=m.a[n].width,e.video.mandatory.minHeight=m.a[n].height),e.video.mandatory.minWidth&&(e.video.mandatory.maxWidth=e.video.mandatory.minWidth),e.video.mandatory.minHeight&&(e.video.mandatory.maxHeight=e.video.mandatory.minHeight)})(n,r,t.resolution)}if(e.indexOf("audio")>=0&&(v.a.isReactNative()?n.audio=!0:v.a.isFirefox()?t.micDeviceId?n.audio={mandatory:{},deviceId:t.micDeviceId,optional:[{sourceId:t.micDeviceId}]}:n.audio=!0:(n.audio={mandatory:{},optional:[]},t.micDeviceId&&(r&&(n.audio.deviceId=t.micDeviceId),n.audio.optional.push({sourceId:t.micDeviceId})),n.audio.optional.push({echoCancellation:!J&&!H},{googEchoCancellation:!J&&!H},{googAutoGainControl:!B&&!H},{googNoiseSuppression:!G&&!H},{googHighpassFilter:!V&&!H},{googNoiseSuppression2:!G&&!H},{googEchoCancellation2:!J&&!H},{googAutoGainControl2:!B&&!H}))),e.indexOf("screen")>=0)if(v.a.isChrome())n.video={mandatory:$(O({},t,{source:"screen"})),optional:[]};else if(v.a.isFirefox())n.video={mozMediaSource:"window",mediaSource:"window",frameRate:t.frameRate||{min:j,max:j}};else{var a="'screen' WebRTC media source is supported only in Chrome and Firefox";l.a.callErrorHandler(new Error(a)),P.error(a)}return e.indexOf("desktop")>=0&&(n.video={mandatory:$(O({},t,{source:"desktop"})),optional:[]}),t.bandwidth&&(n.video||(n.video={mandatory:{},optional:[]}),n.video.optional.push({bandwidth:t.bandwidth})),v.a.isFirefox()&&t.firefox_fake_device&&(n.fake=!0),n}function $(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.desktopStream,n=e.frameRate,r=void 0===n?{min:j,max:j}:n,i=r.max,o=r.min,a={chromeMediaSource:e.source,maxWidth:window.screen.width,maxHeight:window.screen.height};return"number"==typeof o&&(a.minFrameRate=o),"number"==typeof i&&(a.maxFrameRate=i),void 0!==t&&(a.chromeMediaSourceId=t),a}function X(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t={frameRate:j},n=e.desktopSharingFrameRate;return n&&n.max&&(t.frameRate=n.max),t}function Q(e,t){var n=Boolean(t)&&t.getAudioTracks().length>0,r=Boolean(t)&&t.getVideoTracks().length>0,i={};-1!==e.indexOf("video")&&(i.video=r),-1!==e.indexOf("audio")&&(i.audio=n),L.emit(g.a.GRANTED_PERMISSIONS,i)}function Y(e){return e.length!==D.length||e.map(t).sort().join("")!==D.map(t).sort().join("");function t(e){return JSON.stringify({kind:e.kind,deviceId:e.deviceId,groupId:e.groupId,label:e.label,facing:e.facing})}}function Z(e){var t=e.filter(function(e){return"audioinput"===e.kind}).length,n=e.filter(function(e){return"audiooutput"===e.kind}).length,i=e.filter(function(e){return"videoinput"===e.kind}).length,o=e.filter(function(e){return"videooutput"===e.kind}).length;e.forEach(function(e){var a={audio_input_device_count:t,audio_output_device_count:n,video_input_device_count:i,video_output_device_count:o,device_id:e.deviceId,device_group_id:e.groupId,device_kind:e.kind,device_label:e.label};b.a.sendAnalytics(r.l,a)})}function ee(e){D=e.slice(0),P.info("list of media devices has changed:",D),Z(D),L.emit(g.a.DEVICE_LIST_WILL_CHANGE,e),L.emit(g.a.DEVICE_LIST_CHANGED,e)}function te(e,t){var n,r,i,o=[];if(e){var a=e.audioVideo;if(a){var s=a.getAudioTracks();if(s.length){n=new MediaStream;for(var c=0;c0&&void 0!==arguments[0]?arguments[0]:{};if("boolean"==typeof t.disableAEC&&(J=t.disableAEC,P.info("Disable AEC: ".concat(J))),"boolean"==typeof t.disableNS&&(G=t.disableNS,P.info("Disable NS: ".concat(G))),"boolean"==typeof t.disableAP&&(H=t.disableAP,P.info("Disable AP: ".concat(H))),"boolean"==typeof t.disableAGC&&(B=t.disableAGC,P.info("Disable AGC: ".concat(B))),"boolean"==typeof t.disableHPF&&(V=t.disableHPF,P.info("Disable HPF: ".concat(V))),D=void 0,window.clearInterval(N),N=void 0,this.enumerateDevices=W(),v.a.usesNewGumFlow())this.RTCPeerConnectionType=RTCPeerConnection,this.attachMediaStream=ie(function(e,t){e&&(e.srcObject=t)}),this.getStreamID=function(e){return e.id},this.getTrackID=function(e){return e.id};else{if(!v.a.isChromiumBased()&&!v.a.isReactNative()){var n="Endpoint does not appear to be WebRTC-capable";throw P.error(n),new Error(n)}this.RTCPeerConnectionType=RTCPeerConnection,this.attachMediaStream=ie(function(e,t){return ne(e,t),e}),this.getStreamID=function(e){var t=e.id;return"number"==typeof t?t:_.a.filterSpecialChars(t)},this.getTrackID=function(e){return e.id},MediaStream.prototype.getVideoTracks||(MediaStream.prototype.getVideoTracks=function(){return this.videoTracks}),MediaStream.prototype.getAudioTracks||(MediaStream.prototype.getAudioTracks=function(){return this.audioTracks})}this._initPCConstraints(t),S.a.init(t,this.getUserMediaWithConstraints.bind(this)),this.isDeviceListAvailable()&&this.enumerateDevices(function(t){D=t.splice(0),P.debug("Available devices: ",D),Z(D),L.emit(g.a.DEVICE_LIST_AVAILABLE,D);var n=function(){return e.enumerateDevices(function(e){Y(e)&&ee(e)})};v.a.supportsDeviceChangeEvent()?navigator.mediaDevices.addEventListener("devicechange",n):N=window.setInterval(n,3e3)})}},{key:"_initPCConstraints",value:function(e){v.a.isFirefox()?this.pcConstraints={}:(v.a.isChromiumBased()||v.a.isReactNative())&&(this.pcConstraints={optional:[{googHighStartBitrate:0},{googPayloadPadding:!0},{googScreencastMinBitrate:100},{googCpuOveruseDetection:!0},{googCpuOveruseEncodeUsage:!0},{googCpuUnderuseThreshold:55},{googCpuOveruseThreshold:85}]},e.useIPv6&&this.pcConstraints.optional.push({googIPv6:!0}),this.p2pPcConstraints=JSON.parse(JSON.stringify(this.pcConstraints))),this.p2pPcConstraints=this.p2pPcConstraints||this.pcConstraints}},{key:"getUserMediaWithConstraints",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=z(e,t);return P.info("Get media constraints",n),new Promise(function(t,r){navigator.mediaDevices.getUserMedia(n).then(function(n){P.log("onUserMediaSuccess"),Q(e,n),t(n)}).catch(function(t){P.warn("Failed to get access to local media. "+" ".concat(t," ").concat(n," ")),Q(e,void 0),r(new d.a(t,n,e))})})}},{key:"_newGetUserMediaWithConstraints",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(function(n,r){navigator.mediaDevices.getUserMedia(t).then(function(t){P.log("onUserMediaSuccess"),Q(e,t),n(t)}).catch(function(n){P.warn("Failed to get access to local media. "+" ".concat(n," ").concat(t," ")),Q(e,void 0),r(new d.a(n,t,e))})})}},{key:"_newGetDesktopMedia",value:function(e){var t=this;return S.a.isSupported()&&v.a.supportsVideo()?new Promise(function(n,r){S.a.obtainStream(t._parseDesktopSharingOptions(e),function(e){n(e)},function(e){r(e)})}):Promise.reject(new Error("Desktop sharing is not supported!"))}},{key:"obtainAudioAndVideoPermissions",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return e.devices=e.devices||M.concat(),e.resolution=e.resolution||720,e.devices.includes("desktop")&&!S.a.isSupported()?Promise.reject(new Error("Desktop sharing is not supported!")):this._getAudioAndVideoStreams(e).then(function(t){return te(t,e.resolution)})}},{key:"_getAudioAndVideoStreams",value:function(e){var t=this,n=e.devices.includes("desktop");return e.devices=e.devices.filter(function(e){return"desktop"!==e}),(e.devices.length?this.getUserMediaWithConstraints(e.devices,e):Promise.resolve(null)).then(function(n){var r=t._getMissingTracks(e.devices,n);return r.length?(t.stopMediaStream(n),t.getUserMediaWithConstraints(r,e).then(function(){return Promise.reject(new d.a({name:"UnknownError"},z(e.devices,e),r))})):n}).then(function(r){if(!n)return{audioVideo:r};if(e.desktopSharingSourceDevice)throw t.stopMediaStream(r),new Error("Using a camera as screenshare source isnot supported on this browser.");return new Promise(function(n,i){S.a.obtainStream(t._parseDesktopSharingOptions(e),function(e){return n({audioVideo:r,desktop:e})},function(e){r&&t.stopMediaStream(r),i(e)})})})}},{key:"_getMissingTracks",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0,n=[],r=e.includes("audio"),i=t&&t.getAudioTracks().length>0;r&&!i&&n.push("audio");var o=e.includes("video"),a=t&&t.getVideoTracks().length>0;return o&&!a&&n.push("video"),n}},{key:"_parseDesktopSharingOptions",value:function(e){return O({},e.desktopSharingExtensionExternalInstallation,{desktopSharingSources:e.desktopSharingSources,gumOptions:{frameRate:e.desktopSharingFrameRate},trackOptions:X(e)})}},{key:"newObtainAudioAndVideoPermissions",value:function(e){var t=this;P.info("Using the new gUM flow");var n=[],r=function(){if(-1===(e.devices||[]).indexOf("desktop"))return Promise.resolve();var t=e.desktopSharingExtensionExternalInstallation,n=e.desktopSharingSourceDevice,r=e.desktopSharingSources,i=e.desktopSharingFrameRate;if(n){var o=D&&D.find(function(e){return"videoinput"===e.kind&&(e.deviceId===n||e.label===n)}),a=this._parseDesktopSharingOptions(e),s=a.gumOptions,c=a.trackOptions,u={video:O({},s,{deviceId:{exact:o&&o.deviceId||n}})};return this._newGetUserMediaWithConstraints(["video"],u).then(function(e){var t=e&&e.getTracks()[0];return(t&&t.applyConstraints?t.applyConstraints(c):Promise.resolve()).then(function(){return{sourceType:"device",stream:e}})})}return this._newGetDesktopMedia({desktopSharingExtensionExternalInstallation:t,desktopSharingSources:r,desktopSharingFrameRate:i})}.bind(this),i=function(){var t=(e.devices||["audio","video"]).filter(function(e){return"audio"===e||"video"===e&&v.a.supportsVideo()});if(!t.length)return Promise.resolve();var n=(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=JSON.parse(JSON.stringify(t.constraints||x));if(e.indexOf("video")>=0)if(n.video||(n.video={}),t.cameraDeviceId)n.video.deviceId=t.cameraDeviceId;else{var r=t.facingMode||o.a.USER;n.video.facingMode=r}else n.video=!1;return e.indexOf("audio")>=0?(n.audio&&"boolean"!=typeof n.audio||(n.audio={}),n.audio.optional||(n.audio.optional=[]),n.audio.optional.push({sourceId:t.micDeviceId},{echoCancellation:!J&&!H},{googEchoCancellation:!J&&!H},{googAutoGainControl:!B&&!H},{googNoiseSuppression:!G&&!H},{googHighpassFilter:!V&&!H},{googNoiseSuppression2:!G&&!H},{googEchoCancellation2:!J&&!H},{googAutoGainControl2:!B&&!H})):n.audio=!1,e.indexOf("desktop")>=0&&(n.video&&"boolean"!=typeof n.video||(n.video={}),n.video={mandatory:$(O({},t,{source:"desktop"}))}),n})(t,e);return P.info("Got media constraints: ",n),this._newGetUserMediaWithConstraints(t,n)}.bind(this);return r().then(function(e){if(e){var t=e.stream,r=e.sourceId,i=e.sourceType;n.push({stream:t,sourceId:r,sourceType:i,track:t.getVideoTracks()[0],videoType:T.a.DESKTOP})}}).then(i).then(function(t){if(t){var r=t.getAudioTracks();if(r.length){var i=new MediaStream(r);n.push({stream:i,track:i.getAudioTracks()[0],effects:e.effects})}var o=t.getVideoTracks();if(o.length){var a=new MediaStream(o);n.push({stream:a,track:a.getVideoTracks()[0],videoType:T.a.CAMERA,effects:e.effects})}}}).then(function(){return n}).catch(function(e){return n.forEach(function(e){var n=e.stream;t.stopMediaStream(n)}),Promise.reject(e)})}},{key:"isDeviceListAvailable",value:function(){return Boolean(navigator.mediaDevices&&navigator.mediaDevices.enumerateDevices)}},{key:"isDeviceChangeAvailable",value:function(e){return"output"===e||"audiooutput"===e?K:v.a.isChromiumBased()||v.a.isFirefox()||v.a.isEdge()}},{key:"stopMediaStream",value:function(e){if(e){e.getTracks().forEach(function(e){e.stop&&e.stop()}),e.stop&&e.stop(),e.release&&e.release();var t=e.jitsiObjectURL;t&&(delete e.jitsiObjectURL,URL.revokeObjectURL(t))}}},{key:"isDesktopSharingEnabled",value:function(){return S.a.isSupported()}},{key:"setAudioOutputDevice",value:function(e){return this.isDeviceChangeAvailable("output")?q.setSinkId(e).then(function(){F=e,U=!0,P.log("Audio output device set to ".concat(e)),L.emit(g.a.AUDIO_OUTPUT_DEVICE_CHANGED,e)}):Promise.reject(new Error("Audio output device change is not supported"))}},{key:"getAudioOutputDevice",value:function(){return F}},{key:"getCurrentlyAvailableMediaDevices",value:function(){return D}},{key:"getEventDataForActiveDevice",value:function(e){var t=[],n={deviceId:e.deviceId,kind:e.kind,label:e.label,groupId:e.groupId};return t.push(n),{deviceList:t}}},{key:"setSuspendVideo",value:function(e,t){e.optional||(e.optional=[]),e.optional=e.optional.filter(function(e){return!e.hasOwnProperty("googSuspendBelowMinBitrate")}),t&&e.optional.push({googSuspendBelowMinBitrate:"true"})}}])&&R(n.prototype,r),t})());function ie(e){return function(t,n){var r=e.apply(re,arguments);return n&&re.isDeviceChangeAvailable("output")&&n.getAudioTracks&&n.getAudioTracks().length&&U&&t.setSinkId(re.getAudioOutputDevice()).catch(function(e){var n=new d.a(e,null,["audiooutput"]);l.a.callUnhandledRejectionHandler({promise:this,reason:n}),P.warn("Failed to set audio output device for the element. Default audio output device will be used instead",t,n)}),r}}t.a=re}).call(this,"modules/RTC/RTCUtils.js")},function(e,t){var n=[],r=window.onerror,i=window.onunhandledrejection;window.onerror=function(){for(var e=arguments.length,t=new Array(e),i=0;i0&&void 0!==arguments[0]?arguments[0]:[]).map(function(e){var t=e.sourceId,n=e.sourceType,r=e.stream,i=e.track,o=e.videoType,a=e.effects,s=i.getSettings(),u=s.deviceId,d=s.facingMode;return k=Object(l.a)(k),new c.a({deviceId:u,facingMode:d,mediaType:i.kind,rtcId:k,sourceId:t,sourceType:n,stream:r,track:i,videoType:o||null,effects:a})})}var P=(function(e){function t(e){var n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")})(this,t),(n=(function(e,t){return!t||"object"!==_(t)&&"function"!=typeof t?C(e):t})(this,E(t).call(this))).conference=e,n.peerConnections=new Map,n.localTracks=[],n.options=r,n._channel=null,n._channelOpen=!1,n._lastN=-1,n._lastNEndpoints=null,n._maxFrameHeight=void 0,n._pinnedEndpoint=null,n._selectedEndpoints=[],n._lastNChangeListener=n._onLastNChanged.bind(C(C(n))),n._onDeviceListChanged=n._onDeviceListChanged.bind(C(C(n))),n._updateAudioOutputForAudioTracks=n._updateAudioOutputForAudioTracks.bind(C(C(n))),m.a.isDeviceChangeAvailable("output")&&(m.a.addListener(h.a.AUDIO_OUTPUT_DEVICE_CHANGED,n._updateAudioOutputForAudioTracks),m.a.addListener(h.a.DEVICE_LIST_CHANGED,n._onDeviceListChanged)),n}var n,r,o;return(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&T(e,t)})(t,u.a),n=t,o=[{key:"newCreateLocalTracks",value:function(e){return I(e)}},{key:"obtainAudioAndVideoPermissions",value:function(e){var t=p.a.usesNewGumFlow();return(t?m.a.newObtainAudioAndVideoPermissions(e):m.a.obtainAudioAndVideoPermissions(e)).then(function(n){return t?I(n):O(n,e)})}},{key:"addListener",value:function(e,t){m.a.addListener(e,t)}},{key:"removeListener",value:function(e,t){m.a.removeListener(e,t)}},{key:"init",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.options=e,m.a.init(this.options)}},{key:"getPCConstraints",value:function(e){var t=e?m.a.p2pPcConstraints:m.a.pcConstraints;return t?JSON.parse(JSON.stringify(t)):{}}},{key:"attachMediaStream",value:function(e,t){return m.a.attachMediaStream(e,t)}},{key:"getStreamID",value:function(e){return m.a.getStreamID(e)}},{key:"getTrackID",value:function(e){return m.a.getTrackID(e)}},{key:"isDeviceListAvailable",value:function(){return m.a.isDeviceListAvailable()}},{key:"isDeviceChangeAvailable",value:function(e){return m.a.isDeviceChangeAvailable(e)}},{key:"isWebRtcSupported",value:function(){return p.a.isSupported()}},{key:"getAudioOutputDevice",value:function(){return m.a.getAudioOutputDevice()}},{key:"getCurrentlyAvailableMediaDevices",value:function(){return m.a.getCurrentlyAvailableMediaDevices()}},{key:"getEventDataForActiveDevice",value:function(e){return m.a.getEventDataForActiveDevice(e)}},{key:"setAudioOutputDevice",value:function(e){return m.a.setAudioOutputDevice(e)}},{key:"isUserStream",value:function(e){return t.isUserStreamById(m.a.getStreamID(e))}},{key:"isUserStreamById",value:function(e){return e&&"mixedmslabel"!==e&&"default"!==e}},{key:"enumerateDevices",value:function(e){m.a.enumerateDevices(e)}},{key:"stopMediaStream",value:function(e){m.a.stopMediaStream(e)}},{key:"isDesktopSharingEnabled",value:function(){return m.a.isDesktopSharingEnabled()}}],(r=[{key:"destroy",value:function(){m.a.removeListener(h.a.AUDIO_OUTPUT_DEVICE_CHANGED,this._updateAudioOutputForAudioTracks),m.a.removeListener(h.a.DEVICE_LIST_CHANGED,this._onDeviceListChanged),this.removeListener(h.a.LASTN_ENDPOINT_CHANGED,this._lastNChangeListener),this._channelOpenListener&&this.removeListener(h.a.DATA_CHANNEL_OPEN,this._channelOpenListener)}},{key:"initializeBridgeChannel",value:function(e,t){var n=this;this._channel=new i.a(e,t,this.eventEmitter),this._channelOpenListener=function(){n._channelOpen=!0;try{n._channel.sendPinnedEndpointMessage(n._pinnedEndpoint),n._channel.sendSelectedEndpointsMessage(n._selectedEndpoints),void 0!==n._maxFrameHeight&&n._channel.sendReceiverVideoConstraintMessage(n._maxFrameHeight)}catch(e){a.a.callErrorHandler(e),A.error("Cannot send selected(".concat(n._selectedEndpoint,")")+"pinned(".concat(n._pinnedEndpoint,")")+"frameHeight(".concat(n._maxFrameHeight,") endpoint message"),e)}n.removeListener(h.a.DATA_CHANNEL_OPEN,n._channelOpenListener),n._channelOpenListener=null,-1!==n._lastN&&n._channel.sendSetLastNMessage(n._lastN)},this.addListener(h.a.DATA_CHANNEL_OPEN,this._channelOpenListener),this.addListener(h.a.LASTN_ENDPOINT_CHANGED,this._lastNChangeListener)}},{key:"_onDeviceListChanged",value:function(){this._updateAudioOutputForAudioTracks(m.a.getAudioOutputDevice())}},{key:"_onLastNChanged",value:function(){var e,t,n=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=this._lastNEndpoints||[];this._lastNEndpoints=r,e=i.filter(function(e){return!n.isInLastN(e)}),t=r.filter(function(e){return-1===i.indexOf(e)}),this.conference.eventEmitter.emit(s.LAST_N_ENDPOINTS_CHANGED,e,t)}},{key:"onCallEnded",value:function(){this._channel&&(this._channel&&"websocket"===this._channel.mode&&this._channel.close(),this._channel=null,this._channelOpen=!1)}},{key:"setReceiverVideoConstraint",value:function(e){this._maxFrameHeight=e,this._channel&&this._channelOpen&&this._channel.sendReceiverVideoConstraintMessage(e)}},{key:"selectEndpoints",value:function(e){this._selectedEndpoints=e,this._channel&&this._channelOpen&&this._channel.sendSelectedEndpointsMessage(e)}},{key:"pinEndpoint",value:function(e){this._pinnedEndpoint=e,this._channel&&this._channelOpen&&this._channel.sendPinnedEndpointMessage(e)}},{key:"createPeerConnection",value:function(e,n,r,i){var o=t.getPCConstraints(r);void 0!==i.abtestSuspendVideo&&(m.a.setSuspendVideo(o,i.abtestSuspendVideo),v.a.analytics.addPermanentProperties({abtestSuspendVideo:i.abtestSuspendVideo})),p.a.supportsSdpSemantics()&&(n.sdpSemantics="plan-b"),w=Object(l.a)(w);var a=new y.a(this,w,e,n,o,r,i);return this.peerConnections.set(a.id,a),a}},{key:"_removePeerConnection",value:function(e){var t=e.id;return!!this.peerConnections.has(t)&&(this.peerConnections.delete(t),!0)}},{key:"addLocalTrack",value:function(e){if(!e)throw new Error("track must not be null nor undefined");this.localTracks.push(e),e.conference=this.conference}},{key:"getLastN",value:function(){return this._lastN}},{key:"getLocalVideoTrack",value:function(){var e=this.getLocalTracks(d.b);return e.length?e[0]:void 0}},{key:"getLocalAudioTrack",value:function(){var e=this.getLocalTracks(d.a);return e.length?e[0]:void 0}},{key:"getLocalTracks",value:function(e){var t=this.localTracks.slice();return void 0!==e&&(t=t.filter(function(t){return t.getType()===e})),t}},{key:"getRemoteTracks",value:function(e){var t=[],n=!0,r=!1,i=void 0;try{for(var o,a=this.peerConnections.values()["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();!(n=(o=a.next()).done);n=!0){var s=o.value.getRemoteTracks(void 0,e);s&&(t=t.concat(s))}}catch(e){r=!0,i=e}finally{try{n||null==a.return||a.return()}finally{if(r)throw i}}return t}},{key:"setAudioMute",value:function(e){var t=[];return this.getLocalTracks(d.a).forEach(function(n){t.push(e?n.mute():n.unmute())}),Promise.all(t)}},{key:"removeLocalTrack",value:function(e){var t=this.localTracks.indexOf(e);-1!==t&&this.localTracks.splice(t,1)}},{key:"removeRemoteTracks",value:function(e){var t=[],n=!0,r=!1,i=void 0;try{for(var o,a=this.peerConnections.values()["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();!(n=(o=a.next()).done);n=!0){var s=o.value.removeRemoteTracks(e);t=t.concat(s)}}catch(e){r=!0,i=e}finally{try{n||null==a.return||a.return()}finally{if(r)throw i}}return A.debug("Removed remote tracks for ".concat(e)+" count: ".concat(t.length)),t}},{key:"closeBridgeChannel",value:function(){this._channel&&(this._channel.close(),this._channelOpen=!1,this.removeListener(h.a.LASTN_ENDPOINT_CHANGED,this._lastNChangeListener))}},{key:"setAudioLevel",value:function(e,t,n,r){var i=e.getTrackBySSRC(t);i&&(i.isAudioTrack()?(i.isLocal()!==r&&A.error("".concat(i," was expected to ").concat(r?"be":"not be"," local")),i.setAudioLevel(n,e)):A.warn("Received audio level for non-audio track: ".concat(t)))}},{key:"sendChannelMessage",value:function(e,t){if(!this._channel)throw new Error("Channel support is disabled!");this._channel.sendMessage(e,t)}},{key:"setLastN",value:function(e){this._lastN!==e&&(this._lastN=e,this._channel&&this._channelOpen&&this._channel.sendSetLastNMessage(e),this.eventEmitter.emit(h.a.LASTN_VALUE_CHANGED,e))}},{key:"isInLastN",value:function(e){return!this._lastNEndpoints||this._lastNEndpoints.indexOf(e)>-1}},{key:"_updateAudioOutputForAudioTracks",value:function(e){var t=this.getRemoteTracks(d.a),n=!0,r=!1,i=void 0;try{for(var o,a=t["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();!(n=(o=a.next()).done);n=!0)o.value.setAudioOutput(e)}catch(e){r=!0,i=e}finally{try{n||null==a.return||a.return()}finally{if(r)throw i}}}}])&&b(n.prototype,r),o&&b(n,o),t})()}).call(this,"modules/RTC/RTC.js")},function(e,t){e.exports={CAMERA:"camera",DESKTOP:"desktop"}},function(e,t,n){"use strict";var r=n(12);function i(e){return(i="function"==typeof Symbol&&"symbol"==typeof("function"==typeof Symbol?Symbol.iterator:"@@iterator")?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==("function"==typeof Symbol?Symbol.prototype:"@@prototype")?"symbol":typeof e})(e)}var o={};function a(e,t,n){if("object"===i(e)&&void 0!==e.name)switch(this.gum={error:e,constraints:t,devices:n&&Array.isArray(n)?n.slice(0):void 0},e.name){case"NotAllowedError":case"PermissionDeniedError":case"SecurityError":this.name=r.PERMISSION_DENIED,this.message=o[this.name]+(this.gum.devices||[]).join(", ");break;case"DevicesNotFoundError":case"NotFoundError":this.name=r.NOT_FOUND,this.message=o[this.name]+(this.gum.devices||[]).join(", ");break;case"ConstraintNotSatisfiedError":case"OverconstrainedError":var a=e.constraintName||e.constraint;t&&t.video&&(!n||n.indexOf("video")>-1)&&("minWidth"===a||"maxWidth"===a||"minHeight"===a||"maxHeight"===a||"width"===a||"height"===a||"deviceId"===a)?(this.name=r.UNSUPPORTED_RESOLUTION,this.message=o[this.name]+(function(e,t){if(t&&t.video&&t.video.mandatory)switch(e){case"width":return t.video.mandatory.minWidth;case"height":return t.video.mandatory.minHeight;default:return t.video.mandatory[e]||""}return""})(a,t)):(this.name=r.CONSTRAINT_FAILED,this.message=o[this.name]+e.constraintName);break;default:this.name=r.GENERAL,this.message=e.message||o[this.name]}else{if("string"!=typeof e)throw new Error("Invalid arguments");o[e]?(this.name=e,this.message=t||o[e]):this.message=e}this.stack=e.stack||(new Error).stack}o[r.UNSUPPORTED_RESOLUTION]="Video resolution is not supported: ",o[r.CHROME_EXTENSION_INSTALLATION_ERROR]="Failed to install Chrome extension",o[r.CHROME_EXTENSION_USER_GESTURE_REQUIRED]="Failed to install Chrome extension - installations can only be initiated by a user gesture.",o[r.CHROME_EXTENSION_USER_CANCELED]="User canceled Chrome's screen sharing prompt",o[r.CHROME_EXTENSION_GENERIC_ERROR]="Unknown error from Chrome extension",o[r.ELECTRON_DESKTOP_PICKER_ERROR]="Unkown error from desktop picker",o[r.ELECTRON_DESKTOP_PICKER_NOT_FOUND]="Failed to detect desktop picker",o[r.GENERAL]="Generic getUserMedia error",o[r.PERMISSION_DENIED]="User denied permission to use device(s): ",o[r.NOT_FOUND]="Requested device(s) was/were not found: ",o[r.CONSTRAINT_FAILED]="Constraint could not be satisfied: ",o[r.TRACK_IS_DISPOSED]="Track has been already disposed",o[r.TRACK_NO_STREAM_FOUND]="Track does not have an associated Media Stream",a.prototype=Object.create(Error.prototype),a.prototype.constructor=a,t.a=a},function(e,t,n){"use strict";n.r(t),n.d(t,"LOCAL_TRACK_STOPPED",function(){return r}),n.d(t,"TRACK_AUDIO_LEVEL_CHANGED",function(){return i}),n.d(t,"TRACK_AUDIO_OUTPUT_CHANGED",function(){return o}),n.d(t,"TRACK_MUTE_CHANGED",function(){return a}),n.d(t,"TRACK_VIDEOTYPE_CHANGED",function(){return s}),n.d(t,"NO_DATA_FROM_SOURCE",function(){return c});var r="track.stopped",i="track.audioLevelsChanged",o="track.audioOutputChanged",a="track.trackMuteChanged",s="track.videoTypeChanged",c="track.no_data_from_source"},function(e,t,n){"use strict";n.r(t),n.d(t,"AUTHENTICATION_REQUIRED",function(){return r}),n.d(t,"CHAT_ERROR",function(){return i}),n.d(t,"CONFERENCE_DESTROYED",function(){return o}),n.d(t,"CONFERENCE_MAX_USERS",function(){return a}),n.d(t,"CONNECTION_ERROR",function(){return s}),n.d(t,"NOT_ALLOWED_ERROR",function(){return c}),n.d(t,"FOCUS_DISCONNECTED",function(){return u}),n.d(t,"FOCUS_LEFT",function(){return l}),n.d(t,"GRACEFUL_SHUTDOWN",function(){return d}),n.d(t,"INCOMPATIBLE_SERVER_VERSIONS",function(){return p}),n.d(t,"OFFER_ANSWER_FAILED",function(){return f}),n.d(t,"PASSWORD_NOT_SUPPORTED",function(){return h}),n.d(t,"PASSWORD_REQUIRED",function(){return m}),n.d(t,"RESERVATION_ERROR",function(){return v}),n.d(t,"SETUP_FAILED",function(){return y}),n.d(t,"VIDEOBRIDGE_NOT_AVAILABLE",function(){return g});var r="conference.authenticationRequired",i="conference.chatError",o="conference.destroyed",a="conference.max_users",s="conference.connectionError",c="conference.connectionError.notAllowed",u="conference.focusDisconnected",l="conference.focusLeft",d="conference.gracefulShutdown",p="conference.incompatible_server_versions",f="conference.offerAnswerFailed",h="conference.passwordNotSupported",m="conference.passwordRequired",v="conference.reservationError",y="conference.setup_failed",g="conference.videobridgeNotAvailable"},function(e,t,n){"use strict";n.d(t,"a",function(){return o});var r=n(6);function i(e,t){return(function(e){if(Array.isArray(e))return e})(e)||(function(e,t){var n=[],r=!0,i=!1,o=void 0;try{for(var a,s=e["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();!(r=(a=s.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(e){i=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(i)throw o}}return n})(e,t)||(function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")})()}function o(e){for(var t=e.split("\r\nm="),n=1,r=t.length;n2&&t.attrs({streams:a[2]}),t.up()}if(r.a.findLines(this.media[e],"a=fingerprint:",this.session).forEach(function(o){(n=r.a.parseFingerprint(o)).xmlns="urn:xmpp:jingle:apps:dtls:0",t.c("fingerprint").t(n.fingerprint),delete n.fingerprint,(o=r.a.findLine(i.media[e],"a=setup:",i.session))&&(n.setup=o.substr(8)),t.attrs(n),t.up()}),n=r.a.iceparams(this.media[e],this.session)){n.xmlns="urn:xmpp:jingle:transports:ice-udp:1",t.attrs(n);var s=r.a.findLines(this.media[e],"a=candidate:",this.session);s.length&&s.forEach(function(e){var n=r.a.candidateToJingle(e);i.failICE&&(n.ip="1.1.1.1");var o=n&&"string"==typeof n.protocol?n.protocol.toLowerCase():"";i.removeTcpCandidates&&("tcp"===o||"ssltcp"===o)||i.removeUdpCandidates&&"udp"===o||t.c("candidate",n).up()})}t.up()},o.prototype.rtcpFbToJingle=function(e,t,n){r.a.findLines(this.media[e],"a=rtcp-fb:".concat(n)).forEach(function(e){var n=r.a.parseRTCPFB(e);"trr-int"===n.type?(t.c("rtcp-fb-trr-int",{xmlns:"urn:xmpp:jingle:apps:rtp:rtcp-fb:0",value:n.params[0]}),t.up()):(t.c("rtcp-fb",{xmlns:"urn:xmpp:jingle:apps:rtp:rtcp-fb:0",type:n.type}),n.params.length>0&&t.attrs({subtype:n.params[0]}),t.up())})},o.prototype.rtcpFbFromJingle=function(e,t){var n="",r=e.find('>rtcp-fb-trr-int[xmlns="urn:xmpp:jingle:apps:rtp:rtcp-fb:0"]');return r.length&&(n+="a=rtcp-fb:* trr-int ",r.attr("value")?n+=r.attr("value"):n+="0",n+="\r\n"),(r=e.find('>rtcp-fb[xmlns="urn:xmpp:jingle:apps:rtp:rtcp-fb:0"]')).each(function(){n+="a=rtcp-fb:".concat(t," ").concat($(this).attr("type")),$(this).attr("subtype")&&(n+=" ".concat($(this).attr("subtype"))),n+="\r\n"}),n},o.prototype.fromJingle=function(e){var t=this;this.raw="v=0\r\no=- 1923518516 2 IN IP4 0.0.0.0\r\ns=-\r\nt=0 0\r\n";var n=$(e).find('>group[xmlns="urn:xmpp:jingle:apps:grouping:0"]');n.length&&n.each(function(e,n){var r=$(n).find(">content").map(function(e,t){return t.getAttribute("name")}).get();r.length>0&&(t.raw+="a=group:".concat(n.getAttribute("semantics")||n.getAttribute("type")," ").concat(r.join(" "),"\r\n"))}),this.session=this.raw,e.find(">content").each(function(){var e=t.jingle2media($(this));t.media.push(e)}),this.raw=this.session+this.media.join("")},o.prototype.jingle2media=function(e){var t=e.find("description"),n="",i=this,o=e.find('>transport>sctpmap[xmlns="urn:xmpp:jingle:transports:dtls-sctp:1"]'),a={media:t.attr("media"),port:"1"};if("rejected"===e.attr("senders")&&(a.port="0"),e.find(">transport>fingerprint").length||t.find("encryption").length?a.proto=o.length?"DTLS/SCTP":"RTP/SAVPF":a.proto="RTP/AVPF",o.length){n+="m=application ".concat(a.port," DTLS/SCTP ").concat(o.attr("number"),"\r\n"),n+="a=sctpmap:".concat(o.attr("number")," ").concat(o.attr("protocol"));var s=o.attr("streams");n+=s?" ".concat(s,"\r\n"):"\r\n"}else a.fmt=t.find("payload-type").map(function(){return this.getAttribute("id")}).get(),n+="".concat(r.a.buildMLine(a),"\r\n");switch(n+="c=IN IP4 0.0.0.0\r\n",o.length||(n+="a=rtcp:1 IN IP4 0.0.0.0\r\n"),(a=e.find('>transport[xmlns="urn:xmpp:jingle:transports:ice-udp:1"]')).length&&(a.attr("ufrag")&&(n+="".concat(r.a.buildICEUfrag(a.attr("ufrag")),"\r\n")),a.attr("pwd")&&(n+="".concat(r.a.buildICEPwd(a.attr("pwd")),"\r\n")),a.find(">fingerprint").each(function(){n+="a=fingerprint:".concat(this.getAttribute("hash")),n+=" ".concat($(this).text()),n+="\r\n",this.getAttribute("setup")&&(n+="a=setup:".concat(this.getAttribute("setup"),"\r\n"))})),e.attr("senders")){case"initiator":n+="a=sendonly\r\n";break;case"responder":n+="a=recvonly\r\n";break;case"none":n+="a=inactive\r\n";break;case"both":n+="a=sendrecv\r\n"}return n+="a=mid:".concat(e.attr("name"),"\r\n"),t.find("rtcp-mux").length&&(n+="a=rtcp-mux\r\n"),t.find("encryption").length&&t.find("encryption>crypto").each(function(){n+="a=crypto:".concat(this.getAttribute("tag")),n+=" ".concat(this.getAttribute("crypto-suite")),n+=" ".concat(this.getAttribute("key-params")),this.getAttribute("session-params")&&(n+=" ".concat(this.getAttribute("session-params"))),n+="\r\n"}),t.find("payload-type").each(function(){n+="".concat(r.a.buildRTPMap(this),"\r\n"),$(this).find(">parameter").length&&(n+="a=fmtp:".concat(this.getAttribute("id")," "),n+=$(this).find("parameter").map(function(){var e=this.getAttribute("name");return(e?"".concat(e,"="):"")+this.getAttribute("value")}).get().join("; "),n+="\r\n"),n+=i.rtcpFbFromJingle($(this),this.getAttribute("id"))}),n+=i.rtcpFbFromJingle(t,"*"),(a=t.find('>rtp-hdrext[xmlns="urn:xmpp:jingle:apps:rtp:rtp-hdrext:0"]')).each(function(){n+="a=extmap:".concat(this.getAttribute("id")," ").concat(this.getAttribute("uri"),"\r\n")}),e.find('>transport[xmlns="urn:xmpp:jingle:transports:ice-udp:1"]>candidate').each(function(){var e=this.getAttribute("protocol");e="string"==typeof e?e.toLowerCase():"",i.removeTcpCandidates&&("tcp"===e||"ssltcp"===e)||i.removeUdpCandidates&&"udp"===e||(i.failICE&&this.setAttribute("ip","1.1.1.1"),n+=r.a.candidateFromJingle(this))}),e.find('description>ssrc-group[xmlns="urn:xmpp:jingle:apps:rtp:ssma:0"]').each(function(){var e=this.getAttribute("semantics"),t=$(this).find(">source").map(function(){return this.getAttribute("ssrc")}).get();t.length&&(n+="a=ssrc-group:".concat(e," ").concat(t.join(" "),"\r\n"))}),(a=e.find('description>source[xmlns="urn:xmpp:jingle:apps:rtp:ssma:0"]')).each(function(){var e=this.getAttribute("ssrc");$(this).find(">parameter").each(function(){var t=this.getAttribute("name"),i=this.getAttribute("value");i=r.a.filterSpecialChars(i),n+="a=ssrc:".concat(e," ").concat(t),i&&i.length&&(n+=":".concat(i)),n+="\r\n"})}),n}},function(e,t,n){"use strict";var r={};n.r(r),n.d(r,"CHROME",function(){return a}),n.d(r,"OPERA",function(){return s}),n.d(r,"FIREFOX",function(){return c}),n.d(r,"INTERNET_EXPLORER",function(){return u}),n.d(r,"EDGE",function(){return l}),n.d(r,"SAFARI",function(){return d}),n.d(r,"NWJS",function(){return p}),n.d(r,"ELECTRON",function(){return f}),n.d(r,"REACT_NATIVE",function(){return h}),n.d(r,"UNKNOWN",function(){return m});var i=n(46),o=n.n(i),a="chrome",s="opera",c="firefox",u="iexplorer",l="edge",d="safari",p="nwjs",f="electron",h="react-native",m="unknown";function v(e,t){for(var n=0;n2&&(t=n[1],e=n[2]),t||(t="react-native"),e||(e="unknown"),{name:h,version:e}}function b(){for(var e,t=[_,g,S],n=0;n0&&void 0!==arguments[0]?arguments[0]:new i.a;!(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")})(this,e),this.eventEmitter=t,this.addEventListener=this.on=this.addListener,this.removeEventListener=this.off=this.removeListener}var t,n;return t=e,(n=[{key:"addListener",value:function(e,t){this.eventEmitter.addListener(e,t)}},{key:"removeListener",value:function(e,t){this.eventEmitter.removeListener(e,t)}}])&&o(t.prototype,n),e})()},function(e,t,n){"use strict";(function(e){var r,i,o=n(4),a=n(74),s=n.n(a),c=Object(o.getLogger)(e);function u(){var e;try{e=(window||this).localStorage}catch(e){c.error(e)}return e}function l(){return"".concat(Math.random().toString(16),"000000000").substr(2,8)}t.a={get callStatsUserName(){if(!r){var e=u();e&&(r=e.getItem("callStatsUserName")),r||(t=s.a.generateUsername(),c.log("generated callstats uid",t),r=t,e&&e.setItem("callStatsUserName",r))}var t;return r},get machineId(){if(!i){var e=u();e&&(i=e.getItem("jitsiMeetId")),i||(t=l()+l()+l()+l(),c.log("generated id",t),i=t,e&&e.setItem("jitsiMeetId",i))}var t;return i},get sessionId(){var e=u();return e?e.getItem("sessionId"):void 0},set sessionId(e){var t=u();t&&(e?t.setItem("sessionId",e):t.removeItem("sessionId"))}}}).call(this,"modules/settings/Settings.js")},function(e,t,n){"use strict";n.r(t),n.d(t,"LOCAL_STATS_UPDATED",function(){return r}),n.d(t,"REMOTE_STATS_UPDATED",function(){return i});var r="cq.local_stats_updated",i="cq.remote_stats_updated"},function(e,t,n){"use strict";n.d(t,"b",function(){return s}),n.d(t,"c",function(){return c}),n.d(t,"a",function(){return d});var r=n(22);function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){for(var n=0;n0&&s.length>o&&!s.warned){s.warned=!0;var u=new Error("Possible EventEmitter memory leak detected. "+s.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");u.name="MaxListenersExceededWarning",u.emitter=e,u.type=t,u.count=s.length,c=u,console&&console.warn&&console.warn(c)}return e}function p(){for(var e=[],t=0;t0&&(o=t[0]),o instanceof Error)throw o;var s=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw s.context=o,s}var c=i[e];if(void 0===c)return!1;if("function"==typeof c)a(c,this,t);else{var u=c.length,l=v(c,u);for(n=0;n=0;a--)if(n[a]===t||n[a].listener===t){s=n[a].listener,o=a;break}if(o<0)return this;0===o?n.shift():(function(e,t){for(;t+1=0;r--)this.removeListener(e,t[r]);return this},c.prototype.listeners=function(e){return h(this,e,!0)},c.prototype.rawListeners=function(e){return h(this,e,!1)},c.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):m.call(e,t)},c.prototype.listenerCount=m,c.prototype.eventNames=function(){return this._eventsCount>0?i(this._events):[]}},function(e,t){e.exports={1080:{width:1920,height:1080,order:8},fullhd:{width:1920,height:1080,order:8},720:{width:1280,height:720,order:7},hd:{width:1280,height:720,order:7},960:{width:960,height:720,order:6},540:{width:960,height:540,order:5},qhd:{width:960,height:540,order:5},360:{width:640,height:360,order:4},640:{width:640,height:480,order:3},vga:{width:640,height:480,order:3},180:{width:320,height:180,order:2},320:{width:320,height:240,order:1}}},function(e,t,n){"use strict";n.d(t,"c",function(){return r}),n.d(t,"a",function(){return i}),n.d(t,"b",function(){return o});var r="pending",i="active",o="ended"},function(e,t,n){"use strict";(function(e){n.d(t,"a",function(){return m});var r=n(3),i=n(11),o=n.n(i);function a(e,t){for(var n=0;n3?a-3:0),c=3;c0&&void 0!==arguments[0]?arguments[0]:function e(){u(this,e)})}t.b=l();var d=l(r.a)},function(e,t,n){"use strict";(function(e){n.d(t,"a",function(){return O}),n.d(t,"b",function(){return I}),n.d(t,"c",function(){return P});var r=n(4),i=n(1),o=(n(125),n(33)),a=n.n(o),s=n(36),c=n(21),u=n(3),l=n(78),d=n(81),p=n(88),f=n(89),h=n(90),m=n(91),v=n(92),y=n(24),g=n(93),S=n(11),_=n.n(S),b=n(0),E=n.n(b);function T(e){return(T="function"==typeof Symbol&&"symbol"==typeof("function"==typeof Symbol?Symbol.iterator:"@@iterator")?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==("function"==typeof Symbol?Symbol.prototype:"@@prototype")?"symbol":typeof e})(e)}function C(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:"/http-bind";e&&(t+="".concat(-1===t.indexOf("?")?"?":"&","token=").concat(e));var n=new i.Strophe.Connection(t);return n.maxRetries=3,n})(n,e.bosh),r._lastSuccessTracker=new v.a,r._lastSuccessTracker.startTracking(r.connection),r.caps=new g.a(r.connection,r.options.clientNode),r.initFeaturesList(),$(window).on("beforeunload unload",function(e){r.disconnect(e).catch(function(){})}),r}var n,r;return(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&A(e,t)})(t,y.a),n=t,(r=[{key:"initFeaturesList",value:function(){this.caps.addFeature("urn:xmpp:jingle:1"),this.caps.addFeature("urn:xmpp:jingle:apps:rtp:1"),this.caps.addFeature("urn:xmpp:jingle:transports:ice-udp:1"),this.caps.addFeature("urn:xmpp:jingle:apps:dtls:0"),this.caps.addFeature("urn:xmpp:jingle:transports:dtls-sctp:1"),this.caps.addFeature("urn:xmpp:jingle:apps:rtp:audio"),this.caps.addFeature("urn:xmpp:jingle:apps:rtp:video"),!this.options.disableRtx&&u.a.supportsRtx()&&this.caps.addFeature("urn:ietf:rfc:4588"),this.caps.addFeature("urn:ietf:rfc:5761"),this.caps.addFeature("urn:ietf:rfc:5888"),u.a.isChrome()&&!1!==this.options.enableLipSync&&(k.info("Lip-sync enabled !"),this.caps.addFeature("http://jitsi.org/meet/lipsync")),this.connection.rayo&&this.caps.addFeature("urn:xmpp:rayo:client:1")}},{key:"isPingSupported",value:function(){return!1!==this._pingSupported}},{key:"getConnection",value:function(){return this.connection}},{key:"connectionHandler",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=arguments.length>2?arguments[2]:void 0,o=window.performance.now(),a=i.Strophe.getStatusString(n).toLowerCase();if(this.connectionTimes[a]=o,k.log("(TIME) Strophe ".concat(a).concat(r?"[".concat(r,"]"):"",":\t"),o),this.eventEmitter.emit(E.a.CONNECTION_STATUS_CHANGED,t,n,r),n===i.Strophe.Status.CONNECTED||n===i.Strophe.Status.ATTACHED){(this.options.useStunTurn||this.options.p2p&&this.options.p2p.useStunTurn)&&this.connection.jingle.getStunAndTurnCredentials(),k.info("My Jabber ID: ".concat(this.connection.jid));var u=this.connection.domain;this.caps.getFeaturesAndIdentities(u).then(function(t){var n=t.features,r=t.identities;n.has(i.Strophe.NS.PING)?(e._pingSupported=!0,e.connection.ping.startInterval(u)):k.warn("Ping NOT supported by ".concat(u)),r.forEach(function(t){"speakerstats"===t.type&&(e.speakerStatsComponentAddress=t.name,e.connection.addHandler(e._onPrivateMessage.bind(e),null,"message",null,null))})}).catch(function(e){var t="Feature discovery error";_.a.callErrorHandler(new Error("".concat(t,": ").concat(e))),k.error(t,e)}),t.password&&(this.authenticatedUser=!0),this.connection&&this.connection.connected&&i.Strophe.getResourceFromJid(this.connection.jid)&&this.eventEmitter.emit(c.CONNECTION_ESTABLISHED,i.Strophe.getResourceFromJid(this.connection.jid))}else if(n===i.Strophe.Status.CONNFAIL)"x-strophe-bad-non-anon-jid"===r?this.anonymousConnectionFailed=!0:this.connectionFailed=!0,this.lastErrorMsg=r,"giving-up"===r&&this.eventEmitter.emit(c.CONNECTION_FAILED,s.OTHER_ERROR,r);else if(n===i.Strophe.Status.DISCONNECTED){this.connection.ping.stopInterval();var l=this.disconnectInProgress,d=r||this.lastErrorMsg;if(this.disconnectInProgress=!1,this.anonymousConnectionFailed)this.eventEmitter.emit(c.CONNECTION_FAILED,s.PASSWORD_REQUIRED);else if(this.connectionFailed)this.eventEmitter.emit(c.CONNECTION_FAILED,s.OTHER_ERROR,d,void 0,this._getConnectionFailedReasonDetails());else if(l)this.eventEmitter.emit(c.CONNECTION_DISCONNECTED,d);else{k.error("XMPP connection dropped!");var p=i.Strophe.getLastErrorStatus();p>=500&&p<600?this.eventEmitter.emit(c.CONNECTION_FAILED,s.SERVER_ERROR,d||"server-error",void 0,this._getConnectionFailedReasonDetails()):this.eventEmitter.emit(c.CONNECTION_FAILED,s.CONNECTION_DROPPED_ERROR,d||"connection-dropped-error",void 0,this._getConnectionFailedReasonDetails())}}else n===i.Strophe.Status.AUTHFAIL&&this.eventEmitter.emit(c.CONNECTION_FAILED,s.PASSWORD_REQUIRED,r,t)}},{key:"_connect",value:function(e,t){this.anonymousConnectionFailed=!1,this.connectionFailed=!1,this.lastErrorMsg=void 0,this.connection.connect(e,t,this.connectionHandler.bind(this,{jid:e,password:t}))}},{key:"attach",value:function(e){var t=this.connectionTimes.attaching=window.performance.now();k.log("(TIME) Strophe Attaching\t:".concat(t)),this.connection.attach(e.jid,e.sid,parseInt(e.rid,10)+1,this.connectionHandler.bind(this,{jid:e.jid,password:e.password}))}},{key:"connect",value:function(e,t){if(!e){var n=this.options.hosts,r=n.anonymousdomain,i=n.domain,o=r||i,a=window.location;if(r){var s=a&&a.search;(s&&-1!==s.indexOf("login=true")||this.token)&&(o=i)}e=o||a&&a.hostname}return this._connect(e,t)}},{key:"createRoom",value:function(e,t,n){var r="".concat(e,"@").concat(this.options.hosts.muc,"/"),i=n?n(this.connection.jid,this.authenticatedUser):a.a.randomHexString(8).toLowerCase();return k.info("JID ".concat(this.connection.jid," using MUC nickname ").concat(i)),r+=i,this.connection.emuc.createRoom(r,null,t)}},{key:"getJid",value:function(){return this.connection.jid}},{key:"getJingleLog",value:function(){var e=this.connection.jingle;return e?e.getLog():{}}},{key:"getXmppLog",value:function(){return(this.connection.logger||{}).log||null}},{key:"dial",value:function(){var e;(e=this.connection.rayo).dial.apply(e,arguments)}},{key:"ping",value:function(e){var t=this;return new Promise(function(n,r){t.isPingSupported()?t.connection.ping.ping(t.connection.domain,n,r,e):r("PING operation is not supported by the server")})}},{key:"getSessions",value:function(){return this.connection.jingle.sessions}},{key:"disconnect",value:function(e){var t=this;return this.disconnectInProgress||!this.connection?(this.eventEmitter.emit(c.WRONG_STATE),Promise.reject(new Error("Wrong connection state!"))):(this.disconnectInProgress=!0,new Promise(function(n){if(t.eventEmitter.on(E.a.CONNECTION_STATUS_CHANGED,function e(r,o){o===i.Strophe.Status.DISCONNECTED&&(n(),t.eventEmitter.removeListener(E.a.CONNECTION_STATUS_CHANGED,e))}),t.connection.flush(),null!=e){var r=e.type;if(("beforeunload"===r||"unload"===r)&&(t.connection.options.sync=!0,navigator.sendBeacon&&!t.connection.disconnecting&&t.connection.connected)){t.connection._changeConnectStatus(i.Strophe.Status.DISCONNECTING),t.connection.disconnecting=!0;var o=t.connection._proto._buildBody().attrs({type:"terminate"}),a=Object(i.$pres)({xmlns:i.Strophe.NS.CLIENT,type:"unavailable"});o.cnode(a.tree());var s=navigator.sendBeacon("https:".concat(t.connection.service),i.Strophe.serialize(o.tree()));return k.info("Successfully send unavailable beacon ".concat(s)),t.connection._proto._abortAllRequests(),void t.connection._doDisconnect()}}t.connection.disconnect(),!0!==t.connection.options.sync&&t.connection.flush()}))}},{key:"_initStrophePlugins",value:function(){var e={jvb:{iceServers:[]},p2p:{iceServers:[]}},t=this.options.p2p&&this.options.p2p.stunServers||O;Array.isArray(t)&&(k.info("P2P STUN servers: ",t),e.p2p.iceServers=t),this.options.p2p&&this.options.p2p.iceTransportPolicy&&(k.info("P2P ICE transport policy: ",this.options.p2p.iceTransportPolicy),e.p2p.iceTransportPolicy=this.options.p2p.iceTransportPolicy),Object(l.a)(this),Object(d.a)(this,this.eventEmitter,e),Object(p.a)(),Object(f.a)(this),Object(h.a)(),Object(m.a)()}},{key:"_getConnectionFailedReasonDetails",value:function(){var e={};if(this.options.deploymentInfo&&this.options.deploymentInfo.shard&&this.connection._proto&&this.connection._proto.lastResponseHeaders){var t={};this.connection._proto.lastResponseHeaders.trim().split(/[\r\n]+/).forEach(function(e){var n=e.split(": "),r=n.shift(),i=n.join(": ");t[r]=i}),e.shard_changed=this.options.deploymentInfo.shard!==t["x-jitsi-shard"]}return e.suspend_time=this.connection.ping.getPingSuspendTime(),e.time_since_last_success=this._lastSuccessTracker.getTimeSinceLastSuccess(),e}},{key:"sendDominantSpeakerEvent",value:function(e){if(this.speakerStatsComponentAddress&&e){var t=Object(i.$msg)({to:this.speakerStatsComponentAddress});t.c("speakerstats",{xmlns:"http://jitsi.org/jitmeet",room:e}).up(),this.connection.send(t)}}},{key:"tryParseJSONAndVerify",value:function(e){try{var t=JSON.parse(e);if(t&&"object"===T(t)){var n=t[I];if(void 0!==n)return t;k.debug("parsing valid json but does not have correct structure","topic: ",n)}}catch(e){return!1}return!1}},{key:"_onPrivateMessage",value:function(e){var t=e.getAttribute("from");if(this.speakerStatsComponentAddress&&t===this.speakerStatsComponentAddress){var n=$(e).find(">json-message").text(),r=this.tryParseJSONAndVerify(n);return r&&"speakerstats"===r[I]&&r.users&&this.eventEmitter.emit(E.a.SPEAKER_STATS_RECEIVED,r.users),!0}}}])&&C(n.prototype,r),t})()}).call(this,"modules/xmpp/xmpp.js")},function(e,t,n){"use strict";n.r(t),n.d(t,"CONNECTION_DROPPED_ERROR",function(){return r}),n.d(t,"OTHER_ERROR",function(){return i}),n.d(t,"PASSWORD_REQUIRED",function(){return o}),n.d(t,"SERVER_ERROR",function(){return a});var r="connection.droppedError",i="connection.otherError",o="connection.passwordRequired",a="connection.serverError"},function(e,t,n){"use strict";n.d(t,"a",function(){return r}),n.d(t,"b",function(){return i});var r="signaling.peerMuted",i="signaling.peerVideoType"},function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof("function"==typeof Symbol?Symbol.iterator:"@@iterator")?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==("function"==typeof Symbol?Symbol.prototype:"@@prototype")?"symbol":typeof e})(e)}var i=!0,o=!0,a={disableLog:function(e){return"boolean"!=typeof e?new Error("Argument type: "+r(e)+". Please use a boolean."):(i=e,e?"adapter.js logging disabled":"adapter.js logging enabled")},disableWarnings:function(e){return"boolean"!=typeof e?new Error("Argument type: "+r(e)+". Please use a boolean."):(o=!e,"adapter.js deprecation warnings "+(e?"disabled":"enabled"))},log:function(){if("object"===("undefined"==typeof window?"undefined":r(window))){if(i)return;"undefined"!=typeof console&&"function"==typeof console.log&&console.log.apply(console,arguments)}},deprecated:function(e,t){o&&console.warn(e+" is deprecated, please use "+t+" instead.")},extractVersion:function(e,t,n){var r=e.match(t);return r&&r.length>=n&&parseInt(r[n],10)},detectBrowser:function(e){var t=e&&e.navigator,n={browser:null,version:null};if(void 0===e||!e.navigator)return n.browser="Not a browser.",n;if(t.mozGetUserMedia)n.browser="firefox",n.version=this.extractVersion(t.userAgent,/Firefox\/(\d+)\./,1);else if(t.webkitGetUserMedia)if(e.webkitRTCPeerConnection)n.browser="chrome",n.version=this.extractVersion(t.userAgent,/Chrom(e|ium)\/(\d+)\./,2);else{if(!t.userAgent.match(/Version\/(\d+).(\d+)/))return n.browser="Unsupported webkit-based browser with GUM support but no WebRTC support.",n;n.browser="safari",n.version=this.extractVersion(t.userAgent,/AppleWebKit\/(\d+)\./,1)}else if(t.mediaDevices&&t.userAgent.match(/Edge\/(\d+).(\d+)$/))n.browser="edge",n.version=this.extractVersion(t.userAgent,/Edge\/(\d+).(\d+)$/,2);else{if(!t.mediaDevices||!t.userAgent.match(/AppleWebKit\/(\d+)\./))return n.browser="Not a supported browser.",n;n.browser="safari",n.version=this.extractVersion(t.userAgent,/AppleWebKit\/(\d+)\./,1)}return n}};e.exports={log:a.log,deprecated:a.deprecated,disableLog:a.disableLog,disableWarnings:a.disableWarnings,extractVersion:a.extractVersion,shimCreateObjectURL:a.shimCreateObjectURL,detectBrowser:a.detectBrowser.bind(a)}},function(e,t){e.exports={ENVIRONMENT:"environment",USER:"user"}},function(e,t,n){"use strict";(function(e){var r=n(15),i=n(12),o=n(3);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var s=n(4).getLogger(e),c=n(11),u=!1,l=!1,d=null,p={intChromeExtPromise:null,obtainStream:null,init:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{desktopSharingChromeDisabled:!1,desktopSharingChromeExtId:null,desktopSharingFirefoxDisabled:!1},t=arguments.length>1?arguments[1]:void 0;this.options=e,d=t,this.obtainStream=this._createObtainStreamMethod(e),this.obtainStream||s.info("Desktop sharing disabled")},_createObtainStreamMethod:function(e){var t=this;return o.a.isNWJS()?function(e,t,n){window.JitsiMeetNW.obtainDesktopStream(t,function(e,t){var o;o=e&&"InvalidStateError"===e.name?new r.a(i.CHROME_EXTENSION_USER_CANCELED):new r.a(e,t,["desktop"]),"function"==typeof n&&n(o)})}:o.a.isElectron()?this.obtainScreenOnElectron:o.a.isChrome()||o.a.isOpera()?o.a.supportsGetDisplayMedia()&&!e.desktopSharingChromeDisabled?this.obtainScreenFromGetDisplayMedia:e.desktopSharingChromeDisabled||!e.desktopSharingChromeExtId?null:(s.info("Using Chrome extension for desktop sharing"),this.intChromeExtPromise=(function(e){return(function(e){0===$("link[rel=chrome-webstore-item]").length&&$("head").append(''),$("link[rel=chrome-webstore-item]").attr("href",f(e))})(e),new Promise(function(t){h(function(e,n){u=e,l=n,s.info("Chrome extension installed: ".concat(u," updateRequired: ").concat(l)),t()},e)})})(e).then(function(){t.intChromeExtPromise=null}),this.obtainScreenFromExtension):o.a.isFirefox()?e.desktopSharingFirefoxDisabled?null:o.a.supportsGetDisplayMedia()?this.obtainScreenFromGetDisplayMedia:this.obtainScreenOnFirefox:o.a.isEdge()&&o.a.supportsGetDisplayMedia()?this.obtainScreenFromGetDisplayMedia:(s.log("Screen sharing not supported by the current browser: ",o.a.getName()),null)},isSupported:function(){return null!==this.obtainStream},obtainScreenOnFirefox:function(e,t,n){!(function(e,t,n){d(["screen"],e).then(function(e){return t({stream:e})},n)})(e.gumOptions,t,n)},obtainScreenOnElectron:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0,n=arguments.length>2?arguments[2]:void 0;if(window.JitsiMeetScreenObtainer&&window.JitsiMeetScreenObtainer.openDesktopPicker){var o=e.desktopSharingSources,a=e.gumOptions;window.JitsiMeetScreenObtainer.openDesktopPicker({desktopSharingSources:o||this.options.desktopSharingChromeSources},function(e,r){return m({response:{streamId:e,streamType:r},gumOptions:a},t,n)},function(e){return n(new r.a(i.ELECTRON_DESKTOP_PICKER_ERROR,e))})}else n(new r.a(i.ELECTRON_DESKTOP_PICKER_NOT_FOUND))},obtainScreenFromExtension:function(e,t,n){var o=this;if(null===this.intChromeExtPromise){var a=this.options,c=a.desktopSharingChromeExtId,d=a.desktopSharingChromeSources,p=e.gumOptions,f={desktopSharingChromeExtId:c,desktopSharingChromeSources:e.desktopSharingSources||d,gumOptions:p};u?(function(e,t,n){var o=f.desktopSharingChromeSources,a=f.desktopSharingChromeExtId,c=f.gumOptions;chrome.runtime.sendMessage(a,{getStream:!0,sources:o},function(e){if(e)s.log("Response from extension: ",e),m({response:e,gumOptions:c},t,n);else{var o=chrome.runtime.lastError;n(o instanceof Error?o:new r.a(i.CHROME_EXTENSION_GENERIC_ERROR,o))}})})(0,t,n):(l&&alert("Jitsi Desktop Streamer requires update. Changes will take effect after next Chrome restart."),this.handleExternalInstall(e,t,n))}else this.intChromeExtPromise.then(function(){o.obtainScreenFromExtension(e,t,n)})},handleExternalInstall:function(e,t,n,r){var i=f(this.options);e.listener("waitingForExtension",i),this.checkForChromeExtensionOnInterval(e,t,n,r)},checkForChromeExtensionOnInterval:function(e,t,n){var o=this;!1!==e.checkAgain()?(function(e,t,n){return new Promise(function(n,r){var i=1,o=window.setInterval(function(){h(function(e){e?(window.clearInterval(o),n()):0==--i&&(r(),window.clearInterval(o))},e)},t)})})(this.options,e.interval).then(function(){u=!0,e.listener("extensionFound"),o.obtainScreenFromExtension(e,t,n)}).catch(function(){o.checkForChromeExtensionOnInterval(e,t,n)}):n(new r.a(i.CHROME_EXTENSION_INSTALLATION_ERROR))},obtainScreenFromGetDisplayMedia:function(e,t,n){s.info("Using getDisplayMedia for screen sharing"),(navigator.getDisplayMedia?navigator.getDisplayMedia.bind(navigator):navigator.mediaDevices.getDisplayMedia.bind(navigator.mediaDevices))({video:!0}).then(function(n){(n&&n.getTracks()&&n.getTracks().length>0?n.getTracks()[0].applyConstraints(e.trackOptions):Promise.resolve()).then(function(){return t({stream:n,sourceId:n.id})})}).catch(function(){return n(new r.a(i.CHROME_EXTENSION_USER_CANCELED))})}};function f(e){return"https://chrome.google.com/webstore/detail/".concat(e.desktopSharingChromeExtId)}function h(e,t){"undefined"!=typeof chrome&&chrome&&chrome.runtime?chrome.runtime.sendMessage(t.desktopSharingChromeExtId,{getVersion:!0},function(n){if(!n||!n.version)return s.warn("Extension not installed?: ",chrome.runtime.lastError),void e(!1,!1);var r=n.version;s.log("Extension version is: ".concat(r));var i=(function(e,t){try{for(var n=e.split("."),r=t.split("."),i=Math.max(n.length,r.length),o=0;ou}return!1}catch(e){return c.callErrorHandler(e),s.error("Failed to parse extension version",e),!0}})(t.desktopSharingChromeMinExtVersion,r);e(!i,i)}):e(!1,!1)}function m(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{response:{},gumOptions:{}},t=arguments.length>1?arguments[1]:void 0,n=arguments.length>2?arguments[2]:void 0,o=e.response||{},s=o.streamId,c=o.streamType,u=o.error;if(s){var l=(function(e){for(var t=1;t=i}},{key:"refreshConnectionStatusForAll",value:function(){var e=this.conference.getParticipants(),t=!0,n=!1,r=void 0;try{for(var i,o=e["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();!(t=(i=o.next()).done);t=!0){var a=i.value;this.figureOutConnectionStatus(a.getId())}}catch(e){n=!0,r=e}finally{try{t||null==o.return||o.return()}finally{if(n)throw r}}}},{key:"figureOutConnectionStatus",value:function(t){var n=this.conference.getParticipantById(t);if(n){var r=this.conference.isP2PActive(),i=this._isRestoringTimedout(t),o=0===this.rtc.getLastN(),s=n.isVideoMuted()||o,c=this.isVideoTrackFrozen(n),u=this.rtc.isInLastN(t),l=this.connStatusFromJvb[t];"boolean"!=typeof l&&(v.debug("Assuming connection active by JVB - no notification"),l=!0);var d=r?e._getNewStateForP2PMode(s,c):e._getNewStateForJvbMode(l,u,i,s,c);d!==S.RESTORING&&this._clearRestoringTimer(t),v.debug("Figure out conn status for ".concat(t,", is video muted: ").concat(s," is active(jvb): ").concat(l," video track frozen: ").concat(c," p2p mode: ").concat(r," is in last N: ").concat(u," currentStatus => newStatus: ").concat(n.getConnectionStatus()," => ").concat(d));var f=this.connectionStatusMap[t]||{};if(!("p2p"in f&&"connectionStatus"in f&&f.p2p===r&&f.connectionStatus===d)){var h=Date.now();if(this.maybeSendParticipantConnectionStatusEvent(t,h),this.connectionStatusMap[t]=p({},f,{connectionStatus:d,p2p:r,startedMs:h}),!("videoType"in this.connectionStatusMap[t])){var m=n.getTracksByMediaType(a.b);Array.isArray(m)&&0!==m.length&&(this.connectionStatusMap[t].videoType=m[0].videoType)}}this._changeConnectionStatus(n,d)}else v.debug("figure out conn status - no participant for: ".concat(t))}},{key:"maybeSendParticipantConnectionStatusEvent",value:function(e,t){var n=this.connectionStatusMap[e];n&&"startedMs"in n&&"videoType"in n&&"connectionStatus"in n&&"p2p"in n&&(n.value=t-n.startedMs,l.a.sendAnalytics(Object(d.I)(n)))}},{key:"_onLastNChanged",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=Date.now();v.debug("leaving/entering lastN",e,t,n);var r=!0,i=!1,o=void 0;try{for(var a,s=e["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();!(r=(a=s.next()).done);r=!0){var c=a.value;this.enteredLastNTimestamp.delete(c),this._clearRestoringTimer(c),this.figureOutConnectionStatus(c)}}catch(e){i=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(i)throw o}}var u=!0,l=!1,d=void 0;try{for(var p,f=t["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();!(u=(p=f.next()).done);u=!0){var h=p.value;this.enteredLastNTimestamp.set(h,n),this.figureOutConnectionStatus(h)}}catch(e){l=!0,d=e}finally{try{u||null==f.return||f.return()}finally{if(l)throw d}}}},{key:"_clearRestoringTimer",value:function(e){var t=this.restoringTimers.get(e);t&&(clearTimeout(t),this.restoringTimers.delete(e))}},{key:"_isRestoringTimedout",value:function(e){var t=this,n=this.enteredLastNTimestamp.get(e);return!!(n&&Date.now()-n>=1e4)||(this.restoringTimers.get(e)||this.restoringTimers.set(e,setTimeout(function(){return t.figureOutConnectionStatus(e)},1e4)),!1)}},{key:"onUserLeft",value:function(e){this.maybeSendParticipantConnectionStatusEvent(e,Date.now()),delete this.connectionStatusMap[e]}},{key:"onTrackRtcMuted",value:function(e){var t=this,n=e.getParticipantId(),r=this.conference.getParticipantById(n);if(v.debug("Detector track RTC muted: ".concat(n),Date.now()),r){if(this.rtcMutedTimestamp[n]=Date.now(),!r.isVideoMuted()){this.clearTimeout(n);var i=this._getVideoFrozenTimeout(n);this.trackTimers[n]=window.setTimeout(function(){v.debug("Set RTC mute timeout for: ".concat(n," of ").concat(i," ms")),t.clearTimeout(n),t.figureOutConnectionStatus(n)},i)}}else v.error("No participant for id: ".concat(n))}},{key:"onTrackRtcUnmuted",value:function(e){var t=e.getParticipantId();v.debug("Detector track RTC unmuted: ".concat(t),Date.now()),this.clearTimeout(t),this.clearRtcMutedTimestamp(t),this.figureOutConnectionStatus(t)}},{key:"onSignallingMuteChanged",value:function(e){var t=e.getParticipantId();v.debug("Detector on track signalling mute changed: ".concat(t),e.isMuted()),this.figureOutConnectionStatus(t)}},{key:"onTrackVideoTypeChanged",value:function(e,t){var n=e.getParticipantId(),r=Date.now();this.maybeSendParticipantConnectionStatusEvent(n,r),this.connectionStatusMap[n]=p({},this.connectionStatusMap[n]||{},{videoType:t,startedMs:r})}}]),e})()}).call(this,"modules/connectivity/ParticipantConnectionStatus.js")},function(e,t,n){"use strict";t.a={getFocusRecordingUpdate:function(e){var t=e&&e.getElementsByTagName("jibri-recording-status")[0];if(t)return{error:t.getAttribute("failure_reason"),initiator:t.getAttribute("initiator"),recordingMode:t.getAttribute("recording_mode"),sessionID:t.getAttribute("session_id"),status:t.getAttribute("status")}},getHiddenDomainUpdate:function(e){var t=e.getElementsByTagName("live-stream-view-url")[0],n=t&&t.textContent,r=e.getElementsByTagName("mode")[0],i=r&&r.textContent&&r.textContent.toLowerCase(),o=e.getElementsByTagName("session_id")[0];return{liveStreamViewURL:n,mode:i,sessionID:o&&o.textContent}},getSessionIdFromIq:function(e){var t=e&&e.getElementsByTagName("jibri")[0];return t&&t.getAttribute("session_id")},getSessionId:function(e){var t=e.getElementsByTagName("session_id")[0];return t&&t.textContent},isFromFocus:function(e){return e.getAttribute("from").includes("focus")}}},function(e,t){function n(e){return(n="function"==typeof Symbol&&"symbol"==typeof("function"==typeof Symbol?Symbol.iterator:"@@iterator")?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==("function"==typeof Symbol?Symbol.prototype:"@@prototype")?"symbol":typeof e})(e)}var r;r=(function(){return this})();try{r=r||new Function("return this")()}catch(e){"object"===("undefined"==typeof window?"undefined":n(window))&&(r=window)}e.exports=r},function(e,t,n){"use strict";(function(e){n.d(t,"a",function(){return k});var r=n(7),i=n(4),o=n(1),a=n(82),s=n(83),c=n(31),u=n(18),l=n(47),d=n(6),p=n(84),f=n(8),h=n.n(f),m=n(5),v=n(0),y=n.n(v),g=n(86),S=n(11),_=n.n(S);function b(e){return(b="function"==typeof Symbol&&"symbol"==typeof("function"==typeof Symbol?Symbol.iterator:"@@iterator")?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==("function"==typeof Symbol?Symbol.prototype:"@@prototype")?"symbol":typeof e})(e)}function E(e,t){return!t||"object"!==b(t)&&"function"!=typeof t?(function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e})(e):t}function T(e){return(T=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function C(e,t){for(var n=0;ncontent[name="video"]');if(t.length){var n=t[0].getAttribute("senders");if("both"===n||"initiator"===n||"responder"===n||"none"===n)return n}return null}}]),R(t,[{key:"_assertNotEnded",value:function(){return this.state!==c.b}},{key:"doInitialize",value:function(e){var t=this;this.failICE=Boolean(e.failICE),this.lasticecandidate=!1,this.options=e,this.isReconnect=!1,this.wasstable=!1,this.webrtcIceUdpDisable=Boolean(e.webrtcIceUdpDisable),this.webrtcIceTcpDisable=Boolean(e.webrtcIceTcpDisable);var n={disableRtx:e.disableRtx};if(e.gatherStats&&(n.maxstats=300),n.capScreenshareBitrate=!1,this.isP2P){n.disableSimulcast=!0,n.disableH264=e.p2p&&e.p2p.disableH264,n.preferH264=e.p2p&&e.p2p.preferH264;var i=this._abtestSuspendVideoEnabled(e);void 0!==i&&(n.abtestSuspendVideo=i)}else n.disableSimulcast=e.disableSimulcast||e.preferH264&&!e.disableH264,n.preferH264=e.preferH264,n.enableFirefoxSimulcast=e.testing&&e.testing.enableFirefoxSimulcast,n.enableLayerSuspension=e.enableLayerSuspension,e.testing&&e.testing.capScreenshareBitrate&&"number"==typeof e.testing.capScreenshareBitrate&&(n.capScreenshareBitrate=Math.random()0){var s=d.a.iceparams(r.media[i],r.session);s.xmlns="urn:xmpp:jingle:transports:ice-udp:1",n.c("content",{creator:t.initiatorJid===t.localJid?"initiator":"responder",name:o[0].sdpMid?o[0].sdpMid:a.media}).c("transport",s);for(var c=0;ccontent>transport>candidate").each(function(e,t){var r=d.a.candidateFromJingle(t);r=r.replace("\r\n","").replace("a=","");var i=new RTCIceCandidate({sdpMLineIndex:0,sdpMid:"",candidate:r});n.push(i)}),n.length?(w.debug("Queued add (".concat(n.length,") ICE candidates task...")),this.modificationQueue.push(function(e){for(var r=0;rdescription>source[xmlns="urn:xmpp:jingle:apps:rtp:ssma:0"]').each(function(e,n){var r=Number(n.getAttribute("ssrc"));t.isP2P?t.signalingLayer.setSSRCOwner(r,o.Strophe.getResourceFromJid(t.remoteJid)):$(n).find('>ssrc-info[xmlns="http://jitsi.org/jitmeet"]').each(function(e,n){var i=n.getAttribute("owner");i&&i.length&&(isNaN(r)||r<0?w.warn("Invalid SSRC ".concat(r," value received")+" for ".concat(i)):t.signalingLayer.setSSRCOwner(r,o.Strophe.getResourceFromJid(i)))})})}},{key:"generateRecvonlySsrc",value:function(){this.peerconnection?this.peerconnection.generateRecvonlySsrc():w.error("Unable to generate recvonly SSRC - no peerconnection")}},{key:"acceptOffer",value:function(e,t,n,r){var i=this;this.setOfferAnswerCycle(e,function(){i.sendSessionAccept(t,n)},n,r)}},{key:"invite",value:function(e){var t=this;if(!this.isInitiator)throw new Error("Trying to invite from the responder session");this.modificationQueue.push(function(n){var r=!0,i=!1,o=void 0;try{for(var a,s=e["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();!(r=(a=s.next()).done);r=!0){var c=a.value;t.peerconnection.addTrack(c)}}catch(e){i=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(i)throw o}}t.peerconnection.createOffer(t.mediaConstraints).then(function(e){t.peerconnection.setLocalDescription(e).then(function(){t.sendSessionInitiate(t.peerconnection.localDescription.sdp),n()},function(t){w.error("Failed to set local SDP",t,e),n(t)})},function(e){w.error("Failed to create an offer",e,t.mediaConstraints),n(e)})},function(e){e?w.error("invite error",e):w.debug("invite executed - OK")})}},{key:"sendSessionInitiate",value:function(e){var t=Object(o.$iq)({to:this.remoteJid,type:"set"}).c("jingle",{xmlns:"urn:xmpp:jingle:1",action:"session-initiate",initiator:this.initiatorJid,sid:this.sid});new u.a(e).toJingle(t,this.isInitiator?"initiator":"responder"),t=t.tree(),w.info("Session-initiate: ",t),this.connection.sendIQ(t,function(){w.info('Got RESULT for "session-initiate"')},function(e){w.error('"session-initiate" error',e)},1e4)}},{key:"setAnswer",value:function(e){if(!this.isInitiator)throw new Error("Trying to set an answer on the responder session");this.setOfferAnswerCycle(e,function(){w.info("setAnswer - succeeded")},function(e){w.error("setAnswer failed: ",e)})}},{key:"setOfferAnswerCycle",value:function(e,t,n,r){var i=this;this.modificationQueue.push(function(t){if(r){var n=!0,o=!1,a=void 0;try{for(var s,l=r["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();!(n=(s=l.next()).done);n=!0){var d=s.value;i.peerconnection.addTrack(d)}}catch(e){o=!0,a=e}finally{try{n||null==l.return||l.return()}finally{if(o)throw a}}}var p=i._processNewJingleOfferIq(e),f=i.peerconnection.localDescription.sdp,h=$(e).find('>bridge-session[xmlns="http://jitsi.org/protocol/focus"]').attr("id");h!==i._bridgeSessionId&&(i._bridgeSessionId=h),i._renegotiate(p.raw).then(function(){if(i.state===c.c&&(i.state=c.a,i.isP2P&&!i._localVideoActive&&i.sendContentModify(i._localVideoActive)),f){var e=new u.a(i.peerconnection.localDescription.sdp);i.notifyMySSRCUpdate(new u.a(f),e)}t()},function(e){w.error("Error renegotiating after setting new remote ".concat(i.isInitiator?"answer: ":"offer: ").concat(e),p),t(e)})},function(e){e?n(e):t()})}},{key:"replaceTransport",value:function(e,t,n){var r=this;this.room.eventEmitter.emit(y.a.ICE_RESTARTING,this);var i=e.clone();e.find(">content[name='data']").attr("senders","rejected"),e.find(">content>description>source").remove(),e.find(">content>description>ssrc-group").remove();var o=e.find(">content>transport>fingerprint");o.attr("hash","sha-1"),o.text("00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00"),this.setOfferAnswerCycle(e,function(){r.setOfferAnswerCycle(i,function(){var e=new u.a(r.peerconnection.localDescription.sdp);r.sendTransportAccept(e,t,n),r.room.eventEmitter.emit(y.a.ICE_RESTART_SUCCESS,r,i)},n)},n)}},{key:"sendSessionAccept",value:function(e,t){var n=this,r=new u.a(this.peerconnection.localDescription.sdp),i=Object(o.$iq)({to:this.remoteJid,type:"set"}).c("jingle",{xmlns:"urn:xmpp:jingle:1",action:"session-accept",initiator:this.initiatorJid,responder:this.responderJid,sid:this.sid});this.webrtcIceTcpDisable&&(r.removeTcpCandidates=!0),this.webrtcIceUdpDisable&&(r.removeUdpCandidates=!0),this.failICE&&(r.failICE=!0),r.toJingle(i,this.initiatorJid===this.localJid?"initiator":"responder",null),i=i.tree(),w.info("Sending session-accept",i),this.connection.sendIQ(i,e,this.newJingleErrorHandler(i,function(e){t(e),n.room.eventEmitter.emit(y.a.SESSION_ACCEPT_TIMEOUT,n)}),1e4)}},{key:"sendContentModify",value:function(e){var t=e?"both":"none",n=Object(o.$iq)({to:this.remoteJid,type:"set"}).c("jingle",{xmlns:"urn:xmpp:jingle:1",action:"content-modify",initiator:this.initiatorJid,sid:this.sid}).c("content",{name:"video",senders:t});w.info("Sending content-modify, video senders: ".concat(t)),this.connection.sendIQ(n,null,this.newJingleErrorHandler(n),1e4)}},{key:"sendTransportAccept",value:function(e,t,n){var r=this,i=Object(o.$iq)({to:this.remoteJid,type:"set"}).c("jingle",{xmlns:"urn:xmpp:jingle:1",action:"transport-accept",initiator:this.initiatorJid,sid:this.sid});e.media.forEach(function(t,n){var o=d.a.parseMLine(t.split("\r\n")[0]);i.c("content",{creator:r.initiatorJid===r.localJid?"initiator":"responder",name:o.media}),e.transportToJingle(n,i),i.up()}),i=i.tree(),w.info("Sending transport-accept: ",i),this.connection.sendIQ(i,t,this.newJingleErrorHandler(i,n),1e4)}},{key:"sendTransportReject",value:function(e,t){var n=Object(o.$iq)({to:this.remoteJid,type:"set"}).c("jingle",{xmlns:"urn:xmpp:jingle:1",action:"transport-reject",initiator:this.initiatorJid,sid:this.sid});n=n.tree(),w.info("Sending 'transport-reject",n),this.connection.sendIQ(n,e,this.newJingleErrorHandler(n,t),1e4)}},{key:"terminate",value:function(e,t,n){if(this.state!==c.b){if(!n||Boolean(n.sendSessionTerminate)){var r=Object(o.$iq)({to:this.remoteJid,type:"set"}).c("jingle",{xmlns:"urn:xmpp:jingle:1",action:"session-terminate",initiator:this.initiatorJid,sid:this.sid}).c("reason").c(n&&n.reason||"success");n&&n.reasonDescription&&r.up().c("text").t(n.reasonDescription),r=r.tree(),w.info("Sending session-terminate",r),this.connection.sendIQ(r,e,this.newJingleErrorHandler(r,t),1e4)}else w.info("Skipped sending session-terminate for ".concat(this));this.connection.jingle.terminate(this.sid)}}},{key:"onTerminated",value:function(e,t){w.info("Session terminated ".concat(this),e,t),this.close()}},{key:"_parseSsrcInfoFromSourceAdd",value:function(e,t){var n=[];return $(e).each(function(e,r){var i=$(r).attr("name"),o="";$(r).find('ssrc-group[xmlns="urn:xmpp:jingle:apps:rtp:ssma:0"]').each(function(){var e=this.getAttribute("semantics"),t=$(this).find(">source").map(function(){return this.getAttribute("ssrc")}).get();t.length&&(o+="a=ssrc-group:".concat(e," ").concat(t.join(" "),"\r\n"))}),$(r).find('source[xmlns="urn:xmpp:jingle:apps:rtp:ssma:0"]').each(function(){var e=$(this).attr("ssrc");t.containsSSRC(e)?w.warn("Source-add request for existing SSRC: ".concat(e)):$(this).find(">parameter").each(function(){o+="a=ssrc:".concat(e," ").concat($(this).attr("name")),$(this).attr("value")&&$(this).attr("value").length&&(o+=":".concat($(this).attr("value"))),o+="\r\n"})}),t.media.forEach(function(e,t){d.a.findLine(e,"a=mid:".concat(i))&&(n[t]||(n[t]=""),n[t]+=o)})}),n}},{key:"addRemoteStream",value:function(e){this._addOrRemoveRemoteStream(!0,e)}},{key:"removeRemoteStream",value:function(e){this._addOrRemoveRemoteStream(!1,e)}},{key:"_addOrRemoveRemoteStream",value:function(e,t){var n=this,r=e?"addRemoteStream":"removeRemoteStream";e&&this.readSsrcInfo(t),this.modificationQueue.push(function(i){if(!n.peerconnection.localDescription||!n.peerconnection.localDescription.sdp){var o="".concat(r," - localDescription not ready yet");return w.error(o),void i(o)}w.log("Processing ".concat(r)),w.log("ICE connection state: ",n.peerconnection.iceConnectionState);var a=new u.a(n.peerconnection.localDescription.sdp),s=new u.a(n.peerconnection.remoteDescription.sdp),c=e?n._parseSsrcInfoFromSourceAdd(t,s):n._parseSsrcInfoFromSourceRemove(t,s),l=e?n._processRemoteAddSource(c):n._processRemoteRemoveSource(c);n._renegotiate(l.raw).then(function(){var e=new u.a(n.peerconnection.localDescription.sdp);w.log("".concat(r," - OK, SDPs: "),a,e),n.notifyMySSRCUpdate(a,e),i()},function(e){w.error("".concat(r," failed:"),e),i(e)})})}},{key:"_processNewJingleOfferIq",value:function(e){var t=new u.a("");return this.webrtcIceTcpDisable&&(t.removeTcpCandidates=!0),this.webrtcIceUdpDisable&&(t.removeUdpCandidates=!0),this.failICE&&(t.failICE=!0),t.fromJingle(e),this.readSsrcInfo($(e).find(">content")),t}},{key:"_processRemoteRemoveSource",value:function(e){var t=new u.a(this.peerconnection.remoteDescription.sdp);return e.forEach(function(e,n){(e=e.split("\r\n")).pop(),e.forEach(function(e){t.media[n]=t.media[n].replace("".concat(e,"\r\n"),"")})}),t.raw=t.session+t.media.join(""),t}},{key:"_processRemoteAddSource",value:function(e){var t=new u.a(this.peerconnection.remoteDescription.sdp);return e.forEach(function(e,n){t.media[n]+=e}),t.raw=t.session+t.media.join(""),t}},{key:"_renegotiate",value:function(e){if("closed"===this.peerconnection.signalingState){var t=new Error("Attempted to renegotiate in state closed");return this.room.eventEmitter.emit(y.a.RENEGOTIATION_FAILED,t,this),Promise.reject(t)}var n=e||this.peerconnection.remoteDescription.sdp;if(!n){var r=new Error("Can not renegotiate without remote description, current state: ".concat(this.state));return this.room.eventEmitter.emit(y.a.RENEGOTIATION_FAILED,r,this),Promise.reject(r)}var i=new RTCSessionDescription({type:this.isInitiator?"answer":"offer",sdp:n});return this.isInitiator?this._initiatorRenegotiate(i):this._responderRenegotiate(i)}},{key:"_responderRenegotiate",value:function(e){var t=this;return w.debug("Renegotiate: setting remote description"),this.peerconnection.setRemoteDescription(e).then(function(){return w.debug("Renegotiate: creating answer"),t.peerconnection.createAnswer(t.mediaConstraints).then(function(e){return w.debug("Renegotiate: setting local description"),t.peerconnection.setLocalDescription(e)})})}},{key:"_initiatorRenegotiate",value:function(e){var t=this;return"have-local-offer"===this.peerconnection.signalingState?(w.debug("Renegotiate: setting remote description"),this.peerconnection.setRemoteDescription(e).then(function(){return t._initiatorRenegotiate(e)})):(w.debug("Renegotiate: creating offer"),this.peerconnection.createOffer(this.mediaConstraints).then(function(n){return w.debug("Renegotiate: setting local description"),t.peerconnection.setLocalDescription(n).then(function(){return w.debug("Renegotiate: setting remote description"),t.peerconnection.setRemoteDescription(e)})}))}},{key:"replaceTrack",value:function(e,t){var n=this,r=function(r){var i=n.peerconnection.localDescription.sdp;n.peerconnection.options.capScreenshareBitrate&&e&&t&&t.isVideoTrack()&&n.peerconnection.clearRecvonlySsrc(),!e&&t&&t.isVideoTrack()?n.peerconnection.clearRecvonlySsrc():e&&e.isVideoTrack()&&!t&&(n.peerconnection.clearRecvonlySsrc(),n.peerconnection.generateRecvonlySsrc()),n.peerconnection.replaceTrack(e,t).then(function(o){o&&(e||t)&&n.state===c.a?n._renegotiate().then(function(){var e=new u.a(n.peerconnection.localDescription.sdp);n.notifyMySSRCUpdate(new u.a(i),e),t&&!n.isP2P&&n.peerconnection.setMaxBitRate(t),r()},r):r()})};return new Promise(function(e,t){n.modificationQueue.push(r,function(n){n?(w.error("Replace track error:",n),t(n)):(w.info("Replace track done!"),e())})})}},{key:"_parseSsrcInfoFromSourceRemove",value:function(e,t){var n=[];return $(e).each(function(e,r){var i=$(r).attr("name"),o="";$(r).find('ssrc-group[xmlns="urn:xmpp:jingle:apps:rtp:ssma:0"]').each(function(){var e=this.getAttribute("semantics"),t=$(this).find(">source").map(function(){return this.getAttribute("ssrc")}).get();t.length&&(o+="a=ssrc-group:".concat(e," ").concat(t.join(" "),"\r\n"))});var a=[];$(r).find('source[xmlns="urn:xmpp:jingle:apps:rtp:ssma:0"]').each(function(){var e=$(this).attr("ssrc");a.push(e)}),t.media.forEach(function(e,t){d.a.findLine(e,"a=mid:".concat(i))&&(n[t]||(n[t]=""),a.forEach(function(r){var i=d.a.findLines(e,"a=ssrc:".concat(r));i.length&&(n[t]+="".concat(i.join("\r\n"),"\r\n"))}),n[t]+=o)})}),n}},{key:"_verifyNoSSRCChanged",value:function(e,t){var n=new u.a(this.peerconnection.localDescription.sdp),r=new l.a(t,n),i=r.getNewMedia();if(Object.keys(i).length)return w.error("".concat(this," - some SSRC were added on ").concat(e),i),!1;var o=(r=new l.a(n,t)).getNewMedia();return!Object.keys(o).length||(w.error("".concat(this," - some SSRCs were removed on ").concat(e),o),!1)}},{key:"addTrackAsUnmute",value:function(e){return this._addRemoveTrackAsMuteUnmute(!1,e)}},{key:"removeTrackAsMute",value:function(e){return this._addRemoveTrackAsMuteUnmute(!0,e)}},{key:"_addRemoveTrackAsMuteUnmute",value:function(e,t){var n=this;if(!t)return Promise.reject('invalid "track" argument value');var r=e?"removeTrackMute":"addTrackUnmute",i=function(i){var o=n.peerconnection;if(o){var a=o.localDescription.sdp;(e?o.removeTrackMute.bind(o,t):o.addTrackUnmute.bind(o,t))()?a&&o.remoteDescription.sdp?n._renegotiate().then(function(){n._verifyNoSSRCChanged(r,new u.a(a)),i()},i):i():i("".concat(r," failed!"))}else i("Error: tried ".concat(r," track with no active peer")+"connection")};return new Promise(function(e,t){n.modificationQueue.push(i,function(n){n?t(n):e()})})}},{key:"setMediaTransferActive",value:function(e,t){var n=this;if(!this.peerconnection)return Promise.reject('Can not modify transfer active state, before "initialize" is called');var r=e?"audio active":"audio inactive",i=t?"video active":"video inactive";w.info("Queued make ".concat(i,", ").concat(r," task..."));var o=function(r){var i=n.state===c.a,o=n.peerconnection.setAudioTransferActive(e);n._localVideoActive!==t&&(n._localVideoActive=t,n.isP2P&&i&&n.sendContentModify(t));var a=n.peerconnection.setVideoTransferActive(n._localVideoActive&&n._remoteVideoActive);i&&(o||a)?n._renegotiate().then(r,r):r()};return new Promise(function(e,t){n.modificationQueue.push(o,function(n){n?t(n):e()})})}},{key:"modifyContents",value:function(e){var n=this,r=t.parseVideoSenders(e);null!==r?(w.debug("".concat(this,' queued "content-modify" task')+'(video senders="'.concat(r,'")')),this.modificationQueue.push(function(e){n._assertNotEnded("content-modify")&&n._modifyRemoteVideoActive(r)?n._renegotiate().then(e,e):e()},function(e){e&&w.error('"content-modify" failed',e)})):w.error("".concat(this,' - failed to parse video "senders" attribute in')+'"content-modify" action')}},{key:"_modifyRemoteVideoActive",value:function(e){var t="both"===e||"initiator"===e&&this.isInitiator||"responder"===e&&!this.isInitiator;return t!==this._remoteVideoActive&&(w.debug("".concat(this," new remote video active: ").concat(t)),this._remoteVideoActive=t),this.peerconnection.setVideoTransferActive(this._localVideoActive&&this._remoteVideoActive)}},{key:"notifyMySSRCUpdate",value:function(e,t){if(this.state===c.a){var n=new l.a(t,e),r=Object(o.$iq)({to:this.remoteJid,type:"set"}).c("jingle",{xmlns:"urn:xmpp:jingle:1",action:"source-remove",initiator:this.initiatorJid,sid:this.sid});n.toJingle(r)?(w.info("Sending source-remove",r.tree()),this.connection.sendIQ(r,null,this.newJingleErrorHandler(r),1e4)):w.log("removal not necessary"),n=new l.a(e,t);var i=Object(o.$iq)({to:this.remoteJid,type:"set"}).c("jingle",{xmlns:"urn:xmpp:jingle:1",action:"source-add",initiator:this.initiatorJid,sid:this.sid});n.toJingle(i)?(w.info("Sending source-add",i.tree()),this.connection.sendIQ(i,null,this.newJingleErrorHandler(i),1e4)):w.log("addition not necessary")}else w.warn("Skipping SSRC update in '".concat(this.state," ' state."))}},{key:"newJingleErrorHandler",value:function(e,t){var n=this;return function(e){var r={},i=$(e).find("error");if(i.length){r.code=i.attr("code");var o=$(e).find("error :first");o.length&&(r.reason=o[0].tagName);var a=i.find(">text");a.length&&(r.msg=a.text())}e||(r.reason="timeout"),r.session=n.toString(),t?t(r):n.state===c.b&&"item-not-found"===r.reason?w.debug("Jingle error: ".concat(JSON.stringify(r))):_.a.callErrorHandler(new Error("Jingle error: ".concat(JSON.stringify(r))))}}},{key:"getIceConnectionState",value:function(){return this.peerconnection.iceConnectionState}},{key:"close",value:function(){var e=this;this.state=c.b,this.establishmentDuration=void 0,this.peerconnection&&(this.peerconnection.onicecandidate=null,this.peerconnection.oniceconnectionstatechange=null,this.peerconnection.onnegotiationneeded=null,this.peerconnection.onsignalingstatechange=null),this.modificationQueue.clear(),this.modificationQueue.push(function(t){e.signalingLayer.setChatRoom(null),e.peerconnection&&e.peerconnection.close(),t()}),this.modificationQueue.shutdown()}},{key:"toString",value:function(){return"JingleSessionPC[p2p=".concat(this.isP2P,",")+"initiator=".concat(this.isInitiator,",sid=").concat(this.sid,"]")}},{key:"_abtestSuspendVideoEnabled",value:function(e){var t=e.abTesting;if(t&&t.enableSuspendVideoTest){var n=this._getInitiatorJid();return Object(a.integerHash)(n)%2==0}}}]),t})()}).call(this,"modules/xmpp/JingleSessionPC.js")},function(e,t,n){"use strict";n.r(t),n.d(t,"DEVICE_LIST_CHANGED",function(){return r}),n.d(t,"PERMISSION_PROMPT_IS_SHOWN",function(){return i});var r="mediaDevices.devicechange",i="mediaDevices.permissionPromptIsShown"},function(e,t,n){var r;r=function(){var e=!0;function t(t){function n(e){var n=t.match(e);return n&&n.length>1&&n[1]||""}function r(e){var n=t.match(e);return n&&n.length>1&&n[2]||""}var i,o=n(/(ipod|iphone|ipad)/i).toLowerCase(),a=!/like android/i.test(t)&&/android/i.test(t),s=/nexus\s*[0-6]\s*/i.test(t),c=!s&&/nexus\s*[0-9]+/i.test(t),u=/CrOS/.test(t),l=/silk/i.test(t),d=/sailfish/i.test(t),p=/tizen/i.test(t),f=/(web|hpw)os/i.test(t),h=/windows phone/i.test(t),m=(/SamsungBrowser/i.test(t),!h&&/windows/i.test(t)),v=!o&&!l&&/macintosh/i.test(t),y=!a&&!d&&!p&&!f&&/linux/i.test(t),g=r(/edg([ea]|ios)\/(\d+(\.\d+)?)/i),S=n(/version\/(\d+(\.\d+)?)/i),_=/tablet/i.test(t)&&!/tablet pc/i.test(t),b=!_&&/[^-]mobi/i.test(t),E=/xbox/i.test(t);/opera/i.test(t)?i={name:"Opera",opera:e,version:S||n(/(?:opera|opr|opios)[\s\/](\d+(\.\d+)?)/i)}:/opr\/|opios/i.test(t)?i={name:"Opera",opera:e,version:n(/(?:opr|opios)[\s\/](\d+(\.\d+)?)/i)||S}:/SamsungBrowser/i.test(t)?i={name:"Samsung Internet for Android",samsungBrowser:e,version:S||n(/(?:SamsungBrowser)[\s\/](\d+(\.\d+)?)/i)}:/coast/i.test(t)?i={name:"Opera Coast",coast:e,version:S||n(/(?:coast)[\s\/](\d+(\.\d+)?)/i)}:/yabrowser/i.test(t)?i={name:"Yandex Browser",yandexbrowser:e,version:S||n(/(?:yabrowser)[\s\/](\d+(\.\d+)?)/i)}:/ucbrowser/i.test(t)?i={name:"UC Browser",ucbrowser:e,version:n(/(?:ucbrowser)[\s\/](\d+(?:\.\d+)+)/i)}:/mxios/i.test(t)?i={name:"Maxthon",maxthon:e,version:n(/(?:mxios)[\s\/](\d+(?:\.\d+)+)/i)}:/epiphany/i.test(t)?i={name:"Epiphany",epiphany:e,version:n(/(?:epiphany)[\s\/](\d+(?:\.\d+)+)/i)}:/puffin/i.test(t)?i={name:"Puffin",puffin:e,version:n(/(?:puffin)[\s\/](\d+(?:\.\d+)?)/i)}:/sleipnir/i.test(t)?i={name:"Sleipnir",sleipnir:e,version:n(/(?:sleipnir)[\s\/](\d+(?:\.\d+)+)/i)}:/k-meleon/i.test(t)?i={name:"K-Meleon",kMeleon:e,version:n(/(?:k-meleon)[\s\/](\d+(?:\.\d+)+)/i)}:h?(i={name:"Windows Phone",osname:"Windows Phone",windowsphone:e},g?(i.msedge=e,i.version=g):(i.msie=e,i.version=n(/iemobile\/(\d+(\.\d+)?)/i))):/msie|trident/i.test(t)?i={name:"Internet Explorer",msie:e,version:n(/(?:msie |rv:)(\d+(\.\d+)?)/i)}:u?i={name:"Chrome",osname:"Chrome OS",chromeos:e,chromeBook:e,chrome:e,version:n(/(?:chrome|crios|crmo)\/(\d+(\.\d+)?)/i)}:/edg([ea]|ios)/i.test(t)?i={name:"Microsoft Edge",msedge:e,version:g}:/vivaldi/i.test(t)?i={name:"Vivaldi",vivaldi:e,version:n(/vivaldi\/(\d+(\.\d+)?)/i)||S}:d?i={name:"Sailfish",osname:"Sailfish OS",sailfish:e,version:n(/sailfish\s?browser\/(\d+(\.\d+)?)/i)}:/seamonkey\//i.test(t)?i={name:"SeaMonkey",seamonkey:e,version:n(/seamonkey\/(\d+(\.\d+)?)/i)}:/firefox|iceweasel|fxios/i.test(t)?(i={name:"Firefox",firefox:e,version:n(/(?:firefox|iceweasel|fxios)[ \/](\d+(\.\d+)?)/i)},/\((mobile|tablet);[^\)]*rv:[\d\.]+\)/i.test(t)&&(i.firefoxos=e,i.osname="Firefox OS")):l?i={name:"Amazon Silk",silk:e,version:n(/silk\/(\d+(\.\d+)?)/i)}:/phantom/i.test(t)?i={name:"PhantomJS",phantom:e,version:n(/phantomjs\/(\d+(\.\d+)?)/i)}:/slimerjs/i.test(t)?i={name:"SlimerJS",slimer:e,version:n(/slimerjs\/(\d+(\.\d+)?)/i)}:/blackberry|\bbb\d+/i.test(t)||/rim\stablet/i.test(t)?i={name:"BlackBerry",osname:"BlackBerry OS",blackberry:e,version:S||n(/blackberry[\d]+\/(\d+(\.\d+)?)/i)}:f?(i={name:"WebOS",osname:"WebOS",webos:e,version:S||n(/w(?:eb)?osbrowser\/(\d+(\.\d+)?)/i)},/touchpad\//i.test(t)&&(i.touchpad=e)):/bada/i.test(t)?i={name:"Bada",osname:"Bada",bada:e,version:n(/dolfin\/(\d+(\.\d+)?)/i)}:p?i={name:"Tizen",osname:"Tizen",tizen:e,version:n(/(?:tizen\s?)?browser\/(\d+(\.\d+)?)/i)||S}:/qupzilla/i.test(t)?i={name:"QupZilla",qupzilla:e,version:n(/(?:qupzilla)[\s\/](\d+(?:\.\d+)+)/i)||S}:/chromium/i.test(t)?i={name:"Chromium",chromium:e,version:n(/(?:chromium)[\s\/](\d+(?:\.\d+)?)/i)||S}:/chrome|crios|crmo/i.test(t)?i={name:"Chrome",chrome:e,version:n(/(?:chrome|crios|crmo)\/(\d+(\.\d+)?)/i)}:a?i={name:"Android",version:S}:/safari|applewebkit/i.test(t)?(i={name:"Safari",safari:e},S&&(i.version=S)):o?(i={name:"iphone"==o?"iPhone":"ipad"==o?"iPad":"iPod"},S&&(i.version=S)):i=/googlebot/i.test(t)?{name:"Googlebot",googlebot:e,version:n(/googlebot\/(\d+(\.\d+))/i)||S}:{name:n(/^(.*)\/(.*) /),version:r(/^(.*)\/(.*) /)},!i.msedge&&/(apple)?webkit/i.test(t)?(/(apple)?webkit\/537\.36/i.test(t)?(i.name=i.name||"Blink",i.blink=e):(i.name=i.name||"Webkit",i.webkit=e),!i.version&&S&&(i.version=S)):!i.opera&&/gecko\//i.test(t)&&(i.name=i.name||"Gecko",i.gecko=e,i.version=i.version||n(/gecko\/(\d+(\.\d+)?)/i)),i.windowsphone||!a&&!i.silk?!i.windowsphone&&o?(i[o]=e,i.ios=e,i.osname="iOS"):v?(i.mac=e,i.osname="macOS"):E?(i.xbox=e,i.osname="Xbox"):m?(i.windows=e,i.osname="Windows"):y&&(i.linux=e,i.osname="Linux"):(i.android=e,i.osname="Android");var T="";i.windows?T=(function(e){switch(n(/Windows ((NT|XP)( \d\d?.\d)?)/i)){case"NT":return"NT";case"XP":return"XP";case"NT 5.0":return"2000";case"NT 5.1":return"XP";case"NT 5.2":return"2003";case"NT 6.0":return"Vista";case"NT 6.1":return"7";case"NT 6.2":return"8";case"NT 6.3":return"8.1";case"NT 10.0":return"10";default:return}})():i.windowsphone?T=n(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i):i.mac?T=(T=n(/Mac OS X (\d+([_\.\s]\d+)*)/i)).replace(/[_\s]/g,"."):o?T=(T=n(/os (\d+([_\s]\d+)*) like mac os x/i)).replace(/[_\s]/g,"."):a?T=n(/android[ \/-](\d+(\.\d+)*)/i):i.webos?T=n(/(?:web|hpw)os\/(\d+(\.\d+)*)/i):i.blackberry?T=n(/rim\stablet\sos\s(\d+(\.\d+)*)/i):i.bada?T=n(/bada\/(\d+(\.\d+)*)/i):i.tizen&&(T=n(/tizen[\/\s](\d+(\.\d+)*)/i)),T&&(i.osversion=T);var C=!i.windows&&T.split(".")[0];return _||c||"ipad"==o||a&&(3==C||C>=4&&!b)||i.silk?i.tablet=e:(b||"iphone"==o||"ipod"==o||a||s||i.blackberry||i.webos||i.bada)&&(i.mobile=e),i.msedge||i.msie&&i.version>=10||i.yandexbrowser&&i.version>=15||i.vivaldi&&i.version>=1||i.chrome&&i.version>=20||i.samsungBrowser&&i.version>=4||i.firefox&&i.version>=20||i.safari&&i.version>=6||i.opera&&i.version>=10||i.ios&&i.osversion&&i.osversion.split(".")[0]>=6||i.blackberry&&i.version>=10.1||i.chromium&&i.version>=20?i.a=e:i.msie&&i.version<10||i.chrome&&i.version<20||i.firefox&&i.version<20||i.safari&&i.version<6||i.opera&&i.version<10||i.ios&&i.osversion&&i.osversion.split(".")[0]<6||i.chromium&&i.version<20?i.c=e:i.x=e,i}var n=t("undefined"!=typeof navigator&&navigator.userAgent||"");function r(e){return e.split(".").length}function i(e,t){var n,r=[];if(Array.prototype.map)return Array.prototype.map.call(e,t);for(n=0;n=0;){if(n[0][t]>n[1][t])return 1;if(n[0][t]!==n[1][t])return-1;if(0===t)return 0}}function a(e,r,i){var a=n;"string"==typeof r&&(i=r,r=void 0),void 0===r&&(r=!1),i&&(a=t(i));var s=""+a.version;for(var c in e)if(e.hasOwnProperty(c)&&a[c]){if("string"!=typeof e[c])throw new Error("Browser version in the minVersion map should be a string: "+c+": "+String(e));return o([s,e[c]])<0}return r}return n.test=function(e){for(var t=0;t1)for(var n=1;n.2?i-.2:a<-.4?i+.4:r,parseFloat(o.toFixed(3))),t.callback(t.audioLevel))},this.intervalMilis)}},i.prototype.stop=function(){this.intervalId&&(clearInterval(this.intervalId),this.intervalId=null)},i.isLocalStatsSupported=function(){return Boolean(r)}},function(e,t,n){var r=n(123),i={loadScript:function(e,t,n,i,o,a){var s=document,c=s.createElement("script"),u=s.getElementsByTagName("script")[0];if(c.async=t,i){var l=r();if(l){var d=l.src,p=d.substring(0,d.lastIndexOf("/")+1);d&&p&&(e=p+e)}}o&&(c.onload=o),a&&(c.onerror=a),c.src=e,n?u.parentNode.insertBefore(c,u):u.parentNode.appendChild(c)}};e.exports=i},function(e,t,n){"use strict";n.r(t),n.d(t,"ON",function(){return r}),n.d(t,"OFF",function(){return i});var r="on",i="off"},function(e,t,n){"use strict";(function(e){n.d(t,"a",function(){return y});var r=n(29),i=n.n(r),o=n(4),a=n(16),s=n(9),c=n(10);function u(e){return(u="function"==typeof Symbol&&"symbol"==typeof("function"==typeof Symbol?Symbol.iterator:"@@iterator")?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==("function"==typeof Symbol?Symbol.prototype:"@@prototype")?"symbol":typeof e})(e)}function l(e,t){for(var n=0;n=0;--n){var r=t[n];e||(this._onTrackDetach(r),c.a.attachMediaStream(r,null)),e&&r!==e||t.splice(n,1)}e&&(this._onTrackDetach(e),c.a.attachMediaStream(e,null))}},{key:"_onTrackAttach",value:function(e){}},{key:"_onTrackDetach",value:function(e){}},{key:"_attachTTFMTracker",value:function(e){}},{key:"dispose",value:function(){return this.removeAllListeners(),this.disposed=!0,Promise.resolve()}},{key:"isScreenSharing",value:function(){}},{key:"getId",value:function(){return this.stream?c.a.getStreamID(this.stream):null}},{key:"isActive",value:function(){return void 0===this.stream.active||this.stream.active}},{key:"setAudioLevel",value:function(e,t){this.audioLevel!==e&&(this.audioLevel=e,this.emit(a.TRACK_AUDIO_LEVEL_CHANGED,e,t))}},{key:"getMSID",value:function(){var e=this.getStreamId(),t=this.getTrackId();return e&&t?"".concat(e," ").concat(t):null}},{key:"setAudioOutput",value:function(e){var t=this;return c.a.isDeviceChangeAvailable("output")?this.isVideoTrack()?Promise.resolve():Promise.all(this.containers.map(function(t){return t.setSinkId(e).catch(function(e){throw h.warn("Failed to change audio output device on element. Default or previously set audio output device will be used.",t,e),e})})).then(function(){t.emit(a.TRACK_AUDIO_OUTPUT_CHANGED,e)}):Promise.reject(new Error("Audio output device change is not supported"))}}])&&l(n.prototype,r),t})(i.a)}).call(this,"modules/RTC/JitsiTrack.js")},function(e,t,n){"use strict";function r(e){var t=e;return e>=Number.MAX_SAFE_INTEGER&&(t=0),t+1}n.d(t,"a",function(){return r})},function(e,t){function n(e,t){for(var n=0;n0}},{key:"setDominantSpeaker",value:function(e){if(!this.isDominantSpeaker()&&e)this._dominantSpeakerStart=Date.now();else if(this.isDominantSpeaker()&&!e){var t=Date.now()-this._dominantSpeakerStart;this.totalDominantSpeakerTime+=t,this._dominantSpeakerStart=0}}},{key:"getTotalDominantSpeakerTime",value:function(){var e=this.totalDominantSpeakerTime;return this.isDominantSpeaker()&&(e+=Date.now()-this._dominantSpeakerStart),e}},{key:"hasLeft",value:function(){return this._hasLeft}},{key:"markAsHasLeft",value:function(){this._hasLeft=!0,this.setDominantSpeaker(!1)}}])&&n(t.prototype,r),e})();e.exports=r},function(e,t){e.exports={IDENTITY_UPDATED:"authentication.identity_updated"}},function(e,t,n){"use strict";(function(e){n.d(t,"a",function(){return A});var r=n(4),i=n(53),o=n(15),a=n(12),s=n(16),c=n(3),u=n(10),l=n(39),d=n.n(l),p=n(9),f=n(8),h=n.n(f),m=n(14),v=n.n(m),y=n(7),g=n(5);function S(e){return(S="function"==typeof Symbol&&"symbol"==typeof("function"==typeof Symbol?Symbol.iterator:"@@iterator")?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==("function"==typeof Symbol?Symbol.prototype:"@@prototype")?"symbol":typeof e})(e)}function _(e,t){for(var n=0;n0&&(this._hasSentData=!0);var r=e.getConnectionState();this._testDataSent&&"connected"===r&&(setTimeout(function(){n._hasSentData||(R.warn("".concat(n," 'bytes sent' <= 0: ").concat(t)),g.a.analytics.sendEvent(y.r,{media_type:n.getType()}))},3e3),this._testDataSent=!1)}},{key:"getCameraFacingMode",value:function(){if(this.isVideoTrack()&&this.videoType===v.a.CAMERA){var e;try{e=this.track.getSettings()}catch(e){}return e&&"facingMode"in e?e.facingMode:void 0!==this._facingMode?this._facingMode:d.a.USER}}},{key:"stopStream",value:function(){this._stopStreamInProgress=!0;try{u.a.stopMediaStream(this.stream)}finally{this._stopStreamInProgress=!1}}},{key:"_switchCamera",value:function(){this.isVideoTrack()&&this.videoType===v.a.CAMERA&&"function"==typeof this.track._switchCamera&&(this.track._switchCamera(),this._facingMode=this._facingMode===d.a.ENVIRONMENT?d.a.USER:d.a.ENVIRONMENT)}},{key:"isReceivingData",value:function(){return!(!this.isVideoTrack()||!this.isMuted()&&!this._stopStreamInProgress&&this.videoType!==v.a.DESKTOP)||!!this.stream&&(this._effectEnabled?this._originalStream:this.stream).getTracks().some(function(e){return!("readyState"in e&&"live"!==e.readyState||"muted"in e&&!0===e.muted)})}},{key:"toString",value:function(){return"LocalTrack[".concat(this.rtcId,",").concat(this.getType(),"]")}}])&&_(n.prototype,r),t})(i.a)}).call(this,"modules/RTC/JitsiLocalTrack.js")},function(e,t,n){"use strict";n.d(t,"a",function(){return a});var r=n(1),i=n(42);function o(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{};!(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")})(this,e),this._connection=t.connection,this._mode=t.mode,this._setSessionID(t.sessionID),this.setStatus(t.status)}var t,n;return t=e,(n=[{key:"getError",value:function(){return this._error}},{key:"getID",value:function(){return this._sessionID}},{key:"getInitiator",value:function(){return this._initiator}},{key:"getLiveStreamViewURL",value:function(){return this._liveStreamViewURL}},{key:"getStatus",value:function(){return this._status}},{key:"getTerminator",value:function(){return this._terminator}},{key:"getMode",value:function(){return this._mode}},{key:"setError",value:function(e){this._error=e}},{key:"setLiveStreamViewURL",value:function(e){this._liveStreamViewURL=e}},{key:"setStatus",value:function(e){this._status=e}},{key:"setInitiator",value:function(e){this._initiator=e}},{key:"setTerminator",value:function(e){this._terminator=e}},{key:"start",value:function(e){var t=this,n=e.appData,r=e.broadcastId,o=e.focusMucJid,a=e.streamId;return new Promise(function(e,s){t._connection.sendIQ(t._createIQ({action:"start",appData:n,focusMucJid:o,broadcastId:r,streamId:a}),function(n){t.setStatus("pending"),t._setSessionID(i.a.getSessionIdFromIq(n)),e()},function(e){t._setErrorFromIq(e),s(e)})})}},{key:"stop",value:function(e){var t=this,n=e.focusMucJid;return new Promise(function(e,r){t._connection.sendIQ(t._createIQ({action:"stop",focusMucJid:n}),e,r)})}},{key:"_createIQ",value:function(e){var t=e.action,n=e.appData,i=e.broadcastId,o=e.focusMucJid,a=e.streamId;return Object(r.$iq)({to:o,type:"set"}).c("jibri",{xmlns:"http://jitsi.org/protocol/jibri",action:t,app_data:n,recording_mode:this._mode,streamid:a,you_tube_broadcast_id:i}).up()}},{key:"_setErrorFromIq",value:function(e){var t=e.getElementsByTagName("error")[0];this.setError(t.children[0].tagName)}},{key:"_setSessionID",value:function(e){this._sessionID=e}}])&&o(t.prototype,n),e})()},function(e,t,n){"use strict";var r=n(29),i=n.n(r),o=n(9),a=n(3),s=n(13),c=n(8),u=n.n(c),l=n(5),d=n(45);function p(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function f(e,t){for(var n=0;n0&&this._logOutputDevice(e,s.a.getCurrentlyAvailableMediaDevices()),s.a.setAudioOutputDevice(e)}},{key:"addEventListener",value:function(e,t){this._eventEmitter.addListener(e,t)}},{key:"removeEventListener",value:function(e,t){this._eventEmitter.removeListener(e,t)}},{key:"emitEvent",value:function(e){for(var t,n=arguments.length,r=new Array(n>1?n-1:0),i=1;i1&&d.push("<"+a.methodName+">: ");var p=d.concat(o);l.bind(u).apply(u,p)}}}function a(e,t,r,i){this.id=t,this.options=i||{},this.transports=r,this.transports||(this.transports=[]),this.level=n[e];for(var a=Object.keys(n),s=0;s0?t[0].split("/")[1]:"sendrecv",uri:t[1]}},n.writeExtmap=function(e){return"a=extmap:"+(e.id||e.preferredId)+(e.direction&&"sendrecv"!==e.direction?"/"+e.direction:"")+" "+e.uri+"\r\n"},n.parseFmtp=function(e){for(var t,n={},r=e.substr(e.indexOf(" ")+1).split(";"),i=0;i-1?(n.attribute=e.substr(t+1,r-t-1),n.value=e.substr(r+1)):n.attribute=e.substr(t+1),n},n.parseSsrcGroup=function(e){var t=e.substr(13).split(" ");return{semantics:t.shift(),ssrcs:t.map(function(e){return parseInt(e,10)})}},n.getMid=function(e){var t=n.matchPrefix(e,"a=mid:")[0];if(t)return t.substr(6)},n.parseFingerprint=function(e){var t=e.substr(14).split(" ");return{algorithm:t[0].toLowerCase(),value:t[1]}},n.getDtlsParameters=function(e,t){return{role:"auto",fingerprints:n.matchPrefix(e+t,"a=fingerprint:").map(n.parseFingerprint)}},n.writeDtlsParameters=function(e,t){var n="a=setup:"+t+"\r\n";return e.fingerprints.forEach(function(e){n+="a=fingerprint:"+e.algorithm+" "+e.value+"\r\n"}),n},n.getIceParameters=function(e,t){var r=n.splitLines(e);return{usernameFragment:(r=r.concat(n.splitLines(t))).filter(function(e){return 0===e.indexOf("a=ice-ufrag:")})[0].substr(12),password:r.filter(function(e){return 0===e.indexOf("a=ice-pwd:")})[0].substr(10)}},n.writeIceParameters=function(e){return"a=ice-ufrag:"+e.usernameFragment+"\r\na=ice-pwd:"+e.password+"\r\n"},n.parseRtpParameters=function(e){for(var t={codecs:[],headerExtensions:[],fecMechanisms:[],rtcp:[]},r=n.splitLines(e)[0].split(" "),i=3;i0?"9":"0",r+=" UDP/TLS/RTP/SAVPF ",r+=t.codecs.map(function(e){return void 0!==e.preferredPayloadType?e.preferredPayloadType:e.payloadType}).join(" ")+"\r\n",r+="c=IN IP4 0.0.0.0\r\n",r+="a=rtcp:9 IN IP4 0.0.0.0\r\n",t.codecs.forEach(function(e){r+=n.writeRtpMap(e),r+=n.writeFmtp(e),r+=n.writeRtcpFb(e)});var i=0;return t.codecs.forEach(function(e){e.maxptime>i&&(i=e.maxptime)}),i>0&&(r+="a=maxptime:"+i+"\r\n"),r+="a=rtcp-mux\r\n",t.headerExtensions&&t.headerExtensions.forEach(function(e){r+=n.writeExtmap(e)}),r},n.parseRtpEncodingParameters=function(e){var t,r=[],i=n.parseRtpParameters(e),o=-1!==i.fecMechanisms.indexOf("RED"),a=-1!==i.fecMechanisms.indexOf("ULPFEC"),s=n.matchPrefix(e,"a=ssrc:").map(function(e){return n.parseSsrcMedia(e)}).filter(function(e){return"cname"===e.attribute}),c=s.length>0&&s[0].ssrc,u=n.matchPrefix(e,"a=ssrc-group:FID").map(function(e){return e.substr(17).split(" ").map(function(e){return parseInt(e,10)})});u.length>0&&u[0].length>1&&u[0][0]===c&&(t=u[0][1]),i.codecs.forEach(function(e){if("RTX"===e.name.toUpperCase()&&e.parameters.apt){var n={ssrc:c,codecPayloadType:parseInt(e.parameters.apt,10)};c&&t&&(n.rtx={ssrc:t}),r.push(n),o&&((n=JSON.parse(JSON.stringify(n))).fec={ssrc:c,mechanism:a?"red+ulpfec":"red"},r.push(n))}}),0===r.length&&c&&r.push({ssrc:c});var l=n.matchPrefix(e,"b=");return l.length&&(l=0===l[0].indexOf("b=TIAS:")?parseInt(l[0].substr(7),10):0===l[0].indexOf("b=AS:")?1e3*parseInt(l[0].substr(5),10)*.95-16e3:void 0,r.forEach(function(e){e.maxBitrate=l})),r},n.parseRtcpParameters=function(e){var t={},r=n.matchPrefix(e,"a=ssrc:").map(function(e){return n.parseSsrcMedia(e)}).filter(function(e){return"cname"===e.attribute})[0];r&&(t.cname=r.value,t.ssrc=r.ssrc);var i=n.matchPrefix(e,"a=rtcp-rsize");t.reducedSize=i.length>0,t.compound=0===i.length;var o=n.matchPrefix(e,"a=rtcp-mux");return t.mux=o.length>0,t},n.parseMsid=function(e){var t,r=n.matchPrefix(e,"a=msid:");if(1===r.length)return{stream:(t=r[0].substr(7).split(" "))[0],track:t[1]};var i=n.matchPrefix(e,"a=ssrc:").map(function(e){return n.parseSsrcMedia(e)}).filter(function(e){return"msid"===e.attribute});return i.length>0?{stream:(t=i[0].value.split(" "))[0],track:t[1]}:void 0},n.parseSctpDescription=function(e){var t,r=n.parseMLine(e),i=n.matchPrefix(e,"a=max-message-size:");i.length>0&&(t=parseInt(i[0].substr(19),10)),isNaN(t)&&(t=65536);var o=n.matchPrefix(e,"a=sctp-port:");if(o.length>0)return{port:parseInt(o[0].substr(12),10),protocol:r.fmt,maxMessageSize:t};if(n.matchPrefix(e,"a=sctpmap:").length>0){var a=n.matchPrefix(e,"a=sctpmap:")[0].substr(10).split(" ");return{port:parseInt(a[0],10),protocol:a[1],maxMessageSize:t}}},n.writeSctpDescription=function(e,t){var n=[];return n="DTLS/SCTP"!==e.protocol?["m="+e.kind+" 9 "+e.protocol+" "+t.protocol+"\r\n","c=IN IP4 0.0.0.0\r\n","a=sctp-port:"+t.port+"\r\n"]:["m="+e.kind+" 9 "+e.protocol+" "+t.port+"\r\n","c=IN IP4 0.0.0.0\r\n","a=sctpmap:"+t.port+" "+t.protocol+" 65535\r\n"],void 0!==t.maxMessageSize&&n.push("a=max-message-size:"+t.maxMessageSize+"\r\n"),n.join("")},n.generateSessionId=function(){return Math.random().toString().substr(2,21)},n.writeSessionBoilerplate=function(e,t,r){var i=void 0!==t?t:2;return"v=0\r\no="+(r||"thisisadapterortc")+" "+(e||n.generateSessionId())+" "+i+" IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\n"},n.writeMediaSection=function(e,t,r,i){var o=n.writeRtpDescription(e.kind,t);if(o+=n.writeIceParameters(e.iceGatherer.getLocalParameters()),o+=n.writeDtlsParameters(e.dtlsTransport.getLocalParameters(),"offer"===r?"actpass":"active"),o+="a=mid:"+e.mid+"\r\n",e.direction?o+="a="+e.direction+"\r\n":e.rtpSender&&e.rtpReceiver?o+="a=sendrecv\r\n":e.rtpSender?o+="a=sendonly\r\n":e.rtpReceiver?o+="a=recvonly\r\n":o+="a=inactive\r\n",e.rtpSender){var a="msid:"+i.id+" "+e.rtpSender.track.id+"\r\n";o+="a="+a,o+="a=ssrc:"+e.sendEncodingParameters[0].ssrc+" "+a,e.sendEncodingParameters[0].rtx&&(o+="a=ssrc:"+e.sendEncodingParameters[0].rtx.ssrc+" "+a,o+="a=ssrc-group:FID "+e.sendEncodingParameters[0].ssrc+" "+e.sendEncodingParameters[0].rtx.ssrc+"\r\n")}return o+="a=ssrc:"+e.sendEncodingParameters[0].ssrc+" cname:"+n.localCName+"\r\n",e.rtpSender&&e.sendEncodingParameters[0].rtx&&(o+="a=ssrc:"+e.sendEncodingParameters[0].rtx.ssrc+" cname:"+n.localCName+"\r\n"),o},n.getDirection=function(e,t){for(var r=n.splitLines(e),i=0;i0&&t.data.push(e.data)},t},l.prototype.removeTrack=function(e){if(!e.isVideoTrack()){var t,n=this.recorders;for(t=0;t0&&void 0!==arguments[0]?arguments[0]:{};this.xmpp.connect(e.id,e.password)},c.prototype.attach=function(e){this.xmpp.attach(e)},c.prototype.disconnect=function(){var e;return(e=this.xmpp).disconnect.apply(e,arguments)},c.prototype.getJid=function(){return this.xmpp.getJid()},c.prototype.setToken=function(e){this.token=e},c.prototype.initJitsiConference=function(e,t){return new i.a({name:e,config:t,connection:this})},c.prototype.addEventListener=function(e,t){this.xmpp.addListener(e,t)},c.prototype.removeEventListener=function(e,t){this.xmpp.removeListener(e,t)},c.prototype.getConnectionTimes=function(){return this.xmpp.connectionTimes},c.prototype.addFeature=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return this.xmpp.caps.addFeature(e,t)},c.prototype.removeFeature=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return this.xmpp.caps.removeFeature(e,t)}},function(e,t,n){"use strict";(function(e){n.d(t,"a",function(){return Y});var r=n(1),i=n(29),o=n.n(i),a=n(4),s=n(68),c=n.n(s),u=n(17),l=n(69),d=n(2),p=n(76),f=n(15),h=n(12),m=n(16),v=n(77),y=n(94),g=n(13),S=n(101),_=n(3),b=n(102),E=n(103),T=n(41),C=n(104),R=n(105),A=n(106),w=n(107),k=n(108),O=n(109),I=n(110),P=n(5),D=n(111),N=n.n(D),L=n(11),M=n.n(L),x=n(33),j=n.n(x),F=n(112),U=n(113),H=n(20),J=n(35),G=n(9),B=n(8),V=n(14),q=n.n(V),K=n(7),W=n(0);function z(e){return(z="function"==typeof Symbol&&"symbol"==typeof("function"==typeof Symbol?Symbol.iterator:"@@iterator")?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==("function"==typeof Symbol?Symbol.prototype:"@@prototype")?"symbol":typeof e})(e)}function X(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Q=Object(a.getLogger)(e);function Y(e){if(!e.name||e.name.toLowerCase()!==e.name){var t="Invalid conference name (no conference name passed or it contains invalid characters like capital letters)!";throw Q.error(t),new Error(t)}this.eventEmitter=new o.a,this.options=e,this.eventManager=new l.a(this),this.participants={},this._init(e),this.componentsVersions=new F.a(this),this.jvbJingleSession=null,this.lastDominantSpeaker=null,this.dtmfManager=null,this.somebodySupportsDTMF=!1,this.authEnabled=!1,this.startAudioMuted=!1,this.startVideoMuted=!1,this.startMutedPolicy={audio:!1,video:!1},this.isMutedByFocus=!1,this.mutedByFocusActor=null,this.wasStopped=!1,this.properties={},this.connectionQuality=new b.a(this,this.eventEmitter,e),this.avgRtpStatsReporter=new k.a(this,e.config.avgRtpStatsN||15),this._audioOutputProblemDetector=new O.a(this),this.isJvbConnectionInterrupted=!1,this.speakerStatsCollector=new I.a(this),this.deferredStartP2PTask=null;var n=parseInt(e.config.p2p&&e.config.p2p.backToP2PDelay,10);this.backToP2PDelay=isNaN(n)?5:n,Q.info("backToP2PDelay: ".concat(this.backToP2PDelay)),this.isP2PConnectionInterrupted=!1,this.p2p=!1,this.p2pJingleSession=null,this.videoSIPGWHandler=new U.a(this.room),this.recordingManager=new A.a(this.room)}Y.prototype.constructor=Y,Y.resourceCreator=function(e,t){var n;return t?n=j.a.randomHexString(8).toLowerCase():(n=r.Strophe.getNodeFromJid(e).substr(0,8).toLowerCase(),/[0-9a-f]{8}/g.test(n)||(n=j.a.randomHexString(8).toLowerCase())),n},Y.prototype._init=function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};t.connection&&(this.connection=t.connection,this.xmpp=this.connection.xmpp,this.eventManager.setupXMPPListeners());var n=this.options.config;if(this.room=this.xmpp.createRoom(this.options.name,n,Y.resourceCreator),this._onIceConnectionInterrupted=this._onIceConnectionInterrupted.bind(this),this.room.addListener(W.CONNECTION_INTERRUPTED,this._onIceConnectionInterrupted),this._onIceConnectionRestored=this._onIceConnectionRestored.bind(this),this.room.addListener(W.CONNECTION_RESTORED,this._onIceConnectionRestored),this._onIceConnectionEstablished=this._onIceConnectionEstablished.bind(this),this.room.addListener(W.CONNECTION_ESTABLISHED,this._onIceConnectionEstablished),this._updateProperties=this._updateProperties.bind(this),this.room.addListener(W.CONFERENCE_PROPERTIES_CHANGED,this._updateProperties),this.rttMonitor=new w.a(n.rttMonitor||{}),this.e2eping=new C.a(this,n,function(t,n){try{e.sendMessage(t,n,!0)}catch(e){Q.warn("Failed to send a ping request or response.")}}),this.rtc||(this.rtc=new g.a(this,t),this.eventManager.setupRTCListeners()),this.participantConnectionStatus=new T.b(this.rtc,this,{rtcMuteTimeout:n._peerConnStatusRtcMuteTimeout,outOfLastNTimeout:n._peerConnStatusOutOfLastNTimeout}),this.participantConnectionStatus.init(),!this.statistics){var r=this.myUserId();n.enableDisplayNameInStats&&n.displayName&&(r=n.displayName),this.statistics=new P.a(this.xmpp,{callStatsAliasName:r,callStatsConfIDNamespace:this.connection.options.hosts.domain,confID:n.confID||"".concat(this.connection.options.hosts.domain,"/").concat(this.options.name),customScriptUrl:n.callStatsCustomScriptUrl,callStatsID:n.callStatsID,callStatsSecret:n.callStatsSecret,roomName:this.options.name,swapUserNameAndAlias:n.enableStatsID,applicationName:n.applicationName,getWiFiStatsMethod:n.getWiFiStatsMethod})}this.eventManager.setupChatRoomListeners(),this.eventManager.setupStatisticsListeners(),n.enableTalkWhileMuted&&new S.a(this,function(){return e.eventEmitter.emit(d.TALK_WHILE_MUTED)}),"channelLastN"in n&&this.setLastN(n.channelLastN),this.jvb121Status=new R.a(this),this.p2pDominantSpeakerDetection=new y.a(this),n&&n.deploymentInfo&&n.deploymentInfo.userRegion&&this.setLocalParticipantProperty("region",n.deploymentInfo.userRegion)},Y.prototype.join=function(e){var t=this;this.room&&this.room.join(e).then(function(){return t._maybeSetSITimeout()})},Y.prototype.authenticateAndUpgradeRole=function(e){return v.a.call(this,(function(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:"body";if(this.room){var n=(this.room.getFromPresence("nick")||{}).value;this.room.sendMessage(e,t,n)}},Y.prototype.sendPrivateTextMessage=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"body";this.room&&this.room.sendPrivateMessage(e,t,n)},Y.prototype.sendCommand=function(e,t){this.room?(this.room.addToPresence(e,t),this.room.sendPresence()):Q.warn("Not sending a command, room not initialized.")},Y.prototype.sendCommandOnce=function(e,t){this.sendCommand(e,t),this.removeCommand(e)},Y.prototype.removeCommand=function(e){this.room&&this.room.removeFromPresence(e)},Y.prototype.setDisplayName=function(e){this.room&&(this.room.removeFromPresence("nick"),this.room.addToPresence("nick",{attributes:{xmlns:"http://jabber.org/protocol/nick"},value:e}),this.room.sendPresence())},Y.prototype.setSubject=function(e){this.room&&this.isModerator()&&this.room.setSubject(e)},Y.prototype.getTranscriber=function(){if(void 0===this.transcriber){this.transcriber=new N.a;var e=this.getLocalTracks(G.a),t=!0,n=!1,r=void 0;try{for(var i,o=e["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();!(t=(i=o.next()).done);t=!0){var a=i.value;this.transcriber.addTrack(a)}}catch(e){n=!0,r=e}finally{try{t||null==o.return||o.return()}finally{if(n)throw r}}var s=this.rtc.getRemoteTracks(G.a),c=!0,u=!1,l=void 0;try{for(var d,p=s["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();!(c=(d=p.next()).done);c=!0){var f=d.value;this.transcriber.addTrack(f)}}catch(e){u=!0,l=e}finally{try{c||null==p.return||p.return()}finally{if(u)throw l}}}return this.transcriber},Y.prototype.getTranscriptionStatus=function(){return this.room.transcriptionStatus},Y.prototype.addTrack=function(e){if(e.isVideoTrack()){var t=this.rtc.getLocalVideoTrack();if(t)return e===t?Promise.resolve(e):Promise.reject(new Error("cannot add second video track to the conference"))}return this.replaceTrack(null,e)},Y.prototype._fireAudioLevelChangeEvent=function(e,t){var n=this.getActivePeerConnection();t&&n!==t||this.eventEmitter.emit(d.TRACK_AUDIO_LEVEL_CHANGED,this.myUserId(),e)},Y.prototype._fireMuteChangeEvent=function(e){var t;if(this.isMutedByFocus&&e.isAudioTrack()&&!e.isMuted()&&(this.isMutedByFocus=!1,this.room.muteParticipant(this.room.myroomjid,!1)),this.mutedByFocusActor){var n=r.Strophe.getResourceFromJid(this.mutedByFocusActor);t=this.participants[n]}this.eventEmitter.emit(d.TRACK_MUTE_CHANGED,e,t)},Y.prototype.onLocalTrackRemoved=function(e){e._setConference(null),this.rtc.removeLocalTrack(e),e.removeEventListener(m.TRACK_MUTE_CHANGED,e.muteHandler),e.removeEventListener(m.TRACK_AUDIO_LEVEL_CHANGED,e.audioLevelHandler),e.isVideoTrack()&&e.videoType===q.a.DESKTOP&&this.statistics.sendScreenSharingEvent(!1),this.eventEmitter.emit(d.TRACK_REMOVED,e)},Y.prototype.removeTrack=function(e){return this.replaceTrack(e,null)},Y.prototype.replaceTrack=function(e,t){var n=this;return e&&e.disposed?Promise.reject(new f.a(h.TRACK_IS_DISPOSED)):t&&t.disposed?Promise.reject(new f.a(h.TRACK_IS_DISPOSED)):this._doReplaceTrack(e,t).then(function(){return e&&n.onLocalTrackRemoved(e),t&&n._setupNewTrack(t),Promise.resolve()},function(e){return Promise.reject(new Error(e))})},Y.prototype._doReplaceTrack=function(e,t){var n=[];return this.jvbJingleSession?n.push(this.jvbJingleSession.replaceTrack(e,t)):Q.info("_doReplaceTrack - no JVB JingleSession"),this.p2pJingleSession?n.push(this.p2pJingleSession.replaceTrack(e,t)):Q.info("_doReplaceTrack - no P2P JingleSession"),Promise.all(n)},Y.prototype._setupNewTrack=function(e){if(e.isAudioTrack()||e.isVideoTrack()&&e.videoType!==q.a.DESKTOP){var t=g.a.getCurrentlyAvailableMediaDevices().find(function(t){return t.kind==="".concat(e.getTrack().kind,"input")&&t.label===e.getTrack().label});t&&P.a.sendActiveDeviceListEvent(g.a.getEventDataForActiveDevice(t))}e.isVideoTrack()&&(this.removeCommand("videoType"),this.sendCommand("videoType",{value:e.videoType,attributes:{xmlns:"http://jitsi.org/jitmeet/video"}})),this.rtc.addLocalTrack(e),e.isAudioTrack()?this.room.setAudioMute(e.isMuted()):this.room.setVideoMute(e.isMuted()),e.muteHandler=this._fireMuteChangeEvent.bind(this,e),e.audioLevelHandler=this._fireAudioLevelChangeEvent.bind(this),e.addEventListener(m.TRACK_MUTE_CHANGED,e.muteHandler),e.addEventListener(m.TRACK_AUDIO_LEVEL_CHANGED,e.audioLevelHandler),e._setConference(this),this.eventEmitter.emit(d.TRACK_ADDED,e)},Y.prototype._addLocalTrackAsUnmute=function(e){var t=[];return this.jvbJingleSession?t.push(this.jvbJingleSession.addTrackAsUnmute(e)):Q.info("Add local MediaStream as unmute - no JVB Jingle session started yet"),this.p2pJingleSession?t.push(this.p2pJingleSession.addTrackAsUnmute(e)):Q.info("Add local MediaStream as unmute - no P2P Jingle session started yet"),Promise.all(t)},Y.prototype._removeLocalTrackAsMute=function(e){var t=[];return this.jvbJingleSession?t.push(this.jvbJingleSession.removeTrackAsMute(e)):Q.info("Remove local MediaStream - no JVB JingleSession started yet"),this.p2pJingleSession?t.push(this.p2pJingleSession.removeTrackAsMute(e)):Q.info("Remove local MediaStream - no P2P JingleSession started yet"),Promise.all(t)},Y.prototype.getRole=function(){return this.room.role},Y.prototype.isHidden=function(){return this.connection?r.Strophe.getDomainFromJid(this.connection.getJid())===this.options.config.hiddenDomain:null},Y.prototype.isModerator=function(){return this.room?this.room.isModerator():null},Y.prototype.lock=function(e){var t=this;return this.isModerator()?new Promise(function(n,r){t.room.lockRoom(e||"",function(){return n()},function(e){return r(e)},function(){return r(u.PASSWORD_NOT_SUPPORTED)})}):Promise.reject(new Error("You are not moderator."))},Y.prototype.unlock=function(){return this.lock()},Y.prototype.selectParticipant=function(e){this.selectParticipants([e])},Y.prototype.selectParticipants=function(e){if(!Array.isArray(e))throw new Error("Invalid argument; participantIds must be an array.");this.rtc.selectEndpoints(e)},Y.prototype.pinParticipant=function(e){this.rtc.pinEndpoint(e)},Y.prototype.getLastN=function(){return this.rtc.getLastN()},Y.prototype.setLastN=function(e){if(!Number.isInteger(e)&&!Number.parseInt(e,10))throw new Error("Invalid value for lastN: ".concat(e));var t=Number(e);if(t<-1)throw new RangeError("lastN cannot be smaller than -1");if(this.rtc.setLastN(t),this.p2pJingleSession){var n=0!==t;this.p2pJingleSession.setMediaTransferActive(!0,n).catch(function(e){Q.error("Failed to adjust video transfer status (".concat(n,")"),e)})}},Y.prototype.isInLastN=function(e){return this.rtc.isInLastN(e)},Y.prototype.getParticipants=function(){return Object.keys(this.participants).map(function(e){return this.participants[e]},this)},Y.prototype.getParticipantCount=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.getParticipants();return e||(t=t.filter(function(e){return!e.isHidden()})),t.length+1},Y.prototype.getParticipantById=function(e){return this.participants[e]},Y.prototype.kickParticipant=function(e){var t=this.getParticipantById(e);t&&this.room.kick(t.getJid())},Y.prototype._maybeClearSITimeout=function(){this._sessionInitiateTimeout&&(this.jvbJingleSession||this.getParticipantCount()<2)&&(window.clearTimeout(this._sessionInitiateTimeout),this._sessionInitiateTimeout=null)},Y.prototype._maybeSetSITimeout=function(){var e=this;!this.jvbJingleSession&&this.getParticipantCount()>=2&&!this._sessionInitiateTimeout&&(this._sessionInitiateTimeout=window.setTimeout(function(){e._sessionInitiateTimeout=null,P.a.sendAnalytics(Object(K.F)(K.d,{p2p:!1,value:5e3}))},5e3))},Y.prototype.muteParticipant=function(e){var t=this.getParticipantById(e);t&&this.room.muteParticipant(t.getJid(),!0)},Y.prototype.onMemberJoined=function(e,t,n,i,o,a,s,c){var u=r.Strophe.getResourceFromJid(e);if("focus"!==u&&this.myUserId()!==u){var l=new p.a(e,this,t,i,o,a,s);l._role=n,l._botType=c,this.participants[u]=l,this.eventEmitter.emit(d.USER_JOINED,u,l),this._updateFeatures(l),this._maybeStartOrStopP2P(),this._maybeSetSITimeout()}},Y.prototype._updateFeatures=function(e){var t=this;e.getFeatures().then(function(n){e._supportsDTMF=n.has("urn:xmpp:jingle:dtmf:0"),t.updateDTMFSupport(),n.has("http://jitsi.org/protocol/jigasi")&&e.setProperty("features_jigasi",!0)}).catch(function(){return!1})},Y.prototype._onMemberBotTypeChanged=function(e,t){var n=this.getParticipants().find(function(t){return t.getJid()===e});if(n){n._botType=t;var i=r.Strophe.getResourceFromJid(e);this.eventEmitter.emit(d.BOT_TYPE_CHANGED,i,t)}n._botType||this._maybeStartOrStopP2P()},Y.prototype.onMemberLeft=function(e){var t=this,n=r.Strophe.getResourceFromJid(e);if("focus"!==n&&this.myUserId()!==n){var i=this.participants[n];delete this.participants[n],this.rtc.removeRemoteTracks(n).forEach(function(e){return t.eventEmitter.emit(d.TRACK_REMOVED,e)}),i&&this.eventEmitter.emit(d.USER_LEFT,n,i),this._maybeStartOrStopP2P(!0),this._maybeClearSITimeout()}},Y.prototype.onMemberKicked=function(e,t,n){var r=this.participants[t];if(e)return this.eventEmitter.emit(d.KICKED,r),void this.leave();var i=this.participants[n];this.eventEmitter.emit(d.PARTICIPANT_KICKED,r,i)},Y.prototype.onLocalRoleChanged=function(e){this.eventEmitter.emit(d.USER_ROLE_CHANGED,this.myUserId(),e)},Y.prototype.onUserRoleChanged=function(e,t){var n=r.Strophe.getResourceFromJid(e),i=this.getParticipantById(n);i&&(i._role=t,this.eventEmitter.emit(d.USER_ROLE_CHANGED,n,t))},Y.prototype.onDisplayNameChanged=function(e,t){var n=r.Strophe.getResourceFromJid(e),i=this.getParticipantById(n);i&&i._displayName!==t&&(i._displayName=t,this.eventEmitter.emit(d.DISPLAY_NAME_CHANGED,n,t))},Y.prototype.onRemoteTrackAdded=function(e){var t=this;if(!e.isP2P||this.isP2PActive())if(e.isP2P||!this.isP2PActive()){var n=e.getParticipantId(),r=this.getParticipantById(n);if(r){r._tracks.push(e),this.transcriber&&this.transcriber.addTrack(e);var i=this.eventEmitter;e.addEventListener(m.TRACK_MUTE_CHANGED,function(){return i.emit(d.TRACK_MUTE_CHANGED,e)}),e.addEventListener(m.TRACK_AUDIO_LEVEL_CHANGED,function(e,r){t.getActivePeerConnection()===r&&i.emit(d.TRACK_AUDIO_LEVEL_CHANGED,n,e)}),i.emit(d.TRACK_ADDED,e)}else Q.error("No participant found for id: ".concat(n))}else Q.info("Trying to add remote JVB track, when in P2P - IGNORED");else Q.info("Trying to add remote P2P track, when not in P2P - IGNORED")},Y.prototype.onCallAccepted=function(e,t){this.p2pJingleSession===e&&(Q.info("P2P setAnswer"),this.p2pJingleSession.setAnswer(t))},Y.prototype.onTransportInfo=function(e,t){this.p2pJingleSession===e&&(Q.info("P2P addIceCandidates"),this.p2pJingleSession.addIceCandidates(t))},Y.prototype.onRemoteTrackRemoved=function(e){var t=this;this.getParticipants().forEach(function(n){for(var r=n.getTracks(),i=0;ibridge-session[xmlns="http://jitsi.org/protocol/focus"]').attr("region");this.eventEmitter.emit(d.SERVER_REGION_CHANGED,i),this._maybeClearSITimeout(),P.a.sendAnalytics(Object(K.F)(K.c,{p2p:!1,value:n}));try{e.initialize(this.room,this.rtc,this.options.config)}catch(e){M.a.callErrorHandler(e)}this._setBridgeChannel(t,e.peerconnection);try{e.acceptOffer(t,function(){r.isP2PActive()&&r.jvbJingleSession&&r._suspendMediaTransferForJvbConnection()},function(e){M.a.callErrorHandler(e),Q.error("Failed to accept incoming Jingle session",e)},this.getLocalTracks()),Q.info("Starting CallStats for JVB connection..."),this.statistics.startCallStats(this.jvbJingleSession.peerconnection,"jitsi"),this.statistics.startRemoteStats(this.jvbJingleSession.peerconnection)}catch(e){M.a.callErrorHandler(e),Q.error(e)}},Y.prototype._setBridgeChannel=function(e,t){var n,r=null,i=$(e).find(">content>transport>web-socket").first();switch(1===i.length&&(r=i[0].getAttribute("url")),this.options.config.openBridgeChannel){case"datachannel":case!0:case void 0:n="datachannel";break;case"websocket":n="websocket"}"datachannel"!==n||_.a.supportsDataChannels()||(n="websocket"),"datachannel"===n?this.rtc.initializeBridgeChannel(t,null):"websocket"===n&&r&&this.rtc.initializeBridgeChannel(null,r)},Y.prototype._rejectIncomingCall=function(e,t){t&&t.errorMsg&&M.a.callErrorHandler(new Error(t.errorMsg)),e.terminate(null,function(e){Q.warn("An error occurred while trying to terminate invalid Jingle session",e)},{reason:t&&t.reason,reasonDescription:t&&t.reasonDescription,sendSessionTerminate:!0})},Y.prototype.onCallEnded=function(e,t,n){Q.info("Call ended: ".concat(t," - ").concat(n," P2P ?").concat(e.isP2P)),e===this.jvbJingleSession?(this.wasStopped=!0,P.a.sendAnalytics(Object(K.F)(K.e,{p2p:!1})),this.statistics&&(this.statistics.stopRemoteStats(this.jvbJingleSession.peerconnection),Q.info("Stopping JVB CallStats"),this.statistics.stopCallStats(this.jvbJingleSession.peerconnection)),this.jvbJingleSession=null,this.rtc.onCallEnded()):e===this.p2pJingleSession?("decline"===t&&"force JVB121"===n?(Q.info("In forced JVB 121 mode..."),P.a.analytics.addPermanentProperties({forceJvb121:!0})):"connectivity-error"===t&&"ICE FAILED"===n&&P.a.analytics.addPermanentProperties({p2pFailed:!0}),this._stopP2PSession()):Q.error("Received onCallEnded for invalid session",e.sid,e.remoteJid,t,n)},Y.prototype.onSuspendDetected=function(e){e.isP2P||(this.leave(),this.eventEmitter.emit(d.SUSPEND_DETECTED))},Y.prototype.updateDTMFSupport=function(){for(var e=!1,t=this.getParticipants(),n=0;n1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=z(e);if("object"===r||!n&&"string"===r)if(n)this.sendEndpointMessage(t,e);else{var i=e,o="body";if("object"===r){o="json-message",i.hasOwnProperty(J.b)||(i[J.b]="");try{i=JSON.stringify(i)}catch(e){return void Q.error("Can not send a message, stringify failed: ",e)}}t?this.sendPrivateTextMessage(t,i,o):this.sendTextMessage(i,o)}else Q.error("Can not send a message of type ".concat(r))},Y.prototype.isConnectionInterrupted=function(){return this.isP2PActive()?this.isP2PConnectionInterrupted:this.isJvbConnectionInterrupted},Y.prototype._onIceConnectionInterrupted=function(e){e.isP2P?this.isP2PConnectionInterrupted=!0:this.isJvbConnectionInterrupted=!0,e.isP2P===this.isP2PActive()&&this.eventEmitter.emit(d.CONNECTION_INTERRUPTED)},Y.prototype._onIceConnectionFailed=function(e){e.isP2P?(P.a.analytics.addPermanentProperties({p2pFailed:!0}),this.p2pJingleSession&&P.a.sendAnalyticsAndLog(Object(K.H)(K.j,{initiator:this.p2pJingleSession.isInitiator})),this._stopP2PSession("connectivity-error","ICE FAILED")):e&&this.jvbJingleSession===e&&(this.xmpp.isPingSupported()?(this._delayedIceFailed=new E.a(this),this._delayedIceFailed.start(e)):(Q.info("PING not supported - sending ICE failed immediately"),e.sendIceFailedNotification()))},Y.prototype._onIceConnectionRestored=function(e){e.isP2P?this.isP2PConnectionInterrupted=!1:(this.isJvbConnectionInterrupted=!1,this._delayedIceFailed&&this._delayedIceFailed.cancel()),e.isP2P===this.isP2PActive()&&this.eventEmitter.emit(d.CONNECTION_RESTORED)},Y.prototype._acceptP2PIncomingCall=function(e,t){this.isP2PConnectionInterrupted=!1,this.p2pJingleSession=e,this.p2pJingleSession.initialize(this.room,this.rtc,this.options.config),Q.info("Starting CallStats for P2P connection...");var n=r.Strophe.getResourceFromJid(this.p2pJingleSession.remoteJid);if(this.options.config.enableStatsID){var i=this.participants[n];i&&(n=i.getStatsID()||n)}this.statistics.startCallStats(this.p2pJingleSession.peerconnection,n);var o=this.getLocalTracks();this.p2pJingleSession.acceptOffer(t,function(){Q.debug('Got RESULT for P2P "session-accept"')},function(e){Q.error("Failed to accept incoming P2P Jingle session",e)},o)},Y.prototype._addRemoteJVBTracks=function(){this._addRemoteTracks("JVB",this.jvbJingleSession.peerconnection.getRemoteTracks())},Y.prototype._addRemoteP2PTracks=function(){this._addRemoteTracks("P2P",this.p2pJingleSession.peerconnection.getRemoteTracks())},Y.prototype._addRemoteTracks=function(e,t){var n=!0,r=!1,i=void 0;try{for(var o,a=t["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();!(n=(o=a.next()).done);n=!0){var s=o.value;Q.info("Adding remote ".concat(e," track: ").concat(s)),this.rtc.eventEmitter.emit(B.REMOTE_TRACK_ADDED,s)}}catch(e){r=!0,i=e}finally{try{n||null==a.return||a.return()}finally{if(r)throw i}}},Y.prototype._onIceConnectionEstablished=function(e){null!==this.p2pJingleSession&&(this.p2pEstablishmentDuration=this.p2pJingleSession.establishmentDuration),null!==this.jvbJingleSession&&(this.jvbEstablishmentDuration=this.jvbJingleSession.establishmentDuration);var t=!1,n=this.options.config.forceJVB121Ratio;if(e.isP2P?this.p2pJingleSession!==e?(Q.error("CONNECTION_ESTABLISHED - wrong P2P session instance ?!"),t=!0):!e.isInitiator&&"number"==typeof n&&Math.random()0&&void 0!==arguments[0]?arguments[0]:{},t=!c()(e,this.properties);if(this.properties=e,t){this.eventEmitter.emit(d.PROPERTIES_CHANGED,this.properties);["bridge-count","created-ms","octo-enabled"].forEach(function(t){void 0!==e[t]&&P.a.analytics.addPermanentProperties(X({},t.replace("-","_"),e[t]))})}},Y.prototype.getProperty=function(e){return this.properties[e]},Y.prototype._maybeClearDeferredStartP2P=function(){this.deferredStartP2PTask&&(Q.info("Cleared deferred start P2P task"),clearTimeout(this.deferredStartP2PTask),this.deferredStartP2PTask=null)},Y.prototype._removeRemoteJVBTracks=function(){this._removeRemoteTracks("JVB",this.jvbJingleSession.peerconnection.getRemoteTracks())},Y.prototype._removeRemoteP2PTracks=function(){this._removeRemoteTracks("P2P",this.p2pJingleSession.peerconnection.getRemoteTracks())},Y.prototype._removeRemoteTracks=function(e,t){var n=!0,r=!1,i=void 0;try{for(var o,a=t["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();!(n=(o=a.next()).done);n=!0){var s=o.value;Q.info("Removing remote ".concat(e," track: ").concat(s)),this.rtc.eventEmitter.emit(B.REMOTE_TRACK_REMOVED,s)}}catch(e){r=!0,i=e}finally{try{n||null==a.return||a.return()}finally{if(r)throw i}}},Y.prototype._resumeMediaTransferForJvbConnection=function(){Q.info("Resuming media transfer over the JVB connection..."),this.jvbJingleSession.setMediaTransferActive(!0,!0).then(function(){Q.info("Resumed media transfer over the JVB connection!")},function(e){Q.error("Failed to resume media transfer over the JVB connection:",e)})},Y.prototype._setP2PStatus=function(e){if(this.p2p!==e){if(this.p2p=e,e){Q.info("Peer to peer connection established!"),P.a.analytics.addPermanentProperties({p2pFailed:!1,forceJvb121:!1});var t=0!==this.rtc.getLastN();this.p2pJingleSession.setMediaTransferActive(!0,t).catch(function(e){Q.error("Failed to sync up P2P video transfer status"+"(".concat(t,")"),e)})}else Q.info("Peer to peer connection closed!");this.jvbJingleSession&&this.statistics.sendConnectionResumeOrHoldEvent(this.jvbJingleSession.peerconnection,!e),this.dtmfManager=null,this.eventEmitter.emit(d.P2P_STATUS,this,this.p2p),this.eventEmitter.emit(this.isConnectionInterrupted()?d.CONNECTION_INTERRUPTED:d.CONNECTION_RESTORED)}else Q.debug("Called _setP2PStatus with the same status: ".concat(e))},Y.prototype._startP2PSession=function(e){if(this._maybeClearDeferredStartP2P(),this.p2pJingleSession)Q.error("P2P session already started!");else{this.isP2PConnectionInterrupted=!1,this.p2pJingleSession=this.xmpp.connection.jingle.newP2PJingleSession(this.room.myroomjid,e),Q.info("Created new P2P JingleSession",this.room.myroomjid,e),this.p2pJingleSession.initialize(this.room,this.rtc,this.options.config),Q.info("Starting CallStats for P2P connection...");var t=r.Strophe.getResourceFromJid(this.p2pJingleSession.remoteJid);if(this.options.config.enableStatsID){var n=this.participants[t];n&&(t=n.getStatsID()||t)}this.statistics.startCallStats(this.p2pJingleSession.peerconnection,t);var i=this.getLocalTracks();this.p2pJingleSession.invite(i)}},Y.prototype._suspendMediaTransferForJvbConnection=function(){Q.info("Suspending media transfer over the JVB connection..."),this.jvbJingleSession.setMediaTransferActive(!1,!1).then(function(){Q.info("Suspended media transfer over the JVB connection !")},function(e){Q.error("Failed to suspend media transfer over the JVB connection:",e)})},Y.prototype._maybeStartOrStopP2P=function(e){if(_.a.supportsP2P()&&this.isP2PEnabled()&&!this.isP2PTestModeEnabled()){var t=this.getParticipants(),n=t.length,r=this._shouldBeInP2PMode();if(!r&&this.deferredStartP2PTask&&this._maybeClearDeferredStartP2P(),!this.p2pJingleSession&&r){var i=n&&t[0],o=this.myUserId(),a=i.getId();if(o>a)return void Q.debug("I'm the bigger peersId - the other peer should start P2P",o,a);if(o===a)return void Q.error("The same IDs ? ",o,a);var s=i.getJid();if(e){if(this.deferredStartP2PTask)return void Q.error("Deferred start P2P task's been set already!");Q.info("Will start P2P with: ".concat(s," after ").concat(this.backToP2PDelay," seconds...")),this.deferredStartP2PTask=setTimeout(this._startP2PSession.bind(this,s),1e3*this.backToP2PDelay)}else Q.info("Will start P2P with: ".concat(s)),this._startP2PSession(s)}else this.p2pJingleSession&&!r&&(Q.info("Will stop P2P with: ".concat(this.p2pJingleSession.remoteJid)),this.p2pJingleSession.isInitiator&&n>1&&P.a.sendAnalyticsAndLog(Object(K.H)(K.k)),this._stopP2PSession())}else Q.info("Auto P2P disabled")},Y.prototype._shouldBeInP2PMode=function(){var e=this.getParticipants(),t=e.length,n=void 0!==e.find(function(e){return"poltergeist"===e._botType}),r=1===t&&!n;return Q.debug("P2P? peerCount: ".concat(t,", hasBotPeer: ").concat(n," => ").concat(r)),r},Y.prototype._stopP2PSession=function(e,t){if(this.p2pJingleSession){var n=this.isP2PActive();n&&(this.jvbJingleSession&&this._resumeMediaTransferForJvbConnection(),this._removeRemoteP2PTracks()),Q.info("Stopping remote stats for P2P connection"),this.statistics.stopRemoteStats(this.p2pJingleSession.peerconnection),Q.info("Stopping CallStats for P2P connection"),this.statistics.stopCallStats(this.p2pJingleSession.peerconnection),this.p2pJingleSession.terminate(function(){Q.info("P2P session terminate RESULT")},function(t){e&&Q.error("An error occurred while trying to terminate P2P Jingle session",t)},{reason:e||"success",reasonDescription:t||"Turing off P2P session",sendSessionTerminate:this.room&&this.getParticipantById(r.Strophe.getResourceFromJid(this.p2pJingleSession.remoteJid))}),this.p2pJingleSession=null,this._setP2PStatus(!1),n&&(this.jvbJingleSession?this._addRemoteJVBTracks():Q.info("Not adding remote JVB tracks - no session yet"))}else Q.error("No P2P session to be stopped!")},Y.prototype.isP2PActive=function(){return this.p2p},Y.prototype.getP2PConnectionState=function(){return this.isP2PActive()?this.p2pJingleSession.peerconnection.getConnectionState():null},Y.prototype.startP2PSession=function(){var e=this.getParticipants();if(1!==e.length)throw new Error("There must be exactly 1 participant to start the P2P session !");var t=e[0].getJid();this._startP2PSession(t)},Y.prototype.stopP2PSession=function(){this._stopP2PSession()},Y.prototype.getSpeakerStats=function(){return this.speakerStatsCollector.getStats()},Y.prototype.setReceiverVideoConstraint=function(e){this.rtc.setReceiverVideoConstraint(e)},Y.prototype.createVideoSIPGWSession=function(e,t){return this.room?this.videoSIPGWHandler.createVideoSIPGWSession(e,t):new Error(H.ERROR_NO_CONNECTION)}}).call(this,"JitsiConference.js")},function(e,t,n){(function(e,n){function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof("function"==typeof Symbol?Symbol.iterator:"@@iterator")?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==("function"==typeof Symbol?Symbol.prototype:"@@prototype")?"symbol":typeof e})(e)}var i="__lodash_hash_undefined__",o=1,a=2,s=9007199254740991,c="[object Arguments]",u="[object Array]",l="[object AsyncFunction]",d="[object Boolean]",p="[object Date]",f="[object Error]",h="[object Function]",m="[object GeneratorFunction]",v="[object Map]",y="[object Number]",g="[object Null]",S="[object Object]",_="[object Proxy]",b="[object RegExp]",E="[object Set]",T="[object String]",C="[object Symbol]",R="[object Undefined]",A="[object ArrayBuffer]",w="[object DataView]",k=/^\[object .+?Constructor\]$/,O=/^(?:0|[1-9]\d*)$/,I={};I["[object Float32Array]"]=I["[object Float64Array]"]=I["[object Int8Array]"]=I["[object Int16Array]"]=I["[object Int32Array]"]=I["[object Uint8Array]"]=I["[object Uint8ClampedArray]"]=I["[object Uint16Array]"]=I["[object Uint32Array]"]=!0,I[c]=I[u]=I[A]=I[d]=I[w]=I[p]=I[f]=I[h]=I[v]=I[y]=I[S]=I[b]=I[E]=I[T]=I["[object WeakMap]"]=!1;var P="object"==(void 0===e?"undefined":r(e))&&e&&e.Object===Object&&e,D="object"==("undefined"==typeof self?"undefined":r(self))&&self&&self.Object===Object&&self,N=P||D||Function("return this")(),L="object"==r(t)&&t&&!t.nodeType&&t,M=L&&"object"==r(n)&&n&&!n.nodeType&&n,x=M&&M.exports===L,j=x&&P.process,F=(function(){try{return j&&j.binding&&j.binding("util")}catch(e){}})(),U=F&&F.isTypedArray;function H(e,t){for(var n=-1,r=null==e?0:e.length;++nu))return!1;var d=s.get(e);if(d&&s.get(t))return d==t;var p=-1,f=!0,h=n&a?new Ae:void 0;for(s.set(e,t),s.set(t,e);++p-1},Ce.prototype.set=function(e,t){var n=this.__data__,r=Oe(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this},Re.prototype.clear=function(){this.size=0,this.__data__={hash:new Te,map:new(de||Ce),string:new Te}},Re.prototype.delete=function(e){var t=je(this,e).delete(e);return this.size-=t?1:0,t},Re.prototype.get=function(e){return je(this,e).get(e)},Re.prototype.has=function(e){return je(this,e).has(e)},Re.prototype.set=function(e,t){var n=je(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this},Ae.prototype.add=Ae.prototype.push=function(e){return this.__data__.set(e,i),this},Ae.prototype.has=function(e){return this.__data__.has(e)},we.prototype.clear=function(){this.__data__=new Ce,this.size=0},we.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},we.prototype.get=function(e){return this.__data__.get(e)},we.prototype.has=function(e){return this.__data__.has(e)},we.prototype.set=function(e,t){var n=this.__data__;if(n instanceof Ce){var r=n.__data__;if(!de||r.length<199)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new Re(r)}return n.set(e,t),this.size=n.size,this};var Ue=se?function(e){return null==e?[]:(e=Object(e),(function(e,t){for(var n=-1,r=null==e?0:e.length,i=0,o=[];++n-1&&e%1==0&&e-1&&e%1==0&&e<=s}function $e(e){var t=r(e);return null!=e&&("object"==t||"function"==t)}function Xe(e){return null!=e&&"object"==r(e)}var Qe=U?(function(e){return function(t){return e(t)}})(U):function(e){return Xe(e)&&ze(e.length)&&!!I[Ie(e)]};function Ye(e){return null!=(t=e)&&ze(t.length)&&!We(t)?ke(e):Le(e);var t}n.exports=function(e,t){return De(e,t)}}).call(this,n(43),n(61)(e))},function(e,t,n){"use strict";(function(e){n.d(t,"a",function(){return b});var r=n(1),i=n(7),o=n(56),a=n.n(o),s=n(70),c=n.n(s),u=n(4),l=n(17),d=n(2),p=n(9),f=n(8),h=n.n(f),m=n(14),v=n.n(m),y=n(5),g=n(0),S=n.n(g),_=Object(u.getLogger)(e);function b(e){this.conference=e,this.xmppListeners={},e.on(d.TRACK_MUTE_CHANGED,function(t){if(t.isLocal()&&e.statistics){var n=t.isP2P?e.p2pJingleSession:e.jvbJingleSession,r=n&&n.peerconnection||null;e.statistics.sendMuteEvent(r,t.isMuted(),t.getType())}})}b.prototype.setupChatRoomListeners=function(){var e=this,t=this.conference,n=t.room;this.chatRoomForwarder=new c.a(n,this.conference.eventEmitter),n.addListener(S.a.ICE_RESTARTING,function(e){e.isP2P||t.rtc.closeBridgeChannel()}),n.addListener(S.a.ICE_RESTART_SUCCESS,function(e,n){!e.isP2P&&t._setBridgeChannel(n,e.peerconnection)}),n.addListener(S.a.AUDIO_MUTED_BY_FOCUS,function(e){y.a.sendAnalytics(Object(i.J)()),t.mutedByFocusActor=e,t.rtc.setAudioMute(!0).then(function(){t.isMutedByFocus=!0,t.mutedByFocusActor=null}).catch(function(e){t.mutedByFocusActor=null,_.warn("Error while audio muting due to focus request",e)})}),this.chatRoomForwarder.forward(S.a.SUBJECT_CHANGED,d.SUBJECT_CHANGED),this.chatRoomForwarder.forward(S.a.MUC_JOINED,d.CONFERENCE_JOINED),n.addListener(S.a.MUC_JOINED,function(){e.conference.isJvbConnectionInterrupted=!1,Object.keys(n.connectionTimes).forEach(function(e){var t=Object(i.B)("conference_".concat(e),{value:n.connectionTimes[e]});y.a.sendAnalytics(t)}),Object.keys(n.xmpp.connectionTimes).forEach(function(e){var t=Object(i.B)("xmpp_".concat(e),{value:n.xmpp.connectionTimes[e]});y.a.sendAnalytics(t)})}),n.addListener(S.a.RENEGOTIATION_FAILED,function(e,n){n.isP2P||t.eventEmitter.emit(d.CONFERENCE_FAILED,l.OFFER_ANSWER_FAILED,e)}),this.chatRoomForwarder.forward(S.a.ROOM_JOIN_ERROR,d.CONFERENCE_FAILED,l.CONNECTION_ERROR),this.chatRoomForwarder.forward(S.a.ROOM_CONNECT_ERROR,d.CONFERENCE_FAILED,l.CONNECTION_ERROR),this.chatRoomForwarder.forward(S.a.ROOM_CONNECT_NOT_ALLOWED_ERROR,d.CONFERENCE_FAILED,l.NOT_ALLOWED_ERROR),this.chatRoomForwarder.forward(S.a.ROOM_MAX_USERS_ERROR,d.CONFERENCE_FAILED,l.CONFERENCE_MAX_USERS),this.chatRoomForwarder.forward(S.a.PASSWORD_REQUIRED,d.CONFERENCE_FAILED,l.PASSWORD_REQUIRED),this.chatRoomForwarder.forward(S.a.AUTHENTICATION_REQUIRED,d.CONFERENCE_FAILED,l.AUTHENTICATION_REQUIRED),this.chatRoomForwarder.forward(S.a.BRIDGE_DOWN,d.CONFERENCE_FAILED,l.VIDEOBRIDGE_NOT_AVAILABLE),n.addListener(S.a.BRIDGE_DOWN,function(){return y.a.sendAnalytics(Object(i.z)())}),this.chatRoomForwarder.forward(S.a.RESERVATION_ERROR,d.CONFERENCE_FAILED,l.RESERVATION_ERROR),this.chatRoomForwarder.forward(S.a.GRACEFUL_SHUTDOWN,d.CONFERENCE_FAILED,l.GRACEFUL_SHUTDOWN),n.addListener(S.a.CONNECTION_ICE_FAILED,function(e){t._onIceConnectionFailed(e)}),this.chatRoomForwarder.forward(S.a.MUC_DESTROYED,d.CONFERENCE_FAILED,l.CONFERENCE_DESTROYED),this.chatRoomForwarder.forward(S.a.CHAT_ERROR_RECEIVED,d.CONFERENCE_ERROR,l.CHAT_ERROR),this.chatRoomForwarder.forward(S.a.FOCUS_DISCONNECTED,d.CONFERENCE_FAILED,l.FOCUS_DISCONNECTED),n.addListener(S.a.FOCUS_LEFT,function(){y.a.sendAnalytics(Object(i.D)()),t.eventEmitter.emit(d.CONFERENCE_FAILED,l.FOCUS_LEFT)}),n.addListener(S.a.SESSION_ACCEPT_TIMEOUT,function(e){y.a.sendAnalyticsAndLog(Object(i.F)(i.b,{p2p:e.isP2P}))}),n.addListener(S.a.RECORDER_STATE_CHANGED,function(e,n){if(n){var i=t.getParticipantById(r.Strophe.getResourceFromJid(n));"off"===e.getStatus()?e.setTerminator(i):"on"===e.getStatus()&&e.setInitiator(i)}t.eventEmitter.emit(d.RECORDER_STATE_CHANGED,e)}),this.chatRoomForwarder.forward(S.a.TRANSCRIPTION_STATUS_CHANGED,d.TRANSCRIPTION_STATUS_CHANGED),this.chatRoomForwarder.forward(S.a.VIDEO_SIP_GW_AVAILABILITY_CHANGED,d.VIDEO_SIP_GW_AVAILABILITY_CHANGED),this.chatRoomForwarder.forward(S.a.VIDEO_SIP_GW_SESSION_STATE_CHANGED,d.VIDEO_SIP_GW_SESSION_STATE_CHANGED),this.chatRoomForwarder.forward(S.a.PHONE_NUMBER_CHANGED,d.PHONE_NUMBER_CHANGED),n.setParticipantPropertyListener(function(e,n){var r=t.getParticipantById(n);r&&r.setProperty(e.tagName.substring("jitsi_participant_".length),e.value)}),n.addListener(S.a.KICKED,t.onMemberKicked.bind(t)),n.addListener(S.a.SUSPEND_DETECTED,t.onSuspendDetected.bind(t)),this.chatRoomForwarder.forward(S.a.MUC_LOCK_CHANGED,d.LOCK_STATE_CHANGED),n.addListener(S.a.MUC_MEMBER_JOINED,t.onMemberJoined.bind(t)),n.addListener(S.a.MUC_MEMBER_BOT_TYPE_CHANGED,t._onMemberBotTypeChanged.bind(t)),n.addListener(S.a.MUC_MEMBER_LEFT,t.onMemberLeft.bind(t)),this.chatRoomForwarder.forward(S.a.MUC_LEFT,d.CONFERENCE_LEFT),n.addListener(S.a.DISPLAY_NAME_CHANGED,t.onDisplayNameChanged.bind(t)),n.addListener(S.a.LOCAL_ROLE_CHANGED,function(e){t.onLocalRoleChanged(e),t.statistics&&t.isModerator()&&t.on(d.RECORDER_STATE_CHANGED,function(e){var t={error:e.getError(),id:"recorder_status",status:e.getStatus()};y.a.sendLog(JSON.stringify(t))})}),n.addListener(S.a.MUC_ROLE_CHANGED,t.onUserRoleChanged.bind(t)),n.addListener(a.a.IDENTITY_UPDATED,function(e,n){t.authEnabled=e,t.authIdentity=n,t.eventEmitter.emit(d.AUTH_STATUS_CHANGED,e,n)}),n.addListener(S.a.MESSAGE_RECEIVED,function(e,n,i,o,a){var s=r.Strophe.getResourceFromJid(e);t.eventEmitter.emit(d.MESSAGE_RECEIVED,s,i,a,n)}),n.addListener(S.a.PRIVATE_MESSAGE_RECEIVED,function(e,n,i,o,a){var s=r.Strophe.getResourceFromJid(e);t.eventEmitter.emit(d.PRIVATE_MESSAGE_RECEIVED,s,i,a)}),n.addListener(S.a.PRESENCE_STATUS,function(e,n){var i=r.Strophe.getResourceFromJid(e),o=t.getParticipantById(i);o&&o._status!==n&&(o._status=n,t.eventEmitter.emit(d.USER_STATUS_CHANGED,i,n))}),n.addListener(S.a.JSON_MESSAGE_RECEIVED,function(e,n){var i=r.Strophe.getResourceFromJid(e),o=t.getParticipantById(i);o?t.eventEmitter.emit(d.ENDPOINT_MESSAGE_RECEIVED,o,n):_.warn("Ignored XMPPEvents.JSON_MESSAGE_RECEIVED for not existing "+"participant: ".concat(e),n)}),n.addPresenceListener("startmuted",function(e,n){var r=!1;if(t.myUserId()===n&&t.isModerator())r=!0;else{var i=t.getParticipantById(n);i&&i.isModerator()&&(r=!0)}if(r){var o="true"===e.attributes.audio,a="true"===e.attributes.video,s=!1;o!==t.startMutedPolicy.audio&&(t.startMutedPolicy.audio=o,s=!0),a!==t.startMutedPolicy.video&&(t.startMutedPolicy.video=a,s=!0),s&&t.eventEmitter.emit(d.START_MUTED_POLICY_CHANGED,t.startMutedPolicy)}}),t.statistics&&(n.addListener(S.a.CONNECTION_ICE_FAILED,function(e){t.statistics.sendIceConnectionFailedEvent(e.peerconnection)}),n.addListener(S.a.ADD_ICE_CANDIDATE_FAILED,function(e,n){t.statistics.sendAddIceCandidateFailed(e,n)}))},b.prototype.setupRTCListeners=function(){var e=this.conference,t=e.rtc;t.addListener(h.a.REMOTE_TRACK_ADDED,e.onRemoteTrackAdded.bind(e)),t.addListener(h.a.REMOTE_TRACK_REMOVED,e.onRemoteTrackRemoved.bind(e)),t.addListener(h.a.DOMINANT_SPEAKER_CHANGED,function(t){e.lastDominantSpeaker!==t&&e.room&&(e.lastDominantSpeaker=t,e.eventEmitter.emit(d.DOMINANT_SPEAKER_CHANGED,t),e.statistics&&e.myUserId()===t&&e.statistics.sendDominantSpeakerEvent(e.room.roomjid))}),t.addListener(h.a.DATA_CHANNEL_OPEN,function(){var t=window.performance.now(),n="data.channel.opened";_.log("(TIME) ".concat(n),t),e.room.connectionTimes[n]=t,y.a.sendAnalytics(Object(i.B)(n,{value:t})),e.eventEmitter.emit(d.DATA_CHANNEL_OPENED)}),t.addListener(h.a.ENDPOINT_MESSAGE_RECEIVED,function(t,n){var r=e.getParticipantById(t);r?e.eventEmitter.emit(d.ENDPOINT_MESSAGE_RECEIVED,r,n):_.warn("Ignored ENDPOINT_MESSAGE_RECEIVED for not existing "+"participant: ".concat(t),n)}),t.addListener(h.a.LOCAL_UFRAG_CHANGED,function(e,t){e.isP2P||y.a.sendLog(JSON.stringify({id:"local_ufrag",value:t}))}),t.addListener(h.a.REMOTE_UFRAG_CHANGED,function(e,t){e.isP2P||y.a.sendLog(JSON.stringify({id:"remote_ufrag",value:t}))}),t.addListener(h.a.CREATE_ANSWER_FAILED,function(t,n){e.statistics.sendCreateAnswerFailed(t,n),n.isP2P||e.eventEmitter.emit(d.CONFERENCE_FAILED,l.OFFER_ANSWER_FAILED,t)}),t.addListener(h.a.CREATE_OFFER_FAILED,function(t,n){e.statistics.sendCreateOfferFailed(t,n),n.isP2P||e.eventEmitter.emit(d.CONFERENCE_FAILED,l.OFFER_ANSWER_FAILED,t)}),t.addListener(h.a.SET_LOCAL_DESCRIPTION_FAILED,function(t,n){e.statistics.sendSetLocalDescFailed(t,n),n.isP2P||e.eventEmitter.emit(d.CONFERENCE_FAILED,l.OFFER_ANSWER_FAILED,t)}),t.addListener(h.a.SET_REMOTE_DESCRIPTION_FAILED,function(t,n){e.statistics.sendSetRemoteDescFailed(t,n),n.isP2P||e.eventEmitter.emit(d.CONFERENCE_FAILED,l.OFFER_ANSWER_FAILED,t)}),t.addListener(h.a.LOCAL_TRACK_SSRC_UPDATED,function(t,n){t.isVideoTrack()&&t.videoType===v.a.DESKTOP&&e.statistics.sendScreenSharingEvent(!0,n)})},b.prototype.removeXMPPListeners=function(){var e=this,t=this.conference;t.xmpp.caps.removeListener(S.a.PARTCIPANT_FEATURES_CHANGED,this.xmppListeners[S.a.PARTCIPANT_FEATURES_CHANGED]),delete this.xmppListeners[S.a.PARTCIPANT_FEATURES_CHANGED],Object.keys(this.xmppListeners).forEach(function(n){t.xmpp.removeListener(n,e.xmppListeners[n])}),this.xmppListeners={}},b.prototype.setupXMPPListeners=function(){var e=this.conference,t=function(t){var n=e.getParticipantById(r.Strophe.getResourceFromJid(t));n&&e.eventEmitter.emit(d.PARTCIPANT_FEATURES_CHANGED,n)};e.xmpp.caps.addListener(S.a.PARTCIPANT_FEATURES_CHANGED,t),this.xmppListeners[S.a.PARTCIPANT_FEATURES_CHANGED]=t,this._addConferenceXMPPListener(S.a.CALL_INCOMING,e.onIncomingCall.bind(e)),this._addConferenceXMPPListener(S.a.CALL_ACCEPTED,e.onCallAccepted.bind(e)),this._addConferenceXMPPListener(S.a.TRANSPORT_INFO,e.onTransportInfo.bind(e)),this._addConferenceXMPPListener(S.a.CALL_ENDED,e.onCallEnded.bind(e)),this._addConferenceXMPPListener(S.a.START_MUTED_FROM_FOCUS,function(t,n){e.options.config.ignoreStartMuted||(e.startAudioMuted=t,e.startVideoMuted=n,e.getLocalTracks().forEach(function(t){switch(t.getType()){case p.a:e.startAudioMuted&&t.mute();break;case p.b:e.startVideoMuted&&t.mute()}}),e.eventEmitter.emit(d.STARTED_MUTED))})},b.prototype._addConferenceXMPPListener=function(e,t){this.xmppListeners[e]=t,this.conference.xmpp.addListener(e,t)},b.prototype.setupStatisticsListeners=function(){var e=this.conference;e.statistics&&(e.statistics.addAudioLevelListener(function(t,n,r,i){e.rtc.setAudioLevel(t,n,r,i)}),e.statistics.addBeforeDisposedListener(function(){e.eventEmitter.emit(d.BEFORE_STATISTICS_DISPOSED)}),e.options.config.startSilent||e.statistics.addByteSentStatsListener(function(t,n){e.getLocalTracks(p.a).forEach(function(e){var r=t.getLocalSSRC(e);r&&n.hasOwnProperty(r)&&e._onByteSentStatsReceived(t,n[r])})}))}}).call(this,"JitsiConferenceEventManager.js")},function(e,t){function n(e,t){if(!e||!t||"function"!=typeof e.addListener||"function"!=typeof t.emit)throw new Error("Invalid arguments passed to EventEmitterForwarder");this.src=e,this.dest=t}n.prototype.forward=function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&this.analyticsHandlers.forEach(function(e){"function"==typeof e.dispose&&e.dispose()}),this.setAnalyticsHandlers([]),this.disposed=!0}},{key:"setAnalyticsHandlers",value:function(e){var t=this;if(!this.disposed){this.analyticsHandlers=new Set(e),this._setUserProperties();var n=this.cache;this.cache=null,n&&n.forEach(function(e){return t._sendEvent(e)})}}},{key:"_setUserProperties",value:function(){var e=this;this.analyticsHandlers.forEach(function(t){try{t.setUserProperties(e.permanentProperties)}catch(e){l.warn("Error in setUserProperties method of one of the "+"analytics handlers: ".concat(e))}})}},{key:"addPermanentProperties",value:function(e){this.permanentProperties=(function(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:{};if(!this.disposed){var n=null;"string"==typeof e?n={type:r.t,action:e,actionSubject:e,source:e,attributes:t}:"object"===s(e)&&(n=e),this._verifyRequiredFields(n)?this._sendEvent(n):l.error("Dropping a mis-formatted event: ".concat(JSON.stringify(n)))}}},{key:"_verifyRequiredFields",value:function(e){if(!e)return!1;e.type||(e.type=r.t);var t=e.type;return t!==r.t&&t!==r.u&&t!==r.w&&t!==r.v?(l.error("Unknown event type: ".concat(t)),!1):t===r.u?Boolean(e.name):(e.action=e.action||e.name||e.actionSubject,e.actionSubject=e.actionSubject||e.name||e.action,e.source=e.source||e.name||e.action||e.actionSubject,e.action&&e.actionSubject&&e.source?!!(t!==r.v||(e.objectType=e.objectType||"generic-object-type",e.containerType=e.containerType||"conference","conference"!==e.containerType||e.containerId||(e.containerId=this.conferenceName),e.objectType&&e.objectId&&e.containerType&&e.containerId))||(l.error("Required field missing (containerId, containerType, objectId or objectType)"),!1):(l.error("Required field missing (action, actionSubject or source)"),!1))}},{key:"_maybeCacheEvent",value:function(e){return!!this.cache&&(this.cache.push(e),this.cache.length>100&&this.cache.splice(0,1),!0)}},{key:"_sendEvent",value:function(e){this._maybeCacheEvent(e)||this.analyticsHandlers.forEach(function(t){try{t.sendEvent(e)}catch(e){l.warn("Error sending analytics event: ".concat(e))}})}}])&&u(t.prototype,n),e})();t.a=new d}).call(this,"modules/statistics/AnalyticsAdapter.js")},function(e,t,n){"use strict";(function(e,r){n.d(t,"a",function(){return p});var i=n(4),o=n(19);function a(e){return(a="function"==typeof Symbol&&"symbol"==typeof("function"==typeof Symbol?Symbol.iterator:"@@iterator")?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==("function"==typeof Symbol?Symbol.prototype:"@@prototype")?"symbol":typeof e})(e)}function s(e,t){for(var n=0;n-1}},{key:"usesNewGumFlow",value:function(){return this.isChrome()?!this.isVersionLessThan(61):!(!this.isFirefox()&&!this.isSafariWithWebrtc())||!!this.isChromiumBased()&&this._getChromiumBasedVersion()>=61}},{key:"usesAdapter",value:function(){return this.usesNewGumFlow()||this.isEdge()}},{key:"supportsGetDisplayMedia",value:function(){return void 0!==navigator.getDisplayMedia||void 0!==navigator.mediaDevices&&void 0!==navigator.mediaDevices.getDisplayMedia}},{key:"supportsSdpSemantics",value:function(){return this.isChromiumBased()&&this._getChromiumBasedVersion()>=65}},{key:"_getChromiumBasedVersion",value:function(){if(this.isChromiumBased()){if(this.isNWJS())return Number.parseInt(r.versions.chromium,10);var e=navigator.userAgent;if(e.match(/Chrome/))return Number.parseInt(e.match(/Chrome\/([\d.]+)/)[1],10)}return-1}}])&&s(n.prototype,i),t})(o.a)}).call(this,"modules/browser/BrowserCapabilities.js",n(48))},function(module,exports,__webpack_require__){(function(process,global){var __WEBPACK_AMD_DEFINE_RESULT__;!(function(){"use strict";var ERROR="input is invalid type",WINDOW="object"==typeof window,root=WINDOW?window:{};root.JS_MD5_NO_WINDOW&&(WINDOW=!1);var WEB_WORKER=!WINDOW&&"object"==typeof self,NODE_JS=!root.JS_MD5_NO_NODE_JS&&"object"==typeof process&&process.versions&&process.versions.node;NODE_JS?root=global:WEB_WORKER&&(root=self);var COMMON_JS=!root.JS_MD5_NO_COMMON_JS&&"object"==typeof module&&module.exports,AMD=__webpack_require__(122),ARRAY_BUFFER=!root.JS_MD5_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,HEX_CHARS="0123456789abcdef".split(""),EXTRA=[128,32768,8388608,-2147483648],SHIFT=[0,8,16,24],OUTPUT_TYPES=["hex","array","digest","buffer","arrayBuffer","base64"],BASE64_ENCODE_CHAR="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),blocks=[],buffer8;if(ARRAY_BUFFER){var buffer=new ArrayBuffer(68);buffer8=new Uint8Array(buffer),blocks=new Uint32Array(buffer)}!root.JS_MD5_NO_NODE_JS&&Array.isArray||(Array.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),!ARRAY_BUFFER||!root.JS_MD5_NO_ARRAY_BUFFER_IS_VIEW&&ArrayBuffer.isView||(ArrayBuffer.isView=function(e){return"object"==typeof e&&e.buffer&&e.buffer.constructor===ArrayBuffer});var createOutputMethod=function(e){return function(t){return new Md5(!0).update(t)[e]()}},createMethod=function(){var e=createOutputMethod("hex");NODE_JS&&(e=nodeWrap(e)),e.create=function(){return new Md5},e.update=function(t){return e.create().update(t)};for(var t=0;t>2]|=e[o]<>6,c[i++]=128|63&r):r<55296||r>=57344?(c[i++]=224|r>>12,c[i++]=128|r>>6&63,c[i++]=128|63&r):(r=65536+((1023&r)<<10|1023&e.charCodeAt(++o)),c[i++]=240|r>>18,c[i++]=128|r>>12&63,c[i++]=128|r>>6&63,c[i++]=128|63&r);else for(i=this.start;o>2]|=r<>2]|=(192|r>>6)<>2]|=(128|63&r)<=57344?(s[i>>2]|=(224|r>>12)<>2]|=(128|r>>6&63)<>2]|=(128|63&r)<>2]|=(240|r>>18)<>2]|=(128|r>>12&63)<>2]|=(128|r>>6&63)<>2]|=(128|63&r)<=64?(this.start=i-64,this.hash(),this.hashed=!0):this.start=i}return this.bytes>4294967295&&(this.hBytes+=this.bytes/4294967296<<0,this.bytes=this.bytes%4294967296),this}},Md5.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var e=this.blocks,t=this.lastByteIndex;e[t>>2]|=EXTRA[3&t],t>=56&&(this.hashed||this.hash(),e[0]=e[16],e[16]=e[1]=e[2]=e[3]=e[4]=e[5]=e[6]=e[7]=e[8]=e[9]=e[10]=e[11]=e[12]=e[13]=e[14]=e[15]=0),e[14]=this.bytes<<3,e[15]=this.hBytes<<3|this.bytes>>>29,this.hash()}},Md5.prototype.hash=function(){var e,t,n,r,i,o,a=this.blocks;this.first?t=((t=((e=((e=a[0]-680876937)<<7|e>>>25)-271733879<<0)^(n=((n=(-271733879^(r=((r=(-1732584194^2004318071&e)+a[1]-117830708)<<12|r>>>20)+e<<0)&(-271733879^e))+a[2]-1126478375)<<17|n>>>15)+r<<0)&(r^e))+a[3]-1316259209)<<22|t>>>10)+n<<0:(e=this.h0,t=this.h1,n=this.h2,t=((t+=((e=((e+=((r=this.h3)^t&(n^r))+a[0]-680876936)<<7|e>>>25)+t<<0)^(n=((n+=(t^(r=((r+=(n^e&(t^n))+a[1]-389564586)<<12|r>>>20)+e<<0)&(e^t))+a[2]+606105819)<<17|n>>>15)+r<<0)&(r^e))+a[3]-1044525330)<<22|t>>>10)+n<<0),t=((t+=((e=((e+=(r^t&(n^r))+a[4]-176418897)<<7|e>>>25)+t<<0)^(n=((n+=(t^(r=((r+=(n^e&(t^n))+a[5]+1200080426)<<12|r>>>20)+e<<0)&(e^t))+a[6]-1473231341)<<17|n>>>15)+r<<0)&(r^e))+a[7]-45705983)<<22|t>>>10)+n<<0,t=((t+=((e=((e+=(r^t&(n^r))+a[8]+1770035416)<<7|e>>>25)+t<<0)^(n=((n+=(t^(r=((r+=(n^e&(t^n))+a[9]-1958414417)<<12|r>>>20)+e<<0)&(e^t))+a[10]-42063)<<17|n>>>15)+r<<0)&(r^e))+a[11]-1990404162)<<22|t>>>10)+n<<0,t=((t+=((e=((e+=(r^t&(n^r))+a[12]+1804603682)<<7|e>>>25)+t<<0)^(n=((n+=(t^(r=((r+=(n^e&(t^n))+a[13]-40341101)<<12|r>>>20)+e<<0)&(e^t))+a[14]-1502002290)<<17|n>>>15)+r<<0)&(r^e))+a[15]+1236535329)<<22|t>>>10)+n<<0,t=((t+=((r=((r+=(t^n&((e=((e+=(n^r&(t^n))+a[1]-165796510)<<5|e>>>27)+t<<0)^t))+a[6]-1069501632)<<9|r>>>23)+e<<0)^e&((n=((n+=(e^t&(r^e))+a[11]+643717713)<<14|n>>>18)+r<<0)^r))+a[0]-373897302)<<20|t>>>12)+n<<0,t=((t+=((r=((r+=(t^n&((e=((e+=(n^r&(t^n))+a[5]-701558691)<<5|e>>>27)+t<<0)^t))+a[10]+38016083)<<9|r>>>23)+e<<0)^e&((n=((n+=(e^t&(r^e))+a[15]-660478335)<<14|n>>>18)+r<<0)^r))+a[4]-405537848)<<20|t>>>12)+n<<0,t=((t+=((r=((r+=(t^n&((e=((e+=(n^r&(t^n))+a[9]+568446438)<<5|e>>>27)+t<<0)^t))+a[14]-1019803690)<<9|r>>>23)+e<<0)^e&((n=((n+=(e^t&(r^e))+a[3]-187363961)<<14|n>>>18)+r<<0)^r))+a[8]+1163531501)<<20|t>>>12)+n<<0,t=((t+=((r=((r+=(t^n&((e=((e+=(n^r&(t^n))+a[13]-1444681467)<<5|e>>>27)+t<<0)^t))+a[2]-51403784)<<9|r>>>23)+e<<0)^e&((n=((n+=(e^t&(r^e))+a[7]+1735328473)<<14|n>>>18)+r<<0)^r))+a[12]-1926607734)<<20|t>>>12)+n<<0,t=((t+=((o=(r=((r+=((i=t^n)^(e=((e+=(i^r)+a[5]-378558)<<4|e>>>28)+t<<0))+a[8]-2022574463)<<11|r>>>21)+e<<0)^e)^(n=((n+=(o^t)+a[11]+1839030562)<<16|n>>>16)+r<<0))+a[14]-35309556)<<23|t>>>9)+n<<0,t=((t+=((o=(r=((r+=((i=t^n)^(e=((e+=(i^r)+a[1]-1530992060)<<4|e>>>28)+t<<0))+a[4]+1272893353)<<11|r>>>21)+e<<0)^e)^(n=((n+=(o^t)+a[7]-155497632)<<16|n>>>16)+r<<0))+a[10]-1094730640)<<23|t>>>9)+n<<0,t=((t+=((o=(r=((r+=((i=t^n)^(e=((e+=(i^r)+a[13]+681279174)<<4|e>>>28)+t<<0))+a[0]-358537222)<<11|r>>>21)+e<<0)^e)^(n=((n+=(o^t)+a[3]-722521979)<<16|n>>>16)+r<<0))+a[6]+76029189)<<23|t>>>9)+n<<0,t=((t+=((o=(r=((r+=((i=t^n)^(e=((e+=(i^r)+a[9]-640364487)<<4|e>>>28)+t<<0))+a[12]-421815835)<<11|r>>>21)+e<<0)^e)^(n=((n+=(o^t)+a[15]+530742520)<<16|n>>>16)+r<<0))+a[2]-995338651)<<23|t>>>9)+n<<0,t=((t+=((r=((r+=(t^((e=((e+=(n^(t|~r))+a[0]-198630844)<<6|e>>>26)+t<<0)|~n))+a[7]+1126891415)<<10|r>>>22)+e<<0)^((n=((n+=(e^(r|~t))+a[14]-1416354905)<<15|n>>>17)+r<<0)|~e))+a[5]-57434055)<<21|t>>>11)+n<<0,t=((t+=((r=((r+=(t^((e=((e+=(n^(t|~r))+a[12]+1700485571)<<6|e>>>26)+t<<0)|~n))+a[3]-1894986606)<<10|r>>>22)+e<<0)^((n=((n+=(e^(r|~t))+a[10]-1051523)<<15|n>>>17)+r<<0)|~e))+a[1]-2054922799)<<21|t>>>11)+n<<0,t=((t+=((r=((r+=(t^((e=((e+=(n^(t|~r))+a[8]+1873313359)<<6|e>>>26)+t<<0)|~n))+a[15]-30611744)<<10|r>>>22)+e<<0)^((n=((n+=(e^(r|~t))+a[6]-1560198380)<<15|n>>>17)+r<<0)|~e))+a[13]+1309151649)<<21|t>>>11)+n<<0,t=((t+=((r=((r+=(t^((e=((e+=(n^(t|~r))+a[4]-145523070)<<6|e>>>26)+t<<0)|~n))+a[11]-1120210379)<<10|r>>>22)+e<<0)^((n=((n+=(e^(r|~t))+a[2]+718787259)<<15|n>>>17)+r<<0)|~e))+a[9]-343485551)<<21|t>>>11)+n<<0,this.first?(this.h0=e+1732584193<<0,this.h1=t-271733879<<0,this.h2=n-1732584194<<0,this.h3=r+271733878<<0,this.first=!1):(this.h0=this.h0+e<<0,this.h1=this.h1+t<<0,this.h2=this.h2+n<<0,this.h3=this.h3+r<<0)},Md5.prototype.hex=function(){this.finalize();var e=this.h0,t=this.h1,n=this.h2,r=this.h3;return HEX_CHARS[e>>4&15]+HEX_CHARS[15&e]+HEX_CHARS[e>>12&15]+HEX_CHARS[e>>8&15]+HEX_CHARS[e>>20&15]+HEX_CHARS[e>>16&15]+HEX_CHARS[e>>28&15]+HEX_CHARS[e>>24&15]+HEX_CHARS[t>>4&15]+HEX_CHARS[15&t]+HEX_CHARS[t>>12&15]+HEX_CHARS[t>>8&15]+HEX_CHARS[t>>20&15]+HEX_CHARS[t>>16&15]+HEX_CHARS[t>>28&15]+HEX_CHARS[t>>24&15]+HEX_CHARS[n>>4&15]+HEX_CHARS[15&n]+HEX_CHARS[n>>12&15]+HEX_CHARS[n>>8&15]+HEX_CHARS[n>>20&15]+HEX_CHARS[n>>16&15]+HEX_CHARS[n>>28&15]+HEX_CHARS[n>>24&15]+HEX_CHARS[r>>4&15]+HEX_CHARS[15&r]+HEX_CHARS[r>>12&15]+HEX_CHARS[r>>8&15]+HEX_CHARS[r>>20&15]+HEX_CHARS[r>>16&15]+HEX_CHARS[r>>28&15]+HEX_CHARS[r>>24&15]},Md5.prototype.toString=Md5.prototype.hex,Md5.prototype.digest=function(){this.finalize();var e=this.h0,t=this.h1,n=this.h2,r=this.h3;return[255&e,e>>8&255,e>>16&255,e>>24&255,255&t,t>>8&255,t>>16&255,t>>24&255,255&n,n>>8&255,n>>16&255,n>>24&255,255&r,r>>8&255,r>>16&255,r>>24&255]},Md5.prototype.array=Md5.prototype.digest,Md5.prototype.arrayBuffer=function(){this.finalize();var e=new ArrayBuffer(16),t=new Uint32Array(e);return t[0]=this.h0,t[1]=this.h1,t[2]=this.h2,t[3]=this.h3,e},Md5.prototype.buffer=Md5.prototype.arrayBuffer,Md5.prototype.base64=function(){for(var e,t,n,r="",i=this.array(),o=0;o<15;)e=i[o++],t=i[o++],n=i[o++],r+=BASE64_ENCODE_CHAR[e>>>2]+BASE64_ENCODE_CHAR[63&(e<<4|t>>>4)]+BASE64_ENCODE_CHAR[63&(t<<2|n>>>6)]+BASE64_ENCODE_CHAR[63&n];return e=i[o],r+(BASE64_ENCODE_CHAR[e>>>2]+BASE64_ENCODE_CHAR[e<<4&63]+"==")};var exports=createMethod();COMMON_JS?module.exports=exports:(root.md5=exports,AMD&&(__WEBPACK_AMD_DEFINE_RESULT__=function(){return exports}.call(exports,__webpack_require__,exports,module),void 0===__WEBPACK_AMD_DEFINE_RESULT__||(module.exports=__WEBPACK_AMD_DEFINE_RESULT__)))})()}).call(this,__webpack_require__(48),__webpack_require__(43))},function(e,t,n){var r=n(33),i=["Aaliyah","Aaron","Abagail","Abbey","Abbie","Abbigail","Abby","Abdiel","Abdul","Abdullah","Abe","Abel","Abelardo","Abigail","Abigale","Abigayle","Abner","Abraham","Ada","Adah","Adalberto","Adaline","Adam","Adan","Addie","Addison","Adela","Adelbert","Adele","Adelia","Adeline","Adell","Adella","Adelle","Aditya","Adolf","Adolfo","Adolph","Adolphus","Adonis","Adrain","Adrian","Adriana","Adrianna","Adriel","Adrien","Adrienne","Afton","Aglae","Agnes","Agustin","Agustina","Ahmad","Ahmed","Aida","Aidan","Aiden","Aileen","Aisha","Aiyana","Akeem","Al","Alaina","Alan","Alana","Alanis","Alanna","Alayna","Alba","Albert","Alberta","Albertha","Alberto","Albin","Albina","Alda","Alden","Alec","Aleen","Alejandra","Alejandrin","Alek","Alena","Alene","Alessandra","Alessandro","Alessia","Aletha","Alex","Alexa","Alexander","Alexandra","Alexandre","Alexandrea","Alexandria","Alexandrine","Alexandro","Alexane","Alexanne","Alexie","Alexis","Alexys","Alexzander","Alf","Alfonso","Alfonzo","Alford","Alfred","Alfreda","Alfredo","Ali","Alia","Alice","Alicia","Alisa","Alisha","Alison","Alivia","Aliya","Aliyah","Aliza","Alize","Allan","Allen","Allene","Allie","Allison","Ally","Alphonso","Alta","Althea","Alva","Alvah","Alvena","Alvera","Alverta","Alvina","Alvis","Alyce","Alycia","Alysa","Alysha","Alyson","Alysson","Amalia","Amanda","Amani","Amara","Amari","Amaya","Amber","Ambrose","Amelia","Amelie","Amely","America","Americo","Amie","Amina","Amir","Amira","Amiya","Amos","Amparo","Amy","Amya","Ana","Anabel","Anabelle","Anahi","Anais","Anastacio","Anastasia","Anderson","Andre","Andreane","Andreanne","Andres","Andrew","Andy","Angel","Angela","Angelica","Angelina","Angeline","Angelita","Angelo","Angie","Angus","Anibal","Anika","Anissa","Anita","Aniya","Aniyah","Anjali","Anna","Annabel","Annabell","Annabelle","Annalise","Annamae","Annamarie","Anne","Annetta","Annette","Annie","Ansel","Ansley","Anthony","Antoinette","Antone","Antonetta","Antonette","Antonia","Antonietta","Antonina","Antonio","Antwan","Antwon","Anya","April","Ara","Araceli","Aracely","Arch","Archibald","Ardella","Arden","Ardith","Arely","Ari","Ariane","Arianna","Aric","Ariel","Arielle","Arjun","Arlene","Arlie","Arlo","Armand","Armando","Armani","Arnaldo","Arne","Arno","Arnold","Arnoldo","Arnulfo","Aron","Art","Arthur","Arturo","Arvel","Arvid","Arvilla","Aryanna","Asa","Asha","Ashlee","Ashleigh","Ashley","Ashly","Ashlynn","Ashton","Ashtyn","Asia","Assunta","Astrid","Athena","Aubree","Aubrey","Audie","Audra","Audreanne","Audrey","August","Augusta","Augustine","Augustus","Aurelia","Aurelie","Aurelio","Aurore","Austen","Austin","Austyn","Autumn","Ava","Avery","Avis","Axel","Ayana","Ayden","Ayla","Aylin","Baby","Bailee","Bailey","Barbara","Barney","Baron","Barrett","Barry","Bart","Bartholome","Barton","Baylee","Beatrice","Beau","Beaulah","Bell","Bella","Belle","Ben","Benedict","Benjamin","Bennett","Bennie","Benny","Benton","Berenice","Bernadette","Bernadine","Bernard","Bernardo","Berneice","Bernhard","Bernice","Bernie","Berniece","Bernita","Berry","Bert","Berta","Bertha","Bertram","Bertrand","Beryl","Bessie","Beth","Bethany","Bethel","Betsy","Bette","Bettie","Betty","Bettye","Beulah","Beverly","Bianka","Bill","Billie","Billy","Birdie","Blair","Blaise","Blake","Blanca","Blanche","Blaze","Bo","Bobbie","Bobby","Bonita","Bonnie","Boris","Boyd","Brad","Braden","Bradford","Bradley","Bradly","Brady","Braeden","Brain","Brandi","Brando","Brandon","Brandt","Brandy","Brandyn","Brannon","Branson","Brant","Braulio","Braxton","Brayan","Breana","Breanna","Breanne","Brenda","Brendan","Brenden","Brendon","Brenna","Brennan","Brennon","Brent","Bret","Brett","Bria","Brian","Briana","Brianne","Brice","Bridget","Bridgette","Bridie","Brielle","Brigitte","Brionna","Brisa","Britney","Brittany","Brock","Broderick","Brody","Brook","Brooke","Brooklyn","Brooks","Brown","Bruce","Bryana","Bryce","Brycen","Bryon","Buck","Bud","Buddy","Buford","Bulah","Burdette","Burley","Burnice","Buster","Cade","Caden","Caesar","Caitlyn","Cale","Caleb","Caleigh","Cali","Calista","Callie","Camden","Cameron","Camila","Camilla","Camille","Camren","Camron","Camryn","Camylle","Candace","Candelario","Candice","Candida","Candido","Cara","Carey","Carissa","Carlee","Carleton","Carley","Carli","Carlie","Carlo","Carlos","Carlotta","Carmel","Carmela","Carmella","Carmelo","Carmen","Carmine","Carol","Carolanne","Carole","Carolina","Caroline","Carolyn","Carolyne","Carrie","Carroll","Carson","Carter","Cary","Casandra","Casey","Casimer","Casimir","Casper","Cassandra","Cassandre","Cassidy","Cassie","Catalina","Caterina","Catharine","Catherine","Cathrine","Cathryn","Cathy","Cayla","Ceasar","Cecelia","Cecil","Cecile","Cecilia","Cedrick","Celestine","Celestino","Celia","Celine","Cesar","Chad","Chadd","Chadrick","Chaim","Chance","Chandler","Chanel","Chanelle","Charity","Charlene","Charles","Charley","Charlie","Charlotte","Chase","Chasity","Chauncey","Chaya","Chaz","Chelsea","Chelsey","Chelsie","Chesley","Chester","Chet","Cheyanne","Cheyenne","Chloe","Chris","Christ","Christa","Christelle","Christian","Christiana","Christina","Christine","Christop","Christophe","Christopher","Christy","Chyna","Ciara","Cicero","Cielo","Cierra","Cindy","Citlalli","Clair","Claire","Clara","Clarabelle","Clare","Clarissa","Clark","Claud","Claude","Claudia","Claudie","Claudine","Clay","Clemens","Clement","Clementina","Clementine","Clemmie","Cleo","Cleora","Cleta","Cletus","Cleve","Cleveland","Clifford","Clifton","Clint","Clinton","Clotilde","Clovis","Cloyd","Clyde","Coby","Cody","Colby","Cole","Coleman","Colin","Colleen","Collin","Colt","Colten","Colton","Columbus","Concepcion","Conner","Connie","Connor","Conor","Conrad","Constance","Constantin","Consuelo","Cooper","Cora","Coralie","Corbin","Cordelia","Cordell","Cordia","Cordie","Corene","Corine","Cornelius","Cornell","Corrine","Cortez","Cortney","Cory","Coty","Courtney","Coy","Craig","Crawford","Creola","Cristal","Cristian","Cristina","Cristobal","Cristopher","Cruz","Crystal","Crystel","Cullen","Curt","Curtis","Cydney","Cynthia","Cyril","Cyrus","Dagmar","Dahlia","Daija","Daisha","Daisy","Dakota","Dale","Dallas","Dallin","Dalton","Damaris","Dameon","Damian","Damien","Damion","Damon","Dan","Dana","Dandre","Dane","D'angelo","Dangelo","Danial","Daniela","Daniella","Danielle","Danika","Dannie","Danny","Dante","Danyka","Daphne","Daphnee","Daphney","Darby","Daren","Darian","Dariana","Darien","Dario","Darion","Darius","Darlene","Daron","Darrel","Darrell","Darren","Darrick","Darrin","Darrion","Darron","Darryl","Darwin","Daryl","Dashawn","Dasia","Dave","David","Davin","Davion","Davon","Davonte","Dawn","Dawson","Dax","Dayana","Dayna","Dayne","Dayton","Dean","Deangelo","Deanna","Deborah","Declan","Dedric","Dedrick","Dee","Deion","Deja","Dejah","Dejon","Dejuan","Delaney","Delbert","Delfina","Delia","Delilah","Dell","Della","Delmer","Delores","Delpha","Delphia","Delphine","Delta","Demarco","Demarcus","Demario","Demetris","Demetrius","Demond","Dena","Denis","Dennis","Deon","Deondre","Deontae","Deonte","Dereck","Derek","Derick","Deron","Derrick","Deshaun","Deshawn","Desiree","Desmond","Dessie","Destany","Destin","Destinee","Destiney","Destini","Destiny","Devan","Devante","Deven","Devin","Devon","Devonte","Devyn","Dewayne","Dewitt","Dexter","Diamond","Diana","Dianna","Diego","Dillan","Dillon","Dimitri","Dina","Dino","Dion","Dixie","Dock","Dolly","Dolores","Domenic","Domenica","Domenick","Domenico","Domingo","Dominic","Dominique","Don","Donald","Donato","Donavon","Donna","Donnell","Donnie","Donny","Dora","Dorcas","Dorian","Doris","Dorothea","Dorothy","Dorris","Dortha","Dorthy","Doug","Douglas","Dovie","Doyle","Drake","Drew","Duane","Dudley","Dulce","Duncan","Durward","Dustin","Dusty","Dwight","Dylan","Earl","Earlene","Earline","Earnest","Earnestine","Easter","Easton","Ebba","Ebony","Ed","Eda","Edd","Eddie","Eden","Edgar","Edgardo","Edison","Edmond","Edmund","Edna","Eduardo","Edward","Edwardo","Edwin","Edwina","Edyth","Edythe","Effie","Efrain","Efren","Eileen","Einar","Eino","Eladio","Elaina","Elbert","Elda","Eldon","Eldora","Eldred","Eldridge","Eleanora","Eleanore","Eleazar","Electa","Elena","Elenor","Elenora","Eleonore","Elfrieda","Eli","Elian","Eliane","Elias","Eliezer","Elijah","Elinor","Elinore","Elisa","Elisabeth","Elise","Eliseo","Elisha","Elissa","Eliza","Elizabeth","Ella","Ellen","Ellie","Elliot","Elliott","Ellis","Ellsworth","Elmer","Elmira","Elmo","Elmore","Elna","Elnora","Elody","Eloisa","Eloise","Elouise","Eloy","Elroy","Elsa","Else","Elsie","Elta","Elton","Elva","Elvera","Elvie","Elvis","Elwin","Elwyn","Elyse","Elyssa","Elza","Emanuel","Emelia","Emelie","Emely","Emerald","Emerson","Emery","Emie","Emil","Emile","Emilia","Emiliano","Emilie","Emilio","Emily","Emma","Emmalee","Emmanuel","Emmanuelle","Emmet","Emmett","Emmie","Emmitt","Emmy","Emory","Ena","Enid","Enoch","Enola","Enos","Enrico","Enrique","Ephraim","Era","Eriberto","Eric","Erica","Erich","Erick","Ericka","Erik","Erika","Erin","Erling","Erna","Ernest","Ernestina","Ernestine","Ernesto","Ernie","Ervin","Erwin","Eryn","Esmeralda","Esperanza","Esta","Esteban","Estefania","Estel","Estell","Estella","Estelle","Estevan","Esther","Estrella","Etha","Ethan","Ethel","Ethelyn","Ethyl","Ettie","Eudora","Eugene","Eugenia","Eula","Eulah","Eulalia","Euna","Eunice","Eusebio","Eva","Evalyn","Evan","Evangeline","Evans","Eve","Eveline","Evelyn","Everardo","Everett","Everette","Evert","Evie","Ewald","Ewell","Ezekiel","Ezequiel","Ezra","Fabian","Fabiola","Fae","Fannie","Fanny","Fatima","Faustino","Fausto","Favian","Fay","Faye","Federico","Felicia","Felicita","Felicity","Felipa","Felipe","Felix","Felton","Fermin","Fern","Fernando","Ferne","Fidel","Filiberto","Filomena","Finn","Fiona","Flavie","Flavio","Fleta","Fletcher","Flo","Florence","Florencio","Florian","Florida","Florine","Flossie","Floy","Floyd","Ford","Forest","Forrest","Foster","Frances","Francesca","Francesco","Francis","Francisca","Francisco","Franco","Frank","Frankie","Franz","Fred","Freda","Freddie","Freddy","Frederic","Frederick","Frederik","Frederique","Fredrick","Fredy","Freeda","Freeman","Freida","Frida","Frieda","Friedrich","Fritz","Furman","Gabe","Gabriel","Gabriella","Gabrielle","Gaetano","Gage","Gail","Gardner","Garett","Garfield","Garland","Garnet","Garnett","Garret","Garrett","Garrick","Garrison","Garry","Garth","Gaston","Gavin","Gay","Gayle","Gaylord","Gene","General","Genesis","Genevieve","Gennaro","Genoveva","Geo","Geoffrey","George","Georgette","Georgiana","Georgianna","Geovanni","Geovanny","Geovany","Gerald","Geraldine","Gerard","Gerardo","Gerda","Gerhard","Germaine","German","Gerry","Gerson","Gertrude","Gia","Gianni","Gideon","Gilbert","Gilberto","Gilda","Giles","Gillian","Gina","Gino","Giovani","Giovanna","Giovanni","Giovanny","Gisselle","Giuseppe","Gladyce","Gladys","Glen","Glenda","Glenna","Glennie","Gloria","Godfrey","Golda","Golden","Gonzalo","Gordon","Grace","Gracie","Graciela","Grady","Graham","Grant","Granville","Grayce","Grayson","Green","Greg","Gregg","Gregoria","Gregorio","Gregory","Greta","Gretchen","Greyson","Griffin","Grover","Guadalupe","Gudrun","Guido","Guillermo","Guiseppe","Gunnar","Gunner","Gus","Gussie","Gust","Gustave","Guy","Gwen","Gwendolyn","Hadley","Hailee","Hailey","Hailie","Hal","Haleigh","Haley","Halie","Halle","Hallie","Hank","Hanna","Hannah","Hans","Hardy","Harley","Harmon","Harmony","Harold","Harrison","Harry","Harvey","Haskell","Hassan","Hassie","Hattie","Haven","Hayden","Haylee","Hayley","Haylie","Hazel","Hazle","Heath","Heather","Heaven","Heber","Hector","Heidi","Helen","Helena","Helene","Helga","Hellen","Helmer","Heloise","Henderson","Henri","Henriette","Henry","Herbert","Herman","Hermann","Hermina","Herminia","Herminio","Hershel","Herta","Hertha","Hester","Hettie","Hilario","Hilbert","Hilda","Hildegard","Hillard","Hillary","Hilma","Hilton","Hipolito","Hiram","Hobart","Holden","Hollie","Hollis","Holly","Hope","Horace","Horacio","Hortense","Hosea","Houston","Howard","Howell","Hoyt","Hubert","Hudson","Hugh","Hulda","Humberto","Hunter","Hyman","Ian","Ibrahim","Icie","Ida","Idell","Idella","Ignacio","Ignatius","Ike","Ila","Ilene","Iliana","Ima","Imani","Imelda","Immanuel","Imogene","Ines","Irma","Irving","Irwin","Isaac","Isabel","Isabell","Isabella","Isabelle","Isac","Isadore","Isai","Isaiah","Isaias","Isidro","Ismael","Isobel","Isom","Israel","Issac","Itzel","Iva","Ivah","Ivory","Ivy","Izabella","Izaiah","Jabari","Jace","Jacey","Jacinthe","Jacinto","Jack","Jackeline","Jackie","Jacklyn","Jackson","Jacky","Jaclyn","Jacquelyn","Jacques","Jacynthe","Jada","Jade","Jaden","Jadon","Jadyn","Jaeden","Jaida","Jaiden","Jailyn","Jaime","Jairo","Jakayla","Jake","Jakob","Jaleel","Jalen","Jalon","Jalyn","Jamaal","Jamal","Jamar","Jamarcus","Jamel","Jameson","Jamey","Jamie","Jamil","Jamir","Jamison","Jammie","Jan","Jana","Janae","Jane","Janelle","Janessa","Janet","Janice","Janick","Janie","Janis","Janiya","Jannie","Jany","Jaquan","Jaquelin","Jaqueline","Jared","Jaren","Jarod","Jaron","Jarred","Jarrell","Jarret","Jarrett","Jarrod","Jarvis","Jasen","Jasmin","Jason","Jasper","Jaunita","Javier","Javon","Javonte","Jay","Jayce","Jaycee","Jayda","Jayde","Jayden","Jaydon","Jaylan","Jaylen","Jaylin","Jaylon","Jayme","Jayne","Jayson","Jazlyn","Jazmin","Jazmyn","Jazmyne","Jean","Jeanette","Jeanie","Jeanne","Jed","Jedediah","Jedidiah","Jeff","Jefferey","Jeffery","Jeffrey","Jeffry","Jena","Jenifer","Jennie","Jennifer","Jennings","Jennyfer","Jensen","Jerad","Jerald","Jeramie","Jeramy","Jerel","Jeremie","Jeremy","Jermain","Jermaine","Jermey","Jerod","Jerome","Jeromy","Jerrell","Jerrod","Jerrold","Jerry","Jess","Jesse","Jessica","Jessie","Jessika","Jessy","Jessyca","Jesus","Jett","Jettie","Jevon","Jewel","Jewell","Jillian","Jimmie","Jimmy","Jo","Joan","Joana","Joanie","Joanne","Joannie","Joanny","Joany","Joaquin","Jocelyn","Jodie","Jody","Joe","Joel","Joelle","Joesph","Joey","Johan","Johann","Johanna","Johathan","John","Johnathan","Johnathon","Johnnie","Johnny","Johnpaul","Johnson","Jolie","Jon","Jonas","Jonatan","Jonathan","Jonathon","Jordan","Jordane","Jordi","Jordon","Jordy","Jordyn","Jorge","Jose","Josefa","Josefina","Joseph","Josephine","Josh","Joshua","Joshuah","Josiah","Josiane","Josianne","Josie","Josue","Jovan","Jovani","Jovanny","Jovany","Joy","Joyce","Juana","Juanita","Judah","Judd","Jude","Judge","Judson","Judy","Jules","Julia","Julian","Juliana","Julianne","Julie","Julien","Juliet","Julio","Julius","June","Junior","Junius","Justen","Justice","Justina","Justine","Juston","Justus","Justyn","Juvenal","Juwan","Kacey","Kaci","Kacie","Kade","Kaden","Kadin","Kaela","Kaelyn","Kaia","Kailee","Kailey","Kailyn","Kaitlin","Kaitlyn","Kale","Kaleb","Kaleigh","Kaley","Kali","Kallie","Kameron","Kamille","Kamren","Kamron","Kamryn","Kane","Kara","Kareem","Karelle","Karen","Kari","Kariane","Karianne","Karina","Karine","Karl","Karlee","Karley","Karli","Karlie","Karolann","Karson","Kasandra","Kasey","Kassandra","Katarina","Katelin","Katelyn","Katelynn","Katharina","Katherine","Katheryn","Kathleen","Kathlyn","Kathryn","Kathryne","Katlyn","Katlynn","Katrina","Katrine","Kattie","Kavon","Kay","Kaya","Kaycee","Kayden","Kayla","Kaylah","Kaylee","Kayleigh","Kayley","Kayli","Kaylie","Kaylin","Keagan","Keanu","Keara","Keaton","Keegan","Keeley","Keely","Keenan","Keira","Keith","Kellen","Kelley","Kelli","Kellie","Kelly","Kelsi","Kelsie","Kelton","Kelvin","Ken","Kendall","Kendra","Kendrick","Kenna","Kennedi","Kennedy","Kenneth","Kennith","Kenny","Kenton","Kenya","Kenyatta","Kenyon","Keon","Keshaun","Keshawn","Keven","Kevin","Kevon","Keyon","Keyshawn","Khalid","Khalil","Kian","Kiana","Kianna","Kiara","Kiarra","Kiel","Kiera","Kieran","Kiley","Kim","Kimberly","King","Kip","Kira","Kirk","Kirsten","Kirstin","Kitty","Kobe","Koby","Kody","Kolby","Kole","Korbin","Korey","Kory","Kraig","Kris","Krista","Kristian","Kristin","Kristina","Kristofer","Kristoffer","Kristopher","Kristy","Krystal","Krystel","Krystina","Kurt","Kurtis","Kyla","Kyle","Kylee","Kyleigh","Kyler","Kylie","Kyra","Lacey","Lacy","Ladarius","Lafayette","Laila","Laisha","Lamar","Lambert","Lamont","Lance","Landen","Lane","Laney","Larissa","Laron","Larry","Larue","Laura","Laurel","Lauren","Laurence","Lauretta","Lauriane","Laurianne","Laurie","Laurine","Laury","Lauryn","Lavada","Lavern","Laverna","Laverne","Lavina","Lavinia","Lavon","Lavonne","Lawrence","Lawson","Layla","Layne","Lazaro","Lea","Leann","Leanna","Leanne","Leatha","Leda","Lee","Leif","Leila","Leilani","Lela","Lelah","Leland","Lelia","Lempi","Lemuel","Lenna","Lennie","Lenny","Lenora","Lenore","Leo","Leola","Leon","Leonard","Leonardo","Leone","Leonel","Leonie","Leonor","Leonora","Leopold","Leopoldo","Leora","Lera","Lesley","Leslie","Lesly","Lessie","Lester","Leta","Letha","Letitia","Levi","Lew","Lewis","Lexi","Lexie","Lexus","Lia","Liam","Liana","Libbie","Libby","Lila","Lilian","Liliana","Liliane","Lilla","Lillian","Lilliana","Lillie","Lilly","Lily","Lilyan","Lina","Lincoln","Linda","Lindsay","Lindsey","Linnea","Linnie","Linwood","Lionel","Lisa","Lisandro","Lisette","Litzy","Liza","Lizeth","Lizzie","Llewellyn","Lloyd","Logan","Lois","Lola","Lolita","Loma","Lon","London","Lonie","Lonnie","Lonny","Lonzo","Lora","Loraine","Loren","Lorena","Lorenz","Lorenza","Lorenzo","Lori","Lorine","Lorna","Lottie","Lou","Louie","Louisa","Lourdes","Louvenia","Lowell","Loy","Loyal","Loyce","Lucas","Luciano","Lucie","Lucienne","Lucile","Lucinda","Lucio","Lucious","Lucius","Lucy","Ludie","Ludwig","Lue","Luella","Luigi","Luis","Luisa","Lukas","Lula","Lulu","Luna","Lupe","Lura","Lurline","Luther","Luz","Lyda","Lydia","Lyla","Lynn","Lyric","Lysanne","Mabel","Mabelle","Mable","Mac","Macey","Maci","Macie","Mack","Mackenzie","Macy","Madaline","Madalyn","Maddison","Madeline","Madelyn","Madelynn","Madge","Madie","Madilyn","Madisen","Madison","Madisyn","Madonna","Madyson","Mae","Maegan","Maeve","Mafalda","Magali","Magdalen","Magdalena","Maggie","Magnolia","Magnus","Maia","Maida","Maiya","Major","Makayla","Makenna","Makenzie","Malachi","Malcolm","Malika","Malinda","Mallie","Mallory","Malvina","Mandy","Manley","Manuel","Manuela","Mara","Marc","Marcel","Marcelina","Marcelino","Marcella","Marcelle","Marcellus","Marcelo","Marcia","Marco","Marcos","Marcus","Margaret","Margarete","Margarett","Margaretta","Margarette","Margarita","Marge","Margie","Margot","Margret","Marguerite","Maria","Mariah","Mariam","Marian","Mariana","Mariane","Marianna","Marianne","Mariano","Maribel","Marie","Mariela","Marielle","Marietta","Marilie","Marilou","Marilyne","Marina","Mario","Marion","Marisa","Marisol","Maritza","Marjolaine","Marjorie","Marjory","Mark","Markus","Marlee","Marlen","Marlene","Marley","Marlin","Marlon","Marques","Marquis","Marquise","Marshall","Marta","Martin","Martina","Martine","Marty","Marvin","Mary","Maryam","Maryjane","Maryse","Mason","Mateo","Mathew","Mathias","Mathilde","Matilda","Matilde","Matt","Matteo","Mattie","Maud","Maude","Maudie","Maureen","Maurice","Mauricio","Maurine","Maverick","Mavis","Max","Maxie","Maxime","Maximilian","Maximillia","Maximillian","Maximo","Maximus","Maxine","Maxwell","May","Maya","Maybell","Maybelle","Maye","Maymie","Maynard","Mayra","Mazie","Mckayla","Mckenna","Mckenzie","Meagan","Meaghan","Meda","Megane","Meggie","Meghan","Mekhi","Melany","Melba","Melisa","Melissa","Mellie","Melody","Melvin","Melvina","Melyna","Melyssa","Mercedes","Meredith","Merl","Merle","Merlin","Merritt","Mertie","Mervin","Meta","Mia","Micaela","Micah","Michael","Michaela","Michale","Micheal","Michel","Michele","Michelle","Miguel","Mikayla","Mike","Mikel","Milan","Miles","Milford","Miller","Millie","Milo","Milton","Mina","Minerva","Minnie","Miracle","Mireille","Mireya","Misael","Missouri","Misty","Mitchel","Mitchell","Mittie","Modesta","Modesto","Mohamed","Mohammad","Mohammed","Moises","Mollie","Molly","Mona","Monica","Monique","Monroe","Monserrat","Monserrate","Montana","Monte","Monty","Morgan","Moriah","Morris","Mortimer","Morton","Mose","Moses","Moshe","Mossie","Mozell","Mozelle","Muhammad","Muriel","Murl","Murphy","Murray","Mustafa","Mya","Myah","Mylene","Myles","Myra","Myriam","Myrl","Myrna","Myron","Myrtice","Myrtie","Myrtis","Myrtle","Nadia","Nakia","Name","Nannie","Naomi","Naomie","Napoleon","Narciso","Nash","Nasir","Nat","Natalia","Natalie","Natasha","Nathan","Nathanael","Nathanial","Nathaniel","Nathen","Nayeli","Neal","Ned","Nedra","Neha","Neil","Nelda","Nella","Nelle","Nellie","Nels","Nelson","Neoma","Nestor","Nettie","Neva","Newell","Newton","Nia","Nicholas","Nicholaus","Nichole","Nick","Nicklaus","Nickolas","Nico","Nicola","Nicolas","Nicole","Nicolette","Nigel","Nikita","Nikki","Nikko","Niko","Nikolas","Nils","Nina","Noah","Noble","Noe","Noel","Noelia","Noemi","Noemie","Noemy","Nola","Nolan","Nona","Nora","Norbert","Norberto","Norene","Norma","Norris","Norval","Norwood","Nova","Novella","Nya","Nyah","Nyasia","Obie","Oceane","Ocie","Octavia","Oda","Odell","Odessa","Odie","Ofelia","Okey","Ola","Olaf","Ole","Olen","Oleta","Olga","Olin","Oliver","Ollie","Oma","Omari","Omer","Ona","Onie","Opal","Ophelia","Ora","Oral","Oran","Oren","Orie","Orin","Orion","Orland","Orlando","Orlo","Orpha","Orrin","Orval","Orville","Osbaldo","Osborne","Oscar","Osvaldo","Oswald","Oswaldo","Otha","Otho","Otilia","Otis","Ottilie","Ottis","Otto","Ova","Owen","Ozella","Pablo","Paige","Palma","Pamela","Pansy","Paolo","Paris","Parker","Pascale","Pasquale","Pat","Patience","Patricia","Patrick","Patsy","Pattie","Paul","Paula","Pauline","Paxton","Payton","Pearl","Pearlie","Pearline","Pedro","Peggie","Penelope","Percival","Percy","Perry","Pete","Peter","Petra","Peyton","Philip","Phoebe","Phyllis","Pierce","Pierre","Pietro","Pink","Pinkie","Piper","Polly","Porter","Precious","Presley","Preston","Price","Prince","Princess","Priscilla","Providenci","Prudence","Queen","Queenie","Quentin","Quincy","Quinn","Quinten","Quinton","Rachael","Rachel","Rachelle","Rae","Raegan","Rafael","Rafaela","Raheem","Rahsaan","Rahul","Raina","Raleigh","Ralph","Ramiro","Ramon","Ramona","Randal","Randall","Randi","Randy","Ransom","Raoul","Raphael","Raphaelle","Raquel","Rashad","Rashawn","Rasheed","Raul","Raven","Ray","Raymond","Raymundo","Reagan","Reanna","Reba","Rebeca","Rebecca","Rebeka","Rebekah","Reece","Reed","Reese","Regan","Reggie","Reginald","Reid","Reilly","Reina","Reinhold","Remington","Rene","Renee","Ressie","Reta","Retha","Retta","Reuben","Reva","Rex","Rey","Reyes","Reymundo","Reyna","Reynold","Rhea","Rhett","Rhianna","Rhiannon","Rhoda","Ricardo","Richard","Richie","Richmond","Rick","Rickey","Rickie","Ricky","Rico","Rigoberto","Riley","Rita","River","Robb","Robbie","Robert","Roberta","Roberto","Robin","Robyn","Rocio","Rocky","Rod","Roderick","Rodger","Rodolfo","Rodrick","Rodrigo","Roel","Rogelio","Roger","Rogers","Rolando","Rollin","Roma","Romaine","Roman","Ron","Ronaldo","Ronny","Roosevelt","Rory","Rosa","Rosalee","Rosalia","Rosalind","Rosalinda","Rosalyn","Rosamond","Rosanna","Rosario","Roscoe","Rose","Rosella","Roselyn","Rosemarie","Rosemary","Rosendo","Rosetta","Rosie","Rosina","Roslyn","Ross","Rossie","Rowan","Rowena","Rowland","Roxane","Roxanne","Roy","Royal","Royce","Rozella","Ruben","Rubie","Ruby","Rubye","Rudolph","Rudy","Rupert","Russ","Russel","Russell","Rusty","Ruth","Ruthe","Ruthie","Ryan","Ryann","Ryder","Rylan","Rylee","Ryleigh","Ryley","Sabina","Sabrina","Sabryna","Sadie","Sadye","Sage","Saige","Sallie","Sally","Salma","Salvador","Salvatore","Sam","Samanta","Samantha","Samara","Samir","Sammie","Sammy","Samson","Sandra","Sandrine","Sandy","Sanford","Santa","Santiago","Santina","Santino","Santos","Sarah","Sarai","Sarina","Sasha","Saul","Savanah","Savanna","Savannah","Savion","Scarlett","Schuyler","Scot","Scottie","Scotty","Seamus","Sean","Sebastian","Sedrick","Selena","Selina","Selmer","Serena","Serenity","Seth","Shad","Shaina","Shakira","Shana","Shane","Shanel","Shanelle","Shania","Shanie","Shaniya","Shanna","Shannon","Shanny","Shanon","Shany","Sharon","Shaun","Shawn","Shawna","Shaylee","Shayna","Shayne","Shea","Sheila","Sheldon","Shemar","Sheridan","Sherman","Sherwood","Shirley","Shyann","Shyanne","Sibyl","Sid","Sidney","Sienna","Sierra","Sigmund","Sigrid","Sigurd","Silas","Sim","Simeon","Simone","Sincere","Sister","Skye","Skyla","Skylar","Sofia","Soledad","Solon","Sonia","Sonny","Sonya","Sophia","Sophie","Spencer","Stacey","Stacy","Stan","Stanford","Stanley","Stanton","Stefan","Stefanie","Stella","Stephan","Stephania","Stephanie","Stephany","Stephen","Stephon","Sterling","Steve","Stevie","Stewart","Stone","Stuart","Summer","Sunny","Susan","Susana","Susanna","Susie","Suzanne","Sven","Syble","Sydnee","Sydney","Sydni","Sydnie","Sylvan","Sylvester","Sylvia","Tabitha","Tad","Talia","Talon","Tamara","Tamia","Tania","Tanner","Tanya","Tara","Taryn","Tate","Tatum","Tatyana","Taurean","Tavares","Taya","Taylor","Teagan","Ted","Telly","Terence","Teresa","Terrance","Terrell","Terrence","Terrill","Terry","Tess","Tessie","Tevin","Thad","Thaddeus","Thalia","Thea","Thelma","Theo","Theodora","Theodore","Theresa","Therese","Theresia","Theron","Thomas","Thora","Thurman","Tia","Tiana","Tianna","Tiara","Tierra","Tiffany","Tillman","Timmothy","Timmy","Timothy","Tina","Tito","Titus","Tobin","Toby","Tod","Tom","Tomas","Tomasa","Tommie","Toney","Toni","Tony","Torey","Torrance","Torrey","Toy","Trace","Tracey","Tracy","Travis","Travon","Tre","Tremaine","Tremayne","Trent","Trenton","Tressa","Tressie","Treva","Trever","Trevion","Trevor","Trey","Trinity","Trisha","Tristian","Tristin","Triston","Troy","Trudie","Trycia","Trystan","Turner","Twila","Tyler","Tyra","Tyree","Tyreek","Tyrel","Tyrell","Tyrese","Tyrique","Tyshawn","Tyson","Ubaldo","Ulices","Ulises","Una","Unique","Urban","Uriah","Uriel","Ursula","Vada","Valentin","Valentina","Valentine","Valerie","Vallie","Van","Vance","Vanessa","Vaughn","Veda","Velda","Vella","Velma","Velva","Vena","Verda","Verdie","Vergie","Verla","Verlie","Vern","Verna","Verner","Vernice","Vernie","Vernon","Verona","Veronica","Vesta","Vicenta","Vicente","Vickie","Vicky","Victor","Victoria","Vida","Vidal","Vilma","Vince","Vincent","Vincenza","Vincenzo","Vinnie","Viola","Violet","Violette","Virgie","Virgil","Virginia","Virginie","Vita","Vito","Viva","Vivian","Viviane","Vivianne","Vivien","Vivienne","Vladimir","Wade","Waino","Waldo","Walker","Wallace","Walter","Walton","Wanda","Ward","Warren","Watson","Wava","Waylon","Wayne","Webster","Weldon","Wellington","Wendell","Wendy","Werner","Westley","Weston","Whitney","Wilber","Wilbert","Wilburn","Wiley","Wilford","Wilfred","Wilfredo","Wilfrid","Wilhelm","Wilhelmine","Will","Willa","Willard","William","Willie","Willis","Willow","Willy","Wilma","Wilmer","Wilson","Wilton","Winfield","Winifred","Winnifred","Winona","Winston","Woodrow","Wyatt","Wyman","Xander","Xavier","Xzavier","Yadira","Yasmeen","Yasmin","Yasmine","Yazmin","Yesenia","Yessenia","Yolanda","Yoshiko","Yvette","Yvonne","Zachariah","Zachary","Zachery","Zack","Zackary","Zackery","Zakary","Zander","Zane","Zaria","Zechariah","Zelda","Zella","Zelma","Zena","Zetta","Zion","Zita","Zoe","Zoey","Zoie","Zoila","Zola","Zora","Zula"];e.exports={generateUsername:function(){var e=r.randomElement(i),t=r.randomAlphanumStr(3);return"".concat(e,"-").concat(t)}}},function(e,t,n){"use strict";(function(e){n.d(t,"a",function(){return h});var r=n(3),i=n(19),o=n(23),a=n(9);function s(e,t){return(function(e){if(Array.isArray(e))return e})(e)||(function(e,t){var n=[],r=!0,i=!1,o=void 0;try{for(var a,s=e["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();!(r=(a=s.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(e){i=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(i)throw o}}return n})(e,t)||(function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")})()}var c=n(11),u=n(4).getLogger(e),l={};function d(e,t){return!t||t<=0||!e||e<=0?0:Math.round(e/t*100)}function p(){this.loss={},this.bitrate={download:0,upload:0},this.resolution={},this.framerate=0}function f(){this.bandwidth={},this.bitrate={},this.packetLoss=null,this.transport=[]}function h(e,t,n,i){this._browserType=r.a.getName();var o=l[this._browserType];if(!o)throw"The browser type '".concat(this._browserType,"' isn't supported!");this._usesPromiseGetStats=r.a.isSafariWithWebrtc()||r.a.isFirefox(),this._getStatValue=this._usesPromiseGetStats?this._defineNewGetStatValueMethod(o):this._defineGetStatValueMethod(o),this.peerconnection=e,this.baselineAudioLevelsReport=null,this.currentAudioLevelsReport=null,this.currentStatsReport=null,this.previousStatsReport=null,this.audioLevelReportHistory={},this.audioLevelsIntervalId=null,this.eventEmitter=i,this.conferenceStats=new f,this.audioLevelsIntervalMilis=t,this.statsIntervalId=null,this.statsIntervalMilis=n,this.ssrc2stats=new Map}l[i.b.FIREFOX]={ssrc:"ssrc",packetsReceived:"packetsReceived",packetsLost:"packetsLost",packetsSent:"packetsSent",bytesReceived:"bytesReceived",bytesSent:"bytesSent",framerateMean:"framerateMean",ip:"ipAddress",port:"portNumber",protocol:"transport"},l[i.b.CHROME]={receiveBandwidth:"googAvailableReceiveBandwidth",sendBandwidth:"googAvailableSendBandwidth",remoteAddress:"googRemoteAddress",transportType:"googTransportType",localAddress:"googLocalAddress",activeConnection:"googActiveConnection",ssrc:"ssrc",packetsReceived:"packetsReceived",packetsSent:"packetsSent",packetsLost:"packetsLost",bytesReceived:"bytesReceived",bytesSent:"bytesSent",googFrameHeightReceived:"googFrameHeightReceived",googFrameWidthReceived:"googFrameWidthReceived",googFrameHeightSent:"googFrameHeightSent",googFrameWidthSent:"googFrameWidthSent",googFrameRateReceived:"googFrameRateReceived",googFrameRateSent:"googFrameRateSent",audioInputLevel:"audioInputLevel",audioOutputLevel:"audioOutputLevel",currentRoundTripTime:"googRtt",remoteCandidateType:"googRemoteCandidateType",localCandidateType:"googLocalCandidateType",ip:"ip",port:"port",protocol:"protocol"},l[i.b.EDGE]={sendBandwidth:"googAvailableSendBandwidth",remoteAddress:"remoteAddress",transportType:"protocol",localAddress:"localAddress",activeConnection:"activeConnection",ssrc:"ssrc",packetsReceived:"packetsReceived",packetsSent:"packetsSent",packetsLost:"packetsLost",bytesReceived:"bytesReceived",bytesSent:"bytesSent",googFrameHeightReceived:"frameHeight",googFrameWidthReceived:"frameWidth",googFrameHeightSent:"frameHeight",googFrameWidthSent:"frameWidth",googFrameRateReceived:"framesPerSecond",googFrameRateSent:"framesPerSecond",audioInputLevel:"audioLevel",audioOutputLevel:"audioLevel",currentRoundTripTime:"roundTripTime"},l[i.b.OPERA]=l[i.b.CHROME],l[i.b.NWJS]=l[i.b.CHROME],l[i.b.ELECTRON]=l[i.b.CHROME],l[i.b.SAFARI]=l[i.b.CHROME],l[i.b.REACT_NATIVE]=l[i.b.CHROME],p.prototype.setLoss=function(e){this.loss=e||{}},p.prototype.setResolution=function(e){this.resolution=e||{}},p.prototype.addBitrate=function(e){this.bitrate.download+=e.download,this.bitrate.upload+=e.upload},p.prototype.resetBitrate=function(){this.bitrate.download=0,this.bitrate.upload=0},p.prototype.setFramerate=function(e){this.framerate=e||0},h.prototype.stop=function(){this.audioLevelsIntervalId&&(clearInterval(this.audioLevelsIntervalId),this.audioLevelsIntervalId=null),this.statsIntervalId&&(clearInterval(this.statsIntervalId),this.statsIntervalId=null)},h.prototype.errorCallback=function(e){c.callErrorHandler(e),u.error("Get stats error",e),this.stop()},h.prototype.start=function(e){var t=this,n=this;e&&(this.audioLevelsIntervalId=setInterval(function(){n.peerconnection.getStats(function(e){var r;r=e&&e.result&&"function"==typeof e.result?e.result():e,n.currentAudioLevelsReport=r,t._usesPromiseGetStats?n.processNewAudioLevelReport():n.processAudioLevelReport(),n.baselineAudioLevelsReport=n.currentAudioLevelsReport},function(e){return n.errorCallback(e)})},n.audioLevelsIntervalMilis)),r.a.supportsRtpStatistics()&&(this.statsIntervalId=setInterval(function(){n.peerconnection.getStats(function(e){var r;r=e&&e.result&&"function"==typeof e.result?e.result():e,n.currentStatsReport=r;try{t._usesPromiseGetStats?n.processNewStatsReport():n.processStatsReport()}catch(e){c.callErrorHandler(e),u.error("Unsupported key:".concat(e),e)}n.previousStatsReport=n.currentStatsReport},function(e){return n.errorCallback(e)})},n.statsIntervalMilis))},h.prototype._defineGetStatValueMethod=function(e){var t;switch(this._browserType){case i.b.CHROME:case i.b.OPERA:case i.b.NWJS:case i.b.ELECTRON:t=function(e,t){return e.stat(t)};break;case i.b.REACT_NATIVE:t=function(e,t){var n;return e.values.some(function(e){return!!e.hasOwnProperty(t)&&(n=e[t],!0)}),n};break;case i.b.EDGE:t=function(e,t){return e[t]};break;default:t=function(e,t){return e[t]}}return function(n,r){return t(n,(function(t){var n=e[t];if(n)return n;throw"The property '".concat(t,"' isn't supported!")})(r))}},h.prototype.getNonNegativeStat=function(e,t){var n=this._getStatValue(e,t);return"number"!=typeof n&&(n=Number(n)),isNaN(n)?0:Math.max(0,n)},h.prototype.processStatsReport=function(){var e=this;if(this.previousStatsReport){var t=this._getStatValue,n={};for(var i in this.currentStatsReport)if(this.currentStatsReport.hasOwnProperty(i)){var a=this.currentStatsReport[i];if(a){try{var s=t(a,"receiveBandwidth"),c=t(a,"sendBandwidth");(s||c)&&(this.conferenceStats.bandwidth={download:Math.round(s/1e3),upload:Math.round(c/1e3)})}catch(e){}if("googCandidatePair"===a.type&&"continue"===(function(){var n=void 0,r=void 0,i=void 0,o=void 0,s=void 0,c=void 0,u=void 0;try{if(!(n=t(a,"activeConnection")))return"continue";r=t(a,"remoteAddress"),u=t(a,"transportType"),o=t(a,"localAddress"),i=t(a,"localCandidateType"),s=t(a,"remoteCandidateType"),c=e.getNonNegativeStat(a,"currentRoundTripTime")}catch(e){}if(!r||!u||!o||"true"!==n)return"continue";var l=e.conferenceStats.transport;return l.some(function(e){return e.ip===r&&e.type===u&&e.localip===o})||l.push({ip:r,type:u,localip:o,p2p:e.peerconnection.isP2P,localCandidateType:i,remoteCandidateType:s,rtt:c}),"continue"})())continue;if("candidatepair"===a.type){if("succeeded"!==a.state||!a.selected)continue;var l=this.currentStatsReport[a.localCandidateId],d=this.currentStatsReport[a.remoteCandidateId];this.conferenceStats.transport.push({ip:"".concat(d.ipAddress,":").concat(d.portNumber),type:l.transport,localip:"".concat(l.ipAddress,":").concat(l.portNumber),p2p:this.peerconnection.isP2P,localCandidateType:l.candidateType,remoteCandidateType:d.candidateType})}if("transportdiagnostics"===a.msType&&this.conferenceStats.transport.push({ip:a.remoteAddress,type:a.protocol,localip:a.localAddress,p2p:this.peerconnection.isP2P}),("ssrc"===a.type||"outboundrtp"===a.type||"inboundrtp"===a.type||"track"===a.type)&&(!r.a.isEdge()||"inboundrtp"!==a.type&&"outboundrtp"!==a.type)){var f=this.previousStatsReport[i],h=this.getNonNegativeStat(a,"ssrc");if("track"===a.type&&Array.isArray(a.ssrcIds)&&(h=Number(a.ssrcIds[0])),f&&h&&(r.a.isEdge()||!0!==a.isRemote&&!0!==a.remoteSource)){var m=this.ssrc2stats.get(h);m||(m=new p,this.ssrc2stats.set(h,m));var v=!0,y="packetsReceived",g=t(a,y);null!=g&&""!==g||(v=!1,null==(g=t(a,y="packetsSent"))&&u.warn("No packetsReceived nor packetsSent stat found")),(!g||g<0)&&(g=0);var S=this.getNonNegativeStat(f,y),_=Math.max(0,g-S),b=this.getNonNegativeStat(a,"packetsLost"),E=this.getNonNegativeStat(f,"packetsLost"),T=Math.max(0,b-E);m.setLoss({packetsTotal:_+T,packetsLost:T,isDownloadStream:v});var C=this.getNonNegativeStat(a,"bytesReceived"),R=this.getNonNegativeStat(f,"bytesReceived"),A=Math.max(0,C-R),w=0,k=t(a,"bytesSent");"number"!=typeof k&&"string"!=typeof k||(k=Number(k),isNaN(k)||(n[h]=k,k>0&&(w=k-t(f,"bytesSent")))),w=Math.max(0,w);var O=a.timestamp-f.timestamp,I=0,P=0;O>0&&(I=Math.round(8*A/O),P=Math.round(8*w/O)),m.addBitrate({download:I,upload:P});var D={height:null,width:null};try{var N=void 0,L=void 0;(N=t(a,"googFrameHeightReceived"))&&(L=t(a,"googFrameWidthReceived"))?(D.height=N,D.width=L):(N=t(a,"googFrameHeightSent"))&&(L=t(a,"googFrameWidthSent"))&&(D.height=N,D.width=L)}catch(e){}var M=void 0;try{M=t(a,"googFrameRateReceived")||t(a,"googFrameRateSent")||0}catch(e){try{M=this.getNonNegativeStat(a,"framerateMean")}catch(e){}}m.setFramerate(Math.round(M||0)),D.height&&D.width?m.setResolution(D):m.setResolution(null)}}}}this.eventEmitter.emit(o.c,this.peerconnection,n),this._processAndEmitReport()}},h.prototype._processAndEmitReport=function(){var e=this,t={download:0,upload:0},n={download:0,upload:0},r=0,i=0,a={},c={},l=0,p=0,f=0,h=0,m=!0,v=!1,y=void 0;try{for(var g,S=this.ssrc2stats["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();!(m=(g=S.next()).done);m=!0){var _=s(g.value,2),b=_[0],E=_[1],T=E.loss,C=T.isDownloadStream?"download":"upload";t[C]+=T.packetsTotal,n[C]+=T.packetsLost,r+=E.bitrate.download,i+=E.bitrate.upload;var R=this.peerconnection.getTrackBySSRC(b);if(R){R.isAudioTrack()?(l+=E.bitrate.download,p+=E.bitrate.upload):(f+=E.bitrate.download,h+=E.bitrate.upload);var A=R.getParticipantId();if(A){var w=E.resolution;if(w.width&&w.height&&-1!==w.width&&-1!==w.height){var k=a[A]||{};k[b]=w,a[A]=k}if(0!==E.framerate){var O=c[A]||{};O[b]=E.framerate,c[A]=O}}else u.error("No participant ID returned by ".concat(R))}E.resetBitrate()}}catch(e){v=!0,y=e}finally{try{m||null==S.return||S.return()}finally{if(v)throw y}}this.conferenceStats.bitrate={upload:i,download:r},this.conferenceStats.bitrate.audio={upload:p,download:l},this.conferenceStats.bitrate.video={upload:h,download:f},this.conferenceStats.packetLoss={total:d(n.download+n.upload,t.download+t.upload),download:d(n.download,t.download),upload:d(n.upload,t.upload)};var I,P={};Object.keys(this.audioLevelReportHistory).forEach(function(t){var n=e.audioLevelReportHistory[t],r=n.data,i=n.isLocal,o=r.reduce(function(e,t){return e+t})/r.length;if(i)I=o;else{var a=e.peerconnection.getTrackBySSRC(Number(t));if(a){var s=a.getParticipantId();s&&(P[s]=o)}}}),this.audioLevelReportHistory={},this.eventEmitter.emit(o.d,this.peerconnection,{bandwidth:this.conferenceStats.bandwidth,bitrate:this.conferenceStats.bitrate,packetLoss:this.conferenceStats.packetLoss,resolution:a,framerate:c,transport:this.conferenceStats.transport,localAvgAudioLevels:I,avgAudioLevels:P}),this.conferenceStats.transport=[]},h.prototype.processAudioLevelReport=function(){if(this.baselineAudioLevelsReport){var e=this._getStatValue;for(var t in this.currentAudioLevelsReport)if(this.currentAudioLevelsReport.hasOwnProperty(t)){var n=this.currentAudioLevelsReport[t];if("ssrc"===n.type||"track"===n.type){var i=this.baselineAudioLevelsReport[t],a=this.getNonNegativeStat(n,"ssrc");if(!a&&Array.isArray(n.ssrcIds)&&(a=Number(n.ssrcIds[0])),i)if(a){var s=void 0;try{s=e(n,"audioInputLevel")||e(n,"audioOutputLevel")}catch(e){return u.warn("Audio Levels are not available in the statistics."),void clearInterval(this.audioLevelsIntervalId)}if(s){var c;c="ssrc"===n.type?!e(n,"packetsReceived"):!n.remoteSource,r.a.isEdge()?s=s<0?Math.pow(10,s/20):0:s/=32767,a in this.audioLevelReportHistory||(this.audioLevelReportHistory[a]={isLocal:c,data:[]}),this.audioLevelReportHistory[a].data.push(s),this.eventEmitter.emit(o.a,this.peerconnection,a,s,c)}}else Date.now()-n.timestamp<3e3&&u.warn("No ssrc: ");else u.warn("".concat(a," not enough data"))}}}},h.prototype._defineNewGetStatValueMethod=function(e){return function(t,n){return t[(function(t){var n=e[t];if(n)return n;throw"The property '".concat(t,"' isn't supported!")})(n)]}},h.prototype.getNonNegativeValue=function(e){var t=e;return"number"!=typeof t&&(t=Number(t)),isNaN(t)?0:Math.max(0,t)},h.prototype._calculateBitrate=function(e,t,n){var r=this.getNonNegativeValue(e[n]),i=this.getNonNegativeValue(t[n]),o=Math.max(0,r-i),a=e.timestamp-t.timestamp,s=0;return a>0&&(s=Math.round(8*o/a)),s},h.prototype.processNewStatsReport=function(){var e=this;if(this.previousStatsReport){var t=this._getStatValue,n={};this.currentStatsReport.forEach(function(r){if("candidate-pair"===r.type&&r.nominated&&"succeeded"===r.state){var i=r.availableIncomingBitrate,o=r.availableOutgoingBitrate;(i||o)&&(e.conferenceStats.bandwidth={download:Math.round(i/1e3),upload:Math.round(o/1e3)});var a=e.currentStatsReport.get(r.remoteCandidateId),s=e.currentStatsReport.get(r.localCandidateId);if(a&&s){var c=t(a,"ip"),u=t(a,"port"),l="".concat(c,":").concat(u),d=t(s,"ip"),f=t(s,"port"),h="".concat(d,":").concat(f),m=t(a,"protocol"),v=e.conferenceStats.transport;v.some(function(e){return e.ip===l&&e.type===m&&e.localip===h})||v.push({ip:l,type:m,localIp:h,p2p:e.peerconnection.isP2P,localCandidateType:s.candidateType,remoteCandidateType:a.candidateType,networkType:s.networkType,rtt:1e3*r.currentRoundTripTime})}}else if("inbound-rtp"===r.type||"outbound-rtp"===r.type){var y=e.previousStatsReport.get(r.id),g=e.getNonNegativeValue(r.ssrc);if(!y||!g)return;var S=e.ssrc2stats.get(g);S||(S=new p,e.ssrc2stats.set(g,S));var _=!0,b="packetsReceived";"outbound-rtp"===r.type&&(_=!1,b="packetsSent");var E=r[b];(!E||E<0)&&(E=0);var T=e.getNonNegativeValue(y[b]),C=Math.max(0,E-T),R=e.getNonNegativeValue(r.packetsLost),A=e.getNonNegativeValue(y.packetsLost),w=Math.max(0,R-A);S.setLoss({packetsTotal:C+w,packetsLost:w,isDownloadStream:_}),"inbound-rtp"===r.type?S.addBitrate({download:e._calculateBitrate(r,y,"bytesReceived"),upload:0}):(n[g]=e.getNonNegativeValue(r.bytesSent),S.addBitrate({download:0,upload:e._calculateBitrate(r,y,"bytesSent")}));var k=r.framerateMean;k&&S.setFramerate(Math.round(k||0))}else if("track"===r.type){var O={height:r.frameHeight,width:r.frameWidth},I=r.framesPerSecond;if(!I){var P=e.previousStatsReport.get(r.id);if(P){var D=r.timestamp-P.timestamp;D>0&&r.framesSent&&(I=(r.framesSent-P.framesSent)/D*1e3)}if(!I)return}var N=r.trackIdentifier,L=e.peerconnection.getSsrcByTrackId(N),M=e.ssrc2stats.get(L);M||(M=new p,e.ssrc2stats.set(L,M)),M.setFramerate(Math.round(I||0)),O.height&&O.width?M.setResolution(O):M.setResolution(null)}}),this.eventEmitter.emit(o.c,this.peerconnection,n),this._processAndEmitReport()}},h.prototype.processNewAudioLevelReport=function(){var e=this;this.baselineAudioLevelsReport&&this.currentAudioLevelsReport.forEach(function(t){if("track"===t.type){var n=t.audioLevel;if(n){var r=t.trackIdentifier,i=e.peerconnection.getSsrcByTrackId(r);if(i){var s=i===e.peerconnection.getLocalSSRC(e.peerconnection.getLocalTracks(a.a));e.eventEmitter.emit(o.a,e.peerconnection,i,n,s)}}}})}}).call(this,"modules/statistics/RTPStatsCollector.js")},function(e,t,n){"use strict";(function(e){n.d(t,"a",function(){return l});var r=n(1),i=n(4),o=n(2),a=n(41),s=n(9);function c(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:5e3;return this._conference.xmpp.caps.getFeatures(this._jid,t).catch(function(n){return n&&n.constructor===String?e._conference.xmpp.caps.getFeatures(e._jid,t):(u.warn("Failed to discover features of ".concat(e._jid),n),Promise.reject(n))})}},{key:"getBotType",value:function(){return this._botType}}])&&c(t.prototype,n),e})()}).call(this,"JitsiParticipant.js")},function(e,t,n){"use strict";n.d(t,"a",function(){return o});var r=n(21),i=n(35);function o(e){var t,n=this,o=e.id,a=e.password,s=e.onCreateResource,c=e.onLoginSuccessful,u=e.roomPassword,l=!1,d=new i.c(this.connection.options),p=new Promise(function(e,i){t=i,d.addListener(r.CONNECTION_DISCONNECTED,function(){d=void 0}),d.addListener(r.CONNECTION_ESTABLISHED,function(){l||(c&&c(),d.createRoom(n.options.name,n.options.config,s).moderator.authenticate().then(function(){d&&d.disconnect(),l||(n.join(u),e())}).catch(function(e){var t=e.error,n=e.message;d.disconnect(),i({authenticationError:t,message:n})}))}),d.addListener(r.CONNECTION_FAILED,function(e,t,n){i({connectionError:e,credentials:n,message:t}),d=void 0}),l||d.connect(o,a)});return p.cancel=function(){l=!0,t({}),d&&d.disconnect()},p}},function(e,t,n){"use strict";(function(e){var r=n(4),i=n(1),o=n(79),a=n(34),s=n(0),c=n.n(s);function u(e){return(u="function"==typeof Symbol&&"symbol"==typeof("function"==typeof Symbol?Symbol.iterator:"@@iterator")?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==("function"==typeof Symbol?Symbol.prototype:"@@prototype")?"symbol":typeof e})(e)}function l(e,t){for(var n=0;nx[xmlns="http://jabber.org/protocol/muc#user"]>status[code="201"]').length&&n.createNonAnonymousRoom(),n.onPresence(e),!0)}},{key:"onPresenceUnavailable",value:function(e){var t=e.getAttribute("from"),n=this.rooms[i.Strophe.getBareJidFromJid(t)];return!n||(n.onPresenceUnavailable(e,t),!0)}},{key:"onPresenceError",value:function(e){var t=e.getAttribute("from"),n=this.rooms[i.Strophe.getBareJidFromJid(t)];return!n||(n.onPresenceError(e,t),!0)}},{key:"onMessage",value:function(e){var t=e.getAttribute("from"),n=this.rooms[i.Strophe.getBareJidFromJid(t)];return!n||(n.onMessage(e,t),!0)}},{key:"onMute",value:function(e){var t=e.getAttribute("from"),n=this.rooms[i.Strophe.getBareJidFromJid(t)];return!n||(n.onMute(e),!0)}}])&&l(n.prototype,r),t})(a.a);t.a=function(e){i.Strophe.addConnectionPlugin("emuc",new v(e))}}).call(this,"modules/xmpp/strophe.emuc.js")},function(e,t,n){"use strict";(function(e){n.d(t,"a",function(){return E});var r=n(4),i=n(1),o=n(11),a=n.n(o),s=n(52),c=n(24),u=n(25),l=n(9),d=n(0),p=n.n(d),f=n(80);function h(e){return(h="function"==typeof Symbol&&"symbol"==typeof("function"==typeof Symbol?Symbol.iterator:"@@iterator")?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==("function"==typeof Symbol?Symbol.prototype:"@@prototype")?"symbol":typeof e})(e)}function m(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{};this.presMap.to=this.myroomjid,this.presMap.xns="http://jabber.org/protocol/muc",this.presMap.nodes=[],e.enableStatsID&&this.presMap.nodes.push({tagName:"stats-id",value:u.a.callStatsUserName}),this.addVideoInfoToPresence(!1),e.deploymentInfo&&e.deploymentInfo.userRegion&&this.presMap.nodes.push({tagName:"region",attributes:{id:e.deploymentInfo.userRegion,xmlns:"http://jitsi.org/jitsi-meet"}})}},{key:"join",value:function(e){var t=this;return this.password=e,new Promise(function(e){t.options.disableFocus&&S.info("Conference focus disabled"),(t.options.disableFocus?Promise.resolve():t.moderator.allocateConferenceFocus()).then(function(){t.sendPresence(!0),e()})})}},{key:"sendPresence",value:function(e){var t=this.presMap.to;if(t&&(this.joined||e)){var n=Object(i.$pres)({to:t});e&&(n.c("x",{xmlns:this.presMap.xns}),this.password&&n.c("password").t(this.password).up(),n.up()),_.json2packet(this.presMap.nodes,n),this.connection.send(n),e&&this.connection.flush()}}},{key:"doLeave",value:function(){S.log("do leave",this.myroomjid);var e=Object(i.$pres)({to:this.myroomjid,type:"unavailable"});this.presMap.length=0,this.connection.flush(),this.connection.send(e),this.connection.flush()}},{key:"discoRoomInfo",value:function(){var e=this,t=Object(i.$iq)({type:"get",to:this.roomjid}).c("query",{xmlns:i.Strophe.NS.DISCO_INFO});this.connection.sendIQ(t,function(t){var n=1===$(t).find('>query>feature[var="muc_passwordprotected"]').length;n!==e.locked&&(e.eventEmitter.emit(p.a.MUC_LOCK_CHANGED,n),e.locked=n)},function(e){a.a.callErrorHandler(e),S.error("Error getting room info: ",e)})}},{key:"createNonAnonymousRoom",value:function(){var e=Object(i.$iq)({type:"get",to:this.roomjid}).c("query",{xmlns:"http://jabber.org/protocol/muc#owner"}).c("x",{xmlns:"jabber:x:data",type:"submit"}),t=this;this.connection.sendIQ(e,function(e){if(!$(e).find('>query>x[xmlns="jabber:x:data"]>field[var="muc#roomconfig_whois"]').length){var n="non-anonymous rooms not supported";return a.a.callErrorHandler(new Error(n)),void S.error(n)}var r=Object(i.$iq)({to:t.roomjid,type:"set"}).c("query",{xmlns:"http://jabber.org/protocol/muc#owner"});r.c("x",{xmlns:"jabber:x:data",type:"submit"}),r.c("field",{var:"FORM_TYPE"}).c("value").t("http://jabber.org/protocol/muc#roomconfig").up().up(),r.c("field",{var:"muc#roomconfig_whois"}).c("value").t("anyone").up().up(),t.connection.sendIQ(r)},function(e){a.a.callErrorHandler(e),S.error("Error getting room configuration form: ",e)})}},{key:"onPresence",value:function(e){var t=e.getAttribute("from"),n={},r=e.getElementsByTagName("status")[0];r&&(n.status=r.textContent||"");var o=!1,a=!1,s=e.getElementsByTagNameNS("http://jabber.org/protocol/muc#user","x")[0],c=s&&s.getElementsByTagName("item")[0];n.affiliation=c&&c.getAttribute("affiliation"),n.role=c&&c.getAttribute("role");var u=c&&c.getAttribute("jid");n.jid=u,n.isFocus=u&&0===u.indexOf("".concat(this.moderator.getFocusUserJid(),"/")),n.isHiddenDomain=u&&u.indexOf("@")>0&&this.options.hiddenDomain===u.substring(u.indexOf("@")+1,u.indexOf("/")),this.eventEmitter.emit(p.a.PRESENCE_RECEIVED,{fromHiddenDomain:n.isHiddenDomain,presence:e});var l=e.querySelector("x");l&&l.remove();var d=[];_.packet2JSON(e,d),this.lastPresences[t]=d;for(var f=function(e){var t={},n=e.children.find(function(e){return"user"===e.tagName});if(n){t.user={};for(var r=["id","name","avatar"],i=function(){var e=r[o],i=n.children.find(function(t){return t.tagName===e});i&&(t.user[e]=i.value)},o=0;oignore[xmlns="http://jitsi.org/jitmeet/"]').length)return!0;if($(e).find('>x[xmlns="http://jabber.org/protocol/muc#user"]>destroy').length){var r,o=$(e).find('>x[xmlns="http://jabber.org/protocol/muc#user"]>destroy>reason');return o.length&&(r=o.text()),this.eventEmitter.emit(p.a.MUC_DESTROYED,r),this.connection.emuc.doLeave(this.roomjid),!0}var a=$(e).find('>x[xmlns="http://jabber.org/protocol/muc#user"]>status[code="110"]').length,s=$(e).find('>x[xmlns="http://jabber.org/protocol/muc#user"]>status[code="307"]').length,c=Object.keys(this.members);if(s){var u,l=$(e).find('>x[xmlns="http://jabber.org/protocol/muc#user"]>item>actor');l.length&&(u=l.attr("nick")),c.find(function(e){return i.Strophe.getResourceFromJid(e)===u})&&this.eventEmitter.emit(p.a.KICKED,a,u,i.Strophe.getResourceFromJid(t))}a?c.length>0&&(c.forEach(function(e){var t=n.members[e];delete n.members[e],n.onParticipantLeft(e,t.isFocus)}),this.connection.emuc.doLeave(this.roomjid),s||this.eventEmitter.emit(p.a.MUC_LEFT)):(delete this.members[t],this.onParticipantLeft(t,!1))}},{key:"onMessage",value:function(e,t){var n=$(e).find('>nick[xmlns="http://jabber.org/protocol/nick"]').text()||i.Strophe.getResourceFromJid(t),r=e.getAttribute("type");if("error"===r){var o=$(e).find(">error>text").text();return this.eventEmitter.emit(p.a.CHAT_ERROR_RECEIVED,o),!0}var a=$(e).find(">body").text(),s=$(e).find(">subject");if(s.length){var c=s.text();(c||""===c)&&(this.eventEmitter.emit(p.a.SUBJECT_CHANGED,c),S.log("Subject is changed to ".concat(c)))}var u=$(e).find(">delay").attr("stamp");if(!u&&(u=$(e).find('>[xmlns="jabber:x:delay"]').attr("stamp"))){var l=u.match(/(\d{4})(\d{2})(\d{2}T\d{2}:\d{2}:\d{2})/);u="".concat(l[1],"-").concat(l[2],"-").concat(l[3],"Z")}t===this.roomjid&&$(e).find('>x[xmlns="http://jabber.org/protocol/muc#user"]>status[code="104"]').length&&this.discoRoomInfo();var d=$(e).find(">json-message").text(),f=this.xmpp.tryParseJSONAndVerify(d);f&&void 0===u?this.eventEmitter.emit(p.a.JSON_MESSAGE_RECEIVED,t,f):a&&("chat"===r?this.eventEmitter.emit(p.a.PRIVATE_MESSAGE_RECEIVED,t,n,a,this.myroomjid,u):"groupchat"===r&&this.eventEmitter.emit(p.a.MESSAGE_RECEIVED,t,n,a,this.myroomjid,u))}},{key:"onPresenceError",value:function(e,t){$(e).find('>error[type="auth"]>not-authorized[xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"]').length?(S.log("on password required",t),this.eventEmitter.emit(p.a.PASSWORD_REQUIRED)):$(e).find('>error[type="cancel"]>not-allowed[xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"]').length?i.Strophe.getDomainFromJid(e.getAttribute("to"))===this.xmpp.options.hosts.anonymousdomain?this.eventEmitter.emit(p.a.ROOM_JOIN_ERROR):(S.warn("onPresError ",e),this.eventEmitter.emit(p.a.ROOM_CONNECT_NOT_ALLOWED_ERROR)):$(e).find(">error>service-unavailable").length?(S.warn("Maximum users limit for the room has been reached",e),this.eventEmitter.emit(p.a.ROOM_MAX_USERS_ERROR)):(S.warn("onPresError ",e),this.eventEmitter.emit(p.a.ROOM_CONNECT_ERROR))}},{key:"kick",value:function(e){var t=Object(i.$iq)({to:this.roomjid,type:"set"}).c("query",{xmlns:"http://jabber.org/protocol/muc#admin"}).c("item",{nick:i.Strophe.getResourceFromJid(e),role:"none"}).c("reason").t("You have been kicked.").up().up().up();this.connection.sendIQ(t,function(t){return S.log("Kick participant with jid: ",e,t)},function(e){return S.log("Kick participant error: ",e)})}},{key:"lockRoom",value:function(e,t,n,r){var o=this;this.connection.sendIQ(Object(i.$iq)({to:this.roomjid,type:"get"}).c("query",{xmlns:"http://jabber.org/protocol/muc#owner"}),function(a){if($(a).find('>query>x[xmlns="jabber:x:data"]>field[var="muc#roomconfig_roomsecret"]').length){var s=Object(i.$iq)({to:o.roomjid,type:"set"}).c("query",{xmlns:"http://jabber.org/protocol/muc#owner"});s.c("x",{xmlns:"jabber:x:data",type:"submit"}),s.c("field",{var:"FORM_TYPE"}).c("value").t("http://jabber.org/protocol/muc#roomconfig").up().up(),s.c("field",{var:"muc#roomconfig_roomsecret"}).c("value").t(e).up().up(),s.c("field",{var:"muc#roomconfig_whois"}).c("value").t("anyone").up().up(),o.connection.sendIQ(s,t,n)}else r()},n)}},{key:"addToPresence",value:function(e,t){t.tagName=e,this.removeFromPresence(e),this.presMap.nodes.push(t)}},{key:"getFromPresence",value:function(e){return this.presMap.nodes.find(function(t){return e===t.tagName})}},{key:"removeFromPresence",value:function(e){var t=this.presMap.nodes.filter(function(t){return e!==t.tagName});this.presMap.nodes=t}},{key:"addPresenceListener",value:function(e,t){if("function"!=typeof t)throw new Error('"handler" is not a function');var n=this.presHandlers[e];n||(this.presHandlers[e]=n=[]),-1===n.indexOf(t)?n.push(t):S.warn("Trying to add the same handler more than once for: ".concat(e))}},{key:"removePresenceListener",value:function(e,t){var n=this.presHandlers[e],r=n?n.indexOf(t):-1;-1!==r?n.splice(r,1):S.warn("Handler for: ".concat(e," was not registered"))}},{key:"isFocus",value:function(e){var t=this.members[e];return t?t.isFocus:null}},{key:"isModerator",value:function(){return"moderator"===this.role}},{key:"getMemberRole",value:function(e){return this.members[e]?this.members[e].role:null}},{key:"setVideoMute",value:function(e,t){this.sendVideoInfoPresence(e),t&&t(e)}},{key:"setAudioMute",value:function(e,t){return this.sendAudioInfoPresence(e,t)}},{key:"addAudioInfoToPresence",value:function(e){this.removeFromPresence("audiomuted"),this.addToPresence("audiomuted",{attributes:{xmlns:"http://jitsi.org/jitmeet/audio"},value:e.toString()})}},{key:"sendAudioInfoPresence",value:function(e,t){this.addAudioInfoToPresence(e),this.connection&&this.sendPresence(),t&&t()}},{key:"addVideoInfoToPresence",value:function(e){this.removeFromPresence("videomuted"),this.addToPresence("videomuted",{attributes:{xmlns:"http://jitsi.org/jitmeet/video"},value:e.toString()})}},{key:"sendVideoInfoPresence",value:function(e){this.addVideoInfoToPresence(e),this.connection&&this.sendPresence()}},{key:"getMediaPresenceInfo",value:function(e,t){var n=this.lastPresences["".concat(this.roomjid,"/").concat(e)];if(!n)return null;var r={muted:!1,videoType:void 0},i=null;if(t===l.a)i=b(n,"audiomuted");else{if(t!==l.b)return S.error("Unsupported media type: ".concat(t)),null;i=b(n,"videomuted");var o=b(n,"videoType");o.length>0&&(r.videoType=o[0].value)}return r.muted=i.length>0&&"true"===i[0].value,r}},{key:"isSIPCallingSupported",value:function(){return!!this.moderator&&this.moderator.isSipGatewayEnabled()}},{key:"dial",value:function(e){return this.connection.rayo.dial(e,"fromnumber",i.Strophe.getBareJidFromJid(this.myroomjid),this.password,this.focusMucJid)}},{key:"hangup",value:function(){return this.connection.rayo.hangup()}},{key:"getPhoneNumber",value:function(){return this.phoneNumber}},{key:"getPhonePin",value:function(){return this.phonePin}},{key:"muteParticipant",value:function(e,t){S.info("set mute",t);var n=Object(i.$iq)({to:this.focusMucJid,type:"set"}).c("mute",{xmlns:"http://jitsi.org/jitmeet/audio",jid:e}).t(t.toString()).up();this.connection.sendIQ(n,function(e){return S.log("set mute",e)},function(e){return S.log("set mute error",e)})}},{key:"onMute",value:function(e){if(e.getAttribute("from")===this.focusMucJid){var t=$(e).find("mute");t.length&&"true"===t.text()?this.eventEmitter.emit(p.a.AUDIO_MUTED_BY_FOCUS,t.attr("actor")):S.warn("Ignoring a mute request which does not explicitly specify a positive mute command.")}else S.warn("Ignored mute from non focus peer")}},{key:"leave",value:function(){var e=this;return new Promise(function(t,n){var r=setTimeout(function(){return o(!0)},5e3),i=e.eventEmitter;function o(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];i.removeListener(p.a.MUC_LEFT,o),clearTimeout(r),e?n(new Error("The timeout for the confirmation about leaving the room expired.")):t()}i.on(p.a.MUC_LEFT,o),e.doLeave()})}}])&&m(n.prototype,r),t})()}).call(this,"modules/xmpp/ChatRoom.js")},function(e,t,n){"use strict";(function(e){n.d(t,"a",function(){return d});var r=n(1),i=n(3),o=n(25),a=n(4).getLogger(e),s=n(0),c=n(56),u=n(11);function l(e){var t=1;return function(n){if(!n){var r=Math.pow(2,t-1);return t+=1,r*e}t=1}}function d(e,t,n,r){function i(e){if(e.data&&e.data.sessionId){if(e.origin!==window.location.origin)return void a.warn("Ignoring sessionId from different origin: ".concat(e.origin));o.a.sessionId=e.data.sessionId}}this.roomName=e,this.xmppService=t,this.getNextTimeout=l(1e3),this.getNextErrorTimeout=l(1e3),this.externalAuthEnabled=!1,this.options=r,this.sipGatewayEnabled=this.options.connection.hosts&&void 0!==this.options.connection.hosts.call_control,this.eventEmitter=n,this.connection=this.xmppService.connection,window.addEventListener?window.addEventListener("message",i,!1):window.attachEvent("onmessage",i)}d.prototype.isExternalAuthEnabled=function(){return this.externalAuthEnabled},d.prototype.isSipGatewayEnabled=function(){return this.sipGatewayEnabled},d.prototype.onMucMemberLeft=function(e){a.info("Someone left is it focus ? ".concat(e)),"focus"===r.Strophe.getResourceFromJid(e)&&(a.info("Focus has left the room - leaving conference"),this.eventEmitter.emit(s.FOCUS_LEFT))},d.prototype.setFocusUserJid=function(e){this.focusUserJid||(this.focusUserJid=e,a.info("Focus jid set to: ".concat(this.focusUserJid)))},d.prototype.getFocusUserJid=function(){return this.focusUserJid},d.prototype.getFocusComponent=function(){var e=this.options.connection.hosts.focus;return e||(e="focus.".concat(this.options.connection.hosts.domain)),e},d.prototype.createConferenceIq=function(){var e,t=Object(r.$iq)({to:this.getFocusComponent(),type:"set"}),n=o.a.sessionId,s=o.a.machineId,c=this.options.conference;switch(a.info("Session ID: ".concat(n," machine UID: ").concat(s)),t.c("conference",{xmlns:"http://jitsi.org/protocol/focus",room:this.roomName,"machine-uid":s}),n&&t.attrs({"session-id":n}),void 0!==this.options.connection.enforcedBridge&&t.c("property",{name:"enforcedBridge",value:this.options.connection.enforcedBridge}).up(),void 0!==this.options.connection.hosts&&void 0!==this.options.connection.hosts.call_control&&t.c("property",{name:"call_control",value:this.options.connection.hosts.call_control}).up(),void 0!==c.channelLastN&&t.c("property",{name:"channelLastN",value:c.channelLastN}).up(),t.c("property",{name:"disableRtx",value:Boolean(c.disableRtx)}).up(),void 0!==c.enableTcc&&t.c("property",{name:"enableTcc",value:Boolean(c.enableTcc)}).up(),void 0!==c.enableRemb&&t.c("property",{name:"enableRemb",value:Boolean(c.enableRemb)}).up(),void 0!==c.minParticipants&&t.c("property",{name:"minParticipants",value:c.minParticipants}).up(),t.c("property",{name:"enableLipSync",value:!1!==this.options.connection.enableLipSync}).up(),void 0!==c.audioPacketDelay&&t.c("property",{name:"audioPacketDelay",value:c.audioPacketDelay}).up(),c.startBitrate&&t.c("property",{name:"startBitrate",value:c.startBitrate}).up(),c.minBitrate&&t.c("property",{name:"minBitrate",value:c.minBitrate}).up(),c.testing&&c.testing.octo&&"number"==typeof c.testing.octo.probability&&Math.random()conference>property[name='authentication'][value='true']").length>0;a.info("Authentication enabled: ".concat(t)),this.externalAuthEnabled=$(e).find(">conference>property[name='externalAuth'][value='true']").length>0,a.info("External authentication enabled: ".concat(this.externalAuthEnabled)),this.externalAuthEnabled||this.parseSessionId(e);var n=$(e).find(">conference").attr("identity");this.eventEmitter.emit(c.IDENTITY_UPDATED,t,n),$(e).find(">conference>property[name='sipGatewayEnabled'][value='true']").length&&(this.sipGatewayEnabled=!0),a.info("Sip gateway enabled: ".concat(this.sipGatewayEnabled))},d.prototype.allocateConferenceFocus=function(){var e=this;return new Promise(function(t){e.setFocusUserJid(e.options.connection.focusUserJid),e.connection.sendIQ(e.createConferenceIq(),function(n){return e._allocateConferenceFocusSuccess(n,t)},function(n){return e._allocateConferenceFocusError(n,t)}),e.connection.flush()})},d.prototype._allocateConferenceFocusError=function(e,t){var n=this,i=$(e).find(">error>session-invalid").length||$(e).find(">error>not-acceptable").length;if(i&&(a.info("Session expired! - removing"),o.a.sessionId=void 0),$(e).find(">error>graceful-shutdown").length)this.eventEmitter.emit(s.GRACEFUL_SHUTDOWN);else{var c=$(e).find(">error>reservation-error");if(c.length){var l,d=c.attr("error-code"),p=$(e).find(">error>text");return p&&(l=p.text()),void this.eventEmitter.emit(s.RESERVATION_ERROR,d,l)}if($(e).find(">error>not-authorized").length)return a.warn("Unauthorized to start the conference",e),r.Strophe.getDomainFromJid(e.getAttribute("to"))!==this.options.connection.hosts.anonymousdomain&&(this.externalAuthEnabled=!0),void this.eventEmitter.emit(s.AUTHENTICATION_REQUIRED);var f=this.getNextErrorTimeout(),h="Focus error, retry after ".concat(f);u.callErrorHandler(new Error(h)),a.error(h,e);var m=this.getFocusComponent(),v=f/1e3;i||this.eventEmitter.emit(s.FOCUS_DISCONNECTED,m,v),this.getNextTimeout(!0),window.setTimeout(function(){return n.allocateConferenceFocus().then(t)},f)}},d.prototype._allocateConferenceFocusSuccess=function(e,t){var n=this;if(this.parseConfigOptions(e),this.getNextErrorTimeout(!0),"true"===$(e).find("conference").attr("ready"))this.getNextTimeout(!0),t();else{var r=this.getNextTimeout();a.info("Waiting for the focus... ".concat(r)),window.setTimeout(function(){return n.allocateConferenceFocus().then(t)},r)}},d.prototype.authenticate=function(){var e=this;return new Promise(function(t,n){e.connection.sendIQ(e.createConferenceIq(),function(n){e.parseSessionId(n),t()},function(e){return n({error:$(e).find("iq>error :first").prop("tagName"),message:$(e).find("iq>error>text").text()})})})},d.prototype.getLoginUrl=function(e,t){this._getLoginUrl(!1,e,t)},d.prototype._getLoginUrl=function(e,t,n){var i=Object(r.$iq)({to:this.getFocusComponent(),type:"get"}),s={xmlns:"http://jitsi.org/protocol/focus",room:this.roomName,"machine-uid":o.a.machineId},c="auth url";function l(e,t){u.callErrorHandler(new Error(e)),a.error(e,t),n(t)}e&&(s.popup=!0,c="POPUP ".concat(c)),i.c("login-url",s),this.connection.sendIQ(i,function(e){var n=$(e).find("login-url").attr("url");(n=decodeURIComponent(n))?(a.info("Got ".concat(c,": ").concat(n)),t(n)):l("Failed to get ".concat(c," from the focus"),e)},l.bind(void 0,"Get ".concat(c," error")))},d.prototype.getPopupLoginUrl=function(e,t){this._getLoginUrl(!0,e,t)},d.prototype.logout=function(e){var t=Object(r.$iq)({to:this.getFocusComponent(),type:"set"}),n=o.a.sessionId;n?(t.c("logout",{xmlns:"http://jitsi.org/protocol/focus","session-id":n}),this.connection.sendIQ(t,function(t){var n=$(t).find("logout").attr("logout-url");n&&(n=decodeURIComponent(n)),a.info("Log out OK, url: ".concat(n),t),o.a.sessionId=void 0,e(n)},function(e){u.callErrorHandler(new Error("Logout error")),a.error("Logout error",e)})):e()}}).call(this,"modules/xmpp/moderator.js")},function(e,t,n){"use strict";(function(e){n.d(t,"a",function(){return T});var r=n(7),i=n(4),o=n(1),a=n(0),s=n.n(a),c=n(11),u=n.n(c),l=n(33),d=n.n(l),p=n(5),f=n(44),h=n(34);function m(e){return(m="function"==typeof Symbol&&"symbol"==typeof("function"==typeof Symbol?Symbol.iterator:"@@iterator")?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==("function"==typeof Symbol?Symbol.prototype:"@@prototype")?"symbol":typeof e})(e)}function v(e,t){for(var n=0;nstartmuted");if(h&&h.length>0){var m=h.attr("audio"),v=h.attr("video");this.eventEmitter.emit(s.a.START_MUTED_FROM_FOCUS,"true"===m,"true"===v)}b.info("Marking session from ".concat(i," as ").concat(d?"":"*not*"," P2P")),c=new f.a($(e).find("jingle").attr("sid"),$(e).attr("to"),i,this.connection,this.mediaConstraints,d?this.p2pIceConfig:this.jvbIceConfig,d,!1),this.sessions[c.sid]=c,this.eventEmitter.emit(s.a.CALL_INCOMING,c,$(e).find(">jingle"),l);break;case"session-accept":this.eventEmitter.emit(s.a.CALL_ACCEPTED,c,$(e).find(">jingle"));break;case"content-modify":c.modifyContents($(e).find(">jingle"));break;case"transport-info":this.eventEmitter.emit(s.a.TRANSPORT_INFO,c,$(e).find(">jingle"));break;case"session-terminate":b.log("terminating...",c.sid);var y=null,g=null;$(e).find(">jingle>reason").length&&(y=$(e).find(">jingle>reason>:first")[0].tagName,g=$(e).find(">jingle>reason>text").text()),this.terminate(c.sid,y,g),this.eventEmitter.emit(s.a.CALL_ENDED,c,y,g);break;case"transport-replace":b.info("(TIME) Start transport replace",l),p.a.sendAnalytics(Object(r.F)(r.f,{p2p:d,value:l})),c.replaceTransport($(e).find(">jingle"),function(){var e=window.performance.now();b.info("(TIME) Transport replace success!",e),p.a.sendAnalytics(Object(r.F)(r.g,{p2p:d,value:e}))},function(e){u.a.callErrorHandler(e),b.error("Transport replace failed",e),c.sendTransportReject()});break;case"addsource":case"source-add":c.addRemoteStream($(e).find(">jingle>content"));break;case"removesource":case"source-remove":c.removeRemoteStream($(e).find(">jingle>content"));break;default:b.warn("jingle action not implemented",n),a.attrs({type:"error"}),a.c("error",{type:"cancel"}).c("bad-request",{xmlns:"urn:ietf:params:xml:ns:xmpp-stanzas"}).up()}return this.connection.send(a),!0}},{key:"newP2PJingleSession",value:function(e,t){var n=new f.a(d.a.randomHexString(12),e,t,this.connection,this.mediaConstraints,this.p2pIceConfig,!0,!0);return this.sessions[n.sid]=n,n}},{key:"terminate",value:function(e,t,n){this.sessions.hasOwnProperty(e)&&("ended"!==this.sessions[e].state&&this.sessions[e].onTerminated(t,n),delete this.sessions[e])}},{key:"getStunAndTurnCredentials",value:function(){var e=this;this.connection.sendIQ(Object(o.$iq)({type:"get",to:this.connection.domain}).c("services",{xmlns:"urn:xmpp:extdisco:1"}),function(t){var n=[];$(t).find(">services>service").each(function(e,t){var r={},i=(t=$(t)).attr("type");switch(i){case"stun":r.url="stun:".concat(t.attr("host")),t.attr("port")&&(r.url+=":".concat(t.attr("port"))),n.push(r);break;case"turn":case"turns":r.url="".concat(i,":");var o=t.attr("username");if(o){var a=navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);a&&parseInt(a[2],10)<28?r.url+="".concat(o,"@"):r.username=o}r.url+=t.attr("host"),t.attr("port")&&(r.url+=":".concat(t.attr("port")));var s=t.attr("transport");s&&"udp"!==s&&(r.url+="?transport=".concat(s)),r.credential=t.attr("password")||r.credential,n.push(r)}});var r=e.xmpp.options;r.useStunTurn&&(e.jvbIceConfig.iceServers=n.filter(function(e){return e.url.startsWith("turns")})),r.p2p&&r.p2p.useStunTurn&&(e.p2pIceConfig.iceServers=n)},function(e){b.warn("getting turn credentials failed",e),b.warn("is mod_turncredentials or similar installed?")})}},{key:"getLog",value:function(){var e=this,t={};return Object.keys(this.sessions).forEach(function(n){var r=e.sessions[n].peerconnection;r&&r.updateLog&&(t["jingle_".concat(n)]={updateLog:r.updateLog,stats:r.stats,url:window.location.href})}),t}}])&&v(n.prototype,i),t})();function T(e,t,n){o.Strophe.addConnectionPlugin("jingle",new E(e,t,n))}}).call(this,"modules/xmpp/strophe.jingle.js")},function(e,t){e.exports={integerHash:function(e){if(!e)return 0;var t,n=0;for(t=0;t=e.length&&n()}d(e,function(e){t(e,c(i))})},s.forEach=s.each,s.eachSeries=function(e,t,n){if(n=n||function(){},!e.length)return n();var r=0;!(function i(){t(e[r],function(t){t?(n(t),n=function(){}):(r+=1)>=e.length?n():i()})})()},s.forEachSeries=s.eachSeries,s.eachLimit=function(e,t,n,r){h(t).apply(null,[e,n,r])},s.forEachLimit=s.eachLimit;var h=function(e){return function(t,n,r){if(r=r||function(){},!t.length||e<=0)return r();var i=0,o=0,a=0;!(function s(){if(i>=t.length)return r();for(;a=t.length?r():s())})})()}},m=function(e){return function(){var t=Array.prototype.slice.call(arguments);return e.apply(null,[s.each].concat(t))}},v=function(e){return function(){var t=Array.prototype.slice.call(arguments);return e.apply(null,[s.eachSeries].concat(t))}},y=function(e,t,n,r){if(t=p(t,function(e,t){return{index:t,value:e}}),r){var i=[];e(t,function(e,t){n(e.value,function(n,r){i[e.index]=r,t(n)})},function(e){r(e,i)})}else e(t,function(e,t){n(e.value,function(e){t(e)})})};s.map=m(y),s.mapSeries=v(y),s.mapLimit=function(e,t,n,r){return g(t)(e,n,r)};var g=function(e){return(function(e,t){return function(){var n=Array.prototype.slice.call(arguments);return t.apply(null,[h(e)].concat(n))}})(e,y)};s.reduce=function(e,t,n,r){s.eachSeries(e,function(e,r){n(t,e,function(e,n){t=n,r(e)})},function(e){r(e,t)})},s.inject=s.reduce,s.foldl=s.reduce,s.reduceRight=function(e,t,n,r){var i=p(e,function(e){return e}).reverse();s.reduce(i,t,n,r)},s.foldr=s.reduceRight;var S=function(e,t,n,r){var i=[];e(t=p(t,function(e,t){return{index:t,value:e}}),function(e,t){n(e.value,function(n){n&&i.push(e),t()})},function(e){r(p(i.sort(function(e,t){return e.index-t.index}),function(e){return e.value}))})};s.filter=m(S),s.filterSeries=v(S),s.select=s.filter,s.selectSeries=s.filterSeries;var _=function(e,t,n,r){var i=[];e(t=p(t,function(e,t){return{index:t,value:e}}),function(e,t){n(e.value,function(n){n||i.push(e),t()})},function(e){r(p(i.sort(function(e,t){return e.index-t.index}),function(e){return e.value}))})};s.reject=m(_),s.rejectSeries=v(_);var b=function(e,t,n,r){e(t,function(e,t){n(e,function(n){n?(r(e),r=function(){}):t()})},function(e){r()})};s.detect=m(b),s.detectSeries=v(b),s.some=function(e,t,n){s.each(e,function(e,r){t(e,function(e){e&&(n(!0),n=function(){}),r()})},function(e){n(!1)})},s.any=s.some,s.every=function(e,t,n){s.each(e,function(e,r){t(e,function(e){e||(n(!1),n=function(){}),r()})},function(e){n(!0)})},s.all=s.every,s.sortBy=function(e,t,n){s.map(e,function(e,n){t(e,function(t,r){t?n(t):n(null,{value:e,criteria:r})})},function(e,t){if(e)return n(e);n(null,p(t.sort(function(e,t){var n=e.criteria,r=t.criteria;return nr?1:0}),function(e){return e.value}))})},s.auto=function(e,t){t=t||function(){};var n=f(e),r=n.length;if(!r)return t();var i={},o=[],a=function(e){o.unshift(e)},c=function(){r--,d(o.slice(0),function(e){e()})};a(function(){if(!r){var e=t;t=function(){},e(null,i)}}),d(n,function(n){var r=l(e[n])?e[n]:[e[n]],u=function(e){var r=Array.prototype.slice.call(arguments,1);if(r.length<=1&&(r=r[0]),e){var o={};d(f(i),function(e){o[e]=i[e]}),o[n]=r,t(e,o),t=function(){}}else i[n]=r,s.setImmediate(c)},p=r.slice(0,Math.abs(r.length-1))||[],h=function(){return t=function(e,t){return e&&i.hasOwnProperty(t)},r=!0,((e=p).reduce?e.reduce(t,r):(d(e,function(e,n,i){r=t(r,e)}),r))&&!i.hasOwnProperty(n);var e,t,r};h()?r[r.length-1](u,i):a(function e(){h()&&((function(e){for(var t=0;t>>1);n(t,e[o])>=0?r=o:i=o-1}return r})(e.tasks,o,n)+1,0,o),e.saturated&&e.tasks.length===e.concurrency&&e.saturated(),s.setImmediate(e.process)})})(r,e,t,i)},delete r.unshift,r},s.cargo=function(e,t){var n=!1,r=[],i={tasks:r,payload:t,saturated:null,empty:null,drain:null,drained:!0,push:function(e,n){l(e)||(e=[e]),d(e,function(e){r.push({data:e,callback:"function"==typeof n?n:null}),i.drained=!1,i.saturated&&r.length===t&&i.saturated()}),s.setImmediate(i.process)},process:function o(){if(!n){if(0===r.length)return i.drain&&!i.drained&&i.drain(),void(i.drained=!0);var a="number"==typeof t?r.splice(0,t):r.splice(0,r.length),s=p(a,function(e){return e.data});i.empty&&i.empty(),n=!0,e(s,function(){n=!1;var e=arguments;d(a,function(t){t.callback&&t.callback.apply(null,e)}),o()})}},length:function(){return r.length},running:function(){return n}};return i};var C=function(e){return function(t){var n=Array.prototype.slice.call(arguments,1);t.apply(null,n.concat([function(t){var n=Array.prototype.slice.call(arguments,1);"undefined"!=typeof console&&(t?console.error&&console.error(t):console[e]&&d(n,function(t){console[e](t)}))}]))}};s.log=C("log"),s.dir=C("dir"),s.memoize=function(e,t){var n={},r={};t=t||function(e){return e};var i=function(){var i=Array.prototype.slice.call(arguments),o=i.pop(),a=t.apply(null,i);a in n?s.nextTick(function(){o.apply(null,n[a])}):a in r?r[a].push(o):(r[a]=[o],e.apply(null,i.concat([function(){n[a]=arguments;var e=r[a];delete r[a];for(var t=0,i=e.length;t2){var r=Array.prototype.slice.call(arguments,2);return n.apply(this,r)}return n};s.applyEach=m(R),s.applyEachSeries=v(R),s.forever=function(e,t){!(function n(r){if(r){if(t)return t(r);throw r}e(n)})()},e.exports?e.exports=s:void 0===(i=function(){return s}.apply(t,[]))||(e.exports=i)})()}).call(this,n(48),n(126).setImmediate)},function(e,t,n){"use strict";(function(e){var r=n(4),i=n(1),o=n(11),a=n.n(o),s=Object(r.getLogger)(e),c=-1,u=/request id \d+.\d+ got 200/,l=/request errored, status: (\d+), number of errors: \d+/;t.a=function(){i.Strophe.log=function(e,t){switch(s.trace("Strophe",e,t),"string"==typeof t&&-1!==t.indexOf("Request ")&&-1!==t.indexOf("timed out (secondary), restarting")&&(e=i.Strophe.LogLevel.WARN),e){case i.Strophe.LogLevel.DEBUG:-1!==c&&u.test(t)&&(s.debug("Reset lastErrorStatus"),c=-1);break;case i.Strophe.LogLevel.WARN:s.warn("Strophe: ".concat(t));var n=l.exec(t);n&&2===n.length&&(c=parseInt(n[1],10),s.debug("lastErrorStatus set to: ".concat(c)));break;case i.Strophe.LogLevel.ERROR:case i.Strophe.LogLevel.FATAL:t="Strophe: ".concat(t),a.a.callErrorHandler(new Error(t)),s.error(t)}},i.Strophe.getLastErrorStatus=function(){return c},i.Strophe.getStatusString=function(e){switch(e){case i.Strophe.Status.ERROR:return"ERROR";case i.Strophe.Status.CONNECTING:return"CONNECTING";case i.Strophe.Status.CONNFAIL:return"CONNFAIL";case i.Strophe.Status.AUTHENTICATING:return"AUTHENTICATING";case i.Strophe.Status.AUTHFAIL:return"AUTHFAIL";case i.Strophe.Status.CONNECTED:return"CONNECTED";case i.Strophe.Status.DISCONNECTED:return"DISCONNECTED";case i.Strophe.Status.DISCONNECTING:return"DISCONNECTING";case i.Strophe.Status.ATTACHED:return"ATTACHED";default:return"unknown"}}}}).call(this,"modules/xmpp/strophe.util.js")},function(e,t,n){"use strict";(function(e){var r=n(4),i=n(1),o=n(11),a=n.n(o),s=n(34);function c(e){return(c="function"==typeof Symbol&&"symbol"==typeof("function"==typeof Symbol?Symbol.iterator:"@@iterator")?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==("function"==typeof Symbol?Symbol.prototype:"@@prototype")?"symbol":typeof e})(e)}function u(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:1e4;if(this.intervalId){var r="Ping task scheduled already";return a.a.callErrorHandler(new Error(r)),void h.error(r)}this.intervalId=window.setInterval(function(){t.ping(e,function(){t.failedPings=0},function(e){t.failedPings+=1;var n="Ping ".concat(e?"error":"timeout");t.failedPings>=3?(a.a.callErrorHandler(new Error(n)),h.error(n,e)):h.warn(n,e)},15e3)},n),h.info("XMPP pings will be sent every ".concat(n," ms"))}},{key:"stopInterval",value:function(){this.intervalId&&(window.clearInterval(this.intervalId),this.intervalId=null,this.failedPings=0,h.info("Ping interval cleared"))}},{key:"_addPingExecutionTimestamp",value:function(){this.pingExecIntervals.push((new Date).getTime()),this.pingExecIntervals.length>m&&this.pingExecIntervals.shift()}},{key:"getPingSuspendTime",value:function(){var e=this.pingExecIntervals.slice();e.push((new Date).getTime());var t=0,n=e[0];return e.forEach(function(e){var r=e-n;r>t&&(t=r),n=e}),t-=1e4,Math.max(t,0)}}])&&u(n.prototype,r),t})();t.a=function(e){i.Strophe.addConnectionPlugin("ping",new v(e))}}).call(this,"modules/xmpp/strophe.ping.js")},function(e,t,n){"use strict";(function(e){var r=n(4),i=n(1),o=n(34);function a(e){return(a="function"==typeof Symbol&&"symbol"==typeof("function"==typeof Symbol?Symbol.iterator:"@@iterator")?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==("function"==typeof Symbol?Symbol.prototype:"@@prototype")?"symbol":typeof e})(e)}function s(e,t){for(var n=0;nt[r]?1:e[r]0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"http://jitsi.org/jitsimeet";if((function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")})(this,t),(e=(function(e,t){return!t||"object"!==s(t)&&"function"!=typeof t?d(e):t})(this,u(t).call(this))).node=i,e.disco=n.disco,!e.disco)throw new Error("Missing strophe-plugins (disco plugin is required)!");e.versionToCapabilities=Object.create(null),e.jidToVersion=Object.create(null),e.version="",e.rooms=new Set;var a=n.emuc;return a.addListener(o.a.EMUC_ROOM_ADDED,function(t){return e._addChatRoom(t)}),a.addListener(o.a.EMUC_ROOM_REMOVED,function(t){return e._removeChatRoom(t)}),Object.keys(a.rooms).forEach(function(t){e._addChatRoom(a.rooms[t])}),r.Strophe.addNamespace("CAPS","http://jabber.org/protocol/caps"),e.disco.addFeature(r.Strophe.NS.CAPS),n.addHandler(e._handleCaps.bind(d(d(e))),r.Strophe.NS.CAPS),e._onMucMemberLeft=e._removeJidToVersionEntry.bind(d(d(e))),e}var n,i;return(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&l(e,t)})(t,e),n=t,(i=[{key:"addFeature",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.disco.addFeature(e),this._generateVersion(),t&&this.submit()}},{key:"removeFeature",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.disco.removeFeature(e),this._generateVersion(),t&&this.submit()}},{key:"submit",value:function(){this.rooms.forEach(function(e){return e.sendPresence()})}},{key:"getFeatures",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:5e3,r=e in this.jidToVersion?this.jidToVersion[e]:null;if(!(r&&r.version in this.versionToCapabilities)){var i=r?"".concat(r.node,"#").concat(r.version):null;return this._getDiscoInfo(e,i,n).then(function(e){var n=e.features,o=e.identities;if(r){var a=v(Array.from(o),Array.from(n)),s="".concat(r.node,"#").concat(a);return s===i?(t.versionToCapabilities[s]=n,n):t.versionToCapabilities[s]?t.versionToCapabilities[s]:(p.error("Expected node ".concat(i," but received ").concat(s)),Promise.reject("Feature version mismatch"))}})}return Promise.resolve(this.versionToCapabilities[r.version])}},{key:"getFeaturesAndIdentities",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:5e3;return this._getDiscoInfo(e,null,t)}},{key:"_getDiscoInfo",value:function(e,t,n){var r=this;return new Promise(function(i,o){return r.disco.info(e,t,function(e){var t=new Set,n=new Set;$(e).find(">query>feature").each(function(e,n){return t.add(n.getAttribute("var"))}),$(e).find(">query>identity").each(function(e,t){return n.add({type:t.getAttribute("type"),name:t.getAttribute("name"),category:t.getAttribute("category")})}),i({features:t,identities:n})},o,n)})}},{key:"_addChatRoom",value:function(e){this.rooms.add(e),e.addListener(o.a.MUC_MEMBER_LEFT,this._onMucMemberLeft),this._fixChatRoomPresenceMap(e)}},{key:"_removeChatRoom",value:function(e){this.rooms.delete(e),e.removeListener(o.a.MUC_MEMBER_LEFT,this._onMucMemberLeft)}},{key:"_fixChatRoomPresenceMap",value:function(e){e.addToPresence("c",{attributes:{xmlns:r.Strophe.NS.CAPS,hash:"sha-1",node:this.node,ver:this.version}})}},{key:"_notifyVersionChanged",value:function(){var e=this;this.rooms.forEach(function(t){return e._fixChatRoomPresenceMap(t)})}},{key:"_generateVersion",value:function(){this.version=v(this.disco._identities,this.disco._features),this._notifyVersionChanged()}},{key:"_handleCaps",value:function(e){var t=e.getAttribute("from"),n=e.querySelector("c"),r=n.getAttribute("ver"),i=n.getAttribute("node"),a=this.jidToVersion[t];return this.jidToVersion[t]={version:r,node:i},a&&a.version!==r&&this.eventEmitter.emit(o.a.PARTCIPANT_FEATURES_CHANGED,t),!0}},{key:"_removeJidToVersionEntry",value:function(e){e in this.jidToVersion&&delete this.jidToVersion[e]}}])&&c(n.prototype,i),t})(a.a)}).call(this,"modules/xmpp/Caps.js")},function(e,t,n){"use strict";n.d(t,"a",function(){return s});var r=n(2),i=n(8),o=n.n(i);function a(e,t){for(var n=0;nthis.maxstats&&(i.values.shift(),i.times.shift()),i.endTime=o};var k=function(e){return null==e?"":"type: ".concat(e.type,"\r\n").concat(e.sdp)};w.prototype.getConnectionState=function(){var e=this.peerconnection.iceConnectionState;return"completed"===e?"connected":e},w.prototype._getDesiredMediaDirection=function(e){var t=!0;return e===c.a?t=this.audioTransferActive:e===c.b&&(t=this.videoTransferActive),t?this.hasAnyTracksOfType(e)?"sendrecv":"recvonly":"inactive"},w.prototype.isSimulcastOn=function(){return!this.options.disableSimulcast&&p.a.supportsSimulcast()&&(!p.a.isFirefox()||this.options.enableFirefoxSimulcast)},w.prototype._peerVideoTypeChanged=function(e,t){if(e){var n=this.getRemoteTracks(e,c.b);n.length&&n[0]._setVideoType(t)}else T.error("No endpointID on peerVideoTypeChanged ".concat(this))},w.prototype._peerMutedChanged=function(e,t,n){if(e){var r=this.getRemoteTracks(e,t);r.length&&r[0].setMute(n)}else T.error("On peerMuteChanged - no endpoint ID")},w.prototype.getLocalTracks=function(e){var t=Array.from(this.localTracks.values());return void 0!==e&&(t=t.filter(function(t){return t.getType()===e})),t},w.prototype.hasAnyTracksOfType=function(e){if(!e)throw new Error('"mediaType" is required');return this.getLocalTracks(e).length>0},w.prototype.getRemoteTracks=function(e,t){var n=[],r=e?[e]:this.remoteTracks.keys(),i=!0,o=!1,a=void 0;try{for(var s,c=r["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();!(i=(s=c.next()).done);i=!0){var u=s.value,l=this.remoteTracks.get(u);if(l){var d=!0,p=!1,f=void 0;try{for(var h,m=l.keys()["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();!(d=(h=m.next()).done);d=!0){var v=h.value;if(!t||t===v){var y=l.get(v);y&&n.push(y)}}}catch(e){p=!0,f=e}finally{try{d||null==m.return||m.return()}finally{if(p)throw f}}}}}catch(e){o=!0,a=e}finally{try{i||null==c.return||c.return()}finally{if(o)throw a}}return n},w.prototype.getTrackBySSRC=function(e){if("number"!=typeof e)throw new Error("SSRC ".concat(e," is not a number"));var t=!0,n=!1,r=void 0;try{for(var i,o=this.localTracks.values()["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();!(t=(i=o.next()).done);t=!0){var a=i.value;if(this.getLocalSSRC(a)===e)return a}}catch(e){n=!0,r=e}finally{try{t||null==o.return||o.return()}finally{if(n)throw r}}var s=!0,c=!1,u=void 0;try{for(var l,d=this.getRemoteTracks()["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();!(s=(l=d.next()).done);s=!0){var p=l.value;if(p.getSSRC()===e)return p}}catch(e){c=!0,u=e}finally{try{s||null==d.return||d.return()}finally{if(c)throw u}}return null},w.prototype.getSsrcByTrackId=function(e){var t=function(t){return t.getTrack().id===e},n=this.getLocalTracks().find(t);if(n)return this.getLocalSSRC(n);var r=this.getRemoteTracks().find(t);return r?r.getSSRC():null},w.prototype._remoteStreamAdded=function(e){var t=this,n=l.a.getStreamID(e);if(l.a.isUserStreamById(n)){(p.a.isChromiumBased()||p.a.isEdge())&&(e.onaddtrack=function(n){t._remoteTrackAdded(e,n.track)},e.onremovetrack=function(n){t._remoteTrackRemoved(e,n.track)});var r=e.getAudioTracks(),i=!0,o=!1,a=void 0;try{for(var s,c=r["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();!(i=(s=c.next()).done);i=!0){var u=s.value;this._remoteTrackAdded(e,u)}}catch(e){o=!0,a=e}finally{try{i||null==c.return||c.return()}finally{if(o)throw a}}var d=e.getVideoTracks(),f=!0,h=!1,m=void 0;try{for(var v,y=d["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();!(f=(v=y.next()).done);f=!0){var g=v.value;this._remoteTrackAdded(e,g)}}catch(e){h=!0,m=e}finally{try{f||null==y.return||y.return()}finally{if(h)throw m}}}else T.info("".concat(this," ignored remote 'stream added' event for non-user stream")+"id: ".concat(n))},w.prototype._remoteTrackAdded=function(e,t){var n=l.a.getStreamID(e),r=t.kind;if(T.info("".concat(this," remote track added:"),n,r),r){var i=new v.a(this.remoteDescription.sdp).media.filter(function(e){return e.startsWith("m=".concat(r))});if(i.length){var o=S.a.findLines(i[0],"a=ssrc:");if((o=o.filter(function(e){return-1!==e.indexOf("msid:".concat(n))})).length){var s=o[0].substring(7).split(" ")[0],c=Number(s),u=this.signalingLayer.getSSRCOwner(c);if(isNaN(c)||c<0)a.callErrorHandler(new Error("Invalid SSRC: ".concat(s," for remote track, msid: ").concat(n," media type: ").concat(r)));else if(u){T.log("".concat(this," associated ssrc"),u,c);var d=this.signalingLayer.getPeerMediaInfo(u,r);if(d){var p=d.muted,f=d.videoType;this._createRemoteTrack(u,e,t,r,f,c,p)}else a.callErrorHandler(new Error("".concat(this,": no peer media info available for ").concat(u)))}else a.callErrorHandler(new Error("No SSRC owner known for: ".concat(c," for remote track, msid: ").concat(n," media type: ").concat(r)))}else a.callErrorHandler(new Error("No SSRC lines for streamId ".concat(n," for remote track, media type: ").concat(r)))}else a.callErrorHandler(new Error("No media lines for type ".concat(r," found in remote SDP for remote track: ").concat(n)))}else a.callErrorHandler(new Error("MediaType undefined for remote track, stream id: ".concat(n)))},w.prototype._createRemoteTrack=function(e,t,n,r,i,o,a){var c=this.remoteTracks.get(e);c||(c=new Map,this.remoteTracks.set(e,c));var u=c.get(r);if(u&&u.getTrack()===n)T.info("".concat(this," ignored duplicated remote track added event for: ")+"".concat(e,", ").concat(r));else{u&&T.error("".concat(this," overwriting remote track for")+"".concat(e," ").concat(r));var l=new s.a(this.rtc,this.rtc.conference,e,t,n,r,i,o,a,this.isP2P);c.set(r,l),this.eventEmitter.emit(h.a.REMOTE_TRACK_ADDED,l)}},w.prototype._remoteStreamRemoved=function(e){if(l.a.isUserStream(e)){var t=e.getVideoTracks(),n=!0,r=!1,i=void 0;try{for(var o,a=t["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();!(n=(o=a.next()).done);n=!0){var s=o.value;this._remoteTrackRemoved(e,s)}}catch(e){r=!0,i=e}finally{try{n||null==a.return||a.return()}finally{if(r)throw i}}var c=e.getAudioTracks(),u=!0,d=!1,p=void 0;try{for(var f,h=c["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();!(u=(f=h.next()).done);u=!0){var m=f.value;this._remoteTrackRemoved(e,m)}}catch(e){d=!0,p=e}finally{try{u||null==h.return||h.return()}finally{if(d)throw p}}}else{var v=l.a.getStreamID(e);T.info("Ignored remote 'stream removed' event for non-user stream ".concat(v))}},w.prototype._remoteTrackRemoved=function(e,t){var n=l.a.getStreamID(e),r=t&&l.a.getTrackID(t);T.info("".concat(this," - remote track removed: ").concat(n,", ").concat(r)),n?r?this._removeRemoteTrackById(n,r)||T.warn("".concat(this," Removed track not found for msid: ").concat(n,",\n track id: ").concat(r)):a.callErrorHandler(new Error("".concat(this," remote track removal failed - no track ID"))):a.callErrorHandler(new Error("".concat(this," remote track removal failed - no stream ID")))},w.prototype._getRemoteTrackById=function(e,t){var n=!0,r=!1,i=void 0;try{for(var o,a=this.remoteTracks.values()["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();!(n=(o=a.next()).done);n=!0){var s=o.value,c=!0,u=!1,l=void 0;try{for(var d,p=s.values()["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();!(c=(d=p.next()).done);c=!0){var f=d.value;if(f.getStreamId()==e&&f.getTrackId()==t)return f}}catch(e){u=!0,l=e}finally{try{c||null==p.return||p.return()}finally{if(u)throw l}}}}catch(e){r=!0,i=e}finally{try{n||null==a.return||a.return()}finally{if(r)throw i}}},w.prototype.removeRemoteTracks=function(e){var t=[],n=this.remoteTracks.get(e);if(n){var r=n.get(c.a),i=n.get(c.b);r&&t.push(r),i&&t.push(i),this.remoteTracks.delete(e)}return T.debug("".concat(this," removed remote tracks for ").concat(e," count: ").concat(t.length)),t},w.prototype._removeRemoteTrack=function(e){e.dispose();var t=e.getParticipantId(),n=this.remoteTracks.get(t);n?n.delete(e.getType())||T.error("Failed to remove ".concat(e," - type mapping messed up ?")):T.error("removeRemoteTrack: no remote tracks map for ".concat(t)),this.eventEmitter.emit(h.a.REMOTE_TRACK_REMOVED,e)},w.prototype._removeRemoteTrackById=function(e,t){var n=this._getRemoteTrackById(e,t);return n&&this._removeRemoteTrack(n),n};var O=function(e){if("object"!==E(e)||null===e||"string"!=typeof e.sdp)return T.warn("An empty description was passed as an argument."),e;var t=n(22),r=t.parse(e.sdp);void 0!==r&&void 0!==r.media&&Array.isArray(r.media)&&r.media.forEach(function(e){var t=[],n=[];if(void 0!==e.ssrcGroups&&Array.isArray(e.ssrcGroups)&&e.ssrcGroups.forEach(function(e){void 0!==e.semantics&&"FID"===e.semantics&&void 0!==e.ssrcs&&t.push(Number(e.ssrcs.split(" ")[0]))}),Array.isArray(e.ssrcs)){var r;for(r=0;r=0&&(n.push(e.ssrcs[r]),delete e.ssrcs[r]);for(r=0;r0&&void 0!==arguments[0]?arguments[0]:[];if(!p.a.isChrome()||!p.a.isVersionGreaterThan(70))return e;var t=b(e);return e.filter(function(e){return"mslabel"===e.attribute&&"-"===e.value}).map(function(e){return e.id}).forEach(function(e){var n=t.find(function(t){return t.id===e&&"cname"===t.attribute});n.value="recvonly-".concat(e),(t=t.filter(function(t){return t.id!==e})).push(n)}),t})(n)}});var i=t.write(r);return new RTCSessionDescription({type:e.type,sdp:i})};w.prototype.getLocalSSRC=function(e){var t=this._getSSRC(e.rtcId);return t&&t.ssrcs[0]},w.prototype._injectSsrcGroupForUnifiedSimulcast=function(e){var t=o.a.parse(e.sdp),n=t.media.find(function(e){return"video"===e.type});if(n.simulcast_03){var r=[];if(n.ssrcs.forEach(function(e){"msid"===e.attribute&&r.push(e.id)}),n.ssrcGroups=n.ssrcGroups||[],n.ssrcGroups.find(function(e){return"SIM"===e.semantics}))return e;n.ssrcGroups.push({semantics:"SIM",ssrcs:r.join(" ")})}return new RTCSessionDescription({type:e.type,sdp:o.a.write(t)})};var I={signalingState:function(){return this.peerconnection.signalingState},iceConnectionState:function(){return this.peerconnection.iceConnectionState},localDescription:function(){var e=this.peerconnection.localDescription;return e?(this.trace("getLocalDescription::preTransform",k(e)),p.a.usesUnifiedPlan()&&(e=this.interop.toPlanB(e),this.trace("getLocalDescription::postTransform (Plan B)",k(e)),e=this._injectSsrcGroupForUnifiedSimulcast(e),this.trace("getLocalDescription::postTransform (inject ssrc group)",k(e))),p.a.doesVideoMuteByStreamRemove()&&(e=this.localSdpMunger.maybeAddMutedLocalVideoTracksToSDP(e),T.debug("getLocalDescription::postTransform (munge local SDP)",e)),e=(function(e,t){if(!e)throw new Error("No local description passed in.");var n=new g.a(e.sdp),r=n.selectMedia("audio"),i=!1;r&&"sendrecv"!==r.direction&&(t.startSilent?r.direction="inactive":r.direction="sendrecv",i=!0);var o=n.selectMedia("video");return o&&"sendrecv"!==o.direction&&(o.direction="sendrecv",i=!0),i?new RTCSessionDescription({type:e.type,sdp:n.toRawSDP()}):e})(e,this.options),e=this.localSdpMunger.transformStreamIdentifiers(e)):(T.debug("getLocalDescription no localDescription found"),{})},remoteDescription:function(){var e=this.peerconnection.remoteDescription;return this.trace("getRemoteDescription::preTransform",k(e)),p.a.usesUnifiedPlan()&&(e=this.interop.toPlanB(e),this.trace("getRemoteDescription::postTransform (Plan B)",k(e))),e||{}}};function P(e){return e.getLocalTracks().some(function(e){return"camera"===e.videoType})}function D(e){return e&&e.groups&&e.groups.length?e.groups[0].ssrcs[0]:e&&e.ssrcs&&e.ssrcs.length?e.ssrcs[0]:null}Object.keys(I).forEach(function(e){Object.defineProperty(w.prototype,e,{get:I[e]})}),w.prototype._getSSRC=function(e){return this.localSSRCs.get(e)},w.prototype.addTrack=function(e){var t=e.rtcId;if(T.info("add ".concat(e," to: ").concat(this)),this.localTracks.has(t))T.error("".concat(e," is already in ").concat(this));else{this.localTracks.set(t,e);var n=e.getOriginalStream();if(n?this._addStream(n):(!p.a.doesVideoMuteByStreamRemove()||e.isAudioTrack()||e.isVideoTrack()&&!e.isMuted())&&T.error("".concat(this," no WebRTC stream for: ").concat(e)),p.a.doesVideoMuteByStreamRemove()&&e.isVideoTrack()&&e.isMuted()){var r=this.generateNewStreamSSRCInfo(e);this.sdpConsistency.setPrimarySsrc(r.ssrcs[0]);var i=r.groups.find(function(e){return"SIM"===e.semantics});i&&this.simulcast.setSsrcCache(i.ssrcs);var o=r.groups.filter(function(e){return"FID"===e.semantics});if(o){var a=new Map;o.forEach(function(e){var t=e.ssrcs[0],n=e.ssrcs[1];a.set(t,n)}),this.rtxModifier.setSsrcCache(a)}}}},w.prototype.addTrackUnmute=function(e){if(!this._assertTrackBelongs("addTrackUnmute",e))return!1;T.info("Adding ".concat(e," as unmute to ").concat(this));var t=e.getOriginalStream();return t?(this._addStream(t),!0):(T.error("Unable to add ".concat(e," as unmute to ").concat(this," - no WebRTC stream")),!1)},w.prototype._addStream=function(e){this.peerconnection.addStream(e),this._addedStreams.push(e)},w.prototype._removeStream=function(e){p.a.supportsRtpSender()?this._handleSenderRemoveStream(e):this.peerconnection.removeStream(e),this._addedStreams=this._addedStreams.filter(function(t){return t!==e})},w.prototype._assertTrackBelongs=function(e,t){var n=this.localTracks.has(t.rtcId);return n||T.error("".concat(e,": ").concat(t," does not belong to ").concat(this)),n},w.prototype.isMediaStreamInPc=function(e){return this._addedStreams.indexOf(e)>-1},w.prototype.removeTrack=function(e){var t=e.getOriginalStream();this.trace("removeStream",e.rtcId,t?t.id:void 0),this._assertTrackBelongs("removeStream",e)&&(this.localTracks.delete(e.rtcId),this.localSSRCs.delete(e.rtcId),t&&(p.a.supportsRtpSender()?this._handleSenderRemoveStream(t):this.peerconnection.removeStream(t)))},w.prototype.findSenderByStream=function(e){var t=e.getTracks()[0];if(t)return this.peerconnection.getSenders().find(function(e){return e.track===t});T.error("Cannot find sender: no tracks.")},w.prototype.replaceTrack=function(e,t){var n=this;if(p.a.supportsRtpSender()&&e&&t){var r=this.findSenderByStream(e.getOriginalStream()),i=t.getOriginalStream();if(r&&i){var o=i.getTracks()[0];if(o)return r.replaceTrack(o,i).then(function(){var r=n.localSSRCs.get(e.rtcId);return n.localTracks.delete(e.rtcId),n.localSSRCs.delete(e.rtcId),n._addedStreams=n._addedStreams.filter(function(e){return e!==i}),n.localTracks.set(t.rtcId,t),t.storedMSID=e.storedMSID,n._addedStreams.push(i),n.localSSRCs.set(t.rtcId,r),n.eventEmitter.emit(h.a.LOCAL_TRACK_SSRC_UPDATED,t,D(r)),!1})}}return e&&this.removeTrack(e),t&&this.addTrack(t),Promise.resolve(!0)},w.prototype.removeTrackMute=function(e){var t=e.getOriginalStream();return this.trace("removeStreamMute",e.rtcId,t?t.id:null),!!this._assertTrackBelongs("removeStreamMute",e)&&(t?(T.info("Removing ".concat(e," as mute from ").concat(this)),this._removeStream(t),!0):(T.error("removeStreamMute - no WebRTC stream for ".concat(e)),!1))},w.prototype._handleSenderRemoveStream=function(e){if(e){var t=this.findSenderByStream(e);t?this.peerconnection.removeTrack(t):T.log("Cannot remove tracks: no RTPSender.")}},w.prototype.createDataChannel=function(e,t){return this.trace("createDataChannel",e,t),this.peerconnection.createDataChannel(e,t)},w.prototype._ensureSimulcastGroupIsLast=function(e){var t=e.sdp,n=t.indexOf("m=video"),r=t.indexOf("a=ssrc-group:SIM",n),i=t.lastIndexOf("a=ssrc-group");if(-1===r||-1===i||i===r)return e;var o=t.indexOf("\r\n",r),a=t.substring(r,o+2);i=(t=t.replace(a,"")).lastIndexOf("a=ssrc-group");var s=t.indexOf("\r\n",i),c=t.slice(0,s),u=a.trim(),l=t.slice(s);return t="".concat(c,"\r\n").concat(u).concat(l),new RTCSessionDescription({type:e.type,sdp:t})},w.prototype._adjustLocalMediaDirection=function(e){var t=new g.a(e.sdp),n=!1,r=t.selectMedia("audio");if(r){var i=this._getDesiredMediaDirection(c.a);r.direction!==i&&(r.direction=i,T.info("Adjusted local audio direction to ".concat(i)),n=!0)}else T.warn('No "audio" media found int the local description');var o=t.selectMedia("video");if(o){var a=this._getDesiredMediaDirection(c.b);o.direction!==a&&(o.direction=a,T.info("Adjusted local video direction to ".concat(a)),n=!0)}else T.warn('No "video" media found in the local description');return n?new RTCSessionDescription({type:e.type,sdp:t.toRawSDP()}):e},w.prototype.setLocalDescription=function(e){var t=this,n=e;if(this.trace("setLocalDescription::preTransform",k(n)),this.options.disableH264||this.options.preferH264){var r=o.a.parse(n.sdp),i=r.media.find(function(e){return"video"===e.type});this.options.disableH264?S.a.stripVideoCodec(i,"h264"):S.a.preferVideoCodec(i,"h264"),n=new RTCSessionDescription({type:n.type,sdp:o.a.write(r)}),this.trace("setLocalDescription::postTransform (H264)",k(n))}return n=this._adjustLocalMediaDirection(n),n=this._ensureSimulcastGroupIsLast(n),p.a.usesUnifiedPlan()&&(n=this.interop.toUnifiedPlan(n),this.trace("setLocalDescription::postTransform (Unified Plan)",k(n))),new Promise(function(e,r){t.peerconnection.setLocalDescription(n).then(function(){t.trace("setLocalDescriptionOnSuccess");var r=S.a.getUfrag(n.sdp);r!==t.localUfrag&&(t.localUfrag=r,t.eventEmitter.emit(h.a.LOCAL_UFRAG_CHANGED,t,r)),e()},function(e){t.trace("setLocalDescriptionOnFailure",e),t.eventEmitter.emit(h.a.SET_LOCAL_DESCRIPTION_FAILED,e,t),r(e)})})},w.prototype.setAudioTransferActive=function(e){T.debug("".concat(this," audio transfer active: ").concat(e));var t=this.audioTransferActive!==e;return this.audioTransferActive=e,t},w.prototype._insertUnifiedPlanSimulcastReceive=function(e){var t=o.a.parse(e.sdp),n=t.media.find(function(e){return"video"===e.type});return n.rids=[{id:"1",direction:"recv"},{id:"2",direction:"recv"},{id:"3",direction:"recv"}],n.simulcast_03={value:"recv rid=".concat(R.join(";"))},new RTCSessionDescription({type:e.type,sdp:o.a.write(t)})},w.prototype.setMaxBitRate=function(e){var t=e.type;if(this.options.capScreenshareBitrate&&t!==c.a)if(this.peerconnection.getSenders){var n=e.videoType,r=e.track.id;this.peerconnection.getSenders().filter(function(e){return e.track&&e.track.id===r}).forEach(function(e){try{var t=e.getParameters();if(t.encodings&&t.encodings.length){for(var r in T.info("Setting max bitrate on video stream"),t.encodings)t.encodings.hasOwnProperty(r)&&(t.encodings[r].maxBitrate="desktop"===n?5e5:A[r]);e.setParameters(t)}}catch(e){T.error("Browser does not support getParameters/setParamters or setting max bitrate on the encodings: ",e)}})}else T.debug("Browser doesn't support RTCRtpSender")},w.prototype.setRemoteDescription=function(e){var t=this;if(this.trace("setRemoteDescription::preTransform",k(e)),e=this.simulcast.mungeRemoteDescription(e),this.trace("setRemoteDescription::postTransform (simulcast)",k(e)),this.options.preferH264){var n=o.a.parse(e.sdp),r=n.media.find(function(e){return"video"===e.type});S.a.preferVideoCodec(r,"h264"),e=new RTCSessionDescription({type:e.type,sdp:o.a.write(n)})}return p.a.usesUnifiedPlan()?(e=new RTCSessionDescription({type:e.type,sdp:this.rtxModifier.stripRtx(e.sdp)}),this.trace("setRemoteDescription::postTransform (stripRtx)",k(e)),e=this.interop.toUnifiedPlan(e),this.trace("setRemoteDescription::postTransform (Plan A)",k(e)),this.isSimulcastOn()&&(e=this._insertUnifiedPlanSimulcastReceive(e),this.trace("setRemoteDescription::postTransform (sim receive)",k(e)))):e=O(e),p.a.isSafariWithWebrtc()&&!p.a.isSafariWithVP8()&&(T.debug("Maybe injecting H264 into the remote description"),e=this._injectH264IfNotPresent(e)),new Promise(function(n,r){t.peerconnection.setRemoteDescription(e).then(function(){t.trace("setRemoteDescriptionOnSuccess");var r=S.a.getUfrag(e.sdp);r!==t.remoteUfrag&&(t.remoteUfrag=r,t.eventEmitter.emit(h.a.REMOTE_UFRAG_CHANGED,t,r)),n()},function(e){t.trace("setRemoteDescriptionOnFailure",e),t.eventEmitter.emit(h.a.SET_REMOTE_DESCRIPTION_FAILED,e,t),r(e)})})},w.prototype._injectH264IfNotPresent=function(e){var t=o.a.parse(e.sdp),n=t.media.find(function(e){return"video"===e.type});if(!n)return T.debug("No videoMLine found, no need to inject H264."),e;if(n.rtp.some(function(e){return"h264"===e.codec.toLowerCase()}))return T.debug("H264 codec found in video mLine, no need to inject."),e;for(var r,i=n.fmtp,a=n.payloads,s=n.rtp,c=a.toString().split(" "),u=127;u>=96;u--)if(!c.includes(u)){r=u,c.push(u),n.payloads=c.join(" ");break}return void 0===r?(T.error("Could not find valid payload type to inject."),e):(s.push({codec:"H264",payload:r,rate:9e4}),i.push({config:"level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f",payload:r}),T.debug("Injecting H264 payload type ".concat(r," into video mLine.")),new RTCSessionDescription({type:e.type,sdp:o.a.write(t)}))},w.prototype.setVideoTransferActive=function(e){T.debug("".concat(this," video transfer active: ").concat(e));var t=this.videoTransferActive!==e;return this.videoTransferActive=e,t},w.prototype.sendTones=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:200,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:200;if(!this._dtmfSender){if(this.peerconnection.getSenders){var r=this.peerconnection.getSenders().find(function(e){return e.dtmf});this._dtmfSender=r&&r.dtmf,this._dtmfSender&&T.info("".concat(this," initialized DTMFSender using getSenders"))}if(!this._dtmfSender){var i=Array.from(this.localTracks.values()).find(function(e){return e.isAudioTrack()});this.peerconnection.createDTMFSender&&i&&(this._dtmfSender=this.peerconnection.createDTMFSender(i.getTrack())),this._dtmfSender&&T.info("".concat(this," initialized DTMFSender using deprecated createDTMFSender"))}this._dtmfSender&&(this._dtmfSender.ontonechange=this._onToneChange.bind(this))}if(this._dtmfSender){if(this._dtmfSender.toneBuffer)return void this._dtmfTonesQueue.push({tones:e,duration:t,interToneGap:n});this._dtmfSender.insertDTMF(e,t,n)}else T.warn("".concat(this," sendTones - failed to select DTMFSender"))},w.prototype._onToneChange=function(e){if(this._dtmfSender&&""===e.tone&&this._dtmfTonesQueue.length){var t=this._dtmfTonesQueue.shift(),n=t.tones,r=t.duration,i=t.interToneGap;this._dtmfSender.insertDTMF(n,r,i)}},w.prototype.generateRecvonlySsrc=function(){var e=S.a.generateSsrc();T.info("".concat(this," generated new recvonly SSRC: ").concat(e)),this.sdpConsistency.setPrimarySsrc(e)},w.prototype.clearRecvonlySsrc=function(){T.info("Clearing primary video SSRC!"),this.sdpConsistency.clearVideoSsrcCache()},w.prototype.close=function(){this.trace("stop"),this.signalingLayer.off(_.a,this._peerMutedChanged),this.signalingLayer.off(_.b,this._peerVideoTypeChanged);var e=!0,t=!1,n=void 0;try{for(var r,i=this.remoteTracks.values()["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();!(e=(r=i.next()).done);e=!0){var o=r.value,a=!0,s=!1,c=void 0;try{for(var u,l=o.values()["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();!(a=(u=l.next()).done);a=!0){var d=u.value;this._removeRemoteTrack(d)}}catch(e){s=!0,c=e}finally{try{a||null==l.return||l.return()}finally{if(s)throw c}}}}catch(e){t=!0,n=e}finally{try{e||null==i.return||i.return()}finally{if(t)throw n}}this.remoteTracks.clear(),this._addedStreams=[],this._dtmfSender=null,this._dtmfTonesQueue=[],this.rtc._removePeerConnection(this)||T.error("RTC._removePeerConnection returned false"),null!==this.statsinterval&&(window.clearInterval(this.statsinterval),this.statsinterval=null),T.info("Closing ".concat(this,"...")),this.peerconnection.close()},w.prototype.createAnswer=function(e){if(p.a.isFirefox()&&this.isSimulcastOn()){this.peerconnection.getSenders().find(function(e){return null!==e.track&&"video"===e.track.kind}).setParameters({encodings:[{rid:"1",scaleResolutionDownBy:4},{rid:"2",scaleResolutionDownBy:2},{rid:"3"}]})}return this._createOfferOrAnswer(!1,e)},w.prototype.createOffer=function(e){return this._createOfferOrAnswer(!0,e)},w.prototype._createOfferOrAnswer=function(e,t){var n=this,r=e?"Offer":"Answer";this.trace("create".concat(r),JSON.stringify(t,null," "));var i=function(t,i,a){try{if(n.trace("create".concat(r,"OnSuccess::preTransform"),k(t)),p.a.usesUnifiedPlan()&&(t=n.interop.toPlanB(t),n.trace("create".concat(r,"OnSuccess::postTransform (Plan B)"),k(t)),n.isSimulcastOn()&&(t=n._injectSsrcGroupForUnifiedSimulcast(t),n.trace("create".concat(r,"OnSuccess::postTransform")+"(inject ssrc group)",k(t)))),p.a.usesUnifiedPlan()||(n.hasAnyTracksOfType(c.b)||n.sdpConsistency.hasPrimarySsrcCached()||n.generateRecvonlySsrc(),t=new RTCSessionDescription({type:t.type,sdp:n.sdpConsistency.makeVideoPrimarySsrcsConsistent(t.sdp)}),n.trace("create".concat(r,"OnSuccess::postTransform ")+"(make primary audio/video ssrcs consistent)",k(t))),n.isSimulcastOn()&&(!n.options.capScreenshareBitrate||n.options.capScreenshareBitrate&&P(n))&&(t=n.simulcast.mungeLocalDescription(t),n.trace("create".concat(r)+"OnSuccess::postTransform (simulcast)",k(t))),!n.options.disableRtx&&p.a.supportsRtx()&&(t=new RTCSessionDescription({type:t.type,sdp:n.rtxModifier.modifyRtxSsrcs(t.sdp)}),n.trace("create".concat(r)+"OnSuccess::postTransform (rtx modifier)",k(t))),!e){var s=new v.a(n.remoteDescription.sdp),u=new v.a(t.sdp);d=s,f=u,(p.a.isChromiumBased()||p.a.isReactNative())&&d&&f&&d.media&&f.media&&d.media.length===f.media.length&&(f.media.forEach(function(e,t){S.a.findLine(d.media[t],"a=setup:actpass",d.session)&&(f.media[t]=e.replace(/a=setup:active/g,"a=setup:passive"))}),f.raw=f.session+f.media.join("")),t=new RTCSessionDescription({type:t.type,sdp:u.raw})}var l=(function(e){var t=new Map,n=new Map;if("object"!==E(e)||null===e||"string"!=typeof e.sdp)return T.warn("An empty description was passed as an argument."),t;var r=o.a.parse(e.sdp);if(!Array.isArray(r.media))return t;var i=!0,a=!1,s=void 0;try{for(var c,u=r.media["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();!(i=(c=u.next()).done);i=!0){var l=c.value;if(Array.isArray(l.ssrcs)){if(Array.isArray(l.ssrcGroups)){var d=!0,p=!1,f=void 0;try{for(var h,m=l.ssrcGroups["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();!(d=(h=m.next()).done);d=!0){var v=h.value;if(void 0!==v.semantics&&void 0!==v.ssrcs){var y=v.ssrcs.split(" ").map(function(e){return parseInt(e,10)}),g=y[0];v.ssrcs=y,n.has(g)||n.set(g,[]),n.get(g).push(v)}}}catch(e){p=!0,f=e}finally{try{d||null==m.return||m.return()}finally{if(p)throw f}}}var S=!0,_=!1,b=void 0;try{for(var C,R=l.ssrcs["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();!(S=(C=R.next()).done);S=!0){var A=C.value;if("msid"===A.attribute){var w=A.value,k=t.get(w);k||(k={ssrcs:[],groups:[],msid:w},t.set(w,k));var O=A.id;if(k.ssrcs.push(O),n.has(O)){var I=n.get(O),P=!0,D=!1,N=void 0;try{for(var L,M=I["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();!(P=(L=M.next()).done);P=!0){var x=L.value;k.groups.push(x)}}catch(e){D=!0,N=e}finally{try{P||null==M.return||M.return()}finally{if(D)throw N}}}}}}catch(e){_=!0,b=e}finally{try{S||null==R.return||R.return()}finally{if(_)throw b}}}}}catch(e){a=!0,s=e}finally{try{i||null==u.return||u.return()}finally{if(a)throw s}}return t})(t);T.debug("Got local SSRCs MAP: ",l),n._processLocalSSRCsMap(l),i(t)}catch(e){n.trace("create".concat(r,"OnError"),e),n.trace("create".concat(r,"OnError"),k(t)),T.error("create".concat(r,"OnError"),e,k(t)),a(e)}var d,f};return new Promise(function(o,a){(e?n.peerconnection.createOffer(t):n.peerconnection.createAnswer(t)).then(function(e){return i(e,o,a)},function(t){return(function(t,i){n.trace("create".concat(r,"OnFailure"),t);var o=e?h.a.CREATE_OFFER_FAILED:h.a.CREATE_ANSWER_FAILED;n.eventEmitter.emit(o,t,n),i(t)})(t,a)})})},w.prototype._processLocalSSRCsMap=function(e){var t=!0,n=!1,r=void 0;try{for(var i,o=this.localTracks.values()["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();!(t=(i=o.next()).done);t=!0){var a=i.value,s=a.storedMSID;if(e.has(s)){var c=e.get(s);if(!c)return void T.error("No SSRC found for: ".concat(s," in ").concat(this));var u=this.localSSRCs.get(a.rtcId),l=D(c),d=D(u);l!==d?(null===d?T.info("Storing new local SSRC for ".concat(a," in ").concat(this),c):T.error("Overwriting SSRC for ".concat(a," ").concat(s," in ").concat(this," with: "),c),this.localSSRCs.set(a.rtcId,c),this.eventEmitter.emit(h.a.LOCAL_TRACK_SSRC_UPDATED,a,l)):T.debug("The local SSRC(".concat(l,") for ").concat(a," ").concat(s)+"is still up to date in ".concat(this))}else a.isVideoTrack()||a.isMuted()||T.warn("No SSRCs found in the local SDP for ".concat(a," MSID: ").concat(s," in ").concat(this))}}catch(e){n=!0,r=e}finally{try{t||null==o.return||o.return()}finally{if(n)throw r}}},w.prototype.addIceCandidate=function(e){return this.trace("addIceCandidate",JSON.stringify({candidate:e.candidate,sdpMid:e.sdpMid,sdpMLineIndex:e.sdpMLineIndex,usernameFragment:e.usernameFragment},null," ")),this.peerconnection.addIceCandidate(e)},w.prototype.getStats=function(e,t){p.a.isSafariWithWebrtc()||p.a.isFirefox()||p.a.isReactNative()?this.peerconnection.getStats().then(e).catch(t||function(){}):this.peerconnection.getStats(e)},w.prototype.generateNewStreamSSRCInfo=function(e){var t=e.rtcId,n=this._getSSRC(t);if(n&&T.error("Will overwrite local SSRCs for track ID: ".concat(t)),this.isSimulcastOn()&&(!this.options.capScreenshareBitrate||this.options.capScreenshareBitrate&&P(this))){n={ssrcs:[],groups:[]};for(var r=0;r should fake sdp ? : ").concat(m)),m){var v=this.tpc.isSimulcastOn()?this.tpc.simulcast.ssrcCache:[this.tpc.sdpConsistency.cachedPrimarySsrc];if(v.length){r=!0,n.direction="sendrecv";var y=v[0],g="injected-".concat(y),S=!0,_=!1,b=void 0;try{for(var E,T=v["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();!(S=(E=T.next()).done);S=!0){var C=E.value;n.removeSSRC(C),s.debug("".concat(this.tpc," injecting video SSRC: ").concat(C," for ").concat(d)),n.addSSRCAttribute({id:C,attribute:"cname",value:g}),n.addSSRCAttribute({id:C,attribute:"msid",value:d.storedMSID})}}catch(e){_=!0,b=e}finally{try{S||null==T.return||T.return()}finally{if(_)throw b}}if(v.length>1){var R={ssrcs:v.join(" "),semantics:"SIM"};n.findGroup(R.semantics,R.ssrcs)||(s.debug("".concat(this.tpc," injecting SIM group for ").concat(d),R),n.addSSRCGroup(R))}this.tpc.options.disableRtx||this.tpc.rtxModifier.modifyRtxSsrcs2(n)}else s.error("No SSRCs stored for: ".concat(d," in ").concat(this.tpc))}}}catch(e){a=!0,c=e}finally{try{o||null==l.return||l.return()}finally{if(a)throw c}}return r}},{key:"_transformMediaIdentifiers",value:function(e){var t=this.tpc.id,n=!0,r=!1,i=void 0;try{for(var o,a=e.ssrcs["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();!(n=(o=a.next()).done);n=!0){var c=o.value;switch(c.attribute){case"cname":case"label":case"mslabel":c.value=c.value&&"".concat(c.value,"-").concat(t);break;case"msid":if(c.value){var u=c.value.split(" ");if(2===u.length){var l=u[0],d=u[1];c.value="".concat(l,"-").concat(t," ").concat(d,"-").concat(t)}else s.warn("Unable to munge local MSID"+"- weird format detected: ".concat(c.value))}}}}catch(e){r=!0,i=e}finally{try{n||null==a.return||a.return()}finally{if(r)throw i}}}},{key:"maybeAddMutedLocalVideoTracksToSDP",value:function(e){if(!e)throw new Error("No local description passed in.");var t=new o.a(e.sdp);return this._addMutedLocalVideoTracksToSDP(t)?new RTCSessionDescription({type:e.type,sdp:t.toRawSDP()}):e}},{key:"transformStreamIdentifiers",value:function(e){if(!e||!e.sdp||!e.type)return e;var t=new o.a(e.sdp),n=t.selectMedia("audio");n&&this._transformMediaIdentifiers(n);var r=t.selectMedia("video");return r&&this._transformMediaIdentifiers(r),new RTCSessionDescription({type:e.type,sdp:t.toRawSDP()})}}])&&a(t.prototype,n),e})()}).call(this,"modules/RTC/LocalSdpMunger.js")},function(e,t,n){"use strict";(function(e){n.d(t,"a",function(){return u});var r=n(4),i=n(27),o=n(6);function a(e,t){for(var n=0;n.6&&(this._eventFired=!0,this._callback())}},{key:"_isLocalAudioTrack",value:function(e){return e.isAudioTrack()&&e.isLocal()}},{key:"_trackAdded",value:function(e){this._isLocalAudioTrack(e)&&(this.audioTrack=e)}},{key:"_trackMuteChanged",value:function(e){this._isLocalAudioTrack(e)&&e.isMuted()&&(this._eventFired=!1)}}])&&i(t.prototype,n),e})()},function(e,t,n){"use strict";(function(e){n.d(t,"a",function(){return v});var r=n(26),i=n(2),o=n(4);function a(e,t){for(var n=0;n=180&&"break"!==a();i/=2);}}else{var s=t.width*t.height;r=s<=76800?600:s<=307200?1700:s<=518400?2e3:2500}return Math.min(r,(function(e){return e>6e4?Number.MAX_SAFE_INTEGER:f*Math.pow(1.08,e/1e3)})(Math.max(0,n-1e3)))}var v=(function(){function e(t,n,o){var a=this;!(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")})(this,e),this.eventEmitter=n,this._conference=t,this._localStats={connectionQuality:100,jvbRTT:void 0},this._lastConnectionQualityUpdate=-1,this._remoteStats={},this._timeIceConnected=-1,this._timeVideoUnmuted=-1,this._timeLastBwCapRemoved=-1,o.config.startBitrate&&o.config.startBitrate>0&&(f=o.config.startBitrate),t.on(i.CONNECTION_INTERRUPTED,function(){a._updateLocalConnectionQuality(0),a.eventEmitter.emit(r.LOCAL_STATS_UPDATED,a._localStats),a._broadcastLocalStats()}),t.room.addListener(s.ICE_CONNECTION_STATE_CHANGED,function(e,t){e.isP2P||"connected"!==t||(a._timeIceConnected=window.performance.now())}),t.on(i.ENDPOINT_MESSAGE_RECEIVED,function(e,t){t.type===d&&a._updateRemoteStats(e.getId(),t.values)}),t.statistics.addConnectionStatsListener(this._updateLocalStats.bind(this)),t.on(i.TRACK_MUTE_CHANGED,function(e){e.isVideoTrack()&&(e.isMuted()?a._timeVideoUnmuted=-1:a._maybeUpdateUnmuteTime())}),t.on(i.TRACK_ADDED,function(e){e.isVideoTrack()&&!e.isMuted()&&a._maybeUpdateUnmuteTime()}),t.on(i.SERVER_REGION_CHANGED,function(e){a._localStats.serverRegion=e}),t.on(i.PROPERTIES_CHANGED,function(e){a._localStats.bridgeCount=Number((e||{})["bridge-count"])})}var t,n;return t=e,(n=[{key:"_maybeUpdateUnmuteTime",value:function(){this._timeVideoUnmuted<0&&(this._timeVideoUnmuted=window.performance.now())}},{key:"_calculateConnectionQuality",value:function(e,t,n){var r,i=u[n],o=100;if(this._localStats.packetLoss&&(r=this._localStats.packetLoss.upload,t&&(r*=.5)),t||!i||e===c.DESKTOP||this._timeIceConnected<0||this._timeVideoUnmuted<0)void 0===r?(l.error("Cannot calculate connection quality, unknown packet loss."),o=100):o=r<=2?100:r<=4?70:r<=6?50:r<=8?30:r<=12?10:0;else{var a=this._conference.getActivePeerConnection(),s=Boolean(a&&a.isSimulcastOn()),d=a&&a.bandwidthLimiter&&a.bandwidthLimiter.getBandwidthLimit("video");!d&&h&&(this._timeLastBwCapRemoved=window.performance.now(),f=h),h=d;var p=m(s,i,window.performance.now()-Math.max(this._timeVideoUnmuted,this._timeIceConnected,this._timeLastBwCapRemoved));p=Math.min(.9*p,2500),h&&(p=Math.min(p,h)),o=100*this._localStats.bitrate.upload/p,r&&r>=10&&(o=Math.min(o,30))}if(this._lastConnectionQualityUpdate>0){var v=this._localStats.connectionQuality,y=(window.performance.now()-this._lastConnectionQualityUpdate)/1e3;o=Math.min(o,v+2*y)}return Math.min(100,o)}},{key:"_updateLocalConnectionQuality",value:function(e){this._localStats.connectionQuality=e,this._lastConnectionQualityUpdate=window.performance.now()}},{key:"_broadcastLocalStats",value:function(){var e={bitrate:this._localStats.bitrate,packetLoss:this._localStats.packetLoss,connectionQuality:this._localStats.connectionQuality,jvbRTT:this._localStats.jvbRTT,serverRegion:this._localStats.serverRegion,avgAudioLevels:this._localStats.localAvgAudioLevels};try{this._conference.broadcastEndpointMessage({type:d,values:e})}catch(e){}}},{key:"_updateLocalStats",value:function(e,t){if(!e.isP2P){var n=t.transport&&t.transport.length&&t.transport[0].rtt;this._localStats.jvbRTT=n||void 0}if(e===this._conference.getActivePeerConnection()){var i,o=!this._conference.isConnectionInterrupted(),a=this._conference.getLocalVideoTrack(),s=a?a.videoType:void 0,c=!a||a.isMuted(),u=a?a.resolution:null;for(i in c||this._maybeUpdateUnmuteTime(),t)t.hasOwnProperty(i)&&(this._localStats[i]=t[i]);o&&this._updateLocalConnectionQuality(this._calculateConnectionQuality(s,c,u)),this.eventEmitter.emit(r.LOCAL_STATS_UPDATED,this._localStats),this._broadcastLocalStats()}}},{key:"_updateRemoteStats",value:function(e,t){this._remoteStats[e]={bitrate:t.bitrate,packetLoss:t.packetLoss,connectionQuality:t.connectionQuality,jvbRTT:t.jvbRTT,serverRegion:t.serverRegion,avgAudioLevels:t.avgAudioLevels},this.eventEmitter.emit(r.REMOTE_STATS_UPDATED,e,this._remoteStats[e])}},{key:"getStats",value:function(){return this._localStats}}])&&a(t.prototype,n),e})()}).call(this,"modules/connectivity/ConnectionQuality.js")},function(e,t,n){"use strict";(function(e){n.d(t,"a",function(){return a});var r=n(4);function i(e,t){for(var n=0;n0&&this.analyticsIntervalMs ").concat(t)),this._conference.eventEmitter.emit(i.JVB121_STATUS,e,t))}}])&&o(t.prototype,n),e})()}).call(this,"modules/event/Jvb121EventGenerator.js")},function(e,t,n){"use strict";(function(e){var r=n(4),i=n(0),o=n.n(i),a=n(58),s=n(42);function c(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function u(e,t){for(var n=0;n0){var a="".concat(i.stat("ipAddress"),"_").concat(i.stat("portNumber"),"_").concat(i.stat("priority"));e.handleCandidateRtt(a,o,Number(i.stat("stunKeepaliveResponsesReceived")),Number(i.stat("stunKeepaliveRequestsSent")))}}var s=1/0;for(var u in e.candidates)e.candidates.hasOwnProperty(u)&&e.candidates[u].rtt>0&&(s=Math.min(s,e.candidates[u].rtt));e.rtts.push(s),e.rtts.length>6&&(e.rtts=e.rtts.splice(1,7)),e.rtt=Math.min.apply(Math,c(e.rtts))})},this.getStatsIntervalMs)}},{key:"handleCandidateRtt",value:function(e,t,n,r){this.candidates[e]||(this.candidates[e]={rttTotal:0,responsesReceived:0,requestsSent:0,rtt:NaN});var i=t-this.candidates[e].rttTotal,o=n-this.candidates[e].responsesReceived,a=r-n-(this.candidates[e].requestsSent-this.candidates[e].responsesReceived),s=NaN;o>0&&0===a&&(s=i/o),this.candidates[e].rttTotal=t,this.candidates[e].responsesReceived=n,this.candidates[e].requestsSent=r,this.candidates[e].rtt=s}},{key:"stop",value:function(){this.getStatsInterval&&window.clearInterval(this.getStatsInterval),this.pc.close(),this.stopped=!0}}]),e})(),m=(function(){function e(t){var n=this;if(u(this,e),t&&t.enabled&&r.a.supportsLocalCandidateRttStatistics()){this.pcMonitors={},this.startPCMonitors=this.startPCMonitors.bind(this),this.sendAnalytics=this.sendAnalytics.bind(this),this.stop=this.stop.bind(this),this.analyticsInterval=null,this.stopped=!1;var i=t.initialDelay||6e4;p.info("Starting RTT monitor with an initial delay of ".concat(i)),window.setTimeout(function(){return n.startPCMonitors(t)},i)}}return d(e,[{key:"startPCMonitors",value:function(e){var t=this;if(e.stunServers){if(!this.stopped){var n=e.getStatsInterval||1e4,r=e.analyticsInterval||n,i=n/Object.keys(e.stunServers).length,o=0;for(var a in e.stunServers)if(e.stunServers.hasOwnProperty(a)){var s=e.stunServers[a];this.pcMonitors[a]=new h(a,s,n,i*o),o++}window.setTimeout(function(){t.stopped||(t.analyticsInterval=window.setInterval(t.sendAnalytics,r))},1e3)}}else p.warn("No stun servers configured.")}},{key:"sendAnalytics",value:function(){var e={};for(var t in this.pcMonitors)if(this.pcMonitors.hasOwnProperty(t)){var n=this.pcMonitors[t].rtt;isNaN(n)||n===1/0||(e[t.replace("-","_")]=n)}s.a.sendAnalytics(Object(i.L)(e))}},{key:"stop",value:function(){for(var e in p.info("Stopping RttMonitor."),this.stopped=!0,this.pcMonitors)this.pcMonitors.hasOwnProperty(e)&&this.pcMonitors[e].stop();this.pcMonitors={},this.analyticsInterval&&window.clearInterval(this.analyticsInterval)}}]),e})()}).call(this,"modules/rttmonitor/rttmonitor.js")},function(e,t,n){"use strict";(function(e){n.d(t,"a",function(){return y});var r=n(7),i=n(4),o=n(26),a=n(2),s=n(9),c=n(3),u=n(5),l=n(14);function d(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function p(e,t){for(var n=0;n=this._n){if(c.a.supportsRTTStatistics()){var t=this._avgRtpStatsReporter._conference,n={p2p:this.isP2P,conference_size:t.getParticipantCount()};if(e.transport&&e.transport.length&&_extends(n,{local_candidate_type:e.transport[0].localCandidateType,remote_candidate_type:e.transport[0].remoteCandidateType,transport_type:e.transport[0].type}),this._avgRTT.appendReport(n),this.isP2P){var i=this._avgRtpStatsReporter.jvbStatsMonitor._avgEnd2EndRTT;isNaN(i)||(n.rtt_diff=this._avgRTT.calculate()-i)}else{var o=this._calculateAvgRemoteRTT(),a=this._avgRTT.calculate();this._avgEnd2EndRTT=a+o,isNaN(a)||isNaN(o)||(n.end2end_rtt_avg=this._avgEnd2EndRTT)}u.a.sendAnalytics(Object(r.K)(n))}this._resetAvgStats()}}else h.error("No stats")}},{key:"_calculateAvgRemoteRTT",value:function(){var e=0,t=0,n=!0,r=!1,i=void 0;try{for(var o,a=this._avgRemoteRTTMap.values()["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();!(n=(o=a.next()).done);n=!0){var s=o.value,c=s.calculate();isNaN(c)||(t+=c,e+=1,s.reset())}}catch(e){r=!0,i=e}finally{try{n||null==a.return||a.return()}finally{if(r)throw i}}return t/e}},{key:"_processRemoteStats",value:function(e,t){var n="number"==typeof t.jvbRTT,r=this._avgRemoteRTTMap.get(e);!r&&n&&(r=new m("".concat(e,"_stat_rtt")),this._avgRemoteRTTMap.set(e,r)),n?r.addNext(t.jvbRTT):r&&this._avgRemoteRTTMap.delete(e)}},{key:"_resetAvgStats",value:function(){this._avgRTT.reset(),this._avgRemoteRTTMap&&this._avgRemoteRTTMap.clear(),this._sampleIdx=0}},{key:"dispose",value:function(){var e=this._avgRtpStatsReporter._conference;e.statistics.removeConnectionStatsListener(this._onConnectionStats),this.isP2P||(e.off(o.REMOTE_STATS_UPDATED,this._onRemoteStatsUpdated),e.off(a.USER_LEFT,this._onUserLeft))}}]),e})(),y=(function(){function e(t,n){var r=this;d(this,e),this._n=n,n>0?(h.info("Avg RTP stats will be calculated every ".concat(n," samples")),this._sampleIdx=0,this._conference=t,this._avgAudioBitrateUp=new m("bitrate_audio_upload"),this._avgAudioBitrateDown=new m("bitrate_audio_download"),this._avgVideoBitrateUp=new m("bitrate_video_upload"),this._avgVideoBitrateDown=new m("bitrate_video_download"),this._avgBandwidthUp=new m("bandwidth_upload"),this._avgBandwidthDown=new m("bandwidth_download"),this._avgPacketLossTotal=new m("packet_loss_total"),this._avgPacketLossUp=new m("packet_loss_upload"),this._avgPacketLossDown=new m("packet_loss_download"),this._avgRemoteFPS=new m("framerate_remote"),this._avgRemoteScreenFPS=new m("framerate_screen_remote"),this._avgLocalFPS=new m("framerate_local"),this._avgLocalScreenFPS=new m("framerate_screen_local"),this._avgRemoteCameraPixels=new m("pixels_remote"),this._avgRemoteScreenPixels=new m("pixels_screen_remote"),this._avgLocalCameraPixels=new m("pixels_local"),this._avgLocalScreenPixels=new m("pixels_screen_local"),this._avgCQ=new m("connection_quality"),this._onLocalStatsUpdated=function(e){return r._calculateAvgStats(e)},t.on(o.LOCAL_STATS_UPDATED,this._onLocalStatsUpdated),this._onP2PStatusChanged=function(){h.debug("Resetting average stats calculation"),r._resetAvgStats(),r.jvbStatsMonitor._resetAvgStats(),r.p2pStatsMonitor._resetAvgStats()},t.on(a.P2P_STATUS,this._onP2PStatusChanged),this._onJvb121StatusChanged=function(e,t){!0===t&&(h.info("Resetting JVB avg RTP stats"),r._resetAvgJvbStats())},t.on(a.JVB121_STATUS,this._onJvb121StatusChanged),this.jvbStatsMonitor=new v(this,!1,n),this.p2pStatsMonitor=new v(this,!0,n)):h.info("Avg RTP stats reports are disabled.")}return f(e,[{key:"_calculateAvgStats",value:function(e){if(e){var t=this._conference.isP2PActive(),n=this._conference.getParticipantCount();if(t||!(n<2)){var i=e.bitrate,o=e.bandwidth,a=e.packetLoss,s=e.framerate,d=e.resolution;if(i)if(o)if(a)if(s)if(d){if(this._avgAudioBitrateUp.addNext(i.audio.upload),this._avgAudioBitrateDown.addNext(i.audio.download),this._avgVideoBitrateUp.addNext(i.video.upload),this._avgVideoBitrateDown.addNext(i.video.download),c.a.supportsBandwidthStatistics()&&(this._avgBandwidthUp.addNext(o.upload),this._avgBandwidthDown.addNext(o.download)),this._avgPacketLossUp.addNext(a.upload),this._avgPacketLossDown.addNext(a.download),this._avgPacketLossTotal.addNext(a.total),this._avgCQ.addNext(e.connectionQuality),s&&(this._avgRemoteFPS.addNext(this._calculateAvgVideoFps(s,!1,l.CAMERA)),this._avgRemoteScreenFPS.addNext(this._calculateAvgVideoFps(s,!1,l.DESKTOP)),this._avgLocalFPS.addNext(this._calculateAvgVideoFps(s,!0,l.CAMERA)),this._avgLocalScreenFPS.addNext(this._calculateAvgVideoFps(s,!0,l.DESKTOP))),d&&(this._avgRemoteCameraPixels.addNext(this._calculateAvgVideoPixels(d,!1,l.CAMERA)),this._avgRemoteScreenPixels.addNext(this._calculateAvgVideoPixels(d,!1,l.DESKTOP)),this._avgLocalCameraPixels.addNext(this._calculateAvgVideoPixels(d,!0,l.CAMERA)),this._avgLocalScreenPixels.addNext(this._calculateAvgVideoPixels(d,!0,l.DESKTOP))),this._sampleIdx+=1,this._sampleIdx>=this._n){var p={p2p:t,conference_size:n};e.transport&&e.transport.length&&_extends(p,{local_candidate_type:e.transport[0].localCandidateType,remote_candidate_type:e.transport[0].remoteCandidateType,transport_type:e.transport[0].type}),this._avgAudioBitrateUp.appendReport(p),this._avgAudioBitrateDown.appendReport(p),this._avgVideoBitrateUp.appendReport(p),this._avgVideoBitrateDown.appendReport(p),c.a.supportsBandwidthStatistics()&&(this._avgBandwidthUp.appendReport(p),this._avgBandwidthDown.appendReport(p)),this._avgPacketLossUp.appendReport(p),this._avgPacketLossDown.appendReport(p),this._avgPacketLossTotal.appendReport(p),this._avgRemoteFPS.appendReport(p),isNaN(this._avgRemoteScreenFPS.calculate())||this._avgRemoteScreenFPS.appendReport(p),this._avgLocalFPS.appendReport(p),isNaN(this._avgLocalScreenFPS.calculate())||this._avgLocalScreenFPS.appendReport(p),this._avgRemoteCameraPixels.appendReport(p),isNaN(this._avgRemoteScreenPixels.calculate())||this._avgRemoteScreenPixels.appendReport(p),this._avgLocalCameraPixels.appendReport(p),isNaN(this._avgLocalScreenPixels.calculate())||this._avgLocalScreenPixels.appendReport(p),this._avgCQ.appendReport(p),u.a.sendAnalytics(Object(r.K)(p)),this._resetAvgStats()}}else h.error("No resolution");else h.error('No "framerate"');else h.error('No "packetloss"');else h.error('No "bandwidth"');else h.error('No "bitrate"')}}else h.error("No stats")}},{key:"_calculateAvgVideoPixels",value:function(e,t,n){for(var r=0,i=0,o=this._conference.myUserId(),a=Object.keys(e),s=0;s0&&(a+=m,c+=1)}}catch(e){l=!0,d=e}finally{try{u||null==f.return||f.return()}finally{if(l)throw d}}return a/c}},{key:"_calculateAvgVideoFps",value:function(e,t,n){for(var r=0,i=0,o=this._conference.myUserId(),a=Object.keys(e),s=0;s0&&(a+=m,c+=1)}}catch(e){l=!0,d=e}finally{try{u||null==f.return||f.return()}finally{if(l)throw d}}return a/c}},{key:"_resetAvgJvbStats",value:function(){this._resetAvgStats(),this.jvbStatsMonitor._resetAvgStats()}},{key:"_resetAvgStats",value:function(){this._avgAudioBitrateUp.reset(),this._avgAudioBitrateDown.reset(),this._avgVideoBitrateUp.reset(),this._avgVideoBitrateDown.reset(),this._avgBandwidthUp.reset(),this._avgBandwidthDown.reset(),this._avgPacketLossUp.reset(),this._avgPacketLossDown.reset(),this._avgPacketLossTotal.reset(),this._avgRemoteFPS.reset(),this._avgRemoteScreenFPS.reset(),this._avgLocalFPS.reset(),this._avgLocalScreenFPS.reset(),this._avgRemoteCameraPixels.reset(),this._avgRemoteScreenPixels.reset(),this._avgLocalCameraPixels.reset(),this._avgLocalScreenPixels.reset(),this._avgCQ.reset(),this._sampleIdx=0}},{key:"dispose",value:function(){this._conference.off(a.P2P_STATUS,this._onP2PStatusChanged),this._conference.off(o.LOCAL_STATS_UPDATED,this._onLocalStatsUpdated),this._conference.off(a.JVB121_STATUS,this._onJvb121StatusChanged),this.jvbStatsMonitor.dispose(),this.p2pStatsMonitor.dispose()}}]),e})()}).call(this,"modules/statistics/AvgRTPStatsReporter.js")},function(e,t,n){"use strict";(function(e){n.d(t,"a",function(){return d});var r=n(4),i=n(2),o=n(26),a=n(9),s=n(7),c=n(5);function u(e,t){for(var n=0;n0&&i.isAudioMuted())return;var o=this._localAudioLevelCache[e];Array.isArray(o)&&!o.every(function(e){return 0===e})||(this._audioProblemCandidates[e]={remoteAudioLevels:n,localAudioLevels:[]})}}},{key:"_onLocalAudioLevelsReport",value:function(e,t){var n=this,r=t.avgAudioLevels;e===this._conference.getActivePeerConnection()&&(Object.keys(r).forEach(function(e){if(-1===n._reportedParticipants.indexOf(e)){var t=n._localAudioLevelCache[e];Array.isArray(t)?t.length>=2&&t.shift():n._localAudioLevelCache[e]=[],n._localAudioLevelCache[e].push(r[e])}}),Object.keys(this._audioProblemCandidates).forEach(function(e){var t=n._audioProblemCandidates[e],i=t.localAudioLevels,o=t.remoteAudioLevels;if(i.push(r[e]),2===i.length){if(i.every(function(e){return void 0===e||0===e})){var a=JSON.stringify(i);c.a.sendAnalytics(Object(s.x)(e,a,o)),l.warn("A potential problem is detected with the audio output for participant ".concat(e,", local audio levels: ").concat(a,", remote audio levels: ").concat(o)),n._reportedParticipants.push(e),n._clearUserData(e)}delete n._audioProblemCandidates[e]}}))}},{key:"_clearUserData",value:function(e){delete this._localAudioLevelCache[e]}},{key:"dispose",value:function(){this._conference.off(o.REMOTE_STATS_UPDATED,this._onRemoteAudioLevelReceived),this._conference.off(i.USER_LEFT,this._clearUserData),this._conference.statistics.removeConnectionStatsListener(this._onLocalAudioLevelsReport),this._localAudioLevelCache=void 0,this._audioProblemCandidates=void 0,this._reportedParticipants=void 0,this._numberOfRemoteAudioLevelsReceived=void 0,this._conference=void 0}}])&&u(t.prototype,n),e})()}).call(this,"modules/statistics/AudioOutputProblemDetector.js")},function(e,t,n){"use strict";n.d(t,"a",function(){return u});var r=n(2),i=n(55),o=n.n(i),a=n(0),s=n.n(a);function c(e,t){for(var n=0;n0){var n=t.startTime.getUTCMilliseconds()-e.startTime.getUTCMilliseconds();n<0&&(n=0);var r="[";t.wordArray.forEach(function(e){e.begin+=n,e.end+=n,r+="".concat(e.word,",")}),r+="]",console.log(r),t.wordArray.name=t.name}e.results.push(t.wordArray),e.counter--,console.log("current counter: ".concat(e.counter)),e.maybeMerge()}function c(e){for(var t=0;t0}a.prototype.start=function(){if(this.state!==o)throw new Error("The transcription can only start when it's in the \"".concat(o,'" state. It\'s currently in the "').concat(this.state,'" state'));this.state="recording",this.audioRecorder.start(),this.startTime=new Date},a.prototype.stop=function(e){var t=this;if("recording"!==this.state)throw new Error("The transcription can only stop when it's in the \"".concat("recording",'" state. It\'s currently in the "').concat(this.state,'" state'));console.log("stopping recording and sending audio files"),this.audioRecorder.stop();var n=s.bind(null,this);this.audioRecorder.getRecordingResults().forEach(function(e){t.transcriptionService.send(e,n),t.counter++}),this.state="transcribing",this.callback=e},a.prototype.maybeMerge=function(){"transcribing"===this.state&&0===this.counter&&this.merge()},a.prototype.merge=function(){var e=this;console.log("starting merge process!\n The length of the array: ".concat(this.results.length)),this.transcription="";var t=this.results,n=[];c(t),t.forEach(function(e){return(function(e,t){if(0===e.length)e.push(t);else{if(e[e.length-1].begin<=t.begin)return void e.push(t);for(var n=0;n0&&"break"!==i(););};c(t);)r();this.state="finished",this.callback&&this.callback(this.transcription)},a.prototype.updateTranscription=function(e,t){null!=t&&(this.transcription+="\n".concat(t,":"),this.lineLength=t.length+1),this.lineLength+e.word.length>80&&(this.transcription+="\n ",this.lineLength=4),this.transcription+=" ".concat(e.word),this.lineLength+=e.word.length+1},a.prototype.addTrack=function(e){this.audioRecorder.addTrack(e)},a.prototype.removeTrack=function(e){this.audioRecorder.removeTrack(e)},a.prototype.getTranscription=function(){if("finished"!==this.state)throw new Error("The transcription can only be retrieved when it's in the \"".concat("finished",'" state. It\'s currently in the "').concat(this.state,'" state'));return this.transcription},a.prototype.getState=function(){return this.state},a.prototype.reset=function(){this.state=o,this.counter=null,this.transcription=null,this.startTime=null,this.callback=null,this.results=[],this.lineLength=0},e.exports=a},function(e,t,n){"use strict";(function(e){n.d(t,"a",function(){return o});var r=n(5),i=n(4).getLogger(e);function o(e){this.versions={},this.conference=e,this.conference.addCommandListener("versions",this.processVersions.bind(this))}o.prototype.processVersions=function(e,t,n){var o=this;if(this.conference._isFocus(n)){var a=[];e.children.forEach(function(e){var t=e.attributes.name,n=e.value;o.versions[t]!==n&&(o.versions[t]=n,i.info("Got ".concat(t," version: ").concat(n)),a.push({id:"component_version",component:t,version:n}))}),a.length>0&&r.a.sendLog(JSON.stringify(a))}else i.warn("Received versions not from the focus user: ".concat(e),n)},o.prototype.getComponentVersion=function(e){return this.versions[e]}}).call(this,"modules/version/ComponentsVersions.js")},function(e,t,n){"use strict";(function(e){n.d(t,"a",function(){return l});var r=n(4),i=n(114),o=n(20),a=n(0),s=n.n(a);function c(e,t){for(var n=0;n=0||(i[n]=e[n]);return i})(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function h(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{};!(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")})(this,e);var n=t.jitsiConnection,r=f(t,["jitsiConnection"]);this._options=d({iceConfig:n&&n.xmpp.connection.jingle.p2pIceConfig},r),this._peerConnection=null,this._onFatalError=this._onFatalError.bind(this),this._onSendMessage=this._onSendMessage.bind(this),this._onRemoteStream=this._onRemoteStream.bind(this)}var t,n;return t=e,(n=[{key:"processMessage",value:function(e){var t=e.from;if(t)if(this._peerConnection&&this._peerConnection.getPeerJid()!==t)this._onFatalError(t,l.a.CONNECTION_ERROR,"rejected");else{var n=this._convertStringToXML(e.data.iq),r=n&&n.find("jingle"),i=r&&r.attr("action");i===l.a.INITIATE&&(this._peerConnection=this._createPeerConnection(t,{isInitiator:!1,receiveVideo:!0})),this._peerConnection&&this._peerConnection.processMessage(r),i!==l.a.CONNECTION_ERROR&&i!==l.a.UNAVAILABLE&&i!==l.a.TERMINATE||this._selfCloseConnection()}}},{key:"start",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];this._peerConnection=this._createPeerConnection(e,{isInitiator:!0,receiveVideo:!1}),this._peerConnection.start(t)}},{key:"stop",value:function(){this._peerConnection&&this._peerConnection.stop(),this._peerConnection=null}},{key:"_convertStringToXML",value:function(e){try{var t=(new DOMParser).parseFromString(e,"text/xml");return $(t)}catch(e){return m.error("Attempted to convert incorrectly formatted xml"),null}}},{key:"_createPeerConnection",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e)throw new Error("Cannot create ProxyConnectionPC without a peer.");var n=d({iceConfig:this._options.iceConfig,onError:this._onFatalError,onRemoteStream:this._onRemoteStream,onSendMessage:this._onSendMessage,peerJid:e},t);return new u.a(n)}},{key:"_onFatalError",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";m.error("Received a proxy connection error",e,t,n);var r=Object(i.$iq)({to:e,type:"set"}).c("jingle",{xmlns:"urn:xmpp:jingle:1",action:t}).c("details").t(n).up();this._onSendMessage(e,r),this._peerConnection&&this._peerConnection.getPeerJid()===e&&this._selfCloseConnection()}},{key:"_onRemoteStream",value:function(e){if(!this._options.onRemoteStream)return m.error("Remote track received without callback."),void e.dispose();var t,n=e.isVideoTrack();n&&(t=this._options.convertVideoToDesktop?s.a.DESKTOP:s.a.CAMERA);var r=e.getOriginalStream(),i=c.a.newCreateLocalTracks([{deviceId:"proxy:".concat(this._peerConnection.getPeerJid()),mediaType:n?o.b:o.a,sourceType:"proxy",stream:r,track:r.getVideoTracks()[0],videoType:t}]);this._options.onRemoteStream(i[0])}},{key:"_onSendMessage",value:function(e,t){if(this._options.onSendMessage)try{var n=(new XMLSerializer).serializeToString(t.nodeTree||t);this._options.onSendMessage(e,{iq:n})}catch(e){m.error("Attempted to send an incorrectly formatted iq.")}}},{key:"_selfCloseConnection",value:function(){this.stop(),this._options.onConnectionClosed&&this._options.onConnectionClosed()}}])&&h(t.prototype,n),e})()}).call(this,"modules/proxyconnection/ProxyConnectionService.js")},function(e,t,n){"use strict";(function(e){n.d(t,"a",function(){return v});var r=n(4),i=n(13),o=n(8),a=n.n(o),s=n(0),c=n.n(s),u=n(44),l=n(35),d=n(28);function p(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:{};!(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")})(this,e),this._options=p({iceConfig:{},isInitiator:!1,receiveAudio:!1,receiveVideo:!1},t),this._tracks=[],this._peerConnection=null,this._onError=this._onError.bind(this),this._onRemoteStream=this._onRemoteStream.bind(this),this._onSendMessage=this._onSendMessage.bind(this)}var t,n;return t=e,(n=[{key:"getPeerJid",value:function(){return this._options.peerJid}},{key:"processMessage",value:function(e){switch(e.attr("action")){case d.a.ACCEPT:this._onSessionAccept(e);break;case d.a.INITIATE:this._onSessionInitiate(e);break;case d.a.TERMINATE:this._onSessionTerminate(e);break;case d.a.TRANSPORT_INFO:this._onTransportInfo(e)}}},{key:"start",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this._peerConnection||(this._tracks=this._tracks.concat(e),this._peerConnection=this._createPeerConnection(),this._peerConnection.invite(e))}},{key:"stop",value:function(){this._peerConnection&&this._peerConnection.terminate(),this._onSessionTerminate()}},{key:"_createPeerConnection",value:function(){var e=this,t={jingle:{terminate:function(){}},sendIQ:this._onSendMessage},n=p({iceServers:l.a},this._options.iceConfig),r={addPresenceListener:function(){},connectionTimes:[],eventEmitter:{emit:function(t){switch(t){case c.a.CONNECTION_ICE_FAILED:case c.a.CONNECTION_FAILED:e._onError(d.a.CONNECTION_ERROR,t)}}},getMediaPresenceInfo:function(){return{}},removePresenceListener:function(){}};this._rtc=new i.a(this,{}),this._rtc.addListener(a.a.REMOTE_TRACK_ADDED,this._onRemoteStream);var o=new u.a(void 0,void 0,this._options.peerJid,t,{offerToReceiveAudio:this._options.receiveAudio,offerToReceiveVideo:this._options.receiveVideo},n,!0,this._options.isInitiator);return o.initialize(r,this._rtc,{}),o}},{key:"_onError",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";this._options.onError(this._options.peerJid,e,t)}},{key:"_onRemoteStream",value:function(e){this._tracks.push(e),this._options.onRemoteStream(e)}},{key:"_onSendMessage",value:function(e){this._options.onSendMessage(this._options.peerJid,e)}},{key:"_onSessionAccept",value:function(e){this._peerConnection?this._peerConnection.setAnswer(e):m.error("Received an answer when no peer connection exists.")}},{key:"_onSessionInitiate",value:function(e){var t=this;this._peerConnection?m.error("Received an offer when an offer was already sent."):(this._peerConnection=this._createPeerConnection(),this._peerConnection.acceptOffer(e,function(){},function(){return t._onError(t._options.peerJid,d.a.CONNECTION_ERROR,"session initiate error")}))}},{key:"_onSessionTerminate",value:function(){this._tracks.forEach(function(e){return e.dispose()}),this._tracks=[],this._peerConnection&&this._peerConnection.onTerminated(),this._rtc&&(this._rtc.removeListener(a.a.REMOTE_TRACK_ADDED,this._onRemoteStream),this._rtc.destroy())}},{key:"_onTransportInfo",value:function(e){this._peerConnection.addIceCandidates(e)}}])&&h(t.prototype,n),e})()}).call(this,"modules/proxyconnection/ProxyConnectionPC.js")},function(e,t,n){e.exports=n(119).default},function(e,t,n){"use strict";n.r(t),function(e){var r=n(7),i=n(65),o=n.n(i),a=n(26),s=n(49),c=n(11),u=n.n(c),l=n(17),d=n(2),p=n(66),f=n(36),h=n(21),m=n(59),v=n(45),y=n(15),g=n(12),S=n(16),_=n(52),b=n(50),E=n(4),T=n.n(E),C=n(9),R=n(30),A=n.n(R),w=n(41),k=n(13),O=n(3),I=n(51),P=n.n(I),D=n(115),N=n(116),L=n(5),M=n(20);function x(e){return(x="function"==typeof Symbol&&"symbol"==typeof("function"==typeof Symbol?Symbol.iterator:"@@iterator")?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==("function"==typeof Symbol?Symbol.prototype:"@@prototype")?"symbol":typeof e})(e)}var j=T.a.getLogger(e);function F(e){if(!A.a[e])return null;var t=A.a[e].order,n=null,r=null;return Object.keys(A.a).forEach(function(e){var i=A.a[e];(!n||n.order0&&void 0!==arguments[0]?arguments[0]:{};L.a.init(e),window.connectionTimes||(window.connectionTimes={}),!0!==e.enableAnalyticsLogging&&(j.warn("Analytics disabled, disposing."),this.analytics.dispose()),e.enableWindowOnErrorHandler&&u.a.addHandler(this.getGlobalOnErrorHandler.bind(this));var t=e.deploymentInfo;if(t&&Object.keys(t).length>0){var n={};for(var r in t)t.hasOwnProperty(r)&&(n[r]=t[r]);n.id="deployment_info",L.a.sendLog(JSON.stringify(n))}if(this.version){var i={id:"component_version",component:"lib-jitsi-meet",version:this.version};L.a.sendLog(JSON.stringify(i))}return k.a.init(e)},isDesktopSharingEnabled:function(){return k.a.isDesktopSharingEnabled()},isWebRtcSupported:function(){return k.a.isWebRtcSupported()},setLogLevel:function(e){T.a.setLogLevel(e)},setLogLevelById:function(e,t){T.a.setLogLevelById(e,t)},addGlobalLogTransport:function(e){T.a.addGlobalTransport(e)},removeGlobalLogTransport:function(e){T.a.removeGlobalTransport(e)},setGlobalLogOptions:function(e){T.a.setGlobalOptions(e)},createLocalTracks:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,i=arguments.length>2?arguments[2]:void 0,o=!1;return!0===n&&window.setTimeout(function(){o||m.a.emitEvent(v.PERMISSION_PROMPT_IS_SHOWN,O.a.getName())},1e3),window.connectionTimes||(window.connectionTimes={}),window.connectionTimes["obtainPermissions.start"]=window.performance.now(),k.a.obtainAudioAndVideoPermissions(t).then(function(n){if(o=!0,window.connectionTimes["obtainPermissions.end"]=window.performance.now(),L.a.sendAnalytics(Object(r.E)("success",U(t))),!k.a.options.disableAudioLevels)for(var i=function(e){var t=n[e],r=t.getOriginalStream();t.getType()===C.a&&(L.a.startLocalStats(r,t.setAudioLevel.bind(t)),t.addEventListener(S.LOCAL_TRACK_STOPPED,function(){L.a.stopLocalStats(r)}))},a=0;a=this.maxEntryLength&&this._flush(!0,!0)},o.prototype.start=function(){this._reschedulePublishInterval()},o.prototype._reschedulePublishInterval=function(){this.storeLogsIntervalID&&(window.clearTimeout(this.storeLogsIntervalID),this.storeLogsIntervalID=null),this.storeLogsIntervalID=window.setTimeout(this._flush.bind(this,!1,!0),this.storeInterval)},o.prototype.flush=function(){this._flush(!1,!0)},o.prototype._flush=function(e,t){this.totalLen>0&&(this.logStorage.isReady()||e)&&(this.logStorage.isReady()?(this.outputCache.length&&(this.outputCache.forEach(function(e){this.logStorage.storeLogs(e)}.bind(this)),this.outputCache=[]),this.logStorage.storeLogs(this.queue)):this.outputCache.push(this.queue),this.queue=[],this.totalLen=0),t&&this._reschedulePublishInterval()},o.prototype.stop=function(){this._flush(!1,!1)},e.exports=o},function(e,t){e.exports=function(){throw new Error("define cannot be used indirect")}},function(e,t){(function(t){e.exports=t}).call(this,{})},function(e,t,n){var r,i;this||window,void 0===(i="function"==typeof(r=function(){var e=/^(interactive|loaded|complete)$/,t=window.location?window.location.href:null,n=t&&t.replace(/#.*$/,"").replace(/\?.*$/,"")||null,r=document.getElementsByTagName("script"),i="readyState"in(r[0]||document.createElement("script")),o=!window.opera||"[object Opera]"!==window.opera.toString(),a="currentScript"in document;"stackTraceLimit"in Error&&Error.stackTraceLimit!==1/0&&(Error.stackTraceLimit,Error.stackTraceLimit=1/0);var s=!1,c=!1;function u(){if(0===r.length)return null;var t,l,d,p,f,h=[],m=u.skipStackDepth||1;for(t=0;t0?e(t.slice(t.indexOf(r[0])+r[0].length),n-1):r[1])),i})(d,m),h))&&n&&p===n&&(f=(function(e){var t,n,i=null;for(t=0,n=(e=e||r).length;t=0&&(e._idleTimeoutId=setTimeout(function(){e._onTimeout&&e._onTimeout()},t))},n(127),t.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==e&&e.setImmediate||this&&this.setImmediate,t.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==e&&e.clearImmediate||this&&this.clearImmediate}).call(this,n(43))},function(e,t,n){(function(e,t){!(function(e,n){"use strict";if(!e.setImmediate){var r,i,o,a,s,c=1,u={},l=!1,d=e.document,p=Object.getPrototypeOf&&Object.getPrototypeOf(e);p=p&&p.setTimeout?p:e,"[object process]"==={}.toString.call(e.process)?r=function(e){t.nextTick(function(){h(e)})}:(function(){if(e.postMessage&&!e.importScripts){var t=!0,n=e.onmessage;return e.onmessage=function(){t=!1},e.postMessage("","*"),e.onmessage=n,t}})()?(a="setImmediate$"+Math.random()+"$",s=function(t){t.source===e&&"string"==typeof t.data&&0===t.data.indexOf(a)&&h(+t.data.slice(a.length))},e.addEventListener?e.addEventListener("message",s,!1):e.attachEvent("onmessage",s),r=function(t){e.postMessage(a+t,"*")}):e.MessageChannel?((o=new MessageChannel).port1.onmessage=function(e){h(e.data)},r=function(e){o.port2.postMessage(e)}):d&&"onreadystatechange"in d.createElement("script")?(i=d.documentElement,r=function(e){var t=d.createElement("script");t.onreadystatechange=function(){h(e),t.onreadystatechange=null,i.removeChild(t),t=null},i.appendChild(t)}):r=function(e){setTimeout(h,0,e)},p.setImmediate=function(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),n=0;n=63)){var n=e.RTCPeerConnection.prototype.getLocalStreams;e.RTCPeerConnection.prototype.getLocalStreams=function(){var e=this,t=n.apply(this);return e._reverseStreams=e._reverseStreams||{},t.map(function(t){return e._reverseStreams[t.id]})};var r=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(t){var n=this;if(n._streams=n._streams||{},n._reverseStreams=n._reverseStreams||{},t.getTracks().forEach(function(e){if(n.getSenders().find(function(t){return t.track===e}))throw new DOMException("Track already exists.","InvalidAccessError")}),!n._reverseStreams[t.id]){var i=new e.MediaStream(t.getTracks());n._streams[t.id]=i,n._reverseStreams[i.id]=t,t=i}r.apply(n,[t])};var o=e.RTCPeerConnection.prototype.removeStream;e.RTCPeerConnection.prototype.removeStream=function(e){var t=this;t._streams=t._streams||{},t._reverseStreams=t._reverseStreams||{},o.apply(t,[t._streams[e.id]||e]),delete t._reverseStreams[t._streams[e.id]?t._streams[e.id].id:e.id],delete t._streams[e.id]},e.RTCPeerConnection.prototype.addTrack=function(t,n){var r=this;if("closed"===r.signalingState)throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");var i=[].slice.call(arguments,1);if(1!==i.length||!i[0].getTracks().find(function(e){return e===t}))throw new DOMException("The adapter.js addTrack polyfill only supports a single stream which is associated with the specified track.","NotSupportedError");if(r.getSenders().find(function(e){return e.track===t}))throw new DOMException("Track already exists.","InvalidAccessError");r._streams=r._streams||{},r._reverseStreams=r._reverseStreams||{};var o=r._streams[n.id];if(o)o.addTrack(t),Promise.resolve().then(function(){r.dispatchEvent(new Event("negotiationneeded"))});else{var a=new e.MediaStream([t]);r._streams[n.id]=a,r._reverseStreams[a.id]=n,r.addStream(a)}return r.getSenders().find(function(e){return e.track===t})},["createOffer","createAnswer"].forEach(function(t){var n=e.RTCPeerConnection.prototype[t];e.RTCPeerConnection.prototype[t]=function(){var e=this,t=arguments;return arguments.length&&"function"==typeof arguments[0]?n.apply(e,[function(n){var r=c(e,n);t[0].apply(null,[r])},function(e){t[1]&&t[1].apply(null,e)},arguments[2]]):n.apply(e,arguments).then(function(t){return c(e,t)})}});var a=e.RTCPeerConnection.prototype.setLocalDescription;e.RTCPeerConnection.prototype.setLocalDescription=function(){var e=this;return arguments.length&&arguments[0].type?(arguments[0]=u(e,arguments[0]),a.apply(e,arguments)):a.apply(e,arguments)};var s=Object.getOwnPropertyDescriptor(e.RTCPeerConnection.prototype,"localDescription");Object.defineProperty(e.RTCPeerConnection.prototype,"localDescription",{get:function(){var e=s.get.apply(this);return""===e.type?e:c(this,e)}}),e.RTCPeerConnection.prototype.removeTrack=function(e){var t,n=this;if("closed"===n.signalingState)throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");if(!e._pc)throw new DOMException("Argument 1 of RTCPeerConnection.removeTrack does not implement interface RTCRtpSender.","TypeError");if(e._pc!==n)throw new DOMException("Sender was not created by this connection.","InvalidAccessError");n._streams=n._streams||{},Object.keys(n._streams).forEach(function(r){n._streams[r].getTracks().find(function(t){return e.track===t})&&(t=n._streams[r])}),t&&(1===t.getTracks().length?n.removeStream(n._reverseStreams[t.id]):t.removeTrack(e.track),n.dispatchEvent(new Event("negotiationneeded")))}}function c(e,t){var n=t.sdp;return Object.keys(e._reverseStreams||[]).forEach(function(t){var r=e._reverseStreams[t],i=e._streams[r.id];n=n.replace(new RegExp(i.id,"g"),r.id)}),new RTCSessionDescription({type:t.type,sdp:n})}function u(e,t){var n=t.sdp;return Object.keys(e._reverseStreams||[]).forEach(function(t){var r=e._reverseStreams[t],i=e._streams[r.id];n=n.replace(new RegExp(r.id,"g"),i.id)}),new RTCSessionDescription({type:t.type,sdp:n})}},shimPeerConnection:function(e){var t=i.detectBrowser(e);if(e.RTCPeerConnection){var n=e.RTCPeerConnection;e.RTCPeerConnection=function(e,t){if(e&&e.iceServers){for(var r=[],o=0;o0&&"function"==typeof e)return a.apply(this,arguments);if(0===a.length&&(0===arguments.length||"function"!=typeof arguments[0]))return a.apply(this,[]);var o=function(e){var t={};return e.result().forEach(function(e){var n={id:e.id,timestamp:e.timestamp,type:{localcandidate:"local-candidate",remotecandidate:"remote-candidate"}[e.type]||e.type};e.names().forEach(function(t){n[t]=e.stat(t)}),t[n.id]=n}),t},s=function(e){return new Map(Object.keys(e).map(function(t){return[t,e[t]]}))};if(arguments.length>=2){return a.apply(this,[function(e){i[1](s(o(e)))},arguments[0]])}return new Promise(function(e,t){a.apply(r,[function(t){e(s(o(t)))},t])}).then(t,n)},t.version<51&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(t){var n=e.RTCPeerConnection.prototype[t];e.RTCPeerConnection.prototype[t]=function(){var e=arguments,t=this,r=new Promise(function(r,i){n.apply(t,[e[0],r,i])});return e.length<2?r:r.then(function(){e[1].apply(null,[])},function(t){e.length>=3&&e[2].apply(null,[t])})}}),t.version<52&&["createOffer","createAnswer"].forEach(function(t){var n=e.RTCPeerConnection.prototype[t];e.RTCPeerConnection.prototype[t]=function(){var e=this;if(arguments.length<1||1===arguments.length&&"object"===r(arguments[0])){var t=1===arguments.length?arguments[0]:void 0;return new Promise(function(r,i){n.apply(e,[r,i,t])})}return n.apply(this,arguments)}}),["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(t){var n=e.RTCPeerConnection.prototype[t];e.RTCPeerConnection.prototype[t]=function(){return arguments[0]=new("addIceCandidate"===t?e.RTCIceCandidate:e.RTCSessionDescription)(arguments[0]),n.apply(this,arguments)}});var s=e.RTCPeerConnection.prototype.addIceCandidate;e.RTCPeerConnection.prototype.addIceCandidate=function(){return arguments[0]?s.apply(this,arguments):(arguments[1]&&arguments[1].apply(null),Promise.resolve())}}};e.exports={shimMediaStream:a.shimMediaStream,shimOnTrack:a.shimOnTrack,shimAddTrackRemoveTrack:a.shimAddTrackRemoveTrack,shimGetSendersWithDtmf:a.shimGetSendersWithDtmf,shimSourceObject:a.shimSourceObject,shimPeerConnection:a.shimPeerConnection,shimGetUserMedia:n(131)}},function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof("function"==typeof Symbol?Symbol.iterator:"@@iterator")?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==("function"==typeof Symbol?Symbol.prototype:"@@prototype")?"symbol":typeof e})(e)}var i=n(38),o=i.log;e.exports=function(e){var t=i.detectBrowser(e),n=e&&e.navigator,a=function(e){if("object"!==r(e)||e.mandatory||e.optional)return e;var t={};return Object.keys(e).forEach(function(n){if("require"!==n&&"advanced"!==n&&"mediaSource"!==n){var i="object"===r(e[n])?e[n]:{ideal:e[n]};void 0!==i.exact&&"number"==typeof i.exact&&(i.min=i.max=i.exact);var o=function(e,t){return e?e+t.charAt(0).toUpperCase()+t.slice(1):"deviceId"===t?"sourceId":t};if(void 0!==i.ideal){t.optional=t.optional||[];var a={};"number"==typeof i.ideal?(a[o("min",n)]=i.ideal,t.optional.push(a),(a={})[o("max",n)]=i.ideal,t.optional.push(a)):(a[o("",n)]=i.ideal,t.optional.push(a))}void 0!==i.exact&&"number"!=typeof i.exact?(t.mandatory=t.mandatory||{},t.mandatory[o("",n)]=i.exact):["min","max"].forEach(function(e){void 0!==i[e]&&(t.mandatory=t.mandatory||{},t.mandatory[o(e,n)]=i[e])})}}),e.advanced&&(t.optional=(t.optional||[]).concat(e.advanced)),t},s=function(e,i){if(t.version>=61)return i(e);if((e=JSON.parse(JSON.stringify(e)))&&"object"===r(e.audio)){var s=function(e,t,n){t in e&&!(n in e)&&(e[n]=e[t],delete e[t])};s((e=JSON.parse(JSON.stringify(e))).audio,"autoGainControl","googAutoGainControl"),s(e.audio,"noiseSuppression","googNoiseSuppression"),e.audio=a(e.audio)}if(e&&"object"===r(e.video)){var c=e.video.facingMode;c=c&&("object"===r(c)?c:{ideal:c});var u,l=t.version<66;if(c&&("user"===c.exact||"environment"===c.exact||"user"===c.ideal||"environment"===c.ideal)&&(!n.mediaDevices.getSupportedConstraints||!n.mediaDevices.getSupportedConstraints().facingMode||l)&&(delete e.video.facingMode,"environment"===c.exact||"environment"===c.ideal?u=["back","rear"]:"user"!==c.exact&&"user"!==c.ideal||(u=["front"]),u))return n.mediaDevices.enumerateDevices().then(function(t){var n=(t=t.filter(function(e){return"videoinput"===e.kind})).find(function(e){return u.some(function(t){return-1!==e.label.toLowerCase().indexOf(t)})});return!n&&t.length&&-1!==u.indexOf("back")&&(n=t[t.length-1]),n&&(e.video.deviceId=c.exact?{exact:n.deviceId}:{ideal:n.deviceId}),e.video=a(e.video),o("chrome: "+JSON.stringify(e)),i(e)});e.video=a(e.video)}return o("chrome: "+JSON.stringify(e)),i(e)},c=function(e){return{name:{PermissionDeniedError:"NotAllowedError",InvalidStateError:"NotReadableError",DevicesNotFoundError:"NotFoundError",ConstraintNotSatisfiedError:"OverconstrainedError",TrackStartError:"NotReadableError",MediaDeviceFailedDueToShutdown:"NotReadableError",MediaDeviceKillSwitchOn:"NotReadableError"}[e.name]||e.name,message:e.message,constraint:e.constraintName,toString:function(){return this.name+(this.message&&": ")+this.message}}};n.getUserMedia=function(e,t,r){s(e,function(e){n.webkitGetUserMedia(e,t,function(e){r&&r(c(e))})})};var u=function(e){return new Promise(function(t,r){n.getUserMedia(e,t,r)})};if(n.mediaDevices||(n.mediaDevices={getUserMedia:u,enumerateDevices:function(){return new Promise(function(t){var n={audio:"audioinput",video:"videoinput"};return e.MediaStreamTrack.getSources(function(e){t(e.map(function(e){return{label:e.label,kind:n[e.kind],deviceId:e.id,groupId:""}}))})})},getSupportedConstraints:function(){return{deviceId:!0,echoCancellation:!0,facingMode:!0,frameRate:!0,height:!0,width:!0}}}),n.mediaDevices.getUserMedia){var l=n.mediaDevices.getUserMedia.bind(n.mediaDevices);n.mediaDevices.getUserMedia=function(e){return s(e,function(e){return l(e).then(function(t){if(e.audio&&!t.getAudioTracks().length||e.video&&!t.getVideoTracks().length)throw t.getTracks().forEach(function(e){e.stop()}),new DOMException("","NotFoundError");return t},function(e){return Promise.reject(c(e))})})}}else n.mediaDevices.getUserMedia=function(e){return u(e)};void 0===n.mediaDevices.addEventListener&&(n.mediaDevices.addEventListener=function(){o("Dummy mediaDevices.addEventListener called.")}),void 0===n.mediaDevices.removeEventListener&&(n.mediaDevices.removeEventListener=function(){o("Dummy mediaDevices.removeEventListener called.")})}},function(e,t,n){"use strict";var r=n(38),i=n(133);e.exports={shimGetUserMedia:n(134),shimPeerConnection:function(e){var t=r.detectBrowser(e);if(e.RTCIceGatherer&&(e.RTCIceCandidate||(e.RTCIceCandidate=function(e){return e}),e.RTCSessionDescription||(e.RTCSessionDescription=function(e){return e}),t.version<15025)){var n=Object.getOwnPropertyDescriptor(e.MediaStreamTrack.prototype,"enabled");Object.defineProperty(e.MediaStreamTrack.prototype,"enabled",{set:function(e){n.set.call(this,e);var t=new Event("enabled");t.enabled=e,this.dispatchEvent(t)}})}!e.RTCRtpSender||"dtmf"in e.RTCRtpSender.prototype||Object.defineProperty(e.RTCRtpSender.prototype,"dtmf",{get:function(){return void 0===this._dtmf&&("audio"===this.track.kind?this._dtmf=new e.RTCDtmfSender(this):"video"===this.track.kind&&(this._dtmf=null)),this._dtmf}}),e.RTCPeerConnection=i(e,t.version)},shimReplaceTrack:function(e){!e.RTCRtpSender||"replaceTrack"in e.RTCRtpSender.prototype||(e.RTCRtpSender.prototype.replaceTrack=e.RTCRtpSender.prototype.setTrack)}}},function(e,t,n){"use strict";var r=n(62);function i(e,t,n,i,o){var a=r.writeRtpDescription(e.kind,t);if(a+=r.writeIceParameters(e.iceGatherer.getLocalParameters()),a+=r.writeDtlsParameters(e.dtlsTransport.getLocalParameters(),"offer"===n?"actpass":o||"active"),a+="a=mid:"+e.mid+"\r\n",e.rtpSender&&e.rtpReceiver?a+="a=sendrecv\r\n":e.rtpSender?a+="a=sendonly\r\n":e.rtpReceiver?a+="a=recvonly\r\n":a+="a=inactive\r\n",e.rtpSender){var s=e.rtpSender._initialTrackId||e.rtpSender.track.id;e.rtpSender._initialTrackId=s;var c="msid:"+(i?i.id:"-")+" "+s+"\r\n";a+="a="+c,a+="a=ssrc:"+e.sendEncodingParameters[0].ssrc+" "+c,e.sendEncodingParameters[0].rtx&&(a+="a=ssrc:"+e.sendEncodingParameters[0].rtx.ssrc+" "+c,a+="a=ssrc-group:FID "+e.sendEncodingParameters[0].ssrc+" "+e.sendEncodingParameters[0].rtx.ssrc+"\r\n")}return a+="a=ssrc:"+e.sendEncodingParameters[0].ssrc+" cname:"+r.localCName+"\r\n",e.rtpSender&&e.sendEncodingParameters[0].rtx&&(a+="a=ssrc:"+e.sendEncodingParameters[0].rtx.ssrc+" cname:"+r.localCName+"\r\n"),a}function o(e,t){var n={codecs:[],headerExtensions:[],fecMechanisms:[]},r=function(e,t){e=parseInt(e,10);for(var n=0;n=14393&&-1===e.indexOf("?transport=udp"):(n=!0,!0)}),delete e.url,e.urls=i?r[0]:r,!!r.length}})})(n.iceServers||[],t),this._iceGatherers=[],n.iceCandidatePoolSize)for(var a=n.iceCandidatePoolSize;a>0;a--)this._iceGatherers.push(new e.RTCIceGatherer({iceServers:n.iceServers,gatherPolicy:n.iceTransportPolicy}));else n.iceCandidatePoolSize=0;this._config=n,this.transceivers=[],this._sdpSessionId=r.generateSessionId(),this._sdpSessionVersion=0,this._dtlsRole=void 0,this._isClosed=!1};Object.defineProperty(l.prototype,"localDescription",{configurable:!0,get:function(){return this._localDescription}}),Object.defineProperty(l.prototype,"remoteDescription",{configurable:!0,get:function(){return this._remoteDescription}}),l.prototype.onicecandidate=null,l.prototype.onaddstream=null,l.prototype.ontrack=null,l.prototype.onremovestream=null,l.prototype.onsignalingstatechange=null,l.prototype.oniceconnectionstatechange=null,l.prototype.onconnectionstatechange=null,l.prototype.onicegatheringstatechange=null,l.prototype.onnegotiationneeded=null,l.prototype.ondatachannel=null,l.prototype._dispatchEvent=function(e,t){this._isClosed||(this.dispatchEvent(t),"function"==typeof this["on"+e]&&this["on"+e](t))},l.prototype._emitGatheringStateChange=function(){var e=new Event("icegatheringstatechange");this._dispatchEvent("icegatheringstatechange",e)},l.prototype.getConfiguration=function(){return this._config},l.prototype.getLocalStreams=function(){return this.localStreams},l.prototype.getRemoteStreams=function(){return this.remoteStreams},l.prototype._createTransceiver=function(e,t){var n=this.transceivers.length>0,r={track:null,iceGatherer:null,iceTransport:null,dtlsTransport:null,localCapabilities:null,remoteCapabilities:null,rtpSender:null,rtpReceiver:null,kind:e,mid:null,sendEncodingParameters:null,recvEncodingParameters:null,stream:null,associatedRemoteMediaStreams:[],wantReceive:!0};if(this.usingBundle&&n)r.iceTransport=this.transceivers[0].iceTransport,r.dtlsTransport=this.transceivers[0].dtlsTransport;else{var i=this._createIceAndDtlsTransports();r.iceTransport=i.iceTransport,r.dtlsTransport=i.dtlsTransport}return t||this.transceivers.push(r),r},l.prototype.addTrack=function(t,n){if(this._isClosed)throw c("InvalidStateError","Attempted to call addTrack on a closed peerconnection.");var r;if(this.transceivers.find(function(e){return e.track===t}))throw c("InvalidAccessError","Track already exists.");for(var i=0;i=15025)e.getTracks().forEach(function(t){n.addTrack(t,e)});else{var r=e.clone();e.getTracks().forEach(function(e,t){var n=r.getTracks()[t];e.addEventListener("enabled",function(e){n.enabled=e.enabled})}),r.getTracks().forEach(function(e){n.addTrack(e,r)})}},l.prototype.removeTrack=function(t){if(this._isClosed)throw c("InvalidStateError","Attempted to call removeTrack on a closed peerconnection.");if(!(t instanceof e.RTCRtpSender))throw new TypeError("Argument 1 of RTCPeerConnection.removeTrack does not implement interface RTCRtpSender.");var n=this.transceivers.find(function(e){return e.rtpSender===t});if(!n)throw c("InvalidAccessError","Sender was not created by this connection.");var r=n.stream;n.rtpSender.stop(),n.rtpSender=null,n.track=null,n.stream=null,-1===this.transceivers.map(function(e){return e.stream}).indexOf(r)&&this.localStreams.indexOf(r)>-1&&this.localStreams.splice(this.localStreams.indexOf(r),1),this._maybeFireNegotiationNeeded()},l.prototype.removeStream=function(e){var t=this;e.getTracks().forEach(function(e){var n=t.getSenders().find(function(t){return t.track===e});n&&t.removeTrack(n)})},l.prototype.getSenders=function(){return this.transceivers.filter(function(e){return!!e.rtpSender}).map(function(e){return e.rtpSender})},l.prototype.getReceivers=function(){return this.transceivers.filter(function(e){return!!e.rtpReceiver}).map(function(e){return e.rtpReceiver})},l.prototype._createIceGatherer=function(t,n){var r=this;if(n&&t>0)return this.transceivers[0].iceGatherer;if(this._iceGatherers.length)return this._iceGatherers.shift();var i=new e.RTCIceGatherer({iceServers:this._config.iceServers,gatherPolicy:this._config.iceTransportPolicy});return Object.defineProperty(i,"state",{value:"new",writable:!0}),this.transceivers[t].bufferedCandidateEvents=[],this.transceivers[t].bufferCandidates=function(e){var n=!e.candidate||0===Object.keys(e.candidate).length;i.state=n?"completed":"gathering",null!==r.transceivers[t].bufferedCandidateEvents&&r.transceivers[t].bufferedCandidateEvents.push(e)},i.addEventListener("localcandidate",this.transceivers[t].bufferCandidates),i},l.prototype._gather=function(t,n){var i=this,o=this.transceivers[n].iceGatherer;if(!o.onlocalcandidate){var a=this.transceivers[n].bufferedCandidateEvents;this.transceivers[n].bufferedCandidateEvents=null,o.removeEventListener("localcandidate",this.transceivers[n].bufferCandidates),o.onlocalcandidate=function(e){if(!(i.usingBundle&&n>0)){var a=new Event("icecandidate");a.candidate={sdpMid:t,sdpMLineIndex:n};var s=e.candidate,c=!s||0===Object.keys(s).length;if(c)"new"!==o.state&&"gathering"!==o.state||(o.state="completed");else{"new"===o.state&&(o.state="gathering"),s.component=1,s.ufrag=o.getLocalParameters().usernameFragment;var u=r.writeCandidate(s);a.candidate=_extends(a.candidate,r.parseCandidate(u)),a.candidate.candidate=u,a.candidate.toJSON=function(){return{candidate:a.candidate.candidate,sdpMid:a.candidate.sdpMid,sdpMLineIndex:a.candidate.sdpMLineIndex,usernameFragment:a.candidate.usernameFragment}}}var l=r.getMediaSections(i._localDescription.sdp);l[a.candidate.sdpMLineIndex]+=c?"a=end-of-candidates\r\n":"a="+a.candidate.candidate+"\r\n",i._localDescription.sdp=r.getDescription(i._localDescription.sdp)+l.join("");var d=i.transceivers.every(function(e){return e.iceGatherer&&"completed"===e.iceGatherer.state});"gathering"!==i.iceGatheringState&&(i.iceGatheringState="gathering",i._emitGatheringStateChange()),c||i._dispatchEvent("icecandidate",a),d&&(i._dispatchEvent("icecandidate",new Event("icecandidate")),i.iceGatheringState="complete",i._emitGatheringStateChange())}},e.setTimeout(function(){a.forEach(function(e){o.onlocalcandidate(e)})},0)}},l.prototype._createIceAndDtlsTransports=function(){var t=this,n=new e.RTCIceTransport(null);n.onicestatechange=function(){t._updateIceConnectionState(),t._updateConnectionState()};var r=new e.RTCDtlsTransport(n);return r.ondtlsstatechange=function(){t._updateConnectionState()},r.onerror=function(){Object.defineProperty(r,"state",{value:"failed",writable:!0}),t._updateConnectionState()},{iceTransport:n,dtlsTransport:r}},l.prototype._disposeIceAndDtlsTransports=function(e){var t=this.transceivers[e].iceGatherer;t&&(delete t.onlocalcandidate,delete this.transceivers[e].iceGatherer);var n=this.transceivers[e].iceTransport;n&&(delete n.onicestatechange,delete this.transceivers[e].iceTransport);var r=this.transceivers[e].dtlsTransport;r&&(delete r.ondtlsstatechange,delete r.onerror,delete this.transceivers[e].dtlsTransport)},l.prototype._transceive=function(e,n,i){var a=o(e.localCapabilities,e.remoteCapabilities);n&&e.rtpSender&&(a.encodings=e.sendEncodingParameters,a.rtcp={cname:r.localCName,compound:e.rtcpParameters.compound},e.recvEncodingParameters.length&&(a.rtcp.ssrc=e.recvEncodingParameters[0].ssrc),e.rtpSender.send(a)),i&&e.rtpReceiver&&a.codecs.length>0&&("video"===e.kind&&e.recvEncodingParameters&&t<15019&&e.recvEncodingParameters.forEach(function(e){delete e.rtx}),e.recvEncodingParameters.length?a.encodings=e.recvEncodingParameters:a.encodings=[{}],a.rtcp={compound:e.rtcpParameters.compound},e.rtcpParameters.cname&&(a.rtcp.cname=e.rtcpParameters.cname),e.sendEncodingParameters.length&&(a.rtcp.ssrc=e.sendEncodingParameters[0].ssrc),e.rtpReceiver.receive(a))},l.prototype.setLocalDescription=function(e){var t,n,i=this;if(-1===["offer","answer"].indexOf(e.type))return Promise.reject(c("TypeError",'Unsupported type "'+e.type+'"'));if(!a("setLocalDescription",e.type,i.signalingState)||i._isClosed)return Promise.reject(c("InvalidStateError","Can not set local "+e.type+" in state "+i.signalingState));if("offer"===e.type)t=r.splitSections(e.sdp),n=t.shift(),t.forEach(function(e,t){var n=r.parseRtpParameters(e);i.transceivers[t].localCapabilities=n}),i.transceivers.forEach(function(e,t){i._gather(e.mid,t)});else if("answer"===e.type){t=r.splitSections(i._remoteDescription.sdp),n=t.shift();var s=r.matchPrefix(n,"a=ice-lite").length>0;t.forEach(function(e,t){var a=i.transceivers[t],c=a.iceGatherer,u=a.iceTransport,l=a.dtlsTransport,d=a.localCapabilities,p=a.remoteCapabilities;if(!(r.isRejected(e)&&0===r.matchPrefix(e,"a=bundle-only").length||a.rejected)){var f=r.getIceParameters(e,n),h=r.getDtlsParameters(e,n);s&&(h.role="server"),i.usingBundle&&0!==t||(i._gather(a.mid,t),"new"===u.state&&u.start(c,f,s?"controlling":"controlled"),"new"===l.state&&l.start(h));var m=o(d,p);i._transceive(a,m.codecs.length>0,!1)}})}return i._localDescription={type:e.type,sdp:e.sdp},"offer"===e.type?i._updateSignalingState("have-local-offer"):i._updateSignalingState("stable"),Promise.resolve()},l.prototype.setRemoteDescription=function(i){var l=this;if(-1===["offer","answer"].indexOf(i.type))return Promise.reject(c("TypeError",'Unsupported type "'+i.type+'"'));if(!a("setRemoteDescription",i.type,l.signalingState)||l._isClosed)return Promise.reject(c("InvalidStateError","Can not set remote "+i.type+" in state "+l.signalingState));var d={};l.remoteStreams.forEach(function(e){d[e.id]=e});var p=[],f=r.splitSections(i.sdp),h=f.shift(),m=r.matchPrefix(h,"a=ice-lite").length>0,v=r.matchPrefix(h,"a=group:BUNDLE ").length>0;l.usingBundle=v;var y=r.matchPrefix(h,"a=ice-options:")[0];return l.canTrickleIceCandidates=!!y&&y.substr(14).split(" ").indexOf("trickle")>=0,f.forEach(function(a,c){var u=r.splitLines(a),f=r.getKind(a),y=r.isRejected(a)&&0===r.matchPrefix(a,"a=bundle-only").length,g=u[0].substr(2).split(" ")[2],S=r.getDirection(a,h),_=r.parseMsid(a),b=r.getMid(a)||r.generateIdentifier();if(y||"application"===f&&("DTLS/SCTP"===g||"UDP/DTLS/SCTP"===g))l.transceivers[c]={mid:b,kind:f,protocol:g,rejected:!0};else{var E,T,C,R,A,w,k,O,I;!y&&l.transceivers[c]&&l.transceivers[c].rejected&&(l.transceivers[c]=l._createTransceiver(f,!0));var P,D,N=r.parseRtpParameters(a);y||(P=r.getIceParameters(a,h),(D=r.getDtlsParameters(a,h)).role="client"),k=r.parseRtpEncodingParameters(a);var L=r.parseRtcpParameters(a),M=r.matchPrefix(a,"a=end-of-candidates",h).length>0,x=r.matchPrefix(a,"a=candidate:").map(function(e){return r.parseCandidate(e)}).filter(function(e){return 1===e.component});if(("offer"===i.type||"answer"===i.type)&&!y&&v&&c>0&&l.transceivers[c]&&(l._disposeIceAndDtlsTransports(c),l.transceivers[c].iceGatherer=l.transceivers[0].iceGatherer,l.transceivers[c].iceTransport=l.transceivers[0].iceTransport,l.transceivers[c].dtlsTransport=l.transceivers[0].dtlsTransport,l.transceivers[c].rtpSender&&l.transceivers[c].rtpSender.setTransport(l.transceivers[0].dtlsTransport),l.transceivers[c].rtpReceiver&&l.transceivers[c].rtpReceiver.setTransport(l.transceivers[0].dtlsTransport)),"offer"!==i.type||y)"answer"!==i.type||y||(T=(E=l.transceivers[c]).iceGatherer,C=E.iceTransport,R=E.dtlsTransport,A=E.rtpReceiver,w=E.sendEncodingParameters,O=E.localCapabilities,l.transceivers[c].recvEncodingParameters=k,l.transceivers[c].remoteCapabilities=N,l.transceivers[c].rtcpParameters=L,x.length&&"new"===C.state&&(!m&&!M||v&&0!==c?x.forEach(function(e){s(E.iceTransport,e)}):C.setRemoteCandidates(x)),v&&0!==c||("new"===C.state&&C.start(T,P,"controlling"),"new"===R.state&&R.start(D)),!o(E.localCapabilities,E.remoteCapabilities).codecs.filter(function(e){return"rtx"===e.name.toLowerCase()}).length&&E.sendEncodingParameters[0].rtx&&delete E.sendEncodingParameters[0].rtx,l._transceive(E,"sendrecv"===S||"recvonly"===S,"sendrecv"===S||"sendonly"===S),!A||"sendrecv"!==S&&"sendonly"!==S?delete E.rtpReceiver:(I=A.track,_?(d[_.stream]||(d[_.stream]=new e.MediaStream),n(I,d[_.stream]),p.push([I,A,d[_.stream]])):(d.default||(d.default=new e.MediaStream),n(I,d.default),p.push([I,A,d.default]))));else{(E=l.transceivers[c]||l._createTransceiver(f)).mid=b,E.iceGatherer||(E.iceGatherer=l._createIceGatherer(c,v)),x.length&&"new"===E.iceTransport.state&&(!M||v&&0!==c?x.forEach(function(e){s(E.iceTransport,e)}):E.iceTransport.setRemoteCandidates(x)),O=e.RTCRtpReceiver.getCapabilities(f),t<15019&&(O.codecs=O.codecs.filter(function(e){return"rtx"!==e.name})),w=E.sendEncodingParameters||[{ssrc:1001*(2*c+2)}];var j,F=!1;"sendrecv"===S||"sendonly"===S?(F=!E.rtpReceiver,A=E.rtpReceiver||new e.RTCRtpReceiver(E.dtlsTransport,f),F&&(I=A.track,_&&"-"===_.stream||(_?(d[_.stream]||(d[_.stream]=new e.MediaStream,Object.defineProperty(d[_.stream],"id",{get:function(){return _.stream}})),Object.defineProperty(I,"id",{get:function(){return _.track}}),j=d[_.stream]):(d.default||(d.default=new e.MediaStream),j=d.default)),j&&(n(I,j),E.associatedRemoteMediaStreams.push(j)),p.push([I,A,j]))):E.rtpReceiver&&E.rtpReceiver.track&&(E.associatedRemoteMediaStreams.forEach(function(t){var n=t.getTracks().find(function(e){return e.id===E.rtpReceiver.track.id});n&&(function(t,n){n.removeTrack(t),n.dispatchEvent(new e.MediaStreamTrackEvent("removetrack",{track:t}))})(n,t)}),E.associatedRemoteMediaStreams=[]),E.localCapabilities=O,E.remoteCapabilities=N,E.rtpReceiver=A,E.rtcpParameters=L,E.sendEncodingParameters=w,E.recvEncodingParameters=k,l._transceive(l.transceivers[c],!1,F)}}}),void 0===l._dtlsRole&&(l._dtlsRole="offer"===i.type?"active":"passive"),l._remoteDescription={type:i.type,sdp:i.sdp},"offer"===i.type?l._updateSignalingState("have-remote-offer"):l._updateSignalingState("stable"),Object.keys(d).forEach(function(t){var n=d[t];if(n.getTracks().length){if(-1===l.remoteStreams.indexOf(n)){l.remoteStreams.push(n);var r=new Event("addstream");r.stream=n,e.setTimeout(function(){l._dispatchEvent("addstream",r)})}p.forEach(function(e){var t=e[0],r=e[1];n.id===e[2].id&&u(l,t,r,[n])})}}),p.forEach(function(e){e[2]||u(l,e[0],e[1],[])}),e.setTimeout(function(){l&&l.transceivers&&l.transceivers.forEach(function(e){e.iceTransport&&"new"===e.iceTransport.state&&e.iceTransport.getRemoteCandidates().length>0&&(console.warn("Timeout for addRemoteCandidate. Consider sending an end-of-candidates notification"),e.iceTransport.addRemoteCandidate({}))})},4e3),Promise.resolve()},l.prototype.close=function(){this.transceivers.forEach(function(e){e.iceTransport&&e.iceTransport.stop(),e.dtlsTransport&&e.dtlsTransport.stop(),e.rtpSender&&e.rtpSender.stop(),e.rtpReceiver&&e.rtpReceiver.stop()}),this._isClosed=!0,this._updateSignalingState("closed")},l.prototype._updateSignalingState=function(e){this.signalingState=e;var t=new Event("signalingstatechange");this._dispatchEvent("signalingstatechange",t)},l.prototype._maybeFireNegotiationNeeded=function(){var t=this;"stable"===this.signalingState&&!0!==this.needNegotiation&&(this.needNegotiation=!0,e.setTimeout(function(){if(t.needNegotiation){t.needNegotiation=!1;var e=new Event("negotiationneeded");t._dispatchEvent("negotiationneeded",e)}},0))},l.prototype._updateIceConnectionState=function(){var e,t={new:0,closed:0,checking:0,connected:0,completed:0,disconnected:0,failed:0};if(this.transceivers.forEach(function(e){e.iceTransport&&!e.rejected&&t[e.iceTransport.state]++}),e="new",t.failed>0?e="failed":t.checking>0?e="checking":t.disconnected>0?e="disconnected":t.new>0?e="new":t.connected>0?e="connected":t.completed>0&&(e="completed"),e!==this.iceConnectionState){this.iceConnectionState=e;var n=new Event("iceconnectionstatechange");this._dispatchEvent("iceconnectionstatechange",n)}},l.prototype._updateConnectionState=function(){var e,t={new:0,closed:0,connecting:0,connected:0,completed:0,disconnected:0,failed:0};if(this.transceivers.forEach(function(e){e.iceTransport&&e.dtlsTransport&&!e.rejected&&(t[e.iceTransport.state]++,t[e.dtlsTransport.state]++)}),t.connected+=t.completed,e="new",t.failed>0?e="failed":t.connecting>0?e="connecting":t.disconnected>0?e="disconnected":t.new>0?e="new":t.connected>0&&(e="connected"),e!==this.connectionState){this.connectionState=e;var n=new Event("connectionstatechange");this._dispatchEvent("connectionstatechange",n)}},l.prototype.createOffer=function(){var n=this;if(n._isClosed)return Promise.reject(c("InvalidStateError","Can not call createOffer after close"));var o=n.transceivers.filter(function(e){return"audio"===e.kind}).length,a=n.transceivers.filter(function(e){return"video"===e.kind}).length,s=arguments[0];if(s){if(s.mandatory||s.optional)throw new TypeError("Legacy mandatory/optional constraints not supported.");void 0!==s.offerToReceiveAudio&&(o=!0===s.offerToReceiveAudio?1:!1===s.offerToReceiveAudio?0:s.offerToReceiveAudio),void 0!==s.offerToReceiveVideo&&(a=!0===s.offerToReceiveVideo?1:!1===s.offerToReceiveVideo?0:s.offerToReceiveVideo)}for(n.transceivers.forEach(function(e){"audio"===e.kind?--o<0&&(e.wantReceive=!1):"video"===e.kind&&--a<0&&(e.wantReceive=!1)});o>0||a>0;)o>0&&(n._createTransceiver("audio"),o--),a>0&&(n._createTransceiver("video"),a--);var u=r.writeSessionBoilerplate(n._sdpSessionId,n._sdpSessionVersion++);n.transceivers.forEach(function(i,o){var a=i.track,s=i.kind,c=i.mid||r.generateIdentifier();i.mid=c,i.iceGatherer||(i.iceGatherer=n._createIceGatherer(o,n.usingBundle));var u=e.RTCRtpSender.getCapabilities(s);t<15019&&(u.codecs=u.codecs.filter(function(e){return"rtx"!==e.name})),u.codecs.forEach(function(e){"H264"===e.name&&void 0===e.parameters["level-asymmetry-allowed"]&&(e.parameters["level-asymmetry-allowed"]="1"),i.remoteCapabilities&&i.remoteCapabilities.codecs&&i.remoteCapabilities.codecs.forEach(function(t){e.name.toLowerCase()===t.name.toLowerCase()&&e.clockRate===t.clockRate&&(e.preferredPayloadType=t.payloadType)})}),u.headerExtensions.forEach(function(e){(i.remoteCapabilities&&i.remoteCapabilities.headerExtensions||[]).forEach(function(t){e.uri===t.uri&&(e.id=t.id)})});var l=i.sendEncodingParameters||[{ssrc:1001*(2*o+1)}];a&&t>=15019&&"video"===s&&!l[0].rtx&&(l[0].rtx={ssrc:l[0].ssrc+1}),i.wantReceive&&(i.rtpReceiver=new e.RTCRtpReceiver(i.dtlsTransport,s)),i.localCapabilities=u,i.sendEncodingParameters=l}),"max-compat"!==n._config.bundlePolicy&&(u+="a=group:BUNDLE "+n.transceivers.map(function(e){return e.mid}).join(" ")+"\r\n"),u+="a=ice-options:trickle\r\n",n.transceivers.forEach(function(e,t){u+=i(e,e.localCapabilities,"offer",e.stream,n._dtlsRole),u+="a=rtcp-rsize\r\n",!e.iceGatherer||"new"===n.iceGatheringState||0!==t&&n.usingBundle||(e.iceGatherer.getLocalCandidates().forEach(function(e){e.component=1,u+="a="+r.writeCandidate(e)+"\r\n"}),"completed"===e.iceGatherer.state&&(u+="a=end-of-candidates\r\n"))});var l=new e.RTCSessionDescription({type:"offer",sdp:u});return Promise.resolve(l)},l.prototype.createAnswer=function(){var n=this;if(n._isClosed)return Promise.reject(c("InvalidStateError","Can not call createAnswer after close"));if("have-remote-offer"!==n.signalingState&&"have-local-pranswer"!==n.signalingState)return Promise.reject(c("InvalidStateError","Can not call createAnswer in signalingState "+n.signalingState));var a=r.writeSessionBoilerplate(n._sdpSessionId,n._sdpSessionVersion++);n.usingBundle&&(a+="a=group:BUNDLE "+n.transceivers.map(function(e){return e.mid}).join(" ")+"\r\n"),a+="a=ice-options:trickle\r\n";var s=r.getMediaSections(n._remoteDescription.sdp).length;n.transceivers.forEach(function(e,r){if(!(r+1>s)){if(e.rejected)return"application"===e.kind?"DTLS/SCTP"===e.protocol?a+="m=application 0 DTLS/SCTP 5000\r\n":a+="m=application 0 "+e.protocol+" webrtc-datachannel\r\n":"audio"===e.kind?a+="m=audio 0 UDP/TLS/RTP/SAVPF 0\r\na=rtpmap:0 PCMU/8000\r\n":"video"===e.kind&&(a+="m=video 0 UDP/TLS/RTP/SAVPF 120\r\na=rtpmap:120 VP8/90000\r\n"),void(a+="c=IN IP4 0.0.0.0\r\na=inactive\r\na=mid:"+e.mid+"\r\n");var c;e.stream&&("audio"===e.kind?c=e.stream.getAudioTracks()[0]:"video"===e.kind&&(c=e.stream.getVideoTracks()[0]),c&&t>=15019&&"video"===e.kind&&!e.sendEncodingParameters[0].rtx&&(e.sendEncodingParameters[0].rtx={ssrc:e.sendEncodingParameters[0].ssrc+1}));var u=o(e.localCapabilities,e.remoteCapabilities);!u.codecs.filter(function(e){return"rtx"===e.name.toLowerCase()}).length&&e.sendEncodingParameters[0].rtx&&delete e.sendEncodingParameters[0].rtx,a+=i(e,u,"answer",e.stream,n._dtlsRole),e.rtcpParameters&&e.rtcpParameters.reducedSize&&(a+="a=rtcp-rsize\r\n")}});var u=new e.RTCSessionDescription({type:"answer",sdp:a});return Promise.resolve(u)},l.prototype.addIceCandidate=function(e){var t,n=this;return e&&void 0===e.sdpMLineIndex&&!e.sdpMid?Promise.reject(new TypeError("sdpMLineIndex or sdpMid required")):new Promise(function(i,o){if(!n._remoteDescription)return o(c("InvalidStateError","Can not add ICE candidate without a remote description"));if(e&&""!==e.candidate){var a=e.sdpMLineIndex;if(e.sdpMid)for(var u=0;u0?r.parseCandidate(e.candidate):{};if("tcp"===d.protocol&&(0===d.port||9===d.port))return i();if(d.component&&1!==d.component)return i();if((0===a||a>0&&l.iceTransport!==n.transceivers[0].iceTransport)&&!s(l.iceTransport,d))return o(c("OperationError","Can not add ICE candidate"));var p=e.candidate.trim();0===p.indexOf("a=")&&(p=p.substr(2)),(t=r.getMediaSections(n._remoteDescription.sdp))[a]+="a="+(d.type?p:"end-of-candidates")+"\r\n",n._remoteDescription.sdp=r.getDescription(n._remoteDescription.sdp)+t.join("")}else for(var f=0;f55&&"autoGainControl"in n.mediaDevices.getSupportedConstraints())){var d=function(e,t,n){t in e&&!(n in e)&&(e[n]=e[t],delete e[t])},p=n.mediaDevices.getUserMedia.bind(n.mediaDevices);if(n.mediaDevices.getUserMedia=function(e){return"object"===r(e)&&"object"===r(e.audio)&&(e=JSON.parse(JSON.stringify(e)),d(e.audio,"autoGainControl","mozAutoGainControl"),d(e.audio,"noiseSuppression","mozNoiseSuppression")),p(e)},a&&a.prototype.getSettings){var f=a.prototype.getSettings;a.prototype.getSettings=function(){var e=f.apply(this,arguments);return d(e,"mozAutoGainControl","autoGainControl"),d(e,"mozNoiseSuppression","noiseSuppression"),e}}if(a&&a.prototype.applyConstraints){var h=a.prototype.applyConstraints;a.prototype.applyConstraints=function(e){return"audio"===this.kind&&"object"===r(e)&&(e=JSON.parse(JSON.stringify(e)),d(e,"autoGainControl","mozAutoGainControl"),d(e,"noiseSuppression","mozNoiseSuppression")),h.apply(this,[e])}}}n.getUserMedia=function(e,r,o){if(t.version<44)return c(e,r,o);i.deprecated("navigator.getUserMedia","navigator.mediaDevices.getUserMedia"),n.mediaDevices.getUserMedia(e).then(r,o)}}},function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof("function"==typeof Symbol?Symbol.iterator:"@@iterator")?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==("function"==typeof Symbol?Symbol.prototype:"@@prototype")?"symbol":typeof e})(e)}var i=n(38),o={shimLocalStreamsAPI:function(e){if("object"===r(e)&&e.RTCPeerConnection){if("getLocalStreams"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.getLocalStreams=function(){return this._localStreams||(this._localStreams=[]),this._localStreams}),"getStreamById"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.getStreamById=function(e){var t=null;return this._localStreams&&this._localStreams.forEach(function(n){n.id===e&&(t=n)}),this._remoteStreams&&this._remoteStreams.forEach(function(n){n.id===e&&(t=n)}),t}),!("addStream"in e.RTCPeerConnection.prototype)){var t=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addStream=function(e){this._localStreams||(this._localStreams=[]),-1===this._localStreams.indexOf(e)&&this._localStreams.push(e);var n=this;e.getTracks().forEach(function(r){t.call(n,r,e)})},e.RTCPeerConnection.prototype.addTrack=function(e,n){n&&(this._localStreams?-1===this._localStreams.indexOf(n)&&this._localStreams.push(n):this._localStreams=[n]),t.call(this,e,n)}}"removeStream"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.removeStream=function(e){this._localStreams||(this._localStreams=[]);var t=this._localStreams.indexOf(e);if(-1!==t){this._localStreams.splice(t,1);var n=this,r=e.getTracks();this.getSenders().forEach(function(e){-1!==r.indexOf(e.track)&&n.removeTrack(e)})}})}},shimRemoteStreamsAPI:function(e){"object"===r(e)&&e.RTCPeerConnection&&("getRemoteStreams"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.getRemoteStreams=function(){return this._remoteStreams?this._remoteStreams:[]}),"onaddstream"in e.RTCPeerConnection.prototype||Object.defineProperty(e.RTCPeerConnection.prototype,"onaddstream",{get:function(){return this._onaddstream},set:function(e){this._onaddstream&&(this.removeEventListener("addstream",this._onaddstream),this.removeEventListener("track",this._onaddstreampoly)),this.addEventListener("addstream",this._onaddstream=e),this.addEventListener("track",this._onaddstreampoly=function(e){var t=e.streams[0];if(this._remoteStreams||(this._remoteStreams=[]),!(this._remoteStreams.indexOf(t)>=0)){this._remoteStreams.push(t);var n=new Event("addstream");n.stream=e.streams[0],this.dispatchEvent(n)}}.bind(this))}}))},shimCallbacksAPI:function(e){if("object"===r(e)&&e.RTCPeerConnection){var t=e.RTCPeerConnection.prototype,n=t.createOffer,i=t.createAnswer,o=t.setLocalDescription,a=t.setRemoteDescription,s=t.addIceCandidate;t.createOffer=function(e,t){var r=arguments.length>=2?arguments[2]:arguments[0],i=n.apply(this,[r]);return t?(i.then(e,t),Promise.resolve()):i},t.createAnswer=function(e,t){var n=arguments.length>=2?arguments[2]:arguments[0],r=i.apply(this,[n]);return t?(r.then(e,t),Promise.resolve()):r};var c=function(e,t,n){var r=o.apply(this,[e]);return n?(r.then(t,n),Promise.resolve()):r};t.setLocalDescription=c,c=function(e,t,n){var r=a.apply(this,[e]);return n?(r.then(t,n),Promise.resolve()):r},t.setRemoteDescription=c,c=function(e,t,n){var r=s.apply(this,[e]);return n?(r.then(t,n),Promise.resolve()):r},t.addIceCandidate=c}},shimGetUserMedia:function(e){var t=e&&e.navigator;t.getUserMedia||(t.webkitGetUserMedia?t.getUserMedia=t.webkitGetUserMedia.bind(t):t.mediaDevices&&t.mediaDevices.getUserMedia&&(t.getUserMedia=function(e,n,r){t.mediaDevices.getUserMedia(e).then(n,r)}.bind(t)))},shimRTCIceServerUrls:function(e){var t=e.RTCPeerConnection;e.RTCPeerConnection=function(e,n){if(e&&e.iceServers){for(var r=[],o=0;o=r)return e;var i=n[t];switch(t+=1,e){case"%%":return"%";case"%s":return String(i);case"%d":return Number(i);case"%v":return""}})},a=function(e,t,n){var r=[e+"="+(t.format instanceof Function?t.format(t.push?n:n[t.name]):t.format)];if(t.names)for(var i=0;i3||!n.media.every(function(e){return-1!==["video","audio","data"].indexOf(e.mid)}))return console.warn("This description does not look like Plan B."),e;var s=[];n.media.forEach(function(e){s.push(e.mid)});var c,u=!1;if(void 0!==n.groups&&Array.isArray(n.groups)&&(u=n.groups.every(function(e){return"BUNDLE"!==e.type||o.apply(e.mids.sort(),[s.sort()])})),!u)throw new Error("Cannot convert to Unified Plan because m-lines that are not bundled were found.");void 0!==this.cache[e.type]&&(c=i.parse(this.cache[e.type]));var l={audio:{},video:{}},d={},p=0,f=0;if(n.media.forEach(function(n){if(("string"!=typeof n.rtcpMux||"rtcp-mux"!==n.rtcpMux)&&"inactive"!==n.direction&&"application"!==n.type)throw new Error("Cannot convert to Unified Plan because m-lines without the rtcp-mux attribute were found.");if("application"===n.type){var i=null;return c&&c.media&&(i=c.media.find(function(e){return"application"===e.type})),void(i?d[i.mid]=i:d[n.mid]=n)}var o=n.sources,s=n.ssrcGroups,u=n.candidates,h=n.iceUfrag,m=n.icePwd,v=n.fingerprint,y=n.port;delete n.sources,delete n.ssrcGroups,delete n.candidates,delete n.iceUfrag,delete n.icePwd,delete n.fingerprint,delete n.port,delete n.mid;var g={};void 0!==s&&Array.isArray(s)&&s.forEach(function(e){"SIM"!==e.semantics&&void 0!==e.ssrcs&&Array.isArray(e.ssrcs)&&e.ssrcs.forEach(function(t){void 0===g[t]&&(g[t]=[]),g[t].push(e)})});var S={};"object"===r(o)&&Object.keys(o).forEach(function(i){var s;if("offer"!==e.type||o[i].msid)if(void 0!==g[i]&&Array.isArray(g[i])&&g[i].some(function(e){return e.ssrcs.some(function(e){if("object"===r(S[e]))return s=S[e],!0})}),"object"===r(s))s.sources[i]=o[i],delete o[i].msid;else{if(s=Object.create(n),S[i]=s,void 0!==o[i].msid&&(s.msid=o[i].msid,delete o[i].msid),s.sources={},s.sources[i]=o[i],s.ssrcGroups=g[i],void 0!==c&&void 0!==c.media&&Array.isArray(c.media)&&c.media.forEach(function(e){"object"===r(e.sources)&&Object.keys(e.sources).forEach(function(t){t===i&&(s.mid=e.mid)})}),a(s),void 0===s.mid){if("answer"===e.type)throw new Error("An unmapped SSRC was found.");s.mid=[n.type,"-",i].join("")}s.candidates=u,s.iceUfrag=h,s.icePwd=m,s.fingerprint=v,s.port=y,d[s.mid]=s,t.cache.mlU2BMap[f]=p,void 0===t.cache.mlB2UMap[p]&&(t.cache.mlB2UMap[p]=f),f++}else l[n.type][i]=o[i]}),p++}),n.media=[],s=[],"answer"===e.type)for(var h=0;h0&&null===(r=t.getFirstSendingIndexFromAnswer(e)))for(var i=0;ir){var o=n.media[r];Object.keys(l[e]).forEach(function(t){o.sources&&o.sources[t]&&console.warn("Replacing an existing SSRC."),o.sources||(o.sources={}),o.sources[t]=l[e][t]})}}}),n.groups.some(function(e){if("BUNDLE"===e.type)return e.mids=s.join(" "),!0}),n.msidSemantic={semantic:"WMS",token:"*"};var v=i.write(n);return this.cache[e.type]=v,new RTCSessionDescription({type:e.type,sdp:v})};var c={inactive:0,recvonly:1,sendonly:2,sendrecv:3}},function(e,t,n){var r=n(22);t.write=function(e,t){return void 0!==e&&void 0!==e.media&&Array.isArray(e.media)&&e.media.forEach(function(e){void 0!==e.sources&&0!==Object.keys(e.sources).length&&(e.ssrcs=[],Object.keys(e.sources).forEach(function(t){var n=e.sources[t];Object.keys(n).forEach(function(r){e.ssrcs.push({id:t,attribute:r,value:n[r]})})}),delete e.sources),void 0!==e.ssrcGroups&&Array.isArray(e.ssrcGroups)&&e.ssrcGroups.forEach(function(e){void 0!==e.ssrcs&&Array.isArray(e.ssrcs)&&(e.ssrcs=e.ssrcs.join(" "))})}),void 0!==e&&void 0!==e.groups&&Array.isArray(e.groups)&&e.groups.forEach(function(e){void 0!==e.mids&&Array.isArray(e.mids)&&(e.mids=e.mids.join(" "))}),r.write(e,t)},t.parse=function(e){var t=r.parse(e);return void 0!==t&&void 0!==t.media&&Array.isArray(t.media)&&t.media.forEach(function(e){void 0!==e.ssrcs&&Array.isArray(e.ssrcs)&&(e.sources={},e.ssrcs.forEach(function(t){e.sources[t.id]||(e.sources[t.id]={}),e.sources[t.id][t.attribute]=t.value}),delete e.ssrcs),void 0!==e.ssrcGroups&&Array.isArray(e.ssrcGroups)&&e.ssrcGroups.forEach(function(e){"string"==typeof e.ssrcs&&(e.ssrcs=e.ssrcs.split(" "))})}),void 0!==t&&void 0!==t.groups&&Array.isArray(t.groups)&&t.groups.forEach(function(e){"string"==typeof e.mids&&(e.mids=e.mids.split(" "))}),t}},function(e,t){e.exports=function e(t){if(!t)return!1;if(this.length!=t.length)return!1;for(var n=0,r=this.length;n2)return e;if(2==n&&0===r)return e;if(1===n)t=e.ssrcs[0].id;else{var i=e.ssrcGroups.filter(function(e){return"FID"===e.semantics})[0];if(!i)return e;t=parseInt(i.ssrcs.split(" ")[0])}return console.log("SdpSimulcast: current ssrc cache: ",this.ssrcCache),console.log("SdpSimulcast: parsed primary ssrc "+t),-1!==this.ssrcCache.indexOf(t)?(console.log("SdpSimulcast: Have seen primary ssrc before, filling in data from cache"),e=this._fillInSourceDataFromCache(e)):(console.log("SdpSimulcast: Have not seen primary ssrc before, generating source data"),e=this._generateSourceData(e,t)),this.ssrcCache=this._parseSimLayers(e),e},u.prototype.mungeRemoteDescription=function(e){if(!d(e))return e;var t=r.parse(e.sdp),n=this;return l(t,function(e){n.options.explodeRemoteSimulcast?(function(e){if(e&&Array.isArray(e.ssrcGroups))for(var t=o(e),n=[],r=e.ssrcGroups.length;r--;)if("SIM"===e.ssrcGroups[r].semantics){for(var i=e.ssrcGroups[r].ssrcs.split(" "),s=0;s=0)){var i=e[r];Object.keys(i).forEach(function(e){n.push({id:r,attribute:e,value:i[e]})})}})}return n},t.parseSsrcs=function(e){var t={};return void 0!==e.ssrcs&&Array.isArray(e.ssrcs)&&e.ssrcs.forEach(function(e){t[e.id]||(t[e.id]={}),t[e.id][e.attribute]=e.value}),t}},function(e,t){e.exports=function(e,t,n,r){this.blob=e,this.name=t,this.startTime=n,this.wordArray=r}},function(e,t,n){var r=n(149),i=n(150),o=n(64),a=function(){this.url=(function(){var e="config does not contain an url to a Sphinx4 https server";if(void 0===config.sphinxURL)console.log(e);else{var t=config.sphinxURL;if(void 0!==t.includes&&t.includes("https://"))return t;console.log(e)}})()};a.prototype=Object.create(r.prototype),a.constructor=a,a.prototype.sendRequest=function(e,t){console.log("sending an audio file to ".concat(this.url)),console.log("the audio file being sent: ".concat(e));var n=new XMLHttpRequest;n.onreadystatechange=function(){if(n.readyState===XMLHttpRequest.DONE&&200===n.status)t(n.responseText);else if(n.readyState===XMLHttpRequest.DONE)throw new Error("unable to accept response from sphinx server. status: ".concat(n.status))},n.open("POST",this.url),n.setRequestHeader("Content-Type",o.determineCorrectFileType()),n.send(e),console.log("send ".concat(e))},a.prototype.formatResponse=function(e){var t=JSON.parse(e).objects;t.shift();var n=[];return t.forEach(function(e){return e.filler||n.push(new i(e.word,e.start,e.end))}),n},a.prototype.verify=function(e){if(console.log("response from server:".concat(e.toString())),"string"!=typeof e)return!1;var t;try{t=JSON.parse(e)}catch(e){return console.log(e),!1}if(void 0===t.objects)return!1;var n=t.objects;return!(!n[0]||!n[0]["session-id"])},e.exports=a},function(e,t){var n=function(){throw new Error("TranscriptionService is abstract and cannot becreated")};n.prototype.send=function(e,t){var n=this;this.sendRequest(e.blob,function(r){n.verify(r)?e.wordArray=n.formatResponse(r):(console.log("the retrieved response from the server is not valid!"),e.wordArray=[]),t(e)})},n.prototype.sendRequest=function(e,t){throw new Error("TranscriptionService.sendRequest is abstract")},n.prototype.formatResponse=function(e){throw new Error("TranscriptionService.format is abstract")},n.prototype.verify=function(e){throw new Error("TranscriptionService.verify is abstract")},e.exports=n},function(e,t){var n=function(e,t,n){this.word=e,this.begin=t,this.end=n};n.prototype.getWord=function(){return this.word},n.prototype.getBeginTime=function(){return this.begin},n.prototype.getEndTime=function(){return this.end},e.exports=n}])},"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.JitsiMeetJS=t():e.JitsiMeetJS=t()},1004,[16]); -__d(function(e,t,n,r,i,o,a){!(function(e,t){"use strict";"object"==typeof i&&"object"==typeof i.exports?i.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)})("undefined"!=typeof window?window:this,function(e,t){"use strict";var n=[],r=e.document,i=Object.getPrototypeOf,o=n.slice,a=n.concat,s=n.push,u=n.indexOf,l={},c=l.toString,f=l.hasOwnProperty,p=f.toString,d=p.call(Object),h={},g=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},v=function(e){return null!=e&&e===e.window},y={type:!0,src:!0,nonce:!0,noModule:!0};function m(e,t,n){var i,o,a=(n=n||r).createElement("script");if(a.text=e,t)for(i in y)(o=t[i]||t.getAttribute&&t.getAttribute(i))&&a.setAttribute(i,o);n.head.appendChild(a).parentNode.removeChild(a)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[c.call(e)]||"object":typeof e}var b=function e(t,n){return new e.fn.init(t,n)},w=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function T(e){var t=!!e&&"length"in e&&e.length,n=x(e);return!g(e)&&!v(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}b.fn=b.prototype={jquery:"3.4.0",constructor:b,length:0,toArray:function(){return o.call(this)},get:function(e){return null==e?o.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=b.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return b.each(this,e)},map:function(e){return this.pushStack(b.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(o.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n+~]|[\\x20\\t\\r\\n\\f])[\\x20\\t\\r\\n\\f]*"),F=new RegExp("[\\x20\\t\\r\\n\\f]|>"),B=new RegExp(R),_=new RegExp("^(?:\\\\.|[\\w-]|[^\0-\\xa0])+$"),z={ID:new RegExp("^#((?:\\\\.|[\\w-]|[^\0-\\xa0])+)"),CLASS:new RegExp("^\\.((?:\\\\.|[\\w-]|[^\0-\\xa0])+)"),TAG:new RegExp("^((?:\\\\.|[\\w-]|[^\0-\\xa0])+|[*])"),ATTR:new RegExp("^\\[[\\x20\\t\\r\\n\\f]*((?:\\\\.|[\\w-]|[^\0-\\xa0])+)(?:[\\x20\\t\\r\\n\\f]*([*^$|!~]?=)[\\x20\\t\\r\\n\\f]*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|((?:\\\\.|[\\w-]|[^\0-\\xa0])+))|)[\\x20\\t\\r\\n\\f]*\\]"),PSEUDO:new RegExp("^:((?:\\\\.|[\\w-]|[^\0-\\xa0])+)(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|\\[[\\x20\\t\\r\\n\\f]*((?:\\\\.|[\\w-]|[^\0-\\xa0])+)(?:[\\x20\\t\\r\\n\\f]*([*^$|!~]?=)[\\x20\\t\\r\\n\\f]*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|((?:\\\\.|[\\w-]|[^\0-\\xa0])+))|)[\\x20\\t\\r\\n\\f]*\\])*)|.*)\\)|)"),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\([\\x20\\t\\r\\n\\f]*(even|odd|(([+-]|)(\\d*)n|)[\\x20\\t\\r\\n\\f]*(?:([+-]|)[\\x20\\t\\r\\n\\f]*(\\d+)|))[\\x20\\t\\r\\n\\f]*\\)|)","i"),bool:new RegExp("^(?:checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped)$","i"),needsContext:new RegExp("^[\\x20\\t\\r\\n\\f]*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\([\\x20\\t\\r\\n\\f]*((?:-\\d)?\\d*)[\\x20\\t\\r\\n\\f]*\\)|)(?=[^-]|$)","i")},U=/HTML$/i,X=/^(?:input|select|textarea|button)$/i,V=/^h\d$/i,G=/^[^{]+\{\s*\[native \w/,Y=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,Q=/[+~]/,J=new RegExp("\\\\([\\da-f]{1,6}[\\x20\\t\\r\\n\\f]?|([\\x20\\t\\r\\n\\f])|.)","ig"),K=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},Z=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ee=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},te=function(){p()},ne=ve(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(j=O.call(w.childNodes),w.childNodes),j[w.childNodes.length].nodeType}catch(e){H={apply:j.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}function re(e,t,r,i){var o,s,l,c,f,h,y,m=t&&t.ownerDocument,T=t?t.nodeType:9;if(r=r||[],"string"!=typeof e||!e||1!==T&&9!==T&&11!==T)return r;if(!i&&((t?t.ownerDocument||t:w)!==d&&p(t),t=t||d,g)){if(11!==T&&(f=Y.exec(e)))if(o=f[1]){if(9===T){if(!(l=t.getElementById(o)))return r;if(l.id===o)return r.push(l),r}else if(m&&(l=m.getElementById(o))&&x(t,l)&&l.id===o)return r.push(l),r}else{if(f[2])return H.apply(r,t.getElementsByTagName(e)),r;if((o=f[3])&&n.getElementsByClassName&&t.getElementsByClassName)return H.apply(r,t.getElementsByClassName(o)),r}if(n.qsa&&!A[e+" "]&&(!v||!v.test(e))&&(1!==T||"object"!==t.nodeName.toLowerCase())){if(y=e,m=t,1===T&&F.test(e)){for((c=t.getAttribute("id"))?c=c.replace(Z,ee):t.setAttribute("id",c=b),s=(h=a(e)).length;s--;)h[s]="#"+c+" "+ge(h[s]);y=h.join(","),m=Q.test(e)&&de(t.parentNode)||t}try{return H.apply(r,m.querySelectorAll(y)),r}catch(t){A(e,!0)}finally{c===b&&t.removeAttribute("id")}}}return u(e.replace(I,"$1"),t,r,i)}function ie(){var e=[];return function t(n,i){return e.push(n+" ")>r.cacheLength&&delete t[e.shift()],t[n+" "]=i}}function oe(e){return e[b]=!0,e}function ae(e){var t=d.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function se(e,t){for(var n=e.split("|"),i=n.length;i--;)r.attrHandle[n[i]]=t}function ue(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function le(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}function ce(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function fe(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&ne(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function pe(e){return oe(function(t){return t=+t,oe(function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function de(e){return e&&void 0!==e.getElementsByTagName&&e}for(t in n=re.support={},o=re.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!U.test(t||n&&n.nodeName||"HTML")},p=re.setDocument=function(e){var t,i,a=e?e.ownerDocument||e:w;return a!==d&&9===a.nodeType&&a.documentElement?(h=(d=a).documentElement,g=!o(d),w!==d&&(i=d.defaultView)&&i.top!==i&&(i.addEventListener?i.addEventListener("unload",te,!1):i.attachEvent&&i.attachEvent("onunload",te)),n.attributes=ae(function(e){return e.className="i",!e.getAttribute("className")}),n.getElementsByTagName=ae(function(e){return e.appendChild(d.createComment("")),!e.getElementsByTagName("*").length}),n.getElementsByClassName=G.test(d.getElementsByClassName),n.getById=ae(function(e){return h.appendChild(e).id=b,!d.getElementsByName||!d.getElementsByName(b).length}),n.getById?(r.filter.ID=function(e){var t=e.replace(J,K);return function(e){return e.getAttribute("id")===t}},r.find.ID=function(e,t){if(void 0!==t.getElementById&&g){var n=t.getElementById(e);return n?[n]:[]}}):(r.filter.ID=function(e){var t=e.replace(J,K);return function(e){var n=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},r.find.ID=function(e,t){if(void 0!==t.getElementById&&g){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];for(i=t.getElementsByName(e),r=0;o=i[r++];)if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),r.find.TAG=n.getElementsByTagName?function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):n.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},r.find.CLASS=n.getElementsByClassName&&function(e,t){if(void 0!==t.getElementsByClassName&&g)return t.getElementsByClassName(e)},y=[],v=[],(n.qsa=G.test(d.querySelectorAll))&&(ae(function(e){h.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]=[\\x20\\t\\r\\n\\f]*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\[[\\x20\\t\\r\\n\\f]*(?:value|checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped)"),e.querySelectorAll("[id~="+b+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+b+"+*").length||v.push(".#.+[+~]")}),ae(function(e){e.innerHTML="";var t=d.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name[\\x20\\t\\r\\n\\f]*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),h.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(n.matchesSelector=G.test(m=h.matches||h.webkitMatchesSelector||h.mozMatchesSelector||h.oMatchesSelector||h.msMatchesSelector))&&ae(function(e){n.disconnectedMatch=m.call(e,"*"),m.call(e,"[s!='']:x"),y.push("!=",R)}),v=v.length&&new RegExp(v.join("|")),y=y.length&&new RegExp(y.join("|")),t=G.test(h.compareDocumentPosition),x=t||G.test(h.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},N=t?function(e,t){if(e===t)return f=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r||(1&(r=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!n.sortDetached&&t.compareDocumentPosition(e)===r?e===d||e.ownerDocument===w&&x(w,e)?-1:t===d||t.ownerDocument===w&&x(w,t)?1:c?P(c,e)-P(c,t):0:4&r?-1:1)}:function(e,t){if(e===t)return f=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===d?-1:t===d?1:i?-1:o?1:c?P(c,e)-P(c,t):0;if(i===o)return ue(e,t);for(n=e;n=n.parentNode;)a.unshift(n);for(n=t;n=n.parentNode;)s.unshift(n);for(;a[r]===s[r];)r++;return r?ue(a[r],s[r]):a[r]===w?-1:s[r]===w?1:0},d):d},re.matches=function(e,t){return re(e,null,null,t)},re.matchesSelector=function(e,t){if((e.ownerDocument||e)!==d&&p(e),n.matchesSelector&&g&&!A[t+" "]&&(!y||!y.test(t))&&(!v||!v.test(t)))try{var r=m.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){A(t,!0)}return re(t,d,null,[e]).length>0},re.contains=function(e,t){return(e.ownerDocument||e)!==d&&p(e),x(e,t)},re.attr=function(e,t){(e.ownerDocument||e)!==d&&p(e);var i=r.attrHandle[t.toLowerCase()],o=i&&D.call(r.attrHandle,t.toLowerCase())?i(e,t,!g):void 0;return void 0!==o?o:n.attributes||!g?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null},re.escape=function(e){return(e+"").replace(Z,ee)},re.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},re.uniqueSort=function(e){var t,r=[],i=0,o=0;if(f=!n.detectDuplicates,c=!n.sortStable&&e.slice(0),e.sort(N),f){for(;t=e[o++];)t===e[o]&&(i=r.push(o));for(;i--;)e.splice(r[i],1)}return c=null,e},i=re.getText=function(e){var t,n="",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=i(e)}else if(3===o||4===o)return e.nodeValue}else for(;t=e[r++];)n+=i(t);return n},(r=re.selectors={cacheLength:50,createPseudo:oe,match:z,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(J,K),e[3]=(e[3]||e[4]||e[5]||"").replace(J,K),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||re.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&re.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return z.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&B.test(n)&&(t=a(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(J,K).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=E[e+" "];return t||(t=new RegExp("(^|[\\x20\\t\\r\\n\\f])"+e+"([\\x20\\t\\r\\n\\f]|$)"))&&E(e,function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=re.attr(r,e);return null==i?"!="===t:!t||(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i.replace(M," ")+" ").indexOf(n)>-1:"|="===t&&(i===n||i.slice(0,n.length+1)===n+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,f,p,d,h,g=o!==a?"nextSibling":"previousSibling",v=t.parentNode,y=s&&t.nodeName.toLowerCase(),m=!u&&!s,x=!1;if(v){if(o){for(;g;){for(p=t;p=p[g];)if(s?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?v.firstChild:v.lastChild],a&&m){for(x=(d=(l=(c=(f=(p=v)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1])&&l[2],p=d&&v.childNodes[d];p=++d&&p&&p[g]||(x=d=0)||h.pop();)if(1===p.nodeType&&++x&&p===t){c[e]=[T,d,x];break}}else if(m&&(x=d=(l=(c=(f=(p=t)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1]),!1===x)for(;(p=++d&&p&&p[g]||(x=d=0)||h.pop())&&((s?p.nodeName.toLowerCase()!==y:1!==p.nodeType)||!++x||(m&&((c=(f=p[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]=[T,x]),p!==t)););return(x-=i)===r||x%r==0&&x/r>=0}}},PSEUDO:function(e,t){var n,i=r.pseudos[e]||r.setFilters[e.toLowerCase()]||re.error("unsupported pseudo: "+e);return i[b]?i(t):i.length>1?(n=[e,e,"",t],r.setFilters.hasOwnProperty(e.toLowerCase())?oe(function(e,n){for(var r,o=i(e,t),a=o.length;a--;)e[r=P(e,o[a])]=!(n[r]=o[a])}):function(e){return i(e,0,n)}):i}},pseudos:{not:oe(function(e){var t=[],n=[],r=s(e.replace(I,"$1"));return r[b]?oe(function(e,t,n,i){for(var o,a=r(e,null,i,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),t[0]=null,!n.pop()}}),has:oe(function(e){return function(t){return re(e,t).length>0}}),contains:oe(function(e){return e=e.replace(J,K),function(t){return(t.textContent||i(t)).indexOf(e)>-1}}),lang:oe(function(e){return _.test(e||"")||re.error("unsupported lang: "+e),e=e.replace(J,K).toLowerCase(),function(t){var n;do{if(n=g?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===h},focus:function(e){return e===d.activeElement&&(!d.hasFocus||d.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:fe(!1),disabled:fe(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!r.pseudos.empty(e)},header:function(e){return V.test(e.nodeName)},input:function(e){return X.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:pe(function(){return[0]}),last:pe(function(e,t){return[t-1]}),eq:pe(function(e,t,n){return[n<0?n+t:n]}),even:pe(function(e,t){for(var n=0;nt?t:n;--r>=0;)e.push(r);return e}),gt:pe(function(e,t,n){for(var r=n<0?n+t:n;++r1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function me(e,t,n){for(var r=0,i=t.length;r-1&&(o[l]=!(a[l]=f))}}else y=xe(y===a?y.splice(h,y.length):y),i?i(null,a,y,u):H.apply(a,y)})}function we(e){for(var t,n,i,o=e.length,a=r.relative[e[0].type],s=a||r.relative[" "],u=a?1:0,c=ve(function(e){return e===t},s,!0),f=ve(function(e){return P(t,e)>-1},s,!0),p=[function(e,n,r){var i=!a&&(r||n!==l)||((t=n).nodeType?c(e,n,r):f(e,n,r));return t=null,i}];u1&&ye(p),u>1&&ge(e.slice(0,u-1).concat({value:" "===e[u-2].type?"*":""})).replace(I,"$1"),n,u0,i=e.length>0,o=function(o,a,s,u,c){var f,h,v,y=0,m="0",x=o&&[],b=[],w=l,C=o||i&&r.find.TAG("*",c),E=T+=null==w?1:Math.random()||.1,k=C.length;for(c&&(l=a===d||a||c);m!==k&&null!=(f=C[m]);m++){if(i&&f){for(h=0,a||f.ownerDocument===d||(p(f),s=!g);v=e[h++];)if(v(f,a||d,s)){u.push(f);break}c&&(T=E)}n&&((f=!v&&f)&&y--,o&&x.push(f))}if(y+=m,n&&m!==y){for(h=0;v=t[h++];)v(x,b,a,s);if(o){if(y>0)for(;m--;)x[m]||b[m]||(b[m]=q.call(u));b=xe(b)}H.apply(u,b),c&&!o&&b.length>0&&y+t.length>1&&re.uniqueSort(u)}return c&&(T=E,l=w),x};return n?oe(o):o}return he.prototype=r.filters=r.pseudos,r.setFilters=new he,a=re.tokenize=function(e,t){var n,i,o,a,s,u,l,c=k[e+" "];if(c)return t?0:c.slice(0);for(s=e,u=[],l=r.preFilter;s;){for(a in n&&!(i=W.exec(s))||(i&&(s=s.slice(i[0].length)||s),u.push(o=[])),n=!1,(i=$.exec(s))&&(n=i.shift(),o.push({value:n,type:i[0].replace(I," ")}),s=s.slice(n.length)),r.filter)!(i=z[a].exec(s))||l[a]&&!(i=l[a](i))||(n=i.shift(),o.push({value:n,type:a,matches:i}),s=s.slice(n.length));if(!n)break}return t?s.length:s?re.error(e):k(e,u).slice(0)},s=re.compile=function(e,t){var n,r=[],i=[],o=S[e+" "];if(!o){for(t||(t=a(e)),n=t.length;n--;)(o=we(t[n]))[b]?r.push(o):i.push(o);(o=S(e,Te(i,r))).selector=e}return o},u=re.select=function(e,t,n,i){var o,u,l,c,f,p="function"==typeof e&&e,d=!i&&a(e=p.selector||e);if(n=n||[],1===d.length){if((u=d[0]=d[0].slice(0)).length>2&&"ID"===(l=u[0]).type&&9===t.nodeType&&g&&r.relative[u[1].type]){if(!(t=(r.find.ID(l.matches[0].replace(J,K),t)||[])[0]))return n;p&&(t=t.parentNode),e=e.slice(u.shift().value.length)}for(o=z.needsContext.test(e)?0:u.length;o--&&(l=u[o],!r.relative[c=l.type]);)if((f=r.find[c])&&(i=f(l.matches[0].replace(J,K),Q.test(u[0].type)&&de(t.parentNode)||t))){if(u.splice(o,1),!(e=i.length&&ge(u)))return H.apply(n,i),n;break}}return(p||s(e,d))(i,t,!g,n,!t||Q.test(e)&&de(t.parentNode)||t),n},n.sortStable=b.split("").sort(N).join("")===b,n.detectDuplicates=!!f,p(),n.sortDetached=ae(function(e){return 1&e.compareDocumentPosition(d.createElement("fieldset"))}),ae(function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")})||se("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),n.attributes&&ae(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||se("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ae(function(e){return null==e.getAttribute("disabled")})||se("checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),re})(e);b.find=C,b.expr=C.selectors,b.expr[":"]=b.expr.pseudos,b.uniqueSort=b.unique=C.uniqueSort,b.text=C.getText,b.isXMLDoc=C.isXML,b.contains=C.contains,b.escapeSelector=C.escape;var E=function(e,t,n){for(var r=[],i=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(i&&b(e).is(n))break;r.push(e)}return r},k=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},S=b.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var N=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function D(e,t,n){return g(t)?b.grep(e,function(e,r){return!!t.call(e,r,e)!==n}):t.nodeType?b.grep(e,function(e){return e===t!==n}):"string"!=typeof t?b.grep(e,function(e){return u.call(t,e)>-1!==n}):b.filter(t,e,n)}b.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?b.find.matchesSelector(r,e)?[r]:[]:b.find.matches(e,b.grep(t,function(e){return 1===e.nodeType}))},b.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(b(e).filter(function(){for(t=0;t1?b.uniqueSort(n):n},filter:function(e){return this.pushStack(D(this,e||[],!1))},not:function(e){return this.pushStack(D(this,e||[],!0))},is:function(e){return!!D(this,"string"==typeof e&&S.test(e)?b(e):e||[],!1).length}});var j,q=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(b.fn.init=function(e,t,n){var i,o;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(i="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:q.exec(e))||!i[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(i[1]){if(t=t instanceof b?t[0]:t,b.merge(this,b.parseHTML(i[1],t&&t.nodeType?t.ownerDocument||t:r,!0)),N.test(i[1])&&b.isPlainObject(t))for(i in t)g(this[i])?this[i](t[i]):this.attr(i,t[i]);return this}return(o=r.getElementById(i[2]))&&(this[0]=o,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):g(e)?void 0!==n.ready?n.ready(e):e(b):b.makeArray(e,this)}).prototype=b.fn,j=b(r);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}b.fn.extend({has:function(e){var t=b(e,this),n=t.length;return this.filter(function(){for(var e=0;e-1:1===n.nodeType&&b.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?b.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?u.call(b(e),this[0]):u.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(b.uniqueSort(b.merge(this.get(),b(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),b.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return E(e,"parentNode")},parentsUntil:function(e,t,n){return E(e,"parentNode",n)},next:function(e){return O(e,"nextSibling")},prev:function(e){return O(e,"previousSibling")},nextAll:function(e){return E(e,"nextSibling")},prevAll:function(e){return E(e,"previousSibling")},nextUntil:function(e,t,n){return E(e,"nextSibling",n)},prevUntil:function(e,t,n){return E(e,"previousSibling",n)},siblings:function(e){return k((e.parentNode||{}).firstChild,e)},children:function(e){return k(e.firstChild)},contents:function(e){return void 0!==e.contentDocument?e.contentDocument:(A(e,"template")&&(e=e.content||e),b.merge([],e.childNodes))}},function(e,t){b.fn[e]=function(n,r){var i=b.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=b.filter(r,i)),this.length>1&&(H[e]||b.uniqueSort(i),L.test(e)&&i.reverse()),this.pushStack(i)}});var P=/[^\x20\t\r\n\f]+/g;function R(e){var t={};return b.each(e.match(P)||[],function(e,n){t[n]=!0}),t}function M(e){return e}function I(e){throw e}function W(e,t,n,r){var i;try{e&&g(i=e.promise)?i.call(e).done(t).fail(n):e&&g(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}b.Callbacks=function(e){e="string"==typeof e?R(e):b.extend({},e);var t,n,r,i,o=[],a=[],s=-1,u=function(){for(i=i||e.once,r=t=!0;a.length;s=-1)for(n=a.shift();++s-1;)o.splice(n,1),n<=s&&s--}),this},has:function(e){return e?b.inArray(e,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=a=[],o=n="",this},disabled:function(){return!o},lock:function(){return i=a=[],n||t||(o=n=""),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=[e,(n=n||[]).slice?n.slice():n],a.push(n),t||u()),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!r}};return l},b.extend({Deferred:function(t){var n=[["notify","progress",b.Callbacks("memory"),b.Callbacks("memory"),2],["resolve","done",b.Callbacks("once memory"),b.Callbacks("once memory"),0,"resolved"],["reject","fail",b.Callbacks("once memory"),b.Callbacks("once memory"),1,"rejected"]],r="pending",i={state:function(){return r},always:function(){return o.done(arguments).fail(arguments),this},catch:function(e){return i.then(null,e)},pipe:function(){var e=arguments;return b.Deferred(function(t){b.each(n,function(n,r){var i=g(e[r[4]])&&e[r[4]];o[r[1]](function(){var e=i&&i.apply(this,arguments);e&&g(e.promise)?e.promise().progress(t.notify).done(t.resolve).fail(t.reject):t[r[0]+"With"](this,i?[e]:arguments)})}),e=null}).promise()},then:function(t,r,i){var o=0;function a(t,n,r,i){return function(){var s=this,u=arguments,l=function(){var e,l;if(!(t=o&&(r!==I&&(s=void 0,u=[e]),n.rejectWith(s,u))}};t?c():(b.Deferred.getStackHook&&(c.stackTrace=b.Deferred.getStackHook()),e.setTimeout(c))}}return b.Deferred(function(e){n[0][3].add(a(0,e,g(i)?i:M,e.notifyWith)),n[1][3].add(a(0,e,g(t)?t:M)),n[2][3].add(a(0,e,g(r)?r:I))}).promise()},promise:function(e){return null!=e?b.extend(e,i):i}},o={};return b.each(n,function(e,t){var a=t[2],s=t[5];i[t[1]]=a.add,s&&a.add(function(){r=s},n[3-e][2].disable,n[3-e][3].disable,n[0][2].lock,n[0][3].lock),a.add(t[3].fire),o[t[0]]=function(){return o[t[0]+"With"](this===o?void 0:this,arguments),this},o[t[0]+"With"]=a.fireWith}),i.promise(o),t&&t.call(o,o),o},when:function(e){var t=arguments.length,n=t,r=Array(n),i=o.call(arguments),a=b.Deferred(),s=function(e){return function(n){r[e]=this,i[e]=arguments.length>1?o.call(arguments):n,--t||a.resolveWith(r,i)}};if(t<=1&&(W(e,a.done(s(n)).resolve,a.reject,!t),"pending"===a.state()||g(i[n]&&i[n].then)))return a.then();for(;n--;)W(i[n],s(n),a.reject);return a.promise()}});var $=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;b.Deferred.exceptionHook=function(t,n){e.console&&e.console.warn&&t&&$.test(t.name)&&e.console.warn("jQuery.Deferred exception: "+t.message,t.stack,n)},b.readyException=function(t){e.setTimeout(function(){throw t})};var F=b.Deferred();function B(){r.removeEventListener("DOMContentLoaded",B),e.removeEventListener("load",B),b.ready()}b.fn.ready=function(e){return F.then(e).catch(function(e){b.readyException(e)}),this},b.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--b.readyWait:b.isReady)||(b.isReady=!0,!0!==e&&--b.readyWait>0||F.resolveWith(r,[b]))}}),b.ready.then=F.then,"complete"===r.readyState||"loading"!==r.readyState&&!r.documentElement.doScroll?e.setTimeout(b.ready):(r.addEventListener("DOMContentLoaded",B),e.addEventListener("load",B));var _=function e(t,n,r,i,o,a,s){var u=0,l=t.length,c=null==r;if("object"===x(r))for(u in o=!0,r)e(t,n,u,r[u],!0,a,s);else if(void 0!==i&&(o=!0,g(i)||(s=!0),c&&(s?(n.call(t,i),n=null):(c=n,n=function(e,t,n){return c.call(b(e),n)})),n))for(;u1,null,!0)},removeData:function(e){return this.each(function(){J.remove(this,e)})}}),b.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Q.get(e,t),n&&(!r||Array.isArray(n)?r=Q.access(e,t,b.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=b.queue(e,t),r=n.length,i=n.shift(),o=b._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){b.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Q.get(e,n)||Q.access(e,n,{empty:b.Callbacks("once memory").add(function(){Q.remove(e,[t+"queue",n])})})}}),b.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length\x20\t\r\n\f]*)/i,ve=/^$|^module$|\/(?:java|ecma)script/i,ye={option:[1,""],thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};function me(e,t){var n;return n=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||"*"):void 0!==e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?b.merge([e],n):n}function xe(e,t){for(var n=0,r=e.length;n-1)i&&i.push(o);else if(l=ae(o),a=me(f.appendChild(o),"script"),l&&xe(a),n)for(c=0;o=a[c++];)ve.test(o.type||"")&&n.push(o);return f}be=r.createDocumentFragment().appendChild(r.createElement("div")),(we=r.createElement("input")).setAttribute("type","radio"),we.setAttribute("checked","checked"),we.setAttribute("name","t"),be.appendChild(we),h.checkClone=be.cloneNode(!0).cloneNode(!0).lastChild.checked,be.innerHTML="",h.noCloneChecked=!!be.cloneNode(!0).lastChild.defaultValue;var Ee=/^key/,ke=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Se=/^([^.]*)(?:\.(.+)|)/;function Ae(){return!0}function Ne(){return!1}function De(e,t){return e===je()==("focus"===t)}function je(){try{return r.activeElement}catch(e){}}function qe(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)qe(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Ne;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return b().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=b.guid++)),e.each(function(){b.event.add(this,t,i,r,n)})}function Le(e,t,n){n?(Q.set(e,t,!1),b.event.add(e,t,{namespace:!1,handler:function(e){var r,i,a=Q.get(this,t);if(1&e.isTrigger&&this[t]){if(a)(b.event.special[t]||{}).delegateType&&e.stopPropagation();else if(a=o.call(arguments),Q.set(this,t,a),r=n(this,t),this[t](),a!==(i=Q.get(this,t))||r?Q.set(this,t,!1):i=void 0,a!==i)return e.stopImmediatePropagation(),e.preventDefault(),i}else a&&(Q.set(this,t,b.event.trigger(b.extend(a.shift(),b.Event.prototype),a,this)),e.stopImmediatePropagation())}})):b.event.add(e,t,Ae)}b.event={global:{},add:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(e);if(v)for(n.handler&&(n=(o=n).handler,i=o.selector),i&&b.find.matchesSelector(oe,i),n.guid||(n.guid=b.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(t){return void 0!==b&&b.event.triggered!==t.type?b.event.dispatch.apply(e,arguments):void 0}),l=(t=(t||"").match(P)||[""]).length;l--;)d=g=(s=Se.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=b.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=b.event.special[d]||{},c=b.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&b.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(e,r,h,a)||e.addEventListener&&e.addEventListener(d,a)),f.add&&(f.add.call(e,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),b.event.global[d]=!0)},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){for(l=(t=(t||"").match(P)||[""]).length;l--;)if(d=g=(s=Se.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){for(f=b.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;o--;)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||b.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)b.event.remove(e,d+t[l],n,r,!0);b.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=b.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=b.event.special[s.type]||{};for(u[0]=s,t=1;t=1))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n-1:b.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u\x20\t\r\n\f]*)[^>]*)\/>/gi,Oe=/\s*$/g;function Me(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&b(e).children("tbody")[0]||e}function Ie(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function We(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function $e(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n1&&"string"==typeof v&&!h.checkClone&&Pe.test(v))return e.each(function(i){var o=e.eq(i);y&&(t[0]=v.call(this,i,o.html())),Fe(o,t,n,r)});if(p&&(o=(i=Ce(t,e[0].ownerDocument,!1,e,r)).firstChild,1===i.childNodes.length&&(i=o),o||r)){for(u=(s=b.map(me(i,"script"),Ie)).length;f")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=ae(e);if(!(h.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||b.isXMLDoc(e)))for(a=me(c),r=0,i=(o=me(e)).length;r0&&xe(a,!f&&me(e,"script")),c},cleanData:function(e){for(var t,n,r,i=b.event.special,o=0;void 0!==(n=e[o]);o++)if(G(n)){if(t=n[Q.expando]){if(t.events)for(r in t.events)i[r]?b.event.remove(n,r):b.removeEvent(n,r,t.handle);n[Q.expando]=void 0}n[J.expando]&&(n[J.expando]=void 0)}}}),b.fn.extend({detach:function(e){return Be(this,e,!0)},remove:function(e){return Be(this,e)},text:function(e){return _(this,function(e){return void 0===e?b.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Fe(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Me(this,e).appendChild(e)})},prepend:function(){return Fe(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Me(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Fe(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Fe(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(b.cleanData(me(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return b.clone(this,e,t)})},html:function(e){return _(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Oe.test(e)&&!ye[(ge.exec(e)||["",""])[1].toLowerCase()]){e=b.htmlPrefilter(e);try{for(;n=0&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function ot(e,t,n){var r=ze(e),i=(!h.boxSizingReliable()||n)&&"border-box"===b.css(e,"boxSizing",!1,r),o=i,a=Xe(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if(_e.test(a)){if(!n)return a;a="auto"}return(!h.boxSizingReliable()&&i||"auto"===a||!parseFloat(a)&&"inline"===b.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===b.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+it(e,t,n||(i?"border":"content"),o,r,a)+"px"}function at(e,t,n,r,i){return new at.prototype.init(e,t,n,r,i)}b.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Xe(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=V(t),u=et.test(t),l=e.style;if(u||(t=Ke(s)),a=b.cssHooks[t]||b.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=re.exec(n))&&i[1]&&(n=ce(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(b.cssNumber[s]?"":"px")),h.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=V(t);return et.test(t)||(t=Ke(s)),(a=b.cssHooks[t]||b.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Xe(e,t,r)),"normal"===i&&t in nt&&(i=nt[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),b.each(["height","width"],function(e,t){b.cssHooks[t]={get:function(e,n,r){if(n)return!Ze.test(b.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?ot(e,t,r):le(e,tt,function(){return ot(e,t,r)})},set:function(e,n,r){var i,o=ze(e),a=!h.scrollboxSize()&&"absolute"===o.position,s=(a||r)&&"border-box"===b.css(e,"boxSizing",!1,o),u=r?it(e,t,r,s,o):0;return s&&a&&(u-=Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-parseFloat(o[t])-it(e,t,"border",!1,o)-.5)),u&&(i=re.exec(n))&&"px"!==(i[3]||"px")&&(e.style[t]=n,n=b.css(e,t)),rt(0,n,u)}}}),b.cssHooks.marginLeft=Ve(h.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Xe(e,"marginLeft"))||e.getBoundingClientRect().left-le(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),b.each({margin:"",padding:"",border:"Width"},function(e,t){b.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+ie[r]+t]=o[r]||o[r-2]||o[0];return i}},"margin"!==e&&(b.cssHooks[e+t].set=rt)}),b.fn.extend({css:function(e,t){return _(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=ze(e),i=t.length;a1)}}),b.Tween=at,at.prototype={constructor:at,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||b.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(b.cssNumber[n]?"":"px")},cur:function(){var e=at.propHooks[this.prop];return e&&e.get?e.get(this):at.propHooks._default.get(this)},run:function(e){var t,n=at.propHooks[this.prop];return this.options.duration?this.pos=t=b.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):at.propHooks._default.set(this),this}},at.prototype.init.prototype=at.prototype,at.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=b.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){b.fx.step[e.prop]?b.fx.step[e.prop](e):1!==e.elem.nodeType||!b.cssHooks[e.prop]&&null==e.elem.style[Ke(e.prop)]?e.elem[e.prop]=e.now:b.style(e.elem,e.prop,e.now+e.unit)}}},at.propHooks.scrollTop=at.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},b.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},b.fx=at.prototype.init,b.fx.step={};var st,ut,lt=/^(?:toggle|show|hide)$/,ct=/queueHooks$/;function ft(){ut&&(!1===r.hidden&&e.requestAnimationFrame?e.requestAnimationFrame(ft):e.setTimeout(ft,b.fx.interval),b.fx.tick())}function pt(){return e.setTimeout(function(){st=void 0}),st=Date.now()}function dt(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=ie[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function ht(e,t,n){for(var r,i=(vt.tweeners[t]||[]).concat(vt.tweeners["*"]),o=0,a=i.length;o1)},removeAttr:function(e){return this.each(function(){b.removeAttr(this,e)})}}),b.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return void 0===e.getAttribute?b.prop(e,t,n):(1===o&&b.isXMLDoc(e)||(i=b.attrHooks[t.toLowerCase()]||(b.expr.match.bool.test(t)?yt:void 0)),void 0!==n?null===n?void b.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=b.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!h.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(P);if(i&&1===e.nodeType)for(;n=i[r++];)e.removeAttribute(n)}}),yt={set:function(e,t,n){return!1===t?b.removeAttr(e,n):e.setAttribute(n,n),n}},b.each(b.expr.match.bool.source.match(/\w+/g),function(e,t){var n=mt[t]||b.find.attr;mt[t]=function(e,t,r){var i,o,a=t.toLowerCase();return r||(o=mt[a],mt[a]=i,i=null!=n(e,t,r)?a:null,mt[a]=o),i}});var xt=/^(?:input|select|textarea|button)$/i,bt=/^(?:a|area)$/i;function wt(e){return(e.match(P)||[]).join(" ")}function Tt(e){return e.getAttribute&&e.getAttribute("class")||""}function Ct(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(P)||[]}b.fn.extend({prop:function(e,t){return _(this,b.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[b.propFix[e]||e]})}}),b.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&b.isXMLDoc(e)||(t=b.propFix[t]||t,i=b.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=b.find.attr(e,"tabindex");return t?parseInt(t,10):xt.test(e.nodeName)||bt.test(e.nodeName)&&e.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),h.optSelected||(b.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),b.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){b.propFix[this.toLowerCase()]=this}),b.fn.extend({addClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){b(this).addClass(e.call(this,t,Tt(this)))});if((t=Ct(e)).length)for(;n=this[u++];)if(i=Tt(n),r=1===n.nodeType&&" "+wt(i)+" "){for(a=0;o=t[a++];)r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=wt(r))&&n.setAttribute("class",s)}return this},removeClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){b(this).removeClass(e.call(this,t,Tt(this)))});if(!arguments.length)return this.attr("class","");if((t=Ct(e)).length)for(;n=this[u++];)if(i=Tt(n),r=1===n.nodeType&&" "+wt(i)+" "){for(a=0;o=t[a++];)for(;r.indexOf(" "+o+" ")>-1;)r=r.replace(" "+o+" "," ");i!==(s=wt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(e,t){var n=typeof e,r="string"===n||Array.isArray(e);return"boolean"==typeof t&&r?t?this.addClass(e):this.removeClass(e):g(e)?this.each(function(n){b(this).toggleClass(e.call(this,n,Tt(this),t),t)}):this.each(function(){var t,i,o,a;if(r)for(i=0,o=b(this),a=Ct(e);t=a[i++];)o.hasClass(t)?o.removeClass(t):o.addClass(t);else void 0!==e&&"boolean"!==n||((t=Tt(this))&&Q.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||!1===e?"":Q.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;for(t=" "+e+" ";n=this[r++];)if(1===n.nodeType&&(" "+wt(Tt(n))+" ").indexOf(t)>-1)return!0;return!1}});var Et=/\r/g;b.fn.extend({val:function(e){var t,n,r,i=this[0];return arguments.length?(r=g(e),this.each(function(n){var i;1===this.nodeType&&(null==(i=r?e.call(this,n,b(this).val()):e)?i="":"number"==typeof i?i+="":Array.isArray(i)&&(i=b.map(i,function(e){return null==e?"":e+""})),(t=b.valHooks[this.type]||b.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))})):i?(t=b.valHooks[i.type]||b.valHooks[i.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:"string"==typeof(n=i.value)?n.replace(Et,""):null==n?"":n:void 0}}),b.extend({valHooks:{option:{get:function(e){var t=b.find.attr(e,"value");return null!=t?t:wt(b.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r-1)&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),b.each(["radio","checkbox"],function(){b.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=b.inArray(b(e).val(),t)>-1}},h.checkOn||(b.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),h.focusin="onfocusin"in e;var kt=/^(?:focusinfocus|focusoutblur)$/,St=function(e){e.stopPropagation()};b.extend(b.event,{trigger:function(t,n,i,o){var a,s,u,l,c,p,d,h,y=[i||r],m=f.call(t,"type")?t.type:t,x=f.call(t,"namespace")?t.namespace.split("."):[];if(s=h=u=i=i||r,3!==i.nodeType&&8!==i.nodeType&&!kt.test(m+b.event.triggered)&&(m.indexOf(".")>-1&&(m=(x=m.split(".")).shift(),x.sort()),c=m.indexOf(":")<0&&"on"+m,(t=t[b.expando]?t:new b.Event(m,"object"==typeof t&&t)).isTrigger=o?2:3,t.namespace=x.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+x.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=i),n=null==n?[t]:b.makeArray(n,[t]),d=b.event.special[m]||{},o||!d.trigger||!1!==d.trigger.apply(i,n))){if(!o&&!d.noBubble&&!v(i)){for(l=d.delegateType||m,kt.test(l+m)||(s=s.parentNode);s;s=s.parentNode)y.push(s),u=s;u===(i.ownerDocument||r)&&y.push(u.defaultView||u.parentWindow||e)}for(a=0;(s=y[a++])&&!t.isPropagationStopped();)h=s,t.type=a>1?l:d.bindType||m,(p=(Q.get(s,"events")||{})[t.type]&&Q.get(s,"handle"))&&p.apply(s,n),(p=c&&s[c])&&p.apply&&G(s)&&(t.result=p.apply(s,n),!1===t.result&&t.preventDefault());return t.type=m,o||t.isDefaultPrevented()||d._default&&!1!==d._default.apply(y.pop(),n)||!G(i)||c&&g(i[m])&&!v(i)&&((u=i[c])&&(i[c]=null),b.event.triggered=m,t.isPropagationStopped()&&h.addEventListener(m,St),i[m](),t.isPropagationStopped()&&h.removeEventListener(m,St),b.event.triggered=void 0,u&&(i[c]=u)),t.result}},simulate:function(e,t,n){var r=b.extend(new b.Event,n,{type:e,isSimulated:!0});b.event.trigger(r,null,t)}}),b.fn.extend({trigger:function(e,t){return this.each(function(){b.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return b.event.trigger(e,t,n,!0)}}),h.focusin||b.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){b.event.simulate(t,e.target,b.event.fix(e))};b.event.special[t]={setup:function(){var r=this.ownerDocument||this,i=Q.access(r,t);i||r.addEventListener(e,n,!0),Q.access(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=Q.access(r,t)-1;i?Q.access(r,t,i):(r.removeEventListener(e,n,!0),Q.remove(r,t))}}});var At=e.location,Nt=Date.now(),Dt=/\?/;b.parseXML=function(t){var n;if(!t||"string"!=typeof t)return null;try{n=(new e.DOMParser).parseFromString(t,"text/xml")}catch(e){n=void 0}return n&&!n.getElementsByTagName("parsererror").length||b.error("Invalid XML: "+t),n};var jt=/\[\]$/,qt=/\r?\n/g,Lt=/^(?:submit|button|image|reset|file)$/i,Ht=/^(?:input|select|textarea|keygen)/i;function Ot(e,t,n,r){var i;if(Array.isArray(t))b.each(t,function(t,i){n||jt.test(e)?r(e,i):Ot(e+"["+("object"==typeof i&&null!=i?t:"")+"]",i,n,r)});else if(n||"object"!==x(t))r(e,t);else for(i in t)Ot(e+"["+i+"]",t[i],n,r)}b.param=function(e,t){var n,r=[],i=function(e,t){var n=g(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!b.isPlainObject(e))b.each(e,function(){i(this.name,this.value)});else for(n in e)Ot(n,e[n],t,i);return r.join("&")},b.fn.extend({serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=b.prop(this,"elements");return e?b.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!b(this).is(":disabled")&&Ht.test(this.nodeName)&&!Lt.test(e)&&(this.checked||!he.test(e))}).map(function(e,t){var n=b(this).val();return null==n?null:Array.isArray(n)?b.map(n,function(e){return{name:t.name,value:e.replace(qt,"\r\n")}}):{name:t.name,value:n.replace(qt,"\r\n")}}).get()}});var Pt=/%20/g,Rt=/#.*$/,Mt=/([?&])_=[^&]*/,It=/^(.*?):[ \t]*([^\r\n]*)$/gm,Wt=/^(?:GET|HEAD)$/,$t=/^\/\//,Ft={},Bt={},_t="*/".concat("*"),zt=r.createElement("a");function Ut(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(P)||[];if(g(n))for(;r=o[i++];)"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function Xt(e,t,n,r){var i={},o=e===Bt;function a(s){var u;return i[s]=!0,b.each(e[s]||[],function(e,s){var l=s(t,n,r);return"string"!=typeof l||o||i[l]?o?!(u=l):void 0:(t.dataTypes.unshift(l),a(l),!1)}),u}return a(t.dataTypes[0])||!i["*"]&&a("*")}function Vt(e,t){var n,r,i=b.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&b.extend(!0,e,r),e}function Gt(e,t,n){for(var r,i,o,a,s=e.contents,u=e.dataTypes;"*"===u[0];)u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}function Yt(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];for(o=c.shift();o;)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e.throws)t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}zt.href=At.href,b.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:At.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(At.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":_t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":b.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Vt(Vt(e,b.ajaxSettings),t):Vt(b.ajaxSettings,e)},ajaxPrefilter:Ut(Ft),ajaxTransport:Ut(Bt),ajax:function(t,n){"object"==typeof t&&(n=t,t=void 0),n=n||{};var i,o,a,s,u,l,c,f,p,d,h=b.ajaxSetup({},n),g=h.context||h,v=h.context&&(g.nodeType||g.jquery)?b(g):b.event,y=b.Deferred(),m=b.Callbacks("once memory"),x=h.statusCode||{},w={},T={},C="canceled",E={readyState:0,getResponseHeader:function(e){var t;if(c){if(!s)for(s={};t=It.exec(a);)s[t[1].toLowerCase()+" "]=(s[t[1].toLowerCase()+" "]||[]).concat(t[2]);t=s[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return c?a:null},setRequestHeader:function(e,t){return null==c&&(e=T[e.toLowerCase()]=T[e.toLowerCase()]||e,w[e]=t),this},overrideMimeType:function(e){return null==c&&(h.mimeType=e),this},statusCode:function(e){var t;if(e)if(c)E.always(e[E.status]);else for(t in e)x[t]=[x[t],e[t]];return this},abort:function(e){var t=e||C;return i&&i.abort(t),k(0,t),this}};if(y.promise(E),h.url=((t||h.url||At.href)+"").replace($t,At.protocol+"//"),h.type=n.method||n.type||h.method||h.type,h.dataTypes=(h.dataType||"*").toLowerCase().match(P)||[""],null==h.crossDomain){l=r.createElement("a");try{l.href=h.url,l.href=l.href,h.crossDomain=zt.protocol+"//"+zt.host!=l.protocol+"//"+l.host}catch(e){h.crossDomain=!0}}if(h.data&&h.processData&&"string"!=typeof h.data&&(h.data=b.param(h.data,h.traditional)),Xt(Ft,h,n,E),c)return E;for(p in(f=b.event&&h.global)&&0==b.active++&&b.event.trigger("ajaxStart"),h.type=h.type.toUpperCase(),h.hasContent=!Wt.test(h.type),o=h.url.replace(Rt,""),h.hasContent?h.data&&h.processData&&0===(h.contentType||"").indexOf("application/x-www-form-urlencoded")&&(h.data=h.data.replace(Pt,"+")):(d=h.url.slice(o.length),h.data&&(h.processData||"string"==typeof h.data)&&(o+=(Dt.test(o)?"&":"?")+h.data,delete h.data),!1===h.cache&&(o=o.replace(Mt,"$1"),d=(Dt.test(o)?"&":"?")+"_="+Nt+++d),h.url=o+d),h.ifModified&&(b.lastModified[o]&&E.setRequestHeader("If-Modified-Since",b.lastModified[o]),b.etag[o]&&E.setRequestHeader("If-None-Match",b.etag[o])),(h.data&&h.hasContent&&!1!==h.contentType||n.contentType)&&E.setRequestHeader("Content-Type",h.contentType),E.setRequestHeader("Accept",h.dataTypes[0]&&h.accepts[h.dataTypes[0]]?h.accepts[h.dataTypes[0]]+("*"!==h.dataTypes[0]?", */*; q=0.01":""):h.accepts["*"]),h.headers)E.setRequestHeader(p,h.headers[p]);if(h.beforeSend&&(!1===h.beforeSend.call(g,E,h)||c))return E.abort();if(C="abort",m.add(h.complete),E.done(h.success),E.fail(h.error),i=Xt(Bt,h,n,E)){if(E.readyState=1,f&&v.trigger("ajaxSend",[E,h]),c)return E;h.async&&h.timeout>0&&(u=e.setTimeout(function(){E.abort("timeout")},h.timeout));try{c=!1,i.send(w,k)}catch(e){if(c)throw e;k(-1,e)}}else k(-1,"No Transport");function k(t,n,r,s){var l,p,d,w,T,C=n;c||(c=!0,u&&e.clearTimeout(u),i=void 0,a=s||"",E.readyState=t>0?4:0,l=t>=200&&t<300||304===t,r&&(w=Gt(h,E,r)),w=Yt(h,w,E,l),l?(h.ifModified&&((T=E.getResponseHeader("Last-Modified"))&&(b.lastModified[o]=T),(T=E.getResponseHeader("etag"))&&(b.etag[o]=T)),204===t||"HEAD"===h.type?C="nocontent":304===t?C="notmodified":(C=w.state,p=w.data,l=!(d=w.error))):(d=C,!t&&C||(C="error",t<0&&(t=0))),E.status=t,E.statusText=(n||C)+"",l?y.resolveWith(g,[p,C,E]):y.rejectWith(g,[E,C,d]),E.statusCode(x),x=void 0,f&&v.trigger(l?"ajaxSuccess":"ajaxError",[E,h,l?p:d]),m.fireWith(g,[E,C]),f&&(v.trigger("ajaxComplete",[E,h]),--b.active||b.event.trigger("ajaxStop")))}return E},getJSON:function(e,t,n){return b.get(e,t,n,"json")},getScript:function(e,t){return b.get(e,void 0,t,"script")}}),b.each(["get","post"],function(e,t){b[t]=function(e,n,r,i){return g(n)&&(i=i||r,r=n,n=void 0),b.ajax(b.extend({url:e,type:t,dataType:i,data:n,success:r},b.isPlainObject(e)&&e))}}),b._evalUrl=function(e,t){return b.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){b.globalEval(e,t)}})},b.fn.extend({wrapAll:function(e){var t;return this[0]&&(g(e)&&(e=e.call(this[0])),t=b(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){for(var e=this;e.firstElementChild;)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(e){return g(e)?this.each(function(t){b(this).wrapInner(e.call(this,t))}):this.each(function(){var t=b(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=g(e);return this.each(function(n){b(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(e){return this.parent(e).not("body").each(function(){b(this).replaceWith(this.childNodes)}),this}}),b.expr.pseudos.hidden=function(e){return!b.expr.pseudos.visible(e)},b.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},b.ajaxSettings.xhr=function(){try{return new e.XMLHttpRequest}catch(e){}};var Qt={0:200,1223:204},Jt=b.ajaxSettings.xhr();h.cors=!!Jt&&"withCredentials"in Jt,h.ajax=Jt=!!Jt,b.ajaxTransport(function(t){var n,r;if(h.cors||Jt&&!t.crossDomain)return{send:function(i,o){var a,s=t.xhr();if(s.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(a in t.xhrFields)s[a]=t.xhrFields[a];for(a in t.mimeType&&s.overrideMimeType&&s.overrideMimeType(t.mimeType),t.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest"),i)s.setRequestHeader(a,i[a]);n=function(e){return function(){n&&(n=r=s.onload=s.onerror=s.onabort=s.ontimeout=s.onreadystatechange=null,"abort"===e?s.abort():"error"===e?"number"!=typeof s.status?o(0,"error"):o(s.status,s.statusText):o(Qt[s.status]||s.status,s.statusText,"text"!==(s.responseType||"text")||"string"!=typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=n(),r=s.onerror=s.ontimeout=n("error"),void 0!==s.onabort?s.onabort=r:s.onreadystatechange=function(){4===s.readyState&&e.setTimeout(function(){n&&r()})},n=n("abort");try{s.send(t.hasContent&&t.data||null)}catch(e){if(n)throw e}},abort:function(){n&&n()}}}),b.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),b.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return b.globalEval(e),e}}}),b.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),b.ajaxTransport("script",function(e){var t,n;if(e.crossDomain||e.scriptAttrs)return{send:function(i,o){t=b("