diff --git a/Telegram/Telegram-iOS/en.lproj/Localizable.strings b/Telegram/Telegram-iOS/en.lproj/Localizable.strings index 38a75f72ce..1ce1014efc 100644 --- a/Telegram/Telegram-iOS/en.lproj/Localizable.strings +++ b/Telegram/Telegram-iOS/en.lproj/Localizable.strings @@ -5635,3 +5635,6 @@ Any member of this group will be able to see messages in the channel."; "Settings.SetProfilePhotoOrVideo" = "Set Profile Photo or Video"; "Settings.SetNewProfilePhotoOrVideo" = "Set New Profile Photo or Video"; + +"Conversation.Unarchive" = "Unarhive"; +"Conversation.UnarchiveDone" = "The chat was moved to your main list."; diff --git a/submodules/AccountContext/Sources/MediaManager.swift b/submodules/AccountContext/Sources/MediaManager.swift index 7a24d417cf..528f8fa8ac 100644 --- a/submodules/AccountContext/Sources/MediaManager.swift +++ b/submodules/AccountContext/Sources/MediaManager.swift @@ -29,6 +29,7 @@ public protocol MediaManager: class { func filteredPlaylistState(accountId: AccountRecordId, playlistId: SharedMediaPlaylistId, itemId: SharedMediaPlaylistItemId, type: MediaManagerPlayerType) -> Signal func setOverlayVideoNode(_ node: OverlayMediaItemNode?) + func hasOverlayVideoNode(_ node: OverlayMediaItemNode) -> Bool func audioRecorder(beginWithTone: Bool, applicationBindings: TelegramApplicationBindings, beganWithTone: @escaping (Bool) -> Void) -> Signal } diff --git a/submodules/AccountContext/Sources/OverlayMediaItemNode.swift b/submodules/AccountContext/Sources/OverlayMediaItemNode.swift index 45033a0e8d..a635e5cca7 100644 --- a/submodules/AccountContext/Sources/OverlayMediaItemNode.swift +++ b/submodules/AccountContext/Sources/OverlayMediaItemNode.swift @@ -21,6 +21,9 @@ open class OverlayMediaItemNode: ASDisplayNode { open var unminimize: (() -> Void)? + public var manualExpandEmbed: (() -> Void)? + public var customUnembedWhenPortrait: ((OverlayMediaItemNode) -> Bool)? + open var group: OverlayMediaItemNodeGroup? { return nil } diff --git a/submodules/Display/Source/Navigation/NavigationContainer.swift b/submodules/Display/Source/Navigation/NavigationContainer.swift index 260a043c25..51f9c7ddb9 100644 --- a/submodules/Display/Source/Navigation/NavigationContainer.swift +++ b/submodules/Display/Source/Navigation/NavigationContainer.swift @@ -228,6 +228,7 @@ final class NavigationContainer: ASDisplayNode, UIGestureRecognizerDelegate { let velocity = recognizer.velocity(in: self.view).x if velocity > 1000 || navigationTransitionCoordinator.progress > 0.2 { + self.state.top?.value.viewWillLeaveNavigation() navigationTransitionCoordinator.animateCompletion(velocity, completion: { [weak self] in guard let strongSelf = self, let _ = strongSelf.state.layout, let _ = strongSelf.state.transition, let top = strongSelf.state.top else { return @@ -399,6 +400,7 @@ final class NavigationContainer: ASDisplayNode, UIGestureRecognizerDelegate { }) } + fromValue.value.viewWillLeaveNavigation() fromValue.value.viewWillDisappear(true) toValue.value.viewWillAppear(true) toValue.value.setIgnoreAppearanceMethodInvocations(true) @@ -464,6 +466,7 @@ final class NavigationContainer: ASDisplayNode, UIGestureRecognizerDelegate { }) } else { if let fromValue = fromValue { + fromValue.value.viewWillLeaveNavigation() fromValue.value.viewWillDisappear(false) fromValue.value.setIgnoreAppearanceMethodInvocations(true) fromValue.value.displayNode.removeFromSupernode() diff --git a/submodules/Display/Source/NavigationBar.swift b/submodules/Display/Source/NavigationBar.swift index 217c0d133a..f94da53fb4 100644 --- a/submodules/Display/Source/NavigationBar.swift +++ b/submodules/Display/Source/NavigationBar.swift @@ -117,6 +117,7 @@ open class NavigationBar: ASDisplayNode { public var userInfo: Any? public var makeCustomTransitionNode: ((NavigationBar, Bool) -> CustomNavigationTransitionNode?)? + public var allowsCustomTransition: (() -> Bool)? private var collapsed: Bool { get { diff --git a/submodules/Display/Source/ViewController.swift b/submodules/Display/Source/ViewController.swift index 2fee5bd184..a563e65e05 100644 --- a/submodules/Display/Source/ViewController.swift +++ b/submodules/Display/Source/ViewController.swift @@ -561,6 +561,9 @@ public enum TabBarItemContextActionType { super.viewDidDisappear(animated) } + open func viewWillLeaveNavigation() { + } + open override func viewDidAppear(_ animated: Bool) { self.activeInputView = nil diff --git a/submodules/GalleryUI/Sources/Items/UniversalVideoGalleryItem.swift b/submodules/GalleryUI/Sources/Items/UniversalVideoGalleryItem.swift index e988c6ee87..36a6a8e203 100644 --- a/submodules/GalleryUI/Sources/Items/UniversalVideoGalleryItem.swift +++ b/submodules/GalleryUI/Sources/Items/UniversalVideoGalleryItem.swift @@ -290,6 +290,8 @@ final class UniversalVideoGalleryItemNode: ZoomableContentGalleryItemNode { var playbackCompleted: (() -> Void)? + private var customUnembedWhenPortrait: ((OverlayMediaItemNode) -> Bool)? + init(context: AccountContext, presentationData: PresentationData, performAction: @escaping (GalleryControllerInteractionTapAction) -> Void, openActionOptions: @escaping (GalleryControllerInteractionTapAction) -> Void, present: @escaping (ViewController, Any?) -> Void) { self.context = context self.presentationData = presentationData @@ -423,6 +425,10 @@ final class UniversalVideoGalleryItemNode: ZoomableContentGalleryItemNode { } override func containerLayoutUpdated(_ layout: ContainerViewLayout, navigationBarHeight: CGFloat, transition: ContainedViewLayoutTransition) { + if let _ = self.customUnembedWhenPortrait, layout.size.width < layout.size.height { + self.expandIntoCustomPiP() + } + super.containerLayoutUpdated(layout, navigationBarHeight: navigationBarHeight, transition: transition) var dismiss = false @@ -888,6 +894,11 @@ final class UniversalVideoGalleryItemNode: ZoomableContentGalleryItemNode { } if let node = node.0 as? OverlayMediaItemNode { + self.customUnembedWhenPortrait = node.customUnembedWhenPortrait + node.customUnembedWhenPortrait = nil + } + + if let node = node.0 as? OverlayMediaItemNode, self.context.sharedContext.mediaManager.hasOverlayVideoNode(node) { var transformedFrame = node.view.convert(node.view.bounds, to: videoNode.view) let transformedSuperFrame = node.view.convert(node.view.bounds, to: videoNode.view.superview) @@ -960,10 +971,12 @@ final class UniversalVideoGalleryItemNode: ZoomableContentGalleryItemNode { surfaceCopyView.layer.animate(from: NSValue(caTransform3D: CATransform3DIdentity), to: NSValue(caTransform3D: CATransform3DMakeScale(scale.width, scale.height, 1.0)), keyPath: "transform", timingFunction: kCAMediaTimingFunctionSpring, duration: 0.25, removeOnCompletion: false) } - videoNode.allowsGroupOpacity = true - videoNode.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.1, completion: { [weak videoNode] _ in - videoNode?.allowsGroupOpacity = false - }) + if surfaceCopyView.superview != nil { + videoNode.allowsGroupOpacity = true + videoNode.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.1, completion: { [weak videoNode] _ in + videoNode?.allowsGroupOpacity = false + }) + } videoNode.layer.animatePosition(from: CGPoint(x: transformedSuperFrame.midX, y: transformedSuperFrame.midY), to: videoNode.layer.position, duration: 0.25, timingFunction: kCAMediaTimingFunctionSpring) transformedFrame.origin = CGPoint() @@ -1272,9 +1285,9 @@ final class UniversalVideoGalleryItemNode: ZoomableContentGalleryItemNode { } } - @objc func pictureInPictureButtonPressed() { - if let item = self.item, let videoNode = self.videoNode { - + private func expandIntoCustomPiP() { + if let item = self.item, let videoNode = self.videoNode, let customUnembedWhenPortrait = customUnembedWhenPortrait { + self.customUnembedWhenPortrait = nil videoNode.setContinuePlayingWithoutSoundOnLostAudioSession(false) let context = self.context @@ -1306,9 +1319,77 @@ final class UniversalVideoGalleryItemNode: ZoomableContentGalleryItemNode { if let overlayNode = overlayNode, let overlaySupernode = overlayNode.supernode { return GalleryTransitionArguments(transitionNode: (overlayNode, overlayNode.bounds, { [weak overlayNode] in return (overlayNode?.view.snapshotContentTree(), nil) - }), addToTransitionSurface: { [weak overlaySupernode, weak overlayNode] view in - overlaySupernode?.view.addSubview(view) - overlayNode?.canAttachContent = false + }), addToTransitionSurface: { [weak context, weak overlaySupernode, weak overlayNode] view in + guard let context = context, let overlayNode = overlayNode else { + return + } + if context.sharedContext.mediaManager.hasOverlayVideoNode(overlayNode) { + overlaySupernode?.view.addSubview(view) + } + overlayNode.canAttachContent = false + }) + } else if let info = context.sharedContext.mediaManager.galleryHiddenMediaManager.findTarget(messageId: id, media: media) { + return GalleryTransitionArguments(transitionNode: (info.1, info.1.bounds, { + return info.2() + }), addToTransitionSurface: info.0) + } + return nil + })) + case .webPage: + break + } + } + if customUnembedWhenPortrait(overlayNode) { + self.beginCustomDismiss() + self.statusNode.isHidden = true + self.animateOut(toOverlay: overlayNode, completion: { [weak self] in + self?.completeCustomDismiss() + }) + } + } + } + + @objc func pictureInPictureButtonPressed() { + if let item = self.item, let videoNode = self.videoNode { + videoNode.setContinuePlayingWithoutSoundOnLostAudioSession(false) + + let context = self.context + let baseNavigationController = self.baseNavigationController() + let mediaManager = self.context.sharedContext.mediaManager + var expandImpl: (() -> Void)? + let overlayNode = OverlayUniversalVideoNode(postbox: self.context.account.postbox, audioSession: context.sharedContext.mediaManager.audioSession, manager: context.sharedContext.mediaManager.universalVideoManager, content: item.content, expand: { + expandImpl?() + }, close: { [weak mediaManager] in + mediaManager?.setOverlayVideoNode(nil) + }) + expandImpl = { [weak overlayNode] in + guard let contentInfo = item.contentInfo, let overlayNode = overlayNode else { + return + } + + switch contentInfo { + case let .message(message): + let gallery = GalleryController(context: context, source: .peerMessagesAtId(message.id), replaceRootController: { controller, ready in + if let baseNavigationController = baseNavigationController { + baseNavigationController.replaceTopController(controller, animated: false, ready: ready) + } + }, baseNavigationController: baseNavigationController) + gallery.temporaryDoNotWaitForReady = true + + baseNavigationController?.view.endEditing(true) + + (baseNavigationController?.topViewController as? ViewController)?.present(gallery, in: .window(.root), with: GalleryControllerPresentationArguments(transitionArguments: { [weak overlayNode] id, media in + if let overlayNode = overlayNode, let overlaySupernode = overlayNode.supernode { + return GalleryTransitionArguments(transitionNode: (overlayNode, overlayNode.bounds, { [weak overlayNode] in + return (overlayNode?.view.snapshotContentTree(), nil) + }), addToTransitionSurface: { [weak context, weak overlaySupernode, weak overlayNode] view in + guard let context = context, let overlayNode = overlayNode else { + return + } + if context.sharedContext.mediaManager.hasOverlayVideoNode(overlayNode) { + overlaySupernode?.view.addSubview(view) + } + overlayNode.canAttachContent = false }) } else if let info = context.sharedContext.mediaManager.galleryHiddenMediaManager.findTarget(messageId: id, media: media) { return GalleryTransitionArguments(transitionNode: (info.1, info.1.bounds, { diff --git a/submodules/TelegramCore/Sources/PeerContactSettings.swift b/submodules/TelegramCore/Sources/PeerContactSettings.swift index 05f65dfbf0..4ee06b509c 100644 --- a/submodules/TelegramCore/Sources/PeerContactSettings.swift +++ b/submodules/TelegramCore/Sources/PeerContactSettings.swift @@ -1,7 +1,7 @@ import Foundation import Postbox import TelegramApi - +import SwiftSignalKit import SyncCore extension PeerStatusSettings { @@ -34,3 +34,22 @@ extension PeerStatusSettings { } } } + +public func unarchiveAutomaticallyArchivedPeer(account: Account, peerId: PeerId) { + let _ = (account.postbox.transaction { transaction -> Void in + updatePeerGroupIdInteractively(transaction: transaction, peerId: peerId, groupId: .root) + transaction.updatePeerCachedData(peerIds: Set([peerId]), update: { _, current in + guard let currentData = current as? CachedUserData, let currentStatusSettings = currentData.peerStatusSettings else { + return current + } + var statusSettings = currentStatusSettings + statusSettings.flags.remove(.canBlock) + statusSettings.flags.remove(.canReport) + statusSettings.flags.remove(.autoArchived) + return currentData.withUpdatedPeerStatusSettings(statusSettings) + }) + } + |> deliverOnMainQueue).start() + + let _ = updatePeerMuteSetting(account: account, peerId: peerId, muteInterval: nil).start() +} diff --git a/submodules/TelegramPresentationData/Sources/ComponentsThemes.swift b/submodules/TelegramPresentationData/Sources/ComponentsThemes.swift index 70e63b132c..b1258e72da 100644 --- a/submodules/TelegramPresentationData/Sources/ComponentsThemes.swift +++ b/submodules/TelegramPresentationData/Sources/ComponentsThemes.swift @@ -45,9 +45,9 @@ public extension TabBarControllerTheme { } public extension NavigationBarTheme { - convenience init(rootControllerTheme: PresentationTheme, hideBackground: Bool = false) { + convenience init(rootControllerTheme: PresentationTheme, hideBackground: Bool = false, hideBadge: Bool = false) { let theme = rootControllerTheme.rootController.navigationBar - self.init(buttonColor: theme.buttonColor, disabledButtonColor: theme.disabledButtonColor, primaryTextColor: theme.primaryTextColor, backgroundColor: hideBackground ? .clear : theme.backgroundColor, separatorColor: hideBackground ? .clear : theme.separatorColor, badgeBackgroundColor: theme.badgeBackgroundColor, badgeStrokeColor: hideBackground ? .clear : theme.badgeStrokeColor, badgeTextColor: theme.badgeTextColor) + self.init(buttonColor: theme.buttonColor, disabledButtonColor: theme.disabledButtonColor, primaryTextColor: theme.primaryTextColor, backgroundColor: hideBackground ? .clear : theme.backgroundColor, separatorColor: hideBackground ? .clear : theme.separatorColor, badgeBackgroundColor: hideBadge ? .clear : theme.badgeBackgroundColor, badgeStrokeColor: hideBadge ? .clear : theme.badgeStrokeColor, badgeTextColor: hideBadge ? .clear : theme.badgeTextColor) } } @@ -62,8 +62,8 @@ public extension NavigationBarPresentationData { self.init(theme: NavigationBarTheme(rootControllerTheme: presentationData.theme), strings: NavigationBarStrings(presentationStrings: presentationData.strings)) } - convenience init(presentationData: PresentationData, hideBackground: Bool) { - self.init(theme: NavigationBarTheme(rootControllerTheme: presentationData.theme, hideBackground: hideBackground), strings: NavigationBarStrings(presentationStrings: presentationData.strings)) + convenience init(presentationData: PresentationData, hideBackground: Bool, hideBadge: Bool) { + self.init(theme: NavigationBarTheme(rootControllerTheme: presentationData.theme, hideBackground: hideBackground, hideBadge: hideBadge), strings: NavigationBarStrings(presentationStrings: presentationData.strings)) } convenience init(presentationTheme: PresentationTheme, presentationStrings: PresentationStrings) { diff --git a/submodules/TelegramPresentationData/Sources/PresentationStrings.swift b/submodules/TelegramPresentationData/Sources/PresentationStrings.swift index 48397633cb..a1d2efe7ef 100644 --- a/submodules/TelegramPresentationData/Sources/PresentationStrings.swift +++ b/submodules/TelegramPresentationData/Sources/PresentationStrings.swift @@ -3441,1850 +3441,1854 @@ public final class PresentationStrings: Equatable { public var ChatListFolder_NameSectionHeader: String { return self._s[3059]! } public var LogoutOptions_ContactSupportTitle: String { return self._s[3060]! } public var Appearance_ThemePreview_Chat_7_Text: String { return self._s[3061]! } - public var Channel_AddBotErrorHaveRights: String { return self._s[3062]! } - public var Preview_DeleteGif: String { return self._s[3063]! } - public var GroupInfo_Permissions_Exceptions: String { return self._s[3064]! } - public var Group_ErrorNotMutualContact: String { return self._s[3065]! } - public var Notification_MessageLifetime5s: String { return self._s[3066]! } - public var Wallet_Send_OwnAddressAlertText: String { return self._s[3067]! } - public var OldChannels_ChannelFormat: String { return self._s[3068]! } + public var Conversation_Unarchive: String { return self._s[3062]! } + public var Channel_AddBotErrorHaveRights: String { return self._s[3063]! } + public var Preview_DeleteGif: String { return self._s[3064]! } + public var GroupInfo_Permissions_Exceptions: String { return self._s[3065]! } + public var Group_ErrorNotMutualContact: String { return self._s[3066]! } + public var Notification_MessageLifetime5s: String { return self._s[3067]! } + public var Wallet_Send_OwnAddressAlertText: String { return self._s[3068]! } + public var OldChannels_ChannelFormat: String { return self._s[3069]! } public func Watch_LastSeen_AtDate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3069]!, self._r[3069]!, [_0]) + return formatWithArgumentRanges(self._s[3070]!, self._r[3070]!, [_0]) } - public var VoiceOver_Chat_Video: String { return self._s[3070]! } - public var Channel_OwnershipTransfer_ErrorPublicChannelsTooMuch: String { return self._s[3072]! } - public var ReportSpam_DeleteThisChat: String { return self._s[3073]! } - public var Passport_Address_AddBankStatement: String { return self._s[3074]! } - public var Notification_CallIncoming: String { return self._s[3075]! } - public var Wallet_Words_NotDoneTitle: String { return self._s[3076]! } - public var Compose_NewGroupTitle: String { return self._s[3077]! } - public var TwoStepAuth_RecoveryCodeHelp: String { return self._s[3079]! } - public var Passport_Address_Postcode: String { return self._s[3081]! } + public var VoiceOver_Chat_Video: String { return self._s[3071]! } + public var Channel_OwnershipTransfer_ErrorPublicChannelsTooMuch: String { return self._s[3073]! } + public var ReportSpam_DeleteThisChat: String { return self._s[3074]! } + public var Passport_Address_AddBankStatement: String { return self._s[3075]! } + public var Notification_CallIncoming: String { return self._s[3076]! } + public var Wallet_Words_NotDoneTitle: String { return self._s[3077]! } + public var Compose_NewGroupTitle: String { return self._s[3078]! } + public var TwoStepAuth_RecoveryCodeHelp: String { return self._s[3080]! } + public var Passport_Address_Postcode: String { return self._s[3082]! } public func LastSeen_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3082]!, self._r[3082]!, [_0]) + return formatWithArgumentRanges(self._s[3083]!, self._r[3083]!, [_0]) } - public var Checkout_NewCard_SaveInfoHelp: String { return self._s[3083]! } - public var Wallet_Month_ShortOctober: String { return self._s[3084]! } - public var VoiceOver_Chat_YourMusic: String { return self._s[3085]! } - public var WallpaperColors_Title: String { return self._s[3086]! } - public var SocksProxySetup_ShareQRCodeInfo: String { return self._s[3087]! } - public var VoiceOver_MessageContextForward: String { return self._s[3088]! } - public var GroupPermission_Duration: String { return self._s[3089]! } + public var Checkout_NewCard_SaveInfoHelp: String { return self._s[3084]! } + public var Wallet_Month_ShortOctober: String { return self._s[3085]! } + public var VoiceOver_Chat_YourMusic: String { return self._s[3086]! } + public var WallpaperColors_Title: String { return self._s[3087]! } + public var SocksProxySetup_ShareQRCodeInfo: String { return self._s[3088]! } + public var VoiceOver_MessageContextForward: String { return self._s[3089]! } + public var GroupPermission_Duration: String { return self._s[3090]! } public func Cache_Clear(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3090]!, self._r[3090]!, [_0]) + return formatWithArgumentRanges(self._s[3091]!, self._r[3091]!, [_0]) } - public var Bot_GroupStatusDoesNotReadHistory: String { return self._s[3091]! } - public var Username_Placeholder: String { return self._s[3092]! } - public var CallFeedback_WhatWentWrong: String { return self._s[3093]! } - public var Passport_FieldAddressUploadHelp: String { return self._s[3094]! } - public var Permissions_NotificationsAllowInSettings_v0: String { return self._s[3095]! } + public var Bot_GroupStatusDoesNotReadHistory: String { return self._s[3092]! } + public var Username_Placeholder: String { return self._s[3093]! } + public var CallFeedback_WhatWentWrong: String { return self._s[3094]! } + public var Passport_FieldAddressUploadHelp: String { return self._s[3095]! } + public var Permissions_NotificationsAllowInSettings_v0: String { return self._s[3096]! } public func Channel_AdminLog_MessageChangedUnlinkedChannel(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3097]!, self._r[3097]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3098]!, self._r[3098]!, [_1, _2]) } - public var Passport_PasswordDescription: String { return self._s[3098]! } - public var Channel_MessagePhotoUpdated: String { return self._s[3099]! } - public var MediaPicker_TapToUngroupDescription: String { return self._s[3100]! } - public var SettingsSearch_Synonyms_Notifications_BadgeCountUnreadMessages: String { return self._s[3101]! } - public var AttachmentMenu_PhotoOrVideo: String { return self._s[3102]! } - public var Conversation_ContextMenuMore: String { return self._s[3103]! } - public var Privacy_PaymentsClearInfo: String { return self._s[3104]! } - public var CallSettings_TabIcon: String { return self._s[3105]! } - public var KeyCommand_Find: String { return self._s[3106]! } - public var ClearCache_FreeSpaceDescription: String { return self._s[3107]! } - public var Appearance_ThemePreview_ChatList_7_Text: String { return self._s[3108]! } - public var EditTheme_Edit_Preview_IncomingText: String { return self._s[3109]! } + public var Passport_PasswordDescription: String { return self._s[3099]! } + public var Channel_MessagePhotoUpdated: String { return self._s[3100]! } + public var MediaPicker_TapToUngroupDescription: String { return self._s[3101]! } + public var SettingsSearch_Synonyms_Notifications_BadgeCountUnreadMessages: String { return self._s[3102]! } + public var AttachmentMenu_PhotoOrVideo: String { return self._s[3103]! } + public var Conversation_ContextMenuMore: String { return self._s[3104]! } + public var Privacy_PaymentsClearInfo: String { return self._s[3105]! } + public var CallSettings_TabIcon: String { return self._s[3106]! } + public var KeyCommand_Find: String { return self._s[3107]! } + public var ClearCache_FreeSpaceDescription: String { return self._s[3108]! } + public var Appearance_ThemePreview_ChatList_7_Text: String { return self._s[3109]! } + public var EditTheme_Edit_Preview_IncomingText: String { return self._s[3110]! } public func Conversation_NoticeInvitedByInChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3110]!, self._r[3110]!, [_0]) + return formatWithArgumentRanges(self._s[3111]!, self._r[3111]!, [_0]) } - public var Message_PinnedGame: String { return self._s[3111]! } - public var VoiceOver_Chat_ForwardedFromYou: String { return self._s[3112]! } - public var Notifications_Badge_CountUnreadMessages_InfoOff: String { return self._s[3114]! } - public var Login_CallRequestState2: String { return self._s[3116]! } - public var CheckoutInfo_ReceiverInfoNamePlaceholder: String { return self._s[3118]! } + public var Message_PinnedGame: String { return self._s[3112]! } + public var VoiceOver_Chat_ForwardedFromYou: String { return self._s[3113]! } + public var Notifications_Badge_CountUnreadMessages_InfoOff: String { return self._s[3115]! } + public var Login_CallRequestState2: String { return self._s[3117]! } + public var CheckoutInfo_ReceiverInfoNamePlaceholder: String { return self._s[3119]! } public func VoiceOver_Chat_PhotoFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3119]!, self._r[3119]!, [_0]) + return formatWithArgumentRanges(self._s[3120]!, self._r[3120]!, [_0]) } public func Checkout_PayPrice(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3121]!, self._r[3121]!, [_0]) + return formatWithArgumentRanges(self._s[3122]!, self._r[3122]!, [_0]) } - public var AuthSessions_AddDevice: String { return self._s[3122]! } - public var WallpaperPreview_Blurred: String { return self._s[3123]! } - public var Conversation_InstantPagePreview: String { return self._s[3124]! } - public var PeerInfo_ButtonUnmute: String { return self._s[3125]! } + public var AuthSessions_AddDevice: String { return self._s[3123]! } + public var WallpaperPreview_Blurred: String { return self._s[3124]! } + public var Conversation_InstantPagePreview: String { return self._s[3125]! } + public var PeerInfo_ButtonUnmute: String { return self._s[3126]! } public func DialogList_SingleUploadingVideoSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3126]!, self._r[3126]!, [_0]) + return formatWithArgumentRanges(self._s[3127]!, self._r[3127]!, [_0]) } - public var ChatList_PeerTypeChannel: String { return self._s[3127]! } - public var SecretTimer_VideoDescription: String { return self._s[3130]! } - public var WallpaperSearch_ColorRed: String { return self._s[3131]! } - public var GroupPermission_NoPinMessages: String { return self._s[3132]! } - public var Passport_Language_es: String { return self._s[3133]! } - public var Permissions_ContactsAllow_v0: String { return self._s[3135]! } - public var Conversation_EditingMessageMediaEditCurrentVideo: String { return self._s[3136]! } + public var ChatList_PeerTypeChannel: String { return self._s[3128]! } + public var SecretTimer_VideoDescription: String { return self._s[3131]! } + public var WallpaperSearch_ColorRed: String { return self._s[3132]! } + public var GroupPermission_NoPinMessages: String { return self._s[3133]! } + public var Passport_Language_es: String { return self._s[3134]! } + public var Permissions_ContactsAllow_v0: String { return self._s[3136]! } + public var Conversation_EditingMessageMediaEditCurrentVideo: String { return self._s[3137]! } public func PUSH_CHAT_MESSAGE_CONTACT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3137]!, self._r[3137]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3138]!, self._r[3138]!, [_1, _2]) } - public var Privacy_Forwards_CustomHelp: String { return self._s[3138]! } - public var WebPreview_GettingLinkInfo: String { return self._s[3140]! } - public var Watch_UserInfo_Unmute: String { return self._s[3141]! } - public var GroupInfo_ChannelListNamePlaceholder: String { return self._s[3142]! } - public var AccessDenied_CameraRestricted: String { return self._s[3144]! } + public var Privacy_Forwards_CustomHelp: String { return self._s[3139]! } + public var WebPreview_GettingLinkInfo: String { return self._s[3141]! } + public var Watch_UserInfo_Unmute: String { return self._s[3142]! } + public var GroupInfo_ChannelListNamePlaceholder: String { return self._s[3143]! } + public var AccessDenied_CameraRestricted: String { return self._s[3145]! } public func Conversation_Kilobytes(_ _0: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3145]!, self._r[3145]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[3146]!, self._r[3146]!, ["\(_0)"]) } - public var ChatList_ReadAll: String { return self._s[3147]! } - public var Settings_CopyUsername: String { return self._s[3148]! } - public var Contacts_SearchLabel: String { return self._s[3149]! } - public var Map_OpenInYandexNavigator: String { return self._s[3151]! } - public var PasscodeSettings_EncryptData: String { return self._s[3152]! } - public var Settings_Wallet: String { return self._s[3153]! } - public var Group_ErrorSupergroupConversionNotPossible: String { return self._s[3154]! } - public var ChatList_PeerTypeBot: String { return self._s[3155]! } - public var WallpaperSearch_ColorPrefix: String { return self._s[3156]! } - public var Notifications_GroupNotificationsPreview: String { return self._s[3157]! } - public var DialogList_AdNoticeAlert: String { return self._s[3158]! } - public var Wallet_Month_GenMay: String { return self._s[3160]! } - public var CheckoutInfo_ShippingInfoAddress1: String { return self._s[3161]! } - public var CheckoutInfo_ShippingInfoAddress2: String { return self._s[3162]! } - public var Localization_LanguageCustom: String { return self._s[3163]! } - public var Passport_Identity_TypeDriversLicenseUploadScan: String { return self._s[3164]! } - public var CallFeedback_Title: String { return self._s[3165]! } - public var VoiceOver_Chat_RecordPreviewVoiceMessage: String { return self._s[3168]! } - public var Passport_Address_OneOfTypePassportRegistration: String { return self._s[3169]! } - public var Wallet_Intro_CreateErrorTitle: String { return self._s[3170]! } - public var Conversation_InfoGroup: String { return self._s[3171]! } - public var Compose_NewMessage: String { return self._s[3172]! } - public var FastTwoStepSetup_HintPlaceholder: String { return self._s[3173]! } - public var ChatSettings_AutoDownloadVideoMessages: String { return self._s[3174]! } - public var Wallet_SecureStorageReset_BiometryFaceId: String { return self._s[3175]! } - public var Channel_DiscussionGroup_UnlinkChannel: String { return self._s[3176]! } + public var ChatList_ReadAll: String { return self._s[3148]! } + public var Settings_CopyUsername: String { return self._s[3149]! } + public var Contacts_SearchLabel: String { return self._s[3150]! } + public var Map_OpenInYandexNavigator: String { return self._s[3152]! } + public var PasscodeSettings_EncryptData: String { return self._s[3153]! } + public var Settings_Wallet: String { return self._s[3154]! } + public var Group_ErrorSupergroupConversionNotPossible: String { return self._s[3155]! } + public var ChatList_PeerTypeBot: String { return self._s[3156]! } + public var WallpaperSearch_ColorPrefix: String { return self._s[3157]! } + public var Notifications_GroupNotificationsPreview: String { return self._s[3158]! } + public var DialogList_AdNoticeAlert: String { return self._s[3159]! } + public var Wallet_Month_GenMay: String { return self._s[3161]! } + public var CheckoutInfo_ShippingInfoAddress1: String { return self._s[3162]! } + public var CheckoutInfo_ShippingInfoAddress2: String { return self._s[3163]! } + public var Localization_LanguageCustom: String { return self._s[3164]! } + public var Passport_Identity_TypeDriversLicenseUploadScan: String { return self._s[3165]! } + public var CallFeedback_Title: String { return self._s[3166]! } + public var VoiceOver_Chat_RecordPreviewVoiceMessage: String { return self._s[3169]! } + public var Passport_Address_OneOfTypePassportRegistration: String { return self._s[3170]! } + public var Wallet_Intro_CreateErrorTitle: String { return self._s[3171]! } + public var Conversation_InfoGroup: String { return self._s[3172]! } + public var Compose_NewMessage: String { return self._s[3173]! } + public var FastTwoStepSetup_HintPlaceholder: String { return self._s[3174]! } + public var ChatSettings_AutoDownloadVideoMessages: String { return self._s[3175]! } + public var Wallet_SecureStorageReset_BiometryFaceId: String { return self._s[3176]! } + public var Channel_DiscussionGroup_UnlinkChannel: String { return self._s[3177]! } public func Passport_Scans_ScanIndex(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3177]!, self._r[3177]!, [_0]) + return formatWithArgumentRanges(self._s[3178]!, self._r[3178]!, [_0]) } - public var Channel_AdminLog_CanDeleteMessages: String { return self._s[3178]! } - public var Login_CancelSignUpConfirmation: String { return self._s[3179]! } - public var ChangePhoneNumberCode_Help: String { return self._s[3180]! } - public var PrivacySettings_DeleteAccountHelp: String { return self._s[3181]! } - public var ChatList_Context_RemoveFromFolder: String { return self._s[3182]! } - public var Channel_BlackList_Title: String { return self._s[3183]! } - public var UserInfo_PhoneCall: String { return self._s[3184]! } - public var Passport_Address_OneOfTypeBankStatement: String { return self._s[3186]! } - public var Wallet_Month_ShortJanuary: String { return self._s[3187]! } - public var State_connecting: String { return self._s[3188]! } - public var Appearance_ThemePreview_ChatList_6_Text: String { return self._s[3189]! } - public var Wallet_Month_GenMarch: String { return self._s[3190]! } - public var EditTheme_Expand_BottomInfo: String { return self._s[3191]! } - public var AuthSessions_AddedDeviceTerminate: String { return self._s[3192]! } + public var Channel_AdminLog_CanDeleteMessages: String { return self._s[3179]! } + public var Login_CancelSignUpConfirmation: String { return self._s[3180]! } + public var ChangePhoneNumberCode_Help: String { return self._s[3181]! } + public var PrivacySettings_DeleteAccountHelp: String { return self._s[3182]! } + public var ChatList_Context_RemoveFromFolder: String { return self._s[3183]! } + public var Channel_BlackList_Title: String { return self._s[3184]! } + public var UserInfo_PhoneCall: String { return self._s[3185]! } + public var Passport_Address_OneOfTypeBankStatement: String { return self._s[3187]! } + public var Wallet_Month_ShortJanuary: String { return self._s[3188]! } + public var State_connecting: String { return self._s[3189]! } + public var Appearance_ThemePreview_ChatList_6_Text: String { return self._s[3190]! } + public var Wallet_Month_GenMarch: String { return self._s[3191]! } + public var EditTheme_Expand_BottomInfo: String { return self._s[3192]! } + public var AuthSessions_AddedDeviceTerminate: String { return self._s[3193]! } public func LastSeen_TodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3193]!, self._r[3193]!, [_0]) - } - public func DialogList_SingleRecordingAudioSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3194]!, self._r[3194]!, [_0]) } - public var Notifications_GroupNotifications: String { return self._s[3195]! } - public var Conversation_SendMessageErrorTooMuchScheduled: String { return self._s[3196]! } - public var Passport_Identity_EditPassport: String { return self._s[3197]! } - public var EnterPasscode_RepeatNewPasscode: String { return self._s[3199]! } - public var Localization_EnglishLanguageName: String { return self._s[3200]! } - public var Share_AuthDescription: String { return self._s[3201]! } - public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsAlert: String { return self._s[3202]! } - public var Passport_Identity_Surname: String { return self._s[3203]! } - public var Compose_TokenListPlaceholder: String { return self._s[3204]! } - public var Wallet_AccessDenied_Camera: String { return self._s[3205]! } - public var Passport_Identity_OneOfTypePassport: String { return self._s[3206]! } - public var Settings_AboutEmpty: String { return self._s[3207]! } - public var Conversation_Unmute: String { return self._s[3208]! } - public var CreateGroup_ChannelsTooMuch: String { return self._s[3210]! } - public var Wallet_Sending_Text: String { return self._s[3211]! } - public func PUSH_CONTACT_JOINED(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3212]!, self._r[3212]!, [_1]) + public func DialogList_SingleRecordingAudioSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3195]!, self._r[3195]!, [_0]) } - public var Login_CodeSentCall: String { return self._s[3213]! } - public var ContactInfo_PhoneLabelHomeFax: String { return self._s[3215]! } - public var ChatSettings_Appearance: String { return self._s[3216]! } - public var ClearCache_StorageUsage: String { return self._s[3217]! } - public var ChatListFolder_NameContacts: String { return self._s[3218]! } - public var Appearance_PickAccentColor: String { return self._s[3219]! } + public var Notifications_GroupNotifications: String { return self._s[3196]! } + public var Conversation_SendMessageErrorTooMuchScheduled: String { return self._s[3197]! } + public var Passport_Identity_EditPassport: String { return self._s[3198]! } + public var EnterPasscode_RepeatNewPasscode: String { return self._s[3200]! } + public var Localization_EnglishLanguageName: String { return self._s[3201]! } + public var Share_AuthDescription: String { return self._s[3202]! } + public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsAlert: String { return self._s[3203]! } + public var Passport_Identity_Surname: String { return self._s[3204]! } + public var Compose_TokenListPlaceholder: String { return self._s[3205]! } + public var Wallet_AccessDenied_Camera: String { return self._s[3206]! } + public var Passport_Identity_OneOfTypePassport: String { return self._s[3207]! } + public var Settings_AboutEmpty: String { return self._s[3208]! } + public var Conversation_Unmute: String { return self._s[3209]! } + public var CreateGroup_ChannelsTooMuch: String { return self._s[3211]! } + public var Wallet_Sending_Text: String { return self._s[3212]! } + public func PUSH_CONTACT_JOINED(_ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3213]!, self._r[3213]!, [_1]) + } + public var Login_CodeSentCall: String { return self._s[3214]! } + public var ContactInfo_PhoneLabelHomeFax: String { return self._s[3216]! } + public var ChatSettings_Appearance: String { return self._s[3217]! } + public var ClearCache_StorageUsage: String { return self._s[3218]! } + public var ChatListFolder_NameContacts: String { return self._s[3219]! } + public var Appearance_PickAccentColor: String { return self._s[3220]! } public func PUSH_CHAT_MESSAGE_NOTEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3220]!, self._r[3220]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3221]!, self._r[3221]!, [_1, _2]) } public func PUSH_MESSAGE_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3221]!, self._r[3221]!, [_1]) + return formatWithArgumentRanges(self._s[3222]!, self._r[3222]!, [_1]) } - public var Notification_CallMissed: String { return self._s[3222]! } - public var SettingsSearch_Synonyms_Appearance_ChatBackground_Custom: String { return self._s[3223]! } - public var Channel_AdminLogFilter_EventsInfo: String { return self._s[3224]! } - public var Wallet_Month_GenOctober: String { return self._s[3226]! } - public var ChatAdmins_AdminLabel: String { return self._s[3227]! } - public var KeyCommand_JumpToNextChat: String { return self._s[3228]! } - public var Conversation_StopPollConfirmationTitle: String { return self._s[3230]! } - public var ChangePhoneNumberCode_CodePlaceholder: String { return self._s[3231]! } - public var Month_GenJune: String { return self._s[3232]! } - public var IntentsSettings_MainAccountInfo: String { return self._s[3233]! } - public var Watch_Location_Current: String { return self._s[3234]! } - public var Wallet_Receive_CopyInvoiceUrl: String { return self._s[3235]! } - public var Conversation_TitleMute: String { return self._s[3236]! } - public var Map_PlacesInThisArea: String { return self._s[3237]! } + public var Notification_CallMissed: String { return self._s[3223]! } + public var SettingsSearch_Synonyms_Appearance_ChatBackground_Custom: String { return self._s[3224]! } + public var Channel_AdminLogFilter_EventsInfo: String { return self._s[3225]! } + public var Wallet_Month_GenOctober: String { return self._s[3227]! } + public var ChatAdmins_AdminLabel: String { return self._s[3228]! } + public var KeyCommand_JumpToNextChat: String { return self._s[3229]! } + public var Conversation_StopPollConfirmationTitle: String { return self._s[3231]! } + public var ChangePhoneNumberCode_CodePlaceholder: String { return self._s[3232]! } + public var Month_GenJune: String { return self._s[3233]! } + public var IntentsSettings_MainAccountInfo: String { return self._s[3234]! } + public var Watch_Location_Current: String { return self._s[3235]! } + public var Wallet_Receive_CopyInvoiceUrl: String { return self._s[3236]! } + public var Conversation_TitleMute: String { return self._s[3237]! } + public var Map_PlacesInThisArea: String { return self._s[3238]! } public func PUSH_CHANNEL_MESSAGE_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3238]!, self._r[3238]!, [_1]) + return formatWithArgumentRanges(self._s[3239]!, self._r[3239]!, [_1]) } - public var GroupInfo_DeleteAndExit: String { return self._s[3239]! } + public var GroupInfo_DeleteAndExit: String { return self._s[3240]! } public func Conversation_Moderate_DeleteAllMessages(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3240]!, self._r[3240]!, [_0]) + return formatWithArgumentRanges(self._s[3241]!, self._r[3241]!, [_0]) } - public var Call_ReportPlaceholder: String { return self._s[3241]! } - public var Chat_SlowmodeSendError: String { return self._s[3242]! } - public var MaskStickerSettings_Info: String { return self._s[3243]! } - public var EditTheme_Expand_TopInfo: String { return self._s[3244]! } + public var Call_ReportPlaceholder: String { return self._s[3242]! } + public var Chat_SlowmodeSendError: String { return self._s[3243]! } + public var MaskStickerSettings_Info: String { return self._s[3244]! } + public var EditTheme_Expand_TopInfo: String { return self._s[3245]! } public func GroupInfo_AddParticipantConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3245]!, self._r[3245]!, [_0]) + return formatWithArgumentRanges(self._s[3246]!, self._r[3246]!, [_0]) } - public var Checkout_NewCard_PostcodeTitle: String { return self._s[3246]! } - public var Passport_Address_RegionPlaceholder: String { return self._s[3248]! } - public var Contacts_ShareTelegram: String { return self._s[3249]! } - public var EnterPasscode_EnterNewPasscodeNew: String { return self._s[3250]! } - public var Map_AddressOnMap: String { return self._s[3251]! } - public var Channel_ErrorAccessDenied: String { return self._s[3252]! } - public var UserInfo_ScamBotWarning: String { return self._s[3254]! } - public var Stickers_GroupChooseStickerPack: String { return self._s[3255]! } - public var Call_ConnectionErrorTitle: String { return self._s[3256]! } - public var UserInfo_NotificationsEnable: String { return self._s[3257]! } - public var ArchivedChats_IntroText1: String { return self._s[3258]! } - public var Tour_Text4: String { return self._s[3261]! } - public var WallpaperSearch_Recent: String { return self._s[3262]! } - public var GroupInfo_ScamGroupWarning: String { return self._s[3263]! } - public var PeopleNearby_MakeVisibleTitle: String { return self._s[3264]! } - public var Profile_MessageLifetime2s: String { return self._s[3266]! } - public var Appearance_ThemePreview_ChatList_5_Text: String { return self._s[3267]! } - public var Notification_MessageLifetime2s: String { return self._s[3268]! } + public var Checkout_NewCard_PostcodeTitle: String { return self._s[3247]! } + public var Passport_Address_RegionPlaceholder: String { return self._s[3249]! } + public var Contacts_ShareTelegram: String { return self._s[3250]! } + public var EnterPasscode_EnterNewPasscodeNew: String { return self._s[3251]! } + public var Map_AddressOnMap: String { return self._s[3252]! } + public var Channel_ErrorAccessDenied: String { return self._s[3253]! } + public var UserInfo_ScamBotWarning: String { return self._s[3255]! } + public var Stickers_GroupChooseStickerPack: String { return self._s[3256]! } + public var Call_ConnectionErrorTitle: String { return self._s[3257]! } + public var UserInfo_NotificationsEnable: String { return self._s[3258]! } + public var ArchivedChats_IntroText1: String { return self._s[3259]! } + public var Tour_Text4: String { return self._s[3262]! } + public var WallpaperSearch_Recent: String { return self._s[3263]! } + public var GroupInfo_ScamGroupWarning: String { return self._s[3264]! } + public var PeopleNearby_MakeVisibleTitle: String { return self._s[3265]! } + public var Profile_MessageLifetime2s: String { return self._s[3267]! } + public var Appearance_ThemePreview_ChatList_5_Text: String { return self._s[3268]! } + public var Notification_MessageLifetime2s: String { return self._s[3269]! } public func Time_PreciseDate_m10(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3269]!, self._r[3269]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3270]!, self._r[3270]!, [_1, _2, _3]) } - public var Cache_ClearCache: String { return self._s[3270]! } - public var AutoNightTheme_UpdateLocation: String { return self._s[3271]! } - public var Permissions_NotificationsUnreachableText_v0: String { return self._s[3272]! } + public var Cache_ClearCache: String { return self._s[3271]! } + public var AutoNightTheme_UpdateLocation: String { return self._s[3272]! } + public var Permissions_NotificationsUnreachableText_v0: String { return self._s[3273]! } public func Channel_AdminLog_MessageChangedGroupUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3276]!, self._r[3276]!, [_0]) + return formatWithArgumentRanges(self._s[3277]!, self._r[3277]!, [_0]) } public func Conversation_ShareMyPhoneNumber_StatusSuccess(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3278]!, self._r[3278]!, [_0]) + return formatWithArgumentRanges(self._s[3279]!, self._r[3279]!, [_0]) } - public var LocalGroup_Text: String { return self._s[3279]! } - public var PeerInfo_PaneMembers: String { return self._s[3280]! } - public var Channel_AdminLog_EmptyFilterTitle: String { return self._s[3281]! } - public var SocksProxySetup_TypeSocks: String { return self._s[3282]! } - public var ChatList_UnarchiveAction: String { return self._s[3283]! } - public var AutoNightTheme_Title: String { return self._s[3284]! } - public var InstantPage_FeedbackButton: String { return self._s[3285]! } - public var Passport_FieldAddress: String { return self._s[3286]! } + public var LocalGroup_Text: String { return self._s[3280]! } + public var PeerInfo_PaneMembers: String { return self._s[3281]! } + public var Channel_AdminLog_EmptyFilterTitle: String { return self._s[3282]! } + public var SocksProxySetup_TypeSocks: String { return self._s[3283]! } + public var ChatList_UnarchiveAction: String { return self._s[3284]! } + public var AutoNightTheme_Title: String { return self._s[3285]! } + public var InstantPage_FeedbackButton: String { return self._s[3286]! } + public var Passport_FieldAddress: String { return self._s[3287]! } public func Channel_AdminLog_SetSlowmode(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3287]!, self._r[3287]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3288]!, self._r[3288]!, [_1, _2]) } - public var Month_ShortMarch: String { return self._s[3288]! } + public var Month_ShortMarch: String { return self._s[3289]! } public func PUSH_MESSAGE_INVOICE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3289]!, self._r[3289]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3290]!, self._r[3290]!, [_1, _2]) } - public var SocksProxySetup_UsernamePlaceholder: String { return self._s[3290]! } - public var Conversation_ShareInlineBotLocationConfirmation: String { return self._s[3291]! } - public var Passport_FloodError: String { return self._s[3292]! } - public var SecretGif_Title: String { return self._s[3293]! } - public var NotificationSettings_ShowNotificationsAllAccountsInfoOn: String { return self._s[3294]! } - public var ChatList_Context_UnhideArchive: String { return self._s[3295]! } - public var Passport_Language_th: String { return self._s[3297]! } - public var Passport_Address_Address: String { return self._s[3298]! } - public var Login_InvalidLastNameError: String { return self._s[3299]! } - public var Notifications_InAppNotificationsPreview: String { return self._s[3300]! } - public var Notifications_PermissionsUnreachableTitle: String { return self._s[3301]! } - public var ChatList_Context_Archive: String { return self._s[3302]! } - public var SettingsSearch_FAQ: String { return self._s[3303]! } - public var ShareMenu_Send: String { return self._s[3304]! } - public var ChatState_Connecting: String { return self._s[3305]! } - public var WallpaperSearch_ColorYellow: String { return self._s[3307]! } - public var Month_GenNovember: String { return self._s[3309]! } - public var SettingsSearch_Synonyms_Appearance_LargeEmoji: String { return self._s[3311]! } + public var SocksProxySetup_UsernamePlaceholder: String { return self._s[3291]! } + public var Conversation_ShareInlineBotLocationConfirmation: String { return self._s[3292]! } + public var Passport_FloodError: String { return self._s[3293]! } + public var SecretGif_Title: String { return self._s[3294]! } + public var NotificationSettings_ShowNotificationsAllAccountsInfoOn: String { return self._s[3295]! } + public var ChatList_Context_UnhideArchive: String { return self._s[3296]! } + public var Passport_Language_th: String { return self._s[3298]! } + public var Passport_Address_Address: String { return self._s[3299]! } + public var Login_InvalidLastNameError: String { return self._s[3300]! } + public var Notifications_InAppNotificationsPreview: String { return self._s[3301]! } + public var Notifications_PermissionsUnreachableTitle: String { return self._s[3302]! } + public var ChatList_Context_Archive: String { return self._s[3303]! } + public var SettingsSearch_FAQ: String { return self._s[3304]! } + public var ShareMenu_Send: String { return self._s[3305]! } + public var ChatState_Connecting: String { return self._s[3306]! } + public var WallpaperSearch_ColorYellow: String { return self._s[3308]! } + public var Month_GenNovember: String { return self._s[3310]! } + public var SettingsSearch_Synonyms_Appearance_LargeEmoji: String { return self._s[3312]! } public func Conversation_ShareMyPhoneNumberConfirmation(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3312]!, self._r[3312]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3313]!, self._r[3313]!, [_1, _2]) } - public var ChatListFolder_CategoryChannels: String { return self._s[3313]! } - public var Conversation_SwipeToReplyHintText: String { return self._s[3314]! } - public var Checkout_Email: String { return self._s[3315]! } - public var NotificationsSound_Tritone: String { return self._s[3316]! } - public var Paint_Marker: String { return self._s[3318]! } - public var StickerPacksSettings_ManagingHelp: String { return self._s[3320]! } - public var Wallet_ContextMenuCopy: String { return self._s[3322]! } + public var ChatListFolder_CategoryChannels: String { return self._s[3314]! } + public var Conversation_SwipeToReplyHintText: String { return self._s[3315]! } + public var Checkout_Email: String { return self._s[3316]! } + public var NotificationsSound_Tritone: String { return self._s[3317]! } + public var Paint_Marker: String { return self._s[3319]! } + public var StickerPacksSettings_ManagingHelp: String { return self._s[3321]! } + public var Wallet_ContextMenuCopy: String { return self._s[3323]! } public func Wallet_Time_PreciseDate_m6(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3324]!, self._r[3324]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3325]!, self._r[3325]!, [_1, _2, _3]) } - public var Appearance_TextSize_Automatic: String { return self._s[3325]! } - public var Stickers_Installed: String { return self._s[3327]! } + public var Appearance_TextSize_Automatic: String { return self._s[3326]! } + public var Stickers_Installed: String { return self._s[3328]! } public func PUSH_PINNED_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3328]!, self._r[3328]!, [_1]) + return formatWithArgumentRanges(self._s[3329]!, self._r[3329]!, [_1]) } public func StickerPackActionInfo_AddedText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3329]!, self._r[3329]!, [_0]) + return formatWithArgumentRanges(self._s[3330]!, self._r[3330]!, [_0]) } - public var ChangePhoneNumberNumber_Help: String { return self._s[3330]! } + public var ChangePhoneNumberNumber_Help: String { return self._s[3331]! } public func Checkout_LiabilityAlert(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3331]!, self._r[3331]!, [_1, _1, _1, _2]) + return formatWithArgumentRanges(self._s[3332]!, self._r[3332]!, [_1, _1, _1, _2]) } - public var ChatList_UndoArchiveTitle: String { return self._s[3332]! } - public var Notification_Exceptions_Add: String { return self._s[3333]! } - public var DialogList_You: String { return self._s[3334]! } - public var ChatList_PsaLabel_covid: String { return self._s[3336]! } - public var MediaPicker_Send: String { return self._s[3338]! } - public var SettingsSearch_Synonyms_Stickers_Title: String { return self._s[3339]! } - public var Appearance_ThemePreview_ChatList_4_Text: String { return self._s[3340]! } - public var Call_AudioRouteSpeaker: String { return self._s[3341]! } - public var Watch_UserInfo_Title: String { return self._s[3342]! } - public var VoiceOver_Chat_PollFinalResults: String { return self._s[3343]! } - public var Appearance_AccentColor: String { return self._s[3345]! } + public var ChatList_UndoArchiveTitle: String { return self._s[3333]! } + public var Notification_Exceptions_Add: String { return self._s[3334]! } + public var DialogList_You: String { return self._s[3335]! } + public var ChatList_PsaLabel_covid: String { return self._s[3337]! } + public var MediaPicker_Send: String { return self._s[3339]! } + public var SettingsSearch_Synonyms_Stickers_Title: String { return self._s[3340]! } + public var Appearance_ThemePreview_ChatList_4_Text: String { return self._s[3341]! } + public var Call_AudioRouteSpeaker: String { return self._s[3342]! } + public var Watch_UserInfo_Title: String { return self._s[3343]! } + public var VoiceOver_Chat_PollFinalResults: String { return self._s[3344]! } + public var Appearance_AccentColor: String { return self._s[3346]! } public func Login_EmailPhoneSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3346]!, self._r[3346]!, [_0]) + return formatWithArgumentRanges(self._s[3347]!, self._r[3347]!, [_0]) } - public var Permissions_ContactsAllowInSettings_v0: String { return self._s[3347]! } + public var Permissions_ContactsAllowInSettings_v0: String { return self._s[3348]! } public func PUSH_CHANNEL_MESSAGE_GAME(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3348]!, self._r[3348]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3349]!, self._r[3349]!, [_1, _2]) } - public var Conversation_ClousStorageInfo_Description2: String { return self._s[3349]! } - public var WebSearch_RecentClearConfirmation: String { return self._s[3350]! } - public var Notification_CallOutgoing: String { return self._s[3351]! } - public var PrivacySettings_PasscodeAndFaceId: String { return self._s[3352]! } - public var Channel_DiscussionGroup_MakeHistoryPublic: String { return self._s[3353]! } - public var Call_RecordingDisabledMessage: String { return self._s[3354]! } - public var Message_Game: String { return self._s[3355]! } - public var Conversation_PressVolumeButtonForSound: String { return self._s[3356]! } - public var PrivacyLastSeenSettings_CustomHelp: String { return self._s[3357]! } - public var Channel_DiscussionGroup_PrivateGroup: String { return self._s[3358]! } - public var Channel_EditAdmin_PermissionAddAdmins: String { return self._s[3359]! } - public var Date_DialogDateFormat: String { return self._s[3361]! } - public var WallpaperColors_SetCustomColor: String { return self._s[3362]! } - public var Notifications_InAppNotifications: String { return self._s[3363]! } + public var Conversation_ClousStorageInfo_Description2: String { return self._s[3350]! } + public var WebSearch_RecentClearConfirmation: String { return self._s[3351]! } + public var Notification_CallOutgoing: String { return self._s[3352]! } + public var PrivacySettings_PasscodeAndFaceId: String { return self._s[3353]! } + public var Channel_DiscussionGroup_MakeHistoryPublic: String { return self._s[3354]! } + public var Call_RecordingDisabledMessage: String { return self._s[3355]! } + public var Message_Game: String { return self._s[3356]! } + public var Conversation_PressVolumeButtonForSound: String { return self._s[3357]! } + public var PrivacyLastSeenSettings_CustomHelp: String { return self._s[3358]! } + public var Channel_DiscussionGroup_PrivateGroup: String { return self._s[3359]! } + public var Channel_EditAdmin_PermissionAddAdmins: String { return self._s[3360]! } + public var Date_DialogDateFormat: String { return self._s[3362]! } + public var WallpaperColors_SetCustomColor: String { return self._s[3363]! } + public var Notifications_InAppNotifications: String { return self._s[3364]! } public func Channel_Management_RemovedBy(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3364]!, self._r[3364]!, [_0]) + return formatWithArgumentRanges(self._s[3365]!, self._r[3365]!, [_0]) } public func Settings_ApplyProxyAlert(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3365]!, self._r[3365]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3366]!, self._r[3366]!, [_1, _2]) } - public var NewContact_Title: String { return self._s[3366]! } + public var NewContact_Title: String { return self._s[3367]! } public func AutoDownloadSettings_UpToForAll(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3367]!, self._r[3367]!, [_0]) + return formatWithArgumentRanges(self._s[3368]!, self._r[3368]!, [_0]) } - public var Stats_GroupTopPoster_Promote: String { return self._s[3368]! } - public var Conversation_ViewContactDetails: String { return self._s[3369]! } + public var Stats_GroupTopPoster_Promote: String { return self._s[3369]! } + public var Conversation_ViewContactDetails: String { return self._s[3370]! } public func PUSH_CHANNEL_MESSAGE_CONTACT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3371]!, self._r[3371]!, [_1]) + return formatWithArgumentRanges(self._s[3372]!, self._r[3372]!, [_1]) } - public var Checkout_NewCard_CardholderNameTitle: String { return self._s[3372]! } - public var Passport_Identity_ExpiryDateNone: String { return self._s[3373]! } - public var PrivacySettings_Title: String { return self._s[3374]! } - public var Conversation_SilentBroadcastTooltipOff: String { return self._s[3377]! } - public var GroupRemoved_UsersSectionTitle: String { return self._s[3378]! } - public var VoiceOver_Chat_ContactEmail: String { return self._s[3379]! } - public var Contacts_PhoneNumber: String { return self._s[3380]! } - public var PeerInfo_ButtonMute: String { return self._s[3381]! } - public var TwoFactorSetup_Password_PlaceholderConfirmPassword: String { return self._s[3383]! } - public var Map_ShowPlaces: String { return self._s[3384]! } - public var ChatAdmins_Title: String { return self._s[3385]! } - public var InstantPage_Reference: String { return self._s[3387]! } - public var Wallet_Info_Updating: String { return self._s[3388]! } - public var ReportGroupLocation_Text: String { return self._s[3389]! } + public var Checkout_NewCard_CardholderNameTitle: String { return self._s[3373]! } + public var Passport_Identity_ExpiryDateNone: String { return self._s[3374]! } + public var PrivacySettings_Title: String { return self._s[3375]! } + public var Conversation_SilentBroadcastTooltipOff: String { return self._s[3378]! } + public var GroupRemoved_UsersSectionTitle: String { return self._s[3379]! } + public var VoiceOver_Chat_ContactEmail: String { return self._s[3380]! } + public var Contacts_PhoneNumber: String { return self._s[3381]! } + public var PeerInfo_ButtonMute: String { return self._s[3382]! } + public var TwoFactorSetup_Password_PlaceholderConfirmPassword: String { return self._s[3384]! } + public var Map_ShowPlaces: String { return self._s[3385]! } + public var ChatAdmins_Title: String { return self._s[3386]! } + public var InstantPage_Reference: String { return self._s[3388]! } + public var Wallet_Info_Updating: String { return self._s[3389]! } + public var ReportGroupLocation_Text: String { return self._s[3390]! } public func PUSH_CHAT_MESSAGE_FWD(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3390]!, self._r[3390]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3391]!, self._r[3391]!, [_1, _2]) } - public var Camera_FlashOff: String { return self._s[3391]! } - public var Watch_UserInfo_Block: String { return self._s[3392]! } - public var ChatSettings_Stickers: String { return self._s[3393]! } - public var ChatSettings_DownloadInBackground: String { return self._s[3394]! } - public var Appearance_ThemeCarouselTintedNight: String { return self._s[3395]! } + public var Camera_FlashOff: String { return self._s[3392]! } + public var Watch_UserInfo_Block: String { return self._s[3393]! } + public var ChatSettings_Stickers: String { return self._s[3394]! } + public var ChatSettings_DownloadInBackground: String { return self._s[3395]! } + public var Appearance_ThemeCarouselTintedNight: String { return self._s[3396]! } public func UserInfo_BlockConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3396]!, self._r[3396]!, [_0]) + return formatWithArgumentRanges(self._s[3397]!, self._r[3397]!, [_0]) } - public var Settings_ViewPhoto: String { return self._s[3397]! } - public var Login_CheckOtherSessionMessages: String { return self._s[3398]! } - public var AutoDownloadSettings_Cellular: String { return self._s[3399]! } - public var Wallet_Created_ExportErrorTitle: String { return self._s[3400]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsExceptions: String { return self._s[3401]! } - public var VoiceOver_MessageContextShare: String { return self._s[3402]! } + public var Settings_ViewPhoto: String { return self._s[3398]! } + public var Login_CheckOtherSessionMessages: String { return self._s[3399]! } + public var AutoDownloadSettings_Cellular: String { return self._s[3400]! } + public var Wallet_Created_ExportErrorTitle: String { return self._s[3401]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsExceptions: String { return self._s[3402]! } + public var VoiceOver_MessageContextShare: String { return self._s[3403]! } public func Target_InviteToGroupConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3404]!, self._r[3404]!, [_0]) + return formatWithArgumentRanges(self._s[3405]!, self._r[3405]!, [_0]) } - public var Privacy_DeleteDrafts: String { return self._s[3405]! } - public var Wallpaper_SetCustomBackgroundInfo: String { return self._s[3406]! } + public var Privacy_DeleteDrafts: String { return self._s[3406]! } + public var Wallpaper_SetCustomBackgroundInfo: String { return self._s[3407]! } public func LastSeen_AtDate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3407]!, self._r[3407]!, [_0]) + return formatWithArgumentRanges(self._s[3408]!, self._r[3408]!, [_0]) } - public var DialogList_SavedMessagesHelp: String { return self._s[3408]! } - public var Wallet_SecureStorageNotAvailable_Title: String { return self._s[3409]! } - public var DialogList_SavedMessages: String { return self._s[3410]! } - public var GroupInfo_UpgradeButton: String { return self._s[3411]! } - public var Appearance_ThemePreview_ChatList_3_Text: String { return self._s[3413]! } - public var DialogList_Pin: String { return self._s[3414]! } + public var DialogList_SavedMessagesHelp: String { return self._s[3409]! } + public var Wallet_SecureStorageNotAvailable_Title: String { return self._s[3410]! } + public var DialogList_SavedMessages: String { return self._s[3411]! } + public var GroupInfo_UpgradeButton: String { return self._s[3412]! } + public var Appearance_ThemePreview_ChatList_3_Text: String { return self._s[3414]! } + public var DialogList_Pin: String { return self._s[3415]! } public func ForwardedAuthors2(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3415]!, self._r[3415]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3416]!, self._r[3416]!, [_0, _1]) } public func Login_PhoneGenericEmailSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3416]!, self._r[3416]!, [_0]) + return formatWithArgumentRanges(self._s[3417]!, self._r[3417]!, [_0]) } - public var Notification_Exceptions_AlwaysOn: String { return self._s[3417]! } - public var UserInfo_NotificationsDisable: String { return self._s[3418]! } - public var Conversation_ContextMenuCancelEditing: String { return self._s[3419]! } - public var Paint_Outlined: String { return self._s[3420]! } - public var Activity_PlayingGame: String { return self._s[3421]! } - public var SearchImages_NoImagesFound: String { return self._s[3422]! } - public var SocksProxySetup_ProxyType: String { return self._s[3423]! } - public var AppleWatch_ReplyPresetsHelp: String { return self._s[3425]! } - public var Conversation_ContextMenuCancelSending: String { return self._s[3426]! } - public var Settings_AppLanguage: String { return self._s[3427]! } - public var TwoStepAuth_ResetAccountHelp: String { return self._s[3428]! } - public var Common_ChoosePhoto: String { return self._s[3429]! } - public var AuthSessions_AddDevice_InvalidQRCode: String { return self._s[3430]! } - public var CallFeedback_ReasonEcho: String { return self._s[3431]! } + public var Notification_Exceptions_AlwaysOn: String { return self._s[3418]! } + public var UserInfo_NotificationsDisable: String { return self._s[3419]! } + public var Conversation_UnarchiveDone: String { return self._s[3420]! } + public var Conversation_ContextMenuCancelEditing: String { return self._s[3421]! } + public var Paint_Outlined: String { return self._s[3422]! } + public var Activity_PlayingGame: String { return self._s[3423]! } + public var SearchImages_NoImagesFound: String { return self._s[3424]! } + public var SocksProxySetup_ProxyType: String { return self._s[3425]! } + public var AppleWatch_ReplyPresetsHelp: String { return self._s[3427]! } + public var Conversation_ContextMenuCancelSending: String { return self._s[3428]! } + public var Settings_AppLanguage: String { return self._s[3429]! } + public var TwoStepAuth_ResetAccountHelp: String { return self._s[3430]! } + public var Common_ChoosePhoto: String { return self._s[3431]! } + public var AuthSessions_AddDevice_InvalidQRCode: String { return self._s[3432]! } + public var CallFeedback_ReasonEcho: String { return self._s[3433]! } public func PUSH_PINNED_AUDIO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3432]!, self._r[3432]!, [_1]) + return formatWithArgumentRanges(self._s[3434]!, self._r[3434]!, [_1]) } - public var Privacy_Calls_AlwaysAllow: String { return self._s[3433]! } - public var PollResults_Collapse: String { return self._s[3434]! } - public var Activity_UploadingVideo: String { return self._s[3435]! } - public var Conversation_WalletRequiredNotNow: String { return self._s[3436]! } - public var ChannelInfo_DeleteChannelConfirmation: String { return self._s[3437]! } - public var NetworkUsageSettings_Wifi: String { return self._s[3438]! } - public var VoiceOver_Editing_ClearText: String { return self._s[3439]! } - public var PUSH_SENDER_YOU: String { return self._s[3440]! } - public var Channel_BanUser_PermissionReadMessages: String { return self._s[3441]! } - public var Checkout_PayWithTouchId: String { return self._s[3442]! } - public var Wallpaper_ResetWallpapersConfirmation: String { return self._s[3443]! } + public var Privacy_Calls_AlwaysAllow: String { return self._s[3435]! } + public var PollResults_Collapse: String { return self._s[3436]! } + public var Activity_UploadingVideo: String { return self._s[3437]! } + public var Conversation_WalletRequiredNotNow: String { return self._s[3438]! } + public var ChannelInfo_DeleteChannelConfirmation: String { return self._s[3439]! } + public var NetworkUsageSettings_Wifi: String { return self._s[3440]! } + public var VoiceOver_Editing_ClearText: String { return self._s[3441]! } + public var PUSH_SENDER_YOU: String { return self._s[3442]! } + public var Channel_BanUser_PermissionReadMessages: String { return self._s[3443]! } + public var Checkout_PayWithTouchId: String { return self._s[3444]! } + public var Wallpaper_ResetWallpapersConfirmation: String { return self._s[3445]! } public func PUSH_LOCKED_MESSAGE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3445]!, self._r[3445]!, [_1]) + return formatWithArgumentRanges(self._s[3447]!, self._r[3447]!, [_1]) } - public var Notifications_ExceptionsNone: String { return self._s[3446]! } + public var Notifications_ExceptionsNone: String { return self._s[3448]! } public func Message_ForwardedMessageShort(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3447]!, self._r[3447]!, [_0]) + return formatWithArgumentRanges(self._s[3449]!, self._r[3449]!, [_0]) } public func PUSH_PINNED_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3448]!, self._r[3448]!, [_1]) + return formatWithArgumentRanges(self._s[3450]!, self._r[3450]!, [_1]) } - public var AuthSessions_IncompleteAttempts: String { return self._s[3450]! } - public var Passport_Address_Region: String { return self._s[3453]! } - public var ChatList_DeleteChat: String { return self._s[3454]! } - public var LogoutOptions_ClearCacheTitle: String { return self._s[3455]! } - public var PhotoEditor_TiltShift: String { return self._s[3456]! } - public var Settings_FAQ_URL: String { return self._s[3457]! } - public var TwoFactorSetup_EmailVerification_ChangeAction: String { return self._s[3458]! } - public var Passport_Language_sl: String { return self._s[3460]! } - public var Settings_PrivacySettings: String { return self._s[3462]! } - public var SharedMedia_TitleLink: String { return self._s[3463]! } - public var Passport_Identity_TypePassportUploadScan: String { return self._s[3464]! } - public var Settings_SetProfilePhoto: String { return self._s[3465]! } - public var Channel_About_Help: String { return self._s[3466]! } - public var Contacts_PermissionsEnable: String { return self._s[3467]! } - public var Wallet_Sending_Title: String { return self._s[3468]! } - public var PeerInfo_PaneMedia: String { return self._s[3469]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsAlert: String { return self._s[3470]! } - public var AttachmentMenu_SendAsFiles: String { return self._s[3471]! } - public var CallFeedback_ReasonInterruption: String { return self._s[3473]! } - public var Passport_Address_AddTemporaryRegistration: String { return self._s[3474]! } - public var AutoDownloadSettings_AutodownloadVideos: String { return self._s[3475]! } - public var ChatSettings_AutoDownloadSettings_Delimeter: String { return self._s[3476]! } - public var OldChannels_Title: String { return self._s[3477]! } - public var PrivacySettings_DeleteAccountTitle: String { return self._s[3478]! } - public var AccessDenied_VideoMessageCamera: String { return self._s[3480]! } - public var Map_OpenInYandexMaps: String { return self._s[3482]! } - public var CreateGroup_ErrorLocatedGroupsTooMuch: String { return self._s[3483]! } - public var VoiceOver_MessageContextReply: String { return self._s[3484]! } - public var ChatListFolder_DiscardConfirmation: String { return self._s[3486]! } - public var PhotoEditor_SaturationTool: String { return self._s[3487]! } + public var AuthSessions_IncompleteAttempts: String { return self._s[3452]! } + public var Passport_Address_Region: String { return self._s[3455]! } + public var ChatList_DeleteChat: String { return self._s[3456]! } + public var LogoutOptions_ClearCacheTitle: String { return self._s[3457]! } + public var PhotoEditor_TiltShift: String { return self._s[3458]! } + public var Settings_FAQ_URL: String { return self._s[3459]! } + public var TwoFactorSetup_EmailVerification_ChangeAction: String { return self._s[3460]! } + public var Passport_Language_sl: String { return self._s[3462]! } + public var Settings_PrivacySettings: String { return self._s[3464]! } + public var SharedMedia_TitleLink: String { return self._s[3465]! } + public var Passport_Identity_TypePassportUploadScan: String { return self._s[3466]! } + public var Settings_SetProfilePhoto: String { return self._s[3467]! } + public var Channel_About_Help: String { return self._s[3468]! } + public var Contacts_PermissionsEnable: String { return self._s[3469]! } + public var Wallet_Sending_Title: String { return self._s[3470]! } + public var PeerInfo_PaneMedia: String { return self._s[3471]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsAlert: String { return self._s[3472]! } + public var AttachmentMenu_SendAsFiles: String { return self._s[3473]! } + public var CallFeedback_ReasonInterruption: String { return self._s[3475]! } + public var Passport_Address_AddTemporaryRegistration: String { return self._s[3476]! } + public var AutoDownloadSettings_AutodownloadVideos: String { return self._s[3477]! } + public var ChatSettings_AutoDownloadSettings_Delimeter: String { return self._s[3478]! } + public var OldChannels_Title: String { return self._s[3479]! } + public var PrivacySettings_DeleteAccountTitle: String { return self._s[3480]! } + public var AccessDenied_VideoMessageCamera: String { return self._s[3482]! } + public var Map_OpenInYandexMaps: String { return self._s[3484]! } + public var CreateGroup_ErrorLocatedGroupsTooMuch: String { return self._s[3485]! } + public var VoiceOver_MessageContextReply: String { return self._s[3486]! } + public var ChatListFolder_DiscardConfirmation: String { return self._s[3488]! } + public var PhotoEditor_SaturationTool: String { return self._s[3489]! } public func PUSH_MESSAGE_STICKER(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3488]!, self._r[3488]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3490]!, self._r[3490]!, [_1, _2]) } - public var PrivacyPhoneNumberSettings_CustomHelp: String { return self._s[3489]! } - public var Notification_Exceptions_NewException_NotificationHeader: String { return self._s[3490]! } - public var Group_OwnershipTransfer_ErrorLocatedGroupsTooMuch: String { return self._s[3491]! } + public var PrivacyPhoneNumberSettings_CustomHelp: String { return self._s[3491]! } + public var Notification_Exceptions_NewException_NotificationHeader: String { return self._s[3492]! } + public var Group_OwnershipTransfer_ErrorLocatedGroupsTooMuch: String { return self._s[3493]! } public func LOCAL_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3492]!, self._r[3492]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[3494]!, self._r[3494]!, [_1, "\(_2)"]) } - public var Appearance_ThemePreview_ChatList_2_Text: String { return self._s[3493]! } - public var Channel_Username_InvalidTooShort: String { return self._s[3495]! } - public var SettingsSearch_Synonyms_Wallet: String { return self._s[3496]! } + public var Appearance_ThemePreview_ChatList_2_Text: String { return self._s[3495]! } + public var Channel_Username_InvalidTooShort: String { return self._s[3497]! } + public var SettingsSearch_Synonyms_Wallet: String { return self._s[3498]! } public func Group_OwnershipTransfer_DescriptionInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3497]!, self._r[3497]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3499]!, self._r[3499]!, [_1, _2]) } - public var Forward_ErrorPublicPollDisabledInChannels: String { return self._s[3498]! } + public var Forward_ErrorPublicPollDisabledInChannels: String { return self._s[3500]! } public func PUSH_CHAT_MESSAGE_GAME(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3499]!, self._r[3499]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3501]!, self._r[3501]!, [_1, _2, _3]) } - public var WallpaperPreview_PatternTitle: String { return self._s[3500]! } - public var GroupInfo_PublicLinkAdd: String { return self._s[3501]! } - public var Passport_PassportInformation: String { return self._s[3504]! } - public var Theme_Unsupported: String { return self._s[3505]! } - public var WatchRemote_AlertTitle: String { return self._s[3506]! } - public var Privacy_GroupsAndChannels_NeverAllow: String { return self._s[3507]! } - public var ConvertToSupergroup_HelpText: String { return self._s[3509]! } + public var WallpaperPreview_PatternTitle: String { return self._s[3502]! } + public var GroupInfo_PublicLinkAdd: String { return self._s[3503]! } + public var Passport_PassportInformation: String { return self._s[3506]! } + public var Theme_Unsupported: String { return self._s[3507]! } + public var WatchRemote_AlertTitle: String { return self._s[3508]! } + public var Privacy_GroupsAndChannels_NeverAllow: String { return self._s[3509]! } + public var ConvertToSupergroup_HelpText: String { return self._s[3511]! } public func Time_MonthOfYear_m7(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3510]!, self._r[3510]!, [_0]) + return formatWithArgumentRanges(self._s[3512]!, self._r[3512]!, [_0]) } public func PUSH_PHONE_CALL_REQUEST(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3511]!, self._r[3511]!, [_1]) + return formatWithArgumentRanges(self._s[3513]!, self._r[3513]!, [_1]) } - public var Privacy_GroupsAndChannels_CustomHelp: String { return self._s[3512]! } - public var Wallet_Navigation_Done: String { return self._s[3514]! } - public var TwoStepAuth_RecoveryCodeInvalid: String { return self._s[3515]! } - public var AccessDenied_CameraDisabled: String { return self._s[3516]! } + public var Privacy_GroupsAndChannels_CustomHelp: String { return self._s[3514]! } + public var Wallet_Navigation_Done: String { return self._s[3516]! } + public var TwoStepAuth_RecoveryCodeInvalid: String { return self._s[3517]! } + public var AccessDenied_CameraDisabled: String { return self._s[3518]! } public func Channel_Username_UsernameIsAvailable(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3517]!, self._r[3517]!, [_0]) + return formatWithArgumentRanges(self._s[3519]!, self._r[3519]!, [_0]) } - public var ClearCache_Forever: String { return self._s[3518]! } - public var AuthSessions_AddDeviceIntro_Title: String { return self._s[3519]! } - public var CreatePoll_Quiz: String { return self._s[3520]! } - public var PhotoEditor_ContrastTool: String { return self._s[3523]! } + public var ClearCache_Forever: String { return self._s[3520]! } + public var AuthSessions_AddDeviceIntro_Title: String { return self._s[3521]! } + public var CreatePoll_Quiz: String { return self._s[3522]! } + public var PhotoEditor_ContrastTool: String { return self._s[3525]! } public func PUSH_PINNED_DOC(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3524]!, self._r[3524]!, [_1]) + return formatWithArgumentRanges(self._s[3526]!, self._r[3526]!, [_1]) } - public var DialogList_Draft: String { return self._s[3525]! } - public var Wallet_Configuration_BlockchainIdInfo: String { return self._s[3526]! } + public var DialogList_Draft: String { return self._s[3527]! } + public var Wallet_Configuration_BlockchainIdInfo: String { return self._s[3528]! } public func PeopleNearby_VisibleUntil(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3527]!, self._r[3527]!, [_0]) + return formatWithArgumentRanges(self._s[3529]!, self._r[3529]!, [_0]) } - public var ChatList_PsaAlert_covid: String { return self._s[3528]! } - public var Privacy_TopPeersDelete: String { return self._s[3530]! } - public var LoginPassword_PasswordPlaceholder: String { return self._s[3531]! } - public var Passport_Identity_TypeIdentityCardUploadScan: String { return self._s[3532]! } - public var WebSearch_RecentSectionClear: String { return self._s[3533]! } - public var EditTheme_ErrorInvalidCharacters: String { return self._s[3534]! } - public var Watch_ChatList_NoConversationsTitle: String { return self._s[3536]! } - public var PeerInfo_ButtonMore: String { return self._s[3538]! } - public var Common_Done: String { return self._s[3539]! } - public var Shortcut_SwitchAccount: String { return self._s[3540]! } - public var AuthSessions_EmptyText: String { return self._s[3541]! } - public var Wallet_Configuration_BlockchainNameChangedTitle: String { return self._s[3542]! } - public var Conversation_ShareBotContactConfirmation: String { return self._s[3543]! } - public var Tour_Title5: String { return self._s[3545]! } - public var Wallet_Settings_Title: String { return self._s[3546]! } + public var ChatList_PsaAlert_covid: String { return self._s[3530]! } + public var Privacy_TopPeersDelete: String { return self._s[3532]! } + public var LoginPassword_PasswordPlaceholder: String { return self._s[3533]! } + public var Passport_Identity_TypeIdentityCardUploadScan: String { return self._s[3534]! } + public var WebSearch_RecentSectionClear: String { return self._s[3535]! } + public var EditTheme_ErrorInvalidCharacters: String { return self._s[3536]! } + public var Watch_ChatList_NoConversationsTitle: String { return self._s[3538]! } + public var PeerInfo_ButtonMore: String { return self._s[3540]! } + public var Common_Done: String { return self._s[3541]! } + public var Shortcut_SwitchAccount: String { return self._s[3542]! } + public var AuthSessions_EmptyText: String { return self._s[3543]! } + public var Wallet_Configuration_BlockchainNameChangedTitle: String { return self._s[3544]! } + public var Conversation_ShareBotContactConfirmation: String { return self._s[3545]! } + public var Tour_Title5: String { return self._s[3547]! } + public var Wallet_Settings_Title: String { return self._s[3548]! } public func Map_DirectionsDriveEta(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3547]!, self._r[3547]!, [_0]) + return formatWithArgumentRanges(self._s[3549]!, self._r[3549]!, [_0]) } - public var ApplyLanguage_UnsufficientDataTitle: String { return self._s[3548]! } - public var Conversation_LinkDialogSave: String { return self._s[3549]! } - public var GroupInfo_ActionRestrict: String { return self._s[3550]! } - public var Checkout_Title: String { return self._s[3552]! } - public var Channel_DiscussionGroup_HeaderLabel: String { return self._s[3554]! } - public var Channel_AdminLog_CanChangeInfo: String { return self._s[3556]! } - public var Notification_RenamedGroup: String { return self._s[3557]! } - public var PeopleNearby_Groups: String { return self._s[3558]! } - public var Checkout_PayWithFaceId: String { return self._s[3559]! } - public var Channel_BanList_BlockedTitle: String { return self._s[3560]! } - public var SettingsSearch_Synonyms_Notifications_InAppNotificationsSound: String { return self._s[3562]! } - public var Checkout_WebConfirmation_Title: String { return self._s[3563]! } - public var Notifications_MessageNotificationsAlert: String { return self._s[3564]! } + public var ApplyLanguage_UnsufficientDataTitle: String { return self._s[3550]! } + public var Conversation_LinkDialogSave: String { return self._s[3551]! } + public var GroupInfo_ActionRestrict: String { return self._s[3552]! } + public var Checkout_Title: String { return self._s[3554]! } + public var Channel_DiscussionGroup_HeaderLabel: String { return self._s[3556]! } + public var Channel_AdminLog_CanChangeInfo: String { return self._s[3558]! } + public var Notification_RenamedGroup: String { return self._s[3559]! } + public var PeopleNearby_Groups: String { return self._s[3560]! } + public var Checkout_PayWithFaceId: String { return self._s[3561]! } + public var Channel_BanList_BlockedTitle: String { return self._s[3562]! } + public var SettingsSearch_Synonyms_Notifications_InAppNotificationsSound: String { return self._s[3564]! } + public var Checkout_WebConfirmation_Title: String { return self._s[3565]! } + public var Notifications_MessageNotificationsAlert: String { return self._s[3566]! } public func Activity_RemindAboutGroup(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3565]!, self._r[3565]!, [_0]) + return formatWithArgumentRanges(self._s[3567]!, self._r[3567]!, [_0]) } - public var Stats_GroupGrowthTitle: String { return self._s[3566]! } - public var Profile_AddToExisting: String { return self._s[3568]! } + public var Stats_GroupGrowthTitle: String { return self._s[3568]! } + public var Profile_AddToExisting: String { return self._s[3570]! } public func Profile_CreateEncryptedChatOutdatedError(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3569]!, self._r[3569]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3571]!, self._r[3571]!, [_0, _1]) } - public var Cache_Files: String { return self._s[3571]! } - public var Permissions_PrivacyPolicy: String { return self._s[3572]! } - public var SocksProxySetup_ConnectAndSave: String { return self._s[3573]! } - public var UserInfo_NotificationsDefaultDisabled: String { return self._s[3574]! } - public var AutoDownloadSettings_TypeContacts: String { return self._s[3576]! } - public var Appearance_ThemePreview_ChatList_1_Text: String { return self._s[3578]! } - public var Calls_NoCallsPlaceholder: String { return self._s[3579]! } + public var Cache_Files: String { return self._s[3573]! } + public var Permissions_PrivacyPolicy: String { return self._s[3574]! } + public var SocksProxySetup_ConnectAndSave: String { return self._s[3575]! } + public var UserInfo_NotificationsDefaultDisabled: String { return self._s[3576]! } + public var AutoDownloadSettings_TypeContacts: String { return self._s[3578]! } + public var Appearance_ThemePreview_ChatList_1_Text: String { return self._s[3580]! } + public var Calls_NoCallsPlaceholder: String { return self._s[3581]! } public func Wallet_Receive_ShareInvoiceUrlInfo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3580]!, self._r[3580]!, [_0]) + return formatWithArgumentRanges(self._s[3582]!, self._r[3582]!, [_0]) } - public var Channel_Username_RevokeExistingUsernamesInfo: String { return self._s[3581]! } - public var VoiceOver_AttachMedia: String { return self._s[3584]! } - public var Notifications_ExceptionsGroupPlaceholder: String { return self._s[3585]! } + public var Channel_Username_RevokeExistingUsernamesInfo: String { return self._s[3583]! } + public var VoiceOver_AttachMedia: String { return self._s[3586]! } + public var Notifications_ExceptionsGroupPlaceholder: String { return self._s[3587]! } public func PUSH_CHAT_MESSAGE_INVOICE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3586]!, self._r[3586]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3588]!, self._r[3588]!, [_1, _2, _3]) } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsSound: String { return self._s[3587]! } - public var Conversation_SetReminder_Title: String { return self._s[3588]! } - public var Passport_FieldAddressHelp: String { return self._s[3589]! } - public var Privacy_GroupsAndChannels_InviteToChannelMultipleError: String { return self._s[3590]! } - public var PUSH_REMINDER_TITLE: String { return self._s[3591]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsSound: String { return self._s[3589]! } + public var Conversation_SetReminder_Title: String { return self._s[3590]! } + public var Passport_FieldAddressHelp: String { return self._s[3591]! } + public var Privacy_GroupsAndChannels_InviteToChannelMultipleError: String { return self._s[3592]! } + public var PUSH_REMINDER_TITLE: String { return self._s[3593]! } public func Login_TermsOfService_ProceedBot(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3592]!, self._r[3592]!, [_0]) + return formatWithArgumentRanges(self._s[3594]!, self._r[3594]!, [_0]) } - public var Channel_AdminLog_EmptyTitle: String { return self._s[3593]! } - public var Privacy_Calls_NeverAllow_Title: String { return self._s[3594]! } - public var Login_UnknownError: String { return self._s[3595]! } - public var Group_UpgradeNoticeText2: String { return self._s[3598]! } - public var Watch_Compose_AddContact: String { return self._s[3599]! } - public var ClearCache_StorageServiceFiles: String { return self._s[3600]! } - public var Web_Error: String { return self._s[3601]! } - public var Paint_Neon: String { return self._s[3602]! } - public var Gif_Search: String { return self._s[3603]! } - public var Profile_MessageLifetime1h: String { return self._s[3604]! } - public var CheckoutInfo_ReceiverInfoEmailPlaceholder: String { return self._s[3605]! } - public var Channel_Username_CheckingUsername: String { return self._s[3606]! } - public var CallFeedback_ReasonSilentRemote: String { return self._s[3607]! } - public var AutoDownloadSettings_TypeChannels: String { return self._s[3608]! } - public var Channel_AboutItem: String { return self._s[3609]! } - public var Privacy_GroupsAndChannels_AlwaysAllow_Placeholder: String { return self._s[3612]! } - public var VoiceOver_Chat_VoiceMessage: String { return self._s[3613]! } - public var GroupInfo_SharedMedia: String { return self._s[3614]! } + public var Channel_AdminLog_EmptyTitle: String { return self._s[3595]! } + public var Privacy_Calls_NeverAllow_Title: String { return self._s[3596]! } + public var Login_UnknownError: String { return self._s[3597]! } + public var Group_UpgradeNoticeText2: String { return self._s[3600]! } + public var Watch_Compose_AddContact: String { return self._s[3601]! } + public var ClearCache_StorageServiceFiles: String { return self._s[3602]! } + public var Web_Error: String { return self._s[3603]! } + public var Paint_Neon: String { return self._s[3604]! } + public var Gif_Search: String { return self._s[3605]! } + public var Profile_MessageLifetime1h: String { return self._s[3606]! } + public var CheckoutInfo_ReceiverInfoEmailPlaceholder: String { return self._s[3607]! } + public var Channel_Username_CheckingUsername: String { return self._s[3608]! } + public var CallFeedback_ReasonSilentRemote: String { return self._s[3609]! } + public var AutoDownloadSettings_TypeChannels: String { return self._s[3610]! } + public var Channel_AboutItem: String { return self._s[3611]! } + public var Privacy_GroupsAndChannels_AlwaysAllow_Placeholder: String { return self._s[3614]! } + public var VoiceOver_Chat_VoiceMessage: String { return self._s[3615]! } + public var GroupInfo_SharedMedia: String { return self._s[3616]! } public func Channel_AdminLog_MessagePromotedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3615]!, self._r[3615]!, [_1]) - } - public var Call_PhoneCallInProgressMessage: String { return self._s[3616]! } - public func PUSH_CHANNEL_ALBUM(_ _1: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3617]!, self._r[3617]!, [_1]) } - public var ChatList_UndoArchiveRevealedText: String { return self._s[3618]! } - public var GroupInfo_InviteLink_RevokeAlert_Text: String { return self._s[3619]! } - public var Conversation_SearchByName_Placeholder: String { return self._s[3620]! } - public var CreatePoll_AddOption: String { return self._s[3621]! } - public var GroupInfo_Permissions_SearchPlaceholder: String { return self._s[3622]! } - public var Group_UpgradeNoticeHeader: String { return self._s[3623]! } - public var Channel_Management_AddModerator: String { return self._s[3624]! } - public var AutoDownloadSettings_MaxFileSize: String { return self._s[3625]! } - public var StickerPacksSettings_ShowStickersButton: String { return self._s[3626]! } - public var Wallet_Info_RefreshErrorNetworkText: String { return self._s[3627]! } - public var Theme_Colors_Background: String { return self._s[3628]! } - public var NotificationsSound_Hello: String { return self._s[3631]! } - public var SocksProxySetup_SavedProxies: String { return self._s[3633]! } - public var Channel_Stickers_Placeholder: String { return self._s[3635]! } + public var Call_PhoneCallInProgressMessage: String { return self._s[3618]! } + public func PUSH_CHANNEL_ALBUM(_ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3619]!, self._r[3619]!, [_1]) + } + public var ChatList_UndoArchiveRevealedText: String { return self._s[3620]! } + public var GroupInfo_InviteLink_RevokeAlert_Text: String { return self._s[3621]! } + public var Conversation_SearchByName_Placeholder: String { return self._s[3622]! } + public var CreatePoll_AddOption: String { return self._s[3623]! } + public var GroupInfo_Permissions_SearchPlaceholder: String { return self._s[3624]! } + public var Group_UpgradeNoticeHeader: String { return self._s[3625]! } + public var Channel_Management_AddModerator: String { return self._s[3626]! } + public var AutoDownloadSettings_MaxFileSize: String { return self._s[3627]! } + public var StickerPacksSettings_ShowStickersButton: String { return self._s[3628]! } + public var Wallet_Info_RefreshErrorNetworkText: String { return self._s[3629]! } + public var Theme_Colors_Background: String { return self._s[3630]! } + public var NotificationsSound_Hello: String { return self._s[3633]! } + public var SocksProxySetup_SavedProxies: String { return self._s[3635]! } + public var Channel_Stickers_Placeholder: String { return self._s[3637]! } public func Login_EmailCodeBody(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3636]!, self._r[3636]!, [_0]) + return formatWithArgumentRanges(self._s[3638]!, self._r[3638]!, [_0]) } - public var PrivacyPolicy_DeclineDeclineAndDelete: String { return self._s[3637]! } - public var Channel_Management_AddModeratorHelp: String { return self._s[3638]! } - public var ContactInfo_BirthdayLabel: String { return self._s[3639]! } - public var ChangePhoneNumberCode_RequestingACall: String { return self._s[3640]! } - public var AutoDownloadSettings_Channels: String { return self._s[3641]! } - public var Passport_Language_mn: String { return self._s[3642]! } - public var Settings_ChatFolders: String { return self._s[3643]! } + public var PrivacyPolicy_DeclineDeclineAndDelete: String { return self._s[3639]! } + public var Channel_Management_AddModeratorHelp: String { return self._s[3640]! } + public var ContactInfo_BirthdayLabel: String { return self._s[3641]! } + public var ChangePhoneNumberCode_RequestingACall: String { return self._s[3642]! } + public var AutoDownloadSettings_Channels: String { return self._s[3643]! } + public var Passport_Language_mn: String { return self._s[3644]! } + public var Settings_ChatFolders: String { return self._s[3645]! } public func ChatList_AddedToFolderTooltip(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3644]!, self._r[3644]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3646]!, self._r[3646]!, [_1, _2]) } - public var Notifications_ResetAllNotificationsHelp: String { return self._s[3647]! } - public var GroupInfo_Permissions_SlowmodeValue_Off: String { return self._s[3648]! } - public var Passport_Language_ja: String { return self._s[3650]! } - public var Settings_About_Title: String { return self._s[3651]! } - public var Settings_NotificationsAndSounds: String { return self._s[3652]! } - public var ChannelInfo_DeleteGroup: String { return self._s[3653]! } - public var Settings_BlockedUsers: String { return self._s[3654]! } + public var Notifications_ResetAllNotificationsHelp: String { return self._s[3649]! } + public var GroupInfo_Permissions_SlowmodeValue_Off: String { return self._s[3650]! } + public var Passport_Language_ja: String { return self._s[3652]! } + public var Settings_About_Title: String { return self._s[3653]! } + public var Settings_NotificationsAndSounds: String { return self._s[3654]! } + public var ChannelInfo_DeleteGroup: String { return self._s[3655]! } + public var Settings_BlockedUsers: String { return self._s[3656]! } public func Time_MonthOfYear_m4(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3655]!, self._r[3655]!, [_0]) + return formatWithArgumentRanges(self._s[3657]!, self._r[3657]!, [_0]) } - public var EditTheme_Create_Preview_OutgoingText: String { return self._s[3656]! } - public var Wallet_Weekday_Today: String { return self._s[3657]! } - public var ChatListFolderSettings_AddRecommended: String { return self._s[3658]! } - public var AutoDownloadSettings_PreloadVideo: String { return self._s[3659]! } - public var Widget_ApplicationLocked: String { return self._s[3660]! } - public var Passport_Address_AddResidentialAddress: String { return self._s[3661]! } - public var Channel_Username_Title: String { return self._s[3662]! } + public var EditTheme_Create_Preview_OutgoingText: String { return self._s[3658]! } + public var Wallet_Weekday_Today: String { return self._s[3659]! } + public var ChatListFolderSettings_AddRecommended: String { return self._s[3660]! } + public var AutoDownloadSettings_PreloadVideo: String { return self._s[3661]! } + public var Widget_ApplicationLocked: String { return self._s[3662]! } + public var Passport_Address_AddResidentialAddress: String { return self._s[3663]! } + public var Channel_Username_Title: String { return self._s[3664]! } public func Notification_RemovedGroupPhoto(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3663]!, self._r[3663]!, [_0]) + return formatWithArgumentRanges(self._s[3665]!, self._r[3665]!, [_0]) } - public var AttachmentMenu_File: String { return self._s[3665]! } - public var AppleWatch_Title: String { return self._s[3666]! } - public var Activity_RecordingVideoMessage: String { return self._s[3667]! } + public var AttachmentMenu_File: String { return self._s[3667]! } + public var AppleWatch_Title: String { return self._s[3668]! } + public var Activity_RecordingVideoMessage: String { return self._s[3669]! } public func Channel_DiscussionGroup_PublicChannelLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3668]!, self._r[3668]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3670]!, self._r[3670]!, [_1, _2]) } - public var Theme_Colors_Messages: String { return self._s[3669]! } - public var Weekday_Saturday: String { return self._s[3670]! } - public var WallpaperPreview_SwipeColorsTopText: String { return self._s[3671]! } - public var Conversation_Timer_Send: String { return self._s[3672]! } - public var Profile_CreateEncryptedChatError: String { return self._s[3673]! } - public var Common_Next: String { return self._s[3675]! } - public var Channel_Stickers_YourStickers: String { return self._s[3677]! } - public var Message_Theme: String { return self._s[3678]! } - public var Call_AudioRouteHeadphones: String { return self._s[3679]! } - public var TwoStepAuth_EnterPasswordForgot: String { return self._s[3681]! } - public var Watch_Contacts_NoResults: String { return self._s[3683]! } - public var PhotoEditor_TintTool: String { return self._s[3686]! } - public var LoginPassword_ResetAccount: String { return self._s[3688]! } - public var Settings_SavedMessages: String { return self._s[3689]! } - public var SettingsSearch_Synonyms_Appearance_Animations: String { return self._s[3690]! } - public var Bot_GenericSupportStatus: String { return self._s[3691]! } - public var StickerPack_Add: String { return self._s[3692]! } - public var Checkout_TotalAmount: String { return self._s[3693]! } - public var Your_cards_number_is_invalid: String { return self._s[3694]! } - public var SettingsSearch_Synonyms_Appearance_AutoNightTheme: String { return self._s[3695]! } - public var VoiceOver_Chat_VideoMessage: String { return self._s[3696]! } + public var Theme_Colors_Messages: String { return self._s[3671]! } + public var Weekday_Saturday: String { return self._s[3672]! } + public var WallpaperPreview_SwipeColorsTopText: String { return self._s[3673]! } + public var Conversation_Timer_Send: String { return self._s[3674]! } + public var Profile_CreateEncryptedChatError: String { return self._s[3675]! } + public var Common_Next: String { return self._s[3677]! } + public var Channel_Stickers_YourStickers: String { return self._s[3679]! } + public var Message_Theme: String { return self._s[3680]! } + public var Call_AudioRouteHeadphones: String { return self._s[3681]! } + public var TwoStepAuth_EnterPasswordForgot: String { return self._s[3683]! } + public var Watch_Contacts_NoResults: String { return self._s[3685]! } + public var PhotoEditor_TintTool: String { return self._s[3688]! } + public var LoginPassword_ResetAccount: String { return self._s[3690]! } + public var Settings_SavedMessages: String { return self._s[3691]! } + public var SettingsSearch_Synonyms_Appearance_Animations: String { return self._s[3692]! } + public var Bot_GenericSupportStatus: String { return self._s[3693]! } + public var StickerPack_Add: String { return self._s[3694]! } + public var Checkout_TotalAmount: String { return self._s[3695]! } + public var Your_cards_number_is_invalid: String { return self._s[3696]! } + public var SettingsSearch_Synonyms_Appearance_AutoNightTheme: String { return self._s[3697]! } + public var VoiceOver_Chat_VideoMessage: String { return self._s[3698]! } public func ChangePhoneNumberCode_CallTimer(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3697]!, self._r[3697]!, [_0]) + return formatWithArgumentRanges(self._s[3699]!, self._r[3699]!, [_0]) } public func GroupPermission_AddedInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3698]!, self._r[3698]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3700]!, self._r[3700]!, [_1, _2]) } - public var ChatSettings_ConnectionType_UseSocks5: String { return self._s[3699]! } + public var ChatSettings_ConnectionType_UseSocks5: String { return self._s[3701]! } public func PUSH_CHAT_PHOTO_EDITED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3701]!, self._r[3701]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3703]!, self._r[3703]!, [_1, _2]) } public func Conversation_RestrictedTextTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3702]!, self._r[3702]!, [_0]) + return formatWithArgumentRanges(self._s[3704]!, self._r[3704]!, [_0]) } - public var GroupInfo_InviteLink_ShareLink: String { return self._s[3703]! } - public var StickerPack_Share: String { return self._s[3704]! } - public var Passport_DeleteAddress: String { return self._s[3705]! } - public var Settings_Passport: String { return self._s[3706]! } - public var SharedMedia_EmptyFilesText: String { return self._s[3707]! } - public var Conversation_DeleteMessagesForMe: String { return self._s[3708]! } - public var PasscodeSettings_AutoLock_IfAwayFor_1hour: String { return self._s[3709]! } - public var Contacts_PermissionsText: String { return self._s[3710]! } - public var Group_Setup_HistoryVisible: String { return self._s[3711]! } - public var Wallet_Month_ShortDecember: String { return self._s[3713]! } - public var PrivacySettings_AutoArchiveTitle: String { return self._s[3715]! } - public var Channel_EditAdmin_PermissionEnabledByDefault: String { return self._s[3716]! } - public var Passport_Address_AddRentalAgreement: String { return self._s[3717]! } - public var SocksProxySetup_Title: String { return self._s[3718]! } - public var Notification_Mute1h: String { return self._s[3719]! } + public var GroupInfo_InviteLink_ShareLink: String { return self._s[3705]! } + public var StickerPack_Share: String { return self._s[3706]! } + public var Passport_DeleteAddress: String { return self._s[3707]! } + public var Settings_Passport: String { return self._s[3708]! } + public var SharedMedia_EmptyFilesText: String { return self._s[3709]! } + public var Conversation_DeleteMessagesForMe: String { return self._s[3710]! } + public var PasscodeSettings_AutoLock_IfAwayFor_1hour: String { return self._s[3711]! } + public var Contacts_PermissionsText: String { return self._s[3712]! } + public var Group_Setup_HistoryVisible: String { return self._s[3713]! } + public var Wallet_Month_ShortDecember: String { return self._s[3715]! } + public var PrivacySettings_AutoArchiveTitle: String { return self._s[3717]! } + public var Channel_EditAdmin_PermissionEnabledByDefault: String { return self._s[3718]! } + public var Passport_Address_AddRentalAgreement: String { return self._s[3719]! } + public var SocksProxySetup_Title: String { return self._s[3720]! } + public var Notification_Mute1h: String { return self._s[3721]! } public func Passport_Email_CodeHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3720]!, self._r[3720]!, [_0]) + return formatWithArgumentRanges(self._s[3722]!, self._r[3722]!, [_0]) } - public var NotificationSettings_ShowNotificationsAllAccountsInfoOff: String { return self._s[3721]! } + public var NotificationSettings_ShowNotificationsAllAccountsInfoOff: String { return self._s[3723]! } public func PUSH_PINNED_GEOLIVE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3722]!, self._r[3722]!, [_1]) + return formatWithArgumentRanges(self._s[3724]!, self._r[3724]!, [_1]) } - public var FastTwoStepSetup_PasswordSection: String { return self._s[3723]! } - public var NetworkUsageSettings_ResetStatsConfirmation: String { return self._s[3726]! } - public var InfoPlist_NSFaceIDUsageDescription: String { return self._s[3728]! } - public var DialogList_NoMessagesText: String { return self._s[3729]! } - public var Privacy_ContactsResetConfirmation: String { return self._s[3730]! } - public var Privacy_Calls_P2PHelp: String { return self._s[3731]! } - public var Channel_DiscussionGroup_SearchPlaceholder: String { return self._s[3733]! } - public var Your_cards_expiration_year_is_invalid: String { return self._s[3734]! } - public var Common_TakePhotoOrVideo: String { return self._s[3735]! } - public var Wallet_Words_Text: String { return self._s[3736]! } - public var Call_StatusBusy: String { return self._s[3737]! } - public var Conversation_PinnedMessage: String { return self._s[3738]! } - public var AutoDownloadSettings_VoiceMessagesTitle: String { return self._s[3739]! } - public var ChatList_EmptyChatListNewMessage: String { return self._s[3740]! } - public var Wallet_Configuration_BlockchainNameChangedProceed: String { return self._s[3741]! } - public var TwoStepAuth_SetupPasswordConfirmFailed: String { return self._s[3742]! } - public var Undo_ChatCleared: String { return self._s[3743]! } - public var CreatePoll_Explanation: String { return self._s[3744]! } - public var AppleWatch_ReplyPresets: String { return self._s[3745]! } - public var Passport_DiscardMessageDescription: String { return self._s[3747]! } - public var Login_NetworkError: String { return self._s[3748]! } + public var FastTwoStepSetup_PasswordSection: String { return self._s[3725]! } + public var NetworkUsageSettings_ResetStatsConfirmation: String { return self._s[3728]! } + public var InfoPlist_NSFaceIDUsageDescription: String { return self._s[3730]! } + public var DialogList_NoMessagesText: String { return self._s[3731]! } + public var Privacy_ContactsResetConfirmation: String { return self._s[3732]! } + public var Privacy_Calls_P2PHelp: String { return self._s[3733]! } + public var Channel_DiscussionGroup_SearchPlaceholder: String { return self._s[3735]! } + public var Your_cards_expiration_year_is_invalid: String { return self._s[3736]! } + public var Common_TakePhotoOrVideo: String { return self._s[3737]! } + public var Wallet_Words_Text: String { return self._s[3738]! } + public var Call_StatusBusy: String { return self._s[3739]! } + public var Conversation_PinnedMessage: String { return self._s[3740]! } + public var AutoDownloadSettings_VoiceMessagesTitle: String { return self._s[3741]! } + public var ChatList_EmptyChatListNewMessage: String { return self._s[3742]! } + public var Wallet_Configuration_BlockchainNameChangedProceed: String { return self._s[3743]! } + public var TwoStepAuth_SetupPasswordConfirmFailed: String { return self._s[3744]! } + public var Undo_ChatCleared: String { return self._s[3745]! } + public var CreatePoll_Explanation: String { return self._s[3746]! } + public var AppleWatch_ReplyPresets: String { return self._s[3747]! } + public var Passport_DiscardMessageDescription: String { return self._s[3749]! } + public var Login_NetworkError: String { return self._s[3750]! } public func Notification_PinnedRoundMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3749]!, self._r[3749]!, [_0]) + return formatWithArgumentRanges(self._s[3751]!, self._r[3751]!, [_0]) } public func Channel_AdminLog_MessageRemovedChannelUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3750]!, self._r[3750]!, [_0]) + return formatWithArgumentRanges(self._s[3752]!, self._r[3752]!, [_0]) } - public var SocksProxySetup_PasswordPlaceholder: String { return self._s[3751]! } - public var Wallet_WordCheck_ViewWords: String { return self._s[3753]! } - public var Login_ResetAccountProtected_LimitExceeded: String { return self._s[3754]! } + public var SocksProxySetup_PasswordPlaceholder: String { return self._s[3753]! } + public var Wallet_WordCheck_ViewWords: String { return self._s[3755]! } + public var Login_ResetAccountProtected_LimitExceeded: String { return self._s[3756]! } public func Watch_LastSeen_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3756]!, self._r[3756]!, [_0]) + return formatWithArgumentRanges(self._s[3758]!, self._r[3758]!, [_0]) } - public var Call_ConnectionErrorMessage: String { return self._s[3757]! } - public var VoiceOver_Chat_Music: String { return self._s[3758]! } - public var ChatListFolder_CategoryContacts: String { return self._s[3759]! } - public var SettingsSearch_Synonyms_Notifications_MessageNotificationsSound: String { return self._s[3760]! } - public var Compose_GroupTokenListPlaceholder: String { return self._s[3762]! } - public var ConversationMedia_Title: String { return self._s[3763]! } - public var EncryptionKey_Title: String { return self._s[3765]! } - public var TwoStepAuth_EnterPasswordTitle: String { return self._s[3766]! } - public var Notification_Exceptions_AddException: String { return self._s[3767]! } - public var PrivacySettings_BlockedPeersEmpty: String { return self._s[3768]! } - public var Profile_MessageLifetime1m: String { return self._s[3769]! } + public var Call_ConnectionErrorMessage: String { return self._s[3759]! } + public var VoiceOver_Chat_Music: String { return self._s[3760]! } + public var ChatListFolder_CategoryContacts: String { return self._s[3761]! } + public var SettingsSearch_Synonyms_Notifications_MessageNotificationsSound: String { return self._s[3762]! } + public var Compose_GroupTokenListPlaceholder: String { return self._s[3764]! } + public var ConversationMedia_Title: String { return self._s[3765]! } + public var EncryptionKey_Title: String { return self._s[3767]! } + public var TwoStepAuth_EnterPasswordTitle: String { return self._s[3768]! } + public var Notification_Exceptions_AddException: String { return self._s[3769]! } + public var PrivacySettings_BlockedPeersEmpty: String { return self._s[3770]! } + public var Profile_MessageLifetime1m: String { return self._s[3771]! } public func Channel_AdminLog_MessageUnkickedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3770]!, self._r[3770]!, [_1]) + return formatWithArgumentRanges(self._s[3772]!, self._r[3772]!, [_1]) } - public var Month_GenMay: String { return self._s[3771]! } + public var Month_GenMay: String { return self._s[3773]! } public func LiveLocationUpdated_TodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3772]!, self._r[3772]!, [_0]) + return formatWithArgumentRanges(self._s[3774]!, self._r[3774]!, [_0]) } - public var PeopleNearby_Users: String { return self._s[3773]! } - public var Wallet_Send_AddressInfo: String { return self._s[3774]! } - public var ChannelMembers_WhoCanAddMembersAllHelp: String { return self._s[3775]! } - public var AutoDownloadSettings_ResetSettings: String { return self._s[3776]! } + public var PeopleNearby_Users: String { return self._s[3775]! } + public var Wallet_Send_AddressInfo: String { return self._s[3776]! } + public var ChannelMembers_WhoCanAddMembersAllHelp: String { return self._s[3777]! } + public var AutoDownloadSettings_ResetSettings: String { return self._s[3778]! } public func Wallet_Updated_AtDate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3778]!, self._r[3778]!, [_0]) + return formatWithArgumentRanges(self._s[3780]!, self._r[3780]!, [_0]) } - public var Stats_LoadingTitle: String { return self._s[3779]! } - public var Conversation_EmptyPlaceholder: String { return self._s[3780]! } - public var Passport_Address_AddPassportRegistration: String { return self._s[3781]! } - public var Notifications_ChannelNotificationsAlert: String { return self._s[3782]! } - public var ChatSettings_AutoDownloadUsingCellular: String { return self._s[3783]! } - public var Camera_TapAndHoldForVideo: String { return self._s[3784]! } - public var Channel_JoinChannel: String { return self._s[3787]! } - public var Appearance_Animations: String { return self._s[3790]! } + public var Stats_LoadingTitle: String { return self._s[3781]! } + public var Conversation_EmptyPlaceholder: String { return self._s[3782]! } + public var Passport_Address_AddPassportRegistration: String { return self._s[3783]! } + public var Notifications_ChannelNotificationsAlert: String { return self._s[3784]! } + public var ChatSettings_AutoDownloadUsingCellular: String { return self._s[3785]! } + public var Camera_TapAndHoldForVideo: String { return self._s[3786]! } + public var Channel_JoinChannel: String { return self._s[3789]! } + public var Appearance_Animations: String { return self._s[3792]! } public func Notification_MessageLifetimeChanged(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3791]!, self._r[3791]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3793]!, self._r[3793]!, [_1, _2]) } - public var Stickers_GroupStickers: String { return self._s[3793]! } - public var Appearance_ShareTheme: String { return self._s[3794]! } - public var TwoFactorSetup_Hint_Placeholder: String { return self._s[3795]! } - public var ConvertToSupergroup_HelpTitle: String { return self._s[3799]! } - public var StickerPackActionInfo_RemovedTitle: String { return self._s[3800]! } - public var Passport_Address_Street: String { return self._s[3801]! } - public var Conversation_AddContact: String { return self._s[3802]! } - public var Login_PhonePlaceholder: String { return self._s[3803]! } - public var Channel_Members_InviteLink: String { return self._s[3805]! } - public var Bot_Stop: String { return self._s[3806]! } - public var SettingsSearch_Synonyms_Proxy_UseForCalls: String { return self._s[3808]! } - public var Notification_PassportValueAddress: String { return self._s[3809]! } - public var Month_ShortJuly: String { return self._s[3810]! } - public var Passport_Address_TypeTemporaryRegistrationUploadScan: String { return self._s[3811]! } - public var Channel_AdminLog_BanSendMedia: String { return self._s[3812]! } - public var Passport_Identity_ReverseSide: String { return self._s[3813]! } - public var Watch_Stickers_Recents: String { return self._s[3817]! } - public var PrivacyLastSeenSettings_EmpryUsersPlaceholder: String { return self._s[3819]! } - public var Map_SendThisLocation: String { return self._s[3820]! } + public var Stickers_GroupStickers: String { return self._s[3795]! } + public var Appearance_ShareTheme: String { return self._s[3796]! } + public var TwoFactorSetup_Hint_Placeholder: String { return self._s[3797]! } + public var ConvertToSupergroup_HelpTitle: String { return self._s[3801]! } + public var StickerPackActionInfo_RemovedTitle: String { return self._s[3802]! } + public var Passport_Address_Street: String { return self._s[3803]! } + public var Conversation_AddContact: String { return self._s[3804]! } + public var Login_PhonePlaceholder: String { return self._s[3805]! } + public var Channel_Members_InviteLink: String { return self._s[3807]! } + public var Bot_Stop: String { return self._s[3808]! } + public var SettingsSearch_Synonyms_Proxy_UseForCalls: String { return self._s[3810]! } + public var Notification_PassportValueAddress: String { return self._s[3811]! } + public var Month_ShortJuly: String { return self._s[3812]! } + public var Passport_Address_TypeTemporaryRegistrationUploadScan: String { return self._s[3813]! } + public var Channel_AdminLog_BanSendMedia: String { return self._s[3814]! } + public var Passport_Identity_ReverseSide: String { return self._s[3815]! } + public var Watch_Stickers_Recents: String { return self._s[3819]! } + public var PrivacyLastSeenSettings_EmpryUsersPlaceholder: String { return self._s[3821]! } + public var Map_SendThisLocation: String { return self._s[3822]! } public func Time_MonthOfYear_m1(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3821]!, self._r[3821]!, [_0]) + return formatWithArgumentRanges(self._s[3823]!, self._r[3823]!, [_0]) } public func InviteText_SingleContact(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3822]!, self._r[3822]!, [_0]) + return formatWithArgumentRanges(self._s[3824]!, self._r[3824]!, [_0]) } - public var ConvertToSupergroup_Note: String { return self._s[3823]! } - public var Wallet_Intro_NotNow: String { return self._s[3824]! } - public var Stats_GroupMembers: String { return self._s[3825]! } + public var ConvertToSupergroup_Note: String { return self._s[3825]! } + public var Wallet_Intro_NotNow: String { return self._s[3826]! } + public var Stats_GroupMembers: String { return self._s[3827]! } public func FileSize_MB(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3826]!, self._r[3826]!, [_0]) + return formatWithArgumentRanges(self._s[3828]!, self._r[3828]!, [_0]) } - public var NetworkUsageSettings_GeneralDataSection: String { return self._s[3827]! } + public var NetworkUsageSettings_GeneralDataSection: String { return self._s[3829]! } public func Compatibility_SecretMediaVersionTooLow(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3828]!, self._r[3828]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3830]!, self._r[3830]!, [_0, _1]) } - public var Login_CallRequestState3: String { return self._s[3830]! } - public var Wallpaper_SearchShort: String { return self._s[3831]! } - public var SettingsSearch_Synonyms_Appearance_ColorTheme: String { return self._s[3833]! } - public var PasscodeSettings_UnlockWithFaceId: String { return self._s[3834]! } - public var Channel_BotDoesntSupportGroups: String { return self._s[3835]! } + public var Login_CallRequestState3: String { return self._s[3832]! } + public var Wallpaper_SearchShort: String { return self._s[3833]! } + public var SettingsSearch_Synonyms_Appearance_ColorTheme: String { return self._s[3835]! } + public var PasscodeSettings_UnlockWithFaceId: String { return self._s[3836]! } + public var Channel_BotDoesntSupportGroups: String { return self._s[3837]! } public func PUSH_CHAT_MESSAGE_GEOLIVE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3836]!, self._r[3836]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3838]!, self._r[3838]!, [_1, _2]) } - public var Channel_AdminLogFilter_Title: String { return self._s[3837]! } - public var Appearance_ThemePreview_Chat_4_Text: String { return self._s[3839]! } - public var Notifications_GroupNotificationsExceptions: String { return self._s[3842]! } + public var Channel_AdminLogFilter_Title: String { return self._s[3839]! } + public var Appearance_ThemePreview_Chat_4_Text: String { return self._s[3841]! } + public var Notifications_GroupNotificationsExceptions: String { return self._s[3844]! } public func FileSize_B(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3843]!, self._r[3843]!, [_0]) + return formatWithArgumentRanges(self._s[3845]!, self._r[3845]!, [_0]) } - public var Passport_CorrectErrors: String { return self._s[3844]! } - public var VoiceOver_Chat_YourAnonymousPoll: String { return self._s[3845]! } + public var Passport_CorrectErrors: String { return self._s[3846]! } + public var VoiceOver_Chat_YourAnonymousPoll: String { return self._s[3847]! } public func Channel_MessageTitleUpdated(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3846]!, self._r[3846]!, [_0]) + return formatWithArgumentRanges(self._s[3848]!, self._r[3848]!, [_0]) } - public var Map_SendMyCurrentLocation: String { return self._s[3847]! } - public var Channel_DiscussionGroup: String { return self._s[3848]! } - public var TwoFactorSetup_Email_SkipConfirmationSkip: String { return self._s[3849]! } + public var Map_SendMyCurrentLocation: String { return self._s[3849]! } + public var Channel_DiscussionGroup: String { return self._s[3850]! } + public var TwoFactorSetup_Email_SkipConfirmationSkip: String { return self._s[3851]! } public func PUSH_PINNED_CONTACT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3850]!, self._r[3850]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3852]!, self._r[3852]!, [_1, _2]) } - public var SharedMedia_SearchNoResults: String { return self._s[3851]! } - public var Permissions_NotificationsText_v0: String { return self._s[3852]! } - public var Channel_EditAdmin_PermissionDeleteMessagesOfOthers: String { return self._s[3853]! } - public var Appearance_AppIcon: String { return self._s[3854]! } - public var Appearance_ThemePreview_ChatList_3_AuthorName: String { return self._s[3855]! } - public var LoginPassword_FloodError: String { return self._s[3856]! } - public var Wallet_Send_OwnAddressAlertProceed: String { return self._s[3858]! } - public var Group_Setup_HistoryHiddenHelp: String { return self._s[3859]! } + public var SharedMedia_SearchNoResults: String { return self._s[3853]! } + public var Permissions_NotificationsText_v0: String { return self._s[3854]! } + public var Channel_EditAdmin_PermissionDeleteMessagesOfOthers: String { return self._s[3855]! } + public var Appearance_AppIcon: String { return self._s[3856]! } + public var Appearance_ThemePreview_ChatList_3_AuthorName: String { return self._s[3857]! } + public var LoginPassword_FloodError: String { return self._s[3858]! } + public var Wallet_Send_OwnAddressAlertProceed: String { return self._s[3860]! } + public var Group_Setup_HistoryHiddenHelp: String { return self._s[3861]! } public func TwoStepAuth_PendingEmailHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3860]!, self._r[3860]!, [_0]) - } - public var Passport_Language_bn: String { return self._s[3861]! } - public func DialogList_SingleUploadingPhotoSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3862]!, self._r[3862]!, [_0]) } - public var ChatList_Context_Pin: String { return self._s[3863]! } - public func Notification_PinnedAudioMessage(_ _0: String) -> (String, [(Int, NSRange)]) { + public var Passport_Language_bn: String { return self._s[3863]! } + public func DialogList_SingleUploadingPhotoSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3864]!, self._r[3864]!, [_0]) } + public var ChatList_Context_Pin: String { return self._s[3865]! } + public func Notification_PinnedAudioMessage(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3866]!, self._r[3866]!, [_0]) + } public func Channel_AdminLog_MessageChangedGroupStickerPack(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3865]!, self._r[3865]!, [_0]) + return formatWithArgumentRanges(self._s[3867]!, self._r[3867]!, [_0]) } - public var Wallet_Navigation_Close: String { return self._s[3866]! } - public var GroupInfo_InvitationLinkGroupFull: String { return self._s[3870]! } - public var Group_EditAdmin_PermissionChangeInfo: String { return self._s[3872]! } - public var Wallet_Month_GenDecember: String { return self._s[3873]! } - public var Contacts_PermissionsAllow: String { return self._s[3874]! } - public var ReportPeer_ReasonCopyright: String { return self._s[3875]! } - public var Channel_EditAdmin_PermissinAddAdminOn: String { return self._s[3876]! } - public var WallpaperPreview_Pattern: String { return self._s[3877]! } - public var Paint_Duplicate: String { return self._s[3878]! } - public var Passport_Address_Country: String { return self._s[3879]! } - public var Notification_RenamedChannel: String { return self._s[3881]! } - public var DialogList_UnknownPinLimitError: String { return self._s[3882]! } - public var CheckoutInfo_ErrorPostcodeInvalid: String { return self._s[3883]! } - public var ChatList_Context_Unmute: String { return self._s[3884]! } - public var KeyCommand_SearchInChat: String { return self._s[3885]! } - public var Group_MessagePhotoUpdated: String { return self._s[3886]! } - public var Channel_BanUser_PermissionSendMedia: String { return self._s[3887]! } - public var Conversation_ContextMenuBan: String { return self._s[3888]! } - public var TwoStepAuth_EmailSent: String { return self._s[3889]! } - public var Settings_SetProfilePhotoOrVideo: String { return self._s[3890]! } - public var MessagePoll_NoVotes: String { return self._s[3891]! } - public var Wallet_Send_ErrorNotEnoughFundsTitle: String { return self._s[3892]! } - public var Passport_Language_is: String { return self._s[3894]! } - public var PeopleNearby_UsersEmpty: String { return self._s[3896]! } - public var Tour_Text5: String { return self._s[3897]! } + public var Wallet_Navigation_Close: String { return self._s[3868]! } + public var GroupInfo_InvitationLinkGroupFull: String { return self._s[3872]! } + public var Group_EditAdmin_PermissionChangeInfo: String { return self._s[3874]! } + public var Wallet_Month_GenDecember: String { return self._s[3875]! } + public var Contacts_PermissionsAllow: String { return self._s[3876]! } + public var ReportPeer_ReasonCopyright: String { return self._s[3877]! } + public var Channel_EditAdmin_PermissinAddAdminOn: String { return self._s[3878]! } + public var WallpaperPreview_Pattern: String { return self._s[3879]! } + public var Paint_Duplicate: String { return self._s[3880]! } + public var Passport_Address_Country: String { return self._s[3881]! } + public var Notification_RenamedChannel: String { return self._s[3883]! } + public var DialogList_UnknownPinLimitError: String { return self._s[3884]! } + public var CheckoutInfo_ErrorPostcodeInvalid: String { return self._s[3885]! } + public var ChatList_Context_Unmute: String { return self._s[3886]! } + public var KeyCommand_SearchInChat: String { return self._s[3887]! } + public var Group_MessagePhotoUpdated: String { return self._s[3888]! } + public var Channel_BanUser_PermissionSendMedia: String { return self._s[3889]! } + public var Conversation_ContextMenuBan: String { return self._s[3890]! } + public var TwoStepAuth_EmailSent: String { return self._s[3891]! } + public var Settings_SetProfilePhotoOrVideo: String { return self._s[3892]! } + public var MessagePoll_NoVotes: String { return self._s[3893]! } + public var Wallet_Send_ErrorNotEnoughFundsTitle: String { return self._s[3894]! } + public var Passport_Language_is: String { return self._s[3896]! } + public var PeopleNearby_UsersEmpty: String { return self._s[3898]! } + public var Tour_Text5: String { return self._s[3899]! } public func Call_GroupFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3900]!, self._r[3900]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3902]!, self._r[3902]!, [_1, _2]) } - public var Undo_SecretChatDeleted: String { return self._s[3901]! } - public var SocksProxySetup_ShareQRCode: String { return self._s[3902]! } + public var Undo_SecretChatDeleted: String { return self._s[3903]! } + public var SocksProxySetup_ShareQRCode: String { return self._s[3904]! } public func VoiceOver_Chat_Size(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3903]!, self._r[3903]!, [_0]) + return formatWithArgumentRanges(self._s[3905]!, self._r[3905]!, [_0]) } - public var Forward_ErrorDisabledForChat: String { return self._s[3904]! } - public var LogoutOptions_ChangePhoneNumberText: String { return self._s[3906]! } - public var Paint_Edit: String { return self._s[3908]! } - public var ScheduledMessages_ReminderNotification: String { return self._s[3910]! } - public var Undo_DeletedGroup: String { return self._s[3912]! } - public var LoginPassword_ForgotPassword: String { return self._s[3913]! } - public var Wallet_WordImport_IncorrectTitle: String { return self._s[3914]! } - public var GroupInfo_GroupNamePlaceholder: String { return self._s[3915]! } + public var Forward_ErrorDisabledForChat: String { return self._s[3906]! } + public var LogoutOptions_ChangePhoneNumberText: String { return self._s[3908]! } + public var Paint_Edit: String { return self._s[3910]! } + public var ScheduledMessages_ReminderNotification: String { return self._s[3912]! } + public var Undo_DeletedGroup: String { return self._s[3914]! } + public var LoginPassword_ForgotPassword: String { return self._s[3915]! } + public var Wallet_WordImport_IncorrectTitle: String { return self._s[3916]! } + public var GroupInfo_GroupNamePlaceholder: String { return self._s[3917]! } public func Notification_Kicked(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3916]!, self._r[3916]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3918]!, self._r[3918]!, [_0, _1]) } - public var AppWallet_TransactionInfo_FeeInfoURL: String { return self._s[3917]! } - public var Conversation_InputTextCaptionPlaceholder: String { return self._s[3918]! } - public var AutoDownloadSettings_VideoMessagesTitle: String { return self._s[3919]! } - public var Conversation_PinMessageAlertGroup: String { return self._s[3920]! } - public var Passport_Language_uz: String { return self._s[3921]! } - public var SettingsSearch_Synonyms_Privacy_GroupsAndChannels: String { return self._s[3922]! } - public var Map_StopLiveLocation: String { return self._s[3924]! } - public var VoiceOver_MessageContextSend: String { return self._s[3926]! } - public var PasscodeSettings_Help: String { return self._s[3927]! } - public var NotificationsSound_Input: String { return self._s[3928]! } - public var ProfilePhoto_MainVideo: String { return self._s[3930]! } - public var Share_Title: String { return self._s[3932]! } - public var LogoutOptions_Title: String { return self._s[3933]! } - public var Wallet_Send_AddressText: String { return self._s[3934]! } - public var Login_TermsOfServiceAgree: String { return self._s[3935]! } - public var Compose_NewEncryptedChatTitle: String { return self._s[3936]! } - public var Channel_AdminLog_TitleSelectedEvents: String { return self._s[3937]! } - public var Channel_EditAdmin_PermissionEditMessages: String { return self._s[3938]! } - public var EnterPasscode_EnterTitle: String { return self._s[3939]! } + public var AppWallet_TransactionInfo_FeeInfoURL: String { return self._s[3919]! } + public var Conversation_InputTextCaptionPlaceholder: String { return self._s[3920]! } + public var AutoDownloadSettings_VideoMessagesTitle: String { return self._s[3921]! } + public var Conversation_PinMessageAlertGroup: String { return self._s[3922]! } + public var Passport_Language_uz: String { return self._s[3923]! } + public var SettingsSearch_Synonyms_Privacy_GroupsAndChannels: String { return self._s[3924]! } + public var Map_StopLiveLocation: String { return self._s[3926]! } + public var VoiceOver_MessageContextSend: String { return self._s[3928]! } + public var PasscodeSettings_Help: String { return self._s[3929]! } + public var NotificationsSound_Input: String { return self._s[3930]! } + public var ProfilePhoto_MainVideo: String { return self._s[3932]! } + public var Share_Title: String { return self._s[3934]! } + public var LogoutOptions_Title: String { return self._s[3935]! } + public var Wallet_Send_AddressText: String { return self._s[3936]! } + public var Login_TermsOfServiceAgree: String { return self._s[3937]! } + public var Compose_NewEncryptedChatTitle: String { return self._s[3938]! } + public var Channel_AdminLog_TitleSelectedEvents: String { return self._s[3939]! } + public var Channel_EditAdmin_PermissionEditMessages: String { return self._s[3940]! } + public var EnterPasscode_EnterTitle: String { return self._s[3941]! } public func Call_PrivacyErrorMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3940]!, self._r[3940]!, [_0]) + return formatWithArgumentRanges(self._s[3942]!, self._r[3942]!, [_0]) } - public var Settings_CopyPhoneNumber: String { return self._s[3941]! } - public var Conversation_AddToContacts: String { return self._s[3942]! } + public var Settings_CopyPhoneNumber: String { return self._s[3943]! } + public var Conversation_AddToContacts: String { return self._s[3944]! } public func VoiceOver_Chat_ReplyFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3943]!, self._r[3943]!, [_0]) - } - public var NotificationsSound_Keys: String { return self._s[3944]! } - public func Call_ParticipantVersionOutdatedError(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3945]!, self._r[3945]!, [_0]) } - public var Notification_MessageLifetime1w: String { return self._s[3946]! } - public var Message_Video: String { return self._s[3947]! } - public var AutoDownloadSettings_CellularTitle: String { return self._s[3948]! } - public func PUSH_CHANNEL_MESSAGE_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3949]!, self._r[3949]!, [_1]) + public var NotificationsSound_Keys: String { return self._s[3946]! } + public func Call_ParticipantVersionOutdatedError(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3947]!, self._r[3947]!, [_0]) } - public var Wallet_Receive_AmountInfo: String { return self._s[3952]! } - public var Stats_Overview: String { return self._s[3953]! } + public var Notification_MessageLifetime1w: String { return self._s[3948]! } + public var Message_Video: String { return self._s[3949]! } + public var AutoDownloadSettings_CellularTitle: String { return self._s[3950]! } + public func PUSH_CHANNEL_MESSAGE_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3951]!, self._r[3951]!, [_1]) + } + public var Wallet_Receive_AmountInfo: String { return self._s[3954]! } + public var Stats_Overview: String { return self._s[3955]! } public func Notification_JoinedChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3954]!, self._r[3954]!, [_0]) + return formatWithArgumentRanges(self._s[3956]!, self._r[3956]!, [_0]) } public func PrivacySettings_LastSeenContactsPlus(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3955]!, self._r[3955]!, [_0]) + return formatWithArgumentRanges(self._s[3957]!, self._r[3957]!, [_0]) } - public var ChatListFolder_ExcludeChatsTitle: String { return self._s[3956]! } - public var Passport_Language_mk: String { return self._s[3957]! } - public var ChatListFolder_CategoryNonContacts: String { return self._s[3958]! } + public var ChatListFolder_ExcludeChatsTitle: String { return self._s[3958]! } + public var Passport_Language_mk: String { return self._s[3959]! } + public var ChatListFolder_CategoryNonContacts: String { return self._s[3960]! } public func Wallet_Time_PreciseDate_m2(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3959]!, self._r[3959]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3961]!, self._r[3961]!, [_1, _2, _3]) } - public var CreatePoll_CancelConfirmation: String { return self._s[3960]! } - public var MessagePoll_LabelAnonymousQuiz: String { return self._s[3961]! } - public var Conversation_SilentBroadcastTooltipOn: String { return self._s[3963]! } - public var PrivacyPolicy_Decline: String { return self._s[3964]! } - public var Passport_Identity_DoesNotExpire: String { return self._s[3965]! } - public var Channel_AdminLogFilter_EventsRestrictions: String { return self._s[3966]! } - public var AuthSessions_AddDeviceIntro_Action: String { return self._s[3967]! } - public var Permissions_SiriAllow_v0: String { return self._s[3969]! } - public var Wallet_Month_ShortAugust: String { return self._s[3970]! } - public var Appearance_ThemeCarouselNight: String { return self._s[3971]! } + public var CreatePoll_CancelConfirmation: String { return self._s[3962]! } + public var MessagePoll_LabelAnonymousQuiz: String { return self._s[3963]! } + public var Conversation_SilentBroadcastTooltipOn: String { return self._s[3965]! } + public var PrivacyPolicy_Decline: String { return self._s[3966]! } + public var Passport_Identity_DoesNotExpire: String { return self._s[3967]! } + public var Channel_AdminLogFilter_EventsRestrictions: String { return self._s[3968]! } + public var AuthSessions_AddDeviceIntro_Action: String { return self._s[3969]! } + public var Permissions_SiriAllow_v0: String { return self._s[3971]! } + public var Wallet_Month_ShortAugust: String { return self._s[3972]! } + public var Appearance_ThemeCarouselNight: String { return self._s[3973]! } public func LOCAL_CHAT_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3972]!, self._r[3972]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[3974]!, self._r[3974]!, [_1, "\(_2)"]) } public func Notification_RenamedChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3973]!, self._r[3973]!, [_0]) + return formatWithArgumentRanges(self._s[3975]!, self._r[3975]!, [_0]) } - public var Paint_Regular: String { return self._s[3974]! } - public var ChatSettings_AutoDownloadReset: String { return self._s[3975]! } - public var SocksProxySetup_ShareLink: String { return self._s[3976]! } - public var Wallet_Qr_Title: String { return self._s[3977]! } - public var BlockedUsers_SelectUserTitle: String { return self._s[3978]! } - public var VoiceOver_Chat_RecordModeVoiceMessage: String { return self._s[3980]! } - public var Wallet_Settings_Configuration: String { return self._s[3981]! } - public var GroupInfo_InviteByLink: String { return self._s[3982]! } - public var MessageTimer_Custom: String { return self._s[3983]! } - public var UserInfo_NotificationsDefaultEnabled: String { return self._s[3984]! } - public var Conversation_StopQuizConfirmationTitle: String { return self._s[3985]! } - public var Passport_Address_TypeTemporaryRegistration: String { return self._s[3987]! } - public var Conversation_SendMessage_SetReminder: String { return self._s[3988]! } - public var VoiceOver_Chat_Selected: String { return self._s[3989]! } - public var Paint_Pen: String { return self._s[3990]! } - public var ChatSettings_AutoDownloadUsingWiFi: String { return self._s[3991]! } - public var Channel_Username_InvalidTaken: String { return self._s[3992]! } - public var Conversation_ClousStorageInfo_Description3: String { return self._s[3993]! } - public var Wallet_WordCheck_TryAgain: String { return self._s[3994]! } - public var Wallet_Info_TransactionPendingHeader: String { return self._s[3995]! } - public var Settings_ChatBackground: String { return self._s[3996]! } - public var Channel_Subscribers_Title: String { return self._s[3997]! } - public var Wallet_Receive_InvoiceUrlHeader: String { return self._s[3998]! } - public var ApplyLanguage_ChangeLanguageTitle: String { return self._s[3999]! } - public var Watch_ConnectionDescription: String { return self._s[4000]! } - public var OldChannels_NoticeText: String { return self._s[4003]! } - public var Wallet_Configuration_ApplyErrorTitle: String { return self._s[4004]! } - public var IntentsSettings_SuggestBy: String { return self._s[4006]! } - public var Theme_ThemeChangedText: String { return self._s[4007]! } - public var ChatList_ArchivedChatsTitle: String { return self._s[4008]! } - public var Wallpaper_ResetWallpapers: String { return self._s[4009]! } - public var Wallet_Send_TransactionInProgress: String { return self._s[4010]! } - public var Conversation_SendDice: String { return self._s[4011]! } - public var EditProfile_Title: String { return self._s[4012]! } - public var NotificationsSound_Bamboo: String { return self._s[4014]! } - public var Channel_AdminLog_MessagePreviousMessage: String { return self._s[4016]! } - public var Login_SmsRequestState2: String { return self._s[4017]! } - public var Passport_Language_ar: String { return self._s[4018]! } + public var Paint_Regular: String { return self._s[3976]! } + public var ChatSettings_AutoDownloadReset: String { return self._s[3977]! } + public var SocksProxySetup_ShareLink: String { return self._s[3978]! } + public var Wallet_Qr_Title: String { return self._s[3979]! } + public var BlockedUsers_SelectUserTitle: String { return self._s[3980]! } + public var VoiceOver_Chat_RecordModeVoiceMessage: String { return self._s[3982]! } + public var Wallet_Settings_Configuration: String { return self._s[3983]! } + public var GroupInfo_InviteByLink: String { return self._s[3984]! } + public var MessageTimer_Custom: String { return self._s[3985]! } + public var UserInfo_NotificationsDefaultEnabled: String { return self._s[3986]! } + public var Conversation_StopQuizConfirmationTitle: String { return self._s[3987]! } + public var Passport_Address_TypeTemporaryRegistration: String { return self._s[3989]! } + public var Conversation_SendMessage_SetReminder: String { return self._s[3990]! } + public var VoiceOver_Chat_Selected: String { return self._s[3991]! } + public var Paint_Pen: String { return self._s[3992]! } + public var ChatSettings_AutoDownloadUsingWiFi: String { return self._s[3993]! } + public var Channel_Username_InvalidTaken: String { return self._s[3994]! } + public var Conversation_ClousStorageInfo_Description3: String { return self._s[3995]! } + public var Wallet_WordCheck_TryAgain: String { return self._s[3996]! } + public var Wallet_Info_TransactionPendingHeader: String { return self._s[3997]! } + public var Settings_ChatBackground: String { return self._s[3998]! } + public var Channel_Subscribers_Title: String { return self._s[3999]! } + public var Wallet_Receive_InvoiceUrlHeader: String { return self._s[4000]! } + public var ApplyLanguage_ChangeLanguageTitle: String { return self._s[4001]! } + public var Watch_ConnectionDescription: String { return self._s[4002]! } + public var OldChannels_NoticeText: String { return self._s[4005]! } + public var Wallet_Configuration_ApplyErrorTitle: String { return self._s[4006]! } + public var IntentsSettings_SuggestBy: String { return self._s[4008]! } + public var Theme_ThemeChangedText: String { return self._s[4009]! } + public var ChatList_ArchivedChatsTitle: String { return self._s[4010]! } + public var Wallpaper_ResetWallpapers: String { return self._s[4011]! } + public var Wallet_Send_TransactionInProgress: String { return self._s[4012]! } + public var Conversation_SendDice: String { return self._s[4013]! } + public var EditProfile_Title: String { return self._s[4014]! } + public var NotificationsSound_Bamboo: String { return self._s[4016]! } + public var Channel_AdminLog_MessagePreviousMessage: String { return self._s[4018]! } + public var Login_SmsRequestState2: String { return self._s[4019]! } + public var Passport_Language_ar: String { return self._s[4020]! } public func Message_AuthorPinnedGame(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4019]!, self._r[4019]!, [_0]) + return formatWithArgumentRanges(self._s[4021]!, self._r[4021]!, [_0]) } - public var SettingsSearch_Synonyms_EditProfile_Title: String { return self._s[4020]! } - public var Wallet_Created_Text: String { return self._s[4021]! } - public var Conversation_MessageDialogEdit: String { return self._s[4023]! } - public var Wallet_Created_Proceed: String { return self._s[4024]! } - public var Wallet_Words_Done: String { return self._s[4025]! } - public var VoiceOver_Media_PlaybackPause: String { return self._s[4026]! } - public var ChatListFolder_NameChannels: String { return self._s[4027]! } + public var SettingsSearch_Synonyms_EditProfile_Title: String { return self._s[4022]! } + public var Wallet_Created_Text: String { return self._s[4023]! } + public var Conversation_MessageDialogEdit: String { return self._s[4025]! } + public var Wallet_Created_Proceed: String { return self._s[4026]! } + public var Wallet_Words_Done: String { return self._s[4027]! } + public var VoiceOver_Media_PlaybackPause: String { return self._s[4028]! } + public var ChatListFolder_NameChannels: String { return self._s[4029]! } public func PUSH_AUTH_UNKNOWN(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4028]!, self._r[4028]!, [_1]) + return formatWithArgumentRanges(self._s[4030]!, self._r[4030]!, [_1]) } - public var Common_Close: String { return self._s[4029]! } - public var GroupInfo_PublicLink: String { return self._s[4030]! } - public var Channel_OwnershipTransfer_ErrorPrivacyRestricted: String { return self._s[4031]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsPreview: String { return self._s[4032]! } + public var Common_Close: String { return self._s[4031]! } + public var GroupInfo_PublicLink: String { return self._s[4032]! } + public var Channel_OwnershipTransfer_ErrorPrivacyRestricted: String { return self._s[4033]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsPreview: String { return self._s[4034]! } public func Channel_AdminLog_MessageToggleInvitesOff(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4036]!, self._r[4036]!, [_0]) - } - public var UserInfo_About_Placeholder: String { return self._s[4037]! } - public func Conversation_FileHowToText(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[4038]!, self._r[4038]!, [_0]) } - public var GroupInfo_Permissions_SectionTitle: String { return self._s[4039]! } - public var Channel_Info_Banned: String { return self._s[4041]! } + public var UserInfo_About_Placeholder: String { return self._s[4039]! } + public func Conversation_FileHowToText(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4040]!, self._r[4040]!, [_0]) + } + public var GroupInfo_Permissions_SectionTitle: String { return self._s[4041]! } + public var Channel_Info_Banned: String { return self._s[4043]! } public func Time_MonthOfYear_m11(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4042]!, self._r[4042]!, [_0]) + return formatWithArgumentRanges(self._s[4044]!, self._r[4044]!, [_0]) } - public var Appearance_Other: String { return self._s[4043]! } - public var Passport_Language_my: String { return self._s[4044]! } - public var Group_Setup_BasicHistoryHiddenHelp: String { return self._s[4045]! } + public var Appearance_Other: String { return self._s[4045]! } + public var Passport_Language_my: String { return self._s[4046]! } + public var Group_Setup_BasicHistoryHiddenHelp: String { return self._s[4047]! } public func Time_PreciseDate_m9(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4046]!, self._r[4046]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4048]!, self._r[4048]!, [_1, _2, _3]) } - public var SettingsSearch_Synonyms_Privacy_PasscodeAndFaceId: String { return self._s[4047]! } - public var IntentsSettings_SuggestedAndSpotlightChatsInfo: String { return self._s[4048]! } - public var Preview_CopyAddress: String { return self._s[4049]! } + public var SettingsSearch_Synonyms_Privacy_PasscodeAndFaceId: String { return self._s[4049]! } + public var IntentsSettings_SuggestedAndSpotlightChatsInfo: String { return self._s[4050]! } + public var Preview_CopyAddress: String { return self._s[4051]! } public func DialogList_SinglePlayingGameSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4050]!, self._r[4050]!, [_0]) + return formatWithArgumentRanges(self._s[4052]!, self._r[4052]!, [_0]) } - public var KeyCommand_JumpToPreviousChat: String { return self._s[4051]! } - public var UserInfo_BotSettings: String { return self._s[4052]! } - public var LiveLocation_MenuStopAll: String { return self._s[4054]! } - public var Passport_PasswordCreate: String { return self._s[4055]! } - public var StickerSettings_MaskContextInfo: String { return self._s[4056]! } - public var Message_PinnedLocationMessage: String { return self._s[4057]! } - public var Map_Satellite: String { return self._s[4058]! } - public var Watch_Message_Unsupported: String { return self._s[4059]! } - public var Username_TooManyPublicUsernamesError: String { return self._s[4060]! } - public var TwoStepAuth_EnterPasswordInvalid: String { return self._s[4061]! } + public var KeyCommand_JumpToPreviousChat: String { return self._s[4053]! } + public var UserInfo_BotSettings: String { return self._s[4054]! } + public var LiveLocation_MenuStopAll: String { return self._s[4056]! } + public var Passport_PasswordCreate: String { return self._s[4057]! } + public var StickerSettings_MaskContextInfo: String { return self._s[4058]! } + public var Message_PinnedLocationMessage: String { return self._s[4059]! } + public var Map_Satellite: String { return self._s[4060]! } + public var Watch_Message_Unsupported: String { return self._s[4061]! } + public var Username_TooManyPublicUsernamesError: String { return self._s[4062]! } + public var TwoStepAuth_EnterPasswordInvalid: String { return self._s[4063]! } public func Notification_PinnedTextMessage(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4062]!, self._r[4062]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4064]!, self._r[4064]!, [_0, _1]) } public func Conversation_OpenBotLinkText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4063]!, self._r[4063]!, [_0]) - } - public var Wallet_WordImport_Continue: String { return self._s[4064]! } - public func TwoFactorSetup_EmailVerification_Text(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[4065]!, self._r[4065]!, [_0]) } - public var Notifications_ChannelNotificationsHelp: String { return self._s[4066]! } - public var Privacy_Calls_P2PContacts: String { return self._s[4067]! } - public var NotificationsSound_None: String { return self._s[4068]! } - public var Wallet_TransactionInfo_StorageFeeHeader: String { return self._s[4069]! } - public var Channel_DiscussionGroup_UnlinkGroup: String { return self._s[4071]! } - public var AccessDenied_VoiceMicrophone: String { return self._s[4072]! } + public var Wallet_WordImport_Continue: String { return self._s[4066]! } + public func TwoFactorSetup_EmailVerification_Text(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4067]!, self._r[4067]!, [_0]) + } + public var Notifications_ChannelNotificationsHelp: String { return self._s[4068]! } + public var Privacy_Calls_P2PContacts: String { return self._s[4069]! } + public var NotificationsSound_None: String { return self._s[4070]! } + public var Wallet_TransactionInfo_StorageFeeHeader: String { return self._s[4071]! } + public var Channel_DiscussionGroup_UnlinkGroup: String { return self._s[4073]! } + public var AccessDenied_VoiceMicrophone: String { return self._s[4074]! } public func ApplyLanguage_ChangeLanguageAlreadyActive(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4073]!, self._r[4073]!, [_1]) + return formatWithArgumentRanges(self._s[4075]!, self._r[4075]!, [_1]) } - public var Cache_Indexing: String { return self._s[4074]! } - public var DialogList_RecentTitlePeople: String { return self._s[4076]! } - public var DialogList_EncryptionRejected: String { return self._s[4077]! } - public var GroupInfo_Administrators: String { return self._s[4078]! } - public var Passport_ScanPassportHelp: String { return self._s[4079]! } - public var Application_Name: String { return self._s[4080]! } - public var Channel_AdminLogFilter_ChannelEventsInfo: String { return self._s[4081]! } - public var Conversation_Timer_Title: String { return self._s[4082]! } - public var ChatList_PeerTypeGroup: String { return self._s[4083]! } - public var PeopleNearby_MakeVisible: String { return self._s[4085]! } - public var Appearance_ThemeCarouselDay: String { return self._s[4086]! } - public var Stats_GrowthTitle: String { return self._s[4087]! } - public var Passport_Identity_TranslationHelp: String { return self._s[4088]! } + public var Cache_Indexing: String { return self._s[4076]! } + public var DialogList_RecentTitlePeople: String { return self._s[4078]! } + public var DialogList_EncryptionRejected: String { return self._s[4079]! } + public var GroupInfo_Administrators: String { return self._s[4080]! } + public var Passport_ScanPassportHelp: String { return self._s[4081]! } + public var Application_Name: String { return self._s[4082]! } + public var Channel_AdminLogFilter_ChannelEventsInfo: String { return self._s[4083]! } + public var Conversation_Timer_Title: String { return self._s[4084]! } + public var ChatList_PeerTypeGroup: String { return self._s[4085]! } + public var PeopleNearby_MakeVisible: String { return self._s[4087]! } + public var Appearance_ThemeCarouselDay: String { return self._s[4088]! } + public var Stats_GrowthTitle: String { return self._s[4089]! } + public var Passport_Identity_TranslationHelp: String { return self._s[4090]! } public func VoiceOver_Chat_VideoMessageFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4089]!, self._r[4089]!, [_0]) - } - public func Notification_JoinedGroupByLink(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4090]!, self._r[4090]!, [_0]) - } - public func DialogList_EncryptedChatStartedOutgoing(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[4091]!, self._r[4091]!, [_0]) } - public var Channel_EditAdmin_PermissionDeleteMessages: String { return self._s[4092]! } - public var Privacy_ChatsTitle: String { return self._s[4093]! } - public var DialogList_ClearHistoryConfirmation: String { return self._s[4094]! } - public var SettingsSearch_Synonyms_Data_Storage_ClearCache: String { return self._s[4095]! } - public var Watch_Suggestion_HoldOn: String { return self._s[4096]! } - public var Group_EditAdmin_TransferOwnership: String { return self._s[4097]! } - public var WebBrowser_Title: String { return self._s[4098]! } - public var Group_LinkedChannel: String { return self._s[4099]! } - public var VoiceOver_Chat_SeenByRecipient: String { return self._s[4100]! } - public var SocksProxySetup_RequiredCredentials: String { return self._s[4101]! } - public var Passport_Address_TypeRentalAgreementUploadScan: String { return self._s[4102]! } - public var Appearance_TextSize_UseSystem: String { return self._s[4103]! } - public var TwoStepAuth_EmailSkipAlert: String { return self._s[4104]! } - public var ScheduledMessages_RemindersTitle: String { return self._s[4106]! } - public var Channel_Setup_TypePublic: String { return self._s[4108]! } + public func Notification_JoinedGroupByLink(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4092]!, self._r[4092]!, [_0]) + } + public func DialogList_EncryptedChatStartedOutgoing(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4093]!, self._r[4093]!, [_0]) + } + public var Channel_EditAdmin_PermissionDeleteMessages: String { return self._s[4094]! } + public var Privacy_ChatsTitle: String { return self._s[4095]! } + public var DialogList_ClearHistoryConfirmation: String { return self._s[4096]! } + public var SettingsSearch_Synonyms_Data_Storage_ClearCache: String { return self._s[4097]! } + public var Watch_Suggestion_HoldOn: String { return self._s[4098]! } + public var Group_EditAdmin_TransferOwnership: String { return self._s[4099]! } + public var WebBrowser_Title: String { return self._s[4100]! } + public var Group_LinkedChannel: String { return self._s[4101]! } + public var VoiceOver_Chat_SeenByRecipient: String { return self._s[4102]! } + public var SocksProxySetup_RequiredCredentials: String { return self._s[4103]! } + public var Passport_Address_TypeRentalAgreementUploadScan: String { return self._s[4104]! } + public var Appearance_TextSize_UseSystem: String { return self._s[4105]! } + public var TwoStepAuth_EmailSkipAlert: String { return self._s[4106]! } + public var ScheduledMessages_RemindersTitle: String { return self._s[4108]! } + public var Channel_Setup_TypePublic: String { return self._s[4110]! } public func Channel_AdminLog_MessageToggleInvitesOn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4109]!, self._r[4109]!, [_0]) + return formatWithArgumentRanges(self._s[4111]!, self._r[4111]!, [_0]) } - public var Channel_TypeSetup_Title: String { return self._s[4111]! } - public var MessagePoll_ViewResults: String { return self._s[4112]! } - public var Map_OpenInMaps: String { return self._s[4114]! } + public var Channel_TypeSetup_Title: String { return self._s[4113]! } + public var MessagePoll_ViewResults: String { return self._s[4114]! } + public var Map_OpenInMaps: String { return self._s[4116]! } public func PUSH_PINNED_NOTEXT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4115]!, self._r[4115]!, [_1]) + return formatWithArgumentRanges(self._s[4117]!, self._r[4117]!, [_1]) } - public var NotificationsSound_Tremolo: String { return self._s[4117]! } + public var NotificationsSound_Tremolo: String { return self._s[4119]! } public func Date_ChatDateHeaderYear(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4118]!, self._r[4118]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4120]!, self._r[4120]!, [_1, _2, _3]) } - public var ConversationProfile_UnknownAddMemberError: String { return self._s[4119]! } - public var Channel_OwnershipTransfer_PasswordPlaceholder: String { return self._s[4120]! } - public var Passport_PasswordHelp: String { return self._s[4122]! } - public var Login_CodeExpiredError: String { return self._s[4123]! } - public var Channel_EditAdmin_PermissionChangeInfo: String { return self._s[4124]! } - public var Conversation_TitleUnmute: String { return self._s[4125]! } - public var Passport_Identity_ScansHelp: String { return self._s[4126]! } - public var Passport_Language_lo: String { return self._s[4127]! } - public var Camera_FlashAuto: String { return self._s[4128]! } - public var Conversation_OpenBotLinkOpen: String { return self._s[4129]! } - public var Common_Cancel: String { return self._s[4130]! } - public var DialogList_SavedMessagesTooltip: String { return self._s[4131]! } - public var TwoStepAuth_SetupPasswordTitle: String { return self._s[4132]! } - public var Appearance_TintAllColors: String { return self._s[4133]! } + public var ConversationProfile_UnknownAddMemberError: String { return self._s[4121]! } + public var Channel_OwnershipTransfer_PasswordPlaceholder: String { return self._s[4122]! } + public var Passport_PasswordHelp: String { return self._s[4124]! } + public var Login_CodeExpiredError: String { return self._s[4125]! } + public var Channel_EditAdmin_PermissionChangeInfo: String { return self._s[4126]! } + public var Conversation_TitleUnmute: String { return self._s[4127]! } + public var Passport_Identity_ScansHelp: String { return self._s[4128]! } + public var Passport_Language_lo: String { return self._s[4129]! } + public var Camera_FlashAuto: String { return self._s[4130]! } + public var Conversation_OpenBotLinkOpen: String { return self._s[4131]! } + public var Common_Cancel: String { return self._s[4132]! } + public var DialogList_SavedMessagesTooltip: String { return self._s[4133]! } + public var TwoStepAuth_SetupPasswordTitle: String { return self._s[4134]! } + public var Appearance_TintAllColors: String { return self._s[4135]! } public func PUSH_MESSAGE_FWD(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4134]!, self._r[4134]!, [_1]) + return formatWithArgumentRanges(self._s[4136]!, self._r[4136]!, [_1]) } - public var Conversation_ReportSpamConfirmation: String { return self._s[4135]! } - public var ChatSettings_Title: String { return self._s[4137]! } - public var Passport_PasswordReset: String { return self._s[4138]! } - public var SocksProxySetup_TypeNone: String { return self._s[4139]! } - public var EditTheme_Title: String { return self._s[4142]! } - public var PhoneNumberHelp_Help: String { return self._s[4143]! } - public var Checkout_EnterPassword: String { return self._s[4144]! } - public var Activity_UploadingDocument: String { return self._s[4146]! } - public var Share_AuthTitle: String { return self._s[4147]! } - public var State_Connecting: String { return self._s[4148]! } - public var Profile_MessageLifetime1w: String { return self._s[4149]! } - public var Conversation_ContextMenuReport: String { return self._s[4150]! } - public var CheckoutInfo_ReceiverInfoPhone: String { return self._s[4151]! } - public var AutoNightTheme_ScheduledTo: String { return self._s[4152]! } + public var Conversation_ReportSpamConfirmation: String { return self._s[4137]! } + public var ChatSettings_Title: String { return self._s[4139]! } + public var Passport_PasswordReset: String { return self._s[4140]! } + public var SocksProxySetup_TypeNone: String { return self._s[4141]! } + public var EditTheme_Title: String { return self._s[4144]! } + public var PhoneNumberHelp_Help: String { return self._s[4145]! } + public var Checkout_EnterPassword: String { return self._s[4146]! } + public var Activity_UploadingDocument: String { return self._s[4148]! } + public var Share_AuthTitle: String { return self._s[4149]! } + public var State_Connecting: String { return self._s[4150]! } + public var Profile_MessageLifetime1w: String { return self._s[4151]! } + public var Conversation_ContextMenuReport: String { return self._s[4152]! } + public var CheckoutInfo_ReceiverInfoPhone: String { return self._s[4153]! } + public var AutoNightTheme_ScheduledTo: String { return self._s[4154]! } public func VoiceOver_Chat_AnonymousPollFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4153]!, self._r[4153]!, [_0]) + return formatWithArgumentRanges(self._s[4155]!, self._r[4155]!, [_0]) } - public var AuthSessions_Terminate: String { return self._s[4154]! } - public var Wallet_WordImport_CanNotRemember: String { return self._s[4155]! } - public var PeerInfo_PaneAudio: String { return self._s[4156]! } + public var AuthSessions_Terminate: String { return self._s[4156]! } + public var Wallet_WordImport_CanNotRemember: String { return self._s[4157]! } + public var PeerInfo_PaneAudio: String { return self._s[4158]! } public func Message_ForwardedPsa_covid(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4157]!, self._r[4157]!, [_0]) + return formatWithArgumentRanges(self._s[4159]!, self._r[4159]!, [_0]) } - public var Checkout_NewCard_CardholderNamePlaceholder: String { return self._s[4159]! } - public var KeyCommand_JumpToPreviousUnreadChat: String { return self._s[4160]! } - public var PhotoEditor_Set: String { return self._s[4161]! } - public var EmptyGroupInfo_Title: String { return self._s[4162]! } - public var Login_PadPhoneHelp: String { return self._s[4164]! } - public var AutoDownloadSettings_TypeGroupChats: String { return self._s[4166]! } - public var PrivacyPolicy_DeclineLastWarning: String { return self._s[4168]! } - public var NotificationsSound_Complete: String { return self._s[4169]! } - public var SettingsSearch_Synonyms_Privacy_Data_Title: String { return self._s[4170]! } - public var Group_Info_AdminLog: String { return self._s[4171]! } - public var GroupPermission_NotAvailableInPublicGroups: String { return self._s[4172]! } + public var Checkout_NewCard_CardholderNamePlaceholder: String { return self._s[4161]! } + public var KeyCommand_JumpToPreviousUnreadChat: String { return self._s[4162]! } + public var PhotoEditor_Set: String { return self._s[4163]! } + public var EmptyGroupInfo_Title: String { return self._s[4164]! } + public var Login_PadPhoneHelp: String { return self._s[4166]! } + public var AutoDownloadSettings_TypeGroupChats: String { return self._s[4168]! } + public var PrivacyPolicy_DeclineLastWarning: String { return self._s[4170]! } + public var NotificationsSound_Complete: String { return self._s[4171]! } + public var SettingsSearch_Synonyms_Privacy_Data_Title: String { return self._s[4172]! } + public var Group_Info_AdminLog: String { return self._s[4173]! } + public var GroupPermission_NotAvailableInPublicGroups: String { return self._s[4174]! } public func Wallet_Time_PreciseDate_m11(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4173]!, self._r[4173]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4175]!, self._r[4175]!, [_1, _2, _3]) } - public var Channel_AdminLog_InfoPanelAlertText: String { return self._s[4174]! } - public var Group_Location_CreateInThisPlace: String { return self._s[4176]! } - public var Conversation_Admin: String { return self._s[4177]! } - public var Conversation_GifTooltip: String { return self._s[4178]! } - public var Passport_NotLoggedInMessage: String { return self._s[4179]! } + public var Channel_AdminLog_InfoPanelAlertText: String { return self._s[4176]! } + public var Group_Location_CreateInThisPlace: String { return self._s[4178]! } + public var Conversation_Admin: String { return self._s[4179]! } + public var Conversation_GifTooltip: String { return self._s[4180]! } + public var Passport_NotLoggedInMessage: String { return self._s[4181]! } public func AutoDownloadSettings_OnFor(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4181]!, self._r[4181]!, [_0]) + return formatWithArgumentRanges(self._s[4183]!, self._r[4183]!, [_0]) } - public var Profile_MessageLifetimeForever: String { return self._s[4182]! } - public var SharedMedia_EmptyTitle: String { return self._s[4184]! } - public var Channel_Edit_PrivatePublicLinkAlert: String { return self._s[4186]! } - public var Username_Help: String { return self._s[4187]! } - public var DialogList_LanguageTooltip: String { return self._s[4189]! } - public var Map_LoadError: String { return self._s[4190]! } - public var Login_PhoneNumberAlreadyAuthorized: String { return self._s[4191]! } - public var Channel_AdminLog_AddMembers: String { return self._s[4192]! } - public var ArchivedChats_IntroTitle2: String { return self._s[4193]! } - public var Notification_Exceptions_NewException: String { return self._s[4194]! } - public var TwoStepAuth_EmailTitle: String { return self._s[4195]! } - public var WatchRemote_AlertText: String { return self._s[4196]! } + public var Profile_MessageLifetimeForever: String { return self._s[4184]! } + public var SharedMedia_EmptyTitle: String { return self._s[4186]! } + public var Channel_Edit_PrivatePublicLinkAlert: String { return self._s[4188]! } + public var Username_Help: String { return self._s[4189]! } + public var DialogList_LanguageTooltip: String { return self._s[4191]! } + public var Map_LoadError: String { return self._s[4192]! } + public var Login_PhoneNumberAlreadyAuthorized: String { return self._s[4193]! } + public var Channel_AdminLog_AddMembers: String { return self._s[4194]! } + public var ArchivedChats_IntroTitle2: String { return self._s[4195]! } + public var Notification_Exceptions_NewException: String { return self._s[4196]! } + public var TwoStepAuth_EmailTitle: String { return self._s[4197]! } + public var WatchRemote_AlertText: String { return self._s[4198]! } public func Wallet_Send_ConfirmationText(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4197]!, self._r[4197]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4199]!, self._r[4199]!, [_1, _2, _3]) } - public var ChatSettings_ConnectionType_Title: String { return self._s[4201]! } + public var ChatSettings_ConnectionType_Title: String { return self._s[4203]! } public func PUSH_PINNED_QUIZ(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4202]!, self._r[4202]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4204]!, self._r[4204]!, [_1, _2]) } public func Settings_CheckPhoneNumberTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4203]!, self._r[4203]!, [_0]) + return formatWithArgumentRanges(self._s[4205]!, self._r[4205]!, [_0]) } - public var SettingsSearch_Synonyms_Calls_CallTab: String { return self._s[4204]! } - public var WebBrowser_DefaultBrowser: String { return self._s[4205]! } - public var Passport_Address_CountryPlaceholder: String { return self._s[4206]! } + public var SettingsSearch_Synonyms_Calls_CallTab: String { return self._s[4206]! } + public var WebBrowser_DefaultBrowser: String { return self._s[4207]! } + public var Passport_Address_CountryPlaceholder: String { return self._s[4208]! } public func DialogList_AwaitingEncryption(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4207]!, self._r[4207]!, [_0]) + return formatWithArgumentRanges(self._s[4209]!, self._r[4209]!, [_0]) } public func Time_PreciseDate_m6(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4208]!, self._r[4208]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4210]!, self._r[4210]!, [_1, _2, _3]) } - public var Group_AdminLog_EmptyText: String { return self._s[4209]! } - public var SettingsSearch_Synonyms_Appearance_Title: String { return self._s[4210]! } - public var Conversation_PrivateChannelTooltip: String { return self._s[4212]! } - public var Wallet_Created_ExportErrorText: String { return self._s[4213]! } - public var ChatList_UndoArchiveText1: String { return self._s[4214]! } - public var ChatListFolder_IncludedSectionHeader: String { return self._s[4215]! } - public var AccessDenied_VideoMicrophone: String { return self._s[4216]! } - public var Conversation_ContextMenuStickerPackAdd: String { return self._s[4217]! } - public var Stats_GroupTopInviter_History: String { return self._s[4218]! } - public var Cache_ClearNone: String { return self._s[4219]! } - public var SocksProxySetup_FailedToConnect: String { return self._s[4220]! } - public var Permissions_NotificationsTitle_v0: String { return self._s[4221]! } + public var Group_AdminLog_EmptyText: String { return self._s[4211]! } + public var SettingsSearch_Synonyms_Appearance_Title: String { return self._s[4212]! } + public var Conversation_PrivateChannelTooltip: String { return self._s[4214]! } + public var Wallet_Created_ExportErrorText: String { return self._s[4215]! } + public var ChatList_UndoArchiveText1: String { return self._s[4216]! } + public var ChatListFolder_IncludedSectionHeader: String { return self._s[4217]! } + public var AccessDenied_VideoMicrophone: String { return self._s[4218]! } + public var Conversation_ContextMenuStickerPackAdd: String { return self._s[4219]! } + public var Stats_GroupTopInviter_History: String { return self._s[4220]! } + public var Cache_ClearNone: String { return self._s[4221]! } + public var SocksProxySetup_FailedToConnect: String { return self._s[4222]! } + public var Permissions_NotificationsTitle_v0: String { return self._s[4223]! } public func Channel_AdminLog_MessageEdited(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4222]!, self._r[4222]!, [_0]) - } - public var Passport_Identity_Country: String { return self._s[4223]! } - public func ChatSettings_AutoDownloadSettings_TypeFile(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[4224]!, self._r[4224]!, [_0]) } + public var Passport_Identity_Country: String { return self._s[4225]! } + public func ChatSettings_AutoDownloadSettings_TypeFile(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4226]!, self._r[4226]!, [_0]) + } public func Notification_CreatedChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4225]!, self._r[4225]!, [_0]) + return formatWithArgumentRanges(self._s[4227]!, self._r[4227]!, [_0]) } - public var Exceptions_AddToExceptions: String { return self._s[4226]! } - public var AccessDenied_Settings: String { return self._s[4227]! } - public var Passport_Address_TypeUtilityBillUploadScan: String { return self._s[4228]! } - public var Month_ShortMay: String { return self._s[4230]! } - public var Compose_NewGroup: String { return self._s[4232]! } - public var Group_Setup_TypePrivate: String { return self._s[4234]! } - public var Login_PadPhoneHelpTitle: String { return self._s[4236]! } - public var Appearance_ThemeDayClassic: String { return self._s[4237]! } - public var Channel_AdminLog_MessagePreviousCaption: String { return self._s[4238]! } - public var AutoDownloadSettings_OffForAll: String { return self._s[4239]! } - public var Privacy_GroupsAndChannels_WhoCanAddMe: String { return self._s[4240]! } - public var Conversation_typing: String { return self._s[4242]! } - public var Undo_ScheduledMessagesCleared: String { return self._s[4243]! } - public var Paint_Masks: String { return self._s[4244]! } - public var Contacts_DeselectAll: String { return self._s[4245]! } + public var Exceptions_AddToExceptions: String { return self._s[4228]! } + public var AccessDenied_Settings: String { return self._s[4229]! } + public var Passport_Address_TypeUtilityBillUploadScan: String { return self._s[4230]! } + public var Month_ShortMay: String { return self._s[4232]! } + public var Compose_NewGroup: String { return self._s[4234]! } + public var Group_Setup_TypePrivate: String { return self._s[4236]! } + public var Login_PadPhoneHelpTitle: String { return self._s[4238]! } + public var Appearance_ThemeDayClassic: String { return self._s[4239]! } + public var Channel_AdminLog_MessagePreviousCaption: String { return self._s[4240]! } + public var AutoDownloadSettings_OffForAll: String { return self._s[4241]! } + public var Privacy_GroupsAndChannels_WhoCanAddMe: String { return self._s[4242]! } + public var Conversation_typing: String { return self._s[4244]! } + public var Undo_ScheduledMessagesCleared: String { return self._s[4245]! } + public var Paint_Masks: String { return self._s[4246]! } + public var Contacts_DeselectAll: String { return self._s[4247]! } public func Wallet_Updated_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4246]!, self._r[4246]!, [_0]) + return formatWithArgumentRanges(self._s[4248]!, self._r[4248]!, [_0]) } - public var CreatePoll_MultipleChoiceQuizAlert: String { return self._s[4247]! } - public var Stats_GroupMembersTitle: String { return self._s[4248]! } - public var Username_InvalidTaken: String { return self._s[4249]! } - public var Call_StatusNoAnswer: String { return self._s[4250]! } - public var TwoStepAuth_EmailAddSuccess: String { return self._s[4251]! } - public var SettingsSearch_Synonyms_Privacy_BlockedUsers: String { return self._s[4252]! } - public var Passport_Identity_Selfie: String { return self._s[4253]! } - public var Login_InfoLastNamePlaceholder: String { return self._s[4254]! } - public var Privacy_SecretChatsLinkPreviewsHelp: String { return self._s[4255]! } - public var Conversation_ClearSecretHistory: String { return self._s[4256]! } - public var PeopleNearby_Description: String { return self._s[4258]! } - public var NetworkUsageSettings_Title: String { return self._s[4259]! } - public var Your_cards_security_code_is_invalid: String { return self._s[4261]! } - public var Stats_EnabledNotifications: String { return self._s[4262]! } + public var CreatePoll_MultipleChoiceQuizAlert: String { return self._s[4249]! } + public var Stats_GroupMembersTitle: String { return self._s[4250]! } + public var Username_InvalidTaken: String { return self._s[4251]! } + public var Call_StatusNoAnswer: String { return self._s[4252]! } + public var TwoStepAuth_EmailAddSuccess: String { return self._s[4253]! } + public var SettingsSearch_Synonyms_Privacy_BlockedUsers: String { return self._s[4254]! } + public var Passport_Identity_Selfie: String { return self._s[4255]! } + public var Login_InfoLastNamePlaceholder: String { return self._s[4256]! } + public var Privacy_SecretChatsLinkPreviewsHelp: String { return self._s[4257]! } + public var Conversation_ClearSecretHistory: String { return self._s[4258]! } + public var PeopleNearby_Description: String { return self._s[4260]! } + public var NetworkUsageSettings_Title: String { return self._s[4261]! } + public var Your_cards_security_code_is_invalid: String { return self._s[4263]! } + public var Stats_EnabledNotifications: String { return self._s[4264]! } public func Notification_LeftChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4265]!, self._r[4265]!, [_0]) + return formatWithArgumentRanges(self._s[4267]!, self._r[4267]!, [_0]) } public func Call_CallInProgressMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4266]!, self._r[4266]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4268]!, self._r[4268]!, [_1, _2]) } - public var SaveIncomingPhotosSettings_From: String { return self._s[4268]! } - public var VoiceOver_Navigation_Search: String { return self._s[4269]! } - public var Map_LiveLocationTitle: String { return self._s[4270]! } - public var Login_InfoAvatarAdd: String { return self._s[4271]! } - public var Passport_Identity_FilesView: String { return self._s[4272]! } - public var ChatListFolderSettings_Title: String { return self._s[4273]! } - public var UserInfo_GenericPhoneLabel: String { return self._s[4274]! } - public var Privacy_Calls_NeverAllow: String { return self._s[4275]! } - public var VoiceOver_Chat_File: String { return self._s[4276]! } - public var Wallet_Settings_DeleteWalletInfo: String { return self._s[4277]! } + public var SaveIncomingPhotosSettings_From: String { return self._s[4270]! } + public var VoiceOver_Navigation_Search: String { return self._s[4271]! } + public var Map_LiveLocationTitle: String { return self._s[4272]! } + public var Login_InfoAvatarAdd: String { return self._s[4273]! } + public var Passport_Identity_FilesView: String { return self._s[4274]! } + public var ChatListFolderSettings_Title: String { return self._s[4275]! } + public var UserInfo_GenericPhoneLabel: String { return self._s[4276]! } + public var Privacy_Calls_NeverAllow: String { return self._s[4277]! } + public var VoiceOver_Chat_File: String { return self._s[4278]! } + public var Wallet_Settings_DeleteWalletInfo: String { return self._s[4279]! } public func Contacts_AddPhoneNumber(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4278]!, self._r[4278]!, [_0]) + return formatWithArgumentRanges(self._s[4280]!, self._r[4280]!, [_0]) } - public var ChatList_EmptyChatList: String { return self._s[4280]! } - public var ContactInfo_PhoneNumberHidden: String { return self._s[4281]! } - public var TwoStepAuth_ConfirmationText: String { return self._s[4282]! } - public var ChatSettings_AutomaticVideoMessageDownload: String { return self._s[4283]! } + public var ChatList_EmptyChatList: String { return self._s[4282]! } + public var ContactInfo_PhoneNumberHidden: String { return self._s[4283]! } + public var TwoStepAuth_ConfirmationText: String { return self._s[4284]! } + public var ChatSettings_AutomaticVideoMessageDownload: String { return self._s[4285]! } public func PUSH_CHAT_MESSAGE_VIDEOS(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4284]!, self._r[4284]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4286]!, self._r[4286]!, [_1, _2, _3]) } - public var Channel_AdminLogFilter_AdminsAll: String { return self._s[4285]! } - public var Wallet_Intro_CreateErrorText: String { return self._s[4286]! } - public var Tour_Title2: String { return self._s[4287]! } - public var Wallet_Sent_ViewWallet: String { return self._s[4288]! } - public var Stats_GroupMessagesTitle: String { return self._s[4289]! } - public var Conversation_FileOpenIn: String { return self._s[4290]! } - public var Checkout_ErrorPrecheckoutFailed: String { return self._s[4291]! } - public var Wallet_Send_ErrorInvalidAddress: String { return self._s[4292]! } - public var Wallpaper_Set: String { return self._s[4293]! } - public var Passport_Identity_Translations: String { return self._s[4295]! } + public var Channel_AdminLogFilter_AdminsAll: String { return self._s[4287]! } + public var Wallet_Intro_CreateErrorText: String { return self._s[4288]! } + public var Tour_Title2: String { return self._s[4289]! } + public var Wallet_Sent_ViewWallet: String { return self._s[4290]! } + public var Stats_GroupMessagesTitle: String { return self._s[4291]! } + public var Conversation_FileOpenIn: String { return self._s[4292]! } + public var Checkout_ErrorPrecheckoutFailed: String { return self._s[4293]! } + public var Wallet_Send_ErrorInvalidAddress: String { return self._s[4294]! } + public var Wallpaper_Set: String { return self._s[4295]! } + public var Passport_Identity_Translations: String { return self._s[4297]! } public func Channel_AdminLog_MessageChangedChannelAbout(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4296]!, self._r[4296]!, [_0]) + return formatWithArgumentRanges(self._s[4298]!, self._r[4298]!, [_0]) } - public var Channel_LeaveChannel: String { return self._s[4297]! } + public var Channel_LeaveChannel: String { return self._s[4299]! } public func PINNED_INVOICE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4298]!, self._r[4298]!, [_1]) + return formatWithArgumentRanges(self._s[4300]!, self._r[4300]!, [_1]) } - public var SettingsSearch_Synonyms_Proxy_AddProxy: String { return self._s[4300]! } - public var PhotoEditor_HighlightsTint: String { return self._s[4301]! } - public var MessagePoll_LabelPoll: String { return self._s[4302]! } - public var Passport_Email_Delete: String { return self._s[4303]! } - public var Conversation_Mute: String { return self._s[4305]! } - public var Channel_AddBotAsAdmin: String { return self._s[4306]! } - public var Channel_AdminLog_CanSendMessages: String { return self._s[4308]! } - public var Wallet_Configuration_BlockchainNameChangedText: String { return self._s[4309]! } - public var ChatSettings_IntentsSettings: String { return self._s[4311]! } - public var Channel_Management_LabelOwner: String { return self._s[4312]! } + public var SettingsSearch_Synonyms_Proxy_AddProxy: String { return self._s[4302]! } + public var PhotoEditor_HighlightsTint: String { return self._s[4303]! } + public var MessagePoll_LabelPoll: String { return self._s[4304]! } + public var Passport_Email_Delete: String { return self._s[4305]! } + public var Conversation_Mute: String { return self._s[4307]! } + public var Channel_AddBotAsAdmin: String { return self._s[4308]! } + public var Channel_AdminLog_CanSendMessages: String { return self._s[4310]! } + public var Wallet_Configuration_BlockchainNameChangedText: String { return self._s[4311]! } + public var ChatSettings_IntentsSettings: String { return self._s[4313]! } + public var Channel_Management_LabelOwner: String { return self._s[4314]! } public func Notification_PassportValuesSentMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4313]!, self._r[4313]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4315]!, self._r[4315]!, [_1, _2]) } - public var Calls_CallTabDescription: String { return self._s[4314]! } - public var Passport_Identity_NativeNameHelp: String { return self._s[4315]! } - public var Common_No: String { return self._s[4316]! } - public var Weekday_Sunday: String { return self._s[4317]! } - public var Notification_Reply: String { return self._s[4318]! } - public var Conversation_ViewMessage: String { return self._s[4319]! } + public var Calls_CallTabDescription: String { return self._s[4316]! } + public var Passport_Identity_NativeNameHelp: String { return self._s[4317]! } + public var Common_No: String { return self._s[4318]! } + public var Weekday_Sunday: String { return self._s[4319]! } + public var Notification_Reply: String { return self._s[4320]! } + public var Conversation_ViewMessage: String { return self._s[4321]! } public func Checkout_SavePasswordTimeoutAndFaceId(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4320]!, self._r[4320]!, [_0]) + return formatWithArgumentRanges(self._s[4322]!, self._r[4322]!, [_0]) } public func Map_LiveLocationPrivateDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4321]!, self._r[4321]!, [_0]) + return formatWithArgumentRanges(self._s[4323]!, self._r[4323]!, [_0]) } public func Wallet_Time_PreciseDate_m7(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4322]!, self._r[4322]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4324]!, self._r[4324]!, [_1, _2, _3]) } - public var SettingsSearch_Synonyms_EditProfile_AddAccount: String { return self._s[4323]! } - public var Wallet_Send_Title: String { return self._s[4324]! } - public var Message_PinnedDocumentMessage: String { return self._s[4325]! } - public var Wallet_Info_RefreshErrorText: String { return self._s[4326]! } - public var DialogList_TabTitle: String { return self._s[4328]! } - public var ChatSettings_AutoPlayTitle: String { return self._s[4329]! } - public var Passport_FieldEmail: String { return self._s[4330]! } - public var Conversation_UnpinMessageAlert: String { return self._s[4331]! } - public var Passport_Address_TypeBankStatement: String { return self._s[4332]! } - public var Wallet_SecureStorageReset_Title: String { return self._s[4333]! } - public var Passport_Identity_ExpiryDate: String { return self._s[4334]! } - public var Privacy_Calls_P2P: String { return self._s[4335]! } + public var SettingsSearch_Synonyms_EditProfile_AddAccount: String { return self._s[4325]! } + public var Wallet_Send_Title: String { return self._s[4326]! } + public var Message_PinnedDocumentMessage: String { return self._s[4327]! } + public var Wallet_Info_RefreshErrorText: String { return self._s[4328]! } + public var DialogList_TabTitle: String { return self._s[4330]! } + public var ChatSettings_AutoPlayTitle: String { return self._s[4331]! } + public var Passport_FieldEmail: String { return self._s[4332]! } + public var Conversation_UnpinMessageAlert: String { return self._s[4333]! } + public var Passport_Address_TypeBankStatement: String { return self._s[4334]! } + public var Wallet_SecureStorageReset_Title: String { return self._s[4335]! } + public var Passport_Identity_ExpiryDate: String { return self._s[4336]! } + public var Privacy_Calls_P2P: String { return self._s[4337]! } public func CancelResetAccount_Success(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4337]!, self._r[4337]!, [_0]) + return formatWithArgumentRanges(self._s[4339]!, self._r[4339]!, [_0]) } - public var SocksProxySetup_UseForCallsHelp: String { return self._s[4338]! } + public var SocksProxySetup_UseForCallsHelp: String { return self._s[4340]! } public func PUSH_CHAT_ALBUM(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4339]!, self._r[4339]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4341]!, self._r[4341]!, [_1, _2]) } - public var Stickers_ClearRecent: String { return self._s[4340]! } - public var EnterPasscode_ChangeTitle: String { return self._s[4341]! } - public var TwoFactorSetup_Email_Title: String { return self._s[4342]! } - public var Passport_InfoText: String { return self._s[4343]! } - public var Checkout_NewCard_SaveInfoEnableHelp: String { return self._s[4344]! } + public var Stickers_ClearRecent: String { return self._s[4342]! } + public var EnterPasscode_ChangeTitle: String { return self._s[4343]! } + public var TwoFactorSetup_Email_Title: String { return self._s[4344]! } + public var Passport_InfoText: String { return self._s[4345]! } + public var Checkout_NewCard_SaveInfoEnableHelp: String { return self._s[4346]! } public func Login_InvalidPhoneEmailSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4345]!, self._r[4345]!, [_0]) + return formatWithArgumentRanges(self._s[4347]!, self._r[4347]!, [_0]) } public func Time_PreciseDate_m3(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4346]!, self._r[4346]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4348]!, self._r[4348]!, [_1, _2, _3]) } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChannels: String { return self._s[4347]! } - public var ScheduledMessages_PollUnavailable: String { return self._s[4348]! } - public var VoiceOver_Navigation_Compose: String { return self._s[4349]! } - public var Passport_Identity_EditDriversLicense: String { return self._s[4350]! } - public var Conversation_TapAndHoldToRecord: String { return self._s[4352]! } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChats: String { return self._s[4353]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChannels: String { return self._s[4349]! } + public var ScheduledMessages_PollUnavailable: String { return self._s[4350]! } + public var VoiceOver_Navigation_Compose: String { return self._s[4351]! } + public var Passport_Identity_EditDriversLicense: String { return self._s[4352]! } + public var Conversation_TapAndHoldToRecord: String { return self._s[4354]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChats: String { return self._s[4355]! } public func Notification_CallTimeFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4354]!, self._r[4354]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4356]!, self._r[4356]!, [_1, _2]) } - public var Channel_EditAdmin_PermissionInviteViaLink: String { return self._s[4357]! } - public var ChatSettings_OpenLinksIn: String { return self._s[4358]! } - public var Map_HomeAndWorkTitle: String { return self._s[4359]! } + public var Channel_EditAdmin_PermissionInviteViaLink: String { return self._s[4359]! } + public var ChatSettings_OpenLinksIn: String { return self._s[4360]! } + public var Map_HomeAndWorkTitle: String { return self._s[4361]! } public func Generic_OpenHiddenLinkAlert(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4361]!, self._r[4361]!, [_0]) + return formatWithArgumentRanges(self._s[4363]!, self._r[4363]!, [_0]) } - public var DialogList_Unread: String { return self._s[4362]! } + public var DialogList_Unread: String { return self._s[4364]! } public func PUSH_CHAT_MESSAGE_GIF(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4363]!, self._r[4363]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4365]!, self._r[4365]!, [_1, _2]) } - public var User_DeletedAccount: String { return self._s[4364]! } - public var ChatList_TabIconFoldersTooltipEmptyFolders: String { return self._s[4365]! } - public var OwnershipTransfer_SetupTwoStepAuth: String { return self._s[4366]! } + public var User_DeletedAccount: String { return self._s[4366]! } + public var ChatList_TabIconFoldersTooltipEmptyFolders: String { return self._s[4367]! } + public var OwnershipTransfer_SetupTwoStepAuth: String { return self._s[4368]! } public func Watch_Time_ShortYesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4367]!, self._r[4367]!, [_0]) + return formatWithArgumentRanges(self._s[4369]!, self._r[4369]!, [_0]) } - public var UserInfo_NotificationsDefault: String { return self._s[4368]! } - public var SharedMedia_CategoryMedia: String { return self._s[4369]! } - public var SocksProxySetup_ProxyStatusUnavailable: String { return self._s[4370]! } - public var Channel_AdminLog_MessageRestrictedForever: String { return self._s[4371]! } - public var Watch_ChatList_Compose: String { return self._s[4372]! } - public var Notifications_MessageNotificationsExceptionsHelp: String { return self._s[4373]! } - public var AutoDownloadSettings_Delimeter: String { return self._s[4374]! } - public var Watch_Microphone_Access: String { return self._s[4375]! } - public var Group_Setup_HistoryHeader: String { return self._s[4376]! } - public var Map_SetThisLocation: String { return self._s[4377]! } - public var Appearance_ThemePreview_Chat_2_ReplyName: String { return self._s[4378]! } - public var Activity_UploadingPhoto: String { return self._s[4379]! } - public var Conversation_Edit: String { return self._s[4381]! } - public var Group_ErrorSendRestrictedMedia: String { return self._s[4382]! } - public var Login_TermsOfServiceDecline: String { return self._s[4383]! } - public var Message_PinnedContactMessage: String { return self._s[4384]! } + public var UserInfo_NotificationsDefault: String { return self._s[4370]! } + public var SharedMedia_CategoryMedia: String { return self._s[4371]! } + public var SocksProxySetup_ProxyStatusUnavailable: String { return self._s[4372]! } + public var Channel_AdminLog_MessageRestrictedForever: String { return self._s[4373]! } + public var Watch_ChatList_Compose: String { return self._s[4374]! } + public var Notifications_MessageNotificationsExceptionsHelp: String { return self._s[4375]! } + public var AutoDownloadSettings_Delimeter: String { return self._s[4376]! } + public var Watch_Microphone_Access: String { return self._s[4377]! } + public var Group_Setup_HistoryHeader: String { return self._s[4378]! } + public var Map_SetThisLocation: String { return self._s[4379]! } + public var Appearance_ThemePreview_Chat_2_ReplyName: String { return self._s[4380]! } + public var Activity_UploadingPhoto: String { return self._s[4381]! } + public var Conversation_Edit: String { return self._s[4383]! } + public var Group_ErrorSendRestrictedMedia: String { return self._s[4384]! } + public var Login_TermsOfServiceDecline: String { return self._s[4385]! } + public var Message_PinnedContactMessage: String { return self._s[4386]! } public func Channel_AdminLog_MessageRestrictedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4385]!, self._r[4385]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4387]!, self._r[4387]!, [_1, _2]) } public func Login_PhoneBannedEmailBody(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4386]!, self._r[4386]!, [_1, _2, _3, _4, _5]) + return formatWithArgumentRanges(self._s[4388]!, self._r[4388]!, [_1, _2, _3, _4, _5]) } - public var Appearance_LargeEmoji: String { return self._s[4387]! } - public var TwoStepAuth_AdditionalPassword: String { return self._s[4389]! } - public var EditTheme_Edit_Preview_IncomingReplyText: String { return self._s[4390]! } + public var Appearance_LargeEmoji: String { return self._s[4389]! } + public var TwoStepAuth_AdditionalPassword: String { return self._s[4391]! } + public var EditTheme_Edit_Preview_IncomingReplyText: String { return self._s[4392]! } public func PUSH_CHAT_DELETE_YOU(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4391]!, self._r[4391]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4393]!, self._r[4393]!, [_1, _2]) } - public var Passport_Phone_EnterOtherNumber: String { return self._s[4392]! } - public var Message_PinnedPhotoMessage: String { return self._s[4393]! } - public var Passport_FieldPhone: String { return self._s[4394]! } - public var TwoStepAuth_RecoveryEmailAddDescription: String { return self._s[4395]! } - public var Stats_NotificationsTitle: String { return self._s[4396]! } - public var ChatSettings_AutoPlayGifs: String { return self._s[4397]! } - public var InfoPlist_NSCameraUsageDescription: String { return self._s[4399]! } - public var Conversation_Call: String { return self._s[4400]! } - public var Common_TakePhoto: String { return self._s[4402]! } - public var Group_EditAdmin_RankTitle: String { return self._s[4403]! } - public var Wallet_Receive_CommentHeader: String { return self._s[4404]! } - public var Channel_NotificationLoading: String { return self._s[4405]! } + public var Passport_Phone_EnterOtherNumber: String { return self._s[4394]! } + public var Message_PinnedPhotoMessage: String { return self._s[4395]! } + public var Passport_FieldPhone: String { return self._s[4396]! } + public var TwoStepAuth_RecoveryEmailAddDescription: String { return self._s[4397]! } + public var Stats_NotificationsTitle: String { return self._s[4398]! } + public var ChatSettings_AutoPlayGifs: String { return self._s[4399]! } + public var InfoPlist_NSCameraUsageDescription: String { return self._s[4401]! } + public var Conversation_Call: String { return self._s[4402]! } + public var Common_TakePhoto: String { return self._s[4404]! } + public var Group_EditAdmin_RankTitle: String { return self._s[4405]! } + public var Wallet_Receive_CommentHeader: String { return self._s[4406]! } + public var Channel_NotificationLoading: String { return self._s[4407]! } public func Notification_Exceptions_Sound(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4406]!, self._r[4406]!, [_0]) + return formatWithArgumentRanges(self._s[4408]!, self._r[4408]!, [_0]) } public func ScheduledMessages_ScheduledDate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4407]!, self._r[4407]!, [_0]) + return formatWithArgumentRanges(self._s[4409]!, self._r[4409]!, [_0]) } public func PUSH_CHANNEL_MESSAGE_VIDEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4408]!, self._r[4408]!, [_1]) + return formatWithArgumentRanges(self._s[4410]!, self._r[4410]!, [_1]) } - public var Permissions_SiriTitle_v0: String { return self._s[4409]! } + public var Permissions_SiriTitle_v0: String { return self._s[4411]! } public func VoiceOver_Chat_VoiceMessageFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4410]!, self._r[4410]!, [_0]) + return formatWithArgumentRanges(self._s[4412]!, self._r[4412]!, [_0]) } public func Login_ResetAccountProtected_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4411]!, self._r[4411]!, [_0]) + return formatWithArgumentRanges(self._s[4413]!, self._r[4413]!, [_0]) } - public var Channel_MessagePhotoRemoved: String { return self._s[4412]! } - public var Wallet_Info_ReceiveGrams: String { return self._s[4413]! } - public var ClearCache_FreeSpace: String { return self._s[4414]! } - public var Appearance_BubbleCorners_Apply: String { return self._s[4415]! } - public var Common_edit: String { return self._s[4416]! } - public var PrivacySettings_AuthSessions: String { return self._s[4417]! } - public var Month_ShortJune: String { return self._s[4418]! } - public var PrivacyLastSeenSettings_AlwaysShareWith_Placeholder: String { return self._s[4419]! } - public var Call_ReportSend: String { return self._s[4420]! } - public var Watch_LastSeen_JustNow: String { return self._s[4421]! } - public var Notifications_MessageNotifications: String { return self._s[4422]! } - public var WallpaperSearch_ColorGreen: String { return self._s[4423]! } - public var BroadcastListInfo_AddRecipient: String { return self._s[4425]! } - public var Group_Status: String { return self._s[4426]! } + public var Channel_MessagePhotoRemoved: String { return self._s[4414]! } + public var Wallet_Info_ReceiveGrams: String { return self._s[4415]! } + public var ClearCache_FreeSpace: String { return self._s[4416]! } + public var Appearance_BubbleCorners_Apply: String { return self._s[4417]! } + public var Common_edit: String { return self._s[4418]! } + public var PrivacySettings_AuthSessions: String { return self._s[4419]! } + public var Month_ShortJune: String { return self._s[4420]! } + public var PrivacyLastSeenSettings_AlwaysShareWith_Placeholder: String { return self._s[4421]! } + public var Call_ReportSend: String { return self._s[4422]! } + public var Watch_LastSeen_JustNow: String { return self._s[4423]! } + public var Notifications_MessageNotifications: String { return self._s[4424]! } + public var WallpaperSearch_ColorGreen: String { return self._s[4425]! } + public var BroadcastListInfo_AddRecipient: String { return self._s[4427]! } + public var Group_Status: String { return self._s[4428]! } public func AutoNightTheme_LocationHelp(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4427]!, self._r[4427]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4429]!, self._r[4429]!, [_0, _1]) } - public var TextFormat_AddLinkTitle: String { return self._s[4428]! } - public var ShareMenu_ShareTo: String { return self._s[4429]! } - public var Conversation_Moderate_Ban: String { return self._s[4430]! } + public var TextFormat_AddLinkTitle: String { return self._s[4430]! } + public var ShareMenu_ShareTo: String { return self._s[4431]! } + public var Conversation_Moderate_Ban: String { return self._s[4432]! } public func Conversation_DeleteMessagesFor(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4431]!, self._r[4431]!, [_0]) + return formatWithArgumentRanges(self._s[4433]!, self._r[4433]!, [_0]) } - public var SharedMedia_ViewInChat: String { return self._s[4432]! } - public var Map_LiveLocationFor8Hours: String { return self._s[4433]! } + public var SharedMedia_ViewInChat: String { return self._s[4434]! } + public var Map_LiveLocationFor8Hours: String { return self._s[4435]! } public func PUSH_PINNED_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4434]!, self._r[4434]!, [_1]) + return formatWithArgumentRanges(self._s[4436]!, self._r[4436]!, [_1]) } public func PUSH_PINNED_POLL(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4435]!, self._r[4435]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4437]!, self._r[4437]!, [_1, _2]) } public func Map_AccurateTo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4437]!, self._r[4437]!, [_0]) + return formatWithArgumentRanges(self._s[4439]!, self._r[4439]!, [_0]) } - public var Map_OpenInHereMaps: String { return self._s[4438]! } - public var Appearance_ReduceMotion: String { return self._s[4439]! } + public var Map_OpenInHereMaps: String { return self._s[4440]! } + public var Appearance_ReduceMotion: String { return self._s[4441]! } public func PUSH_MESSAGE_TEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4440]!, self._r[4440]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4442]!, self._r[4442]!, [_1, _2]) } - public var Channel_Setup_TypePublicHelp: String { return self._s[4441]! } - public var Passport_Identity_EditInternalPassport: String { return self._s[4442]! } - public var PhotoEditor_Skip: String { return self._s[4443]! } - public func SharedMedia_Video(_ value: Int32) -> String { + public var Channel_Setup_TypePublicHelp: String { return self._s[4443]! } + public var Passport_Identity_EditInternalPassport: String { return self._s[4444]! } + public var PhotoEditor_Skip: String { return self._s[4445]! } + public func Stats_MessageForwards(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[0 * 6 + Int(form.rawValue)]!, stringValue) } - public func StickerPack_RemoveStickerCount(_ value: Int32) -> String { + public func Notifications_ExceptionMuteExpires_Minutes(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[1 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_Hours(_ value: Int32) -> String { + public func Stats_GroupTopAdminDeletions(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[2 * 6 + Int(form.rawValue)]!, stringValue) } - public func Media_ShareItem(_ value: Int32) -> String { + public func Media_SharePhoto(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[3 * 6 + Int(form.rawValue)]!, stringValue) } - public func Stats_GroupTopAdminBans(_ value: Int32) -> String { + public func Passport_Scans(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[4 * 6 + Int(form.rawValue)]!, stringValue) } - public func MuteExpires_Hours(_ value: Int32) -> String { + public func MessageTimer_Seconds(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[5 * 6 + Int(form.rawValue)]!, stringValue) } - public func CreatePoll_AddMoreOptions(_ value: Int32) -> String { + public func LiveLocation_MenuChatsCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[6 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_Months(_ value: Int32) -> String { + public func Conversation_LiveLocationMembersCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[7 * 6 + Int(form.rawValue)]!, stringValue) } - public func Conversation_StatusSubscribers(_ value: Int32) -> String { + public func StickerPack_StickerCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[8 * 6 + Int(form.rawValue)]!, stringValue) } - public func Stats_MessageViews(_ value: Int32) -> String { + public func MessageTimer_ShortDays(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[9 * 6 + Int(form.rawValue)]!, stringValue) } - public func PUSH_CHAT_MESSAGES(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[10 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func Stats_GroupTopPosterChars(_ value: Int32) -> String { + public func ForwardedFiles(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[11 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedStickers(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[12 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedPhotos(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[13 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Call_Minutes(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[14 * 6 + Int(form.rawValue)]!, stringValue) - } - public func GroupInfo_ShowMoreMembers(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[15 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PasscodeSettings_FailedAttempts(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[16 * 6 + Int(form.rawValue)]!, stringValue) - } - public func AttachmentMenu_SendItem(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[17 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_Seconds(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[18 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Map_ETAMinutes(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[19 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ServiceMessage_GameScoreSelfSimple(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[20 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Notification_GameScoreSelfExtended(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[21 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ServiceMessage_GameScoreSelfExtended(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[22 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_Minutes(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[23 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHANNEL_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[24 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func MessageTimer_ShortDays(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[25 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Notifications_ExceptionMuteExpires_Hours(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[26 * 6 + Int(form.rawValue)]!, stringValue) - } - public func InstantPage_Views(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[27 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[10 * 6 + Int(form.rawValue)]!, stringValue) } public func StickerPack_AddStickerCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[28 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[11 * 6 + Int(form.rawValue)]!, stringValue) } - public func Media_SharePhoto(_ value: Int32) -> String { + public func SharedMedia_File(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[29 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[12 * 6 + Int(form.rawValue)]!, stringValue) } - public func MuteFor_Days(_ value: Int32) -> String { + public func Wallpaper_DeleteConfirmation(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[30 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[13 * 6 + Int(form.rawValue)]!, stringValue) } - public func PUSH_CHAT_MESSAGE_VIDEOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[31 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func UserCount(_ value: Int32) -> String { + public func MessageTimer_Months(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[32 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ChatList_DeletedChats(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[33 * 6 + Int(form.rawValue)]!, stringValue) - } - public func VoiceOver_Chat_PollOptionCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[34 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[35 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Wallet_Updated_HoursAgo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[36 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Contacts_ImportersCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[37 * 6 + Int(form.rawValue)]!, stringValue) - } - public func OldChannels_InactiveYear(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[38 * 6 + Int(form.rawValue)]!, stringValue) - } - public func StickerPack_StickerCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[39 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedAuthorsOthers(_ selector: Int32, _ _0: String, _ _1: String) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[40 * 6 + Int(form.rawValue)]!, _0, _1) + return String(format: self._ps[14 * 6 + Int(form.rawValue)]!, stringValue) } public func Theme_UsersCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[41 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessagePoll_VotedCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[42 * 6 + Int(form.rawValue)]!, stringValue) - } - public func VoiceOver_Chat_ContactEmailCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[43 * 6 + Int(form.rawValue)]!, stringValue) - } - public func VoiceOver_Chat_ContactPhoneNumberCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[44 * 6 + Int(form.rawValue)]!, stringValue) - } - public func GroupInfo_ParticipantCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[45 * 6 + Int(form.rawValue)]!, stringValue) - } - public func LastSeen_HoursAgo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[46 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ChatList_DeleteConfirmation(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[47 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Stats_GroupTopInviterInvites(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[48 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Forward_ConfirmMultipleFiles(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[49 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedVideoMessages(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[50 * 6 + Int(form.rawValue)]!, stringValue) - } - public func SharedMedia_Link(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[51 * 6 + Int(form.rawValue)]!, stringValue) - } - public func OldChannels_GroupFormat(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[52 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[15 * 6 + Int(form.rawValue)]!, stringValue) } public func PUSH_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[53 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func SharedMedia_DeleteItemsConfirmation(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[54 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MuteExpires_Minutes(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[55 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[56 * 6 + Int(form.rawValue)]!, _1, _2) + return String(format: self._ps[16 * 6 + Int(form.rawValue)]!, _1, _2) } public func Notifications_Exceptions(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[57 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[17 * 6 + Int(form.rawValue)]!, stringValue) } - public func PUSH_CHANNEL_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[58 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func ForwardedFiles(_ value: Int32) -> String { + public func Call_Minutes(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[59 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[18 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedPhotos(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[19 * 6 + Int(form.rawValue)]!, stringValue) } public func MessageTimer_Weeks(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[60 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[20 * 6 + Int(form.rawValue)]!, stringValue) } - public func AttachmentMenu_SendVideo(_ value: Int32) -> String { + public func Stats_GroupTopAdminBans(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[61 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[21 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_ShortMinutes(_ value: Int32) -> String { + public func Media_ShareItem(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[62 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[22 * 6 + Int(form.rawValue)]!, stringValue) } - public func InviteText_ContactsCountText(_ value: Int32) -> String { + public func PUSH_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[23 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func MessageTimer_Hours(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[63 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[24 * 6 + Int(form.rawValue)]!, stringValue) } - public func AttachmentMenu_SendPhoto(_ value: Int32) -> String { + public func ForwardedPolls(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[64 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_ShortWeeks(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[65 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[25 * 6 + Int(form.rawValue)]!, stringValue) } public func PrivacyLastSeenSettings_AddUsers(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[66 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[26 * 6 + Int(form.rawValue)]!, stringValue) } - public func Stats_MessageForwards(_ value: Int32) -> String { + public func ForwardedMessages(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[67 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[27 * 6 + Int(form.rawValue)]!, stringValue) } - public func Stats_GroupTopAdminDeletions(_ value: Int32) -> String { + public func Stats_GroupTopPosterMessages(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[68 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[28 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessagePoll_QuizCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[29 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedVideoMessages(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[30 * 6 + Int(form.rawValue)]!, stringValue) + } + public func AttachmentMenu_SendPhoto(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[31 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Conversation_StatusSubscribers(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[32 * 6 + Int(form.rawValue)]!, stringValue) + } + public func CreatePoll_AddMoreOptions(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[33 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MuteFor_Hours(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[34 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Call_Seconds(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[35 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Contacts_ImportersCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[36 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedStickers(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[37 * 6 + Int(form.rawValue)]!, stringValue) + } + public func SharedMedia_Video(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[38 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notification_GameScoreExtended(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[39 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHAT_MESSAGE_ROUNDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[40 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func MuteExpires_Days(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[41 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Conversation_SelectedMessages(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[42 * 6 + Int(form.rawValue)]!, stringValue) + } + public func UserCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[43 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Conversation_StatusMembers(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[44 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHAT_MESSAGE_VIDEOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[45 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func InviteText_ContactsCountText(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[46 * 6 + Int(form.rawValue)]!, stringValue) + } + public func SharedMedia_Photo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[47 * 6 + Int(form.rawValue)]!, stringValue) } public func ForwardedGifs(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[69 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[48 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHAT_MESSAGE_PHOTOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[49 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func Notification_GameScoreSelfExtended(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[50 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Conversation_StatusOnline(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[51 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PeopleNearby_ShowMorePeople(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[52 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHAT_MESSAGE_FWDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[53 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func VoiceOver_Chat_ContactEmailCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[54 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ChatList_DeleteConfirmation(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[55 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Invitation_Members(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[56 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Chat_DeleteMessagesConfirmation(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[57 * 6 + Int(form.rawValue)]!, stringValue) } public func ChatList_MessageVideos(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[70 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[58 * 6 + Int(form.rawValue)]!, stringValue) } public func MessageTimer_Days(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[59 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ServiceMessage_GameScoreSelfSimple(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[60 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedAudios(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[61 * 6 + Int(form.rawValue)]!, stringValue) + } + public func OldChannels_Leave(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[62 * 6 + Int(form.rawValue)]!, stringValue) + } + public func InstantPage_Views(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[63 * 6 + Int(form.rawValue)]!, stringValue) + } + public func SharedMedia_Generic(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[64 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Stats_GroupTopInviterInvites(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[65 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Forward_ConfirmMultipleFiles(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[66 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MuteExpires_Hours(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[67 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ChatList_SelectedChats(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[68 * 6 + Int(form.rawValue)]!, stringValue) + } + public func StickerPack_RemoveStickerCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[69 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Map_ETAHours(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[70 * 6 + Int(form.rawValue)]!, stringValue) + } + public func VoiceOver_Chat_PollVotes(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[71 * 6 + Int(form.rawValue)]!, stringValue) } - public func StickerPack_AddMaskCount(_ value: Int32) -> String { + public func MessageTimer_Minutes(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[72 * 6 + Int(form.rawValue)]!, stringValue) @@ -5294,319 +5298,317 @@ public final class PresentationStrings: Equatable { let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[73 * 6 + Int(form.rawValue)]!, stringValue) } - public func StickerPack_RemoveMaskCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[74 * 6 + Int(form.rawValue)]!, stringValue) - } - public func SharedMedia_File(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[75 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Notification_GameScoreExtended(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[76 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedLocations(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[77 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHANNEL_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + public func PUSH_CHANNEL_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[78 * 6 + Int(form.rawValue)]!, _1, _2) + return String(format: self._ps[74 * 6 + Int(form.rawValue)]!, _1, _2) } public func AttachmentMenu_SendGif(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[79 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedMessages(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[80 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PollResults_ShowMore(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[81 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ChatList_SelectedChats(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[82 * 6 + Int(form.rawValue)]!, stringValue) - } - public func LiveLocationUpdated_MinutesAgo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[83 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Stats_GroupTopAdminKicks(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[84 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Watch_LastSeen_MinutesAgo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[85 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Watch_LastSeen_HoursAgo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[86 * 6 + Int(form.rawValue)]!, stringValue) - } - public func OldChannels_Leave(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[87 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[88 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func PUSH_CHANNEL_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[89 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func LastSeen_MinutesAgo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[90 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Notifications_ExceptionMuteExpires_Days(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[91 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Notification_GameScoreSelfSimple(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[92 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHAT_MESSAGE_PHOTOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[93 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func Notification_GameScoreSimple(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[94 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Conversation_StatusOnline(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[95 * 6 + Int(form.rawValue)]!, stringValue) - } - public func OldChannels_InactiveMonth(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[96 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ServiceMessage_GameScoreExtended(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[97 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ChatList_MessagePhotos(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[98 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PeopleNearby_ShowMorePeople(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[99 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHANNEL_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[100 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Invitation_Members(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[101 * 6 + Int(form.rawValue)]!, stringValue) - } - public func VoiceOver_Chat_PollVotes(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[102 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Chat_DeleteMessagesConfirmation(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[103 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedPolls(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[104 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ChatListFilter_ShowMoreChats(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[105 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_ShortSeconds(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[106 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Contacts_InviteContacts(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[107 * 6 + Int(form.rawValue)]!, stringValue) - } - public func QuickSend_Photos(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[108 * 6 + Int(form.rawValue)]!, stringValue) - } - public func LiveLocation_MenuChatsCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[109 * 6 + Int(form.rawValue)]!, stringValue) - } - public func DialogList_LiveLocationChatsCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[110 * 6 + Int(form.rawValue)]!, stringValue) - } - public func OldChannels_InactiveWeek(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[111 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHAT_MESSAGE_ROUNDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[112 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func Stats_GroupTopPosterMessages(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[113 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_ShortHours(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[114 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[115 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Media_ShareVideo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[116 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Wallet_Updated_MinutesAgo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[117 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Watch_UserInfo_Mute(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[118 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Passport_Scans(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[119 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_Years(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[120 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedAudios(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[121 * 6 + Int(form.rawValue)]!, stringValue) - } - public func SharedMedia_Photo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[122 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Conversation_SelectedMessages(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[123 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHAT_MESSAGE_FWDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[124 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func MessagePoll_QuizCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[125 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Call_ShortSeconds(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[126 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Notifications_ExceptionMuteExpires_Minutes(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[127 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Wallpaper_DeleteConfirmation(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[128 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Map_ETAHours(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[129 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MuteFor_Hours(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[130 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Conversation_StatusMembers(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[131 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedContacts(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[132 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Call_Seconds(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[133 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MuteExpires_Days(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[134 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Conversation_LiveLocationMembersCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[135 * 6 + Int(form.rawValue)]!, stringValue) - } - public func SharedMedia_Generic(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[136 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[75 * 6 + Int(form.rawValue)]!, stringValue) } public func ForwardedVideos(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[137 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[76 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Watch_LastSeen_HoursAgo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[77 * 6 + Int(form.rawValue)]!, stringValue) + } + public func OldChannels_InactiveYear(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[78 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessagePoll_VotedCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[79 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ChatList_MessagePhotos(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[80 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ChatListFilter_ShowMoreChats(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[81 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[82 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func OldChannels_GroupFormat(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[83 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_ShortHours(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[84 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_ShortWeeks(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[85 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Wallet_Updated_HoursAgo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[86 * 6 + Int(form.rawValue)]!, stringValue) + } + public func StickerPack_AddMaskCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[87 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedAuthorsOthers(_ selector: Int32, _ _0: String, _ _1: String) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[88 * 6 + Int(form.rawValue)]!, _0, _1) + } + public func PUSH_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[89 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func Map_ETAMinutes(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[90 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ServiceMessage_GameScoreSelfExtended(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[91 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedContacts(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[92 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ServiceMessage_GameScoreExtended(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[93 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHANNEL_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[94 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func PUSH_CHANNEL_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[95 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func PUSH_CHANNEL_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[96 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func GroupInfo_ShowMoreMembers(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[97 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHAT_MESSAGES(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[98 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func LastSeen_MinutesAgo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[99 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MuteExpires_Minutes(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[100 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notification_GameScoreSimple(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[101 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Stats_GroupTopPosterChars(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[102 * 6 + Int(form.rawValue)]!, stringValue) + } + public func LastSeen_HoursAgo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[103 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notifications_ExceptionMuteExpires_Hours(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[104 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ChatList_DeletedChats(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[105 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Stats_MessageViews(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[106 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHANNEL_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[107 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func OldChannels_InactiveWeek(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[108 * 6 + Int(form.rawValue)]!, stringValue) + } + public func QuickSend_Photos(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[109 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_Years(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[110 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Watch_UserInfo_Mute(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[111 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notifications_ExceptionMuteExpires_Days(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[112 * 6 + Int(form.rawValue)]!, stringValue) + } + public func LiveLocationUpdated_MinutesAgo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[113 * 6 + Int(form.rawValue)]!, stringValue) + } + public func StickerPack_RemoveMaskCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[114 * 6 + Int(form.rawValue)]!, stringValue) + } + public func OldChannels_InactiveMonth(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[115 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PollResults_ShowMore(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[116 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[117 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func AttachmentMenu_SendItem(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[118 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_ShortMinutes(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[119 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_ShortSeconds(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[120 * 6 + Int(form.rawValue)]!, stringValue) + } + public func AttachmentMenu_SendVideo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[121 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PasscodeSettings_FailedAttempts(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[122 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Stats_GroupTopAdminKicks(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[123 * 6 + Int(form.rawValue)]!, stringValue) + } + public func SharedMedia_Link(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[124 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Call_ShortSeconds(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[125 * 6 + Int(form.rawValue)]!, stringValue) } public func ServiceMessage_GameScoreSimple(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[126 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedLocations(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[127 * 6 + Int(form.rawValue)]!, stringValue) + } + public func VoiceOver_Chat_ContactPhoneNumberCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[128 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MuteFor_Days(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[129 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Media_ShareVideo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[130 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Watch_LastSeen_MinutesAgo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[131 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Wallet_Updated_MinutesAgo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[132 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notification_GameScoreSelfSimple(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[133 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Contacts_InviteContacts(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[134 * 6 + Int(form.rawValue)]!, stringValue) + } + public func GroupInfo_ParticipantCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[135 * 6 + Int(form.rawValue)]!, stringValue) + } + public func SharedMedia_DeleteItemsConfirmation(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[136 * 6 + Int(form.rawValue)]!, stringValue) + } + public func DialogList_LiveLocationChatsCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[137 * 6 + Int(form.rawValue)]!, stringValue) + } + public func VoiceOver_Chat_PollOptionCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[138 * 6 + Int(form.rawValue)]!, stringValue) diff --git a/submodules/TelegramUI/Resources/Animations/Bin.json b/submodules/TelegramUI/Resources/Animations/Bin.json new file mode 100644 index 0000000000..6deddcf180 --- /dev/null +++ b/submodules/TelegramUI/Resources/Animations/Bin.json @@ -0,0 +1 @@ +{"v":"5.6.5","fr":60,"ip":167,"op":251,"w":240,"h":240,"nm":"RedBin","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Cap4","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":199,"s":[0,-3,0],"to":[0,-1.5,0],"ti":[0,1.5,0]},{"t":206,"s":[0,-12,0]}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-0.83,0],[0,0],[0,-0.83],[0,0],[0,0]],"o":[[0,0],[0,-0.83],[0,0],[0.83,0],[0,0],[0,0],[0,0]],"v":[[-3.5,1.5],[-3.5,0],[-2,-1.5],[2,-1.5],[3.5,0],[3.5,1.5],[3.5,1.5]],"c":false},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.231372563979,0.188235309077,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.33,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[600,600],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Cap2","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":198,"s":[50]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":199,"s":[87.5]},{"t":204,"s":[100]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":198,"s":[50]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":199,"s":[12.5]},{"t":204,"s":[0]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Обрезать контуры 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":-8,"op":592,"st":-8,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Cap3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":206,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":213,"s":[-5]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":221,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":228,"s":[10]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":236,"s":[-12]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":241,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":246,"s":[-3]},{"t":251,"s":[0]}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.944,"y":0},"o":{"x":0.097,"y":1},"t":194,"s":[120,166.791,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.666,"y":0.291},"o":{"x":0.333,"y":0.733},"t":195,"s":[120,166.158,0],"to":[0,0,0],"ti":[0,6.74,0]},{"i":{"x":0.666,"y":0.584},"o":{"x":0.332,"y":0.45},"t":196,"s":[120,162.092,0],"to":[0,-7.662,0],"ti":[0,12.26,0]},{"i":{"x":0.667,"y":0.367},"o":{"x":0.333,"y":0.658},"t":199,"s":[120,138.022,0],"to":[0,-3.21,0],"ti":[0,3.305,0]},{"i":{"x":0.651,"y":0.659},"o":{"x":0.359,"y":0.423},"t":200,"s":[120,132.963,0],"to":[0,-14.035,0],"ti":[0,19.076,0]},{"i":{"x":0.617,"y":0.897},"o":{"x":0.295,"y":0.531},"t":206,"s":[120,83.951,0],"to":[0,-11.45,0],"ti":[0,-1.544,0]},{"i":{"x":0.703,"y":1},"o":{"x":0.341,"y":0.092},"t":213,"s":[120,53.065,0],"to":[0,2.8,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":221,"s":[120,88.5,0],"to":[0,-5,0],"ti":[0,4.417,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":228,"s":[120,58.5,0],"to":[0,-4.417,0],"ti":[0,-4.083,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":236,"s":[120,62,0],"to":[0,4.083,0],"ti":[0,-0.667,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":241,"s":[120,83,0],"to":[0,0.667,0],"ti":[0,0.917,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":246,"s":[120,66,0],"to":[0,-0.917,0],"ti":[0,-1.917,0]},{"t":251,"s":[120,77.5,0]}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.5,0],[8.5,0]],"c":false},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.231372563979,0.188235309077,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.33,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[600,600],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Cap1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":194,"s":[50]},{"t":199,"s":[0]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":194,"s":[50]},{"t":199,"s":[100]}],"ix":2},"o":{"a":0,"k":180,"ix":3},"m":1,"ix":2,"nm":"Обрезать контуры 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":-8,"op":592,"st":-8,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Line3","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":196,"s":[0]},{"t":197,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":197,"s":[139.5,134,0],"to":[0,-0.833,0],"ti":[0,0.833,0]},{"t":198,"s":[139.5,129,0]}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":189,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0.25,-5.5],[-0.25,5.5]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":198,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0.667,-3.833],[0.167,5.5]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":211,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0.25,-5.5],[-0.25,5.5]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":221,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0.667,-3.833],[0.167,5.5]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":228,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0.25,-5.5],[-0.25,5.5]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":232,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0.25,-5.5],[-0.25,5.5]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":241,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0.458,-5.083],[-0.042,5.5]],"c":false}]},{"t":247,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0.25,-5.5],[-0.25,5.5]],"c":false}]}],"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.231372563979,0.188235309077,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.2,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[600,600],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Line3","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":197,"s":[97]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":199,"s":[89.655]},{"t":206,"s":[0]}],"ix":1,"x":"var $bm_rt;\n$bm_rt = thisComp.layer('Line1').content('\\u041e\\u0431\\u0440\\u0435\\u0437\\u0430\\u0442\\u044c \\u043a\\u043e\\u043d\\u0442\\u0443\\u0440\\u044b 1').start;"},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":197,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":199,"s":[100]},{"t":206,"s":[100]}],"ix":2,"x":"var $bm_rt;\n$bm_rt = thisComp.layer('Line1').content('\\u041e\\u0431\\u0440\\u0435\\u0437\\u0430\\u0442\\u044c \\u043a\\u043e\\u043d\\u0442\\u0443\\u0440\\u044b 1').end;"},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Обрезать контуры 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.231372563979,0.188235309077,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Заливка 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":-8,"op":592,"st":-8,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Line2","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":196,"s":[0]},{"t":197,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":197,"s":[120,134,0],"to":[0,-0.833,0],"ti":[0,0.833,0]},{"t":198,"s":[120,129,0]}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":189,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-5.5],[0,5.5]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":198,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-3.833],[0,5.5]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":209,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-5.5],[0,5.5]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":221,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-3.833],[0,5.5]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":228,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-5.5],[0,5.5]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":240,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-5.083],[0,5.5]],"c":false}]},{"t":247,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-5.5],[0,5.5]],"c":false}]}],"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.231372563979,0.188235309077,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.2,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[600,600],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Line2","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":197,"s":[97]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":199,"s":[89.655]},{"t":206,"s":[0]}],"ix":1,"x":"var $bm_rt;\n$bm_rt = thisComp.layer('Line1').content('\\u041e\\u0431\\u0440\\u0435\\u0437\\u0430\\u0442\\u044c \\u043a\\u043e\\u043d\\u0442\\u0443\\u0440\\u044b 1').start;"},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":197,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":199,"s":[100]},{"t":206,"s":[100]}],"ix":2,"x":"var $bm_rt;\n$bm_rt = thisComp.layer('Line1').content('\\u041e\\u0431\\u0440\\u0435\\u0437\\u0430\\u0442\\u044c \\u043a\\u043e\\u043d\\u0442\\u0443\\u0440\\u044b 1').end;"},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Обрезать контуры 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":-10,"op":590,"st":-10,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Line1","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":196,"s":[0]},{"t":197,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":197,"s":[100.5,134,0],"to":[0,-0.833,0],"ti":[0,0.833,0]},{"t":198,"s":[100.5,129,0]}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":189,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-0.25,-5.5],[0.25,5.5]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":198,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-0.667,-3.833],[-0.167,5.5]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":211,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-0.25,-5.5],[0.25,5.5]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":221,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-0.667,-3.833],[-0.167,5.5]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":228,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-0.25,-5.5],[0.25,5.5]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":232,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-0.25,-5.5],[0.25,5.5]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":241,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-0.458,-5.083],[0.042,5.5]],"c":false}]},{"t":247,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-0.25,-5.5],[0.25,5.5]],"c":false}]}],"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.231372563979,0.188235309077,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.2,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[600,600],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Line1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":197,"s":[97]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":199,"s":[89.655]},{"t":206,"s":[0]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":197,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":199,"s":[100]},{"t":206,"s":[100]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Обрезать контуры 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":-8,"op":592,"st":-8,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Bin","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":190,"s":[0]},{"t":191,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[120.25,120,0],"ix":2},"a":{"a":0,"k":[0,-9,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":189,"s":[{"i":[[0,0],[0,0],[-1.06,0],[0,0],[-0.06,1.05],[0,0]],"o":[[0,0],[0.06,1.05],[0,0],[1.06,0],[0,0],[0,0]],"v":[[-7,-8.5],[-6.11,6.62],[-4.11,8.5],[4.11,8.5],[6.11,6.62],[7,-8.5]],"c":true}]},{"i":{"x":0.35,"y":1},"o":{"x":0.333,"y":0},"t":200,"s":[{"i":[[0,0],[0,0],[-1.06,0],[0,0],[-0.06,1.05],[0,0]],"o":[[0,0],[0.06,1.05],[0,0],[1.06,0],[0,0],[0,0]],"v":[[-7.833,-6.833],[-6.943,6.62],[-4.943,8.5],[4.943,8.5],[6.943,6.62],[7.833,-6.833]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.65,"y":0},"t":213,"s":[{"i":[[0,0],[0,0],[-1.06,0],[0,0],[-0.06,1.05],[0,0]],"o":[[0,0],[0.06,1.05],[0,0],[1.06,0],[0,0],[0,0]],"v":[[-7,-8.5],[-6.11,6.62],[-4.11,8.5],[4.11,8.5],[6.11,6.62],[7,-8.5]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":221,"s":[{"i":[[0,0],[0,0],[-1.06,0],[0,0],[-0.06,1.05],[0,0]],"o":[[0,0],[0.06,1.05],[0,0],[1.06,0],[0,0],[0,0]],"v":[[-7.833,-6.833],[-6.943,6.62],[-4.943,8.5],[4.943,8.5],[6.943,6.62],[7.833,-6.833]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":230,"s":[{"i":[[0,0],[0,0],[-1.06,0],[0,0],[-0.06,1.05],[0,0]],"o":[[0,0],[0.06,1.05],[0,0],[1.06,0],[0,0],[0,0]],"v":[[-7,-8.5],[-6.11,6.62],[-4.11,8.5],[4.11,8.5],[6.11,6.62],[7,-8.5]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":234,"s":[{"i":[[0,0],[0,0],[-1.06,0],[0,0],[-0.06,1.05],[0,0]],"o":[[0,0],[0.06,1.05],[0,0],[1.06,0],[0,0],[0,0]],"v":[[-7,-8.5],[-6.11,6.62],[-4.11,8.5],[4.11,8.5],[6.11,6.62],[7,-8.5]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":241,"s":[{"i":[[0,0],[0,0],[-1.06,0],[0,0],[-0.06,1.05],[0,0]],"o":[[0,0],[0.06,1.05],[0,0],[1.06,0],[0,0],[0,0]],"v":[[-7.417,-7.667],[-6.527,6.62],[-4.527,8.5],[4.527,8.5],[6.527,6.62],[7.417,-7.667]],"c":true}]},{"t":245,"s":[{"i":[[0,0],[0,0],[-1.06,0],[0,0],[-0.06,1.05],[0,0]],"o":[[0,0],[0.06,1.05],[0,0],[1.06,0],[0,0],[0,0]],"v":[[-7,-8.5],[-6.11,6.62],[-4.11,8.5],[4.11,8.5],[6.11,6.62],[7,-8.5]],"c":true}]}],"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.231372563979,0.188235309077,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.33,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[600,600],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Bin","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":189,"s":[50]},{"t":206,"s":[0]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":189,"s":[50]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":206,"s":[73]},{"t":207,"s":[100]}],"ix":2},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":189,"s":[-43]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":199,"s":[-20]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":205,"s":[0.429]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":206,"s":[4]},{"t":207,"s":[-43]}],"ix":3},"m":1,"ix":2,"nm":"Обрезать контуры 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":-7,"op":592,"st":-8,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Recording","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.115,"y":0.996},"o":{"x":0.6,"y":0},"t":166,"s":[120,120,0],"to":[0,-8,0],"ti":[0,-5.661,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.816,"y":0},"t":178,"s":[120,72,0],"to":[0,5.661,0],"ti":[0,-13.661,0]},{"t":192,"s":[120,153.969,0]}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":172,"s":[{"i":[[-2.76,0],[0,2.76],[2.76,0],[0,-2.76]],"o":[[2.76,0],[0,-2.76],[-2.76,0],[0,2.76]],"v":[[0,5],[5,0],[0,-5],[-5,0]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":180,"s":[{"i":[[-2.76,0],[0,2.76],[2.76,0],[0,-2.76]],"o":[[2.76,0],[0,-2.76],[-2.76,0],[0,2.76]],"v":[[0,5],[5,0],[0,-5],[-5,0]],"c":true}]},{"t":192,"s":[{"i":[[-2.547,0.001],[0.008,0.807],[2.735,0.02],[-0.007,-0.787]],"o":[[2.714,-0.001],[0.008,-0.756],[-2.557,0.031],[-0.002,0.812]],"v":[[-0.003,4.99],[2.99,4.317],[-0.003,3.667],[-3.104,4.317]],"c":true}]}],"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.231372997165,0.188234999776,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Заливка 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0.044,0.036],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[600,600],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Recording","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":220,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/submodules/TelegramUI/Resources/Animations/Lock.json b/submodules/TelegramUI/Resources/Animations/Lock.json index f56c2c101f..8fd257e106 100644 --- a/submodules/TelegramUI/Resources/Animations/Lock.json +++ b/submodules/TelegramUI/Resources/Animations/Lock.json @@ -1 +1 @@ -{"v":"5.5.9","fr":60,"ip":0,"op":30,"w":240,"h":360,"nm":"Lock2","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Path","parent":2,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":15,"s":[100]},{"t":25,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,0,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":15,"s":[100,100,100]},{"t":25,"s":[0,0,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.29,0],[0,0],[0,-1.29],[0,0],[1.28,0],[0,0],[0,1.28],[0,0]],"o":[[0,0],[1.28,0],[0,0],[0,1.28],[0,0],[-1.29,0],[0,0],[0,-1.29]],"v":[[-4.995,-6.335],[5.005,-6.335],[7.335,-3.995],[7.335,4.005],[5.005,6.335],[-4.995,6.335],[-7.335,4.005],[-7.335,-3.995]],"c":true},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.968627510819,0.968627510819,0.968627510819,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Заливка 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[600,600],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Path","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":30,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Rectangle","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":15,"s":[0]},{"t":25,"s":[90]}],"ix":10},"p":{"s":true,"x":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[120]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":15,"s":[120]},{"t":25,"s":[120]}],"ix":3},"y":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[150]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":15,"s":[200]},{"t":25,"s":[180]}],"ix":4}},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":15,"s":[{"i":[[-1.66,0],[0,0],[0,-1.66],[0,0],[1.66,0],[0,0],[0,1.66],[0,0]],"o":[[0,0],[1.66,0],[0,0],[0,1.66],[0,0],[-1.66,0],[0,0],[0,-1.66]],"v":[[-5,-7],[5,-7],[8,-4],[8,4],[5,7],[-5,7],[-8,4],[-8,-4]],"c":true}]},{"t":25,"s":[{"i":[[-1.66,0],[0,0],[0,-1.66],[0,0],[1.66,0],[0,0],[0,1.66],[0,0]],"o":[[0,0],[1.66,0],[0,0],[0,1.66],[0,0],[-1.66,0],[0,0],[0,-1.66]],"v":[[-5,-8],[5,-8],[8,-5],[8,5],[5,8],[-5,8],[-8,5],[-8,-5]],"c":true}]}],"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.592000007629,0.592000007629,0.592000007629,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.33,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[600,600],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Rectangle","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.592156862745,0.592156862745,0.592156862745,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Заливка 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":0,"op":30,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Path","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[10]},{"t":15,"s":[0]}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":1,"y":0},"t":0,"s":[30,-32,0],"to":[0,2.5,0],"ti":[0,-11.667,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":15,"s":[30,-17,0],"to":[0,11.667,0],"ti":[0,-9.167,0]},{"t":25,"s":[30,38,0]}],"ix":2},"a":{"a":0,"k":[30,36,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-2.76,0],[0,-2.76],[0,0]],"o":[[0,0],[0,-2.76],[2.76,0],[0,0],[0,0]],"v":[[-5,2],[-5,-1],[0,-6],[5,-1],[5,6]],"c":false},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.592000007629,0.592000007629,0.592000007629,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.33,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[600,600],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Path","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":30,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Path 4","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":1,"y":0},"t":0,"s":[0,132,0],"to":[0,-19.667,0],"ti":[0,19.667,0]},{"t":15,"s":[0,14,0]}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":1,"y":0},"t":0,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-8,3],[0,-3],[8,3]],"c":false}]},{"t":12,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-0.753,3],[0,-3],[0.753,3]],"c":false}]}],"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.592000007629,0.592000007629,0.592000007629,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.33,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[600,600],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Path 4","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":30,"st":0,"bm":0}],"markers":[]} \ No newline at end of file +{"v":"5.6.5","fr":60,"ip":0,"op":30,"w":240,"h":360,"nm":"Lock2","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Path","parent":2,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":13,"s":[100]},{"t":23,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,0,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":13,"s":[100,100,100]},{"t":23,"s":[0,0,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.29,0],[0,0],[0,-1.29],[0,0],[1.28,0],[0,0],[0,1.28],[0,0]],"o":[[0,0],[1.28,0],[0,0],[0,1.28],[0,0],[-1.29,0],[0,0],[0,-1.29]],"v":[[-4.995,-6.335],[5.005,-6.335],[7.335,-3.995],[7.335,4.005],[5.005,6.335],[-4.995,6.335],[-7.335,4.005],[-7.335,-3.995]],"c":true},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.968627510819,0.968627510819,0.968627510819,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Заливка 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[600,600],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Path","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":30,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Rectangle","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":13,"s":[0]},{"t":23,"s":[90]}],"ix":10},"p":{"s":true,"x":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[120]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":13,"s":[120]},{"t":23,"s":[120]}],"ix":3},"y":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[150]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":13,"s":[200]},{"t":23,"s":[180]}],"ix":4}},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":13,"s":[{"i":[[-1.66,0],[0,0],[0,-1.66],[0,0],[1.66,0],[0,0],[0,1.66],[0,0]],"o":[[0,0],[1.66,0],[0,0],[0,1.66],[0,0],[-1.66,0],[0,0],[0,-1.66]],"v":[[-5,-7],[5,-7],[8,-4],[8,4],[5,7],[-5,7],[-8,4],[-8,-4]],"c":true}]},{"t":23,"s":[{"i":[[-1.66,0],[0,0],[0,-1.66],[0,0],[1.66,0],[0,0],[0,1.66],[0,0]],"o":[[0,0],[1.66,0],[0,0],[0,1.66],[0,0],[-1.66,0],[0,0],[0,-1.66]],"v":[[-5,-8],[5,-8],[8,-5],[8,5],[5,8],[-5,8],[-8,5],[-8,-5]],"c":true}]}],"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0,0.494117647059,0.898039215686,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.33,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[600,600],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.494117647059,0.898039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Заливка 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":0,"op":30,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Path","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[10]},{"t":10,"s":[0]}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":1,"y":0},"t":0,"s":[30,-32,0],"to":[0.015,12,0],"ti":[-0.012,-7.718,0]},{"t":15,"s":[30.088,39.998,0]}],"ix":2},"a":{"a":0,"k":[30,36,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-2.76,0],[0,-2.76],[0,0]],"o":[[0,0],[0,-2.76],[2.76,0],[0,0],[0,0]],"v":[[-5,2],[-5,-1],[0,-6],[5,-1],[5,6]],"c":false},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0,0.494117647059,0.898039215686,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.33,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[600,600],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Path","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":30,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Path 4","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.498,"y":1},"o":{"x":0.921,"y":0},"t":0,"s":[0,132,0],"to":[-0.018,-13.122,0],"ti":[0.001,0.644,0]},{"t":16,"s":[-0.62,8.043,0]}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":1,"y":0},"t":0,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-8,3],[0,-3],[8,3]],"c":false}]},{"t":12,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-0.753,3],[0,-3],[0.753,3]],"c":false}]}],"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0,0.494117647059,0.898039215686,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.33,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[600,600],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Path 4","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":30,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/submodules/TelegramUI/Resources/Animations/voicebin.json b/submodules/TelegramUI/Resources/Animations/voicebin.json deleted file mode 100644 index baf0e38c66..0000000000 --- a/submodules/TelegramUI/Resources/Animations/voicebin.json +++ /dev/null @@ -1 +0,0 @@ -{"v":"5.5.9","fr":60,"ip":0,"op":78,"w":240,"h":240,"nm":"RedBin 2","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Cap1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0],"y":[0]},"o":{"x":[0.333],"y":[0]},"t":42,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[1],"y":[1]},"t":52,"s":[10]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":62,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[1],"y":[0]},"t":68,"s":[-5]},{"t":77,"s":[0]}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":22,"s":[120,18,0],"to":[0,11.667,0],"ti":[0,-6.667,0]},{"i":{"x":0,"y":1},"o":{"x":0.333,"y":0},"t":42,"s":[120,88,0],"to":[0,6.667,0],"ti":[0,0.833,0]},{"i":{"x":0.667,"y":1},"o":{"x":1,"y":0},"t":52,"s":[120,58,0],"to":[0,-0.833,0],"ti":[0,-1.667,0]},{"i":{"x":0,"y":1},"o":{"x":0.333,"y":0},"t":62,"s":[120,83,0],"to":[0,1.667,0],"ti":[0,0.833,0]},{"i":{"x":0.667,"y":1},"o":{"x":1,"y":0},"t":68,"s":[120,68,0],"to":[0,-0.833,0],"ti":[0,-1.667,0]},{"t":77,"s":[120,78,0]}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-8.5,0],[8.5,0]],"c":false},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.231372563979,0.188235309077,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.33,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[600,600],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Cap1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":27,"s":[50]},{"t":32,"s":[0]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":27,"s":[50]},{"t":32,"s":[100]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Обрезать контуры 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":78,"st":-188,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Cap2","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,-12,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-0.83,0],[0,0],[0,-0.83],[0,0],[0,0]],"o":[[0,0],[0,-0.83],[0,0],[0.83,0],[0,0],[0,0],[0,0]],"v":[[-3.5,1.5],[-3.5,0],[-2,-1.5],[2,-1.5],[3.5,0],[3.5,1.5],[3.5,1.5]],"c":false},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.231372563979,0.188235309077,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.33,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[600,600],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Cap2","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":27,"s":[50]},{"t":32,"s":[100]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":27,"s":[50]},{"t":32,"s":[0]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Обрезать контуры 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":78,"st":-188,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Line3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[139.5,129,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":32,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0.25,-5.5],[-0.25,5.5]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":42,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0.667,-3.833],[0.167,5.5]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":52,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0.25,-5.5],[-0.25,5.5]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"t":59,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0.25,-5.5],[-0.25,5.5]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":62,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0.458,-5.083],[-0.042,5.5]],"c":false}]},{"t":68,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0.25,-5.5],[-0.25,5.5]],"c":false}]}],"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.231372563979,0.188235309077,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.2,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[600,600],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Line3","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":26,"s":[0]},{"t":29,"s":[100]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Обрезать контуры 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.231372563979,0.188235309077,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Заливка 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":0,"op":78,"st":-188,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Line2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[120,129,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":32,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-5.5],[0,5.5]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":42,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-3.833],[0,5.5]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":52,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-5.5],[0,5.5]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":59,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-5.5],[0,5.5]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":62,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-5.083],[0,5.5]],"c":false}]},{"t":68,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-5.5],[0,5.5]],"c":false}]}],"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.231372563979,0.188235309077,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.2,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[600,600],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Line2","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Обрезать контуры 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":26,"s":[0]},{"t":29,"s":[100]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"Обрезать контуры 2","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":78,"st":-188,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Line1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[100.5,129,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":32,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-0.25,-5.5],[0.25,5.5]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":42,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-0.667,-3.833],[-0.167,5.5]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":52,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-0.25,-5.5],[0.25,5.5]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":59,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-0.25,-5.5],[0.25,5.5]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":62,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-0.458,-5.083],[0.042,5.5]],"c":false}]},{"t":68,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-0.25,-5.5],[0.25,5.5]],"c":false}]}],"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.231372563979,0.188235309077,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.2,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[600,600],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Line1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":26,"s":[0]},{"t":29,"s":[100]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Обрезать контуры 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":78,"st":-188,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Bin","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[120,120,0],"ix":2},"a":{"a":0,"k":[0,-9,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":32,"s":[{"i":[[0,0],[0,0],[-1.06,0],[0,0],[-0.06,1.05],[0,0]],"o":[[0,0],[0.06,1.05],[0,0],[1.06,0],[0,0],[0,0]],"v":[[-7,-8.5],[-6.11,6.62],[-4.11,8.5],[4.11,8.5],[6.11,6.62],[7,-8.5]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":42,"s":[{"i":[[0,0],[0,0],[-1.06,0],[0,0],[-0.06,1.05],[0,0]],"o":[[0,0],[0.06,1.05],[0,0],[1.06,0],[0,0],[0,0]],"v":[[-7.833,-6.833],[-6.943,6.62],[-4.943,8.5],[4.943,8.5],[6.943,6.62],[7.833,-6.833]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":52,"s":[{"i":[[0,0],[0,0],[-1.06,0],[0,0],[-0.06,1.05],[0,0]],"o":[[0,0],[0.06,1.05],[0,0],[1.06,0],[0,0],[0,0]],"v":[[-7,-8.5],[-6.11,6.62],[-4.11,8.5],[4.11,8.5],[6.11,6.62],[7,-8.5]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":59,"s":[{"i":[[0,0],[0,0],[-1.06,0],[0,0],[-0.06,1.05],[0,0]],"o":[[0,0],[0.06,1.05],[0,0],[1.06,0],[0,0],[0,0]],"v":[[-7,-8.5],[-6.11,6.62],[-4.11,8.5],[4.11,8.5],[6.11,6.62],[7,-8.5]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":62,"s":[{"i":[[0,0],[0,0],[-1.06,0],[0,0],[-0.06,1.05],[0,0]],"o":[[0,0],[0.06,1.05],[0,0],[1.06,0],[0,0],[0,0]],"v":[[-7.417,-7.667],[-6.527,6.62],[-4.527,8.5],[4.527,8.5],[6.527,6.62],[7.417,-7.667]],"c":true}]},{"t":68,"s":[{"i":[[0,0],[0,0],[-1.06,0],[0,0],[-0.06,1.05],[0,0]],"o":[[0,0],[0.06,1.05],[0,0],[1.06,0],[0,0],[0,0]],"v":[[-7,-8.5],[-6.11,6.62],[-4.11,8.5],[4.11,8.5],[6.11,6.62],[7,-8.5]],"c":true}]}],"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.231372563979,0.188235309077,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.33,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Обводка 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[600,600],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Bin","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":22,"s":[50]},{"t":42,"s":[0]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":22,"s":[50]},{"t":42,"s":[100]}],"ix":2},"o":{"a":0,"k":137,"ix":3},"m":1,"ix":2,"nm":"Обрезать контуры 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":78,"st":-188,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"RecMask 2","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[120,120,0],"to":[0,-15,0],"ti":[0,13.667,0]},{"i":{"x":0.667,"y":1},"o":{"x":1,"y":0},"t":15,"s":[120,30,0],"to":[0,-13.667,0],"ti":[0,-1.333,0]},{"t":24,"s":[120,38,0]}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,84.375,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[8.5,-8],[8.5,8],[-8.5,8],[-8.5,-8]],"c":true},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.96862745098,0.96862745098,0.96862745098,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Заливка 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[600,600],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Mask","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":78,"st":-190,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"Recording","tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[120,120,0],"to":[0,-15,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":1,"y":0},"t":15,"s":[120,30,0],"to":[0,0,0],"ti":[0,-15,0]},{"t":30,"s":[120,120,0]}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-2.76,0],[0,2.76],[2.76,0],[0,-2.76]],"o":[[2.76,0],[0,-2.76],[-2.76,0],[0,2.76]],"v":[[0,5],[5,0],[0,-5],[-5,0]],"c":true},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.231372997165,0.188234999776,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Заливка 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[600,600],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Recording","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":40,"st":-180,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/submodules/TelegramUI/Resources/PresentationStrings.mapping b/submodules/TelegramUI/Resources/PresentationStrings.mapping index 57c0618cbc..9a5d25c408 100644 Binary files a/submodules/TelegramUI/Resources/PresentationStrings.mapping and b/submodules/TelegramUI/Resources/PresentationStrings.mapping differ diff --git a/submodules/TelegramUI/Sources/BlobView.swift b/submodules/TelegramUI/Sources/BlobView.swift index 38e831f16d..bf2e47c9f8 100644 --- a/submodules/TelegramUI/Sources/BlobView.swift +++ b/submodules/TelegramUI/Sources/BlobView.swift @@ -24,7 +24,7 @@ final class VoiceBlobView: UIView, TGModernConversationInputMicButtonDecoration pointsCount: 8, minRandomness: 1, maxRandomness: 1, - minSpeed: 3, + minSpeed: 1, maxSpeed: 7, minScale: 0.55, maxScale: 0.9, @@ -34,7 +34,7 @@ final class VoiceBlobView: UIView, TGModernConversationInputMicButtonDecoration pointsCount: 8, minRandomness: 1, maxRandomness: 1, - minSpeed: 3, + minSpeed: 1, maxSpeed: 7, minScale: 0.55, maxScale: 1, diff --git a/submodules/TelegramUI/Sources/ChatController.swift b/submodules/TelegramUI/Sources/ChatController.swift index 5712d9fb90..864a245f2d 100644 --- a/submodules/TelegramUI/Sources/ChatController.swift +++ b/submodules/TelegramUI/Sources/ChatController.swift @@ -322,6 +322,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G private let peekTimerDisposable = MetaDisposable() private var hasEmbeddedTitleContent = false + private var isEmbeddedTitleContentHidden = false public override var customData: Any? { return self.chatLocation @@ -375,7 +376,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G case .inline: navigationBarPresentationData = nil default: - navigationBarPresentationData = NavigationBarPresentationData(presentationData: self.presentationData, hideBackground: true) + navigationBarPresentationData = NavigationBarPresentationData(presentationData: self.presentationData, hideBackground: true, hideBadge: false) } super.init(context: context, navigationBarPresentationData: navigationBarPresentationData, mediaAccessoryPanelVisibility: mediaAccessoryPanelVisibility, locationBroadcastPanelSource: locationBroadcastPanelSource) @@ -2059,6 +2060,12 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G if case let .peer(peerId) = chatLocation, peerId != context.account.peerId, subject != .scheduledMessages { self.navigationBar?.userInfo = PeerInfoNavigationSourceTag(peerId: peerId) } + self.navigationBar?.allowsCustomTransition = { [weak self] in + guard let strongSelf = self else { + return false + } + return !strongSelf.chatDisplayNode.hasEmbeddedTitleContent + } self.chatTitleView = ChatTitleView(account: self.context.account, theme: self.presentationData.theme, strings: self.presentationData.strings, dateTimeFormat: self.presentationData.dateTimeFormat, nameDisplayOrder: self.presentationData.nameDisplayOrder) self.navigationItem.titleView = self.chatTitleView @@ -2799,9 +2806,9 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G let navigationBarTheme: NavigationBarTheme if self.hasEmbeddedTitleContent { - navigationBarTheme = NavigationBarTheme(rootControllerTheme: defaultDarkPresentationTheme, hideBackground: true) + navigationBarTheme = NavigationBarTheme(rootControllerTheme: defaultDarkPresentationTheme, hideBackground: true, hideBadge: true) } else { - navigationBarTheme = NavigationBarTheme(rootControllerTheme: self.presentationData.theme, hideBackground: true) + navigationBarTheme = NavigationBarTheme(rootControllerTheme: self.presentationData.theme, hideBackground: true, hideBadge: false) } self.navigationBar?.updatePresentationData(NavigationBarPresentationData(theme: navigationBarTheme, strings: NavigationBarStrings(presentationStrings: self.presentationData.strings))) @@ -4610,6 +4617,13 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G return nil })) } + }, unarchivePeer: { [weak self] in + guard let strongSelf = self, case let .peer(peerId) = strongSelf.chatLocation else { + return + } + unarchiveAutomaticallyArchivedPeer(account: strongSelf.context.account, peerId: peerId) + + strongSelf.present(UndoOverlayController(presentationData: strongSelf.presentationData, content: .succeed(text: strongSelf.presentationData.strings.Conversation_UnarchiveDone), elevatedLayout: false, action: { _ in return false }), in: .current) }, statuses: ChatPanelInterfaceInteractionStatuses(editingMessage: self.editingMessage.get(), startingBot: self.startingBot.get(), unblockingPeer: self.unblockingPeer.get(), searching: self.searching.get(), loadingMessage: self.loadingMessage.get(), inlineSearch: self.performingInlineSearch.get())) switch self.chatLocation { @@ -4756,10 +4770,14 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G })) } - self.chatDisplayNode.updateHasEmbeddedTitleContent = { [weak self] hasEmbeddedTitleContent in + self.chatDisplayNode.updateHasEmbeddedTitleContent = { [weak self] in guard let strongSelf = self else { return } + + let hasEmbeddedTitleContent = strongSelf.chatDisplayNode.hasEmbeddedTitleContent + let isEmbeddedTitleContentHidden = strongSelf.chatDisplayNode.isEmbeddedTitleContentHidden + if strongSelf.hasEmbeddedTitleContent != hasEmbeddedTitleContent { strongSelf.hasEmbeddedTitleContent = hasEmbeddedTitleContent @@ -4780,6 +4798,15 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G } strongSelf.updateNavigationBarPresentation() } + + if strongSelf.isEmbeddedTitleContentHidden != isEmbeddedTitleContentHidden { + strongSelf.isEmbeddedTitleContentHidden = isEmbeddedTitleContentHidden + + if let navigationBar = strongSelf.navigationBar { + let transition: ContainedViewLayoutTransition = .animated(duration: 0.25, curve: .easeInOut) + transition.updateAlpha(node: navigationBar, alpha: isEmbeddedTitleContentHidden ? 0.0 : 1.0) + } + } } self.interfaceInteraction = interfaceInteraction @@ -5174,6 +5201,10 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G }) } + override public func viewWillLeaveNavigation() { + self.chatDisplayNode.willNavigateAway() + } + override public func inFocusUpdated(isInFocus: Bool) { self.chatDisplayNode.inFocusUpdated(isInFocus: isInFocus) } diff --git a/submodules/TelegramUI/Sources/ChatControllerNode.swift b/submodules/TelegramUI/Sources/ChatControllerNode.swift index b4abb27535..18d6e9d6f3 100644 --- a/submodules/TelegramUI/Sources/ChatControllerNode.swift +++ b/submodules/TelegramUI/Sources/ChatControllerNode.swift @@ -69,6 +69,9 @@ private final class ChatEmbeddedTitleContentNode: ASDisplayNode { private let context: AccountContext private let backgroundNode: ASDisplayNode private let videoNode: OverlayUniversalVideoNode + private let disableInternalAnimationIn: Bool + private let isUIHiddenUpdated: () -> Void + private let unembedWhenPortrait: (OverlayMediaItemNode) -> Bool private var validLayout: (CGSize, CGFloat, CGFloat)? @@ -78,9 +81,14 @@ private final class ChatEmbeddedTitleContentNode: ASDisplayNode { private(set) var interactiveExtension: CGFloat = 0.0 private var freezeInteractiveExtension = false - init(context: AccountContext, videoNode: OverlayUniversalVideoNode, interactiveExtensionUpdated: @escaping (ContainedViewLayoutTransition) -> Void, dismissed: @escaping () -> Void) { + private(set) var isUIHidden: Bool = false + + init(context: AccountContext, videoNode: OverlayUniversalVideoNode, disableInternalAnimationIn: Bool, interactiveExtensionUpdated: @escaping (ContainedViewLayoutTransition) -> Void, dismissed: @escaping () -> Void, isUIHiddenUpdated: @escaping () -> Void, unembedWhenPortrait: @escaping (OverlayMediaItemNode) -> Bool) { self.dismissed = dismissed self.interactiveExtensionUpdated = interactiveExtensionUpdated + self.isUIHiddenUpdated = isUIHiddenUpdated + self.unembedWhenPortrait = unembedWhenPortrait + self.disableInternalAnimationIn = disableInternalAnimationIn self.context = context @@ -96,6 +104,14 @@ private final class ChatEmbeddedTitleContentNode: ASDisplayNode { self.addSubnode(self.backgroundNode) self.view.addGestureRecognizer(UIPanGestureRecognizer(target: self, action: #selector(self.panGesture(_:)))) + + self.videoNode.controlsAreShowingUpdated = { [weak self] value in + guard let strongSelf = self else { + return + } + strongSelf.isUIHidden = !value + strongSelf.isUIHiddenUpdated() + } } @objc private func panGesture(_ recognizer: UIPanGestureRecognizer) { @@ -116,7 +132,7 @@ private final class ChatEmbeddedTitleContentNode: ASDisplayNode { if translation.y > 80.0 { self.freezeInteractiveExtension = true - self.videoNode.customExpand?() + self.expandIntoPiP() } else { self.interactiveExtension = max(0.0, offset) self.interactiveExtensionUpdated(.immediate) @@ -146,72 +162,63 @@ private final class ChatEmbeddedTitleContentNode: ASDisplayNode { let sourceFrame = self.videoNode.view.convert(self.videoNode.bounds, to: transitionSurface.view) let targetFrame = self.view.convert(videoFrame, to: transitionSurface.view) - self.context.sharedContext.mediaManager.setOverlayVideoNode(nil) - transitionSurface.addSubnode(self.videoNode) - - let navigationBarCopy = navigationBar?.view.snapshotView(afterScreenUpdates: true) - let navigationBarContainer = UIView() - navigationBarContainer.frame = targetFrame - navigationBarContainer.clipsToBounds = true - transitionSurface.view.addSubview(navigationBarContainer) - - navigationBarContainer.layer.animateFrame(from: sourceFrame, to: targetFrame, duration: 0.25, timingFunction: kCAMediaTimingFunctionSpring) - - if let navigationBar = navigationBar, let navigationBarCopy = navigationBarCopy { - let navigationFrame = navigationBar.view.convert(navigationBar.bounds, to: transitionSurface.view) - let navigationSourceFrame = navigationFrame.offsetBy(dx: -sourceFrame.minX, dy: -sourceFrame.minY) - let navigationTargetFrame = navigationFrame.offsetBy(dx: -targetFrame.minX, dy: -targetFrame.minY) - navigationBarCopy.frame = navigationTargetFrame - navigationBarContainer.addSubview(navigationBarCopy) + var navigationBarCopy: UIView? + var navigationBarContainer: UIView? + var nodeTransition = transition + if self.disableInternalAnimationIn { + nodeTransition = .immediate + } else { + self.context.sharedContext.mediaManager.setOverlayVideoNode(nil) + transitionSurface.addSubnode(self.videoNode) - navigationBarCopy.layer.animateFrame(from: navigationSourceFrame, to: navigationTargetFrame, duration: 0.25, timingFunction: kCAMediaTimingFunctionSpring) - navigationBarCopy.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.25, timingFunction: kCAMediaTimingFunctionSpring) + navigationBarCopy = navigationBar?.view.snapshotView(afterScreenUpdates: true) + let navigationBarContainerValue = UIView() + navigationBarContainer = navigationBarContainerValue + navigationBarContainerValue.frame = targetFrame + navigationBarContainerValue.clipsToBounds = true + transitionSurface.view.addSubview(navigationBarContainerValue) } - self.videoNode.updateRoundCorners(false, transition: .animated(duration: 0.25, curve: .spring)) - self.videoNode.showControls() + if !self.disableInternalAnimationIn { + navigationBarContainer?.layer.animateFrame(from: sourceFrame, to: targetFrame, duration: 0.25, timingFunction: kCAMediaTimingFunctionSpring) + } - self.videoNode.updateLayout(targetFrame.size, transition: .animated(duration: 0.25, curve: .spring)) - self.videoNode.frame = targetFrame - self.videoNode.layer.animateFrame(from: sourceFrame, to: targetFrame, duration: 0.25, timingFunction: kCAMediaTimingFunctionSpring, completion: { [weak self] _ in - guard let strongSelf = self else { - return - } - navigationBarContainer.removeFromSuperview() - strongSelf.addSubnode(strongSelf.videoNode) - if let (size, topInset, interactiveExtension) = strongSelf.validLayout { - strongSelf.updateLayout(size: size, topInset: topInset, interactiveExtension: interactiveExtension, transition: .immediate, transitionSurface: nil, navigationBar: nil) - } - }) - self.backgroundNode.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.2) - - self.videoNode.customExpand = { [weak self] in - guard let strongSelf = self else { - return - } - - let transition: ContainedViewLayoutTransition = .animated(duration: 0.25, curve: .spring) - - strongSelf.videoNode.customExpand = nil - strongSelf.videoNode.customClose = nil - - let previousFrame = strongSelf.videoNode.frame - strongSelf.context.sharedContext.mediaManager.setOverlayVideoNode(strongSelf.videoNode) - strongSelf.videoNode.updateRoundCorners(true, transition: transition) - - if let targetSuperview = strongSelf.videoNode.view.superview { - let sourceFrame = strongSelf.view.convert(previousFrame, to: targetSuperview) - let targetFrame = strongSelf.videoNode.frame - strongSelf.videoNode.frame = sourceFrame - strongSelf.videoNode.updateLayout(sourceFrame.size, transition: .immediate) + if !self.disableInternalAnimationIn { + if let navigationBar = navigationBar, let navigationBarCopy = navigationBarCopy { + let navigationFrame = navigationBar.view.convert(navigationBar.bounds, to: transitionSurface.view) + let navigationSourceFrame = navigationFrame.offsetBy(dx: -sourceFrame.minX, dy: -sourceFrame.minY) + let navigationTargetFrame = navigationFrame.offsetBy(dx: -targetFrame.minX, dy: -targetFrame.minY) + navigationBarCopy.frame = navigationTargetFrame + navigationBarContainer?.addSubview(navigationBarCopy) - transition.updateFrame(node: strongSelf.videoNode, frame: targetFrame) - strongSelf.videoNode.updateLayout(targetFrame.size, transition: transition) + navigationBarCopy.layer.animateFrame(from: navigationSourceFrame, to: navigationTargetFrame, duration: 0.25, timingFunction: kCAMediaTimingFunctionSpring) + navigationBarCopy.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.25, timingFunction: kCAMediaTimingFunctionSpring) } - - strongSelf.dismissed() } + self.videoNode.updateRoundCorners(false, transition: nodeTransition) + if !self.disableInternalAnimationIn { + self.videoNode.showControls() + } + + self.videoNode.updateLayout(targetFrame.size, transition: nodeTransition) + self.videoNode.frame = targetFrame + if self.disableInternalAnimationIn { + self.addSubnode(self.videoNode) + } else { + self.videoNode.layer.animateFrame(from: sourceFrame, to: targetFrame, duration: 0.25, timingFunction: kCAMediaTimingFunctionSpring, completion: { [weak self] _ in + guard let strongSelf = self else { + return + } + navigationBarContainer?.removeFromSuperview() + strongSelf.addSubnode(strongSelf.videoNode) + if let (size, topInset, interactiveExtension) = strongSelf.validLayout { + strongSelf.updateLayout(size: size, topInset: topInset, interactiveExtension: interactiveExtension, transition: .immediate, transitionSurface: nil, navigationBar: nil) + } + }) + self.backgroundNode.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.2) + } + self.videoNode.customClose = { [weak self] in guard let strongSelf = self else { return @@ -227,6 +234,39 @@ private final class ChatEmbeddedTitleContentNode: ASDisplayNode { transition.updateFrame(node: self.videoNode, frame: videoFrame) } } + + func expand(intoLandscape: Bool) { + if intoLandscape { + let unembedWhenPortrait = self.unembedWhenPortrait + self.videoNode.customUnembedWhenPortrait = { videoNode in + unembedWhenPortrait(videoNode) + } + } + self.videoNode.expand() + } + + func expandIntoPiP() { + let transition: ContainedViewLayoutTransition = .animated(duration: 0.25, curve: .spring) + + self.videoNode.customExpand = nil + self.videoNode.customClose = nil + + let previousFrame = self.videoNode.frame + self.context.sharedContext.mediaManager.setOverlayVideoNode(self.videoNode) + self.videoNode.updateRoundCorners(true, transition: transition) + + if let targetSuperview = self.videoNode.view.superview { + let sourceFrame = self.view.convert(previousFrame, to: targetSuperview) + let targetFrame = self.videoNode.frame + self.videoNode.frame = sourceFrame + self.videoNode.updateLayout(sourceFrame.size, transition: .immediate) + + transition.updateFrame(node: self.videoNode, frame: targetFrame) + self.videoNode.updateLayout(targetFrame.size, transition: transition) + } + + self.dismissed() + } } enum ChatEmbeddedTitlePeekContent: Equatable { @@ -387,6 +427,9 @@ class ChatControllerNode: ASDisplayNode, UIScrollViewDelegate { private var embeddedTitlePeekContent: ChatEmbeddedTitlePeekContent = .none private var embeddedTitleContentNode: ChatEmbeddedTitleContentNode? private var dismissedEmbeddedTitleContentNode: ChatEmbeddedTitleContentNode? + var hasEmbeddedTitleContent: Bool { + return self.embeddedTitleContentNode != nil + } init(context: AccountContext, chatLocation: ChatLocation, subject: ChatControllerSubject?, controllerInteraction: ChatControllerInteraction, chatPresentationInterfaceState: ChatPresentationInterfaceState, automaticMediaDownloadSettings: MediaAutoDownloadSettings, navigationBar: NavigationBar?, controller: ChatControllerImpl?) { self.context = context @@ -892,6 +935,15 @@ class ChatControllerNode: ASDisplayNode, UIScrollViewDelegate { let statusBarHeight = layout.insets(options: [.statusBar]).top + if let embeddedTitleContentNode = self.embeddedTitleContentNode, embeddedTitleContentNode.supernode != nil { + if layout.size.width > layout.size.height { + self.embeddedTitleContentNode = nil + self.dismissedEmbeddedTitleContentNode = embeddedTitleContentNode + embeddedTitleContentNode.expand(intoLandscape: true) + self.updateHasEmbeddedTitleContent?() + } + } + if let embeddedTitleContentNode = self.embeddedTitleContentNode { let embeddedSize = CGSize(width: layout.size.width, height: min(400.0, embeddedTitleContentNode.calculateHeight(width: layout.size.width)) + statusBarHeight + embeddedTitleContentNode.interactiveExtension) if embeddedTitleContentNode.supernode == nil { @@ -2648,7 +2700,15 @@ class ChatControllerNode: ASDisplayNode, UIScrollViewDelegate { } } - var updateHasEmbeddedTitleContent: ((Bool) -> Void)? + var isEmbeddedTitleContentHidden: Bool { + if let embeddedTitleContentNode = self.embeddedTitleContentNode { + return embeddedTitleContentNode.isUIHidden + } else { + return false + } + } + + var updateHasEmbeddedTitleContent: (() -> Void)? func acceptEmbeddedTitlePeekContent(content: NavigationControllerDropContent) -> Bool { guard let (_, navigationHeight) = self.validLayout else { @@ -2658,7 +2718,7 @@ class ChatControllerNode: ASDisplayNode, UIScrollViewDelegate { return false } if let item = content.item as? VideoNavigationControllerDropContentItem, let itemNode = item.itemNode as? OverlayUniversalVideoNode { - let embeddedTitleContentNode = ChatEmbeddedTitleContentNode(context: self.context, videoNode: itemNode, interactiveExtensionUpdated: { [weak self] transition in + let embeddedTitleContentNode = ChatEmbeddedTitleContentNode(context: self.context, videoNode: itemNode, disableInternalAnimationIn: false, interactiveExtensionUpdated: { [weak self] transition in guard let strongSelf = self else { return } @@ -2671,12 +2731,20 @@ class ChatControllerNode: ASDisplayNode, UIScrollViewDelegate { strongSelf.embeddedTitleContentNode = nil strongSelf.dismissedEmbeddedTitleContentNode = embeddedTitleContentNode strongSelf.requestLayout(.animated(duration: 0.25, curve: .spring)) - strongSelf.updateHasEmbeddedTitleContent?(false) + strongSelf.updateHasEmbeddedTitleContent?() } + }, isUIHiddenUpdated: { [weak self] in + self?.updateHasEmbeddedTitleContent?() + }, unembedWhenPortrait: { [weak self] itemNode in + guard let strongSelf = self, let itemNode = itemNode as? OverlayUniversalVideoNode else { + return false + } + strongSelf.unembedWhenPortrait(contentNode: itemNode) + return true }) self.embeddedTitleContentNode = embeddedTitleContentNode self.embeddedTitlePeekContent = .none - self.updateHasEmbeddedTitleContent?(true) + self.updateHasEmbeddedTitleContent?() DispatchQueue.main.async { self.requestLayout(.animated(duration: 0.25, curve: .spring)) } @@ -2685,4 +2753,46 @@ class ChatControllerNode: ASDisplayNode, UIScrollViewDelegate { } return false } + + private func unembedWhenPortrait(contentNode: OverlayUniversalVideoNode) { + let embeddedTitleContentNode = ChatEmbeddedTitleContentNode(context: self.context, videoNode: contentNode, disableInternalAnimationIn: true, interactiveExtensionUpdated: { [weak self] transition in + guard let strongSelf = self else { + return + } + strongSelf.requestLayout(transition) + }, dismissed: { [weak self] in + guard let strongSelf = self else { + return + } + if let embeddedTitleContentNode = strongSelf.embeddedTitleContentNode { + strongSelf.embeddedTitleContentNode = nil + strongSelf.dismissedEmbeddedTitleContentNode = embeddedTitleContentNode + strongSelf.requestLayout(.animated(duration: 0.25, curve: .spring)) + strongSelf.updateHasEmbeddedTitleContent?() + } + }, isUIHiddenUpdated: { [weak self] in + self?.updateHasEmbeddedTitleContent?() + }, unembedWhenPortrait: { [weak self] itemNode in + guard let strongSelf = self, let itemNode = itemNode as? OverlayUniversalVideoNode else { + return false + } + strongSelf.unembedWhenPortrait(contentNode: itemNode) + return true + }) + + self.embeddedTitleContentNode = embeddedTitleContentNode + self.embeddedTitlePeekContent = .none + self.updateHasEmbeddedTitleContent?() + self.requestLayout(.immediate) + } + + func willNavigateAway() { + if let embeddedTitleContentNode = self.embeddedTitleContentNode { + self.embeddedTitleContentNode = nil + self.dismissedEmbeddedTitleContentNode = embeddedTitleContentNode + embeddedTitleContentNode.expandIntoPiP() + self.requestLayout(.animated(duration: 0.25, curve: .spring)) + self.updateHasEmbeddedTitleContent?() + } + } } diff --git a/submodules/TelegramUI/Sources/ChatInterfaceTitlePanelNodes.swift b/submodules/TelegramUI/Sources/ChatInterfaceTitlePanelNodes.swift index d244a652bc..e41c833fcd 100644 --- a/submodules/TelegramUI/Sources/ChatInterfaceTitlePanelNodes.swift +++ b/submodules/TelegramUI/Sources/ChatInterfaceTitlePanelNodes.swift @@ -35,7 +35,7 @@ func titlePanelForChatPresentationInterfaceState(_ chatPresentationInterfaceStat if !peerStatusSettings.flags.isEmpty { if contactStatus.canAddContact && peerStatusSettings.contains(.canAddContact) { displayActionsPanel = true - } else if peerStatusSettings.contains(.canReport) || peerStatusSettings.contains(.canBlock) { + } else if peerStatusSettings.contains(.canReport) || peerStatusSettings.contains(.canBlock) || peerStatusSettings.contains(.autoArchived) { displayActionsPanel = true } else if peerStatusSettings.contains(.canShareContact) { displayActionsPanel = true diff --git a/submodules/TelegramUI/Sources/ChatPanelInterfaceInteraction.swift b/submodules/TelegramUI/Sources/ChatPanelInterfaceInteraction.swift index eba8826755..40598db1b3 100644 --- a/submodules/TelegramUI/Sources/ChatPanelInterfaceInteraction.swift +++ b/submodules/TelegramUI/Sources/ChatPanelInterfaceInteraction.swift @@ -119,9 +119,82 @@ final class ChatPanelInterfaceInteraction { let openScheduledMessages: () -> Void let displaySearchResultsTooltip: (ASDisplayNode, CGRect) -> Void let openPeersNearby: () -> Void + let unarchivePeer: () -> Void let statuses: ChatPanelInterfaceInteractionStatuses? - init(setupReplyMessage: @escaping (MessageId, @escaping (ContainedViewLayoutTransition) -> Void) -> Void, setupEditMessage: @escaping (MessageId?, @escaping (ContainedViewLayoutTransition) -> Void) -> Void, beginMessageSelection: @escaping ([MessageId], @escaping (ContainedViewLayoutTransition) -> Void) -> Void, deleteSelectedMessages: @escaping () -> Void, reportSelectedMessages: @escaping () -> Void, reportMessages: @escaping ([Message], ContextController?) -> Void, deleteMessages: @escaping ([Message], ContextController?, @escaping (ContextMenuActionResult) -> Void) -> Void, forwardSelectedMessages: @escaping () -> Void, forwardCurrentForwardMessages: @escaping () -> Void, forwardMessages: @escaping ([Message]) -> Void, shareSelectedMessages: @escaping () -> Void, updateTextInputStateAndMode: @escaping ((ChatTextInputState, ChatInputMode) -> (ChatTextInputState, ChatInputMode)) -> Void, updateInputModeAndDismissedButtonKeyboardMessageId: @escaping ((ChatPresentationInterfaceState) -> (ChatInputMode, MessageId?)) -> Void, openStickers: @escaping () -> Void, editMessage: @escaping () -> Void, beginMessageSearch: @escaping (ChatSearchDomain, String) -> Void, dismissMessageSearch: @escaping () -> Void, updateMessageSearch: @escaping (String) -> Void, openSearchResults: @escaping () -> Void, navigateMessageSearch: @escaping (ChatPanelSearchNavigationAction) -> Void, openCalendarSearch: @escaping () -> Void, toggleMembersSearch: @escaping (Bool) -> Void, navigateToMessage: @escaping (MessageId) -> Void, navigateToChat: @escaping (PeerId) -> Void, navigateToProfile: @escaping (PeerId) -> Void, openPeerInfo: @escaping () -> Void, togglePeerNotifications: @escaping () -> Void, sendContextResult: @escaping (ChatContextResultCollection, ChatContextResult, ASDisplayNode, CGRect) -> Bool, sendBotCommand: @escaping (Peer, String) -> Void, sendBotStart: @escaping (String?) -> Void, botSwitchChatWithPayload: @escaping (PeerId, String) -> Void, beginMediaRecording: @escaping (Bool) -> Void, finishMediaRecording: @escaping (ChatFinishMediaRecordingAction) -> Void, stopMediaRecording: @escaping () -> Void, lockMediaRecording: @escaping () -> Void, deleteRecordedMedia: @escaping () -> Void, sendRecordedMedia: @escaping () -> Void, displayRestrictedInfo: @escaping (ChatPanelRestrictionInfoSubject, ChatPanelRestrictionInfoDisplayType) -> Void, displayVideoUnmuteTip: @escaping (CGPoint?) -> Void, switchMediaRecordingMode: @escaping () -> Void, setupMessageAutoremoveTimeout: @escaping () -> Void, sendSticker: @escaping (FileMediaReference, ASDisplayNode, CGRect) -> Bool, unblockPeer: @escaping () -> Void, pinMessage: @escaping (MessageId) -> Void, unpinMessage: @escaping () -> Void, shareAccountContact: @escaping () -> Void, reportPeer: @escaping () -> Void, presentPeerContact: @escaping () -> Void, dismissReportPeer: @escaping () -> Void, deleteChat: @escaping () -> Void, beginCall: @escaping (Bool) -> Void, toggleMessageStickerStarred: @escaping (MessageId) -> Void, presentController: @escaping (ViewController, Any?) -> Void, getNavigationController: @escaping () -> NavigationController?, presentGlobalOverlayController: @escaping (ViewController, Any?) -> Void, navigateFeed: @escaping () -> Void, openGrouping: @escaping () -> Void, toggleSilentPost: @escaping () -> Void, requestUnvoteInMessage: @escaping (MessageId) -> Void, requestStopPollInMessage: @escaping (MessageId) -> Void, updateInputLanguage: @escaping ((String?) -> String?) -> Void, unarchiveChat: @escaping () -> Void, openLinkEditing: @escaping () -> Void, reportPeerIrrelevantGeoLocation: @escaping () -> Void, displaySlowmodeTooltip: @escaping (ASDisplayNode, CGRect) -> Void, displaySendMessageOptions: @escaping (ASDisplayNode, ContextGesture) -> Void, openScheduledMessages: @escaping () -> Void, openPeersNearby: @escaping () -> Void, displaySearchResultsTooltip: @escaping (ASDisplayNode, CGRect) -> Void, statuses: ChatPanelInterfaceInteractionStatuses?) { + init( + setupReplyMessage: @escaping (MessageId, @escaping (ContainedViewLayoutTransition) -> Void) -> Void, + setupEditMessage: @escaping (MessageId?, @escaping (ContainedViewLayoutTransition) -> Void) -> Void, + beginMessageSelection: @escaping ([MessageId], @escaping (ContainedViewLayoutTransition) -> Void) -> Void, + deleteSelectedMessages: @escaping () -> Void, + reportSelectedMessages: @escaping () -> Void, + reportMessages: @escaping ([Message], ContextController?) -> Void, + deleteMessages: @escaping ([Message], ContextController?, @escaping (ContextMenuActionResult) -> Void) -> Void, + forwardSelectedMessages: @escaping () -> Void, + forwardCurrentForwardMessages: @escaping () -> Void, + forwardMessages: @escaping ([Message]) -> Void, + shareSelectedMessages: @escaping () -> Void, + updateTextInputStateAndMode: @escaping ((ChatTextInputState, ChatInputMode) -> (ChatTextInputState, ChatInputMode)) -> Void, + updateInputModeAndDismissedButtonKeyboardMessageId: @escaping ((ChatPresentationInterfaceState) -> (ChatInputMode, MessageId?)) -> Void, + openStickers: @escaping () -> Void, + editMessage: @escaping () -> Void, + beginMessageSearch: @escaping (ChatSearchDomain, String) -> Void, + dismissMessageSearch: @escaping () -> Void, + updateMessageSearch: @escaping (String) -> Void, + openSearchResults: @escaping () -> Void, + navigateMessageSearch: @escaping (ChatPanelSearchNavigationAction) -> Void, + openCalendarSearch: @escaping () -> Void, + toggleMembersSearch: @escaping (Bool) -> Void, + navigateToMessage: @escaping (MessageId) -> Void, + navigateToChat: @escaping (PeerId) -> Void, + navigateToProfile: @escaping (PeerId) -> Void, + openPeerInfo: @escaping () -> Void, + togglePeerNotifications: @escaping () -> Void, + sendContextResult: @escaping (ChatContextResultCollection, ChatContextResult, ASDisplayNode, CGRect) -> Bool, + sendBotCommand: @escaping (Peer, String) -> Void, + sendBotStart: @escaping (String?) -> Void, + botSwitchChatWithPayload: @escaping (PeerId, String) -> Void, + beginMediaRecording: @escaping (Bool) -> Void, + finishMediaRecording: @escaping (ChatFinishMediaRecordingAction) -> Void, + stopMediaRecording: @escaping () -> Void, + lockMediaRecording: @escaping () -> Void, + deleteRecordedMedia: @escaping () -> Void, + sendRecordedMedia: @escaping () -> Void, + displayRestrictedInfo: @escaping (ChatPanelRestrictionInfoSubject, ChatPanelRestrictionInfoDisplayType) -> Void, + displayVideoUnmuteTip: @escaping (CGPoint?) -> Void, + switchMediaRecordingMode: @escaping () -> Void, + setupMessageAutoremoveTimeout: @escaping () -> Void, + sendSticker: @escaping (FileMediaReference, ASDisplayNode, CGRect) -> Bool, + unblockPeer: @escaping () -> Void, + pinMessage: @escaping (MessageId) -> Void, + unpinMessage: @escaping () -> Void, + shareAccountContact: @escaping () -> Void, + reportPeer: @escaping () -> Void, + presentPeerContact: @escaping () -> Void, + dismissReportPeer: @escaping () -> Void, + deleteChat: @escaping () -> Void, + beginCall: @escaping (Bool) -> Void, + toggleMessageStickerStarred: @escaping (MessageId) -> Void, + presentController: @escaping (ViewController, Any?) -> Void, + getNavigationController: @escaping () -> NavigationController?, + presentGlobalOverlayController: @escaping (ViewController, Any?) -> Void, + navigateFeed: @escaping () -> Void, + openGrouping: @escaping () -> Void, + toggleSilentPost: @escaping () -> Void, + requestUnvoteInMessage: @escaping (MessageId) -> Void, + requestStopPollInMessage: @escaping (MessageId) -> Void, + updateInputLanguage: @escaping ((String?) -> String?) -> Void, + unarchiveChat: @escaping () -> Void, + openLinkEditing: @escaping () -> Void, + reportPeerIrrelevantGeoLocation: @escaping () -> Void, + displaySlowmodeTooltip: @escaping (ASDisplayNode, CGRect) -> Void, + displaySendMessageOptions: @escaping (ASDisplayNode, ContextGesture) -> Void, + openScheduledMessages: @escaping () -> Void, + openPeersNearby: @escaping () -> Void, + displaySearchResultsTooltip: @escaping (ASDisplayNode, CGRect) -> Void, + unarchivePeer: @escaping () -> Void, + statuses: ChatPanelInterfaceInteractionStatuses? + ) { self.setupReplyMessage = setupReplyMessage self.setupEditMessage = setupEditMessage self.beginMessageSelection = beginMessageSelection @@ -191,6 +264,7 @@ final class ChatPanelInterfaceInteraction { self.openScheduledMessages = openScheduledMessages self.openPeersNearby = openPeersNearby self.displaySearchResultsTooltip = displaySearchResultsTooltip + self.unarchivePeer = unarchivePeer self.statuses = statuses } } diff --git a/submodules/TelegramUI/Sources/ChatRecentActionsController.swift b/submodules/TelegramUI/Sources/ChatRecentActionsController.swift index 04211de309..c92630b7b5 100644 --- a/submodules/TelegramUI/Sources/ChatRecentActionsController.swift +++ b/submodules/TelegramUI/Sources/ChatRecentActionsController.swift @@ -123,7 +123,7 @@ final class ChatRecentActionsController: TelegramBaseController { }, openScheduledMessages: { }, openPeersNearby: { }, displaySearchResultsTooltip: { _, _ in - }, statuses: nil) + }, unarchivePeer: {}, statuses: nil) self.navigationItem.titleView = self.titleView diff --git a/submodules/TelegramUI/Sources/ChatReportPeerTitlePanelNode.swift b/submodules/TelegramUI/Sources/ChatReportPeerTitlePanelNode.swift index 5585a32bfb..fb4aa5603a 100644 --- a/submodules/TelegramUI/Sources/ChatReportPeerTitlePanelNode.swift +++ b/submodules/TelegramUI/Sources/ChatReportPeerTitlePanelNode.swift @@ -16,6 +16,7 @@ private enum ChatReportPeerTitleButton: Equatable { case reportSpam case reportUserSpam case reportIrrelevantGeoLocation + case unarchive func title(strings: PresentationStrings) -> String { switch self { @@ -35,6 +36,8 @@ private enum ChatReportPeerTitleButton: Equatable { return strings.Conversation_ReportSpam case .reportIrrelevantGeoLocation: return strings.Conversation_ReportGroupLocation + case .unarchive: + return strings.Conversation_Unarchive } } } @@ -42,7 +45,19 @@ private enum ChatReportPeerTitleButton: Equatable { private func peerButtons(_ state: ChatPresentationInterfaceState) -> [ChatReportPeerTitleButton] { var buttons: [ChatReportPeerTitleButton] = [] if let peer = state.renderedPeer?.chatMainPeer as? TelegramUser, let contactStatus = state.contactStatus, let peerStatusSettings = contactStatus.peerStatusSettings { - if contactStatus.canAddContact && peerStatusSettings.contains(.canAddContact) { + if peerStatusSettings.contains(.autoArchived) { + if peerStatusSettings.contains(.canBlock) || peerStatusSettings.contains(.canReport) { + if peer.isDeleted { + buttons.append(.reportUserSpam) + } else { + if !state.peerIsBlocked { + buttons.append(.block) + } + } + } + + buttons.append(.unarchive) + } else if contactStatus.canAddContact && peerStatusSettings.contains(.canAddContact) { if peerStatusSettings.contains(.canBlock) || peerStatusSettings.contains(.canReport) { if !state.peerIsBlocked { buttons.append(.block) @@ -375,12 +390,15 @@ final class ChatReportPeerTitlePanelNode: ChatTitleAccessoryPanelNode { } } else { let additionalRightInset: CGFloat = 36.0 - let areaWidth = width - maxInset * 2.0 - additionalRightInset + var areaWidth = width - maxInset * 2.0 - additionalRightInset let maxButtonWidth = floor(areaWidth / CGFloat(self.buttons.count)) let buttonSizes = self.buttons.map { button -> CGFloat in return button.1.sizeThatFits(CGSize(width: maxButtonWidth, height: 100.0)).width } let buttonsWidth = buttonSizes.reduce(0.0, +) + if buttonsWidth < areaWidth - 20.0 { + areaWidth += additionalRightInset + } let maxButtonSpacing = floor((areaWidth - buttonsWidth) / CGFloat(self.buttons.count - 1)) let buttonSpacing = min(maxButtonSpacing, 110.0) let updatedButtonsWidth = buttonsWidth + CGFloat(self.buttons.count - 1) * buttonSpacing @@ -469,6 +487,8 @@ final class ChatReportPeerTitlePanelNode: ChatTitleAccessoryPanelNode { self.interfaceInteraction?.shareAccountContact() case .block, .reportSpam, .reportUserSpam: self.interfaceInteraction?.reportPeer() + case .unarchive: + self.interfaceInteraction?.unarchivePeer() case .addContact: self.interfaceInteraction?.presentPeerContact() case .reportIrrelevantGeoLocation: diff --git a/submodules/TelegramUI/Sources/ChatTextInputPanelNode.swift b/submodules/TelegramUI/Sources/ChatTextInputPanelNode.swift index 944230b6c2..9511e0484c 100644 --- a/submodules/TelegramUI/Sources/ChatTextInputPanelNode.swift +++ b/submodules/TelegramUI/Sources/ChatTextInputPanelNode.swift @@ -1044,12 +1044,12 @@ class ChatTextInputPanelNode: ChatInputPanelNode, ASEditableTextNodeDelegate { audioRecordingDotNode = currentAudioRecordingDotNode } else { self.audioRecordingDotNode?.removeFromSupernode() - audioRecordingDotNode = AnimationNode(animation: "voicebin") + audioRecordingDotNode = AnimationNode(animation: "Bin") self.audioRecordingDotNode = audioRecordingDotNode self.addSubnode(audioRecordingDotNode) } - animateDotAppearing = transition.isAnimated && !hideInfo + animateDotAppearing = transition.isAnimated && !isLocked && !hideInfo audioRecordingDotNode.frame = CGRect(origin: CGPoint(x: leftInset + 2.0 - UIScreenPixel, y: panelHeight - 44 + 1), size: CGSize(width: 40.0, height: 40)) if animateDotAppearing { diff --git a/submodules/TelegramUI/Sources/MediaManager.swift b/submodules/TelegramUI/Sources/MediaManager.swift index 2db3ce7136..7644847d6c 100644 --- a/submodules/TelegramUI/Sources/MediaManager.swift +++ b/submodules/TelegramUI/Sources/MediaManager.swift @@ -616,4 +616,8 @@ public final class MediaManagerImpl: NSObject, MediaManager { self.overlayMediaManager.controller?.addNode(node, customTransition: true) } } + + public func hasOverlayVideoNode(_ node: OverlayMediaItemNode) -> Bool { + return self.currentOverlayVideoNode === node + } } diff --git a/submodules/TelegramUI/Sources/PeerInfo/PeerInfoScreen.swift b/submodules/TelegramUI/Sources/PeerInfo/PeerInfoScreen.swift index 826d2024a5..afea1a35e5 100644 --- a/submodules/TelegramUI/Sources/PeerInfo/PeerInfoScreen.swift +++ b/submodules/TelegramUI/Sources/PeerInfo/PeerInfoScreen.swift @@ -416,7 +416,7 @@ final class PeerInfoSelectionPanelNode: ASDisplayNode { }, openScheduledMessages: { }, openPeersNearby: { }, displaySearchResultsTooltip: { _, _ in - }, statuses: nil) + }, unarchivePeer: {}, statuses: nil) self.selectionPanel.interfaceInteraction = interfaceInteraction @@ -4390,6 +4390,9 @@ public final class PeerInfoScreen: ViewController { if other.contentNode != nil { return nil } + if let allowsCustomTransition = other.allowsCustomTransition, !allowsCustomTransition() { + return nil + } if let tag = other.userInfo as? PeerInfoNavigationSourceTag, tag.peerId == peerId { return PeerInfoNavigationTransitionNode(screenNode: strongSelf.controllerNode, presentationData: strongSelf.presentationData, headerNode: strongSelf.controllerNode.headerNode) } diff --git a/submodules/TelegramUI/Sources/PeerMediaCollectionController.swift b/submodules/TelegramUI/Sources/PeerMediaCollectionController.swift index ef865797a8..8177190a73 100644 --- a/submodules/TelegramUI/Sources/PeerMediaCollectionController.swift +++ b/submodules/TelegramUI/Sources/PeerMediaCollectionController.swift @@ -550,7 +550,7 @@ public class PeerMediaCollectionController: TelegramBaseController { }, openScheduledMessages: { }, openPeersNearby: { }, displaySearchResultsTooltip: { _, _ in - }, statuses: nil) + }, unarchivePeer: {}, statuses: nil) self.updateInterfaceState(animated: false, { return $0 }) diff --git a/submodules/TelegramUniversalVideoContent/Sources/NativeVideoContent.swift b/submodules/TelegramUniversalVideoContent/Sources/NativeVideoContent.swift index fb09071467..9ae5df8bbf 100644 --- a/submodules/TelegramUniversalVideoContent/Sources/NativeVideoContent.swift +++ b/submodules/TelegramUniversalVideoContent/Sources/NativeVideoContent.swift @@ -289,10 +289,20 @@ private final class NativeVideoContentNode: ASDisplayNode, UniversalVideoContent applyLayout() } - self.imageNode.frame = CGRect(origin: CGPoint(), size: size) - self.playerNode.frame = CGRect(origin: CGPoint(), size: size).insetBy(dx: -1.0, dy: -1.0) + transition.updateFrame(node: self.imageNode, frame: CGRect(origin: CGPoint(), size: size)) + let fromFrame = self.playerNode.frame + let toFrame = CGRect(origin: CGPoint(), size: size).insetBy(dx: -1.0, dy: -1.0) + if case let .animated(duration, curve) = transition, fromFrame != toFrame, !fromFrame.width.isZero, !fromFrame.height.isZero, !toFrame.width.isZero, !toFrame.height.isZero { + self.playerNode.frame = toFrame + transition.animatePosition(node: self.playerNode, from: CGPoint(x: fromFrame.center.x - toFrame.center.x, y: fromFrame.center.y - toFrame.center.y)) + + let transform = CATransform3DScale(CATransform3DIdentity, fromFrame.width / toFrame.width, fromFrame.height / toFrame.height, 1.0) + self.playerNode.layer.animate(from: NSValue(caTransform3D: transform), to: NSValue(caTransform3D: CATransform3DIdentity), keyPath: "transform", timingFunction: curve.timingFunction, duration: duration) + } else { + transition.updateFrame(node: self.playerNode, frame: toFrame) + } if let thumbnailNode = self.thumbnailNode { - thumbnailNode.frame = CGRect(origin: CGPoint(), size: size).insetBy(dx: -1.0, dy: -1.0) + transition.updateFrame(node: thumbnailNode, frame: CGRect(origin: CGPoint(), size: size).insetBy(dx: -1.0, dy: -1.0)) } } diff --git a/submodules/TelegramUniversalVideoContent/Sources/OverlayUniversalVideoNode.swift b/submodules/TelegramUniversalVideoContent/Sources/OverlayUniversalVideoNode.swift index 6265ef0b31..ff10e06372 100644 --- a/submodules/TelegramUniversalVideoContent/Sources/OverlayUniversalVideoNode.swift +++ b/submodules/TelegramUniversalVideoContent/Sources/OverlayUniversalVideoNode.swift @@ -33,17 +33,19 @@ public final class OverlayUniversalVideoNode: OverlayMediaItemNode { private let defaultExpand: () -> Void public var customExpand: (() -> Void)? public var customClose: (() -> Void)? + public var controlsAreShowingUpdated: ((Bool) -> Void)? public init(postbox: Postbox, audioSession: ManagedAudioSession, manager: UniversalVideoManager, content: UniversalVideoContent, expand: @escaping () -> Void, close: @escaping () -> Void) { self.content = content self.defaultExpand = expand var expandImpl: (() -> Void)? + var controlsAreShowingUpdatedImpl: ((Bool) -> Void)? var unminimizeImpl: (() -> Void)? var togglePlayPauseImpl: (() -> Void)? var closeImpl: (() -> Void)? - let decoration = OverlayVideoDecoration(unminimize: { + let decoration = OverlayVideoDecoration(contentDimensions: content.dimensions, unminimize: { unminimizeImpl?() }, togglePlayPause: { togglePlayPauseImpl?() @@ -51,6 +53,8 @@ public final class OverlayUniversalVideoNode: OverlayMediaItemNode { expandImpl?() }, close: { closeImpl?() + }, controlsAreShowingUpdated: { value in + controlsAreShowingUpdatedImpl?(value) }) self.videoNode = UniversalVideoNode(postbox: postbox, audioSession: audioSession, manager: manager, decoration: decoration, content: content, priority: .overlay) self.decoration = decoration @@ -58,14 +62,7 @@ public final class OverlayUniversalVideoNode: OverlayMediaItemNode { super.init() expandImpl = { [weak self] in - guard let strongSelf = self else { - return - } - if let customExpand = strongSelf.customExpand { - customExpand() - } else { - strongSelf.defaultExpand() - } + self?.expand() } unminimizeImpl = { [weak self] in @@ -90,6 +87,10 @@ public final class OverlayUniversalVideoNode: OverlayMediaItemNode { strongSelf.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.25, removeOnCompletion: false) } } + + controlsAreShowingUpdatedImpl = { [weak self] value in + self?.controlsAreShowingUpdated?(value) + } self.clipsToBounds = true self.cornerRadius = 4.0 @@ -104,7 +105,7 @@ public final class OverlayUniversalVideoNode: OverlayMediaItemNode { if previous != value { if !value { strongSelf.dismiss() - close() + closeImpl?() } } } @@ -155,4 +156,12 @@ public final class OverlayUniversalVideoNode: OverlayMediaItemNode { public func showControls() { self.decoration.showControls() } + + public func expand() { + if let customExpand = self.customExpand { + customExpand() + } else { + self.defaultExpand() + } + } } diff --git a/submodules/TelegramUniversalVideoContent/Sources/OverlayVideoDecoration.swift b/submodules/TelegramUniversalVideoContent/Sources/OverlayVideoDecoration.swift index eb6ed63083..4cacd66bc7 100644 --- a/submodules/TelegramUniversalVideoContent/Sources/OverlayVideoDecoration.swift +++ b/submodules/TelegramUniversalVideoContent/Sources/OverlayVideoDecoration.swift @@ -26,11 +26,14 @@ private func setupArrowFrame(size: CGSize, edge: OverlayMediaItemMinimizationEdg private let backgroundImage = UIImage(bundleImageName: "Chat/Message/OverlayPlainVideoShadow")?.precomposed().resizableImage(withCapInsets: UIEdgeInsets(top: 22.0, left: 25.0, bottom: 26.0, right: 25.0), resizingMode: .stretch) final class OverlayVideoDecoration: UniversalVideoDecoration { + private let contentDimensions: CGSize + let backgroundNode: ASDisplayNode? let contentContainerNode: ASDisplayNode let foregroundNode: ASDisplayNode? private let unminimize: () -> Void + private let controlsAreShowingUpdated: (Bool) -> Void private let shadowNode: ASImageNode private let foregroundContainerNode: ASDisplayNode @@ -46,8 +49,11 @@ final class OverlayVideoDecoration: UniversalVideoDecoration { private var validLayoutSize: CGSize? - init(unminimize: @escaping () -> Void, togglePlayPause: @escaping () -> Void, expand: @escaping () -> Void, close: @escaping () -> Void) { + init(contentDimensions: CGSize, unminimize: @escaping () -> Void, togglePlayPause: @escaping () -> Void, expand: @escaping () -> Void, close: @escaping () -> Void, controlsAreShowingUpdated: @escaping (Bool) -> Void) { + self.contentDimensions = contentDimensions + self.unminimize = unminimize + self.controlsAreShowingUpdated = controlsAreShowingUpdated self.shadowNode = ASImageNode() self.shadowNode.image = backgroundImage @@ -78,6 +84,14 @@ final class OverlayVideoDecoration: UniversalVideoDecoration { self.statusDisposable.dispose() } + private func frameForContent(size: CGSize) -> CGRect { + if !self.contentDimensions.width.isZero && !self.contentDimensions.height.isZero { + let fittedSize = self.contentDimensions.aspectFittedWithOverflow(size, leeway: 10.0) + return CGRect(origin: CGPoint(x: floor(size.width - fittedSize.width) / 2.0, y: floor(size.height - fittedSize.height) / 2.0), size: fittedSize) + } + return CGRect(origin: CGPoint(), size: size) + } + func updateContentNode(_ contentNode: (UniversalVideoContentNode & ASDisplayNode)?) { if self.contentNode !== contentNode { let previous = self.contentNode @@ -93,7 +107,7 @@ final class OverlayVideoDecoration: UniversalVideoDecoration { if contentNode.supernode !== self.contentContainerNode { self.contentContainerNode.addSubnode(contentNode) if let validLayoutSize = self.validLayoutSize { - contentNode.frame = CGRect(origin: CGPoint(), size: validLayoutSize) + contentNode.frame = self.frameForContent(size: validLayoutSize) contentNode.updateLayout(size: validLayoutSize, transition: .immediate) } } @@ -107,6 +121,8 @@ final class OverlayVideoDecoration: UniversalVideoDecoration { func updateLayout(size: CGSize, transition: ContainedViewLayoutTransition) { self.validLayoutSize = size + let contentFrame = self.frameForContent(size: size) + let shadowInsets = UIEdgeInsets(top: 2.0, left: 3.0, bottom: 4.0, right: 3.0) transition.updateFrame(node: self.shadowNode, frame: CGRect(origin: CGPoint(x: -shadowInsets.left, y: -shadowInsets.top), size: CGSize(width: size.width + shadowInsets.left + shadowInsets.right, height: size.height + shadowInsets.top + shadowInsets.bottom))) @@ -129,8 +145,8 @@ final class OverlayVideoDecoration: UniversalVideoDecoration { transition.updateFrame(node: self.statusNode, frame: CGRect(origin: CGPoint(x: floorToScreenPixels((size.width - progressSize.width) / 2.0), y: floorToScreenPixels((size.height - progressSize.height) / 2.0)), size: progressSize)) if let contentNode = self.contentNode { - transition.updateFrame(node: contentNode, frame: CGRect(origin: CGPoint(), size: size)) - contentNode.updateLayout(size: size, transition: transition) + transition.updateFrame(node: contentNode, frame: contentFrame) + contentNode.updateLayout(size: contentFrame.size, transition: transition) } } @@ -141,9 +157,11 @@ final class OverlayVideoDecoration: UniversalVideoDecoration { if self.controlsNode.alpha.isZero { self.controlsNode.alpha = 1.0 self.controlsNode.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.3) + self.controlsAreShowingUpdated(true) } else { self.controlsNode.alpha = 0.0 self.controlsNode.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.3) + self.controlsAreShowingUpdated(false) } } } @@ -152,6 +170,7 @@ final class OverlayVideoDecoration: UniversalVideoDecoration { if self.controlsNode.alpha.isZero { self.controlsNode.alpha = 1.0 self.controlsNode.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.3) + self.controlsAreShowingUpdated(true) } } diff --git a/submodules/WalletUI/Resources/WalletStrings.mapping b/submodules/WalletUI/Resources/WalletStrings.mapping index d38b0e0300..1246758922 100644 Binary files a/submodules/WalletUI/Resources/WalletStrings.mapping and b/submodules/WalletUI/Resources/WalletStrings.mapping differ diff --git a/submodules/WalletUI/Sources/WalletStrings.swift b/submodules/WalletUI/Sources/WalletStrings.swift index 759572d1b4..b25bf2d505 100644 --- a/submodules/WalletUI/Sources/WalletStrings.swift +++ b/submodules/WalletUI/Sources/WalletStrings.swift @@ -449,12 +449,12 @@ public final class WalletStrings: Equatable { public var Wallet_SecureStorageReset_Title: String { return self._s[219]! } public var Wallet_Receive_CommentHeader: String { return self._s[220]! } public var Wallet_Info_ReceiveGrams: String { return self._s[221]! } - public func Wallet_Updated_MinutesAgo(_ value: Int32) -> String { + public func Wallet_Updated_HoursAgo(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = walletStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[0 * 6 + Int(form.rawValue)]!, stringValue) } - public func Wallet_Updated_HoursAgo(_ value: Int32) -> String { + public func Wallet_Updated_MinutesAgo(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = walletStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[1 * 6 + Int(form.rawValue)]!, stringValue)