From 659ea466c902564501f704786b7da7bf9274a656 Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Fri, 21 May 2021 16:02:08 +0400 Subject: [PATCH] Video Chat Improvements --- .../Telegram-iOS/en.lproj/Localizable.strings | 4 + .../AvatarNode/Sources/PeerAvatar.swift | 17 +- .../GalleryUI/Sources/GalleryPagerNode.swift | 24 +- .../Sources/PeerInfoAvatarListNode.swift | 26 +- .../Sources/CallControllerButton.swift | 16 +- .../Sources/CallStatusBarNode.swift | 4 +- .../Sources/GroupVideoNode.swift | 47 +- .../Sources/PresentationGroupCall.swift | 113 +- .../Sources/VoiceChatActionButton.swift | 14 +- .../VoiceChatCameraPreviewController.swift | 4 + .../Sources/VoiceChatController.swift | 229 +- .../VoiceChatFullscreenParticipantItem.swift | 53 +- .../Sources/VoiceChatMainStageNode.swift | 136 +- .../Sources/VoiceChatParticipantItem.swift | 62 +- .../Sources/VoiceChatPeerProfileNode.swift | 10 +- .../Sources/VoiceChatTileGridNode.swift | 20 +- .../Sources/VoiceChatTileItemNode.swift | 26 +- .../Sources/PresentationStrings.swift | 4716 +++++++++-------- .../Resources/PresentationStrings.mapping | Bin 172232 -> 172304 bytes 19 files changed, 2815 insertions(+), 2706 deletions(-) diff --git a/Telegram/Telegram-iOS/en.lproj/Localizable.strings b/Telegram/Telegram-iOS/en.lproj/Localizable.strings index f1ccd42e62..11479a87cb 100644 --- a/Telegram/Telegram-iOS/en.lproj/Localizable.strings +++ b/Telegram/Telegram-iOS/en.lproj/Localizable.strings @@ -6465,8 +6465,12 @@ Sorry for the inconvenience."; "VoiceChat.VideoPreviewDescription" = "Are you sure you want to share your video?"; "VoiceChat.VideoPreviewShareCamera" = "Share Camera Video"; "VoiceChat.VideoPreviewShareScreen" = "Share Screen"; +"VoiceChat.VideoPreviewStopScreenSharing" = "Stop Screen Sharing"; "VoiceChat.TapToViewCameraVideo" = "Tap to view camera video"; "VoiceChat.TapToViewScreenVideo" = "Tap to view screen sharing"; +"VoiceChat.ShareScreen" = "Share Screen"; +"VoiceChat.StopScreenSharing" = "Stop Screen Sharing"; + "WallpaperPreview.WallpaperColors" = "Colors"; diff --git a/submodules/AvatarNode/Sources/PeerAvatar.swift b/submodules/AvatarNode/Sources/PeerAvatar.swift index d2cdecf82b..4012e26d00 100644 --- a/submodules/AvatarNode/Sources/PeerAvatar.swift +++ b/submodules/AvatarNode/Sources/PeerAvatar.swift @@ -89,10 +89,23 @@ public func peerAvatarImageData(account: Account, peerReference: PeerReference?, public func peerAvatarCompleteImage(account: Account, peer: Peer, size: CGSize, font: UIFont = avatarPlaceholderFont(size: 13.0), fullSize: Bool = false) -> Signal { let iconSignal: Signal - if let signal = peerAvatarImage(account: account, peerReference: PeerReference(peer), authorOfMessage: nil, representation: peer.profileImageRepresentations.first, displayDimensions: size, inset: 0.0, emptyColor: nil, synchronousLoad: false) { - iconSignal = signal + if let signal = peerAvatarImage(account: account, peerReference: PeerReference(peer), authorOfMessage: nil, representation: peer.profileImageRepresentations.first, displayDimensions: size, inset: 0.0, emptyColor: nil, synchronousLoad: fullSize) { + if fullSize, let fullSizeSignal = peerAvatarImage(account: account, peerReference: PeerReference(peer), authorOfMessage: nil, representation: peer.profileImageRepresentations.last, displayDimensions: size, emptyColor: nil, synchronousLoad: true) { + iconSignal = combineLatest(.single(nil) |> then(signal), .single(nil) |> then(fullSizeSignal)) + |> mapToSignal { thumbnailImage, fullSizeImage -> Signal in + if let fullSizeImage = fullSizeImage { + return .single(fullSizeImage.0) + } else if let thumbnailImage = thumbnailImage { + return .single(thumbnailImage.0) + } else { + return .complete() + } + } + } else { + iconSignal = signal |> map { imageVersions -> UIImage? in return imageVersions?.0 + } } } else { let peerId = peer.id diff --git a/submodules/GalleryUI/Sources/GalleryPagerNode.swift b/submodules/GalleryUI/Sources/GalleryPagerNode.swift index 199d822c0b..5dc2538661 100644 --- a/submodules/GalleryUI/Sources/GalleryPagerNode.swift +++ b/submodules/GalleryUI/Sources/GalleryPagerNode.swift @@ -9,7 +9,8 @@ private func edgeWidth(width: CGFloat) -> CGFloat { return min(44.0, floor(width / 6.0)) } -private let leftFadeImage = generateImage(CGSize(width: 64.0, height: 1.0), opaque: false, rotatedContext: { size, context in +let fadeWidth: CGFloat = 70.0 +private let leftFadeImage = generateImage(CGSize(width: fadeWidth, height: 32.0), opaque: false, rotatedContext: { size, context in let bounds = CGRect(origin: CGPoint(), size: size) context.clear(bounds) @@ -19,10 +20,10 @@ private let leftFadeImage = generateImage(CGSize(width: 64.0, height: 1.0), opaq let colorSpace = CGColorSpaceCreateDeviceRGB() let gradient = CGGradient(colorsSpace: colorSpace, colors: gradientColors, locations: &locations)! - context.drawLinearGradient(gradient, start: CGPoint(x: 0.0, y: 0.0), end: CGPoint(x: 64.0, y: 0.0), options: CGGradientDrawingOptions()) + context.drawLinearGradient(gradient, start: CGPoint(x: 0.0, y: 0.0), end: CGPoint(x: size.width, y: 0.0), options: CGGradientDrawingOptions()) }) -private let rightFadeImage = generateImage(CGSize(width: 64.0, height: 1.0), opaque: false, rotatedContext: { size, context in +private let rightFadeImage = generateImage(CGSize(width: fadeWidth, height: 32.0), opaque: false, rotatedContext: { size, context in let bounds = CGRect(origin: CGPoint(), size: size) context.clear(bounds) @@ -32,7 +33,7 @@ private let rightFadeImage = generateImage(CGSize(width: 64.0, height: 1.0), opa let colorSpace = CGColorSpaceCreateDeviceRGB() let gradient = CGGradient(colorsSpace: colorSpace, colors: gradientColors, locations: &locations)! - context.drawLinearGradient(gradient, start: CGPoint(x: 0.0, y: 0.0), end: CGPoint(x: 64.0, y: 0.0), options: CGGradientDrawingOptions()) + context.drawLinearGradient(gradient, start: CGPoint(x: 0.0, y: 0.0), end: CGPoint(x: size.width, y: 0.0), options: CGGradientDrawingOptions()) }) public struct GalleryPagerInsertItem { @@ -80,8 +81,8 @@ public final class GalleryPagerNode: ASDisplayNode, UIScrollViewDelegate, UIGest private let scrollView: UIScrollView - private let leftFadeNode: ASImageNode - private let rightFadeNode: ASImageNode + private let leftFadeNode: ASDisplayNode + private let rightFadeNode: ASDisplayNode private var highlightedSide: Bool? private var tapRecognizer: TapLongTapOrDoubleTapGestureRecognizer? @@ -117,15 +118,13 @@ public final class GalleryPagerNode: ASDisplayNode, UIScrollViewDelegate, UIGest self.scrollView.contentInsetAdjustmentBehavior = .never } - self.leftFadeNode = ASImageNode() - self.leftFadeNode.contentMode = .scaleToFill - self.leftFadeNode.image = leftFadeImage + self.leftFadeNode = ASDisplayNode() self.leftFadeNode.alpha = 0.0 + self.leftFadeNode.backgroundColor = leftFadeImage.flatMap { UIColor(patternImage: $0) } - self.rightFadeNode = ASImageNode() - self.rightFadeNode.contentMode = .scaleToFill - self.rightFadeNode.image = rightFadeImage + self.rightFadeNode = ASDisplayNode() self.rightFadeNode.alpha = 0.0 + self.rightFadeNode.backgroundColor = rightFadeImage.flatMap { UIColor(patternImage: $0) } super.init() @@ -293,7 +292,6 @@ public final class GalleryPagerNode: ASDisplayNode, UIScrollViewDelegate, UIGest transition.animatePosition(node: centralItemNode, from: centralItemNode.position.offsetBy(dx: -updatedCentralPoint.x + centralPoint.x, dy: -updatedCentralPoint.y + centralPoint.y)) } - let fadeWidth = min(72.0, layout.size.width * 0.2) self.leftFadeNode.frame = CGRect(x: 0.0, y: 0.0, width: fadeWidth, height: layout.size.height) self.rightFadeNode.frame = CGRect(x: layout.size.width - fadeWidth, y: 0.0, width: fadeWidth, height: layout.size.height) } diff --git a/submodules/PeerInfoAvatarListNode/Sources/PeerInfoAvatarListNode.swift b/submodules/PeerInfoAvatarListNode/Sources/PeerInfoAvatarListNode.swift index e81bc7750d..79fea03e4c 100644 --- a/submodules/PeerInfoAvatarListNode/Sources/PeerInfoAvatarListNode.swift +++ b/submodules/PeerInfoAvatarListNode/Sources/PeerInfoAvatarListNode.swift @@ -432,6 +432,8 @@ public final class PeerInfoAvatarListItemNode: ASDisplayNode { } } +private let fadeWidth: CGFloat = 70.0 + public final class PeerInfoAvatarListContainerNode: ASDisplayNode { private let context: AccountContext public var peer: Peer? @@ -442,8 +444,8 @@ public final class PeerInfoAvatarListContainerNode: ASDisplayNode { public let shadowNode: ASImageNode public let contentNode: ASDisplayNode - let leftHighlightNode: ASImageNode - let rightHighlightNode: ASImageNode + let leftHighlightNode: ASDisplayNode + let rightHighlightNode: ASDisplayNode var highlightedSide: Bool? public let stripContainerNode: ASDisplayNode public let highlightContainerNode: ASDisplayNode @@ -564,11 +566,9 @@ public final class PeerInfoAvatarListContainerNode: ASDisplayNode { self.contentNode = ASDisplayNode() - self.leftHighlightNode = ASImageNode() + self.leftHighlightNode = ASDisplayNode() self.leftHighlightNode.displaysAsynchronously = false - self.leftHighlightNode.displayWithoutProcessing = true - self.leftHighlightNode.contentMode = .scaleToFill - self.leftHighlightNode.image = generateImage(CGSize(width: 88.0, height: 1.0), contextGenerator: { size, context in + self.leftHighlightNode.backgroundColor = generateImage(CGSize(width: fadeWidth, height: 24.0), contextGenerator: { size, context in context.clear(CGRect(origin: CGPoint(), size: size)) let topColor = UIColor(rgb: 0x000000, alpha: 0.1) @@ -581,14 +581,12 @@ public final class PeerInfoAvatarListContainerNode: ASDisplayNode { let gradient = CGGradient(colorsSpace: colorSpace, colors: colors as CFArray, locations: &locations)! context.drawLinearGradient(gradient, start: CGPoint(x: 0.0, y: 0.0), end: CGPoint(x: size.width, y: 0.0), options: [.drawsBeforeStartLocation, .drawsAfterEndLocation]) - }) + }).flatMap { UIColor(patternImage: $0) } self.leftHighlightNode.alpha = 0.0 - self.rightHighlightNode = ASImageNode() + self.rightHighlightNode = ASDisplayNode() self.rightHighlightNode.displaysAsynchronously = false - self.rightHighlightNode.displayWithoutProcessing = true - self.rightHighlightNode.contentMode = .scaleToFill - self.rightHighlightNode.image = generateImage(CGSize(width: 88.0, height: 1.0), contextGenerator: { size, context in + self.rightHighlightNode.backgroundColor = generateImage(CGSize(width: fadeWidth, height: 24.0), contextGenerator: { size, context in context.clear(CGRect(origin: CGPoint(), size: size)) let topColor = UIColor(rgb: 0x000000, alpha: 0.1) @@ -601,7 +599,7 @@ public final class PeerInfoAvatarListContainerNode: ASDisplayNode { let gradient = CGGradient(colorsSpace: colorSpace, colors: colors as CFArray, locations: &locations)! context.drawLinearGradient(gradient, start: CGPoint(x: size.width, y: 0.0), end: CGPoint(x: 0.0, y: 0.0), options: [.drawsBeforeStartLocation, .drawsAfterEndLocation]) - }) + }).flatMap { UIColor(patternImage: $0) } self.rightHighlightNode.alpha = 0.0 self.stripContainerNode = ASDisplayNode() @@ -963,8 +961,8 @@ public final class PeerInfoAvatarListContainerNode: ASDisplayNode { if !isExpanded && previousExpanded { self.isCollapsing = true } - self.leftHighlightNode.frame = CGRect(origin: CGPoint(), size: CGSize(width: floor(size.width * 1.0 / 5.0), height: size.height)) - self.rightHighlightNode.frame = CGRect(origin: CGPoint(x: size.width - floor(size.width * 1.0 / 5.0), y: 0.0), size: CGSize(width: floor(size.width * 1.0 / 5.0), height: size.height)) + self.leftHighlightNode.frame = CGRect(origin: CGPoint(), size: CGSize(width: fadeWidth, height: size.height)) + self.rightHighlightNode.frame = CGRect(origin: CGPoint(x: size.width - fadeWidth, y: 0.0), size: CGSize(width: fadeWidth, height: size.height)) if let peer = peer, !self.initializedList { self.initializedList = true diff --git a/submodules/TelegramCallsUI/Sources/CallControllerButton.swift b/submodules/TelegramCallsUI/Sources/CallControllerButton.swift index 109d74a374..42468535b8 100644 --- a/submodules/TelegramCallsUI/Sources/CallControllerButton.swift +++ b/submodules/TelegramCallsUI/Sources/CallControllerButton.swift @@ -71,12 +71,15 @@ final class CallControllerButtonItemNode: HighlightTrackingButtonNode { private var statusNode: SemanticStatusNode? let textNode: ImmediateTextNode - private let largeButtonSize: CGFloat = 72.0 + private let largeButtonSize: CGFloat + private var size: CGSize? private(set) var currentContent: Content? private(set) var currentText: String = "" - init() { + init(largeButtonSize: CGFloat = 72.0) { + self.largeButtonSize = largeButtonSize + self.wrapperNode = ASDisplayNode() self.contentContainer = ASDisplayNode() @@ -145,9 +148,10 @@ final class CallControllerButtonItemNode: HighlightTrackingButtonNode { self.contentNode.frame = CGRect(origin: CGPoint(), size: CGSize(width: self.largeButtonSize, height: self.largeButtonSize)) self.overlayHighlightNode.frame = CGRect(origin: CGPoint(), size: CGSize(width: self.largeButtonSize, height: self.largeButtonSize)) - if self.currentContent != content { + if self.currentContent != content || self.size != size { let previousContent = self.currentContent self.currentContent = content + self.size = size if content.hasProgress { let statusFrame = CGRect(origin: CGPoint(), size: CGSize(width: self.largeButtonSize, height: self.largeButtonSize)) @@ -201,7 +205,8 @@ final class CallControllerButtonItemNode: HighlightTrackingButtonNode { self.contentContainer.insertSubnode(animationNode, aboveSubnode: self.contentNode) } if let animationNode = self.animationNode { - animationNode.frame = animationFrame + animationNode.bounds = animationFrame + animationNode.position = CGPoint(x: self.largeButtonSize / 2.0, y: self.largeButtonSize / 2.0) if previousContent == nil { animationNode.seekToEnd() } else if previousContent?.image != content.image { @@ -371,6 +376,9 @@ final class CallControllerButtonItemNode: HighlightTrackingButtonNode { transition.updatePosition(node: self.contentContainer, position: CGPoint(x: size.width / 2.0, y: size.height / 2.0)) transition.updateSublayerTransformScale(node: self.contentContainer, scale: scaleFactor) + if let animationNode = self.animationNode { + transition.updateTransformScale(node: animationNode, scale: isSmall ? 1.35 : 1.12) + } if self.currentText != text { self.textNode.attributedText = NSAttributedString(string: text, font: labelFont, textColor: .white) diff --git a/submodules/TelegramCallsUI/Sources/CallStatusBarNode.swift b/submodules/TelegramCallsUI/Sources/CallStatusBarNode.swift index 90d0e21530..19f4ef1ff6 100644 --- a/submodules/TelegramCallsUI/Sources/CallStatusBarNode.swift +++ b/submodules/TelegramCallsUI/Sources/CallStatusBarNode.swift @@ -11,8 +11,8 @@ import AccountContext import LegacyComponents import AnimatedCountLabelNode -private let blue = UIColor(rgb: 0x0078ff) -private let lightBlue = UIColor(rgb: 0x59c7f8) +private let blue = UIColor(rgb: 0x007fff) +private let lightBlue = UIColor(rgb: 0x00affe) private let green = UIColor(rgb: 0x33c659) private let activeBlue = UIColor(rgb: 0x00a0b9) private let purple = UIColor(rgb: 0x3252ef) diff --git a/submodules/TelegramCallsUI/Sources/GroupVideoNode.swift b/submodules/TelegramCallsUI/Sources/GroupVideoNode.swift index 8f460fa659..9d74db9fed 100644 --- a/submodules/TelegramCallsUI/Sources/GroupVideoNode.swift +++ b/submodules/TelegramCallsUI/Sources/GroupVideoNode.swift @@ -130,11 +130,11 @@ final class GroupVideoNode: ASDisplayNode { } UIView.transition(with: withBackground ? self.videoViewContainer : self.view, duration: 0.4, options: [.transitionFlipFromLeft, .curveEaseOut], animations: { UIView.performWithoutAnimation { - self.updateIsBlurred(isBlurred: true, light: true, animated: false) + self.updateIsBlurred(isBlurred: true, light: false, animated: false) } }) { finished in self.backgroundColor = nil - Queue.mainQueue().after(0.5) { + Queue.mainQueue().after(0.4) { self.updateIsBlurred(isBlurred: false) } } @@ -202,7 +202,8 @@ final class GroupVideoNode: ASDisplayNode { } var rotatedVideoSize = CGSize(width: 100.0, height: rotatedAspect * 100.0) - + let videoSize = rotatedVideoSize + var containerSize = size if switchOrientation { rotatedVideoSize = CGSize(width: rotatedVideoSize.height, height: rotatedVideoSize.width) @@ -217,13 +218,13 @@ final class GroupVideoNode: ASDisplayNode { case .fillOrFitToSquare: rotatedVideoSize = filledToSquareSize case .fillHorizontal: - if rotatedVideoSize.width > rotatedVideoSize.height { + if videoSize.width > videoSize.height { rotatedVideoSize = filledSize } else { rotatedVideoSize = fittedSize } case .fillVertical: - if rotatedVideoSize.width < rotatedVideoSize.height { + if videoSize.width < videoSize.height { rotatedVideoSize = filledSize } else { rotatedVideoSize = fittedSize @@ -236,11 +237,11 @@ final class GroupVideoNode: ASDisplayNode { rotatedVideoFrame.size.width = ceil(rotatedVideoFrame.size.width) rotatedVideoFrame.size.height = ceil(rotatedVideoFrame.size.height) - let videoSize = rotatedVideoFrame.size.aspectFilled(CGSize(width: 1080.0, height: 1080.0)) + let normalizedVideoSize = rotatedVideoFrame.size.aspectFilled(CGSize(width: 1080.0, height: 1080.0)) transition.updatePosition(layer: self.videoView.view.layer, position: rotatedVideoFrame.center) - transition.updateBounds(layer: self.videoView.view.layer, bounds: CGRect(origin: CGPoint(), size: videoSize)) + transition.updateBounds(layer: self.videoView.view.layer, bounds: CGRect(origin: CGPoint(), size: normalizedVideoSize)) - let transformScale: CGFloat = rotatedVideoFrame.width / videoSize.width + let transformScale: CGFloat = rotatedVideoFrame.width / normalizedVideoSize.width transition.updateTransformScale(layer: self.videoViewContainer.layer, scale: transformScale) if let backdropVideoView = self.backdropVideoView { @@ -251,11 +252,11 @@ final class GroupVideoNode: ASDisplayNode { rotatedVideoFrame.size.width = ceil(rotatedVideoFrame.size.width) rotatedVideoFrame.size.height = ceil(rotatedVideoFrame.size.height) - let videoSize = rotatedVideoFrame.size.aspectFilled(CGSize(width: 1080.0, height: 1080.0)) + let normalizedVideoSize = rotatedVideoFrame.size.aspectFilled(CGSize(width: 1080.0, height: 1080.0)) transition.updatePosition(layer: backdropVideoView.view.layer, position: rotatedVideoFrame.center) - transition.updateBounds(layer: backdropVideoView.view.layer, bounds: CGRect(origin: CGPoint(), size: videoSize)) + transition.updateBounds(layer: backdropVideoView.view.layer, bounds: CGRect(origin: CGPoint(), size: normalizedVideoSize)) - let transformScale: CGFloat = rotatedVideoFrame.width / videoSize.width + let transformScale: CGFloat = rotatedVideoFrame.width / normalizedVideoSize.width transition.updateTransformScale(layer: self.backdropVideoViewContainer.layer, scale: transformScale) let transition: ContainedViewLayoutTransition = .immediate @@ -263,10 +264,26 @@ final class GroupVideoNode: ASDisplayNode { } if let backdropEffectView = self.backdropEffectView { - let maxSide = max(bounds.width, bounds.height) * 2.0 - let squareBounds = CGRect(x: (bounds.width - maxSide) / 2.0, y: (bounds.width - maxSide) / 2.0, width: maxSide, height: maxSide) - transition.animateView { - backdropEffectView.frame = squareBounds + let maxSide = max(bounds.width, bounds.height) + 32.0 + let squareBounds = CGRect(x: (bounds.width - maxSide) / 2.0, y: (bounds.height - maxSide) / 2.0, width: maxSide, height: maxSide) + + if case let .animated(duration, .spring) = transition { + if false, #available(iOS 10.0, *) { + let timing = UISpringTimingParameters(mass: 3.0, stiffness: 1000.0, damping: 500.0, initialVelocity: CGVector(dx: 0.0, dy: 0.0)) + let animator = UIViewPropertyAnimator(duration: 0.34, timingParameters: timing) + animator.addAnimations { + backdropEffectView.frame = squareBounds + } + animator.startAnimation() + } else { + UIView.animate(withDuration: duration, delay: 0.0, usingSpringWithDamping: 500.0, initialSpringVelocity: 0.0, options: .layoutSubviews, animations: { + backdropEffectView.frame = squareBounds + }) + } + } else { + transition.animateView { + backdropEffectView.frame = squareBounds + } } } diff --git a/submodules/TelegramCallsUI/Sources/PresentationGroupCall.swift b/submodules/TelegramCallsUI/Sources/PresentationGroupCall.swift index a9a7283452..a51febc85d 100644 --- a/submodules/TelegramCallsUI/Sources/PresentationGroupCall.swift +++ b/submodules/TelegramCallsUI/Sources/PresentationGroupCall.swift @@ -2512,15 +2512,11 @@ public final class PresentationGroupCallImpl: PresentationGroupCall { } private func requestScreencast() { - if self.screencastCallContext != nil { - return - } - - let maybeCallInfo: GroupCallInfo? = self.internalState.callInfo - - guard let callInfo = maybeCallInfo else { + guard let callInfo = self.internalState.callInfo, self.screencastCallContext == nil else { return } + + self.hasScreencast = true let screencastCallContext = OngoingGroupCallContext(video: self.screencastCapturer, requestMediaChannelDescriptions: { _, _ in EmptyDisposable }, audioStreamData: nil, rejoinNeeded: { }, outgoingAudioBitrateKbit: nil, videoContentType: .screencast, enableNoiseSuppression: false) self.screencastCallContext = screencastCallContext @@ -2553,109 +2549,6 @@ public final class PresentationGroupCallImpl: PresentationGroupCall { } })) })) - - /*if self.screencastIpcContext != nil { - return - } - - let maybeCallInfo: GroupCallInfo? = self.internalState.callInfo - - guard let callInfo = maybeCallInfo else { - return - } - - let screencastIpcContext = IpcGroupCallAppContext(basePath: self.accountContext.sharedContext.basePath + "/broadcast-coordination") - self.screencastIpcContext = screencastIpcContext - self.hasScreencast = true - - self.screencastJoinDisposable.set((screencastIpcContext.joinPayload - |> take(1) - |> deliverOnMainQueue).start(next: { [weak self] joinPayload in - guard let strongSelf = self else { - return - } - - strongSelf.requestDisposable.set((joinGroupCallAsScreencast( - account: strongSelf.account, - peerId: strongSelf.peerId, - callId: callInfo.id, - accessHash: callInfo.accessHash, - joinPayload: joinPayload - ) - |> deliverOnMainQueue).start(next: { joinCallResult in - guard let strongSelf = self, let screencastIpcContext = strongSelf.screencastIpcContext else { - return - } - let clientParams = joinCallResult.jsonParams - - screencastIpcContext.setJoinResponsePayload(clientParams) - - strongSelf.genericCallContext?.setIgnoreVideoEndpointIds(endpointIds: [joinCallResult.endpointId]) - }, error: { error in - guard let _ = self else { - return - } - })) - })) - - /*if self.screenCapturer == nil { - let screenCapturer = OngoingCallVideoCapturer() - self.screenCapturer = screenCapturer - } - - let screencastCallContext = OngoingGroupCallContext( - video: self.screenCapturer, - requestMediaChannelDescriptions: { _, completion in - completion([]) - return EmptyDisposable - }, - audioStreamData: nil, - rejoinNeeded: {}, - outgoingAudioBitrateKbit: nil, - videoContentType: .screencast, - enableNoiseSuppression: false - ) - - self.screencastCallContext = screencastCallContext - - self.screencastJoinDisposable.set((screencastCallContext.joinPayload - |> distinctUntilChanged(isEqual: { lhs, rhs in - if lhs.0 != rhs.0 { - return false - } - if lhs.1 != rhs.1 { - return false - } - return true - }) - |> deliverOnMainQueue).start(next: { [weak self] joinPayload, _ in - guard let strongSelf = self else { - return - } - - strongSelf.requestDisposable.set((joinGroupCallAsScreencast( - account: strongSelf.account, - peerId: strongSelf.peerId, - callId: callInfo.id, - accessHash: callInfo.accessHash, - joinPayload: joinPayload - ) - |> deliverOnMainQueue).start(next: { joinCallResult in - guard let strongSelf = self, let screencastCallContext = strongSelf.screencastCallContext else { - return - } - let clientParams = joinCallResult.jsonParams - - screencastCallContext.setConnectionMode(.rtc, keepBroadcastConnectedIfWasEnabled: false) - screencastCallContext.setJoinResponse(payload: clientParams) - - strongSelf.genericCallContext?.setIgnoreVideoEndpointIds(endpointIds: [joinCallResult.endpointId]) - }, error: { error in - guard let _ = self else { - return - } - })) - }))*/*/ } public func disableScreencast() { diff --git a/submodules/TelegramCallsUI/Sources/VoiceChatActionButton.swift b/submodules/TelegramCallsUI/Sources/VoiceChatActionButton.swift index da6e7e3bdb..1b88b3e3a9 100644 --- a/submodules/TelegramCallsUI/Sources/VoiceChatActionButton.swift +++ b/submodules/TelegramCallsUI/Sources/VoiceChatActionButton.swift @@ -14,8 +14,8 @@ private let subtitleFont = Font.regular(13.0) private let white = UIColor(rgb: 0xffffff) private let greyColor = UIColor(rgb: 0x2c2c2e) private let secondaryGreyColor = UIColor(rgb: 0x1c1c1e) -private let blue = UIColor(rgb: 0x0078ff) -private let lightBlue = UIColor(rgb: 0x59c7f8) +private let blue = UIColor(rgb: 0x007fff) +private let lightBlue = UIColor(rgb: 0x00affe) private let green = UIColor(rgb: 0x33c659) private let activeBlue = UIColor(rgb: 0x00a0b9) private let purple = UIColor(rgb: 0x3252ef) @@ -607,7 +607,7 @@ private final class VoiceChatActionButtonBackgroundNode: ASDisplayNode { self.foregroundGradientLayer.type = .radial self.foregroundGradientLayer.colors = [lightBlue.cgColor, blue.cgColor, blue.cgColor] - self.foregroundGradientLayer.locations = [0.0, 0.85, 1.0] + self.foregroundGradientLayer.locations = [0.0, 0.55, 1.0] self.foregroundGradientLayer.startPoint = CGPoint(x: 1.0, y: 0.0) self.foregroundGradientLayer.endPoint = CGPoint(x: 0.0, y: 1.0) @@ -798,12 +798,12 @@ private final class VoiceChatActionButtonBackgroundNode: ASDisplayNode { case .speaking: targetColors = [activeBlue.cgColor, green.cgColor, green.cgColor] targetScale = 0.89 - outerColor = UIColor(rgb: 0x21674f) + outerColor = UIColor(rgb: 0x134b22) activeColor = green case .active: targetColors = [lightBlue.cgColor, blue.cgColor, blue.cgColor] targetScale = 0.85 - outerColor = UIColor(rgb: 0x1d588d) + outerColor = UIColor(rgb: 0x002e5d) activeColor = blue case .connecting: targetColors = [lightBlue.cgColor, blue.cgColor, blue.cgColor] @@ -1296,8 +1296,8 @@ private final class VoiceBlobView: UIView { } public func setColor(_ color: UIColor) { - mediumBlob.setColor(color.withAlphaComponent(0.55)) - bigBlob.setColor(color.withAlphaComponent(0.35)) + mediumBlob.setColor(color.withAlphaComponent(0.5)) + bigBlob.setColor(color.withAlphaComponent(0.21)) } public func updateLevel(_ level: CGFloat) { diff --git a/submodules/TelegramCallsUI/Sources/VoiceChatCameraPreviewController.swift b/submodules/TelegramCallsUI/Sources/VoiceChatCameraPreviewController.swift index ead97f3d25..14c4d5bec3 100644 --- a/submodules/TelegramCallsUI/Sources/VoiceChatCameraPreviewController.swift +++ b/submodules/TelegramCallsUI/Sources/VoiceChatCameraPreviewController.swift @@ -133,6 +133,8 @@ private class VoiceChatCameraPreviewControllerNode: ViewControllerTracingNode, U private var applicationStateDisposable: Disposable? + private let hapticFeedback = HapticFeedback() + var shareCamera: ((Bool) -> Void)? var switchCamera: (() -> Void)? var dismiss: (() -> Void)? @@ -298,11 +300,13 @@ private class VoiceChatCameraPreviewControllerNode: ViewControllerTracingNode, U } @objc private func microphonePressed() { + self.hapticFeedback.impact(.light) self.microphoneButton.isSelected = !self.microphoneButton.isSelected self.microphoneIconNode.update(state: .init(muted: !self.microphoneButton.isSelected, filled: true, color: .white), animated: true) } @objc private func switchCameraPressed() { + self.hapticFeedback.impact(.light) self.switchCamera?() let springDuration: Double = 0.7 diff --git a/submodules/TelegramCallsUI/Sources/VoiceChatController.swift b/submodules/TelegramCallsUI/Sources/VoiceChatController.swift index 6afe9c01a1..fbc2896e00 100644 --- a/submodules/TelegramCallsUI/Sources/VoiceChatController.swift +++ b/submodules/TelegramCallsUI/Sources/VoiceChatController.swift @@ -70,15 +70,18 @@ func decorationCornersImage(top: Bool, bottom: Bool, dark: Bool) -> UIImage? { } private func decorationBottomGradientImage(dark: Bool) -> UIImage? { - return generateImage(CGSize(width: 1.0, height: bottomGradientHeight), rotatedContext: { size, context in + return generateImage(CGSize(width: 24.0, height: bottomGradientHeight), rotatedContext: { size, context in let bounds = CGRect(origin: CGPoint(), size: size) context.clear(bounds) let color = dark ? fullscreenBackgroundColor : panelBackgroundColor let colorsArray = [color.withAlphaComponent(0.0).cgColor, color.cgColor] as CFArray - var locations: [CGFloat] = [0.0, 1.0] + var locations: [CGFloat] = [1.0, 0.0] let gradient = CGGradient(colorsSpace: deviceColorSpace, colors: colorsArray, locations: &locations)! context.drawLinearGradient(gradient, start: CGPoint(), end: CGPoint(x: 0.0, y: size.height), options: CGGradientDrawingOptions()) +// +// context.setFillColor(UIColor.red.cgColor) +// context.fill(bounds) }) } @@ -676,9 +679,8 @@ public final class VoiceChatController: ViewController { private let closeButton: VoiceChatHeaderButton private let topCornersNode: ASImageNode private let videoBottomCornersNode: ASImageNode - private let bottomPanelCoverNode: ASDisplayNode fileprivate let bottomPanelNode: ASDisplayNode - private let bottomGradientNode: ASImageNode + private let bottomGradientNode: ASDisplayNode private let bottomPanelBackgroundNode: ASDisplayNode private let bottomCornersNode: ASImageNode fileprivate let audioButton: CallControllerButtonItemNode @@ -693,8 +695,10 @@ public final class VoiceChatController: ViewController { private let mainStageNode: VoiceChatMainStageNode private let transitionMaskView: UIView + private let transitionMaskTopFillLayer: CALayer private let transitionMaskFillLayer: CALayer - private let transitionMaskFillGradientLayer: CAGradientLayer + private let transitionMaskGradientLayer: CAGradientLayer + private let transitionMaskBottomFillLayer: CALayer private let transitionContainerNode: ASDisplayNode private var isScheduling = false @@ -791,10 +795,10 @@ public final class VoiceChatController: ViewController { private var requestedVideoChannels: [PresentationGroupCallRequestedVideo] = [] private var videoNodes: [String: GroupVideoNode] = [:] + private var wideVideoNodes = Set() + private var videoOrder: [String] = [] private var readyVideoNodes = Set() private var readyVideoDisposables = DisposableDict() - private var wideVideoNodes = Set() - private var videoNodesOrder: [String] = [] private var endpointToPeerId: [String: PeerId] = [:] private var peerIdToEndpoint: [PeerId: String] = [:] @@ -906,9 +910,6 @@ public final class VoiceChatController: ViewController { self.topCornersNode.displaysAsynchronously = false self.topCornersNode.displayWithoutProcessing = true self.topCornersNode.image = decorationCornersImage(top: true, bottom: false, dark: false) - - self.bottomPanelCoverNode = ASDisplayNode() - self.bottomPanelCoverNode.backgroundColor = fullscreenBackgroundColor self.bottomPanelNode = ASDisplayNode() self.bottomPanelNode.clipsToBounds = false @@ -917,10 +918,9 @@ public final class VoiceChatController: ViewController { self.bottomPanelBackgroundNode.backgroundColor = panelBackgroundColor self.bottomPanelBackgroundNode.isUserInteractionEnabled = false - self.bottomGradientNode = ASImageNode() + self.bottomGradientNode = ASDisplayNode() self.bottomGradientNode.displaysAsynchronously = false - self.bottomGradientNode.contentMode = .scaleToFill - self.bottomGradientNode.image = decorationBottomGradientImage(dark: false) + self.bottomGradientNode.backgroundColor = decorationBottomGradientImage(dark: false).flatMap { UIColor(patternImage: $0) } self.bottomCornersNode = ASImageNode() self.bottomCornersNode.displaysAsynchronously = false @@ -935,7 +935,7 @@ public final class VoiceChatController: ViewController { self.videoBottomCornersNode.isUserInteractionEnabled = false self.audioButton = CallControllerButtonItemNode() - self.cameraButton = CallControllerButtonItemNode() + self.cameraButton = CallControllerButtonItemNode(largeButtonSize: sideButtonSize.width) self.switchCameraButton = CallControllerButtonItemNode() self.switchCameraButton.alpha = 0.0 self.switchCameraButton.isUserInteractionEnabled = false @@ -967,24 +967,34 @@ public final class VoiceChatController: ViewController { self.mainStageContainerNode.isHidden = true self.mainStageBackgroundNode = ASDisplayNode() -// self.mainStageBackgroundNode.backgroundColor = .black + self.mainStageBackgroundNode.backgroundColor = .black self.mainStageBackgroundNode.alpha = 0.0 self.mainStageBackgroundNode.isUserInteractionEnabled = false self.mainStageNode = VoiceChatMainStageNode(context: self.context, call: self.call) self.transitionMaskView = UIView() + self.transitionMaskTopFillLayer = CALayer() + self.transitionMaskTopFillLayer.backgroundColor = UIColor.white.cgColor + self.transitionMaskTopFillLayer.opacity = 0.0 + self.transitionMaskFillLayer = CALayer() self.transitionMaskFillLayer.backgroundColor = UIColor.white.cgColor + + self.transitionMaskGradientLayer = CAGradientLayer() + self.transitionMaskGradientLayer.colors = [UIColor.white.cgColor, UIColor.white.withAlphaComponent(0.0).cgColor] + self.transitionMaskGradientLayer.locations = [0.0, 1.0] + self.transitionMaskGradientLayer.startPoint = CGPoint(x: 0.0, y: 0.0) + self.transitionMaskGradientLayer.endPoint = CGPoint(x: 0.0, y: 1.0) - self.transitionMaskFillGradientLayer = CAGradientLayer() - self.transitionMaskFillGradientLayer.colors = [UIColor.white.cgColor, UIColor.white.withAlphaComponent(0.0).cgColor] - self.transitionMaskFillGradientLayer.locations = [0.0, 1.0] - self.transitionMaskFillGradientLayer.startPoint = CGPoint(x: 0.0, y: 0.0) - self.transitionMaskFillGradientLayer.endPoint = CGPoint(x: 0.0, y: 1.0) + self.transitionMaskBottomFillLayer = CALayer() + self.transitionMaskBottomFillLayer.backgroundColor = UIColor.white.cgColor + self.transitionMaskBottomFillLayer.opacity = 0.0 + self.transitionMaskView.layer.addSublayer(self.transitionMaskTopFillLayer) self.transitionMaskView.layer.addSublayer(self.transitionMaskFillLayer) - self.transitionMaskView.layer.addSublayer(self.transitionMaskFillGradientLayer) + self.transitionMaskView.layer.addSublayer(self.transitionMaskGradientLayer) + self.transitionMaskView.layer.addSublayer(self.transitionMaskBottomFillLayer) self.transitionContainerNode = ASDisplayNode() self.transitionContainerNode.clipsToBounds = true @@ -1657,20 +1667,16 @@ public final class VoiceChatController: ViewController { self.contentContainer.addSubnode(self.topPanelNode) self.contentContainer.addSubnode(self.leftBorderNode) self.contentContainer.addSubnode(self.rightBorderNode) -// self.contentContainer.addSubnode(self.bottomPanelCoverNode) self.contentContainer.addSubnode(self.bottomCornersNode) self.contentContainer.addSubnode(self.bottomGradientNode) self.contentContainer.addSubnode(self.bottomPanelBackgroundNode) + self.contentContainer.addSubnode(self.mainStageContainerNode) self.contentContainer.addSubnode(self.transitionContainerNode) self.contentContainer.addSubnode(self.bottomPanelNode) - self.contentContainer.addSubnode(self.mainStageContainerNode) self.contentContainer.addSubnode(self.timerNode) self.contentContainer.addSubnode(self.scheduleTextNode) self.contentContainer.addSubnode(self.fullscreenListNode) - - - self.mainStageContainerNode.addSubnode(self.mainStageBackgroundNode) self.mainStageContainerNode.addSubnode(self.mainStageNode) @@ -1715,6 +1721,7 @@ public final class VoiceChatController: ViewController { if strongSelf.callState != state { strongSelf.callState = state + strongSelf.mainStageNode.callState = state if let muteState = state.muteState, !muteState.canUnmute { if strongSelf.pushingToTalk { @@ -1829,10 +1836,10 @@ public final class VoiceChatController: ViewController { } } - if case .fullscreen = strongSelf.displayMode { + if case .fullscreen = strongSelf.displayMode, !strongSelf.mainStageNode.animating { if let (peerId, _) = maxLevelWithVideo { if let peer = strongSelf.currentDominantSpeaker, CACurrentMediaTime() - peer.1 < 2.5 { - } else { + } else if strongSelf.currentDominantSpeaker?.0 != peerId { strongSelf.currentDominantSpeaker = (peerId, CACurrentMediaTime()) strongSelf.updateMainVideo(waitForFullSize: false) } @@ -1878,7 +1885,7 @@ public final class VoiceChatController: ViewController { self.listNode.updateFloatingHeaderOffset = { [weak self] offset, transition in if let strongSelf = self { strongSelf.currentContentOffset = offset - if !(strongSelf.animatingExpansion || strongSelf.animatingInsertion || strongSelf.animatingAppearance) && strongSelf.panGestureArguments == nil { + if !(strongSelf.animatingExpansion || strongSelf.animatingInsertion || strongSelf.animatingAppearance) && (strongSelf.panGestureArguments == nil || strongSelf.isExpanded) { strongSelf.updateDecorationsLayout(transition: transition) } } @@ -2098,9 +2105,19 @@ public final class VoiceChatController: ViewController { } if #available(iOS 12.0, *) { - items.append(.custom(VoiceChatShareScreenContextItem(context: strongSelf.context, text: strongSelf.presentationData.strings.VoiceChat_VideoPreviewShareScreen, icon: { theme in - return generateTintedImage(image: UIImage(bundleImageName: "Call/Context Menu/ShareScreen"), color: theme.actionSheet.primaryTextColor) - }, action: { _, _ in }), false)) + if strongSelf.call.hasScreencast { + items.append(.action(ContextMenuActionItem(text: strongSelf.presentationData.strings.VoiceChat_StopScreenSharing, icon: { theme in + return generateTintedImage(image: UIImage(bundleImageName: "Call/Context Menu/ShareScreen"), color: theme.actionSheet.primaryTextColor) + }, action: { _, f in + f(.default) + + self?.call.disableScreencast() + }))) + } else { + items.append(.custom(VoiceChatShareScreenContextItem(context: strongSelf.context, text: strongSelf.presentationData.strings.VoiceChat_ShareScreen, icon: { theme in + return generateTintedImage(image: UIImage(bundleImageName: "Call/Context Menu/ShareScreen"), color: theme.actionSheet.primaryTextColor) + }, action: { _, _ in }), false)) + } } if canManageCall { @@ -2989,6 +3006,7 @@ public final class VoiceChatController: ViewController { } @objc private func cameraPressed() { + self.hapticFeedback.impact(.light) if self.call.hasVideo || self.call.hasScreencast { self.call.disableVideo() self.call.disableScreencast() @@ -3014,7 +3032,9 @@ public final class VoiceChatController: ViewController { } } }, switchCamera: { [weak self] in - self?.call.switchVideoCamera() + Queue.mainQueue().after(0.1) { + self?.call.switchVideoCamera() + } }) strongSelf.controller?.present(controller, in: .window(.root)) } @@ -3022,7 +3042,24 @@ public final class VoiceChatController: ViewController { } @objc private func switchCameraPressed() { - self.call.switchVideoCamera() + self.hapticFeedback.impact(.light) + Queue.mainQueue().after(0.1) { + self.call.switchVideoCamera() + } + + if let callState = self.callState { + for entry in self.currentFullscreenEntries { + if case let .peer(peerEntry, _) = entry { + if peerEntry.peer.id == callState.myPeerId { + if let videoEndpointId = peerEntry.videoEndpointId, let videoNode = self.videoNodes[videoEndpointId] { + videoNode.flip(withBackground: false) + } + break + } + } + } + } + self.mainStageNode.flipVideoIfNeeded() let springDuration: Double = 0.7 let springDamping: CGFloat = 100.0 @@ -3132,22 +3169,21 @@ public final class VoiceChatController: ViewController { let sideInset: CGFloat = 14.0 - let bottomPanelCoverHeight = bottomAreaHeight + layout.intrinsicInsets.bottom let bottomGradientFrame = CGRect(origin: CGPoint(x: 0.0, y: layout.size.height - bottomPanelCoverHeight), size: CGSize(width: size.width, height: bottomGradientHeight)) - let topEdgeY = topPanelFrame.maxY - var bottomEdgeY = self.isFullscreen ? layout.size.height - (self.isLandscape ? 0.0 : effectiveBottomAreaHeight) : bottomGradientFrame.maxY - if case .modal(_, true) = self.effectiveDisplayMode { - bottomEdgeY += 36.0 - } - - let transitionContainerFrame = CGRect(x: sideInset, y: topEdgeY, width: layout.size.width - sideInset * 2.0, height: max(0.0, bottomEdgeY - topEdgeY)) + let additionalMaskHeight: CGFloat = 62.0 + let topEdgeY = isLandscape ? 0.0 : layoutTopInset + let bottomEdgeY = (self.isLandscape ? layout.size.height + bottomGradientHeight : bottomGradientFrame.maxY) + additionalMaskHeight + + let transitionContainerFrame = CGRect(x: 0.0, y: topEdgeY, width: layout.size.width, height: max(0.0, bottomEdgeY - topEdgeY)) transition.updateFrame(node: self.transitionContainerNode, frame: transitionContainerFrame) transition.updateFrame(view: self.transitionMaskView, frame: CGRect(x: 0.0, y: 0.0, width: transitionContainerFrame.width, height: transitionContainerFrame.height)) let updateMaskLayers = { - transition.updateFrame(layer: self.transitionMaskFillLayer, frame: CGRect(x: 0.0, y: 0.0, width: transitionContainerFrame.width, height: transitionContainerFrame.height - bottomGradientHeight)) - transition.updateFrame(layer: self.transitionMaskFillGradientLayer, frame: CGRect(x: 0.0, y: transitionContainerFrame.height - bottomGradientHeight, width: transitionContainerFrame.width, height: bottomGradientHeight)) + transition.updateFrame(layer: self.transitionMaskTopFillLayer, frame: CGRect(x: 0.0, y: 0.0, width: transitionContainerFrame.width, height: topPanelFrame.height)) + transition.updateFrame(layer: self.transitionMaskFillLayer, frame: CGRect(x: 0.0, y: topPanelFrame.height, width: transitionContainerFrame.width, height: transitionContainerFrame.height - bottomGradientHeight - additionalMaskHeight - topPanelFrame.height)) + transition.updateFrame(layer: self.transitionMaskGradientLayer, frame: CGRect(x: 0.0, y: transitionContainerFrame.height - bottomGradientHeight - additionalMaskHeight, width: transitionContainerFrame.width, height: bottomGradientHeight)) + transition.updateFrame(layer: self.transitionMaskBottomFillLayer, frame: CGRect(x: 0.0, y: transitionContainerFrame.height - bottomGradientHeight - additionalMaskHeight, width: transitionContainerFrame.width, height: bottomGradientHeight + additionalMaskHeight)) } if transition.isAnimated { updateMaskLayers() @@ -3336,7 +3372,7 @@ public final class VoiceChatController: ViewController { } UIView.transition(with: self.bottomGradientNode.view, duration: 0.3, options: [.transitionCrossDissolve, .curveLinear]) { - self.bottomGradientNode.image = decorationBottomGradientImage(dark: isFullscreen) + self.bottomGradientNode.backgroundColor = decorationBottomGradientImage(dark: isFullscreen).flatMap { UIColor(patternImage: $0) } } completion: { _ in } @@ -3476,7 +3512,7 @@ public final class VoiceChatController: ViewController { buttonsTitleAlpha = 0.0 } - let hasVideo = self.call.hasVideo || self.call.hasScreencast + let hasVideo = self.call.hasVideo self.cameraButton.update(size: hasVideo ? sideButtonSize : videoButtonSize, content: CallControllerButtonItemNode.Content(appearance: hasVideo ? activeButtonAppearance : normalButtonAppearance, image: hasVideo ? .cameraOn : .cameraOff), text: self.presentationData.strings.VoiceChat_Video, transition: transition) self.switchCameraButton.update(size: videoButtonSize, content: CallControllerButtonItemNode.Content(appearance: normalButtonAppearance, image: .flipCamera), text: "", transition: transition) @@ -3627,13 +3663,11 @@ public final class VoiceChatController: ViewController { var bottomPanelFrame = CGRect(origin: CGPoint(x: 0.0, y: layout.size.height - bottomPanelHeight), size: CGSize(width: size.width, height: bottomPanelHeight)) let bottomPanelCoverHeight = bottomAreaHeight + layout.intrinsicInsets.bottom - let bottomPanelCoverFrame = CGRect(origin: CGPoint(x: 0.0, y: layout.size.height - bottomPanelCoverHeight), size: CGSize(width: size.width, height: bottomPanelCoverHeight)) if isLandscape { bottomPanelFrame = CGRect(origin: CGPoint(x: layout.size.width - fullscreenBottomAreaHeight - layout.safeInsets.right, y: 0.0), size: CGSize(width: fullscreenBottomAreaHeight + layout.safeInsets.right, height: layout.size.height)) } let bottomGradientFrame = CGRect(origin: CGPoint(x: 0.0, y: layout.size.height - bottomPanelCoverHeight), size: CGSize(width: size.width, height: bottomGradientHeight)) transition.updateAlpha(node: self.optionsButton, alpha: self.optionsButton.isUserInteractionEnabled ? 1.0 : 0.0) - transition.updateFrame(node: self.bottomPanelCoverNode, frame: bottomPanelCoverFrame) transition.updateFrame(node: self.bottomGradientNode, frame: bottomGradientFrame) transition.updateFrame(node: self.bottomPanelNode, frame: bottomPanelFrame) @@ -4155,8 +4189,8 @@ public final class VoiceChatController: ViewController { var isTile = false if let interaction = self.itemInteraction { if let videoEndpointId = member.presentationEndpointId, self.readyVideoNodes.contains(videoEndpointId) { - if !self.videoNodesOrder.contains(videoEndpointId) { - self.videoNodesOrder.append(videoEndpointId) + if !self.videoOrder.contains(videoEndpointId) { + self.videoOrder.append(videoEndpointId) } if let tileItem = ListEntry.peer(peerEntry, 0).tileItem(context: self.context, presentationData: self.presentationData, interaction: interaction, videoEndpointId: videoEndpointId) { isTile = true @@ -4167,8 +4201,8 @@ public final class VoiceChatController: ViewController { } } if let videoEndpointId = member.videoEndpointId, self.readyVideoNodes.contains(videoEndpointId) { - if !self.videoNodesOrder.contains(videoEndpointId) { - self.videoNodesOrder.append(videoEndpointId) + if !self.videoOrder.contains(videoEndpointId) { + self.videoOrder.append(videoEndpointId) } if let tileItem = ListEntry.peer(peerEntry, 0).tileItem(context: self.context, presentationData: self.presentationData, interaction: interaction, videoEndpointId: videoEndpointId) { isTile = true @@ -4204,18 +4238,18 @@ public final class VoiceChatController: ViewController { } var preList: [String] = [] - for tileVideoEndpoint in self.videoNodesOrder { + for tileVideoEndpoint in self.videoOrder { if let _ = tileByVideoEndpoint[tileVideoEndpoint] { preList.append(tileVideoEndpoint) } } if (tileByVideoEndpoint.count % 2) != 0, let last = preList.last, !self.wideVideoNodes.contains(last), let latestWide = latestWideVideo { - self.videoNodesOrder.removeAll(where: { $0 == latestWide }) - self.videoNodesOrder.append(latestWide) + self.videoOrder.removeAll(where: { $0 == latestWide }) + self.videoOrder.append(latestWide) } - for tileVideoEndpoint in self.videoNodesOrder { + for tileVideoEndpoint in self.videoOrder { if let tileItem = tileByVideoEndpoint[tileVideoEndpoint] { tileItems.append(tileItem) if let fullscreenEntry = entryByPeerId[tileItem.peer.id] { @@ -4352,13 +4386,16 @@ public final class VoiceChatController: ViewController { strongSelf.readyVideoDisposables.set((videoNode.ready |> filter { $0 } |> take(1) + |> deliverOnMainQueue ).start(next: { [weak self, weak videoNode] _ in if let strongSelf = self, let videoNode = videoNode { - strongSelf.readyVideoNodes.insert(channel.endpointId) - if videoNode.aspectRatio > 1.25 { - strongSelf.wideVideoNodes.insert(channel.endpointId) + Queue.mainQueue().after(0.1) { + strongSelf.readyVideoNodes.insert(channel.endpointId) + if videoNode.aspectRatio <= 0.77 { + strongSelf.wideVideoNodes.insert(channel.endpointId) + } + strongSelf.updateMembers() } - strongSelf.updateMembers() } }), forKey: channel.endpointId) strongSelf.videoNodes[channel.endpointId] = videoNode @@ -4386,6 +4423,8 @@ public final class VoiceChatController: ViewController { for (videoEndpointId, _) in self.videoNodes { if !validSources.contains(videoEndpointId) { self.videoNodes[videoEndpointId] = nil + self.videoOrder.removeAll(where: { $0 == videoEndpointId }) + self.readyVideoNodes.remove(videoEndpointId) self.readyVideoDisposables.set(nil, forKey: videoEndpointId) } } @@ -4637,7 +4676,7 @@ public final class VoiceChatController: ViewController { } } } else if !self.isScheduling && (velocity.y < -300.0 || offset < topInset / 2.0) { - if velocity.y > -1500.0 && !self.isFullscreen { + if velocity.y > -2200.0 && !self.isFullscreen { DispatchQueue.main.async { self.listNode.transaction(deleteIndices: [], insertIndicesAndItems: [], updateIndicesAndItems: [], options: [.Synchronous, .LowLatency], scrollToItem: ListViewScrollToItem(index: 0, position: .top(0.0), animated: true, curve: .Default(duration: nil), directionHint: .Up), updateSizeAndInsets: nil, stationaryItemRange: nil, updateOpaqueState: nil, completion: { _ in }) } @@ -5057,20 +5096,20 @@ public final class VoiceChatController: ViewController { self.updateDecorationsLayout(transition: .immediate) - var minimalVisiblePeerid: (PeerId, CGFloat)? + var minimalVisiblePeerid: (PeerId, CGPoint)? var verticalItemNodes: [PeerId: ASDisplayNode] = [:] self.listNode.forEachItemNode { itemNode in if let itemNode = itemNode as? VoiceChatTilesGridItemNode { for tileNode in itemNode.tileNodes { let convertedFrame = tileNode.view.convert(tileNode.bounds, to: self.transitionContainerNode.view) if let item = tileNode.item { - if let (_, y) = minimalVisiblePeerid { - if convertedFrame.minY >= 0.0 && convertedFrame.minY < y { - minimalVisiblePeerid = (item.peer.id, convertedFrame.minY) + if let (_, point) = minimalVisiblePeerid { + if convertedFrame.minY >= 0.0 && (convertedFrame.minY < point.y || (convertedFrame.minY == point.y && convertedFrame.minX < point.x)) { + minimalVisiblePeerid = (item.peer.id, convertedFrame.origin) } } else { if convertedFrame.minY >= 0.0 { - minimalVisiblePeerid = (item.peer.id, convertedFrame.minY) + minimalVisiblePeerid = (item.peer.id, convertedFrame.origin) } } verticalItemNodes[item.peer.id] = tileNode @@ -5078,13 +5117,13 @@ public final class VoiceChatController: ViewController { } } else if let itemNode = itemNode as? VoiceChatParticipantItemNode, let item = itemNode.item { let convertedFrame = itemNode.view.convert(itemNode.bounds, to: self.transitionContainerNode.view) - if let (_, y) = minimalVisiblePeerid { - if convertedFrame.minY >= 0.0 && convertedFrame.minY < y { - minimalVisiblePeerid = (item.peer.id, convertedFrame.minY) + if let (_, point) = minimalVisiblePeerid { + if convertedFrame.minY >= 0.0 && convertedFrame.minY < point.y { + minimalVisiblePeerid = (item.peer.id, convertedFrame.origin) } } else { if convertedFrame.minY >= 0.0 { - minimalVisiblePeerid = (item.peer.id, convertedFrame.minY) + minimalVisiblePeerid = (item.peer.id, convertedFrame.origin) } } verticalItemNodes[item.peer.id] = itemNode @@ -5104,30 +5143,44 @@ public final class VoiceChatController: ViewController { self.fullscreenListNode.forEachItemNode { itemNode in if let itemNode = itemNode as? VoiceChatFullscreenParticipantItemNode, let item = itemNode.item, let otherItemNode = verticalItemNodes[item.peer.id] { - itemNode.animateTransitionIn(from: otherItemNode, containerNode: self, transition: transition, animate: item.peer.id != effectiveSpeakerPeerId) + itemNode.animateTransitionIn(from: otherItemNode, containerNode: self.transitionContainerNode, transition: transition, animate: item.peer.id != effectiveSpeakerPeerId) } } + + self.transitionMaskBottomFillLayer.animateAlpha(from: 0.0, to: 1.0, duration: 0.3, removeOnCompletion: false, completion: { [weak self] _ in + Queue.mainQueue().after(0.2) { + self?.transitionMaskBottomFillLayer.removeAllAnimations() + } + }) if let (layout, navigationHeight) = self.validLayout { self.containerLayoutUpdated(layout, navigationHeight: navigationHeight, transition: transition) self.updateDecorationsLayout(transition: transition) } } - if false, let (peerId, _) = minimalVisiblePeerid { +// if let (peerId, _) = minimalVisiblePeerid { + let effectiveSpeakerPeerId = self.effectiveSpeaker?.0 var index = 0 - for item in self.currentEntries { - if case let .peer(entry, _) = item, entry.peer.id == peerId { + for item in self.currentFullscreenEntries { + if case let .peer(entry, _) = item, entry.peer.id == effectiveSpeakerPeerId { break } else { index += 1 } } - self.fullscreenListNode.transaction(deleteIndices: [], insertIndicesAndItems: [], updateIndicesAndItems: [], options: [.Synchronous, .LowLatency], scrollToItem: ListViewScrollToItem(index: index, position: .top(0.0), animated: false, curve: .Default(duration: nil), directionHint: .Up), updateSizeAndInsets: nil, stationaryItemRange: nil, updateOpaqueState: nil, completion: { _ in + let position: ListViewScrollPosition + if index > self.currentFullscreenEntries.count - 3 { + index = self.currentFullscreenEntries.count - 1 + position = .bottom(0.0) + } else { + position = .center(.bottom) + } + self.fullscreenListNode.transaction(deleteIndices: [], insertIndicesAndItems: [], updateIndicesAndItems: [], options: [.Synchronous, .LowLatency], scrollToItem: ListViewScrollToItem(index: index, position: position, animated: false, curve: .Default(duration: nil), directionHint: .Up), updateSizeAndInsets: nil, stationaryItemRange: nil, updateOpaqueState: nil, completion: { _ in completion() }) - } else { - completion() - } +// } else { +// completion() +// } } else if case .fullscreen = previousDisplayMode, case .modal = self.displayMode { var minimalVisiblePeerid: (PeerId, CGFloat)? var fullscreenItemNodes: [PeerId: VoiceChatFullscreenParticipantItemNode] = [:] @@ -5151,6 +5204,8 @@ public final class VoiceChatController: ViewController { let effectiveSpeakerPeerId = self.effectiveSpeaker?.0 var targetTileNode: VoiceChatTileItemNode? + self.transitionContainerNode.addSubnode(self.mainStageNode) + self.listNode.forEachItemNode { itemNode in if let itemNode = itemNode as? VoiceChatTilesGridItemNode { for tileNode in itemNode.tileNodes { @@ -5168,15 +5223,25 @@ public final class VoiceChatController: ViewController { } self.mainStageNode.animateTransitionOut(to: targetTileNode, transition: transition, completion: { [weak self] in - self?.effectiveSpeaker = nil - self?.mainStageNode.update(peer: nil, waitForFullSize: false) - self?.fullscreenListNode.isHidden = true - self?.mainStageContainerNode.isHidden = true + guard let strongSelf = self else { + return + } + strongSelf.effectiveSpeaker = nil + strongSelf.mainStageNode.update(peer: nil, waitForFullSize: false) + strongSelf.fullscreenListNode.isHidden = true + strongSelf.mainStageContainerNode.isHidden = true + strongSelf.mainStageContainerNode.addSubnode(strongSelf.mainStageNode) }) self.mainStageBackgroundNode.alpha = 0.0 self.mainStageBackgroundNode.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.2) + self.transitionMaskTopFillLayer.animateAlpha(from: 1.0, to: 0.0, duration: 0.3, removeOnCompletion: false, completion: { [weak self] _ in + Queue.mainQueue().after(0.2) { + self?.transitionMaskTopFillLayer.removeAllAnimations() + } + }) + if let (layout, navigationHeight) = self.validLayout { self.containerLayoutUpdated(layout, navigationHeight: navigationHeight, transition: transition) self.updateDecorationsLayout(transition: transition) diff --git a/submodules/TelegramCallsUI/Sources/VoiceChatFullscreenParticipantItem.swift b/submodules/TelegramCallsUI/Sources/VoiceChatFullscreenParticipantItem.swift index 517f8c2fe4..290a7ddd68 100644 --- a/submodules/TelegramCallsUI/Sources/VoiceChatFullscreenParticipantItem.swift +++ b/submodules/TelegramCallsUI/Sources/VoiceChatFullscreenParticipantItem.swift @@ -42,15 +42,20 @@ private let borderImage = generateImage(CGSize(width: tileSize.width, height: ti context.strokePath() }) -private let fadeImage = generateImage(CGSize(width: 1.0, height: 30.0), rotatedContext: { size, context in - let bounds = CGRect(origin: CGPoint(), size: size) - context.clear(bounds) - - let colorsArray = [UIColor(rgb: 0x000000, alpha: 0.0).cgColor, UIColor(rgb: 0x000000, alpha: 0.7).cgColor] as CFArray - var locations: [CGFloat] = [0.0, 1.0] - let gradient = CGGradient(colorsSpace: deviceColorSpace, colors: colorsArray, locations: &locations)! - context.drawLinearGradient(gradient, start: CGPoint(), end: CGPoint(x: 0.0, y: size.height), options: CGGradientDrawingOptions()) -}) +private let fadeColor = UIColor(rgb: 0x000000, alpha: 0.5) +private let fadeHeight: CGFloat = 50.0 + +private var fadeImage: UIImage? = { + return generateImage(CGSize(width: fadeHeight, height: fadeHeight), rotatedContext: { size, context in + let bounds = CGRect(origin: CGPoint(), size: size) + context.clear(bounds) + + let colorsArray = [fadeColor.withAlphaComponent(0.0).cgColor, fadeColor.cgColor] as CFArray + var locations: [CGFloat] = [1.0, 0.0] + let gradient = CGGradient(colorsSpace: deviceColorSpace, colors: colorsArray, locations: &locations)! + context.drawLinearGradient(gradient, start: CGPoint(), end: CGPoint(x: 0.0, y: size.height), options: CGGradientDrawingOptions()) + }) +}() final class VoiceChatFullscreenParticipantItem: ListViewItem { enum Icon { @@ -168,7 +173,7 @@ class VoiceChatFullscreenParticipantItemNode: ItemListRevealOptionsItemNode { private var raiseHandNode: VoiceChatRaiseHandNode? private var actionButtonNode: HighlightableButtonNode - private var audioLevelView: VoiceBlobView? + var audioLevelView: VoiceBlobView? private let audioLevelDisposable = MetaDisposable() private var didSetupAudioLevel = false @@ -181,7 +186,7 @@ class VoiceChatFullscreenParticipantItemNode: ItemListRevealOptionsItemNode { private var wavesColor: UIColor? let videoContainerNode: ASDisplayNode - private let videoFadeNode: ASImageNode + private let videoFadeNode: ASDisplayNode var videoNode: GroupVideoNode? private let videoReadyDisposable = MetaDisposable() private var videoReadyDelayed = false @@ -225,12 +230,12 @@ class VoiceChatFullscreenParticipantItemNode: ItemListRevealOptionsItemNode { self.videoContainerNode = ASDisplayNode() self.videoContainerNode.clipsToBounds = true - self.videoFadeNode = ASImageNode() + self.videoFadeNode = ASDisplayNode() self.videoFadeNode.displaysAsynchronously = false - self.videoFadeNode.displayWithoutProcessing = true - self.videoFadeNode.contentMode = .scaleToFill - self.videoFadeNode.image = fadeImage - self.videoContainerNode.addSubnode(videoFadeNode) + if let image = fadeImage { + self.videoFadeNode.backgroundColor = UIColor(patternImage: image) + } + self.videoContainerNode.addSubnode(self.videoFadeNode) self.titleNode = TextNode() self.titleNode.isUserInteractionEnabled = false @@ -310,7 +315,7 @@ class VoiceChatFullscreenParticipantItemNode: ItemListRevealOptionsItemNode { if let sourceNode = sourceNode as? VoiceChatTileItemNode { var startContainerPosition = sourceNode.view.convert(sourceNode.bounds, to: containerNode.view).center var animate = initialAnimate - if startContainerPosition.y > containerNode.frame.height - 238.0 { + if startContainerPosition.y < -tileHeight || startContainerPosition.y > containerNode.frame.height + tileHeight { animate = false } @@ -373,13 +378,14 @@ class VoiceChatFullscreenParticipantItemNode: ItemListRevealOptionsItemNode { } else if let sourceNode = sourceNode as? VoiceChatParticipantItemNode, let _ = sourceNode.item { var startContainerPosition = sourceNode.avatarNode.view.convert(sourceNode.avatarNode.bounds, to: containerNode.view).center var animate = true - if startContainerPosition.y > containerNode.frame.height - 238.0 { + if startContainerPosition.y > containerNode.frame.height { animate = false } startContainerPosition = startContainerPosition.offsetBy(dx: 0.0, dy: 9.0) if animate { sourceNode.avatarNode.alpha = 0.0 + sourceNode.audioLevelView?.alpha = 0.0 let initialPosition = self.contextSourceNode.position let targetContainerPosition = self.contextSourceNode.view.convert(self.contextSourceNode.bounds, to: containerNode.view).center @@ -388,8 +394,9 @@ class VoiceChatFullscreenParticipantItemNode: ItemListRevealOptionsItemNode { containerNode.addSubnode(self.contextSourceNode) self.contextSourceNode.layer.animatePosition(from: startContainerPosition, to: targetContainerPosition, duration: duration, timingFunction: timingFunction, completion: { [weak self, weak sourceNode] _ in - if let strongSelf = self { - sourceNode?.avatarNode.alpha = 1.0 + if let strongSelf = self, let sourceNode = sourceNode { + sourceNode.avatarNode.alpha = 1.0 + sourceNode.audioLevelView?.alpha = 1.0 strongSelf.contextSourceNode.position = initialPosition strongSelf.containerNode.addSubnode(strongSelf.contextSourceNode) } @@ -668,7 +675,7 @@ class VoiceChatFullscreenParticipantItemNode: ItemListRevealOptionsItemNode { audioLevelView.updateLevel(CGFloat(value)) let avatarScale: CGFloat - if value > 0.0 { + if value > 0.02 { audioLevelView.startAnimating() avatarScale = 1.03 + level * 0.13 if let wavesColor = strongSelf.wavesColor { @@ -683,7 +690,7 @@ class VoiceChatFullscreenParticipantItemNode: ItemListRevealOptionsItemNode { avatarScale = 1.0 if strongSelf.silenceTimer == nil { let silenceTimer = SwiftSignalKit.Timer(timeout: 1.0, repeat: false, completion: { [weak self] in - self?.audioLevelView?.stopAnimating(duration: 0.5) + self?.audioLevelView?.stopAnimating(duration: 0.75) self?.silenceTimer = nil }, queue: Queue.mainQueue()) strongSelf.silenceTimer = silenceTimer @@ -810,7 +817,7 @@ class VoiceChatFullscreenParticipantItemNode: ItemListRevealOptionsItemNode { let videoContainerScale = tileSize.width / videoSize.width if !strongSelf.isExtracted && !strongSelf.animatingExtraction { - strongSelf.videoFadeNode.frame = CGRect(x: 0.0, y: videoSize.height - 75.0, width: videoSize.width, height: 75.0) + strongSelf.videoFadeNode.frame = CGRect(x: 0.0, y: videoSize.height - fadeHeight, width: videoSize.width, height: fadeHeight) strongSelf.videoContainerNode.bounds = CGRect(origin: CGPoint(), size: videoSize) if let videoNode = strongSelf.videoNode { diff --git a/submodules/TelegramCallsUI/Sources/VoiceChatMainStageNode.swift b/submodules/TelegramCallsUI/Sources/VoiceChatMainStageNode.swift index 260f94e4f2..280c41595f 100644 --- a/submodules/TelegramCallsUI/Sources/VoiceChatMainStageNode.swift +++ b/submodules/TelegramCallsUI/Sources/VoiceChatMainStageNode.swift @@ -19,19 +19,23 @@ import AudioBlob private let backArrowImage = NavigationBarTheme.generateBackArrowImage(color: .white) private let backgroundCornerRadius: CGFloat = 11.0 +private let fadeColor = UIColor(rgb: 0x000000, alpha: 0.5) +private let fadeHeight: CGFloat = 50.0 final class VoiceChatMainStageNode: ASDisplayNode { private let context: AccountContext private let call: PresentationGroupCall private var currentPeer: (PeerId, String?)? private var currentPeerEntry: VoiceChatPeerEntry? + + var callState: PresentationGroupCallState? private var currentVideoNode: GroupVideoNode? - private var candidateVideoNode: GroupVideoNode? private let backgroundNode: ASDisplayNode - private let topFadeNode: ASImageNode - private let bottomFadeNode: ASImageNode + private let topFadeNode: ASDisplayNode + private let bottomFadeNode: ASDisplayNode + private let bottomFillNode: ASDisplayNode private let headerNode: ASDisplayNode private let backButtonNode: HighlightableButtonNode private let backButtonArrowNode: ASImageNode @@ -42,10 +46,12 @@ final class VoiceChatMainStageNode: ASDisplayNode { private let audioLevelDisposable = MetaDisposable() private let speakingPeerDisposable = MetaDisposable() private let speakingAudioLevelDisposable = MetaDisposable() - private var avatarNode: AvatarNode + private var avatarNode: ASImageNode private let titleNode: ImmediateTextNode private let microphoneNode: VoiceChatMicrophoneNode + private let avatarDisposable = MetaDisposable() + private let speakingContainerNode: ASDisplayNode private var speakingEffectView: UIVisualEffectView? private let speakingAvatarNode: AvatarNode @@ -70,34 +76,37 @@ final class VoiceChatMainStageNode: ASDisplayNode { self.backgroundNode.alpha = 0.0 self.backgroundNode.backgroundColor = UIColor(rgb: 0x1c1c1e) - self.topFadeNode = ASImageNode() + self.topFadeNode = ASDisplayNode() self.topFadeNode.alpha = 0.0 self.topFadeNode.displaysAsynchronously = false - self.topFadeNode.displayWithoutProcessing = true - self.topFadeNode.contentMode = .scaleToFill - self.topFadeNode.image = generateImage(CGSize(width: 1.0, height: 50.0), rotatedContext: { size, context in + if let image = generateImage(CGSize(width: fadeHeight, height: fadeHeight), rotatedContext: { size, context in let bounds = CGRect(origin: CGPoint(), size: size) context.clear(bounds) - let colorsArray = [UIColor(rgb: 0x000000, alpha: 0.7).cgColor, UIColor(rgb: 0x000000, alpha: 0.0).cgColor] as CFArray - var locations: [CGFloat] = [0.0, 1.0] + let colorsArray = [fadeColor.cgColor, fadeColor.withAlphaComponent(0.0).cgColor] as CFArray + var locations: [CGFloat] = [1.0, 0.0] let gradient = CGGradient(colorsSpace: deviceColorSpace, colors: colorsArray, locations: &locations)! context.drawLinearGradient(gradient, start: CGPoint(), end: CGPoint(x: 0.0, y: size.height), options: CGGradientDrawingOptions()) - }) + }) { + self.topFadeNode.backgroundColor = UIColor(patternImage: image) + } - self.bottomFadeNode = ASImageNode() + self.bottomFadeNode = ASDisplayNode() self.bottomFadeNode.displaysAsynchronously = false - self.bottomFadeNode.displayWithoutProcessing = true - self.bottomFadeNode.contentMode = .scaleToFill - self.bottomFadeNode.image = generateImage(CGSize(width: 1.0, height: 50.0), rotatedContext: { size, context in + if let image = generateImage(CGSize(width: fadeHeight, height: fadeHeight), rotatedContext: { size, context in let bounds = CGRect(origin: CGPoint(), size: size) context.clear(bounds) - let colorsArray = [UIColor(rgb: 0x000000, alpha: 0.0).cgColor, UIColor(rgb: 0x000000, alpha: 0.7).cgColor] as CFArray - var locations: [CGFloat] = [0.0, 1.0] + let colorsArray = [fadeColor.withAlphaComponent(0.0).cgColor, fadeColor.cgColor] as CFArray + var locations: [CGFloat] = [1.0, 0.0] let gradient = CGGradient(colorsSpace: deviceColorSpace, colors: colorsArray, locations: &locations)! context.drawLinearGradient(gradient, start: CGPoint(), end: CGPoint(x: 0.0, y: size.height), options: CGGradientDrawingOptions()) - }) + }) { + self.bottomFadeNode.backgroundColor = UIColor(patternImage: image) + } + + self.bottomFillNode = ASDisplayNode() + self.bottomFillNode.backgroundColor = fadeColor self.headerNode = ASDisplayNode() self.headerNode.alpha = 0.0 @@ -117,7 +126,8 @@ final class VoiceChatMainStageNode: ASDisplayNode { self.pinButtonTitleNode.attributedText = NSAttributedString(string: "Unpin", font: Font.regular(17.0), textColor: .white) self.pinButtonNode = HighlightableButtonNode() - self.avatarNode = AvatarNode(font: avatarPlaceholderFont(size: 42.0)) + self.avatarNode = ASImageNode() + self.avatarNode.displaysAsynchronously = false self.avatarNode.isHidden = true self.titleNode = ImmediateTextNode() @@ -144,6 +154,7 @@ final class VoiceChatMainStageNode: ASDisplayNode { self.addSubnode(self.backgroundNode) self.addSubnode(self.topFadeNode) self.addSubnode(self.bottomFadeNode) + self.addSubnode(self.bottomFillNode) self.addSubnode(self.avatarNode) self.addSubnode(self.titleNode) self.addSubnode(self.microphoneNode) @@ -194,6 +205,7 @@ final class VoiceChatMainStageNode: ASDisplayNode { } deinit { + self.avatarDisposable.dispose() self.videoReadyDisposable.dispose() self.audioLevelDisposable.dispose() self.speakingPeerDisposable.dispose() @@ -233,7 +245,7 @@ final class VoiceChatMainStageNode: ASDisplayNode { return } - let alphaTransition = ContainedViewLayoutTransition.animated(duration: 0.2, curve: .linear) + let alphaTransition = ContainedViewLayoutTransition.animated(duration: 0.2, curve: .easeInOut) alphaTransition.updateAlpha(node: self.backgroundNode, alpha: 1.0) alphaTransition.updateAlpha(node: self.topFadeNode, alpha: 1.0) alphaTransition.updateAlpha(node: self.titleNode, alpha: 1.0) @@ -271,7 +283,7 @@ final class VoiceChatMainStageNode: ASDisplayNode { return } - let alphaTransition = ContainedViewLayoutTransition.animated(duration: 0.2, curve: .linear) + let alphaTransition = ContainedViewLayoutTransition.animated(duration: 0.2, curve: .easeInOut) alphaTransition.updateAlpha(node: self.backgroundNode, alpha: 0.0) alphaTransition.updateAlpha(node: self.topFadeNode, alpha: 0.0) alphaTransition.updateAlpha(node: self.titleNode, alpha: 0.0) @@ -326,9 +338,33 @@ final class VoiceChatMainStageNode: ASDisplayNode { return } - var wavesColor = UIColor(rgb: 0x34c759) if let getAudioLevel = self.getAudioLevel, let peerId = speakingPeerId { - self.speakingAudioLevelView?.removeFromSuperview() + let wavesColor = UIColor(rgb: 0x34c759) + if let speakingAudioLevelView = self.speakingAudioLevelView { + speakingAudioLevelView.removeFromSuperview() + self.speakingAudioLevelView = nil + } + + self.speakingPeerDisposable.set((self.context.account.postbox.loadedPeerWithId(peerId) + |> deliverOnMainQueue).start(next: { [weak self] peer in + guard let strongSelf = self else { + return + } + + let presentationData = strongSelf.context.sharedContext.currentPresentationData.with { $0 } + strongSelf.speakingAvatarNode.setPeer(context: strongSelf.context, theme: presentationData.theme, peer: peer) + strongSelf.speakingTitleNode.attributedText = NSAttributedString(string: peer.displayTitle(strings: presentationData.strings, displayOrder: presentationData.nameDisplayOrder), font: Font.regular(14.0), textColor: .white) + + strongSelf.speakingContainerNode.alpha = 0.0 + + if let (size, sideInset, bottomInset, isLandscape) = strongSelf.validLayout { + strongSelf.update(size: size, sideInset: sideInset, bottomInset: bottomInset, isLandscape: isLandscape, transition: .immediate) + } + + strongSelf.speakingContainerNode.alpha = 1.0 + strongSelf.speakingContainerNode.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.3) + strongSelf.speakingContainerNode.layer.animateScale(from: 0.01, to: 1.0, duration: 0.3, timingFunction: kCAMediaTimingFunctionSpring) + })) let blobFrame = self.speakingAvatarNode.frame.insetBy(dx: -14.0, dy: -14.0) self.speakingAudioLevelDisposable.set((getAudioLevel(peerId) @@ -373,10 +409,19 @@ final class VoiceChatMainStageNode: ASDisplayNode { })) } else { self.speakingPeerDisposable.set(nil) + self.speakingAudioLevelDisposable.set(nil) - if let audioLevelView = self.audioLevelView { - audioLevelView.removeFromSuperview() - self.audioLevelView = nil + let audioLevelView = self.audioLevelView + self.audioLevelView = nil + + if !self.speakingContainerNode.alpha.isZero { + self.speakingContainerNode.alpha = 0.0 + self.speakingContainerNode.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.3, completion: { _ in + audioLevelView?.removeFromSuperview() + }) + self.speakingContainerNode.layer.animateScale(from: 1.0, to: 0.01, duration: 0.3) + } else { + audioLevelView?.removeFromSuperview() } } } @@ -387,16 +432,12 @@ final class VoiceChatMainStageNode: ASDisplayNode { if !arePeersEqual(previousPeerEntry?.peer, peerEntry.peer) { let peer = peerEntry.peer let presentationData = self.context.sharedContext.currentPresentationData.with { $0 } - if previousPeerEntry?.peer.id == peerEntry.peer.id { - self.avatarNode.setPeer(context: self.context, theme: presentationData.theme, peer: peer) - } else { - let previousAvatarNode = self.avatarNode - self.avatarNode = AvatarNode(font: avatarPlaceholderFont(size: 42.0)) - self.avatarNode.setPeer(context: self.context, theme: presentationData.theme, peer: peer, synchronousLoad: true) - self.avatarNode.frame = previousAvatarNode.frame - previousAvatarNode.supernode?.insertSubnode(self.avatarNode, aboveSubnode: previousAvatarNode) - previousAvatarNode.removeFromSupernode() - } + self.avatarDisposable.set((peerAvatarCompleteImage(account: self.context.account, peer: peer, size: CGSize(width: 180.0, height: 180.0), font: avatarPlaceholderFont(size: 78.0), fullSize: true) + |> deliverOnMainQueue).start(next: { [weak self] image in + if let strongSelf = self { + strongSelf.avatarNode.image = image + } + })) self.titleNode.attributedText = NSAttributedString(string: peer.displayTitle(strings: presentationData.strings, displayOrder: presentationData.nameDisplayOrder), font: Font.semibold(15.0), textColor: .white) if let (size, sideInset, bottomInset, isLandscape) = self.validLayout { self.update(size: size, sideInset: sideInset, bottomInset: bottomInset, isLandscape: isLandscape, transition: .immediate) @@ -408,7 +449,10 @@ final class VoiceChatMainStageNode: ASDisplayNode { var wavesColor = UIColor(rgb: 0x34c759) if let getAudioLevel = self.getAudioLevel, previousPeerEntry?.peer.id != peerEntry.peer.id { - self.audioLevelView?.removeFromSuperview() + if let audioLevelView = self.audioLevelView { + self.audioLevelView = nil + audioLevelView.removeFromSuperview() + } let blobFrame = self.avatarNode.frame.insetBy(dx: -60.0, dy: -60.0) self.audioLevelDisposable.set((getAudioLevel(peerEntry.peer.id) @@ -452,7 +496,7 @@ final class VoiceChatMainStageNode: ASDisplayNode { avatarScale = 1.0 if strongSelf.silenceTimer == nil { let silenceTimer = SwiftSignalKit.Timer(timeout: 1.0, repeat: false, completion: { [weak self] in - self?.audioLevelView?.stopAnimating(duration: 0.5) + self?.audioLevelView?.stopAnimating(duration: 0.75) self?.silenceTimer = nil }, queue: Queue.mainQueue()) strongSelf.silenceTimer = silenceTimer @@ -612,11 +656,12 @@ final class VoiceChatMainStageNode: ASDisplayNode { transition.updateFrame(node: self.microphoneNode, frame: CGRect(origin: CGPoint(x: sideInset + 7.0, y: size.height - bottomInset - animationSize.height - 6.0), size: animationSize)) - var fadeHeight: CGFloat = 50.0 - if size.height != 180.0 && size.width < size.height { - fadeHeight = 140.0 + var totalFadeHeight: CGFloat = fadeHeight + if size.height != tileHeight && size.width < size.height { + totalFadeHeight += bottomInset } - transition.updateFrame(node: self.bottomFadeNode, frame: CGRect(x: 0.0, y: size.height - fadeHeight, width: size.width, height: fadeHeight)) + transition.updateFrame(node: self.bottomFadeNode, frame: CGRect(x: 0.0, y: size.height - totalFadeHeight, width: size.width, height: fadeHeight)) + transition.updateFrame(node: self.bottomFillNode, frame: CGRect(x: 0.0, y: size.height - totalFadeHeight + fadeHeight, width: size.width, height: max(0.0, totalFadeHeight - fadeHeight))) transition.updateFrame(node: self.topFadeNode, frame: CGRect(x: 0.0, y: 0.0, width: size.width, height: 50.0)) let backSize = self.backButtonNode.measure(CGSize(width: 320.0, height: 100.0)) @@ -635,4 +680,11 @@ final class VoiceChatMainStageNode: ASDisplayNode { transition.updateFrame(node: self.headerNode, frame: CGRect(origin: CGPoint(), size: CGSize(width: size.width, height: 64.0))) } + + func flipVideoIfNeeded() { + guard self.currentPeer?.0 == self.callState?.myPeerId else { + return + } + self.currentVideoNode?.flip(withBackground: false) + } } diff --git a/submodules/TelegramCallsUI/Sources/VoiceChatParticipantItem.swift b/submodules/TelegramCallsUI/Sources/VoiceChatParticipantItem.swift index a9593d69b8..6871b9523f 100644 --- a/submodules/TelegramCallsUI/Sources/VoiceChatParticipantItem.swift +++ b/submodules/TelegramCallsUI/Sources/VoiceChatParticipantItem.swift @@ -245,6 +245,7 @@ class VoiceChatParticipantStatusNode: ASDisplayNode { class VoiceChatParticipantItemNode: ItemListRevealOptionsItemNode { private let topStripeNode: ASDisplayNode private let bottomStripeNode: ASDisplayNode + private let highlightContainerNode: ASDisplayNode private let highlightedBackgroundNode: ASDisplayNode let contextSourceNode: ContextExtractedContentContainingNode @@ -275,7 +276,7 @@ class VoiceChatParticipantItemNode: ItemListRevealOptionsItemNode { private var raiseHandNode: VoiceChatRaiseHandNode? private var actionButtonNode: HighlightableButtonNode - private var audioLevelView: VoiceBlobView? + var audioLevelView: VoiceBlobView? private let audioLevelDisposable = MetaDisposable() private var didSetupAudioLevel = false @@ -337,13 +338,17 @@ class VoiceChatParticipantItemNode: ItemListRevealOptionsItemNode { self.actionContainerNode = ASDisplayNode() self.actionButtonNode = HighlightableButtonNode() + self.highlightContainerNode = ASDisplayNode() + self.highlightContainerNode.clipsToBounds = true + self.highlightedBackgroundNode = ASDisplayNode() - self.highlightedBackgroundNode.isLayerBacked = true super.init(layerBacked: false, dynamicBounce: false, rotated: false, seeThrough: false) self.isAccessibilityElement = true + self.highlightContainerNode.addSubnode(self.highlightedBackgroundNode) + self.containerNode.addSubnode(self.contextSourceNode) self.containerNode.targetNodeForActivationProgress = self.contextSourceNode.contentNode self.addSubnode(self.containerNode) @@ -516,6 +521,7 @@ class VoiceChatParticipantItemNode: ItemListRevealOptionsItemNode { avatarListNode.controlsClippingNode.frame = CGRect(x: -targetRect.width / 2.0, y: -targetRect.height / 2.0, width: targetRect.width, height: targetRect.height) avatarListNode.controlsClippingOffsetNode.frame = CGRect(origin: CGPoint(x: targetRect.width / 2.0, y: targetRect.height / 2.0), size: CGSize()) avatarListNode.stripContainerNode.frame = CGRect(x: 0.0, y: 13.0, width: targetRect.width, height: 2.0) + avatarListNode.shadowNode.frame = CGRect(x: 0.0, y: 0.0, width: targetRect.width, height: 44.0) avatarListContainerNode.addSubnode(avatarListNode) avatarListContainerNode.addSubnode(avatarListNode.controlsClippingOffsetNode) @@ -650,6 +656,14 @@ class VoiceChatParticipantItemNode: ItemListRevealOptionsItemNode { self.silenceTimer?.invalidate() } + override func didLoad() { + super.didLoad() + + if #available(iOS 13.0, *) { + self.highlightContainerNode.layer.cornerCurve = .continuous + } + } + override func selected() { super.selected() self.layoutParams?.0.action?(self.contextSourceNode) @@ -673,7 +687,8 @@ class VoiceChatParticipantItemNode: ItemListRevealOptionsItemNode { } if animate { sourceNode.avatarNode.alpha = 0.0 - + sourceNode.audioLevelView?.alpha = 0.0 + let initialAvatarPosition = self.avatarNode.position let initialBackgroundPosition = sourceNode.backgroundImageNode.position let initialContentPosition = sourceNode.contentWrapperNode.position @@ -706,11 +721,19 @@ class VoiceChatParticipantItemNode: ItemListRevealOptionsItemNode { sourceNode.contentWrapperNode.layer.animatePosition(from: startContainerContentPosition, to: targetContainerAvatarPosition, duration: duration, timingFunction: timingFunction, completion: { [weak sourceNode] _ in if let sourceNode = sourceNode { sourceNode.avatarNode.alpha = 1.0 + sourceNode.audioLevelView?.alpha = 1.0 sourceNode.contentWrapperNode.position = initialContentPosition sourceNode.offsetContainerNode.insertSubnode(sourceNode.contentWrapperNode, aboveSubnode: sourceNode.videoContainerNode) } }) + if let audioLevelView = self.audioLevelView { + audioLevelView.center = targetContainerAvatarPosition + containerNode.view.addSubview(audioLevelView) + + audioLevelView.layer.animateScale(from: 1.25, to: 1.0, duration: duration, timingFunction: timingFunction) + audioLevelView.layer.animatePosition(from: startContainerAvatarPosition, to: targetContainerAvatarPosition, duration: duration, timingFunction: timingFunction, removeOnCompletion: false) + } self.avatarNode.position = targetContainerAvatarPosition containerNode.addSubnode(self.avatarNode) @@ -719,6 +742,11 @@ class VoiceChatParticipantItemNode: ItemListRevealOptionsItemNode { if let strongSelf = self { strongSelf.avatarNode.position = initialAvatarPosition strongSelf.offsetContainerNode.addSubnode(strongSelf.avatarNode) + if let audioLevelView = strongSelf.audioLevelView { + audioLevelView.layer.removeAllAnimations() + audioLevelView.center = initialAvatarPosition + strongSelf.offsetContainerNode.view.insertSubview(audioLevelView, at: 0) + } } }) @@ -1031,7 +1059,7 @@ class VoiceChatParticipantItemNode: ItemListRevealOptionsItemNode { audioLevelView.updateLevel(CGFloat(value)) let avatarScale: CGFloat - if value > 0.0 { + if value > 0.02 { audioLevelView.startAnimating() avatarScale = 1.03 + level * 0.13 if let wavesColor = strongSelf.wavesColor { @@ -1046,7 +1074,7 @@ class VoiceChatParticipantItemNode: ItemListRevealOptionsItemNode { avatarScale = 1.0 if strongSelf.silenceTimer == nil { let silenceTimer = SwiftSignalKit.Timer(timeout: 1.0, repeat: false, completion: { [weak self] in - self?.audioLevelView?.stopAnimating(duration: 0.5) + self?.audioLevelView?.stopAnimating(duration: 0.75) self?.silenceTimer = nil }, queue: Queue.mainQueue()) strongSelf.silenceTimer = silenceTimer @@ -1072,7 +1100,11 @@ class VoiceChatParticipantItemNode: ItemListRevealOptionsItemNode { } strongSelf.avatarNode.setPeer(context: item.context, theme: item.presentationData.theme, peer: item.peer, overrideImage: overrideImage, emptyColor: item.presentationData.theme.list.mediaPlaceholderColor, synchronousLoad: synchronousLoad, storeUnrounded: true) - strongSelf.highlightedBackgroundNode.frame = CGRect(origin: CGPoint(x: 0.0, y: -UIScreenPixel), size: CGSize(width: params.width, height: layout.contentSize.height + UIScreenPixel + UIScreenPixel)) + strongSelf.highlightContainerNode.frame = CGRect(origin: CGPoint(x: params.leftInset, y: -UIScreenPixel), size: CGSize(width: params.width - params.leftInset - params.rightInset, height: layout.contentSize.height + UIScreenPixel + UIScreenPixel + 11.0)) + + strongSelf.highlightContainerNode.cornerRadius = first ? 11.0 : 0.0 + + strongSelf.highlightedBackgroundNode.frame = CGRect(origin: CGPoint(), size: CGSize(width: params.width, height: layout.contentSize.height + UIScreenPixel + UIScreenPixel)) var hadMicrophoneNode = false var hadRaiseHandNode = false @@ -1185,8 +1217,8 @@ class VoiceChatParticipantItemNode: ItemListRevealOptionsItemNode { var isHighlighted = false func updateIsHighlighted(transition: ContainedViewLayoutTransition) { if self.isHighlighted { - self.highlightedBackgroundNode.alpha = 1.0 - if self.highlightedBackgroundNode.supernode == nil { + self.highlightContainerNode.alpha = 1.0 + if self.highlightContainerNode.supernode == nil { var anchorNode: ASDisplayNode? if self.bottomStripeNode.supernode != nil { anchorNode = self.bottomStripeNode @@ -1194,24 +1226,24 @@ class VoiceChatParticipantItemNode: ItemListRevealOptionsItemNode { anchorNode = self.topStripeNode } if let anchorNode = anchorNode { - self.insertSubnode(self.highlightedBackgroundNode, aboveSubnode: anchorNode) + self.insertSubnode(self.highlightContainerNode, aboveSubnode: anchorNode) } else { - self.addSubnode(self.highlightedBackgroundNode) + self.addSubnode(self.highlightContainerNode) } } } else { - if self.highlightedBackgroundNode.supernode != nil { + if self.highlightContainerNode.supernode != nil { if transition.isAnimated { - self.highlightedBackgroundNode.layer.animateAlpha(from: self.highlightedBackgroundNode.alpha, to: 0.0, duration: 0.4, completion: { [weak self] completed in + self.highlightContainerNode.layer.animateAlpha(from: self.highlightContainerNode.alpha, to: 0.0, duration: 0.4, completion: { [weak self] completed in if let strongSelf = self { if completed { - strongSelf.highlightedBackgroundNode.removeFromSupernode() + strongSelf.highlightContainerNode.removeFromSupernode() } } }) - self.highlightedBackgroundNode.alpha = 0.0 + self.highlightContainerNode.alpha = 0.0 } else { - self.highlightedBackgroundNode.removeFromSupernode() + self.highlightContainerNode.removeFromSupernode() } } } diff --git a/submodules/TelegramCallsUI/Sources/VoiceChatPeerProfileNode.swift b/submodules/TelegramCallsUI/Sources/VoiceChatPeerProfileNode.swift index 6a67e1265a..f244df10d2 100644 --- a/submodules/TelegramCallsUI/Sources/VoiceChatPeerProfileNode.swift +++ b/submodules/TelegramCallsUI/Sources/VoiceChatPeerProfileNode.swift @@ -230,7 +230,7 @@ final class VoiceChatPeerProfileNode: ASDisplayNode { self.insertSubnode(sourceNode.videoContainerNode, belowSubnode: self.avatarListWrapperNode) if let snapshotView = sourceNode.infoNode.view.snapshotView(afterScreenUpdates: false) { - self.videoFadeNode.image = sourceNode.fadeNode.image + self.videoFadeNode.image = tileFadeImage self.videoFadeNode.frame = CGRect(x: 0.0, y: sourceRect.height - sourceNode.fadeNode.frame.height, width: sourceRect.width, height: sourceNode.fadeNode.frame.height) self.insertSubnode(self.videoFadeNode, aboveSubnode: sourceNode.videoContainerNode) @@ -260,6 +260,7 @@ final class VoiceChatPeerProfileNode: ASDisplayNode { self.avatarListNode.controlsClippingNode.frame = CGRect(x: -targetRect.width / 2.0, y: -targetRect.width / 2.0, width: targetRect.width, height: targetRect.width) self.avatarListNode.controlsClippingOffsetNode.frame = CGRect(origin: CGPoint(x: targetRect.width / 2.0, y: targetRect.width / 2.0), size: CGSize()) self.avatarListNode.stripContainerNode.frame = CGRect(x: 0.0, y: 13.0, width: targetRect.width, height: 2.0) + self.avatarListNode.shadowNode.frame = CGRect(x: 0.0, y: 0.0, width: targetRect.width, height: 44.0) self.avatarListNode.update(size: targetSize, peer: self.peer, customNode: self.customNode, additionalEntry: self.additionalEntry, isExpanded: true, transition: .immediate) @@ -339,6 +340,7 @@ final class VoiceChatPeerProfileNode: ASDisplayNode { self.avatarListNode.controlsClippingNode.frame = CGRect(x: -targetRect.width / 2.0, y: -targetRect.width / 2.0, width: targetRect.width, height: targetRect.width) self.avatarListNode.controlsClippingOffsetNode.frame = CGRect(origin: CGPoint(x: targetRect.width / 2.0, y: targetRect.width / 2.0), size: CGSize()) self.avatarListNode.stripContainerNode.frame = CGRect(x: 0.0, y: 13.0, width: targetRect.width, height: 2.0) + self.avatarListNode.shadowNode.frame = CGRect(x: 0.0, y: 0.0, width: targetRect.width, height: 44.0) self.avatarListNode.update(size: targetSize, peer: self.peer, customNode: nil, additionalEntry: self.additionalEntry, isExpanded: true, transition: .immediate) @@ -409,6 +411,9 @@ final class VoiceChatPeerProfileNode: ASDisplayNode { self.avatarListNode.stripContainerNode.alpha = 0.0 self.avatarListNode.stripContainerNode.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.2) + self.avatarListNode.shadowNode.alpha = 0.0 + self.avatarListNode.shadowNode.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.2) + self.infoNode.alpha = 0.0 self.infoNode.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.2) } else if let targetNode = targetNode as? VoiceChatFullscreenParticipantItemNode { @@ -461,6 +466,9 @@ final class VoiceChatPeerProfileNode: ASDisplayNode { self.avatarListNode.stripContainerNode.alpha = 0.0 self.avatarListNode.stripContainerNode.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.2) + + self.avatarListNode.shadowNode.alpha = 0.0 + self.avatarListNode.shadowNode.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.2) self.infoNode.alpha = 0.0 self.infoNode.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.2) diff --git a/submodules/TelegramCallsUI/Sources/VoiceChatTileGridNode.swift b/submodules/TelegramCallsUI/Sources/VoiceChatTileGridNode.swift index add9c2444d..cd128944c7 100644 --- a/submodules/TelegramCallsUI/Sources/VoiceChatTileGridNode.swift +++ b/submodules/TelegramCallsUI/Sources/VoiceChatTileGridNode.swift @@ -6,7 +6,7 @@ import SwiftSignalKit import AccountContext private let tileSpacing: CGFloat = 4.0 -private let tileHeight: CGFloat = 180.0 +let tileHeight: CGFloat = 180.0 final class VoiceChatTileGridNode: ASDisplayNode { private let context: AccountContext @@ -31,6 +31,11 @@ final class VoiceChatTileGridNode: ASDisplayNode { let halfWidth = floorToScreenPixels((size.width - tileSpacing) / 2.0) let lastItemIsWide = items.count % 2 != 0 + let isFirstTime = self.isFirstTime + if isFirstTime { + self.isFirstTime = false + } + for i in 0 ..< self.items.count { let item = self.items[i] let isLast = i == self.items.count - 1 @@ -60,10 +65,8 @@ final class VoiceChatTileGridNode: ASDisplayNode { if let itemNode = itemNode { if wasAdded { itemNode.frame = itemFrame - if self.isFirstTime { - self.isFirstTime = false - } else { - itemNode.layer.animateScale(from: 0.0, to: 1.0, duration: 0.2) + if !isFirstTime { + itemNode.layer.animateScale(from: 0.0, to: 1.0, duration: 0.3) itemNode.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.2) } } else { @@ -80,7 +83,10 @@ final class VoiceChatTileGridNode: ASDisplayNode { } for id in removeIds { if let itemNode = self.itemNodes.removeValue(forKey: id) { - itemNode.removeFromSupernode() + itemNode.layer.animateScale(from: 1.0, to: 0.0, duration: 0.3, removeOnCompletion: false) + itemNode.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.2, removeOnCompletion: false, completion: { [weak itemNode] _ in + itemNode?.removeFromSupernode() + }) } } @@ -202,7 +208,7 @@ final class VoiceChatTilesGridItemNode: ListViewItemNode { strongSelf.tileGridNode = tileGridNode } - let transition: ContainedViewLayoutTransition = currentItem == nil ? .immediate : .animated(duration: 0.4, curve: .spring) + let transition: ContainedViewLayoutTransition = currentItem == nil ? .immediate : .animated(duration: 0.3, curve: .easeInOut) let tileGridSize = tileGridNode.update(size: CGSize(width: params.width - params.leftInset - params.rightInset, height: CGFloat.greatestFiniteMagnitude), items: item.tiles, transition: transition) if currentItem == nil { tileGridNode.frame = CGRect(x: params.leftInset, y: 0.0, width: tileGridSize.width, height: 0.0) diff --git a/submodules/TelegramCallsUI/Sources/VoiceChatTileItemNode.swift b/submodules/TelegramCallsUI/Sources/VoiceChatTileItemNode.swift index de6d7c5535..d4b3453be7 100644 --- a/submodules/TelegramCallsUI/Sources/VoiceChatTileItemNode.swift +++ b/submodules/TelegramCallsUI/Sources/VoiceChatTileItemNode.swift @@ -24,8 +24,6 @@ private let borderImage = generateImage(CGSize(width: 24.0, height: 24.0), rotat context.strokePath() }) -private let fadeHeight: CGFloat = 50.0 - final class VoiceChatTileItem: Equatable { enum Icon: Equatable { case none @@ -80,13 +78,16 @@ final class VoiceChatTileItem: Equatable { } } -private var fadeImage: UIImage? = { - return generateImage(CGSize(width: 1.0, height: fadeHeight), rotatedContext: { size, context in +private let fadeColor = UIColor(rgb: 0x000000, alpha: 0.5) +private let fadeHeight: CGFloat = 50.0 + +var tileFadeImage: UIImage? = { + return generateImage(CGSize(width: fadeHeight, height: fadeHeight), rotatedContext: { size, context in let bounds = CGRect(origin: CGPoint(), size: size) context.clear(bounds) - let colorsArray = [UIColor(rgb: 0x000000, alpha: 0.0).cgColor, UIColor(rgb: 0x000000, alpha: 0.7).cgColor] as CFArray - var locations: [CGFloat] = [0.0, 1.0] + let colorsArray = [fadeColor.withAlphaComponent(0.0).cgColor, fadeColor.cgColor] as CFArray + var locations: [CGFloat] = [1.0, 0.0] let gradient = CGGradient(colorsSpace: deviceColorSpace, colors: colorsArray, locations: &locations)! context.drawLinearGradient(gradient, start: CGPoint(), end: CGPoint(x: 0.0, y: size.height), options: CGGradientDrawingOptions()) }) @@ -102,7 +103,7 @@ final class VoiceChatTileItemNode: ASDisplayNode { var videoContainerNode: ASDisplayNode var videoNode: GroupVideoNode? let infoNode: ASDisplayNode - let fadeNode: ASImageNode + let fadeNode: ASDisplayNode private let titleNode: ImmediateTextNode private let iconNode: ASImageNode private var animationNode: VoiceChatMicrophoneNode? @@ -139,11 +140,11 @@ final class VoiceChatTileItemNode: ASDisplayNode { self.infoNode = ASDisplayNode() - self.fadeNode = ASImageNode() + self.fadeNode = ASDisplayNode() self.fadeNode.displaysAsynchronously = false - self.fadeNode.displayWithoutProcessing = true - self.fadeNode.contentMode = .scaleToFill - self.fadeNode.image = fadeImage + if let image = tileFadeImage { + self.fadeNode.backgroundColor = UIColor(patternImage: image) + } self.titleNode = ImmediateTextNode() self.statusNode = VoiceChatParticipantStatusNode() @@ -338,11 +339,12 @@ final class VoiceChatTileItemNode: ASDisplayNode { } let bounds = CGRect(origin: CGPoint(), size: size) - self.contentNode.frame = bounds self.containerNode.frame = bounds self.contextSourceNode.frame = bounds self.contextSourceNode.contentNode.frame = bounds + transition.updateFrame(node: self.contentNode, frame: bounds) + let extractedWidth = availableWidth let makeStatusLayout = self.statusNode.asyncLayout() let (statusLayout, _) = makeStatusLayout(CGSize(width: availableWidth - 30.0, height: CGFloat.greatestFiniteMagnitude), item.text, true) diff --git a/submodules/TelegramPresentationData/Sources/PresentationStrings.swift b/submodules/TelegramPresentationData/Sources/PresentationStrings.swift index 766aa6e0fe..deaa1a25e0 100644 --- a/submodules/TelegramPresentationData/Sources/PresentationStrings.swift +++ b/submodules/TelegramPresentationData/Sources/PresentationStrings.swift @@ -3546,2915 +3546,2917 @@ public final class PresentationStrings: Equatable { public var DialogList_UnknownPinLimitError: String { return self._s[3123]! } public var PasscodeSettings_AutoLock_IfAwayFor_5hours: String { return self._s[3124]! } public var TwoStepAuth_EnabledSuccess: String { return self._s[3125]! } - public var VoiceChat_AskedToSpeak: String { return self._s[3126]! } - public var Weekday_ShortSunday: String { return self._s[3127]! } - public var Channel_Username_InvalidTooShort: String { return self._s[3128]! } - public var AuthSessions_TerminateSession: String { return self._s[3129]! } - public var Passport_Identity_FilesTitle: String { return self._s[3130]! } + public var VoiceChat_StopScreenSharing: String { return self._s[3126]! } + public var VoiceChat_AskedToSpeak: String { return self._s[3127]! } + public var Weekday_ShortSunday: String { return self._s[3128]! } + public var Channel_Username_InvalidTooShort: String { return self._s[3129]! } + public var AuthSessions_TerminateSession: String { return self._s[3130]! } + public var Passport_Identity_FilesTitle: String { return self._s[3131]! } public func Notification_PinnedRoundMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3131]!, self._r[3131]!, [_0]) + return formatWithArgumentRanges(self._s[3132]!, self._r[3132]!, [_0]) } - public var PeopleNearby_MakeVisible: String { return self._s[3133]! } + public var PeopleNearby_MakeVisible: String { return self._s[3134]! } public func Conversation_RestrictedMediaTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3134]!, self._r[3134]!, [_0]) + return formatWithArgumentRanges(self._s[3135]!, self._r[3135]!, [_0]) } - public var Widget_UpdatedAt: String { return self._s[3135]! } + public var Widget_UpdatedAt: String { return self._s[3136]! } public func Notification_MessageLifetimeChanged(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3136]!, self._r[3136]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3137]!, self._r[3137]!, [_1, _2]) } public func GroupInfo_AddParticipantConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3137]!, self._r[3137]!, [_0]) + return formatWithArgumentRanges(self._s[3138]!, self._r[3138]!, [_0]) } - public var PrivacyPolicy_DeclineDeclineAndDelete: String { return self._s[3138]! } - public var VoiceChat_VideoPreviewShareScreen: String { return self._s[3139]! } - public var Conversation_ContextMenuForward: String { return self._s[3141]! } - public var Channel_AdminLog_CanManageCalls: String { return self._s[3142]! } + public var PrivacyPolicy_DeclineDeclineAndDelete: String { return self._s[3139]! } + public var VoiceChat_VideoPreviewShareScreen: String { return self._s[3140]! } + public var Conversation_ContextMenuForward: String { return self._s[3142]! } + public var Channel_AdminLog_CanManageCalls: String { return self._s[3143]! } public func PUSH_CHAT_MESSAGE_QUIZ(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3144]!, self._r[3144]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3145]!, self._r[3145]!, [_1, _2, _3]) } - public var Notification_GroupInviterSelf: String { return self._s[3146]! } - public var Privacy_Forwards_NeverLink: String { return self._s[3147]! } - public var AuthSessions_CurrentSession: String { return self._s[3148]! } - public var Passport_Address_EditPassportRegistration: String { return self._s[3149]! } - public var ChannelInfo_DeleteChannelConfirmation: String { return self._s[3150]! } - public var ChatSearch_ResultsTooltip: String { return self._s[3152]! } - public var CheckoutInfo_Pay: String { return self._s[3153]! } + public var Notification_GroupInviterSelf: String { return self._s[3147]! } + public var Privacy_Forwards_NeverLink: String { return self._s[3148]! } + public var AuthSessions_CurrentSession: String { return self._s[3149]! } + public var Passport_Address_EditPassportRegistration: String { return self._s[3150]! } + public var ChannelInfo_DeleteChannelConfirmation: String { return self._s[3151]! } + public var ChatSearch_ResultsTooltip: String { return self._s[3153]! } + public var CheckoutInfo_Pay: String { return self._s[3154]! } public func Conversation_PinMessagesFor(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3155]!, self._r[3155]!, [_0]) + return formatWithArgumentRanges(self._s[3156]!, self._r[3156]!, [_0]) } - public var GroupInfo_AddParticipant: String { return self._s[3156]! } - public var GroupPermission_ApplyAlertAction: String { return self._s[3157]! } + public var GroupInfo_AddParticipant: String { return self._s[3157]! } + public var GroupPermission_ApplyAlertAction: String { return self._s[3158]! } public func Channel_AdminLog_MessageChangedChannelUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3158]!, self._r[3158]!, [_0]) + return formatWithArgumentRanges(self._s[3159]!, self._r[3159]!, [_0]) } - public var Localization_LanguageCustom: String { return self._s[3159]! } - public var SettingsSearch_Synonyms_Passport: String { return self._s[3160]! } - public var Settings_UsernameEmpty: String { return self._s[3161]! } - public var Settings_FAQ_URL: String { return self._s[3162]! } - public var ChatList_UndoArchiveText1: String { return self._s[3163]! } - public var Common_Select: String { return self._s[3165]! } - public var Notification_MessageLifetimeRemovedOutgoing: String { return self._s[3166]! } - public var Notification_PassportValueAddress: String { return self._s[3167]! } - public var Conversation_MessageDialogDelete: String { return self._s[3168]! } - public var Map_OpenInYandexNavigator: String { return self._s[3170]! } - public var DialogList_SearchSectionDialogs: String { return self._s[3171]! } - public var AccessDenied_Contacts: String { return self._s[3172]! } - public var SettingsSearch_Synonyms_Privacy_Data_DeleteDrafts: String { return self._s[3174]! } - public var Passport_ScanPassportHelp: String { return self._s[3175]! } - public var Chat_PinnedListPreview_HidePinnedMessages: String { return self._s[3176]! } - public var ChatListFolder_NameChannels: String { return self._s[3177]! } - public var Appearance_ThemePreview_Chat_5_Text: String { return self._s[3178]! } + public var Localization_LanguageCustom: String { return self._s[3160]! } + public var SettingsSearch_Synonyms_Passport: String { return self._s[3161]! } + public var Settings_UsernameEmpty: String { return self._s[3162]! } + public var Settings_FAQ_URL: String { return self._s[3163]! } + public var ChatList_UndoArchiveText1: String { return self._s[3164]! } + public var Common_Select: String { return self._s[3166]! } + public var Notification_MessageLifetimeRemovedOutgoing: String { return self._s[3167]! } + public var Notification_PassportValueAddress: String { return self._s[3168]! } + public var Conversation_MessageDialogDelete: String { return self._s[3169]! } + public var Map_OpenInYandexNavigator: String { return self._s[3171]! } + public var DialogList_SearchSectionDialogs: String { return self._s[3172]! } + public var AccessDenied_Contacts: String { return self._s[3173]! } + public var SettingsSearch_Synonyms_Privacy_Data_DeleteDrafts: String { return self._s[3175]! } + public var Passport_ScanPassportHelp: String { return self._s[3176]! } + public var Chat_PinnedListPreview_HidePinnedMessages: String { return self._s[3177]! } + public var ChatListFolder_NameChannels: String { return self._s[3178]! } + public var Appearance_ThemePreview_Chat_5_Text: String { return self._s[3179]! } public func Channel_OwnershipTransfer_TransferCompleted(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3179]!, self._r[3179]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3180]!, self._r[3180]!, [_1, _2]) } - public var Checkout_ErrorInvoiceAlreadyPaid: String { return self._s[3180]! } + public var Checkout_ErrorInvoiceAlreadyPaid: String { return self._s[3181]! } public func VoiceChat_InviteMemberToGroupFirstText(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3181]!, self._r[3181]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3182]!, self._r[3182]!, [_1, _2]) } - public var Conversation_GifTooltip: String { return self._s[3182]! } - public var Widget_MessageAutoremoveTimerUpdated: String { return self._s[3183]! } - public var Passport_Identity_TypeDriversLicenseUploadScan: String { return self._s[3185]! } - public var VoiceChat_Connecting: String { return self._s[3186]! } - public var AutoDownloadSettings_OffForAll: String { return self._s[3187]! } + public var Conversation_GifTooltip: String { return self._s[3183]! } + public var Widget_MessageAutoremoveTimerUpdated: String { return self._s[3184]! } + public var Passport_Identity_TypeDriversLicenseUploadScan: String { return self._s[3186]! } + public var VoiceChat_Connecting: String { return self._s[3187]! } + public var AutoDownloadSettings_OffForAll: String { return self._s[3188]! } public func Channel_AdminLog_CreatedInviteLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3188]!, self._r[3188]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3189]!, self._r[3189]!, [_1, _2]) } - public var Privacy_GroupsAndChannels_InviteToChannelMultipleError: String { return self._s[3189]! } - public var AutoDownloadSettings_PreloadVideo: String { return self._s[3190]! } - public var CreatePoll_Quiz: String { return self._s[3191]! } - public var TwoFactorSetup_Email_Placeholder: String { return self._s[3193]! } - public var Watch_Message_Invoice: String { return self._s[3194]! } - public var Settings_AddAnotherAccount_Help: String { return self._s[3195]! } - public var Watch_Message_Unsupported: String { return self._s[3196]! } + public var Privacy_GroupsAndChannels_InviteToChannelMultipleError: String { return self._s[3190]! } + public var AutoDownloadSettings_PreloadVideo: String { return self._s[3191]! } + public var CreatePoll_Quiz: String { return self._s[3192]! } + public var TwoFactorSetup_Email_Placeholder: String { return self._s[3194]! } + public var Watch_Message_Invoice: String { return self._s[3195]! } + public var Settings_AddAnotherAccount_Help: String { return self._s[3196]! } + public var Watch_Message_Unsupported: String { return self._s[3197]! } public func Call_CameraOff(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3198]!, self._r[3198]!, [_0]) + return formatWithArgumentRanges(self._s[3199]!, self._r[3199]!, [_0]) } - public var AuthSessions_TerminateOtherSessions: String { return self._s[3199]! } - public var CreatePoll_AllOptionsAdded: String { return self._s[3201]! } - public var TwoStepAuth_RecoveryEmailTitle: String { return self._s[3202]! } - public var Call_IncomingVoiceCall: String { return self._s[3203]! } + public var AuthSessions_TerminateOtherSessions: String { return self._s[3200]! } + public var CreatePoll_AllOptionsAdded: String { return self._s[3202]! } + public var TwoStepAuth_RecoveryEmailTitle: String { return self._s[3203]! } + public var Call_IncomingVoiceCall: String { return self._s[3204]! } public func Channel_AdminLog_MessageTransferedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3204]!, self._r[3204]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3205]!, self._r[3205]!, [_1, _2]) } - public var PrivacySettings_DeleteAccountHelp: String { return self._s[3205]! } - public var Passport_Address_TypePassportRegistrationUploadScan: String { return self._s[3206]! } - public var Group_EditAdmin_RankOwnerPlaceholder: String { return self._s[3207]! } - public var Group_ErrorAccessDenied: String { return self._s[3208]! } - public var PasscodeSettings_HelpTop: String { return self._s[3209]! } - public var Watch_ChatList_NoConversationsTitle: String { return self._s[3210]! } - public var AddContact_SharedContactException: String { return self._s[3211]! } - public var AccessDenied_MicrophoneRestricted: String { return self._s[3212]! } - public var Privacy_TopPeers: String { return self._s[3213]! } - public var Web_OpenExternal: String { return self._s[3214]! } - public var Group_ErrorSendRestrictedStickers: String { return self._s[3215]! } - public var Channel_Management_LabelAdministrator: String { return self._s[3216]! } + public var PrivacySettings_DeleteAccountHelp: String { return self._s[3206]! } + public var Passport_Address_TypePassportRegistrationUploadScan: String { return self._s[3207]! } + public var Group_EditAdmin_RankOwnerPlaceholder: String { return self._s[3208]! } + public var Group_ErrorAccessDenied: String { return self._s[3209]! } + public var PasscodeSettings_HelpTop: String { return self._s[3210]! } + public var Watch_ChatList_NoConversationsTitle: String { return self._s[3211]! } + public var AddContact_SharedContactException: String { return self._s[3212]! } + public var AccessDenied_MicrophoneRestricted: String { return self._s[3213]! } + public var Privacy_TopPeers: String { return self._s[3214]! } + public var Web_OpenExternal: String { return self._s[3215]! } + public var Group_ErrorSendRestrictedStickers: String { return self._s[3216]! } + public var Channel_Management_LabelAdministrator: String { return self._s[3217]! } public func ChangePhoneNumberCode_CallTimer(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3217]!, self._r[3217]!, [_0]) + return formatWithArgumentRanges(self._s[3218]!, self._r[3218]!, [_0]) } - public var Conversation_PhoneCopied: String { return self._s[3218]! } - public var Permissions_Skip: String { return self._s[3219]! } - public var Notifications_GroupNotificationsExceptions: String { return self._s[3220]! } + public var Conversation_PhoneCopied: String { return self._s[3219]! } + public var Permissions_Skip: String { return self._s[3220]! } + public var Notifications_GroupNotificationsExceptions: String { return self._s[3221]! } public func VoiceChat_ForwardTooltip_TwoChats(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3221]!, self._r[3221]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3222]!, self._r[3222]!, [_0, _1]) } - public var PeopleNearby_Title: String { return self._s[3222]! } - public var GroupInfo_SharedMediaNone: String { return self._s[3223]! } + public var PeopleNearby_Title: String { return self._s[3223]! } + public var GroupInfo_SharedMediaNone: String { return self._s[3224]! } public func PUSH_MESSAGE_GEOLIVE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3225]!, self._r[3225]!, [_1]) + return formatWithArgumentRanges(self._s[3226]!, self._r[3226]!, [_1]) } - public var Profile_MessageLifetime1w: String { return self._s[3226]! } + public var Profile_MessageLifetime1w: String { return self._s[3227]! } public func Time_PreciseDate_m6(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3227]!, self._r[3227]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3228]!, self._r[3228]!, [_1, _2, _3]) } - public var WebBrowser_DefaultBrowser: String { return self._s[3228]! } - public var Conversation_PinOlderMessageAlertTitle: String { return self._s[3230]! } - public var EditTheme_Edit_BottomInfo: String { return self._s[3231]! } - public var Privacy_Forwards_Preview: String { return self._s[3232]! } - public var Settings_EditAccount: String { return self._s[3233]! } + public var WebBrowser_DefaultBrowser: String { return self._s[3229]! } + public var Conversation_PinOlderMessageAlertTitle: String { return self._s[3231]! } + public var EditTheme_Edit_BottomInfo: String { return self._s[3232]! } + public var Privacy_Forwards_Preview: String { return self._s[3233]! } + public var Settings_EditAccount: String { return self._s[3234]! } public func Conversation_RestrictedInlineTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3234]!, self._r[3234]!, [_0]) + return formatWithArgumentRanges(self._s[3235]!, self._r[3235]!, [_0]) } - public var TwoFactorSetup_Intro_Title: String { return self._s[3235]! } + public var TwoFactorSetup_Intro_Title: String { return self._s[3236]! } public func Channel_AdminLog_MessagePromotedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3237]!, self._r[3237]!, [_1]) + return formatWithArgumentRanges(self._s[3238]!, self._r[3238]!, [_1]) } - public var PeerInfo_ButtonVideoCall: String { return self._s[3238]! } + public var PeerInfo_ButtonVideoCall: String { return self._s[3239]! } public func DialogList_SingleUploadingPhotoSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3239]!, self._r[3239]!, [_0]) + return formatWithArgumentRanges(self._s[3240]!, self._r[3240]!, [_0]) } - public var Login_InfoHelp: String { return self._s[3240]! } - public var Notification_SecretChatMessageScreenshotSelf: String { return self._s[3241]! } - public var VoiceChat_SpeakPermissionEveryone: String { return self._s[3242]! } - public var Profile_MessageLifetime1d: String { return self._s[3243]! } - public var Group_UpgradeConfirmation: String { return self._s[3244]! } + public var Login_InfoHelp: String { return self._s[3241]! } + public var Notification_SecretChatMessageScreenshotSelf: String { return self._s[3242]! } + public var VoiceChat_SpeakPermissionEveryone: String { return self._s[3243]! } + public var Profile_MessageLifetime1d: String { return self._s[3244]! } + public var Group_UpgradeConfirmation: String { return self._s[3245]! } public func PUSH_PINNED_STICKER(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3245]!, self._r[3245]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3246]!, self._r[3246]!, [_1, _2]) } - public var Appearance_RemoveThemeColor: String { return self._s[3246]! } - public var Channel_AdminLog_TitleSelectedEvents: String { return self._s[3247]! } + public var Appearance_RemoveThemeColor: String { return self._s[3247]! } + public var Channel_AdminLog_TitleSelectedEvents: String { return self._s[3248]! } public func Call_AnsweringWithAccount(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3248]!, self._r[3248]!, [_0]) + return formatWithArgumentRanges(self._s[3249]!, self._r[3249]!, [_0]) } - public var UserInfo_BotSettings: String { return self._s[3249]! } + public var UserInfo_BotSettings: String { return self._s[3250]! } public func Notification_ChannelInviter(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3251]!, self._r[3251]!, [_0]) + return formatWithArgumentRanges(self._s[3252]!, self._r[3252]!, [_0]) } - public var Permissions_ContactsText_v0: String { return self._s[3252]! } - public var Conversation_PinMessagesForMe: String { return self._s[3253]! } - public var VoiceChat_PanelJoin: String { return self._s[3254]! } - public var Conversation_DiscussionStarted: String { return self._s[3256]! } - public var SettingsSearch_Synonyms_Privacy_TwoStepAuth: String { return self._s[3257]! } - public var SharedMedia_SearchNoResults: String { return self._s[3259]! } + public var Permissions_ContactsText_v0: String { return self._s[3253]! } + public var Conversation_PinMessagesForMe: String { return self._s[3254]! } + public var VoiceChat_PanelJoin: String { return self._s[3255]! } + public var Conversation_DiscussionStarted: String { return self._s[3257]! } + public var SettingsSearch_Synonyms_Privacy_TwoStepAuth: String { return self._s[3258]! } + public var SharedMedia_SearchNoResults: String { return self._s[3260]! } public func Login_EmailPhoneSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3261]!, self._r[3261]!, [_0]) + return formatWithArgumentRanges(self._s[3262]!, self._r[3262]!, [_0]) } public func Conversation_ShareMyPhoneNumber_StatusSuccess(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3263]!, self._r[3263]!, [_0]) + return formatWithArgumentRanges(self._s[3264]!, self._r[3264]!, [_0]) } - public var ReportPeer_ReasonOther_Placeholder: String { return self._s[3264]! } - public var ContactInfo_PhoneLabelHomeFax: String { return self._s[3265]! } - public var Call_AudioRouteHeadphones: String { return self._s[3266]! } + public var ReportPeer_ReasonOther_Placeholder: String { return self._s[3265]! } + public var ContactInfo_PhoneLabelHomeFax: String { return self._s[3266]! } + public var Call_AudioRouteHeadphones: String { return self._s[3267]! } public func Notification_VoiceChatScheduledTomorrowChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3268]!, self._r[3268]!, [_0]) + return formatWithArgumentRanges(self._s[3269]!, self._r[3269]!, [_0]) } public func PUSH_AUTH_UNKNOWN(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3269]!, self._r[3269]!, [_1]) + return formatWithArgumentRanges(self._s[3270]!, self._r[3270]!, [_1]) } - public var Passport_Identity_FilesView: String { return self._s[3270]! } - public var TwoStepAuth_SetupEmail: String { return self._s[3271]! } - public var Widget_ApplicationStartRequired: String { return self._s[3272]! } - public var PhotoEditor_Original: String { return self._s[3273]! } - public var Call_YourMicrophoneOff: String { return self._s[3274]! } - public var Permissions_ContactsAllow_v0: String { return self._s[3275]! } - public var Conversation_CardNumberCopied: String { return self._s[3276]! } - public var Notification_Exceptions_PreviewAlwaysOn: String { return self._s[3277]! } - public var PrivacyPolicy_Decline: String { return self._s[3278]! } - public var SettingsSearch_Synonyms_ChatFolders: String { return self._s[3279]! } - public var TwoStepAuth_PasswordRemoveConfirmation: String { return self._s[3280]! } - public var ChatListFolder_IncludeSectionInfo: String { return self._s[3281]! } + public var Passport_Identity_FilesView: String { return self._s[3271]! } + public var TwoStepAuth_SetupEmail: String { return self._s[3272]! } + public var Widget_ApplicationStartRequired: String { return self._s[3273]! } + public var PhotoEditor_Original: String { return self._s[3274]! } + public var Call_YourMicrophoneOff: String { return self._s[3275]! } + public var Permissions_ContactsAllow_v0: String { return self._s[3276]! } + public var Conversation_CardNumberCopied: String { return self._s[3277]! } + public var Notification_Exceptions_PreviewAlwaysOn: String { return self._s[3278]! } + public var PrivacyPolicy_Decline: String { return self._s[3279]! } + public var SettingsSearch_Synonyms_ChatFolders: String { return self._s[3280]! } + public var TwoStepAuth_PasswordRemoveConfirmation: String { return self._s[3281]! } + public var ChatListFolder_IncludeSectionInfo: String { return self._s[3282]! } public func Map_DirectionsDriveEta(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3282]!, self._r[3282]!, [_0]) + return formatWithArgumentRanges(self._s[3283]!, self._r[3283]!, [_0]) } - public var Passport_Identity_Name: String { return self._s[3283]! } - public var WallpaperPreview_PatternTitle: String { return self._s[3285]! } - public var VoiceOver_Chat_RecordModeVideoMessage: String { return self._s[3286]! } - public var WallpaperSearch_ColorOrange: String { return self._s[3288]! } - public var Appearance_ThemePreview_ChatList_5_Name: String { return self._s[3289]! } - public var GroupInfo_Permissions_SlowmodeInfo: String { return self._s[3290]! } - public var Your_cards_security_code_is_invalid: String { return self._s[3291]! } - public var IntentsSettings_ResetAll: String { return self._s[3292]! } - public var SettingsSearch_Synonyms_Calls_CallTab: String { return self._s[3294]! } - public var Group_EditAdmin_TransferOwnership: String { return self._s[3295]! } - public var ChatList_DeleteForAllSubscribers: String { return self._s[3296]! } - public var Notification_Exceptions_Add: String { return self._s[3297]! } - public var Group_DeleteGroup: String { return self._s[3298]! } - public var Cache_Help: String { return self._s[3299]! } - public var Call_AudioRouteMute: String { return self._s[3300]! } - public var VoiceOver_Chat_YourVoiceMessage: String { return self._s[3301]! } - public var SocksProxySetup_ProxyEnabled: String { return self._s[3302]! } + public var Passport_Identity_Name: String { return self._s[3284]! } + public var WallpaperPreview_PatternTitle: String { return self._s[3286]! } + public var VoiceOver_Chat_RecordModeVideoMessage: String { return self._s[3287]! } + public var WallpaperSearch_ColorOrange: String { return self._s[3289]! } + public var Appearance_ThemePreview_ChatList_5_Name: String { return self._s[3290]! } + public var GroupInfo_Permissions_SlowmodeInfo: String { return self._s[3291]! } + public var Your_cards_security_code_is_invalid: String { return self._s[3292]! } + public var IntentsSettings_ResetAll: String { return self._s[3293]! } + public var SettingsSearch_Synonyms_Calls_CallTab: String { return self._s[3295]! } + public var Group_EditAdmin_TransferOwnership: String { return self._s[3296]! } + public var ChatList_DeleteForAllSubscribers: String { return self._s[3297]! } + public var Notification_Exceptions_Add: String { return self._s[3298]! } + public var Group_DeleteGroup: String { return self._s[3299]! } + public var Cache_Help: String { return self._s[3300]! } + public var Call_AudioRouteMute: String { return self._s[3301]! } + public var VoiceOver_Chat_YourVoiceMessage: String { return self._s[3302]! } + public var SocksProxySetup_ProxyEnabled: String { return self._s[3303]! } public func VoiceChat_Status_MembersFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3303]!, self._r[3303]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3304]!, self._r[3304]!, [_1, _2]) } public func ApplyLanguage_UnsufficientDataText(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3304]!, self._r[3304]!, [_1]) + return formatWithArgumentRanges(self._s[3305]!, self._r[3305]!, [_1]) } public func Call_CallInProgressMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3305]!, self._r[3305]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3306]!, self._r[3306]!, [_1, _2]) } - public var AutoDownloadSettings_VideoMessagesTitle: String { return self._s[3306]! } - public var Channel_BanUser_PermissionAddMembers: String { return self._s[3307]! } + public var AutoDownloadSettings_VideoMessagesTitle: String { return self._s[3307]! } + public var Channel_BanUser_PermissionAddMembers: String { return self._s[3308]! } public func PUSH_CHAT_VOICECHAT_INVITE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3308]!, self._r[3308]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3309]!, self._r[3309]!, [_1, _2, _3]) } - public var Contacts_MemberSearchSectionTitleGroup: String { return self._s[3309]! } - public var TwoStepAuth_RecoveryCodeHelp: String { return self._s[3310]! } - public var ClearCache_StorageFree: String { return self._s[3311]! } + public var Contacts_MemberSearchSectionTitleGroup: String { return self._s[3310]! } + public var TwoStepAuth_RecoveryCodeHelp: String { return self._s[3311]! } + public var ClearCache_StorageFree: String { return self._s[3312]! } public func DialogList_SingleRecordingVideoMessageSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3312]!, self._r[3312]!, [_0]) + return formatWithArgumentRanges(self._s[3313]!, self._r[3313]!, [_0]) } - public var Privacy_Forwards_CustomHelp: String { return self._s[3313]! } + public var Privacy_Forwards_CustomHelp: String { return self._s[3314]! } public func Channel_AdminLog_EditedInviteLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3315]!, self._r[3315]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3316]!, self._r[3316]!, [_1, _2]) } - public var Group_ErrorAddTooMuchAdmins: String { return self._s[3316]! } - public var DialogList_Typing: String { return self._s[3317]! } + public var Group_ErrorAddTooMuchAdmins: String { return self._s[3317]! } + public var DialogList_Typing: String { return self._s[3318]! } public func Login_EmailCodeSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3318]!, self._r[3318]!, [_0]) + return formatWithArgumentRanges(self._s[3319]!, self._r[3319]!, [_0]) } - public var Target_SelectGroup: String { return self._s[3319]! } - public var AuthSessions_IncompleteAttempts: String { return self._s[3320]! } + public var Target_SelectGroup: String { return self._s[3320]! } + public var AuthSessions_IncompleteAttempts: String { return self._s[3321]! } public func Notification_ProximityReached(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3321]!, self._r[3321]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3322]!, self._r[3322]!, [_1, _2, _3]) } - public var Chat_PinnedListPreview_ShowAllMessages: String { return self._s[3322]! } - public var TwoStepAuth_EmailChangeSuccess: String { return self._s[3323]! } + public var Chat_PinnedListPreview_ShowAllMessages: String { return self._s[3323]! } + public var TwoStepAuth_EmailChangeSuccess: String { return self._s[3324]! } public func Settings_CheckPhoneNumberTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3324]!, self._r[3324]!, [_0]) + return formatWithArgumentRanges(self._s[3325]!, self._r[3325]!, [_0]) } - public var Channel_AdminLog_CanSendMessages: String { return self._s[3325]! } - public var TwoFactorSetup_EmailVerification_Title: String { return self._s[3326]! } - public var ChatSettings_TextSize: String { return self._s[3327]! } - public var Channel_AdminLogFilter_EventsEditedMessages: String { return self._s[3329]! } - public var Map_SendThisPlace: String { return self._s[3330]! } - public var Conversation_TextCopied: String { return self._s[3331]! } - public var Login_PhoneNumberAlreadyAuthorized: String { return self._s[3332]! } - public var ContactInfo_BirthdayLabel: String { return self._s[3333]! } - public var Call_ShareStats: String { return self._s[3334]! } + public var Channel_AdminLog_CanSendMessages: String { return self._s[3326]! } + public var TwoFactorSetup_EmailVerification_Title: String { return self._s[3327]! } + public var ChatSettings_TextSize: String { return self._s[3328]! } + public var Channel_AdminLogFilter_EventsEditedMessages: String { return self._s[3330]! } + public var Map_SendThisPlace: String { return self._s[3331]! } + public var Conversation_TextCopied: String { return self._s[3332]! } + public var Login_PhoneNumberAlreadyAuthorized: String { return self._s[3333]! } + public var ContactInfo_BirthdayLabel: String { return self._s[3334]! } + public var Call_ShareStats: String { return self._s[3335]! } public func PUSH_CHAT_VOICECHAT_END(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3336]!, self._r[3336]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3337]!, self._r[3337]!, [_1, _2]) } - public var ChatList_UndoArchiveRevealedText: String { return self._s[3337]! } - public var Notifications_GroupNotificationsPreview: String { return self._s[3338]! } - public var Settings_Support: String { return self._s[3339]! } - public var GroupInfo_ChannelListNamePlaceholder: String { return self._s[3340]! } + public var ChatList_UndoArchiveRevealedText: String { return self._s[3338]! } + public var Notifications_GroupNotificationsPreview: String { return self._s[3339]! } + public var Settings_Support: String { return self._s[3340]! } + public var GroupInfo_ChannelListNamePlaceholder: String { return self._s[3341]! } public func EmptyGroupInfo_Line1(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3342]!, self._r[3342]!, [_0]) + return formatWithArgumentRanges(self._s[3343]!, self._r[3343]!, [_0]) } - public var Watch_Conversation_GroupInfo: String { return self._s[3343]! } - public var Tour_Text4: String { return self._s[3344]! } - public var VoiceChat_CancelReminder: String { return self._s[3345]! } - public var Calls_StartNewCall: String { return self._s[3346]! } - public var UserInfo_FakeUserWarning: String { return self._s[3348]! } - public var PasscodeSettings_AutoLock: String { return self._s[3349]! } - public var Channel_BanList_BlockedTitle: String { return self._s[3350]! } - public var Bot_DescriptionTitle: String { return self._s[3352]! } - public var Map_LocationTitle: String { return self._s[3353]! } - public var ChatListFolder_ExcludeSectionInfo: String { return self._s[3354]! } - public var Conversation_HashtagCopied: String { return self._s[3355]! } + public var Watch_Conversation_GroupInfo: String { return self._s[3344]! } + public var Tour_Text4: String { return self._s[3345]! } + public var VoiceChat_CancelReminder: String { return self._s[3346]! } + public var Calls_StartNewCall: String { return self._s[3347]! } + public var UserInfo_FakeUserWarning: String { return self._s[3349]! } + public var PasscodeSettings_AutoLock: String { return self._s[3350]! } + public var Channel_BanList_BlockedTitle: String { return self._s[3351]! } + public var Bot_DescriptionTitle: String { return self._s[3353]! } + public var Map_LocationTitle: String { return self._s[3354]! } + public var ChatListFolder_ExcludeSectionInfo: String { return self._s[3355]! } + public var Conversation_HashtagCopied: String { return self._s[3356]! } public func Notification_MessageLifetimeChangedOutgoing(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3356]!, self._r[3356]!, [_1]) + return formatWithArgumentRanges(self._s[3357]!, self._r[3357]!, [_1]) } - public var VoiceChat_ReminderNotify: String { return self._s[3357]! } - public var Login_EmailNotConfiguredError: String { return self._s[3358]! } - public var AutoDownloadSettings_LimitBySize: String { return self._s[3359]! } - public var PrivacySettings_LastSeenNobody: String { return self._s[3360]! } - public var Permissions_CellularDataText_v0: String { return self._s[3361]! } - public var Conversation_EncryptionProcessing: String { return self._s[3362]! } - public var GroupPermission_Delete: String { return self._s[3364]! } - public var Contacts_SortByName: String { return self._s[3365]! } - public var TwoStepAuth_RecoveryUnavailable: String { return self._s[3366]! } - public var Compose_ChannelTokenListPlaceholder: String { return self._s[3367]! } - public var Group_Management_AddModeratorHelp: String { return self._s[3369]! } - public var SettingsSearch_Synonyms_EditProfile_Logout: String { return self._s[3370]! } - public var Forward_ErrorPublicPollDisabledInChannels: String { return self._s[3371]! } - public var CallFeedback_IncludeLogsInfo: String { return self._s[3373]! } + public var VoiceChat_ReminderNotify: String { return self._s[3358]! } + public var Login_EmailNotConfiguredError: String { return self._s[3359]! } + public var AutoDownloadSettings_LimitBySize: String { return self._s[3360]! } + public var PrivacySettings_LastSeenNobody: String { return self._s[3361]! } + public var Permissions_CellularDataText_v0: String { return self._s[3362]! } + public var Conversation_EncryptionProcessing: String { return self._s[3363]! } + public var GroupPermission_Delete: String { return self._s[3365]! } + public var Contacts_SortByName: String { return self._s[3366]! } + public var TwoStepAuth_RecoveryUnavailable: String { return self._s[3367]! } + public var Compose_ChannelTokenListPlaceholder: String { return self._s[3368]! } + public var Group_Management_AddModeratorHelp: String { return self._s[3370]! } + public var SettingsSearch_Synonyms_EditProfile_Logout: String { return self._s[3371]! } + public var Forward_ErrorPublicPollDisabledInChannels: String { return self._s[3372]! } + public var CallFeedback_IncludeLogsInfo: String { return self._s[3374]! } public func PUSH_CHANNEL_MESSAGE_QUIZ(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3374]!, self._r[3374]!, [_1]) + return formatWithArgumentRanges(self._s[3375]!, self._r[3375]!, [_1]) } public func SecretVideo_NotViewedYet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3375]!, self._r[3375]!, [_0]) + return formatWithArgumentRanges(self._s[3376]!, self._r[3376]!, [_0]) } - public var ChatList_Context_Delete: String { return self._s[3376]! } - public var VoiceChat_InviteMember: String { return self._s[3377]! } - public var PrivacyPhoneNumberSettings_CustomDisabledHelp: String { return self._s[3378]! } - public var Conversation_Processing: String { return self._s[3379]! } - public var TwoStepAuth_EmailCodeExpired: String { return self._s[3380]! } - public var ChatSettings_Stickers: String { return self._s[3381]! } - public var AppleWatch_ReplyPresetsHelp: String { return self._s[3382]! } - public var Passport_Language_cs: String { return self._s[3383]! } - public var GroupInfo_InvitationLinkGroupFull: String { return self._s[3385]! } - public var Conversation_Contact: String { return self._s[3386]! } - public var Passport_Identity_ReverseSideHelp: String { return self._s[3387]! } - public var SocksProxySetup_PasteFromClipboard: String { return self._s[3388]! } - public var Theme_Unsupported: String { return self._s[3389]! } - public var Privacy_TopPeersWarning: String { return self._s[3390]! } + public var ChatList_Context_Delete: String { return self._s[3377]! } + public var VoiceChat_InviteMember: String { return self._s[3378]! } + public var PrivacyPhoneNumberSettings_CustomDisabledHelp: String { return self._s[3379]! } + public var Conversation_Processing: String { return self._s[3380]! } + public var TwoStepAuth_EmailCodeExpired: String { return self._s[3381]! } + public var ChatSettings_Stickers: String { return self._s[3382]! } + public var AppleWatch_ReplyPresetsHelp: String { return self._s[3383]! } + public var Passport_Language_cs: String { return self._s[3384]! } + public var GroupInfo_InvitationLinkGroupFull: String { return self._s[3386]! } + public var Conversation_Contact: String { return self._s[3387]! } + public var Passport_Identity_ReverseSideHelp: String { return self._s[3388]! } + public var SocksProxySetup_PasteFromClipboard: String { return self._s[3389]! } + public var Theme_Unsupported: String { return self._s[3390]! } + public var Privacy_TopPeersWarning: String { return self._s[3391]! } public func Conversation_ScheduledVoiceChatStartsTodayShort(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3391]!, self._r[3391]!, [_0]) + return formatWithArgumentRanges(self._s[3392]!, self._r[3392]!, [_0]) } - public var InviteLink_Title: String { return self._s[3393]! } + public var InviteLink_Title: String { return self._s[3394]! } public func UserInfo_BlockConfirmationTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3394]!, self._r[3394]!, [_0]) + return formatWithArgumentRanges(self._s[3395]!, self._r[3395]!, [_0]) } - public var Conversation_SilentBroadcastTooltipOn: String { return self._s[3395]! } - public var TwoStepAuth_RemovePassword: String { return self._s[3396]! } - public var Settings_CheckPhoneNumberText: String { return self._s[3397]! } - public var PeopleNearby_Users: String { return self._s[3398]! } - public var Appearance_TextSize_UseSystem: String { return self._s[3399]! } - public var Settings_SetProfilePhoto: String { return self._s[3400]! } - public var Conversation_ContextMenuBan: String { return self._s[3401]! } - public var KeyCommand_ScrollUp: String { return self._s[3402]! } - public var Settings_ChatSettings: String { return self._s[3404]! } - public var CallList_RecentCallsHeader: String { return self._s[3405]! } + public var Conversation_SilentBroadcastTooltipOn: String { return self._s[3396]! } + public var TwoStepAuth_RemovePassword: String { return self._s[3397]! } + public var Settings_CheckPhoneNumberText: String { return self._s[3398]! } + public var PeopleNearby_Users: String { return self._s[3399]! } + public var Appearance_TextSize_UseSystem: String { return self._s[3400]! } + public var Settings_SetProfilePhoto: String { return self._s[3401]! } + public var Conversation_ContextMenuBan: String { return self._s[3402]! } + public var KeyCommand_ScrollUp: String { return self._s[3403]! } + public var Settings_ChatSettings: String { return self._s[3405]! } + public var CallList_RecentCallsHeader: String { return self._s[3406]! } public func PUSH_CHAT_MESSAGE_VIDEO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3406]!, self._r[3406]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3407]!, self._r[3407]!, [_1, _2]) } - public var Stats_GroupTopInvitersTitle: String { return self._s[3407]! } - public var Passport_Phone_EnterOtherNumber: String { return self._s[3408]! } - public var VoiceChat_StartRecordingTitle: String { return self._s[3409]! } + public var Stats_GroupTopInvitersTitle: String { return self._s[3408]! } + public var Passport_Phone_EnterOtherNumber: String { return self._s[3409]! } + public var VoiceChat_StartRecordingTitle: String { return self._s[3410]! } public func Notification_VoiceChatScheduledToday(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3410]!, self._r[3410]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3411]!, self._r[3411]!, [_1, _2]) } - public var Passport_Identity_MiddleNamePlaceholder: String { return self._s[3412]! } - public var Passport_Address_OneOfTypeBankStatement: String { return self._s[3413]! } - public var VoiceOver_ChatList_MessageRead: String { return self._s[3414]! } - public var Stats_GroupTopPoster_Promote: String { return self._s[3415]! } - public var Cache_Title: String { return self._s[3416]! } + public var Passport_Identity_MiddleNamePlaceholder: String { return self._s[3413]! } + public var Passport_Address_OneOfTypeBankStatement: String { return self._s[3414]! } + public var VoiceOver_ChatList_MessageRead: String { return self._s[3415]! } + public var Stats_GroupTopPoster_Promote: String { return self._s[3416]! } + public var Cache_Title: String { return self._s[3417]! } public func Conversation_AutoremoveTimerSetToastText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3417]!, self._r[3417]!, [_0]) + return formatWithArgumentRanges(self._s[3418]!, self._r[3418]!, [_0]) } - public var Clipboard_SendPhoto: String { return self._s[3418]! } - public var Notifications_ExceptionsMessagePlaceholder: String { return self._s[3420]! } - public var TwoStepAuth_EnterPasswordForgot: String { return self._s[3421]! } - public var WatchRemote_AlertTitle: String { return self._s[3424]! } - public var Appearance_ReduceMotion: String { return self._s[3425]! } + public var Clipboard_SendPhoto: String { return self._s[3419]! } + public var Notifications_ExceptionsMessagePlaceholder: String { return self._s[3421]! } + public var TwoStepAuth_EnterPasswordForgot: String { return self._s[3422]! } + public var WatchRemote_AlertTitle: String { return self._s[3425]! } + public var Appearance_ReduceMotion: String { return self._s[3426]! } public func PUSH_CHAT_MESSAGE_ROUND(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3428]!, self._r[3428]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3429]!, self._r[3429]!, [_1, _2]) } - public var Notifications_PermissionsSuppressWarningText: String { return self._s[3429]! } - public var ChatList_UndoArchiveHiddenTitle: String { return self._s[3430]! } - public var Passport_Identity_TypePersonalDetails: String { return self._s[3431]! } + public var Notifications_PermissionsSuppressWarningText: String { return self._s[3430]! } + public var ChatList_UndoArchiveHiddenTitle: String { return self._s[3431]! } + public var Passport_Identity_TypePersonalDetails: String { return self._s[3432]! } public func Call_CallInProgressVoiceChatMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3432]!, self._r[3432]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3433]!, self._r[3433]!, [_1, _2]) } public func Passport_Identity_UploadOneOfScan(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3434]!, self._r[3434]!, [_0]) + return formatWithArgumentRanges(self._s[3435]!, self._r[3435]!, [_0]) } - public var ChatListFolder_DiscardConfirmation: String { return self._s[3435]! } + public var ChatListFolder_DiscardConfirmation: String { return self._s[3436]! } public func Conversation_RestrictedStickersTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3437]!, self._r[3437]!, [_0]) + return formatWithArgumentRanges(self._s[3438]!, self._r[3438]!, [_0]) } - public var InstantPage_Search: String { return self._s[3438]! } - public var ChatState_WaitingForNetwork: String { return self._s[3439]! } - public var GroupInfo_Sound: String { return self._s[3440]! } - public var NotificationsSound_Telegraph: String { return self._s[3441]! } - public var NotificationsSound_Hello: String { return self._s[3442]! } - public var VoiceChat_LeaveConfirmation: String { return self._s[3443]! } - public var UserInfo_LinkForwardTooltip_SavedMessages_One: String { return self._s[3444]! } - public var Passport_FieldIdentityDetailsHelp: String { return self._s[3445]! } - public var Group_Members_AddMemberBotErrorNotAllowed: String { return self._s[3446]! } - public var Conversation_HoldForVideo: String { return self._s[3447]! } - public var Conversation_PinOlderMessageAlertText: String { return self._s[3448]! } - public var Appearance_ShareTheme: String { return self._s[3449]! } - public var TwoStepAuth_SetupHint: String { return self._s[3450]! } - public var Stats_GrowthTitle: String { return self._s[3453]! } - public var GroupInfo_InviteLink_ShareLink: String { return self._s[3454]! } - public var Conversation_DefaultRestrictedMedia: String { return self._s[3455]! } - public var Channel_EditAdmin_PermissionPostMessages: String { return self._s[3456]! } - public var GroupPermission_NoSendMessages: String { return self._s[3459]! } - public var Conversation_SetReminder_Title: String { return self._s[3460]! } - public var Privacy_Calls_CustomHelp: String { return self._s[3461]! } - public var CheckoutInfo_ErrorPostcodeInvalid: String { return self._s[3462]! } + public var InstantPage_Search: String { return self._s[3439]! } + public var ChatState_WaitingForNetwork: String { return self._s[3440]! } + public var GroupInfo_Sound: String { return self._s[3441]! } + public var NotificationsSound_Telegraph: String { return self._s[3442]! } + public var NotificationsSound_Hello: String { return self._s[3443]! } + public var VoiceChat_LeaveConfirmation: String { return self._s[3444]! } + public var UserInfo_LinkForwardTooltip_SavedMessages_One: String { return self._s[3445]! } + public var Passport_FieldIdentityDetailsHelp: String { return self._s[3446]! } + public var Group_Members_AddMemberBotErrorNotAllowed: String { return self._s[3447]! } + public var Conversation_HoldForVideo: String { return self._s[3448]! } + public var Conversation_PinOlderMessageAlertText: String { return self._s[3449]! } + public var Appearance_ShareTheme: String { return self._s[3450]! } + public var TwoStepAuth_SetupHint: String { return self._s[3451]! } + public var Stats_GrowthTitle: String { return self._s[3454]! } + public var GroupInfo_InviteLink_ShareLink: String { return self._s[3455]! } + public var Conversation_DefaultRestrictedMedia: String { return self._s[3456]! } + public var Channel_EditAdmin_PermissionPostMessages: String { return self._s[3457]! } + public var GroupPermission_NoSendMessages: String { return self._s[3460]! } + public var Conversation_SetReminder_Title: String { return self._s[3461]! } + public var Privacy_Calls_CustomHelp: String { return self._s[3462]! } + public var CheckoutInfo_ErrorPostcodeInvalid: String { return self._s[3463]! } public func ClearCache_StorageTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3463]!, self._r[3463]!, [_0]) + return formatWithArgumentRanges(self._s[3464]!, self._r[3464]!, [_0]) } - public var InviteLinks_InviteLinkExpired: String { return self._s[3465]! } - public var Undo_SecretChatDeleted: String { return self._s[3466]! } - public var PhotoEditor_ContrastTool: String { return self._s[3467]! } - public var Privacy_Forwards: String { return self._s[3468]! } - public var AuthSessions_LoggedInWithTelegram: String { return self._s[3469]! } - public var KeyCommand_SendMessage: String { return self._s[3471]! } - public var Conversation_PrivateMessageLinkCopiedLong: String { return self._s[3472]! } + public var InviteLinks_InviteLinkExpired: String { return self._s[3466]! } + public var Undo_SecretChatDeleted: String { return self._s[3467]! } + public var PhotoEditor_ContrastTool: String { return self._s[3468]! } + public var Privacy_Forwards: String { return self._s[3469]! } + public var AuthSessions_LoggedInWithTelegram: String { return self._s[3470]! } + public var KeyCommand_SendMessage: String { return self._s[3472]! } + public var Conversation_PrivateMessageLinkCopiedLong: String { return self._s[3473]! } public func InstantPage_RelatedArticleAuthorAndDateTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3473]!, self._r[3473]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3474]!, self._r[3474]!, [_1, _2]) } - public var GroupPermission_NoSendGifs: String { return self._s[3474]! } + public var GroupPermission_NoSendGifs: String { return self._s[3475]! } public func Notification_VoiceChatEndedGroup(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3475]!, self._r[3475]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3476]!, self._r[3476]!, [_1, _2]) } - public var Notification_MessageLifetime2s: String { return self._s[3476]! } - public var Message_Theme: String { return self._s[3477]! } - public var Conversation_Dice_u1F3AF: String { return self._s[3480]! } + public var Notification_MessageLifetime2s: String { return self._s[3477]! } + public var Message_Theme: String { return self._s[3478]! } + public var Conversation_Dice_u1F3AF: String { return self._s[3481]! } public func DialogList_SinglePlayingGameSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3481]!, self._r[3481]!, [_0]) + return formatWithArgumentRanges(self._s[3482]!, self._r[3482]!, [_0]) } - public var Group_UpgradeNoticeHeader: String { return self._s[3483]! } - public var PeerInfo_BioExpand: String { return self._s[3484]! } - public var Passport_DeletePersonalDetails: String { return self._s[3485]! } - public var Widget_NoUsers: String { return self._s[3486]! } - public var TwoStepAuth_AddHintTitle: String { return self._s[3487]! } - public var VoiceChat_VideoPreviewDescription: String { return self._s[3488]! } - public var Login_TermsOfServiceDecline: String { return self._s[3489]! } - public var CreatePoll_QuizTip: String { return self._s[3491]! } - public var Watch_LastSeen_WithinAWeek: String { return self._s[3492]! } - public var MessagePoll_SubmitVote: String { return self._s[3494]! } - public var ChatSettings_AutoDownloadEnabled: String { return self._s[3495]! } - public var Passport_Address_EditRentalAgreement: String { return self._s[3496]! } - public var Conversation_SearchByName_Placeholder: String { return self._s[3497]! } - public var Conversation_UpdateTelegram: String { return self._s[3498]! } + public var Group_UpgradeNoticeHeader: String { return self._s[3484]! } + public var PeerInfo_BioExpand: String { return self._s[3485]! } + public var Passport_DeletePersonalDetails: String { return self._s[3486]! } + public var Widget_NoUsers: String { return self._s[3487]! } + public var TwoStepAuth_AddHintTitle: String { return self._s[3488]! } + public var VoiceChat_VideoPreviewDescription: String { return self._s[3489]! } + public var Login_TermsOfServiceDecline: String { return self._s[3490]! } + public var CreatePoll_QuizTip: String { return self._s[3492]! } + public var Watch_LastSeen_WithinAWeek: String { return self._s[3493]! } + public var MessagePoll_SubmitVote: String { return self._s[3495]! } + public var ChatSettings_AutoDownloadEnabled: String { return self._s[3496]! } + public var Passport_Address_EditRentalAgreement: String { return self._s[3497]! } + public var Conversation_SearchByName_Placeholder: String { return self._s[3498]! } + public var Conversation_UpdateTelegram: String { return self._s[3499]! } public func FileSize_KB(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3499]!, self._r[3499]!, [_0]) + return formatWithArgumentRanges(self._s[3500]!, self._r[3500]!, [_0]) } - public var UserInfo_About_Placeholder: String { return self._s[3500]! } - public var CallSettings_Always: String { return self._s[3501]! } - public var ChannelInfo_ScamChannelWarning: String { return self._s[3502]! } - public var VoiceChat_MutedByAdminHelp: String { return self._s[3503]! } - public var Login_TermsOfServiceHeader: String { return self._s[3504]! } - public var KeyCommand_ChatInfo: String { return self._s[3505]! } - public var MessagePoll_LabelPoll: String { return self._s[3506]! } - public var Paint_Clear: String { return self._s[3507]! } - public var PeerInfo_ButtonMute: String { return self._s[3508]! } - public var LastSeen_WithinAWeek: String { return self._s[3509]! } - public var Invitation_JoinVoiceChatAsSpeaker: String { return self._s[3510]! } - public var Passport_Identity_FrontSide: String { return self._s[3511]! } - public var Stickers_GroupStickers: String { return self._s[3512]! } - public var ChangePhoneNumberNumber_NumberPlaceholder: String { return self._s[3513]! } + public var UserInfo_About_Placeholder: String { return self._s[3501]! } + public var CallSettings_Always: String { return self._s[3502]! } + public var ChannelInfo_ScamChannelWarning: String { return self._s[3503]! } + public var VoiceChat_MutedByAdminHelp: String { return self._s[3504]! } + public var Login_TermsOfServiceHeader: String { return self._s[3505]! } + public var KeyCommand_ChatInfo: String { return self._s[3506]! } + public var MessagePoll_LabelPoll: String { return self._s[3507]! } + public var Paint_Clear: String { return self._s[3508]! } + public var PeerInfo_ButtonMute: String { return self._s[3509]! } + public var LastSeen_WithinAWeek: String { return self._s[3510]! } + public var Invitation_JoinVoiceChatAsSpeaker: String { return self._s[3511]! } + public var Passport_Identity_FrontSide: String { return self._s[3512]! } + public var Stickers_GroupStickers: String { return self._s[3513]! } + public var ChangePhoneNumberNumber_NumberPlaceholder: String { return self._s[3514]! } public func Map_SearchNoResultsDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3514]!, self._r[3514]!, [_0]) + return formatWithArgumentRanges(self._s[3515]!, self._r[3515]!, [_0]) } - public var VoiceOver_BotCommands: String { return self._s[3515]! } + public var VoiceOver_BotCommands: String { return self._s[3516]! } public func PUSH_MESSAGE_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3518]!, self._r[3518]!, [_1]) + return formatWithArgumentRanges(self._s[3519]!, self._r[3519]!, [_1]) } - public var SocksProxySetup_ProxyStatusConnected: String { return self._s[3519]! } - public var Chat_MultipleTextMessagesDisabled: String { return self._s[3520]! } - public var InviteLink_ContextDelete: String { return self._s[3521]! } + public var SocksProxySetup_ProxyStatusConnected: String { return self._s[3520]! } + public var Chat_MultipleTextMessagesDisabled: String { return self._s[3521]! } + public var InviteLink_ContextDelete: String { return self._s[3522]! } public func Notification_LeftChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3522]!, self._r[3522]!, [_0]) + return formatWithArgumentRanges(self._s[3523]!, self._r[3523]!, [_0]) } - public var WebSearch_SearchNoResults: String { return self._s[3524]! } - public var Channel_DiscussionGroup_Create: String { return self._s[3525]! } - public var Passport_Language_es: String { return self._s[3526]! } - public var EnterPasscode_EnterCurrentPasscode: String { return self._s[3527]! } - public var Map_LiveLocationShowAll: String { return self._s[3528]! } - public var Cache_MaximumCacheSizeHelp: String { return self._s[3530]! } - public var Map_OpenInGoogleMaps: String { return self._s[3531]! } - public var CheckoutInfo_ErrorNameInvalid: String { return self._s[3533]! } - public var EditTheme_Create_BottomInfo: String { return self._s[3534]! } - public var PhotoEditor_BlurToolLinear: String { return self._s[3535]! } + public var WebSearch_SearchNoResults: String { return self._s[3525]! } + public var Channel_DiscussionGroup_Create: String { return self._s[3526]! } + public var Passport_Language_es: String { return self._s[3527]! } + public var EnterPasscode_EnterCurrentPasscode: String { return self._s[3528]! } + public var Map_LiveLocationShowAll: String { return self._s[3529]! } + public var Cache_MaximumCacheSizeHelp: String { return self._s[3531]! } + public var Map_OpenInGoogleMaps: String { return self._s[3532]! } + public var CheckoutInfo_ErrorNameInvalid: String { return self._s[3534]! } + public var EditTheme_Create_BottomInfo: String { return self._s[3535]! } + public var PhotoEditor_BlurToolLinear: String { return self._s[3536]! } public func Channel_AdminLog_MessageEdited(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3536]!, self._r[3536]!, [_0]) + return formatWithArgumentRanges(self._s[3537]!, self._r[3537]!, [_0]) } - public var Passport_Phone_Delete: String { return self._s[3537]! } - public var Channel_Username_CreatePrivateLinkHelp: String { return self._s[3538]! } - public var PrivacySettings_PrivacyTitle: String { return self._s[3539]! } - public var CheckoutInfo_ReceiverInfoNamePlaceholder: String { return self._s[3540]! } + public var Passport_Phone_Delete: String { return self._s[3538]! } + public var Channel_Username_CreatePrivateLinkHelp: String { return self._s[3539]! } + public var PrivacySettings_PrivacyTitle: String { return self._s[3540]! } + public var CheckoutInfo_ReceiverInfoNamePlaceholder: String { return self._s[3541]! } public func EncryptionKey_Description(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3541]!, self._r[3541]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3542]!, self._r[3542]!, [_1, _2]) } - public var LogoutOptions_LogOutInfo: String { return self._s[3542]! } - public var Cache_ByPeerHeader: String { return self._s[3544]! } - public var Username_InvalidCharacters: String { return self._s[3545]! } - public var Checkout_ShippingAddress: String { return self._s[3547]! } + public var LogoutOptions_LogOutInfo: String { return self._s[3543]! } + public var Cache_ByPeerHeader: String { return self._s[3545]! } + public var Username_InvalidCharacters: String { return self._s[3546]! } + public var Checkout_ShippingAddress: String { return self._s[3548]! } public func PUSH_CHAT_MESSAGE_GAME_SCORE(_ _1: String, _ _2: String, _ _3: String, _ _4: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3548]!, self._r[3548]!, [_1, _2, _3, _4]) + return formatWithArgumentRanges(self._s[3549]!, self._r[3549]!, [_1, _2, _3, _4]) } - public var VoiceChat_LeaveAndEndVoiceChat: String { return self._s[3550]! } - public var Conversation_AddContact: String { return self._s[3551]! } - public var Passport_Address_EditUtilityBill: String { return self._s[3552]! } - public var InviteLink_ContextGetQRCode: String { return self._s[3553]! } - public var Conversation_ChecksTooltip_Delivered: String { return self._s[3555]! } + public var VoiceChat_LeaveAndEndVoiceChat: String { return self._s[3551]! } + public var Conversation_AddContact: String { return self._s[3552]! } + public var Passport_Address_EditUtilityBill: String { return self._s[3553]! } + public var InviteLink_ContextGetQRCode: String { return self._s[3554]! } + public var Conversation_ChecksTooltip_Delivered: String { return self._s[3556]! } public func Channel_AdminLog_MessageAddedAdminNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3556]!, self._r[3556]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3557]!, self._r[3557]!, [_1, _2]) } - public var Message_Video: String { return self._s[3557]! } + public var Message_Video: String { return self._s[3558]! } public func Watch_Time_ShortYesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3558]!, self._r[3558]!, [_0]) + return formatWithArgumentRanges(self._s[3559]!, self._r[3559]!, [_0]) } public func Conversation_Megabytes(_ _0: Float) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3559]!, self._r[3559]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[3560]!, self._r[3560]!, ["\(_0)"]) } - public var InviteLink_ReactivateLink: String { return self._s[3560]! } - public var Passport_Language_km: String { return self._s[3562]! } + public var InviteLink_ReactivateLink: String { return self._s[3561]! } + public var Passport_Language_km: String { return self._s[3563]! } public func PUSH_MESSAGE_CHANNEL_MESSAGE_GAME_SCORE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3563]!, self._r[3563]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3564]!, self._r[3564]!, [_1, _2, _3]) } - public var EmptyGroupInfo_Line4: String { return self._s[3564]! } - public var Conversation_SendMessageErrorTooMuchScheduled: String { return self._s[3566]! } - public var Notification_CallCanceledShort: String { return self._s[3567]! } - public var PhotoEditor_FadeTool: String { return self._s[3568]! } - public var Group_PublicLink_Info: String { return self._s[3569]! } - public var Contacts_DeselectAll: String { return self._s[3570]! } - public var Conversation_Moderate_Delete: String { return self._s[3572]! } - public var TwoStepAuth_RecoveryCodeInvalid: String { return self._s[3573]! } - public var NotificationsSound_Note: String { return self._s[3576]! } + public var EmptyGroupInfo_Line4: String { return self._s[3565]! } + public var Conversation_SendMessageErrorTooMuchScheduled: String { return self._s[3567]! } + public var Notification_CallCanceledShort: String { return self._s[3568]! } + public var PhotoEditor_FadeTool: String { return self._s[3569]! } + public var Group_PublicLink_Info: String { return self._s[3570]! } + public var Contacts_DeselectAll: String { return self._s[3571]! } + public var Conversation_Moderate_Delete: String { return self._s[3573]! } + public var TwoStepAuth_RecoveryCodeInvalid: String { return self._s[3574]! } + public var NotificationsSound_Note: String { return self._s[3577]! } public func Message_PaymentSent(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3577]!, self._r[3577]!, [_0]) + return formatWithArgumentRanges(self._s[3578]!, self._r[3578]!, [_0]) } - public var Appearance_ThemePreview_ChatList_7_Text: String { return self._s[3578]! } - public var Channel_EditAdmin_PermissionInviteViaLink: String { return self._s[3580]! } - public var DialogList_SearchSectionGlobal: String { return self._s[3581]! } - public var AccessDenied_Settings: String { return self._s[3582]! } - public var Passport_Identity_TypeIdentityCardUploadScan: String { return self._s[3583]! } - public var AuthSessions_EmptyTitle: String { return self._s[3584]! } - public var TwoStepAuth_PasswordChangeSuccess: String { return self._s[3585]! } - public var GroupInfo_GroupType: String { return self._s[3586]! } - public var Calls_Missed: String { return self._s[3587]! } - public var Contacts_VoiceOver_AddContact: String { return self._s[3588]! } - public var UserInfo_GenericPhoneLabel: String { return self._s[3590]! } - public var Passport_Language_uz: String { return self._s[3591]! } - public var Conversation_StopQuizConfirmationTitle: String { return self._s[3592]! } - public var PhotoEditor_BlurToolPortrait: String { return self._s[3593]! } - public var VoiceChat_CreateNewVoiceChatStartNow: String { return self._s[3594]! } - public var Map_ChooseLocationTitle: String { return self._s[3595]! } - public var Checkout_EnterPassword: String { return self._s[3596]! } - public var GroupInfo_ConvertToSupergroup: String { return self._s[3597]! } - public var AutoNightTheme_UpdateLocation: String { return self._s[3598]! } - public var NetworkUsageSettings_Title: String { return self._s[3599]! } - public var Location_ProximityAlertCancelled: String { return self._s[3600]! } - public var SettingsSearch_Synonyms_ChatSettings_IntentsSettings: String { return self._s[3601]! } - public var Message_PinnedLiveLocationMessage: String { return self._s[3602]! } - public var Compose_NewChannel: String { return self._s[3603]! } - public var Privacy_PaymentsClearInfo: String { return self._s[3605]! } + public var Appearance_ThemePreview_ChatList_7_Text: String { return self._s[3579]! } + public var Channel_EditAdmin_PermissionInviteViaLink: String { return self._s[3581]! } + public var DialogList_SearchSectionGlobal: String { return self._s[3582]! } + public var AccessDenied_Settings: String { return self._s[3583]! } + public var Passport_Identity_TypeIdentityCardUploadScan: String { return self._s[3584]! } + public var AuthSessions_EmptyTitle: String { return self._s[3585]! } + public var TwoStepAuth_PasswordChangeSuccess: String { return self._s[3586]! } + public var GroupInfo_GroupType: String { return self._s[3587]! } + public var Calls_Missed: String { return self._s[3588]! } + public var Contacts_VoiceOver_AddContact: String { return self._s[3589]! } + public var UserInfo_GenericPhoneLabel: String { return self._s[3591]! } + public var Passport_Language_uz: String { return self._s[3592]! } + public var Conversation_StopQuizConfirmationTitle: String { return self._s[3593]! } + public var PhotoEditor_BlurToolPortrait: String { return self._s[3594]! } + public var VoiceChat_CreateNewVoiceChatStartNow: String { return self._s[3595]! } + public var Map_ChooseLocationTitle: String { return self._s[3596]! } + public var Checkout_EnterPassword: String { return self._s[3597]! } + public var GroupInfo_ConvertToSupergroup: String { return self._s[3598]! } + public var AutoNightTheme_UpdateLocation: String { return self._s[3599]! } + public var NetworkUsageSettings_Title: String { return self._s[3600]! } + public var Location_ProximityAlertCancelled: String { return self._s[3601]! } + public var SettingsSearch_Synonyms_ChatSettings_IntentsSettings: String { return self._s[3602]! } + public var Message_PinnedLiveLocationMessage: String { return self._s[3603]! } + public var Compose_NewChannel: String { return self._s[3604]! } + public var Privacy_PaymentsClearInfo: String { return self._s[3606]! } public func PUSH_MESSAGE_POLL(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3606]!, self._r[3606]!, [_1]) + return formatWithArgumentRanges(self._s[3607]!, self._r[3607]!, [_1]) } - public var Notification_Exceptions_AlwaysOn: String { return self._s[3607]! } - public var Privacy_GroupsAndChannels_WhoCanAddMe: String { return self._s[3608]! } - public var AutoNightTheme_AutomaticSection: String { return self._s[3611]! } - public var WallpaperSearch_ColorBrown: String { return self._s[3612]! } - public var Appearance_AppIconDefault: String { return self._s[3613]! } - public var StickerSettings_ContextInfo: String { return self._s[3616]! } - public var Channel_AddBotErrorNoRights: String { return self._s[3617]! } - public var Passport_FieldPhone: String { return self._s[3619]! } - public var Contacts_PermissionsTitle: String { return self._s[3620]! } - public var TwoFactorSetup_Email_SkipConfirmationSkip: String { return self._s[3621]! } + public var Notification_Exceptions_AlwaysOn: String { return self._s[3608]! } + public var Privacy_GroupsAndChannels_WhoCanAddMe: String { return self._s[3609]! } + public var AutoNightTheme_AutomaticSection: String { return self._s[3612]! } + public var WallpaperSearch_ColorBrown: String { return self._s[3613]! } + public var Appearance_AppIconDefault: String { return self._s[3614]! } + public var StickerSettings_ContextInfo: String { return self._s[3617]! } + public var Channel_AddBotErrorNoRights: String { return self._s[3618]! } + public var Passport_FieldPhone: String { return self._s[3620]! } + public var Contacts_PermissionsTitle: String { return self._s[3621]! } + public var TwoFactorSetup_Email_SkipConfirmationSkip: String { return self._s[3622]! } public func Notification_JoinedChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3622]!, self._r[3622]!, [_0]) + return formatWithArgumentRanges(self._s[3623]!, self._r[3623]!, [_0]) } - public var Bot_Unblock: String { return self._s[3623]! } - public var PasscodeSettings_SimplePasscode: String { return self._s[3624]! } - public var InviteLink_InviteLinkCopiedText: String { return self._s[3625]! } - public var Passport_PasswordHelp: String { return self._s[3626]! } - public var Watch_Conversation_UserInfo: String { return self._s[3627]! } + public var Bot_Unblock: String { return self._s[3624]! } + public var PasscodeSettings_SimplePasscode: String { return self._s[3625]! } + public var InviteLink_InviteLinkCopiedText: String { return self._s[3626]! } + public var Passport_PasswordHelp: String { return self._s[3627]! } + public var Watch_Conversation_UserInfo: String { return self._s[3628]! } public func Channel_AdminLog_MessageChangedGroupGeoLocation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3631]!, self._r[3631]!, [_0]) + return formatWithArgumentRanges(self._s[3632]!, self._r[3632]!, [_0]) } - public var State_Connecting: String { return self._s[3633]! } - public var Passport_Address_TypeTemporaryRegistration: String { return self._s[3634]! } - public var TextFormat_AddLinkPlaceholder: String { return self._s[3635]! } - public var Conversation_Dice_u1F3B2: String { return self._s[3636]! } + public var State_Connecting: String { return self._s[3634]! } + public var Passport_Address_TypeTemporaryRegistration: String { return self._s[3635]! } + public var TextFormat_AddLinkPlaceholder: String { return self._s[3636]! } + public var Conversation_Dice_u1F3B2: String { return self._s[3637]! } public func Call_StatusBar(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3637]!, self._r[3637]!, [_0]) + return formatWithArgumentRanges(self._s[3638]!, self._r[3638]!, [_0]) } - public var Conversation_SendingOptionsTooltip: String { return self._s[3638]! } - public var ChatList_UndoArchiveTitle: String { return self._s[3639]! } - public var ChatList_EmptyChatListNewMessage: String { return self._s[3640]! } - public var WallpaperSearch_ColorGreen: String { return self._s[3642]! } - public var PhotoEditor_BlurToolOff: String { return self._s[3643]! } - public var Conversation_AutoremoveOff: String { return self._s[3644]! } - public var SocksProxySetup_PortPlaceholder: String { return self._s[3645]! } - public var Weekday_Saturday: String { return self._s[3646]! } - public var DialogList_Unread: String { return self._s[3647]! } - public var Watch_LastSeen_ALongTimeAgo: String { return self._s[3648]! } - public var Stats_GroupPosters: String { return self._s[3649]! } + public var Conversation_SendingOptionsTooltip: String { return self._s[3639]! } + public var ChatList_UndoArchiveTitle: String { return self._s[3640]! } + public var ChatList_EmptyChatListNewMessage: String { return self._s[3641]! } + public var WallpaperSearch_ColorGreen: String { return self._s[3643]! } + public var PhotoEditor_BlurToolOff: String { return self._s[3644]! } + public var Conversation_AutoremoveOff: String { return self._s[3645]! } + public var SocksProxySetup_PortPlaceholder: String { return self._s[3646]! } + public var Weekday_Saturday: String { return self._s[3647]! } + public var DialogList_Unread: String { return self._s[3648]! } + public var Watch_LastSeen_ALongTimeAgo: String { return self._s[3649]! } + public var Stats_GroupPosters: String { return self._s[3650]! } public func PUSH_ENCRYPTION_REQUEST(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3650]!, self._r[3650]!, [_1]) + return formatWithArgumentRanges(self._s[3651]!, self._r[3651]!, [_1]) } - public var Conversation_AlsoClearCacheTitle: String { return self._s[3651]! } + public var Conversation_AlsoClearCacheTitle: String { return self._s[3652]! } public func Conversation_ForwardTooltip_TwoChats_One(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3652]!, self._r[3652]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3653]!, self._r[3653]!, [_0, _1]) } public func Target_ShareGameConfirmationGroup(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3655]!, self._r[3655]!, [_0]) + return formatWithArgumentRanges(self._s[3656]!, self._r[3656]!, [_0]) } - public var ReportPeer_ReasonChildAbuse: String { return self._s[3656]! } + public var ReportPeer_ReasonChildAbuse: String { return self._s[3657]! } public func Channel_AdminLog_MessageUnkickedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3657]!, self._r[3657]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3658]!, self._r[3658]!, [_1, _2]) } - public var InfoPlist_NSContactsUsageDescription: String { return self._s[3658]! } - public var Conversation_EmailCopied: String { return self._s[3660]! } - public var AutoNightTheme_UseSunsetSunrise: String { return self._s[3661]! } - public var Channel_OwnershipTransfer_ChangeOwner: String { return self._s[3662]! } - public var Call_VoiceOver_VoiceCallCanceled: String { return self._s[3663]! } - public var VoiceChat_LateBy: String { return self._s[3664]! } - public var Passport_Language_dv: String { return self._s[3665]! } - public var GroupPermission_AddSuccess: String { return self._s[3667]! } - public var Passport_Email_Help: String { return self._s[3668]! } - public var Call_ReportPlaceholder: String { return self._s[3669]! } - public var CreatePoll_AddOption: String { return self._s[3670]! } - public var MessagePoll_LabelAnonymousQuiz: String { return self._s[3672]! } - public var PeerInfo_ButtonLeave: String { return self._s[3673]! } - public var PhotoEditor_TiltShift: String { return self._s[3676]! } - public var SecretGif_Title: String { return self._s[3678]! } - public var GroupInfo_InviteLinks: String { return self._s[3679]! } - public var PhotoEditor_QualityVeryLow: String { return self._s[3680]! } - public var SocksProxySetup_Connecting: String { return self._s[3682]! } - public var PrivacySettings_PasscodeAndFaceId: String { return self._s[3683]! } - public var ContactInfo_PhoneLabelWork: String { return self._s[3684]! } - public var Stats_GroupTopHoursTitle: String { return self._s[3685]! } - public var Compose_NewMessage: String { return self._s[3686]! } - public var VoiceOver_Common_SwitchHint: String { return self._s[3687]! } - public var NotificationsSound_Synth: String { return self._s[3688]! } - public var ChatImport_UserErrorNotMutual: String { return self._s[3689]! } - public var Conversation_FileOpenIn: String { return self._s[3690]! } - public var AutoDownloadSettings_WifiTitle: String { return self._s[3691]! } - public var UserInfo_SendMessage: String { return self._s[3692]! } - public var Checkout_PayWithFaceId: String { return self._s[3693]! } + public var InfoPlist_NSContactsUsageDescription: String { return self._s[3659]! } + public var Conversation_EmailCopied: String { return self._s[3661]! } + public var AutoNightTheme_UseSunsetSunrise: String { return self._s[3662]! } + public var Channel_OwnershipTransfer_ChangeOwner: String { return self._s[3663]! } + public var Call_VoiceOver_VoiceCallCanceled: String { return self._s[3664]! } + public var VoiceChat_LateBy: String { return self._s[3665]! } + public var Passport_Language_dv: String { return self._s[3666]! } + public var GroupPermission_AddSuccess: String { return self._s[3668]! } + public var Passport_Email_Help: String { return self._s[3669]! } + public var Call_ReportPlaceholder: String { return self._s[3670]! } + public var CreatePoll_AddOption: String { return self._s[3671]! } + public var MessagePoll_LabelAnonymousQuiz: String { return self._s[3673]! } + public var PeerInfo_ButtonLeave: String { return self._s[3674]! } + public var PhotoEditor_TiltShift: String { return self._s[3677]! } + public var SecretGif_Title: String { return self._s[3679]! } + public var GroupInfo_InviteLinks: String { return self._s[3680]! } + public var PhotoEditor_QualityVeryLow: String { return self._s[3681]! } + public var SocksProxySetup_Connecting: String { return self._s[3683]! } + public var PrivacySettings_PasscodeAndFaceId: String { return self._s[3684]! } + public var ContactInfo_PhoneLabelWork: String { return self._s[3685]! } + public var Stats_GroupTopHoursTitle: String { return self._s[3686]! } + public var Compose_NewMessage: String { return self._s[3687]! } + public var VoiceOver_Common_SwitchHint: String { return self._s[3688]! } + public var NotificationsSound_Synth: String { return self._s[3689]! } + public var ChatImport_UserErrorNotMutual: String { return self._s[3690]! } + public var Conversation_FileOpenIn: String { return self._s[3691]! } + public var AutoDownloadSettings_WifiTitle: String { return self._s[3692]! } + public var UserInfo_SendMessage: String { return self._s[3693]! } + public var Checkout_PayWithFaceId: String { return self._s[3694]! } public func Map_LiveLocationShortHour(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3694]!, self._r[3694]!, [_0]) + return formatWithArgumentRanges(self._s[3695]!, self._r[3695]!, [_0]) } - public var TextFormat_Strikethrough: String { return self._s[3695]! } - public var SettingsSearch_Synonyms_Notifications_DisplayNamesOnLockScreen: String { return self._s[3696]! } - public var Conversation_ViewChannel: String { return self._s[3697]! } + public var TextFormat_Strikethrough: String { return self._s[3696]! } + public var SettingsSearch_Synonyms_Notifications_DisplayNamesOnLockScreen: String { return self._s[3697]! } + public var Conversation_ViewChannel: String { return self._s[3698]! } public func Message_ForwardedMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3698]!, self._r[3698]!, [_0]) + return formatWithArgumentRanges(self._s[3699]!, self._r[3699]!, [_0]) } - public var Channel_Stickers_Placeholder: String { return self._s[3699]! } - public var Channel_OwnershipTransfer_PasswordPlaceholder: String { return self._s[3700]! } - public var Message_ScamAccount: String { return self._s[3701]! } - public var Camera_FlashAuto: String { return self._s[3702]! } - public var Conversation_EncryptedDescription1: String { return self._s[3703]! } - public var LocalGroup_Text: String { return self._s[3704]! } - public var SettingsSearch_Synonyms_Data_Storage_KeepMedia: String { return self._s[3705]! } - public var UserInfo_FirstNamePlaceholder: String { return self._s[3706]! } - public var Conversation_SendMessageErrorFlood: String { return self._s[3707]! } - public var Conversation_EncryptedDescription2: String { return self._s[3708]! } - public var Conversation_CancelForwardText: String { return self._s[3709]! } - public var Notification_GroupActivated: String { return self._s[3710]! } - public var LastSeen_Lately: String { return self._s[3711]! } - public var Conversation_EncryptedDescription3: String { return self._s[3712]! } - public var SettingsSearch_Synonyms_Privacy_ProfilePhoto: String { return self._s[3713]! } - public var Conversation_SwipeToReplyHintText: String { return self._s[3714]! } - public var Conversation_EncryptedDescription4: String { return self._s[3715]! } - public var SharedMedia_EmptyTitle: String { return self._s[3716]! } - public var Appearance_CreateTheme: String { return self._s[3718]! } - public var Stats_SharesPerPost: String { return self._s[3719]! } - public var Contacts_TabTitle: String { return self._s[3720]! } - public var Weekday_ShortThursday: String { return self._s[3721]! } - public var MessageTimer_Forever: String { return self._s[3722]! } - public var ChatListFolder_CategoryArchived: String { return self._s[3723]! } - public var Channel_EditAdmin_PermissionDeleteMessages: String { return self._s[3724]! } - public var EditTheme_Create_TopInfo: String { return self._s[3726]! } + public var Channel_Stickers_Placeholder: String { return self._s[3700]! } + public var Channel_OwnershipTransfer_PasswordPlaceholder: String { return self._s[3701]! } + public var Message_ScamAccount: String { return self._s[3702]! } + public var Camera_FlashAuto: String { return self._s[3703]! } + public var Conversation_EncryptedDescription1: String { return self._s[3704]! } + public var LocalGroup_Text: String { return self._s[3705]! } + public var SettingsSearch_Synonyms_Data_Storage_KeepMedia: String { return self._s[3706]! } + public var UserInfo_FirstNamePlaceholder: String { return self._s[3707]! } + public var Conversation_SendMessageErrorFlood: String { return self._s[3708]! } + public var Conversation_EncryptedDescription2: String { return self._s[3709]! } + public var Conversation_CancelForwardText: String { return self._s[3710]! } + public var Notification_GroupActivated: String { return self._s[3711]! } + public var LastSeen_Lately: String { return self._s[3712]! } + public var Conversation_EncryptedDescription3: String { return self._s[3713]! } + public var SettingsSearch_Synonyms_Privacy_ProfilePhoto: String { return self._s[3714]! } + public var Conversation_SwipeToReplyHintText: String { return self._s[3715]! } + public var Conversation_EncryptedDescription4: String { return self._s[3716]! } + public var SharedMedia_EmptyTitle: String { return self._s[3717]! } + public var Appearance_CreateTheme: String { return self._s[3719]! } + public var Stats_SharesPerPost: String { return self._s[3720]! } + public var Contacts_TabTitle: String { return self._s[3721]! } + public var Weekday_ShortThursday: String { return self._s[3722]! } + public var MessageTimer_Forever: String { return self._s[3723]! } + public var ChatListFolder_CategoryArchived: String { return self._s[3724]! } + public var Channel_EditAdmin_PermissionDeleteMessages: String { return self._s[3725]! } + public var EditTheme_Create_TopInfo: String { return self._s[3727]! } public func VoiceOver_ChatList_MessageFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3727]!, self._r[3727]!, [_0]) + return formatWithArgumentRanges(self._s[3728]!, self._r[3728]!, [_0]) } - public var Month_GenDecember: String { return self._s[3728]! } - public var EnterPasscode_EnterPasscode: String { return self._s[3729]! } - public var SettingsSearch_Synonyms_Appearance_LargeEmoji: String { return self._s[3730]! } - public var PeopleNearby_CreateGroup: String { return self._s[3732]! } - public var Group_EditAdmin_PermissionChangeInfo: String { return self._s[3733]! } - public var Paint_ClearConfirm: String { return self._s[3734]! } - public var ChatList_ReadAll: String { return self._s[3735]! } - public var ChatSettings_IntentsSettings: String { return self._s[3736]! } - public var Passport_PassportInformation: String { return self._s[3738]! } - public var Login_CheckOtherSessionMessages: String { return self._s[3740]! } - public var Location_ProximityNotification_DistanceMI: String { return self._s[3743]! } - public var PhotoEditor_ExposureTool: String { return self._s[3744]! } - public var Group_Username_CreatePrivateLinkHelp: String { return self._s[3745]! } - public var SettingsSearch_Synonyms_Watch: String { return self._s[3746]! } - public var Stats_GroupTopPoster_History: String { return self._s[3747]! } - public var UserInfo_AddPhone: String { return self._s[3748]! } - public var Media_SendWithTimer: String { return self._s[3750]! } - public var SettingsSearch_Synonyms_Notifications_Title: String { return self._s[3751]! } - public var Channel_EditAdmin_PermissionEnabledByDefault: String { return self._s[3752]! } - public var GroupInfo_GroupHistoryShort: String { return self._s[3753]! } - public var PasscodeSettings_AutoLock_Disabled: String { return self._s[3754]! } - public var ChatList_Context_Unarchive: String { return self._s[3756]! } + public var Month_GenDecember: String { return self._s[3729]! } + public var EnterPasscode_EnterPasscode: String { return self._s[3730]! } + public var SettingsSearch_Synonyms_Appearance_LargeEmoji: String { return self._s[3731]! } + public var PeopleNearby_CreateGroup: String { return self._s[3733]! } + public var Group_EditAdmin_PermissionChangeInfo: String { return self._s[3734]! } + public var Paint_ClearConfirm: String { return self._s[3735]! } + public var ChatList_ReadAll: String { return self._s[3736]! } + public var ChatSettings_IntentsSettings: String { return self._s[3737]! } + public var Passport_PassportInformation: String { return self._s[3739]! } + public var Login_CheckOtherSessionMessages: String { return self._s[3741]! } + public var Location_ProximityNotification_DistanceMI: String { return self._s[3744]! } + public var PhotoEditor_ExposureTool: String { return self._s[3745]! } + public var Group_Username_CreatePrivateLinkHelp: String { return self._s[3746]! } + public var SettingsSearch_Synonyms_Watch: String { return self._s[3747]! } + public var Stats_GroupTopPoster_History: String { return self._s[3748]! } + public var UserInfo_AddPhone: String { return self._s[3749]! } + public var Media_SendWithTimer: String { return self._s[3751]! } + public var SettingsSearch_Synonyms_Notifications_Title: String { return self._s[3752]! } + public var Channel_EditAdmin_PermissionEnabledByDefault: String { return self._s[3753]! } + public var GroupInfo_GroupHistoryShort: String { return self._s[3754]! } + public var PasscodeSettings_AutoLock_Disabled: String { return self._s[3755]! } + public var ChatList_Context_Unarchive: String { return self._s[3757]! } public func DialogList_LiveLocationSharingTo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3757]!, self._r[3757]!, [_0]) + return formatWithArgumentRanges(self._s[3758]!, self._r[3758]!, [_0]) } - public var BlockedUsers_Title: String { return self._s[3759]! } - public var TwoStepAuth_EmailPlaceholder: String { return self._s[3760]! } - public var Media_ShareThisPhoto: String { return self._s[3761]! } - public var Notifications_DisplayNamesOnLockScreen: String { return self._s[3762]! } - public var Conversation_FilePhotoOrVideo: String { return self._s[3763]! } - public var Appearance_ThemePreview_Chat_2_ReplyName: String { return self._s[3767]! } - public var CallFeedback_ReasonNoise: String { return self._s[3769]! } - public var WebBrowser_Title: String { return self._s[3770]! } + public var BlockedUsers_Title: String { return self._s[3760]! } + public var TwoStepAuth_EmailPlaceholder: String { return self._s[3761]! } + public var Media_ShareThisPhoto: String { return self._s[3762]! } + public var Notifications_DisplayNamesOnLockScreen: String { return self._s[3763]! } + public var Conversation_FilePhotoOrVideo: String { return self._s[3764]! } + public var Appearance_ThemePreview_Chat_2_ReplyName: String { return self._s[3768]! } + public var CallFeedback_ReasonNoise: String { return self._s[3770]! } + public var WebBrowser_Title: String { return self._s[3771]! } public func Checkout_SavePasswordTimeoutAndTouchId(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3771]!, self._r[3771]!, [_0]) + return formatWithArgumentRanges(self._s[3772]!, self._r[3772]!, [_0]) } - public var Notification_MessageLifetime5s: String { return self._s[3773]! } - public var Passport_Address_AddResidentialAddress: String { return self._s[3774]! } - public var Profile_MessageLifetime1m: String { return self._s[3776]! } - public var Passport_ScanPassport: String { return self._s[3777]! } - public var Stats_LoadingTitle: String { return self._s[3778]! } - public var Passport_Address_AddTemporaryRegistration: String { return self._s[3780]! } - public var Permissions_NotificationsAllow_v0: String { return self._s[3781]! } - public var Login_InvalidFirstNameError: String { return self._s[3782]! } - public var Undo_ChatCleared: String { return self._s[3784]! } + public var Notification_MessageLifetime5s: String { return self._s[3774]! } + public var Passport_Address_AddResidentialAddress: String { return self._s[3775]! } + public var Profile_MessageLifetime1m: String { return self._s[3777]! } + public var Passport_ScanPassport: String { return self._s[3778]! } + public var Stats_LoadingTitle: String { return self._s[3779]! } + public var Passport_Address_AddTemporaryRegistration: String { return self._s[3781]! } + public var Permissions_NotificationsAllow_v0: String { return self._s[3782]! } + public var Login_InvalidFirstNameError: String { return self._s[3783]! } + public var Undo_ChatCleared: String { return self._s[3785]! } public func ApplyLanguage_ChangeLanguageUnofficialText(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3786]!, self._r[3786]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3787]!, self._r[3787]!, [_1, _2]) } - public var Conversation_PinMessageAlertPin: String { return self._s[3787]! } + public var Conversation_PinMessageAlertPin: String { return self._s[3788]! } public func Login_PhoneBannedEmailBody(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3788]!, self._r[3788]!, [_1, _2, _3, _4, _5]) + return formatWithArgumentRanges(self._s[3789]!, self._r[3789]!, [_1, _2, _3, _4, _5]) } public func PUSH_MESSAGE_FWD(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3789]!, self._r[3789]!, [_1]) + return formatWithArgumentRanges(self._s[3790]!, self._r[3790]!, [_1]) } - public var Share_MultipleMessagesDisabled: String { return self._s[3790]! } - public var TwoStepAuth_EmailInvalid: String { return self._s[3791]! } - public var EnterPasscode_ChangeTitle: String { return self._s[3793]! } - public var VoiceChat_InviteLink_Speaker: String { return self._s[3794]! } - public var CallSettings_RecentCalls: String { return self._s[3795]! } - public var GroupInfo_DeactivatedStatus: String { return self._s[3796]! } - public var AuthSessions_OtherSessions: String { return self._s[3797]! } - public var PrivacyLastSeenSettings_CustomHelp: String { return self._s[3798]! } - public var Tour_Text5: String { return self._s[3799]! } - public var Login_PadPhoneHelp: String { return self._s[3800]! } - public var Wallpaper_PhotoLibrary: String { return self._s[3803]! } - public var Conversation_ViewGroup: String { return self._s[3804]! } - public var PeopleNearby_MakeVisibleTitle: String { return self._s[3806]! } - public var VoiceOver_Chat_YourContact: String { return self._s[3807]! } - public var Watch_AuthRequired: String { return self._s[3808]! } - public var VoiceOver_Chat_ForwardedFromYou: String { return self._s[3810]! } - public var Conversation_ForwardContacts: String { return self._s[3811]! } - public var Conversation_InputTextPlaceholder: String { return self._s[3812]! } + public var Share_MultipleMessagesDisabled: String { return self._s[3791]! } + public var TwoStepAuth_EmailInvalid: String { return self._s[3792]! } + public var EnterPasscode_ChangeTitle: String { return self._s[3794]! } + public var VoiceChat_InviteLink_Speaker: String { return self._s[3795]! } + public var CallSettings_RecentCalls: String { return self._s[3796]! } + public var GroupInfo_DeactivatedStatus: String { return self._s[3797]! } + public var AuthSessions_OtherSessions: String { return self._s[3798]! } + public var PrivacyLastSeenSettings_CustomHelp: String { return self._s[3799]! } + public var Tour_Text5: String { return self._s[3800]! } + public var Login_PadPhoneHelp: String { return self._s[3801]! } + public var Wallpaper_PhotoLibrary: String { return self._s[3804]! } + public var Conversation_ViewGroup: String { return self._s[3805]! } + public var PeopleNearby_MakeVisibleTitle: String { return self._s[3807]! } + public var VoiceOver_Chat_YourContact: String { return self._s[3808]! } + public var Watch_AuthRequired: String { return self._s[3809]! } + public var VoiceOver_Chat_ForwardedFromYou: String { return self._s[3811]! } + public var Conversation_ForwardContacts: String { return self._s[3812]! } + public var Conversation_InputTextPlaceholder: String { return self._s[3813]! } public func PUSH_CHANNEL_MESSAGE_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3813]!, self._r[3813]!, [_1]) + return formatWithArgumentRanges(self._s[3814]!, self._r[3814]!, [_1]) } public func Conversation_MessageViaUser(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3814]!, self._r[3814]!, [_0]) + return formatWithArgumentRanges(self._s[3815]!, self._r[3815]!, [_0]) } - public var Channel_Setup_TypePrivate: String { return self._s[3815]! } + public var Channel_Setup_TypePrivate: String { return self._s[3816]! } public func Conversation_NoticeInvitedByInChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3816]!, self._r[3816]!, [_0]) + return formatWithArgumentRanges(self._s[3817]!, self._r[3817]!, [_0]) } - public var Checkout_OptionalTipItemPlaceholder: String { return self._s[3817]! } - public var InviteLink_Create_TimeLimitExpiryDate: String { return self._s[3818]! } - public var InfoPlist_NSSiriUsageDescription: String { return self._s[3819]! } - public var AutoDownloadSettings_Delimeter: String { return self._s[3820]! } - public var EmptyGroupInfo_Subtitle: String { return self._s[3821]! } - public var UserInfo_StartSecretChatStart: String { return self._s[3822]! } + public var Checkout_OptionalTipItemPlaceholder: String { return self._s[3818]! } + public var InviteLink_Create_TimeLimitExpiryDate: String { return self._s[3819]! } + public var InfoPlist_NSSiriUsageDescription: String { return self._s[3820]! } + public var AutoDownloadSettings_Delimeter: String { return self._s[3821]! } + public var EmptyGroupInfo_Subtitle: String { return self._s[3822]! } + public var UserInfo_StartSecretChatStart: String { return self._s[3823]! } public func GroupPermission_AddedInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3823]!, self._r[3823]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3824]!, self._r[3824]!, [_1, _2]) } public func Channel_AdminLog_MessageRestricted(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3824]!, self._r[3824]!, [_0, _1, _2]) + return formatWithArgumentRanges(self._s[3825]!, self._r[3825]!, [_0, _1, _2]) } public func Conversation_ForwardTooltip_TwoChats_Many(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3825]!, self._r[3825]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3826]!, self._r[3826]!, [_0, _1]) } - public var PrivacySettings_AutoArchiveTitle: String { return self._s[3826]! } - public var GroupInfo_InviteLink_LinkSection: String { return self._s[3827]! } - public var FastTwoStepSetup_EmailPlaceholder: String { return self._s[3828]! } - public var StickerPacksSettings_ArchivedMasks: String { return self._s[3830]! } - public var NewContact_Title: String { return self._s[3833]! } - public var Appearance_ThemeCarouselTintedNight: String { return self._s[3834]! } - public var VoiceChat_StatusSpeaking: String { return self._s[3835]! } - public var Notifications_PermissionsKeepDisabled: String { return self._s[3836]! } + public var PrivacySettings_AutoArchiveTitle: String { return self._s[3827]! } + public var GroupInfo_InviteLink_LinkSection: String { return self._s[3828]! } + public var FastTwoStepSetup_EmailPlaceholder: String { return self._s[3829]! } + public var StickerPacksSettings_ArchivedMasks: String { return self._s[3831]! } + public var NewContact_Title: String { return self._s[3834]! } + public var Appearance_ThemeCarouselTintedNight: String { return self._s[3835]! } + public var VoiceChat_StatusSpeaking: String { return self._s[3836]! } + public var Notifications_PermissionsKeepDisabled: String { return self._s[3837]! } public func Time_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3837]!, self._r[3837]!, [_0]) + return formatWithArgumentRanges(self._s[3838]!, self._r[3838]!, [_0]) } public func AutoNightTheme_LocationHelp(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3838]!, self._r[3838]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3839]!, self._r[3839]!, [_0, _1]) } - public var Chat_SlowmodeTooltipPending: String { return self._s[3839]! } + public var Chat_SlowmodeTooltipPending: String { return self._s[3840]! } public func Time_MediumDate(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3841]!, self._r[3841]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3842]!, self._r[3842]!, [_1, _2]) } - public var ContactInfo_PhoneLabelHome: String { return self._s[3842]! } - public var CallFeedback_ReasonInterruption: String { return self._s[3843]! } - public var Passport_Identity_OneOfTypeDriversLicense: String { return self._s[3844]! } - public var Conversation_MessageEditedLabel: String { return self._s[3847]! } - public var CallList_ActiveVoiceChatsHeader: String { return self._s[3848]! } - public var SocksProxySetup_PasswordPlaceholder: String { return self._s[3849]! } - public var ChatList_Context_AddToContacts: String { return self._s[3850]! } - public var Passport_Language_is: String { return self._s[3851]! } - public var Notification_PassportValueProofOfIdentity: String { return self._s[3852]! } - public var PhotoEditor_CurvesBlue: String { return self._s[3853]! } + public var ContactInfo_PhoneLabelHome: String { return self._s[3843]! } + public var CallFeedback_ReasonInterruption: String { return self._s[3844]! } + public var Passport_Identity_OneOfTypeDriversLicense: String { return self._s[3845]! } + public var Conversation_MessageEditedLabel: String { return self._s[3848]! } + public var CallList_ActiveVoiceChatsHeader: String { return self._s[3849]! } + public var SocksProxySetup_PasswordPlaceholder: String { return self._s[3850]! } + public var ChatList_Context_AddToContacts: String { return self._s[3851]! } + public var Passport_Language_is: String { return self._s[3852]! } + public var Notification_PassportValueProofOfIdentity: String { return self._s[3853]! } + public var PhotoEditor_CurvesBlue: String { return self._s[3854]! } public func FileSize_MB(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3854]!, self._r[3854]!, [_0]) + return formatWithArgumentRanges(self._s[3855]!, self._r[3855]!, [_0]) } - public var SocksProxySetup_Username: String { return self._s[3855]! } - public var Login_SmsRequestState3: String { return self._s[3856]! } - public var Message_PinnedVideoMessage: String { return self._s[3857]! } - public var SharedMedia_TitleLink: String { return self._s[3858]! } - public var Passport_FieldIdentity: String { return self._s[3859]! } - public var GroupInfo_Permissions_BroadcastConvert: String { return self._s[3861]! } + public var SocksProxySetup_Username: String { return self._s[3856]! } + public var Login_SmsRequestState3: String { return self._s[3857]! } + public var Message_PinnedVideoMessage: String { return self._s[3858]! } + public var SharedMedia_TitleLink: String { return self._s[3859]! } + public var Passport_FieldIdentity: String { return self._s[3860]! } + public var GroupInfo_Permissions_BroadcastConvert: String { return self._s[3862]! } public func Conversation_EncryptedPlaceholderTitleOutgoing(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3864]!, self._r[3864]!, [_0]) + return formatWithArgumentRanges(self._s[3865]!, self._r[3865]!, [_0]) } - public var DialogList_ProxyConnectionIssuesTooltip: String { return self._s[3867]! } - public var ReportSpam_DeleteThisChat: String { return self._s[3868]! } - public var Checkout_NewCard_CardholderNamePlaceholder: String { return self._s[3869]! } - public var Passport_Identity_DateOfBirth: String { return self._s[3870]! } - public var Call_StatusIncoming: String { return self._s[3871]! } - public var ChatAdmins_AdminLabel: String { return self._s[3872]! } + public var DialogList_ProxyConnectionIssuesTooltip: String { return self._s[3868]! } + public var ReportSpam_DeleteThisChat: String { return self._s[3869]! } + public var Checkout_NewCard_CardholderNamePlaceholder: String { return self._s[3870]! } + public var Passport_Identity_DateOfBirth: String { return self._s[3871]! } + public var Call_StatusIncoming: String { return self._s[3872]! } + public var ChatAdmins_AdminLabel: String { return self._s[3873]! } public func InstantPage_OpenInBrowser(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3873]!, self._r[3873]!, [_0]) + return formatWithArgumentRanges(self._s[3874]!, self._r[3874]!, [_0]) } public func Time_MonthOfYear_m10(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3875]!, self._r[3875]!, [_0]) + return formatWithArgumentRanges(self._s[3876]!, self._r[3876]!, [_0]) } - public var Message_PinnedAnimationMessage: String { return self._s[3876]! } - public var VoiceChat_TapToViewCameraVideo: String { return self._s[3877]! } - public var Conversation_ReportSpamAndLeave: String { return self._s[3878]! } - public var Preview_CopyAddress: String { return self._s[3879]! } - public var MediaPlayer_UnknownTrack: String { return self._s[3881]! } - public var Login_CancelSignUpConfirmation: String { return self._s[3882]! } - public var Map_OpenInYandexMaps: String { return self._s[3884]! } + public var Message_PinnedAnimationMessage: String { return self._s[3877]! } + public var VoiceChat_TapToViewCameraVideo: String { return self._s[3878]! } + public var Conversation_ReportSpamAndLeave: String { return self._s[3879]! } + public var Preview_CopyAddress: String { return self._s[3880]! } + public var MediaPlayer_UnknownTrack: String { return self._s[3882]! } + public var Login_CancelSignUpConfirmation: String { return self._s[3883]! } + public var Map_OpenInYandexMaps: String { return self._s[3885]! } public func Time_PreciseDate_m11(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3887]!, self._r[3887]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3888]!, self._r[3888]!, [_1, _2, _3]) } - public var GroupRemoved_Remove: String { return self._s[3888]! } - public var ChatListFolder_TitleCreate: String { return self._s[3889]! } + public var GroupRemoved_Remove: String { return self._s[3889]! } + public var ChatListFolder_TitleCreate: String { return self._s[3890]! } public func InstantPage_AuthorAndDateTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3891]!, self._r[3891]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3892]!, self._r[3892]!, [_1, _2]) } - public var Watch_UserInfo_MuteTitle: String { return self._s[3892]! } + public var Watch_UserInfo_MuteTitle: String { return self._s[3893]! } public func UserInfo_LinkForwardTooltip_TwoChats_One(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3894]!, self._r[3894]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3895]!, self._r[3895]!, [_0, _1]) } - public var Group_UpgradeNoticeText2: String { return self._s[3895]! } - public var Stats_GroupGrowthTitle: String { return self._s[3896]! } - public var CreatePoll_CancelConfirmation: String { return self._s[3899]! } - public var Month_GenOctober: String { return self._s[3900]! } - public var Conversation_TitleCommentsEmpty: String { return self._s[3901]! } - public var Settings_Appearance: String { return self._s[3902]! } + public var Group_UpgradeNoticeText2: String { return self._s[3896]! } + public var Stats_GroupGrowthTitle: String { return self._s[3897]! } + public var CreatePoll_CancelConfirmation: String { return self._s[3900]! } + public var Month_GenOctober: String { return self._s[3901]! } + public var Conversation_TitleCommentsEmpty: String { return self._s[3902]! } + public var Settings_Appearance: String { return self._s[3903]! } public func Time_MonthOfYear_m6(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3903]!, self._r[3903]!, [_0]) + return formatWithArgumentRanges(self._s[3904]!, self._r[3904]!, [_0]) } - public var UserInfo_AddToExisting: String { return self._s[3904]! } - public var Call_PhoneCallInProgressMessage: String { return self._s[3906]! } - public var Map_HomeAndWorkInfo: String { return self._s[3907]! } - public var InstantPage_VoiceOver_ResetFontSize: String { return self._s[3908]! } - public var Paint_Arrow: String { return self._s[3909]! } - public var InviteLink_CreatePrivateLinkHelp: String { return self._s[3910]! } + public var UserInfo_AddToExisting: String { return self._s[3905]! } + public var Call_PhoneCallInProgressMessage: String { return self._s[3907]! } + public var Map_HomeAndWorkInfo: String { return self._s[3908]! } + public var InstantPage_VoiceOver_ResetFontSize: String { return self._s[3909]! } + public var Paint_Arrow: String { return self._s[3910]! } + public var InviteLink_CreatePrivateLinkHelp: String { return self._s[3911]! } public func DialogList_MultipleTypingPair(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3911]!, self._r[3911]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3912]!, self._r[3912]!, [_0, _1]) } - public var CancelResetAccount_Title: String { return self._s[3912]! } - public var NotificationsSound_Circles: String { return self._s[3913]! } - public var Notifications_GroupNotificationsExceptionsHelp: String { return self._s[3914]! } - public var ChatState_Connecting: String { return self._s[3916]! } - public var Profile_MessageLifetime5s: String { return self._s[3917]! } + public var CancelResetAccount_Title: String { return self._s[3913]! } + public var NotificationsSound_Circles: String { return self._s[3914]! } + public var Notifications_GroupNotificationsExceptionsHelp: String { return self._s[3915]! } + public var ChatState_Connecting: String { return self._s[3917]! } + public var Profile_MessageLifetime5s: String { return self._s[3918]! } public func DialogList_AwaitingEncryption(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3918]!, self._r[3918]!, [_0]) + return formatWithArgumentRanges(self._s[3919]!, self._r[3919]!, [_0]) } - public var PrivacyPolicy_AgeVerificationTitle: String { return self._s[3919]! } - public var Channel_Username_CreatePublicLinkHelp: String { return self._s[3920]! } - public var AutoNightTheme_ScheduledTo: String { return self._s[3921]! } - public var Conversation_DefaultRestrictedStickers: String { return self._s[3923]! } - public var TwoStepAuth_ConfirmationTitle: String { return self._s[3924]! } + public var PrivacyPolicy_AgeVerificationTitle: String { return self._s[3920]! } + public var Channel_Username_CreatePublicLinkHelp: String { return self._s[3921]! } + public var AutoNightTheme_ScheduledTo: String { return self._s[3922]! } + public var Conversation_DefaultRestrictedStickers: String { return self._s[3924]! } + public var TwoStepAuth_ConfirmationTitle: String { return self._s[3925]! } public func Chat_UnsendMyMessagesAlertTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3925]!, self._r[3925]!, [_0]) + return formatWithArgumentRanges(self._s[3926]!, self._r[3926]!, [_0]) } - public var Passport_Phone_Help: String { return self._s[3926]! } - public var Privacy_ContactsSync: String { return self._s[3927]! } - public var CheckoutInfo_ReceiverInfoPhone: String { return self._s[3928]! } - public var Channel_AdminLogFilter_EventsLeavingSubscribers: String { return self._s[3930]! } - public var Map_SendMyCurrentLocation: String { return self._s[3931]! } - public var Map_AddressOnMap: String { return self._s[3932]! } - public var BroadcastGroups_ConfirmationAlert_Convert: String { return self._s[3934]! } - public var DialogList_SearchLabel: String { return self._s[3935]! } - public var Notification_Exceptions_NewException_NotificationHeader: String { return self._s[3936]! } - public var GroupInfo_FakeGroupWarning: String { return self._s[3937]! } - public var Conversation_ChecksTooltip_Read: String { return self._s[3939]! } - public var ConversationProfile_UnknownAddMemberError: String { return self._s[3941]! } - public var ChatList_Search_ShowMore: String { return self._s[3942]! } - public var DialogList_EncryptionRejected: String { return self._s[3943]! } - public var VoiceChat_InviteLinkCopiedText: String { return self._s[3944]! } - public var DialogList_DeleteBotConfirmation: String { return self._s[3945]! } - public var VoiceChat_StartRecordingText: String { return self._s[3946]! } - public var Privacy_TopPeersDelete: String { return self._s[3947]! } - public var AttachmentMenu_SendAsFile: String { return self._s[3949]! } - public var ChatList_GenericPsaAlert: String { return self._s[3951]! } - public var SecretTimer_ImageDescription: String { return self._s[3953]! } + public var Passport_Phone_Help: String { return self._s[3927]! } + public var Privacy_ContactsSync: String { return self._s[3928]! } + public var CheckoutInfo_ReceiverInfoPhone: String { return self._s[3929]! } + public var Channel_AdminLogFilter_EventsLeavingSubscribers: String { return self._s[3931]! } + public var Map_SendMyCurrentLocation: String { return self._s[3932]! } + public var Map_AddressOnMap: String { return self._s[3933]! } + public var BroadcastGroups_ConfirmationAlert_Convert: String { return self._s[3935]! } + public var DialogList_SearchLabel: String { return self._s[3936]! } + public var Notification_Exceptions_NewException_NotificationHeader: String { return self._s[3937]! } + public var GroupInfo_FakeGroupWarning: String { return self._s[3938]! } + public var Conversation_ChecksTooltip_Read: String { return self._s[3940]! } + public var ConversationProfile_UnknownAddMemberError: String { return self._s[3942]! } + public var ChatList_Search_ShowMore: String { return self._s[3943]! } + public var DialogList_EncryptionRejected: String { return self._s[3944]! } + public var VoiceChat_InviteLinkCopiedText: String { return self._s[3945]! } + public var DialogList_DeleteBotConfirmation: String { return self._s[3946]! } + public var VoiceChat_StartRecordingText: String { return self._s[3947]! } + public var Privacy_TopPeersDelete: String { return self._s[3948]! } + public var AttachmentMenu_SendAsFile: String { return self._s[3950]! } + public var ChatList_GenericPsaAlert: String { return self._s[3952]! } + public var SecretTimer_ImageDescription: String { return self._s[3954]! } public func Conversation_SetReminder_RemindOn(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3954]!, self._r[3954]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3955]!, self._r[3955]!, [_0, _1]) } - public var VoiceChat_EditNameSuccess: String { return self._s[3955]! } - public var ChatSettings_TextSizeUnits: String { return self._s[3956]! } - public var Notification_RenamedGroup: String { return self._s[3958]! } - public var Tour_Title2: String { return self._s[3959]! } - public var Settings_CopyUsername: String { return self._s[3960]! } - public var Compose_NewEncryptedChat: String { return self._s[3961]! } - public var Conversation_CloudStorageInfo_Title: String { return self._s[3962]! } - public var VoiceChat_SetReminder: String { return self._s[3963]! } - public var Month_ShortSeptember: String { return self._s[3964]! } - public var AutoDownloadSettings_OnForAll: String { return self._s[3965]! } - public var ChatList_DeleteForEveryoneConfirmationText: String { return self._s[3966]! } - public var VoiceChat_StartNow: String { return self._s[3967]! } - public var Call_StatusConnecting: String { return self._s[3969]! } - public var Privacy_GroupsAndChannels_NeverAllow_Placeholder: String { return self._s[3970]! } - public var Map_ShareLiveLocationHelp: String { return self._s[3971]! } - public var Cache_Files: String { return self._s[3972]! } - public var Notifications_Reset: String { return self._s[3973]! } + public var VoiceChat_EditNameSuccess: String { return self._s[3956]! } + public var ChatSettings_TextSizeUnits: String { return self._s[3957]! } + public var Notification_RenamedGroup: String { return self._s[3959]! } + public var Tour_Title2: String { return self._s[3960]! } + public var Settings_CopyUsername: String { return self._s[3961]! } + public var Compose_NewEncryptedChat: String { return self._s[3962]! } + public var Conversation_CloudStorageInfo_Title: String { return self._s[3963]! } + public var VoiceChat_SetReminder: String { return self._s[3964]! } + public var Month_ShortSeptember: String { return self._s[3965]! } + public var AutoDownloadSettings_OnForAll: String { return self._s[3966]! } + public var ChatList_DeleteForEveryoneConfirmationText: String { return self._s[3967]! } + public var VoiceChat_StartNow: String { return self._s[3968]! } + public var Call_StatusConnecting: String { return self._s[3970]! } + public var Privacy_GroupsAndChannels_NeverAllow_Placeholder: String { return self._s[3971]! } + public var Map_ShareLiveLocationHelp: String { return self._s[3972]! } + public var Cache_Files: String { return self._s[3973]! } + public var Notifications_Reset: String { return self._s[3974]! } public func Settings_KeepPhoneNumber(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3974]!, self._r[3974]!, [_0]) + return formatWithArgumentRanges(self._s[3975]!, self._r[3975]!, [_0]) } - public var Privacy_GroupsAndChannels_AlwaysAllow_Title: String { return self._s[3975]! } + public var Privacy_GroupsAndChannels_AlwaysAllow_Title: String { return self._s[3976]! } public func Conversation_OpenBotLinkLogin(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3976]!, self._r[3976]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3977]!, self._r[3977]!, [_1, _2]) } - public var Notification_CallIncomingShort: String { return self._s[3977]! } - public var UserInfo_BotPrivacy: String { return self._s[3980]! } - public var Appearance_BubbleCorners_Apply: String { return self._s[3981]! } - public var WebSearch_RecentClearConfirmation: String { return self._s[3982]! } - public var Conversation_ContextMenuLookUp: String { return self._s[3984]! } - public var Calls_RatingTitle: String { return self._s[3985]! } - public var SecretImage_Title: String { return self._s[3986]! } - public var Weekday_Monday: String { return self._s[3987]! } + public var Notification_CallIncomingShort: String { return self._s[3978]! } + public var UserInfo_BotPrivacy: String { return self._s[3981]! } + public var Appearance_BubbleCorners_Apply: String { return self._s[3982]! } + public var WebSearch_RecentClearConfirmation: String { return self._s[3983]! } + public var Conversation_ContextMenuLookUp: String { return self._s[3985]! } + public var Calls_RatingTitle: String { return self._s[3986]! } + public var SecretImage_Title: String { return self._s[3987]! } + public var Weekday_Monday: String { return self._s[3988]! } public func Passport_PrivacyPolicy(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3988]!, self._r[3988]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3989]!, self._r[3989]!, [_1, _2]) } - public var KeyCommand_JumpToPreviousChat: String { return self._s[3989]! } - public var VoiceChat_InviteLink_CopySpeakerLink: String { return self._s[3990]! } - public var Invitation_JoinVoiceChatAsListener: String { return self._s[3991]! } + public var KeyCommand_JumpToPreviousChat: String { return self._s[3990]! } + public var VoiceChat_InviteLink_CopySpeakerLink: String { return self._s[3991]! } + public var Invitation_JoinVoiceChatAsListener: String { return self._s[3992]! } public func DialogList_SearchSubtitleFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3992]!, self._r[3992]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3993]!, self._r[3993]!, [_1, _2]) } - public var Stats_GroupMembers: String { return self._s[3993]! } - public var Camera_Retake: String { return self._s[3994]! } - public var Conversation_SearchPlaceholder: String { return self._s[3996]! } + public var Stats_GroupMembers: String { return self._s[3994]! } + public var Camera_Retake: String { return self._s[3995]! } + public var Conversation_SearchPlaceholder: String { return self._s[3997]! } public func Passport_Identity_NativeNameGenericHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3997]!, self._r[3997]!, [_0]) + return formatWithArgumentRanges(self._s[3998]!, self._r[3998]!, [_0]) } - public var Channel_DiscussionGroup_Info: String { return self._s[3998]! } - public var SocksProxySetup_Hostname: String { return self._s[3999]! } - public var PrivacyLastSeenSettings_EmpryUsersPlaceholder: String { return self._s[4000]! } - public var Privacy_DeleteDrafts: String { return self._s[4002]! } - public var Login_CancelPhoneVerification: String { return self._s[4004]! } - public var TwoStepAuth_ResetAccountHelp: String { return self._s[4005]! } - public var VoiceOver_Chat_Profile: String { return self._s[4006]! } + public var Channel_DiscussionGroup_Info: String { return self._s[3999]! } + public var SocksProxySetup_Hostname: String { return self._s[4000]! } + public var PrivacyLastSeenSettings_EmpryUsersPlaceholder: String { return self._s[4001]! } + public var Privacy_DeleteDrafts: String { return self._s[4003]! } + public var Login_CancelPhoneVerification: String { return self._s[4005]! } + public var TwoStepAuth_ResetAccountHelp: String { return self._s[4006]! } + public var VoiceOver_Chat_Profile: String { return self._s[4007]! } public func SocksProxySetup_ProxyStatusPing(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4007]!, self._r[4007]!, [_0]) + return formatWithArgumentRanges(self._s[4008]!, self._r[4008]!, [_0]) } - public var TwoStepAuth_EmailSent: String { return self._s[4008]! } - public var Cache_Indexing: String { return self._s[4009]! } - public var Notifications_ExceptionsNone: String { return self._s[4010]! } - public var MessagePoll_LabelQuiz: String { return self._s[4011]! } - public var Call_EncryptionKey_Title: String { return self._s[4012]! } - public var Common_Yes: String { return self._s[4013]! } - public var Channel_ErrorAddBlocked: String { return self._s[4014]! } - public var Month_GenJanuary: String { return self._s[4015]! } - public var Checkout_NewCard_Title: String { return self._s[4016]! } + public var TwoStepAuth_EmailSent: String { return self._s[4009]! } + public var Cache_Indexing: String { return self._s[4010]! } + public var Notifications_ExceptionsNone: String { return self._s[4011]! } + public var MessagePoll_LabelQuiz: String { return self._s[4012]! } + public var Call_EncryptionKey_Title: String { return self._s[4013]! } + public var Common_Yes: String { return self._s[4014]! } + public var Channel_ErrorAddBlocked: String { return self._s[4015]! } + public var Month_GenJanuary: String { return self._s[4016]! } + public var Checkout_NewCard_Title: String { return self._s[4017]! } public func TwoStepAuth_EnterPasswordHint(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4017]!, self._r[4017]!, [_0]) + return formatWithArgumentRanges(self._s[4018]!, self._r[4018]!, [_0]) } - public var Conversation_InputTextPlaceholderReply: String { return self._s[4019]! } - public var PasscodeSettings_AutoLock_IfAwayFor_1hour: String { return self._s[4020]! } - public var Conversation_SendDice: String { return self._s[4021]! } + public var Conversation_InputTextPlaceholderReply: String { return self._s[4020]! } + public var PasscodeSettings_AutoLock_IfAwayFor_1hour: String { return self._s[4021]! } + public var Conversation_SendDice: String { return self._s[4022]! } public func ChatSettings_AutoDownloadSettings_TypeVideo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4022]!, self._r[4022]!, [_0]) - } - public func VoiceOver_Chat_VideoFrom(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[4023]!, self._r[4023]!, [_0]) } - public var Weekday_Wednesday: String { return self._s[4024]! } - public var ReportPeer_ReasonOther_Send: String { return self._s[4025]! } - public var PasscodeSettings_EncryptDataHelp: String { return self._s[4026]! } - public var PrivacyLastSeenSettings_CustomShareSettingsHelp: String { return self._s[4027]! } - public var OldChannels_NoticeTitle: String { return self._s[4028]! } - public var TwoStepAuth_ChangeEmail: String { return self._s[4029]! } - public var PasscodeSettings_PasscodeOptions: String { return self._s[4030]! } - public var InfoPlist_NSPhotoLibraryUsageDescription: String { return self._s[4031]! } - public var Passport_Address_AddUtilityBill: String { return self._s[4032]! } + public func VoiceOver_Chat_VideoFrom(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4024]!, self._r[4024]!, [_0]) + } + public var Weekday_Wednesday: String { return self._s[4025]! } + public var ReportPeer_ReasonOther_Send: String { return self._s[4026]! } + public var PasscodeSettings_EncryptDataHelp: String { return self._s[4027]! } + public var PrivacyLastSeenSettings_CustomShareSettingsHelp: String { return self._s[4028]! } + public var OldChannels_NoticeTitle: String { return self._s[4029]! } + public var TwoStepAuth_ChangeEmail: String { return self._s[4030]! } + public var PasscodeSettings_PasscodeOptions: String { return self._s[4031]! } + public var InfoPlist_NSPhotoLibraryUsageDescription: String { return self._s[4032]! } + public var Passport_Address_AddUtilityBill: String { return self._s[4033]! } public func Time_PreciseDate_m5(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4034]!, self._r[4034]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4035]!, self._r[4035]!, [_1, _2, _3]) } - public var TwoFactorSetup_EmailVerification_ResendAction: String { return self._s[4036]! } - public var Stats_GroupTopAdminsTitle: String { return self._s[4037]! } - public var Paint_Regular: String { return self._s[4039]! } - public var Message_Contact: String { return self._s[4040]! } - public var NetworkUsageSettings_MediaVideoDataSection: String { return self._s[4041]! } - public var VoiceOver_Chat_YourPhoto: String { return self._s[4042]! } - public var Notification_Mute1hMin: String { return self._s[4043]! } + public var TwoFactorSetup_EmailVerification_ResendAction: String { return self._s[4037]! } + public var Stats_GroupTopAdminsTitle: String { return self._s[4038]! } + public var Paint_Regular: String { return self._s[4040]! } + public var Message_Contact: String { return self._s[4041]! } + public var NetworkUsageSettings_MediaVideoDataSection: String { return self._s[4042]! } + public var VoiceOver_Chat_YourPhoto: String { return self._s[4043]! } + public var Notification_Mute1hMin: String { return self._s[4044]! } public func Login_BannedPhoneSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4044]!, self._r[4044]!, [_0]) + return formatWithArgumentRanges(self._s[4045]!, self._r[4045]!, [_0]) } - public var Profile_MessageLifetime1h: String { return self._s[4045]! } - public var TwoStepAuth_GenericHelp: String { return self._s[4046]! } - public var TextFormat_Monospace: String { return self._s[4047]! } - public var VoiceOver_Media_PlaybackRateChange: String { return self._s[4049]! } - public var Conversation_DeleteMessagesForMe: String { return self._s[4050]! } - public var ChatList_DeleteChat: String { return self._s[4051]! } - public var Channel_OwnershipTransfer_EnterPasswordText: String { return self._s[4054]! } + public var Profile_MessageLifetime1h: String { return self._s[4046]! } + public var TwoStepAuth_GenericHelp: String { return self._s[4047]! } + public var TextFormat_Monospace: String { return self._s[4048]! } + public var VoiceOver_Media_PlaybackRateChange: String { return self._s[4050]! } + public var Conversation_DeleteMessagesForMe: String { return self._s[4051]! } + public var ChatList_DeleteChat: String { return self._s[4052]! } + public var Channel_OwnershipTransfer_EnterPasswordText: String { return self._s[4055]! } public func Settings_ApplyProxyAlertCredentials(_ _1: String, _ _2: String, _ _3: String, _ _4: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4055]!, self._r[4055]!, [_1, _2, _3, _4]) + return formatWithArgumentRanges(self._s[4056]!, self._r[4056]!, [_1, _2, _3, _4]) } - public var Login_CancelPhoneVerificationStop: String { return self._s[4056]! } - public var Appearance_ThemePreview_ChatList_4_Name: String { return self._s[4057]! } - public var MediaPicker_MomentsDateRangeSameMonthYearFormat: String { return self._s[4058]! } + public var Login_CancelPhoneVerificationStop: String { return self._s[4057]! } + public var Appearance_ThemePreview_ChatList_4_Name: String { return self._s[4058]! } + public var MediaPicker_MomentsDateRangeSameMonthYearFormat: String { return self._s[4059]! } public func Channel_AdminLog_MessageToggleInvitesOn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4059]!, self._r[4059]!, [_0]) + return formatWithArgumentRanges(self._s[4060]!, self._r[4060]!, [_0]) } - public var Notifications_Badge_IncludeChannels: String { return self._s[4060]! } - public var InviteLink_CreatePrivateLinkHelpChannel: String { return self._s[4061]! } - public var StickerPack_ViewPack: String { return self._s[4064]! } - public var FastTwoStepSetup_PasswordConfirmationPlaceholder: String { return self._s[4066]! } - public var EditTheme_Expand_Preview_IncomingText: String { return self._s[4067]! } - public var Notifications_Title: String { return self._s[4068]! } - public var Conversation_InputTextPlaceholderComment: String { return self._s[4069]! } - public var GroupInfo_PublicLink: String { return self._s[4070]! } + public var Notifications_Badge_IncludeChannels: String { return self._s[4061]! } + public var InviteLink_CreatePrivateLinkHelpChannel: String { return self._s[4062]! } + public var StickerPack_ViewPack: String { return self._s[4065]! } + public var FastTwoStepSetup_PasswordConfirmationPlaceholder: String { return self._s[4067]! } + public var EditTheme_Expand_Preview_IncomingText: String { return self._s[4068]! } + public var Notifications_Title: String { return self._s[4069]! } + public var Conversation_InputTextPlaceholderComment: String { return self._s[4070]! } + public var GroupInfo_PublicLink: String { return self._s[4071]! } public func ScheduleVoiceChat_GroupText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4071]!, self._r[4071]!, [_0]) + return formatWithArgumentRanges(self._s[4072]!, self._r[4072]!, [_0]) } - public var VoiceOver_DiscardPreparedContent: String { return self._s[4072]! } - public var Conversation_Moderate_Ban: String { return self._s[4076]! } - public var InviteLink_Manage: String { return self._s[4077]! } - public var InstantPage_FontNewYork: String { return self._s[4078]! } + public var VoiceOver_DiscardPreparedContent: String { return self._s[4073]! } + public var Conversation_Moderate_Ban: String { return self._s[4077]! } + public var InviteLink_Manage: String { return self._s[4078]! } + public var InstantPage_FontNewYork: String { return self._s[4079]! } public func Activity_RemindAboutGroup(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4079]!, self._r[4079]!, [_0]) + return formatWithArgumentRanges(self._s[4080]!, self._r[4080]!, [_0]) } - public var TextFormat_Underline: String { return self._s[4080]! } + public var TextFormat_Underline: String { return self._s[4081]! } public func DownloadingStatus(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4081]!, self._r[4081]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4082]!, self._r[4082]!, [_0, _1]) } public func PUSH_PINNED_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4082]!, self._r[4082]!, [_1]) + return formatWithArgumentRanges(self._s[4083]!, self._r[4083]!, [_1]) } - public var PollResults_Collapse: String { return self._s[4084]! } - public var Contacts_GlobalSearch: String { return self._s[4085]! } + public var PollResults_Collapse: String { return self._s[4085]! } + public var Contacts_GlobalSearch: String { return self._s[4086]! } public func Conversation_EncryptionWaiting(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4087]!, self._r[4087]!, [_0]) + return formatWithArgumentRanges(self._s[4088]!, self._r[4088]!, [_0]) } - public var Channel_Management_LabelEditor: String { return self._s[4088]! } - public var SettingsSearch_Synonyms_Stickers_FeaturedPacks: String { return self._s[4090]! } - public var Conversation_Theme: String { return self._s[4091]! } + public var Channel_Management_LabelEditor: String { return self._s[4089]! } + public var SettingsSearch_Synonyms_Stickers_FeaturedPacks: String { return self._s[4091]! } + public var Conversation_Theme: String { return self._s[4092]! } public func PUSH_CHANNEL_MESSAGE_DOCS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4092]!, self._r[4092]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[4093]!, self._r[4093]!, [_1, "\(_2)"]) } - public var Conversation_LinkDialogSave: String { return self._s[4093]! } - public var EnterPasscode_TouchId: String { return self._s[4094]! } - public var Conversation_VoiceChatMediaRecordingRestricted: String { return self._s[4095]! } - public var Group_ErrorAdminsTooMuch: String { return self._s[4096]! } - public var Stats_MessageOverview: String { return self._s[4097]! } - public var Privacy_Calls_P2PAlways: String { return self._s[4099]! } - public var Message_Sticker: String { return self._s[4100]! } - public var Conversation_Mute: String { return self._s[4103]! } - public var VoiceChat_AnonymousDisabledAlertText: String { return self._s[4104]! } - public var ContactInfo_Title: String { return self._s[4105]! } + public var Conversation_LinkDialogSave: String { return self._s[4094]! } + public var EnterPasscode_TouchId: String { return self._s[4095]! } + public var Conversation_VoiceChatMediaRecordingRestricted: String { return self._s[4096]! } + public var Group_ErrorAdminsTooMuch: String { return self._s[4097]! } + public var Stats_MessageOverview: String { return self._s[4098]! } + public var Privacy_Calls_P2PAlways: String { return self._s[4100]! } + public var Message_Sticker: String { return self._s[4101]! } + public var Conversation_Mute: String { return self._s[4104]! } + public var VoiceChat_AnonymousDisabledAlertText: String { return self._s[4105]! } + public var ContactInfo_Title: String { return self._s[4106]! } public func PUSH_CHANNEL_MESSAGE_CONTACT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4106]!, self._r[4106]!, [_1]) + return formatWithArgumentRanges(self._s[4107]!, self._r[4107]!, [_1]) } - public var Channel_Setup_TypeHeader: String { return self._s[4107]! } - public var AuthSessions_LogOut: String { return self._s[4108]! } - public var ChatSettings_AutoDownloadReset: String { return self._s[4109]! } - public var VoiceChat_PinVideo: String { return self._s[4110]! } - public var Group_Info_Members: String { return self._s[4112]! } - public var ChatListFolderSettings_NewFolder: String { return self._s[4113]! } - public var Appearance_ThemePreview_ChatList_3_AuthorName: String { return self._s[4114]! } - public var CreatePoll_Title: String { return self._s[4115]! } - public var EditTheme_EditTitle: String { return self._s[4116]! } - public var ChatListFolderSettings_RecommendedFoldersSection: String { return self._s[4117]! } - public var TwoStepAuth_SetPassword: String { return self._s[4118]! } + public var Channel_Setup_TypeHeader: String { return self._s[4108]! } + public var AuthSessions_LogOut: String { return self._s[4109]! } + public var ChatSettings_AutoDownloadReset: String { return self._s[4110]! } + public var VoiceChat_PinVideo: String { return self._s[4111]! } + public var Group_Info_Members: String { return self._s[4113]! } + public var ChatListFolderSettings_NewFolder: String { return self._s[4114]! } + public var Appearance_ThemePreview_ChatList_3_AuthorName: String { return self._s[4115]! } + public var CreatePoll_Title: String { return self._s[4116]! } + public var EditTheme_EditTitle: String { return self._s[4117]! } + public var ChatListFolderSettings_RecommendedFoldersSection: String { return self._s[4118]! } + public var TwoStepAuth_SetPassword: String { return self._s[4119]! } public func Login_InvalidPhoneEmailSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4119]!, self._r[4119]!, [_0]) + return formatWithArgumentRanges(self._s[4120]!, self._r[4120]!, [_0]) } - public var BlockedUsers_Info: String { return self._s[4120]! } - public var AuthSessions_Sessions: String { return self._s[4121]! } - public var Group_EditAdmin_RankTitle: String { return self._s[4122]! } - public var Common_ActionNotAllowedError: String { return self._s[4123]! } - public var WebPreview_GettingLinkInfo: String { return self._s[4124]! } - public var Appearance_AppIconFilledX: String { return self._s[4125]! } - public var Passport_Email_EmailPlaceholder: String { return self._s[4126]! } - public var FeaturedStickers_OtherSection: String { return self._s[4127]! } - public var VoiceChat_RecordingStarted: String { return self._s[4128]! } - public var EditTheme_Edit_Preview_OutgoingText: String { return self._s[4129]! } - public var Profile_Username: String { return self._s[4130]! } - public var Settings_TipsUsername: String { return self._s[4131]! } - public var Appearance_RemoveTheme: String { return self._s[4132]! } - public var TwoStepAuth_SetupPasswordConfirmPassword: String { return self._s[4133]! } - public var Message_PinnedStickerMessage: String { return self._s[4134]! } - public var AccessDenied_VideoMicrophone: String { return self._s[4135]! } - public var WallpaperPreview_CustomColorBottomText: String { return self._s[4136]! } - public var Passport_Address_RegionPlaceholder: String { return self._s[4137]! } - public var Conversation_VoiceChat: String { return self._s[4138]! } - public var VoiceChat_EditBioSuccess: String { return self._s[4139]! } - public var SettingsSearch_Synonyms_Data_Storage_Title: String { return self._s[4140]! } - public var TwoStepAuth_Title: String { return self._s[4141]! } - public var VoiceOver_Chat_YourAnimatedSticker: String { return self._s[4142]! } - public var Checkout_WebConfirmation_Title: String { return self._s[4143]! } - public var AutoDownloadSettings_VoiceMessagesInfo: String { return self._s[4144]! } - public var ChatListFolder_CategoryGroups: String { return self._s[4146]! } - public var Stats_GroupTopInviter_Promote: String { return self._s[4147]! } - public var Conversation_EditingPhotoPanelTitle: String { return self._s[4148]! } - public var Month_GenJuly: String { return self._s[4149]! } - public var Passport_Identity_Gender: String { return self._s[4150]! } - public var Channel_DiscussionGroup_UnlinkGroup: String { return self._s[4151]! } - public var Notification_Exceptions_DeleteAll: String { return self._s[4152]! } - public var VoiceChat_StopRecording: String { return self._s[4153]! } + public var BlockedUsers_Info: String { return self._s[4121]! } + public var AuthSessions_Sessions: String { return self._s[4122]! } + public var Group_EditAdmin_RankTitle: String { return self._s[4123]! } + public var Common_ActionNotAllowedError: String { return self._s[4124]! } + public var WebPreview_GettingLinkInfo: String { return self._s[4125]! } + public var Appearance_AppIconFilledX: String { return self._s[4126]! } + public var Passport_Email_EmailPlaceholder: String { return self._s[4127]! } + public var FeaturedStickers_OtherSection: String { return self._s[4128]! } + public var VoiceChat_RecordingStarted: String { return self._s[4129]! } + public var EditTheme_Edit_Preview_OutgoingText: String { return self._s[4130]! } + public var Profile_Username: String { return self._s[4131]! } + public var Settings_TipsUsername: String { return self._s[4132]! } + public var Appearance_RemoveTheme: String { return self._s[4133]! } + public var TwoStepAuth_SetupPasswordConfirmPassword: String { return self._s[4134]! } + public var Message_PinnedStickerMessage: String { return self._s[4135]! } + public var AccessDenied_VideoMicrophone: String { return self._s[4136]! } + public var WallpaperPreview_CustomColorBottomText: String { return self._s[4137]! } + public var Passport_Address_RegionPlaceholder: String { return self._s[4138]! } + public var Conversation_VoiceChat: String { return self._s[4139]! } + public var VoiceChat_EditBioSuccess: String { return self._s[4140]! } + public var SettingsSearch_Synonyms_Data_Storage_Title: String { return self._s[4141]! } + public var TwoStepAuth_Title: String { return self._s[4142]! } + public var VoiceOver_Chat_YourAnimatedSticker: String { return self._s[4143]! } + public var Checkout_WebConfirmation_Title: String { return self._s[4144]! } + public var AutoDownloadSettings_VoiceMessagesInfo: String { return self._s[4145]! } + public var ChatListFolder_CategoryGroups: String { return self._s[4147]! } + public var Stats_GroupTopInviter_Promote: String { return self._s[4148]! } + public var Conversation_EditingPhotoPanelTitle: String { return self._s[4149]! } + public var Month_GenJuly: String { return self._s[4150]! } + public var Passport_Identity_Gender: String { return self._s[4151]! } + public var Channel_DiscussionGroup_UnlinkGroup: String { return self._s[4152]! } + public var Notification_Exceptions_DeleteAll: String { return self._s[4153]! } + public var VoiceChat_StopRecording: String { return self._s[4154]! } public func Conversation_FileHowToText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4154]!, self._r[4154]!, [_0]) + return formatWithArgumentRanges(self._s[4155]!, self._r[4155]!, [_0]) } public func Channel_AdminLog_MessageAdmin(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4155]!, self._r[4155]!, [_0, _1, _2]) + return formatWithArgumentRanges(self._s[4156]!, self._r[4156]!, [_0, _1, _2]) } - public var Login_CodeSentSms: String { return self._s[4156]! } + public var Login_CodeSentSms: String { return self._s[4157]! } public func VoiceOver_Chat_ReplyFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4157]!, self._r[4157]!, [_0]) + return formatWithArgumentRanges(self._s[4158]!, self._r[4158]!, [_0]) } - public var Login_CallRequestState2: String { return self._s[4158]! } - public var Channel_DiscussionGroup_Header: String { return self._s[4159]! } + public var Login_CallRequestState2: String { return self._s[4159]! } + public var Channel_DiscussionGroup_Header: String { return self._s[4160]! } public func Channel_AdminLog_MessageToggleInvitesOff(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4160]!, self._r[4160]!, [_0]) + return formatWithArgumentRanges(self._s[4161]!, self._r[4161]!, [_0]) } - public var Passport_Language_ms: String { return self._s[4161]! } - public var PeopleNearby_MakeInvisible: String { return self._s[4163]! } - public var ChatList_Search_FilterVoice: String { return self._s[4165]! } - public var Camera_TapAndHoldForVideo: String { return self._s[4167]! } - public var Permissions_NotificationsAllowInSettings_v0: String { return self._s[4168]! } + public var Passport_Language_ms: String { return self._s[4162]! } + public var PeopleNearby_MakeInvisible: String { return self._s[4164]! } + public var ChatList_Search_FilterVoice: String { return self._s[4166]! } + public var Camera_TapAndHoldForVideo: String { return self._s[4168]! } + public var Permissions_NotificationsAllowInSettings_v0: String { return self._s[4169]! } public func Notification_LeftChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4169]!, self._r[4169]!, [_0]) + return formatWithArgumentRanges(self._s[4170]!, self._r[4170]!, [_0]) } public func Call_VoiceChatInProgressMessageCall(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4170]!, self._r[4170]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4171]!, self._r[4171]!, [_1, _2]) } - public var Map_Locating: String { return self._s[4171]! } + public var Map_Locating: String { return self._s[4172]! } public func Checkout_SavePasswordTimeout(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4173]!, self._r[4173]!, [_0]) + return formatWithArgumentRanges(self._s[4174]!, self._r[4174]!, [_0]) } - public var Passport_Identity_TypeInternalPassport: String { return self._s[4175]! } - public var Appearance_ThemePreview_Chat_4_Text: String { return self._s[4176]! } - public var SettingsSearch_Synonyms_EditProfile_Username: String { return self._s[4177]! } - public var Stickers_Installed: String { return self._s[4178]! } - public var Notifications_PermissionsAllowInSettings: String { return self._s[4179]! } - public var StickerPackActionInfo_RemovedTitle: String { return self._s[4180]! } - public var CallSettings_Never: String { return self._s[4182]! } - public var Channel_Setup_TypePublicHelp: String { return self._s[4183]! } + public var Passport_Identity_TypeInternalPassport: String { return self._s[4176]! } + public var Appearance_ThemePreview_Chat_4_Text: String { return self._s[4177]! } + public var SettingsSearch_Synonyms_EditProfile_Username: String { return self._s[4178]! } + public var Stickers_Installed: String { return self._s[4179]! } + public var Notifications_PermissionsAllowInSettings: String { return self._s[4180]! } + public var StickerPackActionInfo_RemovedTitle: String { return self._s[4181]! } + public var CallSettings_Never: String { return self._s[4183]! } + public var Channel_Setup_TypePublicHelp: String { return self._s[4184]! } public func ChatList_DeleteForEveryone(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4185]!, self._r[4185]!, [_0]) + return formatWithArgumentRanges(self._s[4186]!, self._r[4186]!, [_0]) } - public var Message_Game: String { return self._s[4186]! } - public var Call_Message: String { return self._s[4187]! } + public var Message_Game: String { return self._s[4187]! } + public var Call_Message: String { return self._s[4188]! } public func PUSH_CHANNEL_MESSAGE_VIDEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4188]!, self._r[4188]!, [_1]) + return formatWithArgumentRanges(self._s[4189]!, self._r[4189]!, [_1]) } - public var ChannelIntro_Text: String { return self._s[4189]! } - public var StickerPack_Send: String { return self._s[4190]! } - public var Share_AuthDescription: String { return self._s[4191]! } - public var PasscodeSettings_AutoLock_IfAwayFor_5minutes: String { return self._s[4192]! } - public var CallFeedback_WhatWentWrong: String { return self._s[4193]! } - public var Common_Create: String { return self._s[4196]! } - public var Passport_Language_hy: String { return self._s[4197]! } - public var CreatePoll_Explanation: String { return self._s[4198]! } - public var GroupPermission_AddMembersNotAvailable: String { return self._s[4199]! } - public var ChatImport_CreateGroupAlertImportAction: String { return self._s[4200]! } - public var PeerInfo_ButtonVoiceChat: String { return self._s[4201]! } - public var Undo_ChatClearedForBothSides: String { return self._s[4202]! } - public var DialogList_NoMessagesTitle: String { return self._s[4203]! } - public var GroupInfo_Title: String { return self._s[4205]! } + public var ChannelIntro_Text: String { return self._s[4190]! } + public var StickerPack_Send: String { return self._s[4191]! } + public var Share_AuthDescription: String { return self._s[4192]! } + public var PasscodeSettings_AutoLock_IfAwayFor_5minutes: String { return self._s[4193]! } + public var CallFeedback_WhatWentWrong: String { return self._s[4194]! } + public var Common_Create: String { return self._s[4197]! } + public var Passport_Language_hy: String { return self._s[4198]! } + public var CreatePoll_Explanation: String { return self._s[4199]! } + public var GroupPermission_AddMembersNotAvailable: String { return self._s[4200]! } + public var ChatImport_CreateGroupAlertImportAction: String { return self._s[4201]! } + public var PeerInfo_ButtonVoiceChat: String { return self._s[4202]! } + public var Undo_ChatClearedForBothSides: String { return self._s[4203]! } + public var DialogList_NoMessagesTitle: String { return self._s[4204]! } + public var GroupInfo_Title: String { return self._s[4206]! } public func ScheduleVoiceChat_ScheduleToday(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4206]!, self._r[4206]!, [_0]) + return formatWithArgumentRanges(self._s[4207]!, self._r[4207]!, [_0]) } - public var UserInfo_ContactForwardTooltip_SavedMessages_One: String { return self._s[4207]! } - public var Channel_AdminLog_CanBanUsers: String { return self._s[4208]! } - public var PhoneNumberHelp_Help: String { return self._s[4209]! } - public var TwoStepAuth_AdditionalPassword: String { return self._s[4210]! } - public var Settings_Logout: String { return self._s[4211]! } - public var Privacy_PaymentsTitle: String { return self._s[4212]! } - public var StickerPacksSettings_StickerPacksSection: String { return self._s[4213]! } - public var Tour_Text6: String { return self._s[4214]! } - public var ChatImportActivity_Title: String { return self._s[4216]! } - public var Channel_Username_Help: String { return self._s[4217]! } - public var VoiceOver_Chat_RecordModeVoiceMessageInfo: String { return self._s[4218]! } - public var AttachmentMenu_Poll: String { return self._s[4219]! } - public var EditTheme_Create_Preview_IncomingReplyName: String { return self._s[4220]! } - public var Conversation_ReportSpamChannelConfirmation: String { return self._s[4221]! } - public var Passport_DeletePassport: String { return self._s[4222]! } - public var Login_Code: String { return self._s[4223]! } - public var Notification_SecretChatScreenshot: String { return self._s[4224]! } - public var VoiceChat_AddBio: String { return self._s[4225]! } - public var Login_CodeFloodError: String { return self._s[4226]! } + public var UserInfo_ContactForwardTooltip_SavedMessages_One: String { return self._s[4208]! } + public var Channel_AdminLog_CanBanUsers: String { return self._s[4209]! } + public var PhoneNumberHelp_Help: String { return self._s[4210]! } + public var TwoStepAuth_AdditionalPassword: String { return self._s[4211]! } + public var Settings_Logout: String { return self._s[4212]! } + public var Privacy_PaymentsTitle: String { return self._s[4213]! } + public var StickerPacksSettings_StickerPacksSection: String { return self._s[4214]! } + public var Tour_Text6: String { return self._s[4215]! } + public var ChatImportActivity_Title: String { return self._s[4217]! } + public var Channel_Username_Help: String { return self._s[4218]! } + public var VoiceOver_Chat_RecordModeVoiceMessageInfo: String { return self._s[4219]! } + public var AttachmentMenu_Poll: String { return self._s[4220]! } + public var EditTheme_Create_Preview_IncomingReplyName: String { return self._s[4221]! } + public var Conversation_ReportSpamChannelConfirmation: String { return self._s[4222]! } + public var Passport_DeletePassport: String { return self._s[4223]! } + public var Login_Code: String { return self._s[4224]! } + public var Notification_SecretChatScreenshot: String { return self._s[4225]! } + public var VoiceChat_AddBio: String { return self._s[4226]! } + public var Login_CodeFloodError: String { return self._s[4227]! } public func Notification_PinnedAnimationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4227]!, self._r[4227]!, [_0]) - } - public func Channel_Username_UsernameIsAvailable(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[4228]!, self._r[4228]!, [_0]) } - public var Watch_Stickers_Recents: String { return self._s[4229]! } - public var Generic_ErrorMoreInfo: String { return self._s[4230]! } + public func Channel_Username_UsernameIsAvailable(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4229]!, self._r[4229]!, [_0]) + } + public var Watch_Stickers_Recents: String { return self._s[4230]! } + public var Generic_ErrorMoreInfo: String { return self._s[4231]! } public func Call_AccountIsLoggedOnCurrentDevice(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4231]!, self._r[4231]!, [_0]) + return formatWithArgumentRanges(self._s[4232]!, self._r[4232]!, [_0]) } - public var AutoDownloadSettings_DataUsage: String { return self._s[4232]! } - public var Conversation_ViewTheme: String { return self._s[4233]! } - public var Contacts_InviteSearchLabel: String { return self._s[4234]! } - public var Settings_CancelUpload: String { return self._s[4236]! } - public var Settings_AppLanguage_Unofficial: String { return self._s[4237]! } + public var AutoDownloadSettings_DataUsage: String { return self._s[4233]! } + public var Conversation_ViewTheme: String { return self._s[4234]! } + public var Contacts_InviteSearchLabel: String { return self._s[4235]! } + public var Settings_CancelUpload: String { return self._s[4237]! } + public var Settings_AppLanguage_Unofficial: String { return self._s[4238]! } public func ChatList_ClearChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4238]!, self._r[4238]!, [_0]) + return formatWithArgumentRanges(self._s[4239]!, self._r[4239]!, [_0]) } - public var ChatList_AddFolder: String { return self._s[4239]! } - public var Conversation_Location: String { return self._s[4241]! } - public var Appearance_BubbleCorners_AdjustAdjacent: String { return self._s[4242]! } - public var DialogList_AdLabel: String { return self._s[4243]! } + public var ChatList_AddFolder: String { return self._s[4240]! } + public var Conversation_Location: String { return self._s[4242]! } + public var Appearance_BubbleCorners_AdjustAdjacent: String { return self._s[4243]! } + public var DialogList_AdLabel: String { return self._s[4244]! } public func Time_TomorrowAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4245]!, self._r[4245]!, [_0]) + return formatWithArgumentRanges(self._s[4246]!, self._r[4246]!, [_0]) } - public var Message_InvoiceLabel: String { return self._s[4246]! } - public var Channel_TooMuchBots: String { return self._s[4247]! } + public var Message_InvoiceLabel: String { return self._s[4247]! } + public var Channel_TooMuchBots: String { return self._s[4248]! } public func Channel_AdminLog_MessageRemovedChannelUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4249]!, self._r[4249]!, [_0]) + return formatWithArgumentRanges(self._s[4250]!, self._r[4250]!, [_0]) } - public var Call_IncomingVideoCall: String { return self._s[4250]! } - public var Conversation_LiveLocation: String { return self._s[4251]! } - public var VoiceChat_AskedToSpeakHelp: String { return self._s[4252]! } - public var TwoStepAuth_SetupPasswordEnterPasswordChange: String { return self._s[4253]! } - public var Passport_Identity_EditPassport: String { return self._s[4254]! } - public var Permissions_CellularDataTitle_v0: String { return self._s[4256]! } - public var ChatList_Search_NoResultsFitlerVoice: String { return self._s[4257]! } - public var GroupInfo_Permissions_AddException: String { return self._s[4258]! } + public var Call_IncomingVideoCall: String { return self._s[4251]! } + public var Conversation_LiveLocation: String { return self._s[4252]! } + public var VoiceChat_AskedToSpeakHelp: String { return self._s[4253]! } + public var TwoStepAuth_SetupPasswordEnterPasswordChange: String { return self._s[4254]! } + public var Passport_Identity_EditPassport: String { return self._s[4255]! } + public var Permissions_CellularDataTitle_v0: String { return self._s[4257]! } + public var ChatList_Search_NoResultsFitlerVoice: String { return self._s[4258]! } + public var GroupInfo_Permissions_AddException: String { return self._s[4259]! } public func VoiceChat_RemovePeerConfirmationChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4260]!, self._r[4260]!, [_0]) + return formatWithArgumentRanges(self._s[4261]!, self._r[4261]!, [_0]) } - public var Channel_AdminLog_CanInviteUsers: String { return self._s[4261]! } - public var Channel_MessageVideoUpdated: String { return self._s[4262]! } - public var GroupInfo_Permissions_EditingDisabled: String { return self._s[4263]! } - public var AutoremoveSetup_TimeSectionHeader: String { return self._s[4266]! } - public var AccessDenied_Camera: String { return self._s[4267]! } + public var Channel_AdminLog_CanInviteUsers: String { return self._s[4262]! } + public var Channel_MessageVideoUpdated: String { return self._s[4263]! } + public var GroupInfo_Permissions_EditingDisabled: String { return self._s[4264]! } + public var AutoremoveSetup_TimeSectionHeader: String { return self._s[4267]! } + public var AccessDenied_Camera: String { return self._s[4268]! } public func Target_InviteToGroupConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4268]!, self._r[4268]!, [_0]) + return formatWithArgumentRanges(self._s[4269]!, self._r[4269]!, [_0]) } - public var Theme_Context_ChangeColors: String { return self._s[4269]! } - public var PrivacySettings_TwoStepAuth: String { return self._s[4270]! } - public var Privacy_Forwards_PreviewMessageText: String { return self._s[4271]! } - public var Login_CodeExpiredError: String { return self._s[4272]! } - public var State_ConnectingToProxy: String { return self._s[4273]! } - public var TextFormat_Link: String { return self._s[4274]! } - public var Passport_Language_lv: String { return self._s[4276]! } - public var Conversation_AutoremoveTimerRemovedGroup: String { return self._s[4277]! } - public var AccessDenied_VoiceMicrophone: String { return self._s[4278]! } - public var WallpaperPreview_SwipeBottomText: String { return self._s[4279]! } - public var ProfilePhoto_SetMainVideo: String { return self._s[4280]! } - public var AutoDownloadSettings_Cellular: String { return self._s[4282]! } - public var ChatSettings_AutoDownloadVoiceMessages: String { return self._s[4283]! } - public var Calls_NoVoiceAndVideoCallsPlaceholder: String { return self._s[4284]! } + public var Theme_Context_ChangeColors: String { return self._s[4270]! } + public var PrivacySettings_TwoStepAuth: String { return self._s[4271]! } + public var Privacy_Forwards_PreviewMessageText: String { return self._s[4272]! } + public var Login_CodeExpiredError: String { return self._s[4273]! } + public var State_ConnectingToProxy: String { return self._s[4274]! } + public var TextFormat_Link: String { return self._s[4275]! } + public var Passport_Language_lv: String { return self._s[4277]! } + public var Conversation_AutoremoveTimerRemovedGroup: String { return self._s[4278]! } + public var AccessDenied_VoiceMicrophone: String { return self._s[4279]! } + public var WallpaperPreview_SwipeBottomText: String { return self._s[4280]! } + public var ProfilePhoto_SetMainVideo: String { return self._s[4281]! } + public var AutoDownloadSettings_Cellular: String { return self._s[4283]! } + public var ChatSettings_AutoDownloadVoiceMessages: String { return self._s[4284]! } + public var Calls_NoVoiceAndVideoCallsPlaceholder: String { return self._s[4285]! } public func Channel_AdminLog_MessageKickedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4285]!, self._r[4285]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4286]!, self._r[4286]!, [_1, _2]) } - public var ChatList_EmptyChatListFilterTitle: String { return self._s[4286]! } - public var Checkout_PayNone: String { return self._s[4287]! } - public var NotificationsSound_Complete: String { return self._s[4289]! } - public var TwoStepAuth_ConfirmEmailCodePlaceholder: String { return self._s[4290]! } - public var InviteLink_CreateInfo: String { return self._s[4291]! } - public var AuthSessions_DevicesTitle: String { return self._s[4292]! } + public var ChatList_EmptyChatListFilterTitle: String { return self._s[4287]! } + public var Checkout_PayNone: String { return self._s[4288]! } + public var NotificationsSound_Complete: String { return self._s[4290]! } + public var TwoStepAuth_ConfirmEmailCodePlaceholder: String { return self._s[4291]! } + public var InviteLink_CreateInfo: String { return self._s[4292]! } + public var AuthSessions_DevicesTitle: String { return self._s[4293]! } public func DialogList_MultipleTyping(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4293]!, self._r[4293]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4294]!, self._r[4294]!, [_0, _1]) } - public var Message_LiveLocation: String { return self._s[4294]! } - public var Watch_Suggestion_BRB: String { return self._s[4295]! } - public var Channel_BanUser_Title: String { return self._s[4296]! } - public var SettingsSearch_Synonyms_Privacy_Data_Title: String { return self._s[4297]! } - public var Conversation_Dice_u1F3C0: String { return self._s[4298]! } - public var Conversation_ClearSelfHistory: String { return self._s[4299]! } - public var ProfilePhoto_OpenGallery: String { return self._s[4300]! } - public var PrivacySettings_LastSeenTitle: String { return self._s[4301]! } - public var Weekday_Thursday: String { return self._s[4302]! } - public var BroadcastListInfo_AddRecipient: String { return self._s[4303]! } - public var Privacy_ProfilePhoto: String { return self._s[4305]! } - public var StickerPacksSettings_ArchivedPacks_Info: String { return self._s[4306]! } + public var Message_LiveLocation: String { return self._s[4295]! } + public var Watch_Suggestion_BRB: String { return self._s[4296]! } + public var Channel_BanUser_Title: String { return self._s[4297]! } + public var SettingsSearch_Synonyms_Privacy_Data_Title: String { return self._s[4298]! } + public var Conversation_Dice_u1F3C0: String { return self._s[4299]! } + public var Conversation_ClearSelfHistory: String { return self._s[4300]! } + public var ProfilePhoto_OpenGallery: String { return self._s[4301]! } + public var PrivacySettings_LastSeenTitle: String { return self._s[4302]! } + public var Weekday_Thursday: String { return self._s[4303]! } + public var BroadcastListInfo_AddRecipient: String { return self._s[4304]! } + public var Privacy_ProfilePhoto: String { return self._s[4306]! } + public var StickerPacksSettings_ArchivedPacks_Info: String { return self._s[4307]! } public func Channel_AdminLog_MessageChangedUnlinkedGroup(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4307]!, self._r[4307]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4308]!, self._r[4308]!, [_1, _2]) } - public var Message_Audio: String { return self._s[4308]! } - public var Conversation_Info: String { return self._s[4309]! } - public var Cache_Videos: String { return self._s[4310]! } - public var Appearance_ThemePreview_ChatList_6_Text: String { return self._s[4311]! } - public var Channel_ErrorAddTooMuch: String { return self._s[4312]! } + public var Message_Audio: String { return self._s[4309]! } + public var Conversation_Info: String { return self._s[4310]! } + public var Cache_Videos: String { return self._s[4311]! } + public var Appearance_ThemePreview_ChatList_6_Text: String { return self._s[4312]! } + public var Channel_ErrorAddTooMuch: String { return self._s[4313]! } public func ChatList_DeleteSecretChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4313]!, self._r[4313]!, [_0]) + return formatWithArgumentRanges(self._s[4314]!, self._r[4314]!, [_0]) } - public var VoiceChat_EditBio: String { return self._s[4314]! } - public var ChannelMembers_ChannelAdminsTitle: String { return self._s[4316]! } - public var ScheduledMessages_Title: String { return self._s[4319]! } - public var ShareFileTip_Title: String { return self._s[4322]! } - public var Chat_Gifs_TrendingSectionHeader: String { return self._s[4323]! } - public var ChatList_RemoveFolderConfirmation: String { return self._s[4324]! } + public var VoiceChat_EditBio: String { return self._s[4315]! } + public var ChannelMembers_ChannelAdminsTitle: String { return self._s[4317]! } + public var VoiceChat_ShareScreen: String { return self._s[4320]! } + public var ScheduledMessages_Title: String { return self._s[4321]! } + public var ShareFileTip_Title: String { return self._s[4324]! } + public var Chat_Gifs_TrendingSectionHeader: String { return self._s[4325]! } + public var ChatList_RemoveFolderConfirmation: String { return self._s[4326]! } public func PUSH_CHAT_MESSAGE_GEOLIVE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4325]!, self._r[4325]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4327]!, self._r[4327]!, [_1, _2]) } - public var Conversation_ContextViewStats: String { return self._s[4327]! } - public var Channel_DiscussionGroup_SearchPlaceholder: String { return self._s[4328]! } - public var PasscodeSettings_Title: String { return self._s[4329]! } - public var Channel_AdminLog_SendPolls: String { return self._s[4330]! } - public var LastSeen_ALongTimeAgo: String { return self._s[4331]! } + public var Conversation_ContextViewStats: String { return self._s[4329]! } + public var Channel_DiscussionGroup_SearchPlaceholder: String { return self._s[4330]! } + public var PasscodeSettings_Title: String { return self._s[4331]! } + public var Channel_AdminLog_SendPolls: String { return self._s[4332]! } + public var LastSeen_ALongTimeAgo: String { return self._s[4333]! } public func PUSH_CHANNEL_MESSAGE_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4332]!, self._r[4332]!, [_1]) + return formatWithArgumentRanges(self._s[4334]!, self._r[4334]!, [_1]) } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChannels: String { return self._s[4333]! } - public var ChannelInfo_FakeChannelWarning: String { return self._s[4334]! } - public var CallFeedback_VideoReasonLowQuality: String { return self._s[4335]! } - public var Conversation_PinnedPreviousMessage: String { return self._s[4336]! } - public var SocksProxySetup_AddProxyTitle: String { return self._s[4337]! } - public var Passport_Identity_AddInternalPassport: String { return self._s[4338]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChannels: String { return self._s[4335]! } + public var ChannelInfo_FakeChannelWarning: String { return self._s[4336]! } + public var CallFeedback_VideoReasonLowQuality: String { return self._s[4337]! } + public var Conversation_PinnedPreviousMessage: String { return self._s[4338]! } + public var SocksProxySetup_AddProxyTitle: String { return self._s[4339]! } + public var Passport_Identity_AddInternalPassport: String { return self._s[4340]! } public func ChatList_RemovedFromFolderTooltip(_ _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 func Conversation_SetReminder_RemindToday(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4340]!, self._r[4340]!, [_0]) + return formatWithArgumentRanges(self._s[4342]!, self._r[4342]!, [_0]) } - public var Passport_Identity_GenderFemale: String { return self._s[4341]! } - public var Location_ProximityNotification_DistanceKM: String { return self._s[4344]! } - public var ConvertToSupergroup_HelpTitle: String { return self._s[4345]! } + public var Passport_Identity_GenderFemale: String { return self._s[4343]! } + public var Location_ProximityNotification_DistanceKM: String { return self._s[4346]! } + public var ConvertToSupergroup_HelpTitle: String { return self._s[4347]! } public func Message_ImportedDateFormat(_ _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 VoiceChat_Audio: String { return self._s[4347]! } - public var SharedMedia_TitleAll: String { return self._s[4348]! } - public var Settings_Context_Logout: String { return self._s[4349]! } - public var GroupInfo_SetGroupPhotoDelete: String { return self._s[4352]! } - public var Settings_About_Title: String { return self._s[4353]! } - public var StickerSettings_ContextHide: String { return self._s[4354]! } + public var VoiceChat_Audio: String { return self._s[4349]! } + public var SharedMedia_TitleAll: String { return self._s[4350]! } + public var Settings_Context_Logout: String { return self._s[4351]! } + public var GroupInfo_SetGroupPhotoDelete: String { return self._s[4354]! } + public var Settings_About_Title: String { return self._s[4355]! } + public var StickerSettings_ContextHide: String { return self._s[4356]! } public func AutoDownloadSettings_UpTo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4355]!, self._r[4355]!, [_0]) + return formatWithArgumentRanges(self._s[4357]!, self._r[4357]!, [_0]) } public func Conversation_LiveLocationYouAndOther(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4356]!, self._r[4356]!, [_0]) + return formatWithArgumentRanges(self._s[4358]!, self._r[4358]!, [_0]) } - public var ChatImport_SelectionConfirmationAlertImportAction: String { return self._s[4358]! } - public var Common_Cancel: String { return self._s[4359]! } - public var CallFeedback_Title: String { return self._s[4361]! } + public var ChatImport_SelectionConfirmationAlertImportAction: String { return self._s[4360]! } + public var Common_Cancel: String { return self._s[4361]! } + public var CallFeedback_Title: String { return self._s[4363]! } public func Notification_PinnedContactMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4362]!, self._r[4362]!, [_0]) + return formatWithArgumentRanges(self._s[4364]!, self._r[4364]!, [_0]) } - public var Conversation_StickerAddedToFavorites: String { return self._s[4363]! } - public var Activity_UploadingVideoMessage: String { return self._s[4365]! } - public var MediaPicker_Send: String { return self._s[4366]! } - public var PasscodeSettings_AutoLock_IfAwayFor_1minute: String { return self._s[4367]! } - public var Conversation_LiveLocationYou: String { return self._s[4368]! } - public var Notifications_ExceptionsUnmuted: String { return self._s[4369]! } + public var Conversation_StickerAddedToFavorites: String { return self._s[4365]! } + public var Activity_UploadingVideoMessage: String { return self._s[4367]! } + public var MediaPicker_Send: String { return self._s[4368]! } + public var PasscodeSettings_AutoLock_IfAwayFor_1minute: String { return self._s[4369]! } + public var Conversation_LiveLocationYou: String { return self._s[4370]! } + public var Notifications_ExceptionsUnmuted: String { return self._s[4371]! } public func Channel_AdminLog_MessageGroupPreHistoryHidden(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4371]!, self._r[4371]!, [_0]) + return formatWithArgumentRanges(self._s[4373]!, self._r[4373]!, [_0]) } public func PUSH_CHAT_ADD_YOU(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4372]!, self._r[4372]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4374]!, self._r[4374]!, [_1, _2]) } - public var Checkout_PaymentLiabilityAlert: String { return self._s[4373]! } - public var Conversation_ViewBackground: String { return self._s[4374]! } - public var ChatSettings_PrivateChats: String { return self._s[4377]! } - public var Conversation_ErrorInaccessibleMessage: String { return self._s[4378]! } - public var BroadcastGroups_LimitAlert_LearnMore: String { return self._s[4379]! } - public var Appearance_ThemeNight: String { return self._s[4380]! } - public var Common_Search: String { return self._s[4381]! } - public var TwoStepAuth_ReEnterPasswordTitle: String { return self._s[4382]! } - public var ChangePhoneNumberNumber_Help: String { return self._s[4384]! } - public var InviteLink_QRCode_Share: String { return self._s[4385]! } - public var Stickers_SuggestAdded: String { return self._s[4387]! } - public var Conversation_DiscardVoiceMessageDescription: String { return self._s[4390]! } - public var Widget_UpdatedTodayAt: String { return self._s[4391]! } - public var NetworkUsageSettings_Cellular: String { return self._s[4392]! } - public var CheckoutInfo_Title: String { return self._s[4393]! } - public var Conversation_ShareBotLocationConfirmationTitle: String { return self._s[4394]! } - public var Channel_BotDoesntSupportGroups: String { return self._s[4395]! } + public var Checkout_PaymentLiabilityAlert: String { return self._s[4375]! } + public var Conversation_ViewBackground: String { return self._s[4376]! } + public var ChatSettings_PrivateChats: String { return self._s[4379]! } + public var Conversation_ErrorInaccessibleMessage: String { return self._s[4380]! } + public var BroadcastGroups_LimitAlert_LearnMore: String { return self._s[4381]! } + public var Appearance_ThemeNight: String { return self._s[4382]! } + public var Common_Search: String { return self._s[4383]! } + public var TwoStepAuth_ReEnterPasswordTitle: String { return self._s[4384]! } + public var ChangePhoneNumberNumber_Help: String { return self._s[4386]! } + public var InviteLink_QRCode_Share: String { return self._s[4387]! } + public var Stickers_SuggestAdded: String { return self._s[4389]! } + public var Conversation_DiscardVoiceMessageDescription: String { return self._s[4392]! } + public var Widget_UpdatedTodayAt: String { return self._s[4393]! } + public var NetworkUsageSettings_Cellular: String { return self._s[4394]! } + public var CheckoutInfo_Title: String { return self._s[4395]! } + public var Conversation_ShareBotLocationConfirmationTitle: String { return self._s[4396]! } + public var Channel_BotDoesntSupportGroups: String { return self._s[4397]! } public func DialogList_SingleRecordingAudioSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4396]!, self._r[4396]!, [_0]) + return formatWithArgumentRanges(self._s[4398]!, self._r[4398]!, [_0]) } - public var MaskStickerSettings_Info: String { return self._s[4398]! } - public var GroupRemoved_DeleteUser: String { return self._s[4400]! } - public var Contacts_ShareTelegram: String { return self._s[4401]! } - public var Group_UpgradeNoticeText1: String { return self._s[4402]! } + public var MaskStickerSettings_Info: String { return self._s[4400]! } + public var GroupRemoved_DeleteUser: String { return self._s[4402]! } + public var Contacts_ShareTelegram: String { return self._s[4403]! } + public var Group_UpgradeNoticeText1: String { return self._s[4404]! } public func PUSH_PHONE_CALL_REQUEST(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4403]!, self._r[4403]!, [_1]) + return formatWithArgumentRanges(self._s[4405]!, self._r[4405]!, [_1]) } - public var PrivacyLastSeenSettings_Title: String { return self._s[4404]! } - public var SettingsSearch_Synonyms_Support: String { return self._s[4408]! } - public var PhotoEditor_TintTool: String { return self._s[4409]! } - public var ChatImportActivity_OpenApp: String { return self._s[4411]! } - public var GroupPermission_NoSendPolls: String { return self._s[4412]! } - public var NotificationsSound_None: String { return self._s[4413]! } + public var PrivacyLastSeenSettings_Title: String { return self._s[4406]! } + public var SettingsSearch_Synonyms_Support: String { return self._s[4410]! } + public var PhotoEditor_TintTool: String { return self._s[4411]! } + public var ChatImportActivity_OpenApp: String { return self._s[4413]! } + public var GroupPermission_NoSendPolls: String { return self._s[4414]! } + public var NotificationsSound_None: String { return self._s[4415]! } public func LOCAL_CHANNEL_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4414]!, self._r[4414]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[4416]!, self._r[4416]!, [_1, "\(_2)"]) } - public var CheckoutInfo_ShippingInfoCityPlaceholder: String { return self._s[4417]! } + public var CheckoutInfo_ShippingInfoCityPlaceholder: String { return self._s[4419]! } public func Conversation_AutoremoveTimerSetChannel(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4419]!, self._r[4419]!, [_1]) + return formatWithArgumentRanges(self._s[4421]!, self._r[4421]!, [_1]) } - public var ExplicitContent_AlertChannel: String { return self._s[4420]! } - public var Conversation_ClousStorageInfo_Description1: String { return self._s[4421]! } - public var Contacts_SortedByPresence: String { return self._s[4422]! } - public var WallpaperSearch_ColorGray: String { return self._s[4423]! } - public var Channel_AdminLogFilter_EventsNewSubscribers: String { return self._s[4424]! } - public var Conversation_ReportSpam: String { return self._s[4425]! } - public var ChatList_Search_NoResultsFilter: String { return self._s[4428]! } - public var WallpaperSearch_ColorBlack: String { return self._s[4429]! } - public var ArchivedChats_IntroTitle3: String { return self._s[4430]! } - public var InviteLink_DeleteAllRevokedLinksAlert_Action: String { return self._s[4431]! } + public var ExplicitContent_AlertChannel: String { return self._s[4422]! } + public var Conversation_ClousStorageInfo_Description1: String { return self._s[4423]! } + public var Contacts_SortedByPresence: String { return self._s[4424]! } + public var WallpaperSearch_ColorGray: String { return self._s[4425]! } + public var Channel_AdminLogFilter_EventsNewSubscribers: String { return self._s[4426]! } + public var Conversation_ReportSpam: String { return self._s[4427]! } + public var ChatList_Search_NoResultsFilter: String { return self._s[4430]! } + public var WallpaperSearch_ColorBlack: String { return self._s[4431]! } + public var ArchivedChats_IntroTitle3: String { return self._s[4432]! } + public var InviteLink_DeleteAllRevokedLinksAlert_Action: String { return self._s[4433]! } public func VoiceChat_PeerJoinedText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4432]!, self._r[4432]!, [_0]) + return formatWithArgumentRanges(self._s[4434]!, self._r[4434]!, [_0]) } - public var Conversation_DefaultRestrictedText: String { return self._s[4433]! } - public var Settings_Devices: String { return self._s[4434]! } - public var Call_AudioRouteSpeaker: String { return self._s[4435]! } - public var GroupInfo_InviteLink_CopyLink: String { return self._s[4436]! } - public var VoiceChat_StartsIn: String { return self._s[4437]! } - public var VoiceChat_CreateNewVoiceChatSchedule: String { return self._s[4438]! } - public var VoiceChat_EditDescriptionTitle: String { return self._s[4440]! } - public var Passport_Address_Country: String { return self._s[4441]! } - public var Cache_MaximumCacheSize: String { return self._s[4442]! } - public var Chat_PanelHidePinnedMessages: String { return self._s[4443]! } - public var Notifications_Badge_IncludePublicGroups: String { return self._s[4444]! } - public var ChatSettings_AutoDownloadUsingWiFi: String { return self._s[4446]! } - public var Login_TermsOfServiceLabel: String { return self._s[4447]! } - public var Calls_NoMissedCallsPlacehoder: String { return self._s[4448]! } - public var SocksProxySetup_RequiredCredentials: String { return self._s[4449]! } - public var VoiceOver_MessageContextOpenMessageMenu: String { return self._s[4450]! } - public var AutoNightTheme_ScheduledFrom: String { return self._s[4451]! } - public var ChatSettings_AutoDownloadDocuments: String { return self._s[4452]! } - public var ConvertToSupergroup_Note: String { return self._s[4454]! } - public var Settings_SetNewProfilePhotoOrVideo: String { return self._s[4455]! } - public var PrivacySettings_PasscodeAndTouchId: String { return self._s[4456]! } - public var Common_More: String { return self._s[4457]! } - public var ShareMenu_SelectChats: String { return self._s[4459]! } + public var Conversation_DefaultRestrictedText: String { return self._s[4435]! } + public var Settings_Devices: String { return self._s[4436]! } + public var Call_AudioRouteSpeaker: String { return self._s[4437]! } + public var GroupInfo_InviteLink_CopyLink: String { return self._s[4438]! } + public var VoiceChat_StartsIn: String { return self._s[4439]! } + public var VoiceChat_CreateNewVoiceChatSchedule: String { return self._s[4440]! } + public var VoiceChat_EditDescriptionTitle: String { return self._s[4442]! } + public var Passport_Address_Country: String { return self._s[4443]! } + public var Cache_MaximumCacheSize: String { return self._s[4444]! } + public var Chat_PanelHidePinnedMessages: String { return self._s[4445]! } + public var Notifications_Badge_IncludePublicGroups: String { return self._s[4446]! } + public var ChatSettings_AutoDownloadUsingWiFi: String { return self._s[4448]! } + public var Login_TermsOfServiceLabel: String { return self._s[4449]! } + public var Calls_NoMissedCallsPlacehoder: String { return self._s[4450]! } + public var SocksProxySetup_RequiredCredentials: String { return self._s[4451]! } + public var VoiceOver_MessageContextOpenMessageMenu: String { return self._s[4452]! } + public var AutoNightTheme_ScheduledFrom: String { return self._s[4453]! } + public var ChatSettings_AutoDownloadDocuments: String { return self._s[4454]! } + public var ConvertToSupergroup_Note: String { return self._s[4456]! } + public var Settings_SetNewProfilePhotoOrVideo: String { return self._s[4457]! } + public var PrivacySettings_PasscodeAndTouchId: String { return self._s[4458]! } + public var Common_More: String { return self._s[4459]! } + public var ShareMenu_SelectChats: String { return self._s[4461]! } public func Conversation_ScheduleMessage_SendToday(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4460]!, self._r[4460]!, [_0]) + return formatWithArgumentRanges(self._s[4462]!, self._r[4462]!, [_0]) } public func Channel_AdminLog_MessageRemovedGroupStickerPack(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4461]!, self._r[4461]!, [_0]) + return formatWithArgumentRanges(self._s[4463]!, self._r[4463]!, [_0]) } - public var Contacts_PermissionsKeepDisabled: String { return self._s[4463]! } - public var VoiceChat_EditBioText: String { return self._s[4464]! } + public var Contacts_PermissionsKeepDisabled: String { return self._s[4465]! } + public var VoiceChat_EditBioText: String { return self._s[4466]! } public func Call_ParticipantVersionOutdatedError(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4465]!, self._r[4465]!, [_0]) + return formatWithArgumentRanges(self._s[4467]!, self._r[4467]!, [_0]) } - public var WatchRemote_AlertOpen: String { return self._s[4466]! } + public var WatchRemote_AlertOpen: String { return self._s[4468]! } public func PUSH_CHAT_ADD_MEMBER(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4467]!, self._r[4467]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4469]!, self._r[4469]!, [_1, _2, _3]) } - public var Channel_Members_AddMembersHelp: String { return self._s[4468]! } - public var Shortcut_SwitchAccount: String { return self._s[4469]! } - public var Map_LiveLocationFor8Hours: String { return self._s[4470]! } + public var Channel_Members_AddMembersHelp: String { return self._s[4470]! } + public var Shortcut_SwitchAccount: String { return self._s[4471]! } + public var Map_LiveLocationFor8Hours: String { return self._s[4472]! } public func AutoNightTheme_AutomaticHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4471]!, self._r[4471]!, [_0]) + return formatWithArgumentRanges(self._s[4473]!, self._r[4473]!, [_0]) } - public var Compose_NewGroupTitle: String { return self._s[4472]! } - public var DialogList_You: String { return self._s[4473]! } - public var Call_VoiceOver_VoiceCallOutgoing: String { return self._s[4474]! } - public var ReportPeer_ReasonViolence: String { return self._s[4475]! } + public var Compose_NewGroupTitle: String { return self._s[4474]! } + public var DialogList_You: String { return self._s[4475]! } + public var Call_VoiceOver_VoiceCallOutgoing: String { return self._s[4476]! } + public var ReportPeer_ReasonViolence: String { return self._s[4477]! } public func PUSH_CHANNEL_MESSAGE_STICKER(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4476]!, self._r[4476]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4478]!, self._r[4478]!, [_1, _2]) } - public var VoiceChat_Reconnecting: String { return self._s[4478]! } - public var KeyCommand_ScrollDown: String { return self._s[4481]! } - public var ChatSettings_DownloadInBackground: String { return self._s[4482]! } - public var Wallpaper_ResetWallpapers: String { return self._s[4483]! } - public var Channel_BanList_RestrictedTitle: String { return self._s[4484]! } - public var ArchivedChats_IntroText3: String { return self._s[4485]! } - public var HashtagSearch_AllChats: String { return self._s[4487]! } - public var VoiceChat_EndVoiceChat: String { return self._s[4488]! } - public var Conversation_MessageCopied: String { return self._s[4490]! } - public var Channel_Info_BlackList: String { return self._s[4491]! } - public var Contacts_SearchUsersAndGroupsLabel: String { return self._s[4492]! } - public var PrivacyPhoneNumberSettings_DiscoveryHeader: String { return self._s[4493]! } - public var Paint_Neon: String { return self._s[4495]! } - public var SettingsSearch_Synonyms_AppLanguage: String { return self._s[4496]! } - public var AutoDownloadSettings_AutoDownload: String { return self._s[4497]! } + public var VoiceChat_Reconnecting: String { return self._s[4480]! } + public var KeyCommand_ScrollDown: String { return self._s[4483]! } + public var ChatSettings_DownloadInBackground: String { return self._s[4484]! } + public var Wallpaper_ResetWallpapers: String { return self._s[4485]! } + public var Channel_BanList_RestrictedTitle: String { return self._s[4486]! } + public var ArchivedChats_IntroText3: String { return self._s[4487]! } + public var HashtagSearch_AllChats: String { return self._s[4489]! } + public var VoiceChat_EndVoiceChat: String { return self._s[4490]! } + public var Conversation_MessageCopied: String { return self._s[4492]! } + public var Channel_Info_BlackList: String { return self._s[4493]! } + public var Contacts_SearchUsersAndGroupsLabel: String { return self._s[4494]! } + public var PrivacyPhoneNumberSettings_DiscoveryHeader: String { return self._s[4495]! } + public var Paint_Neon: String { return self._s[4497]! } + public var SettingsSearch_Synonyms_AppLanguage: String { return self._s[4498]! } + public var AutoDownloadSettings_AutoDownload: String { return self._s[4499]! } public func Notification_PinnedVideoMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4499]!, self._r[4499]!, [_0]) + return formatWithArgumentRanges(self._s[4501]!, self._r[4501]!, [_0]) } - public var Map_StopLiveLocation: String { return self._s[4500]! } - public var SettingsSearch_Synonyms_Data_SaveEditedPhotos: String { return self._s[4501]! } - public var Channel_Username_InvalidCharacters: String { return self._s[4502]! } - public var InstantPage_Reference: String { return self._s[4504]! } - public var Group_Members_AddMembers: String { return self._s[4506]! } + public var Map_StopLiveLocation: String { return self._s[4502]! } + public var SettingsSearch_Synonyms_Data_SaveEditedPhotos: String { return self._s[4503]! } + public var Channel_Username_InvalidCharacters: String { return self._s[4504]! } + public var InstantPage_Reference: String { return self._s[4506]! } + public var Group_Members_AddMembers: String { return self._s[4508]! } public func Conversation_ScheduledVoiceChatStartsOn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4507]!, self._r[4507]!, [_0]) + return formatWithArgumentRanges(self._s[4509]!, self._r[4509]!, [_0]) } - public var ChatList_HideAction: String { return self._s[4508]! } - public var Conversation_FileICloudDrive: String { return self._s[4510]! } + public var ChatList_HideAction: String { return self._s[4510]! } + public var Conversation_FileICloudDrive: String { return self._s[4512]! } public func PUSH_PINNED_GEOLIVE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4511]!, self._r[4511]!, [_1]) + return formatWithArgumentRanges(self._s[4513]!, self._r[4513]!, [_1]) } - public var Passport_PasswordReset: String { return self._s[4513]! } - public var ChatList_Context_UnhideArchive: String { return self._s[4515]! } - public var ConvertToSupergroup_HelpText: String { return self._s[4516]! } - public var Calls_AddTab: String { return self._s[4517]! } - public var TwoStepAuth_ConfirmEmailResendCode: String { return self._s[4519]! } - public var SettingsSearch_Synonyms_Stickers_SuggestStickers: String { return self._s[4520]! } - public var Privacy_GroupsAndChannels: String { return self._s[4523]! } - public var Conversation_UsernameCopied: String { return self._s[4524]! } - public var AutoNightTheme_Disabled: String { return self._s[4525]! } - public var CreatePoll_MultipleChoice: String { return self._s[4526]! } + public var Passport_PasswordReset: String { return self._s[4515]! } + public var ChatList_Context_UnhideArchive: String { return self._s[4517]! } + public var ConvertToSupergroup_HelpText: String { return self._s[4518]! } + public var Calls_AddTab: String { return self._s[4519]! } + public var TwoStepAuth_ConfirmEmailResendCode: String { return self._s[4521]! } + public var SettingsSearch_Synonyms_Stickers_SuggestStickers: String { return self._s[4522]! } + public var Privacy_GroupsAndChannels: String { return self._s[4525]! } + public var Conversation_UsernameCopied: String { return self._s[4526]! } + public var AutoNightTheme_Disabled: String { return self._s[4527]! } + public var CreatePoll_MultipleChoice: String { return self._s[4528]! } public func PINNED_INVOICE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4527]!, self._r[4527]!, [_1]) + return formatWithArgumentRanges(self._s[4529]!, self._r[4529]!, [_1]) } - public var Watch_Bot_Restart: String { return self._s[4529]! } + public var Watch_Bot_Restart: String { return self._s[4531]! } public func Conversation_Kilobytes(_ _0: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4530]!, self._r[4530]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[4532]!, self._r[4532]!, ["\(_0)"]) } - public var GroupInfo_ScamGroupWarning: String { return self._s[4532]! } - public var Conversation_EditingMessagePanelMedia: String { return self._s[4533]! } - public var Appearance_PreviewIncomingText: String { return self._s[4534]! } - public var ChatSettings_WidgetSettings: String { return self._s[4535]! } - public var Notifications_ChannelNotificationsExceptionsHelp: String { return self._s[4536]! } - public var ChatList_UndoArchiveRevealedTitle: String { return self._s[4538]! } - public var Stats_GroupOverview: String { return self._s[4540]! } - public var ScheduledMessages_EditTime: String { return self._s[4543]! } - public var Month_GenFebruary: String { return self._s[4544]! } - public var ChatList_AutoarchiveSuggestion_OpenSettings: String { return self._s[4545]! } - public var Stickers_ClearRecent: String { return self._s[4546]! } - public var InviteLink_Create_UsersLimitNumberOfUsersUnlimited: String { return self._s[4547]! } - public var TwoStepAuth_EnterPasswordPassword: String { return self._s[4548]! } - public var Stats_Message_PublicShares: String { return self._s[4549]! } + public var GroupInfo_ScamGroupWarning: String { return self._s[4534]! } + public var Conversation_EditingMessagePanelMedia: String { return self._s[4535]! } + public var Appearance_PreviewIncomingText: String { return self._s[4536]! } + public var ChatSettings_WidgetSettings: String { return self._s[4537]! } + public var Notifications_ChannelNotificationsExceptionsHelp: String { return self._s[4538]! } + public var ChatList_UndoArchiveRevealedTitle: String { return self._s[4540]! } + public var Stats_GroupOverview: String { return self._s[4542]! } + public var ScheduledMessages_EditTime: String { return self._s[4545]! } + public var Month_GenFebruary: String { return self._s[4546]! } + public var ChatList_AutoarchiveSuggestion_OpenSettings: String { return self._s[4547]! } + public var Stickers_ClearRecent: String { return self._s[4548]! } + public var InviteLink_Create_UsersLimitNumberOfUsersUnlimited: String { return self._s[4549]! } + public var TwoStepAuth_EnterPasswordPassword: String { return self._s[4550]! } + public var Stats_Message_PublicShares: String { return self._s[4551]! } public func Checkout_PayPrice(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4550]!, self._r[4550]!, [_0]) + return formatWithArgumentRanges(self._s[4552]!, self._r[4552]!, [_0]) } - public var Login_TermsOfServiceSignupDecline: String { return self._s[4551]! } - public var CheckoutInfo_ErrorCityInvalid: String { return self._s[4552]! } - public var VoiceOver_Chat_PlayHint: String { return self._s[4553]! } - public var ChatAdmins_AllMembersAreAdminsOffHelp: String { return self._s[4554]! } - public var CheckoutInfo_ShippingInfoTitle: String { return self._s[4556]! } - public var CreatePoll_Create: String { return self._s[4557]! } - public var ChatList_Search_FilterLinks: String { return self._s[4558]! } - public var Your_cards_number_is_invalid: String { return self._s[4559]! } - public var Month_ShortApril: String { return self._s[4560]! } - public var SocksProxySetup_UseForCalls: String { return self._s[4561]! } - public var Conversation_EditingCaptionPanelTitle: String { return self._s[4562]! } - public var SocksProxySetup_Status: String { return self._s[4563]! } - public var VoiceChat_UnmuteForMe: String { return self._s[4564]! } - public var ChannelInfo_DeleteGroupConfirmation: String { return self._s[4565]! } - public var ChatListFolder_CategoryBots: String { return self._s[4566]! } - public var Passport_FieldIdentitySelfieHelp: String { return self._s[4568]! } - public var GroupInfo_BroadcastListNamePlaceholder: String { return self._s[4569]! } - public var Chat_PinnedListPreview_UnpinAllMessages: String { return self._s[4570]! } - public var Wallpaper_ResetWallpapersInfo: String { return self._s[4571]! } - public var Conversation_TitleUnmute: String { return self._s[4572]! } - public var Group_Setup_TypeHeader: String { return self._s[4573]! } + public var Login_TermsOfServiceSignupDecline: String { return self._s[4553]! } + public var CheckoutInfo_ErrorCityInvalid: String { return self._s[4554]! } + public var VoiceOver_Chat_PlayHint: String { return self._s[4555]! } + public var ChatAdmins_AllMembersAreAdminsOffHelp: String { return self._s[4556]! } + public var CheckoutInfo_ShippingInfoTitle: String { return self._s[4558]! } + public var CreatePoll_Create: String { return self._s[4559]! } + public var ChatList_Search_FilterLinks: String { return self._s[4560]! } + public var Your_cards_number_is_invalid: String { return self._s[4561]! } + public var Month_ShortApril: String { return self._s[4562]! } + public var SocksProxySetup_UseForCalls: String { return self._s[4563]! } + public var Conversation_EditingCaptionPanelTitle: String { return self._s[4564]! } + public var SocksProxySetup_Status: String { return self._s[4565]! } + public var VoiceChat_UnmuteForMe: String { return self._s[4566]! } + public var ChannelInfo_DeleteGroupConfirmation: String { return self._s[4567]! } + public var ChatListFolder_CategoryBots: String { return self._s[4568]! } + public var Passport_FieldIdentitySelfieHelp: String { return self._s[4570]! } + public var GroupInfo_BroadcastListNamePlaceholder: String { return self._s[4571]! } + public var Chat_PinnedListPreview_UnpinAllMessages: String { return self._s[4572]! } + public var Wallpaper_ResetWallpapersInfo: String { return self._s[4573]! } + public var Conversation_TitleUnmute: String { return self._s[4574]! } + public var Group_Setup_TypeHeader: String { return self._s[4575]! } public func Conversation_ForwardTooltip_ManyChats_One(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4574]!, self._r[4574]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4576]!, self._r[4576]!, [_0, _1]) } - public var Stats_ViewsPerPost: String { return self._s[4575]! } - public var CheckoutInfo_ShippingInfoCountry: String { return self._s[4576]! } - public var Passport_Identity_TranslationHelp: String { return self._s[4577]! } + public var Stats_ViewsPerPost: String { return self._s[4577]! } + public var CheckoutInfo_ShippingInfoCountry: String { return self._s[4578]! } + public var Passport_Identity_TranslationHelp: String { return self._s[4579]! } public func PUSH_CHANNEL_MESSAGE_FWD(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4578]!, self._r[4578]!, [_1]) + return formatWithArgumentRanges(self._s[4580]!, self._r[4580]!, [_1]) } - public var GroupInfo_Administrators_Title: String { return self._s[4579]! } + public var GroupInfo_Administrators_Title: String { return self._s[4581]! } public func Channel_AdminLog_MessageRankName(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4580]!, self._r[4580]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4582]!, self._r[4582]!, [_1, _2]) } public func PUSH_CHAT_MESSAGE_POLL(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4581]!, self._r[4581]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4583]!, self._r[4583]!, [_1, _2, _3]) } - public var CheckoutInfo_ShippingInfoState: String { return self._s[4582]! } - public var Passport_Language_my: String { return self._s[4584]! } - public var PrivacyLastSeenSettings_AlwaysShareWith_Title: String { return self._s[4585]! } - public var Map_PlacesNearby: String { return self._s[4586]! } - public var Channel_About_Help: String { return self._s[4587]! } - public var LogoutOptions_AddAccountTitle: String { return self._s[4588]! } - public var ChatSettings_AutomaticAudioDownload: String { return self._s[4589]! } - public var Channel_Username_Title: String { return self._s[4590]! } - public var Activity_RecordingVideoMessage: String { return self._s[4591]! } + public var CheckoutInfo_ShippingInfoState: String { return self._s[4584]! } + public var Passport_Language_my: String { return self._s[4586]! } + public var PrivacyLastSeenSettings_AlwaysShareWith_Title: String { return self._s[4587]! } + public var Map_PlacesNearby: String { return self._s[4588]! } + public var Channel_About_Help: String { return self._s[4589]! } + public var LogoutOptions_AddAccountTitle: String { return self._s[4590]! } + public var ChatSettings_AutomaticAudioDownload: String { return self._s[4591]! } + public var Channel_Username_Title: String { return self._s[4592]! } + public var Activity_RecordingVideoMessage: String { return self._s[4593]! } public func StickerPackActionInfo_RemovedText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4592]!, self._r[4592]!, [_0]) + return formatWithArgumentRanges(self._s[4594]!, self._r[4594]!, [_0]) } - public var CheckoutInfo_ShippingInfoCity: String { return self._s[4593]! } - public var Passport_DiscardMessageDescription: String { return self._s[4594]! } - public var Conversation_LinkDialogOpen: String { return self._s[4595]! } - public var ChatList_Context_HideArchive: String { return self._s[4596]! } + public var CheckoutInfo_ShippingInfoCity: String { return self._s[4595]! } + public var Passport_DiscardMessageDescription: String { return self._s[4596]! } + public var Conversation_LinkDialogOpen: String { return self._s[4597]! } + public var ChatList_Context_HideArchive: String { return self._s[4598]! } public func Message_AuthorPinnedGame(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4597]!, self._r[4597]!, [_0]) + return formatWithArgumentRanges(self._s[4599]!, self._r[4599]!, [_0]) } - public var Privacy_GroupsAndChannels_CustomShareHelp: String { return self._s[4598]! } - public var Conversation_Admin: String { return self._s[4599]! } - public var DialogList_TabTitle: String { return self._s[4600]! } + public var Privacy_GroupsAndChannels_CustomShareHelp: String { return self._s[4600]! } + public var Conversation_Admin: String { return self._s[4601]! } + public var DialogList_TabTitle: String { return self._s[4602]! } public func PUSH_CHAT_ALBUM(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4601]!, self._r[4601]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4603]!, self._r[4603]!, [_1, _2]) } - public var Notifications_PermissionsUnreachableText: String { return self._s[4602]! } - public var Passport_Identity_GenderMale: String { return self._s[4604]! } + public var Notifications_PermissionsUnreachableText: String { return self._s[4604]! } + public var Passport_Identity_GenderMale: String { return self._s[4606]! } public func VoiceChat_EditTitleSuccess(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4606]!, self._r[4606]!, [_0]) + return formatWithArgumentRanges(self._s[4608]!, self._r[4608]!, [_0]) } - public var SettingsSearch_Synonyms_Privacy_BlockedUsers: String { return self._s[4607]! } - public var PhoneNumberHelp_Alert: String { return self._s[4608]! } - public var EnterPasscode_EnterNewPasscodeChange: String { return self._s[4609]! } - public var Notifications_InAppNotifications: String { return self._s[4610]! } + public var SettingsSearch_Synonyms_Privacy_BlockedUsers: String { return self._s[4609]! } + public var PhoneNumberHelp_Alert: String { return self._s[4610]! } + public var EnterPasscode_EnterNewPasscodeChange: String { return self._s[4611]! } + public var Notifications_InAppNotifications: String { return self._s[4612]! } public func Update_AppVersion(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4611]!, self._r[4611]!, [_0]) + return formatWithArgumentRanges(self._s[4613]!, self._r[4613]!, [_0]) } - public var Notification_VideoCallOutgoing: String { return self._s[4612]! } - public var Login_InvalidCodeError: String { return self._s[4613]! } - public var Conversation_PrivateChannelTimeLimitedAlertJoin: String { return self._s[4614]! } + public var Notification_VideoCallOutgoing: String { return self._s[4614]! } + public var Login_InvalidCodeError: String { return self._s[4615]! } + public var Conversation_PrivateChannelTimeLimitedAlertJoin: String { return self._s[4616]! } public func LastSeen_TodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4616]!, self._r[4616]!, [_0]) + return formatWithArgumentRanges(self._s[4618]!, self._r[4618]!, [_0]) } - public var Conversation_InputTextCaptionPlaceholder: String { return self._s[4617]! } - public var ReportPeer_Report: String { return self._s[4618]! } - public var Camera_FlashOff: String { return self._s[4621]! } - public var Conversation_InputTextBroadcastPlaceholder: String { return self._s[4624]! } + public var Conversation_InputTextCaptionPlaceholder: String { return self._s[4619]! } + public var ReportPeer_Report: String { return self._s[4620]! } + public var Camera_FlashOff: String { return self._s[4623]! } + public var Conversation_InputTextBroadcastPlaceholder: String { return self._s[4626]! } public func Notification_VoiceChatScheduledTomorrow(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4625]!, self._r[4625]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4627]!, self._r[4627]!, [_1, _2]) } - public var PrivacyPolicy_DeclineTitle: String { return self._s[4628]! } - public var SettingsSearch_Synonyms_Privacy_PasscodeAndTouchId: String { return self._s[4629]! } - public var Passport_FieldEmail: String { return self._s[4630]! } + public var PrivacyPolicy_DeclineTitle: String { return self._s[4630]! } + public var SettingsSearch_Synonyms_Privacy_PasscodeAndTouchId: String { return self._s[4631]! } + public var Passport_FieldEmail: String { return self._s[4632]! } public func Channel_AdminLog_MessageKickedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4631]!, self._r[4631]!, [_1]) + return formatWithArgumentRanges(self._s[4633]!, self._r[4633]!, [_1]) } - public var Notifications_ExceptionsResetToDefaults: String { return self._s[4632]! } - public var PeerInfo_PaneVoiceAndVideo: String { return self._s[4633]! } - public var Group_OwnershipTransfer_Title: String { return self._s[4634]! } - public var Conversation_DefaultRestrictedInline: String { return self._s[4635]! } - public var Login_PhoneNumberHelp: String { return self._s[4637]! } - public var Channel_AdminLogFilter_EventsNewMembers: String { return self._s[4638]! } - public var Conversation_PinnedQuiz: String { return self._s[4639]! } - public var CreateGroup_SoftUserLimitAlert: String { return self._s[4640]! } - public var Login_PhoneNumberAlreadyAuthorizedSwitch: String { return self._s[4641]! } - public var Group_MessagePhotoUpdated: String { return self._s[4642]! } - public var LoginPassword_PasswordPlaceholder: String { return self._s[4643]! } - public var BroadcastGroups_ConfirmationAlert_Text: String { return self._s[4644]! } - public var Passport_Identity_Translations: String { return self._s[4646]! } - public var ChatAdmins_AllMembersAreAdmins: String { return self._s[4647]! } - public var ChannelInfo_DeleteChannel: String { return self._s[4649]! } - public var PasscodeSettings_HelpBottom: String { return self._s[4650]! } - public var Channel_Members_AddMembers: String { return self._s[4651]! } - public var AutoDownloadSettings_LastDelimeter: String { return self._s[4652]! } - public var Notification_Exceptions_DeleteAllConfirmation: String { return self._s[4654]! } - public var Conversation_HoldForAudio: String { return self._s[4655]! } - public var Media_LimitedAccessChangeSettings: String { return self._s[4657]! } - public var Watch_LastSeen_Lately: String { return self._s[4658]! } - public var ChatList_Context_MarkAsRead: String { return self._s[4659]! } - public var Conversation_PinnedMessage: String { return self._s[4660]! } - public var SettingsSearch_Synonyms_Appearance_ColorTheme: String { return self._s[4661]! } - public var VoiceChat_StopRecordingStop: String { return self._s[4663]! } - public var Passport_UpdateRequiredError: String { return self._s[4664]! } - public var PrivacySettings_Passcode: String { return self._s[4665]! } + public var Notifications_ExceptionsResetToDefaults: String { return self._s[4634]! } + public var PeerInfo_PaneVoiceAndVideo: String { return self._s[4635]! } + public var Group_OwnershipTransfer_Title: String { return self._s[4636]! } + public var Conversation_DefaultRestrictedInline: String { return self._s[4637]! } + public var Login_PhoneNumberHelp: String { return self._s[4639]! } + public var Channel_AdminLogFilter_EventsNewMembers: String { return self._s[4640]! } + public var Conversation_PinnedQuiz: String { return self._s[4641]! } + public var CreateGroup_SoftUserLimitAlert: String { return self._s[4642]! } + public var Login_PhoneNumberAlreadyAuthorizedSwitch: String { return self._s[4643]! } + public var Group_MessagePhotoUpdated: String { return self._s[4644]! } + public var LoginPassword_PasswordPlaceholder: String { return self._s[4645]! } + public var BroadcastGroups_ConfirmationAlert_Text: String { return self._s[4646]! } + public var Passport_Identity_Translations: String { return self._s[4648]! } + public var ChatAdmins_AllMembersAreAdmins: String { return self._s[4649]! } + public var ChannelInfo_DeleteChannel: String { return self._s[4651]! } + public var PasscodeSettings_HelpBottom: String { return self._s[4652]! } + public var Channel_Members_AddMembers: String { return self._s[4653]! } + public var AutoDownloadSettings_LastDelimeter: String { return self._s[4654]! } + public var Notification_Exceptions_DeleteAllConfirmation: String { return self._s[4656]! } + public var Conversation_HoldForAudio: String { return self._s[4657]! } + public var Media_LimitedAccessChangeSettings: String { return self._s[4659]! } + public var Watch_LastSeen_Lately: String { return self._s[4660]! } + public var ChatList_Context_MarkAsRead: String { return self._s[4661]! } + public var Conversation_PinnedMessage: String { return self._s[4662]! } + public var SettingsSearch_Synonyms_Appearance_ColorTheme: String { return self._s[4663]! } + public var VoiceChat_StopRecordingStop: String { return self._s[4665]! } + public var Passport_UpdateRequiredError: String { return self._s[4666]! } + public var PrivacySettings_Passcode: String { return self._s[4667]! } public func Call_EmojiDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4666]!, self._r[4666]!, [_0]) + return formatWithArgumentRanges(self._s[4668]!, self._r[4668]!, [_0]) } - public var AutoNightTheme_NotAvailable: String { return self._s[4667]! } - public var Conversation_PressVolumeButtonForSound: String { return self._s[4668]! } - public var VoiceOver_Common_On: String { return self._s[4669]! } - public var LoginPassword_InvalidPasswordError: String { return self._s[4670]! } - public var ChatListFolder_IncludedSectionHeader: String { return self._s[4671]! } - public var Channel_SignMessages_Help: String { return self._s[4672]! } - public var ChatList_DeleteForEveryoneConfirmationTitle: String { return self._s[4673]! } - public var Conversation_TitleNoComments: String { return self._s[4674]! } - public var MediaPicker_LivePhotoDescription: String { return self._s[4675]! } - public var GroupInfo_Permissions: String { return self._s[4676]! } - public var GroupPermission_NoSendLinks: String { return self._s[4679]! } + public var AutoNightTheme_NotAvailable: String { return self._s[4669]! } + public var Conversation_PressVolumeButtonForSound: String { return self._s[4670]! } + public var VoiceOver_Common_On: String { return self._s[4671]! } + public var LoginPassword_InvalidPasswordError: String { return self._s[4672]! } + public var ChatListFolder_IncludedSectionHeader: String { return self._s[4673]! } + public var Channel_SignMessages_Help: String { return self._s[4674]! } + public var ChatList_DeleteForEveryoneConfirmationTitle: String { return self._s[4675]! } + public var Conversation_TitleNoComments: String { return self._s[4676]! } + public var MediaPicker_LivePhotoDescription: String { return self._s[4677]! } + public var GroupInfo_Permissions: String { return self._s[4678]! } + public var GroupPermission_NoSendLinks: String { return self._s[4681]! } public func Conversation_ScheduledVoiceChatStartsTomorrow(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4680]!, self._r[4680]!, [_0]) + return formatWithArgumentRanges(self._s[4682]!, self._r[4682]!, [_0]) } - public var Passport_Identity_ResidenceCountry: String { return self._s[4681]! } - public var Appearance_ThemeCarouselNightBlue: String { return self._s[4683]! } - public var ChatList_ArchiveAction: String { return self._s[4684]! } + public var Passport_Identity_ResidenceCountry: String { return self._s[4683]! } + public var Appearance_ThemeCarouselNightBlue: String { return self._s[4685]! } + public var ChatList_ArchiveAction: String { return self._s[4686]! } public func Channel_AdminLog_DisabledSlowmode(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4685]!, self._r[4685]!, [_0]) + return formatWithArgumentRanges(self._s[4687]!, self._r[4687]!, [_0]) } - public var GroupInfo_GroupHistory: String { return self._s[4686]! } + public var GroupInfo_GroupHistory: String { return self._s[4688]! } public func Channel_Management_ErrorNotMember(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4688]!, self._r[4688]!, [_0]) + return formatWithArgumentRanges(self._s[4690]!, self._r[4690]!, [_0]) } - public var Privacy_Forwards_LinkIfAllowed: String { return self._s[4690]! } - public var Channel_Info_Banned: String { return self._s[4691]! } - public var Paint_RecentStickers: String { return self._s[4692]! } - public var VoiceOver_MessageContextSend: String { return self._s[4693]! } - public var Group_ErrorNotMutualContact: String { return self._s[4694]! } - public var ReportPeer_ReasonOther: String { return self._s[4696]! } - public var Channel_BanUser_PermissionChangeGroupInfo: String { return self._s[4697]! } - public var SocksProxySetup_ShareQRCodeInfo: String { return self._s[4699]! } - public var KeyCommand_Find: String { return self._s[4700]! } + public var Privacy_Forwards_LinkIfAllowed: String { return self._s[4692]! } + public var Channel_Info_Banned: String { return self._s[4693]! } + public var Paint_RecentStickers: String { return self._s[4694]! } + public var VoiceOver_MessageContextSend: String { return self._s[4695]! } + public var Group_ErrorNotMutualContact: String { return self._s[4696]! } + public var ReportPeer_ReasonOther: String { return self._s[4698]! } + public var Channel_BanUser_PermissionChangeGroupInfo: String { return self._s[4699]! } + public var SocksProxySetup_ShareQRCodeInfo: String { return self._s[4701]! } + public var KeyCommand_Find: String { return self._s[4702]! } public func Channel_MessageTitleUpdated(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4701]!, self._r[4701]!, [_0]) + return formatWithArgumentRanges(self._s[4703]!, self._r[4703]!, [_0]) } - public var ChatList_Context_Unmute: String { return self._s[4702]! } - public var Chat_SlowmodeAttachmentLimitReached: String { return self._s[4703]! } - public var Stickers_GroupStickersHelp: String { return self._s[4704]! } - public var Checkout_Title: String { return self._s[4705]! } - public var Activity_RecordingAudio: String { return self._s[4706]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsPreview: String { return self._s[4707]! } - public var BlockedUsers_BlockTitle: String { return self._s[4708]! } - public var DialogList_SavedMessagesHelp: String { return self._s[4710]! } - public var Calls_All: String { return self._s[4711]! } - public var Settings_FAQ_Button: String { return self._s[4713]! } - public var Conversation_Dice_u1F3B0: String { return self._s[4715]! } + public var ChatList_Context_Unmute: String { return self._s[4704]! } + public var Chat_SlowmodeAttachmentLimitReached: String { return self._s[4705]! } + public var Stickers_GroupStickersHelp: String { return self._s[4706]! } + public var Checkout_Title: String { return self._s[4707]! } + public var Activity_RecordingAudio: String { return self._s[4708]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsPreview: String { return self._s[4709]! } + public var BlockedUsers_BlockTitle: String { return self._s[4710]! } + public var DialogList_SavedMessagesHelp: String { return self._s[4712]! } + public var Calls_All: String { return self._s[4713]! } + public var Settings_FAQ_Button: String { return self._s[4715]! } + public var Conversation_Dice_u1F3B0: String { return self._s[4717]! } public func Time_MonthOfYear_m5(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4716]!, self._r[4716]!, [_0]) + return formatWithArgumentRanges(self._s[4718]!, self._r[4718]!, [_0]) } - public var Conversation_ReportGroupLocation: String { return self._s[4717]! } - public var Passport_Scans_Upload: String { return self._s[4718]! } - public var Channel_EditAdmin_PermissionPinMessages: String { return self._s[4720]! } - public var ChatList_UnarchiveAction: String { return self._s[4721]! } - public var Stats_GroupTopInviter_History: String { return self._s[4722]! } - public var GroupInfo_Permissions_Title: String { return self._s[4723]! } - public var VoiceChat_CreateNewVoiceChatStart: String { return self._s[4724]! } - public var Passport_Language_el: String { return self._s[4725]! } - public var Channel_DiscussionMessageUnavailable: String { return self._s[4726]! } + public var Conversation_ReportGroupLocation: String { return self._s[4719]! } + public var Passport_Scans_Upload: String { return self._s[4720]! } + public var Channel_EditAdmin_PermissionPinMessages: String { return self._s[4722]! } + public var ChatList_UnarchiveAction: String { return self._s[4723]! } + public var Stats_GroupTopInviter_History: String { return self._s[4724]! } + public var GroupInfo_Permissions_Title: String { return self._s[4725]! } + public var VoiceChat_CreateNewVoiceChatStart: String { return self._s[4726]! } + public var Passport_Language_el: String { return self._s[4727]! } + public var Channel_DiscussionMessageUnavailable: String { return self._s[4728]! } public func UserInfo_ContactForwardTooltip_TwoChats_One(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4727]!, self._r[4727]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4729]!, self._r[4729]!, [_0, _1]) } - public var GroupInfo_ActionPromote: String { return self._s[4728]! } - public var Group_OwnershipTransfer_ErrorLocatedGroupsTooMuch: String { return self._s[4729]! } - public var Media_LimitedAccessSelectMore: String { return self._s[4730]! } + public var GroupInfo_ActionPromote: String { return self._s[4730]! } + public var Group_OwnershipTransfer_ErrorLocatedGroupsTooMuch: String { return self._s[4731]! } + public var Media_LimitedAccessSelectMore: String { return self._s[4732]! } public func TwoStepAuth_PendingEmailHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4731]!, self._r[4731]!, [_0]) + return formatWithArgumentRanges(self._s[4733]!, self._r[4733]!, [_0]) } - public var VoiceOver_Chat_Reply: String { return self._s[4732]! } - public var Month_GenMay: String { return self._s[4733]! } - public var DialogList_DeleteBotConversationConfirmation: String { return self._s[4734]! } - public var Chat_PsaTooltip_covid: String { return self._s[4735]! } - public var Watch_Suggestion_CantTalk: String { return self._s[4736]! } - public var Privacy_GroupsAndChannels_NeverAllow_Title: String { return self._s[4737]! } - public var AppUpgrade_Running: String { return self._s[4738]! } - public var PasscodeSettings_UnlockWithFaceId: String { return self._s[4741]! } - public var Notification_Exceptions_PreviewAlwaysOff: String { return self._s[4742]! } - public var SharedMedia_EmptyText: String { return self._s[4743]! } - public var Passport_Address_EditResidentialAddress: String { return self._s[4744]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsAlert: String { return self._s[4745]! } - public var Message_PinnedGame: String { return self._s[4746]! } - public var KeyCommand_SearchInChat: String { return self._s[4747]! } - public var Appearance_ThemeCarouselNewNight: String { return self._s[4748]! } - public var ChatList_Search_FilterMedia: String { return self._s[4749]! } - public var Message_PinnedAudioMessage: String { return self._s[4750]! } - public var ChannelInfo_ConfirmLeave: String { return self._s[4752]! } + public var VoiceOver_Chat_Reply: String { return self._s[4734]! } + public var Month_GenMay: String { return self._s[4735]! } + public var DialogList_DeleteBotConversationConfirmation: String { return self._s[4736]! } + public var Chat_PsaTooltip_covid: String { return self._s[4737]! } + public var Watch_Suggestion_CantTalk: String { return self._s[4738]! } + public var Privacy_GroupsAndChannels_NeverAllow_Title: String { return self._s[4739]! } + public var AppUpgrade_Running: String { return self._s[4740]! } + public var PasscodeSettings_UnlockWithFaceId: String { return self._s[4743]! } + public var Notification_Exceptions_PreviewAlwaysOff: String { return self._s[4744]! } + public var SharedMedia_EmptyText: String { return self._s[4745]! } + public var Passport_Address_EditResidentialAddress: String { return self._s[4746]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsAlert: String { return self._s[4747]! } + public var Message_PinnedGame: String { return self._s[4748]! } + public var KeyCommand_SearchInChat: String { return self._s[4749]! } + public var Appearance_ThemeCarouselNewNight: String { return self._s[4750]! } + public var ChatList_Search_FilterMedia: String { return self._s[4751]! } + public var Message_PinnedAudioMessage: String { return self._s[4752]! } + public var ChannelInfo_ConfirmLeave: String { return self._s[4754]! } public func Channel_AdminLog_MessagePromotedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4753]!, self._r[4753]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4755]!, self._r[4755]!, [_1, _2]) } - public var SocksProxySetup_ProxyStatusUnavailable: String { return self._s[4754]! } - public var InviteLink_Create: String { return self._s[4755]! } + public var SocksProxySetup_ProxyStatusUnavailable: String { return self._s[4756]! } + public var InviteLink_Create: String { return self._s[4757]! } public func Passport_Email_CodeHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4756]!, self._r[4756]!, [_0]) + return formatWithArgumentRanges(self._s[4758]!, self._r[4758]!, [_0]) } public func Message_PinnedTextMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4757]!, self._r[4757]!, [_0]) + return formatWithArgumentRanges(self._s[4759]!, self._r[4759]!, [_0]) } - public var Settings_AddAccount: String { return self._s[4758]! } - public var Channel_AdminLog_CanDeleteMessages: String { return self._s[4759]! } - public var Conversation_DiscardVoiceMessageTitle: String { return self._s[4760]! } - public var Channel_JoinChannel: String { return self._s[4761]! } - public var Watch_UserInfo_Unblock: String { return self._s[4762]! } - public var PhoneLabel_Title: String { return self._s[4763]! } - public var VoiceChat_EditPermissions: String { return self._s[4765]! } - public var Group_Setup_HistoryHiddenHelp: String { return self._s[4766]! } - public var Privacy_ProfilePhoto_AlwaysShareWith_Title: String { return self._s[4767]! } + public var Settings_AddAccount: String { return self._s[4760]! } + public var Channel_AdminLog_CanDeleteMessages: String { return self._s[4761]! } + public var Conversation_DiscardVoiceMessageTitle: String { return self._s[4762]! } + public var Channel_JoinChannel: String { return self._s[4763]! } + public var Watch_UserInfo_Unblock: String { return self._s[4764]! } + public var PhoneLabel_Title: String { return self._s[4765]! } + public var VoiceChat_EditPermissions: String { return self._s[4767]! } + public var Group_Setup_HistoryHiddenHelp: String { return self._s[4768]! } + public var Privacy_ProfilePhoto_AlwaysShareWith_Title: String { return self._s[4769]! } public func Login_PhoneGenericEmailBody(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String, _ _6: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4768]!, self._r[4768]!, [_1, _2, _3, _4, _5, _6]) + return formatWithArgumentRanges(self._s[4770]!, self._r[4770]!, [_1, _2, _3, _4, _5, _6]) } - public var Channel_AddBotErrorHaveRights: String { return self._s[4769]! } - public var ChatList_TabIconFoldersTooltipNonEmptyFolders: String { return self._s[4770]! } - public var DialogList_EncryptionProcessing: String { return self._s[4771]! } - public var ChatList_Search_FilterChats: String { return self._s[4772]! } - public var WatchRemote_NotificationText: String { return self._s[4773]! } - public var EditTheme_ChangeColors: String { return self._s[4775]! } - public var GroupRemoved_ViewUserInfo: String { return self._s[4776]! } - public var CallSettings_OnMobile: String { return self._s[4778]! } - public var Month_ShortFebruary: String { return self._s[4780]! } - public var VoiceOver_MessageContextReply: String { return self._s[4781]! } - public var AutoremoveSetup_TimerValueNever: String { return self._s[4782]! } - public var Group_Location_ChangeLocation: String { return self._s[4784]! } + public var Channel_AddBotErrorHaveRights: String { return self._s[4771]! } + public var ChatList_TabIconFoldersTooltipNonEmptyFolders: String { return self._s[4772]! } + public var DialogList_EncryptionProcessing: String { return self._s[4773]! } + public var ChatList_Search_FilterChats: String { return self._s[4774]! } + public var WatchRemote_NotificationText: String { return self._s[4775]! } + public var EditTheme_ChangeColors: String { return self._s[4777]! } + public var GroupRemoved_ViewUserInfo: String { return self._s[4778]! } + public var CallSettings_OnMobile: String { return self._s[4780]! } + public var Month_ShortFebruary: String { return self._s[4782]! } + public var VoiceOver_MessageContextReply: String { return self._s[4783]! } + public var AutoremoveSetup_TimerValueNever: String { return self._s[4784]! } + public var Group_Location_ChangeLocation: String { return self._s[4786]! } public func PUSH_VIDEO_CALL_REQUEST(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4785]!, self._r[4785]!, [_1]) + return formatWithArgumentRanges(self._s[4787]!, self._r[4787]!, [_1]) } - public var Passport_Address_TypeBankStatementUploadScan: String { return self._s[4786]! } - public var VoiceOver_Media_PlaybackStop: String { return self._s[4787]! } - public var SettingsSearch_Synonyms_Data_SaveIncomingPhotos: String { return self._s[4788]! } + public var Passport_Address_TypeBankStatementUploadScan: String { return self._s[4788]! } + public var VoiceOver_Media_PlaybackStop: String { return self._s[4789]! } + public var SettingsSearch_Synonyms_Data_SaveIncomingPhotos: String { return self._s[4790]! } public func Channel_AdminLog_MessageRestrictedUntil(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4790]!, self._r[4790]!, [_0]) + return formatWithArgumentRanges(self._s[4792]!, self._r[4792]!, [_0]) } - public var PhotoEditor_WarmthTool: String { return self._s[4791]! } - public var Login_InfoAvatarPhoto: String { return self._s[4792]! } - public var Notification_Exceptions_NewException_MessagePreviewHeader: String { return self._s[4793]! } - public var Permissions_CellularDataAllowInSettings_v0: String { return self._s[4794]! } - public var Map_PlacesInThisArea: String { return self._s[4795]! } - public var VoiceOver_Chat_ContactEmail: String { return self._s[4796]! } - public var Notifications_InAppNotificationsSounds: String { return self._s[4797]! } + public var PhotoEditor_WarmthTool: String { return self._s[4793]! } + public var Login_InfoAvatarPhoto: String { return self._s[4794]! } + public var Notification_Exceptions_NewException_MessagePreviewHeader: String { return self._s[4795]! } + public var Permissions_CellularDataAllowInSettings_v0: String { return self._s[4796]! } + public var Map_PlacesInThisArea: String { return self._s[4797]! } + public var VoiceOver_Chat_ContactEmail: String { return self._s[4798]! } + public var Notifications_InAppNotificationsSounds: String { return self._s[4799]! } public func PUSH_PINNED_NOTEXT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4798]!, self._r[4798]!, [_1]) + return formatWithArgumentRanges(self._s[4800]!, self._r[4800]!, [_1]) } - public var PeerInfo_ReportProfileVideo: String { return self._s[4799]! } - public var ShareMenu_Send: String { return self._s[4800]! } - public var Username_InvalidStartsWithNumber: String { return self._s[4801]! } + public var PeerInfo_ReportProfileVideo: String { return self._s[4801]! } + public var ShareMenu_Send: String { return self._s[4802]! } + public var Username_InvalidStartsWithNumber: String { return self._s[4803]! } public func Channel_AdminLog_StartedVoiceChat(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4802]!, self._r[4802]!, [_1]) + return formatWithArgumentRanges(self._s[4804]!, self._r[4804]!, [_1]) } - public var Appearance_AppIconClassicX: String { return self._s[4803]! } - public var Report_Report: String { return self._s[4804]! } + public var Appearance_AppIconClassicX: String { return self._s[4805]! } + public var Report_Report: String { return self._s[4806]! } public func PUSH_CHANNEL_MESSAGE_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4805]!, self._r[4805]!, [_1]) + return formatWithArgumentRanges(self._s[4807]!, self._r[4807]!, [_1]) } - public var Conversation_StopPoll: String { return self._s[4806]! } - public var InfoPlist_NSLocationAlwaysUsageDescription: String { return self._s[4808]! } - public var Passport_Identity_EditIdentityCard: String { return self._s[4809]! } - public var Appearance_ThemePreview_ChatList_3_Name: String { return self._s[4810]! } - public var Conversation_Timer_Title: String { return self._s[4811]! } - public var Common_Next: String { return self._s[4812]! } - public var Notification_Exceptions_NewException: String { return self._s[4813]! } + public var Conversation_StopPoll: String { return self._s[4808]! } + public var InfoPlist_NSLocationAlwaysUsageDescription: String { return self._s[4810]! } + public var Passport_Identity_EditIdentityCard: String { return self._s[4811]! } + public var Appearance_ThemePreview_ChatList_3_Name: String { return self._s[4812]! } + public var Conversation_Timer_Title: String { return self._s[4813]! } + public var Common_Next: String { return self._s[4814]! } + public var Notification_Exceptions_NewException: String { return self._s[4815]! } public func Generic_OpenHiddenLinkAlert(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4814]!, self._r[4814]!, [_0]) + return formatWithArgumentRanges(self._s[4816]!, self._r[4816]!, [_0]) } - public var AccessDenied_CallMicrophone: String { return self._s[4815]! } - public var VoiceChat_UnmutePeer: String { return self._s[4816]! } - public var ChatImportActivity_Retry: String { return self._s[4817]! } - public var SettingsSearch_Synonyms_Data_AutoDownloadUsingCellular: String { return self._s[4818]! } - public var ChangePhoneNumberCode_Help: String { return self._s[4819]! } - public var Passport_Identity_OneOfTypeIdentityCard: String { return self._s[4820]! } - public var Channel_AdminLogFilter_EventsLeaving: String { return self._s[4821]! } - public var BlockedUsers_LeavePrefix: String { return self._s[4822]! } + public var AccessDenied_CallMicrophone: String { return self._s[4817]! } + public var VoiceChat_UnmutePeer: String { return self._s[4818]! } + public var ChatImportActivity_Retry: String { return self._s[4819]! } + public var SettingsSearch_Synonyms_Data_AutoDownloadUsingCellular: String { return self._s[4820]! } + public var ChangePhoneNumberCode_Help: String { return self._s[4821]! } + public var Passport_Identity_OneOfTypeIdentityCard: String { return self._s[4822]! } + public var Channel_AdminLogFilter_EventsLeaving: String { return self._s[4823]! } + public var BlockedUsers_LeavePrefix: String { return self._s[4824]! } public func Passport_RequestHeader(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4823]!, self._r[4823]!, [_0]) + return formatWithArgumentRanges(self._s[4825]!, self._r[4825]!, [_0]) } - public var Group_About_Help: String { return self._s[4824]! } - public var TwoStepAuth_ChangePasswordDescription: String { return self._s[4825]! } - public var Tour_Title3: String { return self._s[4826]! } - public var Watch_Conversation_Unblock: String { return self._s[4827]! } - public var Watch_UserInfo_Block: String { return self._s[4828]! } - public var Notifications_ChannelNotificationsAlert: String { return self._s[4829]! } - public var TwoFactorSetup_Hint_Action: String { return self._s[4830]! } - public var IntentsSettings_SuggestedChatsInfo: String { return self._s[4831]! } - public var TextFormat_AddLinkTitle: String { return self._s[4832]! } - public var GroupInfo_InviteLink_RevokeAlert_Revoke: String { return self._s[4833]! } + public var Group_About_Help: String { return self._s[4826]! } + public var TwoStepAuth_ChangePasswordDescription: String { return self._s[4827]! } + public var Tour_Title3: String { return self._s[4828]! } + public var Watch_Conversation_Unblock: String { return self._s[4829]! } + public var Watch_UserInfo_Block: String { return self._s[4830]! } + public var Notifications_ChannelNotificationsAlert: String { return self._s[4831]! } + public var TwoFactorSetup_Hint_Action: String { return self._s[4832]! } + public var IntentsSettings_SuggestedChatsInfo: String { return self._s[4833]! } + public var TextFormat_AddLinkTitle: String { return self._s[4834]! } + public var GroupInfo_InviteLink_RevokeAlert_Revoke: String { return self._s[4835]! } public func Notification_VoiceChatScheduled(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4834]!, self._r[4834]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4836]!, self._r[4836]!, [_1, _2]) } - public var TwoStepAuth_EnterPasswordTitle: String { return self._s[4835]! } - public var FastTwoStepSetup_PasswordSection: String { return self._s[4837]! } - public var Compose_ChannelMembers: String { return self._s[4838]! } - public var Conversation_ForwardTitle: String { return self._s[4839]! } - public var Conversation_PinnedPoll: String { return self._s[4842]! } + public var TwoStepAuth_EnterPasswordTitle: String { return self._s[4837]! } + public var FastTwoStepSetup_PasswordSection: String { return self._s[4839]! } + public var Compose_ChannelMembers: String { return self._s[4840]! } + public var Conversation_ForwardTitle: String { return self._s[4841]! } + public var Conversation_PinnedPoll: String { return self._s[4844]! } public func VoiceOver_Chat_AnonymousPollFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4843]!, self._r[4843]!, [_0]) + return formatWithArgumentRanges(self._s[4845]!, self._r[4845]!, [_0]) } - public var SettingsSearch_Synonyms_EditProfile_AddAccount: String { return self._s[4844]! } - public var Conversation_ContextMenuStickerPackAdd: String { return self._s[4846]! } - public var Stats_Overview: String { return self._s[4847]! } - public var Map_HomeAndWorkTitle: String { return self._s[4848]! } + public var SettingsSearch_Synonyms_EditProfile_AddAccount: String { return self._s[4846]! } + public var Conversation_ContextMenuStickerPackAdd: String { return self._s[4848]! } + public var Stats_Overview: String { return self._s[4849]! } + public var Map_HomeAndWorkTitle: String { return self._s[4850]! } public func Time_PreciseDate_m4(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4849]!, self._r[4849]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4851]!, self._r[4851]!, [_1, _2, _3]) } - public var Passport_Address_CityPlaceholder: String { return self._s[4850]! } - public var InfoPlist_NSLocationAlwaysAndWhenInUseUsageDescription: String { return self._s[4851]! } - public var Privacy_PhoneNumber: String { return self._s[4852]! } - public var ChatList_Search_FilterFiles: String { return self._s[4853]! } - public var ChatList_DeleteForEveryoneConfirmationAction: String { return self._s[4854]! } - public var ChannelIntro_CreateChannel: String { return self._s[4855]! } - public var Conversation_InputTextAnonymousPlaceholder: String { return self._s[4856]! } + public var Passport_Address_CityPlaceholder: String { return self._s[4852]! } + public var InfoPlist_NSLocationAlwaysAndWhenInUseUsageDescription: String { return self._s[4853]! } + public var Privacy_PhoneNumber: String { return self._s[4854]! } + public var ChatList_Search_FilterFiles: String { return self._s[4855]! } + public var ChatList_DeleteForEveryoneConfirmationAction: String { return self._s[4856]! } + public var ChannelIntro_CreateChannel: String { return self._s[4857]! } + public var Conversation_InputTextAnonymousPlaceholder: String { return self._s[4858]! } public func Login_EmailCodeBody(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4857]!, self._r[4857]!, [_0]) + return formatWithArgumentRanges(self._s[4859]!, self._r[4859]!, [_0]) } - public var Weekday_ShortMonday: String { return self._s[4858]! } - public var Passport_Language_ar: String { return self._s[4860]! } - public var SettingsSearch_Synonyms_EditProfile_Title: String { return self._s[4861]! } - public var TwoFactorSetup_Done_Title: String { return self._s[4862]! } - public var Calls_RatingFeedback: String { return self._s[4863]! } - public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsPreview: String { return self._s[4864]! } - public var AutoDownloadSettings_ResetSettings: String { return self._s[4867]! } + public var Weekday_ShortMonday: String { return self._s[4860]! } + public var Passport_Language_ar: String { return self._s[4862]! } + public var SettingsSearch_Synonyms_EditProfile_Title: String { return self._s[4863]! } + public var TwoFactorSetup_Done_Title: String { return self._s[4864]! } + public var Calls_RatingFeedback: String { return self._s[4865]! } + public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsPreview: String { return self._s[4866]! } + public var AutoDownloadSettings_ResetSettings: String { return self._s[4869]! } public func VoiceOver_SelfDestructTimerOn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4868]!, self._r[4868]!, [_0]) + return formatWithArgumentRanges(self._s[4870]!, self._r[4870]!, [_0]) } - public var Watch_Compose_Send: String { return self._s[4869]! } - public var PasscodeSettings_ChangePasscode: String { return self._s[4870]! } - public var WebSearch_RecentSectionClear: String { return self._s[4871]! } + public var Watch_Compose_Send: String { return self._s[4871]! } + public var PasscodeSettings_ChangePasscode: String { return self._s[4872]! } + public var WebSearch_RecentSectionClear: String { return self._s[4873]! } public func Contacts_AccessDeniedHelpPortrait(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4872]!, self._r[4872]!, [_0]) + return formatWithArgumentRanges(self._s[4874]!, self._r[4874]!, [_0]) } - public var WallpaperSearch_ColorTeal: String { return self._s[4873]! } - public var Wallpaper_SetCustomBackgroundInfo: String { return self._s[4874]! } - public var Permissions_ContactsTitle_v0: String { return self._s[4875]! } - public var Checkout_PasswordEntry_Pay: String { return self._s[4877]! } - public var Settings_SavedMessages: String { return self._s[4878]! } - public var TwoStepAuth_ReEnterPasswordDescription: String { return self._s[4879]! } - public var Month_ShortMarch: String { return self._s[4880]! } - public var Message_Location: String { return self._s[4881]! } + public var WallpaperSearch_ColorTeal: String { return self._s[4875]! } + public var Wallpaper_SetCustomBackgroundInfo: String { return self._s[4876]! } + public var Permissions_ContactsTitle_v0: String { return self._s[4877]! } + public var Checkout_PasswordEntry_Pay: String { return self._s[4879]! } + public var Settings_SavedMessages: String { return self._s[4880]! } + public var TwoStepAuth_ReEnterPasswordDescription: String { return self._s[4881]! } + public var Month_ShortMarch: String { return self._s[4882]! } + public var Message_Location: String { return self._s[4883]! } public func PUSH_MESSAGE_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4882]!, self._r[4882]!, [_1]) + return formatWithArgumentRanges(self._s[4884]!, self._r[4884]!, [_1]) } public func Channel_AdminLog_MessageRemovedAdminName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4883]!, self._r[4883]!, [_1]) + return formatWithArgumentRanges(self._s[4885]!, self._r[4885]!, [_1]) } public func Notification_CallTimeFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4884]!, self._r[4884]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4886]!, self._r[4886]!, [_1, _2]) } - public var VoiceOver_Chat_VoiceMessage: String { return self._s[4886]! } + public var VoiceOver_Chat_VoiceMessage: String { return self._s[4888]! } public func Channel_AdminLog_MessageChangedUnlinkedChannel(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4887]!, self._r[4887]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4889]!, self._r[4889]!, [_1, _2]) } - public var GroupPermission_NoSendMedia: String { return self._s[4888]! } - public var Conversation_ClousStorageInfo_Description2: String { return self._s[4889]! } - public var SharedMedia_CategoryDocs: String { return self._s[4890]! } - public var Appearance_RemoveThemeConfirmation: String { return self._s[4891]! } - public var Paint_Framed: String { return self._s[4892]! } - public var Channel_Setup_LinkTypePublic: String { return self._s[4893]! } - public var Channel_EditAdmin_PermissionAddAdmins: String { return self._s[4894]! } - public var Passport_Identity_DoesNotExpire: String { return self._s[4895]! } + public var GroupPermission_NoSendMedia: String { return self._s[4890]! } + public var Conversation_ClousStorageInfo_Description2: String { return self._s[4891]! } + public var SharedMedia_CategoryDocs: String { return self._s[4892]! } + public var Appearance_RemoveThemeConfirmation: String { return self._s[4893]! } + public var Paint_Framed: String { return self._s[4894]! } + public var Channel_Setup_LinkTypePublic: String { return self._s[4895]! } + public var Channel_EditAdmin_PermissionAddAdmins: String { return self._s[4896]! } + public var Passport_Identity_DoesNotExpire: String { return self._s[4897]! } public func ChatImport_SelectionConfirmationUserWithTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4896]!, self._r[4896]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4898]!, self._r[4898]!, [_1, _2]) } - public var Channel_SignMessages: String { return self._s[4897]! } - public var Contacts_AccessDeniedHelpON: String { return self._s[4898]! } - public var Conversation_ContextMenuStickerPackInfo: String { return self._s[4899]! } + public var Channel_SignMessages: String { return self._s[4899]! } + public var Contacts_AccessDeniedHelpON: String { return self._s[4900]! } + public var Conversation_ContextMenuStickerPackInfo: String { return self._s[4901]! } public func PUSH_CHAT_LEFT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4900]!, self._r[4900]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4902]!, self._r[4902]!, [_1, _2]) } - public var InviteLink_Create_TimeLimitNoLimit: String { return self._s[4901]! } - public var GroupInfo_UpgradeButton: String { return self._s[4902]! } - public var Channel_EditAdmin_PermissionInviteMembers: String { return self._s[4903]! } + public var InviteLink_Create_TimeLimitNoLimit: String { return self._s[4903]! } + public var GroupInfo_UpgradeButton: String { return self._s[4904]! } + public var Channel_EditAdmin_PermissionInviteMembers: String { return self._s[4905]! } public func Conversation_ScheduledVoiceChatStartsTomorrowShort(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4904]!, self._r[4904]!, [_0]) + return formatWithArgumentRanges(self._s[4906]!, self._r[4906]!, [_0]) } - public var AutoDownloadSettings_Files: String { return self._s[4905]! } + public var AutoDownloadSettings_Files: String { return self._s[4907]! } public func Notification_ChangedGroupName(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4906]!, self._r[4906]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4908]!, self._r[4908]!, [_0, _1]) } - public var Login_SendCodeViaSms: String { return self._s[4908]! } - public var Update_UpdateApp: String { return self._s[4909]! } - public var Channel_Setup_TypePublic: String { return self._s[4910]! } - public var Watch_Compose_CreateMessage: String { return self._s[4911]! } + public var Login_SendCodeViaSms: String { return self._s[4910]! } + public var Update_UpdateApp: String { return self._s[4911]! } + public var Channel_Setup_TypePublic: String { return self._s[4912]! } + public var Watch_Compose_CreateMessage: String { return self._s[4913]! } public func PUSH_CHAT_MESSAGE_VIDEOS(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4912]!, self._r[4912]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4914]!, self._r[4914]!, [_1, _2, _3]) } - public var StickerPacksSettings_ManagingHelp: String { return self._s[4913]! } - public var VoiceOver_Chat_Video: String { return self._s[4914]! } - public var Forward_ChannelReadOnly: String { return self._s[4915]! } - public var StickerPack_HideStickers: String { return self._s[4916]! } - public var ChatListFolder_NameContacts: String { return self._s[4917]! } - public var Profile_BotInfo: String { return self._s[4918]! } - public var Document_TargetConfirmationFormat: String { return self._s[4919]! } - public var GroupInfo_InviteByLink: String { return self._s[4920]! } - public var Channel_AdminLog_BanSendStickersAndGifs: String { return self._s[4921]! } - public var Watch_Stickers_RecentPlaceholder: String { return self._s[4922]! } - public var Broadcast_AdminLog_EmptyText: String { return self._s[4923]! } - public var Passport_NotLoggedInMessage: String { return self._s[4924]! } - public var Conversation_StopQuizConfirmation: String { return self._s[4925]! } - public var Checkout_PaymentMethod: String { return self._s[4926]! } - public var ChatList_ArchivedChatsTitle: String { return self._s[4931]! } - public var TwoStepAuth_SetupPasswordConfirmFailed: String { return self._s[4932]! } - public var VoiceOver_Chat_RecordPreviewVoiceMessage: String { return self._s[4933]! } - public var PrivacyLastSeenSettings_GroupsAndChannelsHelp: String { return self._s[4934]! } - public var SettingsSearch_Synonyms_Privacy_Data_ContactsReset: String { return self._s[4935]! } - public var Conversation_GigagroupDescription: String { return self._s[4936]! } - public var Camera_Title: String { return self._s[4937]! } - public var Map_Directions: String { return self._s[4938]! } - public var Stats_MessagePublicForwardsTitle: String { return self._s[4940]! } - public var Privacy_ProfilePhoto_WhoCanSeeMyPhoto: String { return self._s[4941]! } - public var Profile_EncryptionKey: String { return self._s[4942]! } + public var StickerPacksSettings_ManagingHelp: String { return self._s[4915]! } + public var VoiceOver_Chat_Video: String { return self._s[4916]! } + public var Forward_ChannelReadOnly: String { return self._s[4917]! } + public var StickerPack_HideStickers: String { return self._s[4918]! } + public var ChatListFolder_NameContacts: String { return self._s[4919]! } + public var Profile_BotInfo: String { return self._s[4920]! } + public var Document_TargetConfirmationFormat: String { return self._s[4921]! } + public var GroupInfo_InviteByLink: String { return self._s[4922]! } + public var Channel_AdminLog_BanSendStickersAndGifs: String { return self._s[4923]! } + public var Watch_Stickers_RecentPlaceholder: String { return self._s[4924]! } + public var Broadcast_AdminLog_EmptyText: String { return self._s[4925]! } + public var Passport_NotLoggedInMessage: String { return self._s[4926]! } + public var Conversation_StopQuizConfirmation: String { return self._s[4927]! } + public var Checkout_PaymentMethod: String { return self._s[4928]! } + public var ChatList_ArchivedChatsTitle: String { return self._s[4933]! } + public var TwoStepAuth_SetupPasswordConfirmFailed: String { return self._s[4934]! } + public var VoiceOver_Chat_RecordPreviewVoiceMessage: String { return self._s[4935]! } + public var PrivacyLastSeenSettings_GroupsAndChannelsHelp: String { return self._s[4936]! } + public var SettingsSearch_Synonyms_Privacy_Data_ContactsReset: String { return self._s[4937]! } + public var Conversation_GigagroupDescription: String { return self._s[4938]! } + public var Camera_Title: String { return self._s[4939]! } + public var Map_Directions: String { return self._s[4940]! } + public var Stats_MessagePublicForwardsTitle: String { return self._s[4942]! } + public var Privacy_ProfilePhoto_WhoCanSeeMyPhoto: String { return self._s[4943]! } + public var Profile_EncryptionKey: String { return self._s[4944]! } public func LOCAL_CHAT_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4943]!, self._r[4943]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[4945]!, self._r[4945]!, [_1, "\(_2)"]) } - public var VoiceChat_VideoPreviewShareCamera: String { return self._s[4944]! } + public var VoiceChat_VideoPreviewShareCamera: String { return self._s[4946]! } public func Compatibility_SecretMediaVersionTooLow(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4945]!, self._r[4945]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4947]!, self._r[4947]!, [_0, _1]) } - public var Passport_Identity_TypePassport: String { return self._s[4946]! } - public var CreatePoll_QuizOptionsHeader: String { return self._s[4948]! } - public var Common_No: String { return self._s[4949]! } - public var Conversation_SendMessage_ScheduleMessage: String { return self._s[4950]! } - public var SettingsSearch_Synonyms_Privacy_LastSeen: String { return self._s[4951]! } - public var Settings_AboutEmpty: String { return self._s[4952]! } - public var TwoStepAuth_FloodError: String { return self._s[4954]! } - public var SettingsSearch_Synonyms_Appearance_TextSize: String { return self._s[4955]! } + public var Passport_Identity_TypePassport: String { return self._s[4948]! } + public var CreatePoll_QuizOptionsHeader: String { return self._s[4950]! } + public var Common_No: String { return self._s[4951]! } + public var Conversation_SendMessage_ScheduleMessage: String { return self._s[4952]! } + public var SettingsSearch_Synonyms_Privacy_LastSeen: String { return self._s[4953]! } + public var Settings_AboutEmpty: String { return self._s[4954]! } + public var TwoStepAuth_FloodError: String { return self._s[4956]! } + public var SettingsSearch_Synonyms_Appearance_TextSize: String { return self._s[4957]! } public func Notification_VoiceChatScheduledChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4956]!, self._r[4956]!, [_0]) + return formatWithArgumentRanges(self._s[4958]!, self._r[4958]!, [_0]) } public func Channel_AdminLog_MessageUnkickedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4958]!, self._r[4958]!, [_1]) + return formatWithArgumentRanges(self._s[4960]!, self._r[4960]!, [_1]) } - public var Notification_Exceptions_MessagePreviewAlwaysOn: String { return self._s[4961]! } - public var Conversation_Edit: String { return self._s[4962]! } - public var CheckoutInfo_SaveInfo: String { return self._s[4964]! } - public var VoiceOver_Chat_AnonymousPoll: String { return self._s[4965]! } - public var Call_CameraTooltip: String { return self._s[4967]! } - public var InstantPage_FeedbackButtonShort: String { return self._s[4968]! } - public var Contacts_InviteToTelegram: String { return self._s[4969]! } - public var Notifications_ResetAllNotifications: String { return self._s[4970]! } - public var Calls_NewCall: String { return self._s[4971]! } - public var VoiceOver_Chat_Music: String { return self._s[4974]! } - public var Channel_AdminLogFilter_EventsInviteLinks: String { return self._s[4975]! } - public var Channel_Members_AddAdminErrorNotAMember: String { return self._s[4976]! } - public var Channel_Edit_AboutItem: String { return self._s[4977]! } - public var Message_VideoExpired: String { return self._s[4978]! } - public var Passport_Address_TypeTemporaryRegistrationUploadScan: String { return self._s[4979]! } + public var Notification_Exceptions_MessagePreviewAlwaysOn: String { return self._s[4963]! } + public var Conversation_Edit: String { return self._s[4964]! } + public var CheckoutInfo_SaveInfo: String { return self._s[4966]! } + public var VoiceOver_Chat_AnonymousPoll: String { return self._s[4967]! } + public var Call_CameraTooltip: String { return self._s[4969]! } + public var InstantPage_FeedbackButtonShort: String { return self._s[4970]! } + public var Contacts_InviteToTelegram: String { return self._s[4971]! } + public var Notifications_ResetAllNotifications: String { return self._s[4972]! } + public var Calls_NewCall: String { return self._s[4973]! } + public var VoiceOver_Chat_Music: String { return self._s[4976]! } + public var Channel_AdminLogFilter_EventsInviteLinks: String { return self._s[4977]! } + public var Channel_Members_AddAdminErrorNotAMember: String { return self._s[4978]! } + public var Channel_Edit_AboutItem: String { return self._s[4979]! } + public var Message_VideoExpired: String { return self._s[4980]! } + public var Passport_Address_TypeTemporaryRegistrationUploadScan: String { return self._s[4981]! } public func PUSH_CHAT_RETURNED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4980]!, self._r[4980]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4982]!, self._r[4982]!, [_1, _2]) } - public var NotificationsSound_Input: String { return self._s[4982]! } - public var Notifications_ClassicTones: String { return self._s[4983]! } - public var Conversation_StatusTyping: String { return self._s[4984]! } - public var Checkout_ErrorProviderAccountInvalid: String { return self._s[4985]! } - public var ChatSettings_AutoDownloadSettings_Delimeter: String { return self._s[4986]! } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChats: String { return self._s[4987]! } - public var Conversation_MessageLeaveComment: String { return self._s[4988]! } - public var UserInfo_TapToCall: String { return self._s[4989]! } - public var EnterPasscode_EnterNewPasscodeNew: String { return self._s[4990]! } + public var NotificationsSound_Input: String { return self._s[4984]! } + public var Notifications_ClassicTones: String { return self._s[4985]! } + public var Conversation_StatusTyping: String { return self._s[4986]! } + public var Checkout_ErrorProviderAccountInvalid: String { return self._s[4987]! } + public var ChatSettings_AutoDownloadSettings_Delimeter: String { return self._s[4988]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChats: String { return self._s[4989]! } + public var Conversation_MessageLeaveComment: String { return self._s[4990]! } + public var UserInfo_TapToCall: String { return self._s[4991]! } + public var EnterPasscode_EnterNewPasscodeNew: String { return self._s[4992]! } public func ScheduleVoiceChat_ScheduleOn(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4991]!, self._r[4991]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4993]!, self._r[4993]!, [_0, _1]) } - public var Conversation_ClearAll: String { return self._s[4993]! } - public var UserInfo_NotificationsDefault: String { return self._s[4994]! } - public var Location_ProximityGroupTip: String { return self._s[4995]! } - public var Map_ChooseAPlace: String { return self._s[4996]! } - public var GroupInfo_AddParticipantTitle: String { return self._s[4998]! } - public var ChatList_PeerTypeNonContact: String { return self._s[4999]! } - public var Conversation_SlideToCancel: String { return self._s[5000]! } - public var Month_ShortJuly: String { return self._s[5001]! } - public var SocksProxySetup_ProxyType: String { return self._s[5002]! } + public var Conversation_ClearAll: String { return self._s[4995]! } + public var UserInfo_NotificationsDefault: String { return self._s[4996]! } + public var Location_ProximityGroupTip: String { return self._s[4997]! } + public var Map_ChooseAPlace: String { return self._s[4998]! } + public var GroupInfo_AddParticipantTitle: String { return self._s[5000]! } + public var ChatList_PeerTypeNonContact: String { return self._s[5001]! } + public var Conversation_SlideToCancel: String { return self._s[5002]! } + public var Month_ShortJuly: String { return self._s[5003]! } + public var SocksProxySetup_ProxyType: String { return self._s[5004]! } public func ChatList_DeleteChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5003]!, self._r[5003]!, [_0]) + return formatWithArgumentRanges(self._s[5005]!, self._r[5005]!, [_0]) } - public var StickerPacks_ActionArchive: String { return self._s[5004]! } - public var ChatList_EditFolders: String { return self._s[5005]! } - public var TwoStepAuth_SetPasswordHelp: String { return self._s[5006]! } - public var ScheduledMessages_RemindersTitle: String { return self._s[5008]! } + public var StickerPacks_ActionArchive: String { return self._s[5006]! } + public var ChatList_EditFolders: String { return self._s[5007]! } + public var TwoStepAuth_SetPasswordHelp: String { return self._s[5008]! } + public var ScheduledMessages_RemindersTitle: String { return self._s[5010]! } public func GroupPermission_ApplyAlertText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5009]!, self._r[5009]!, [_0]) + return formatWithArgumentRanges(self._s[5011]!, self._r[5011]!, [_0]) } - public var Permissions_PeopleNearbyTitle_v0: String { return self._s[5010]! } - public var Your_cards_expiration_year_is_invalid: String { return self._s[5011]! } - public var UserInfo_ShareMyContactInfo: String { return self._s[5013]! } + public var Permissions_PeopleNearbyTitle_v0: String { return self._s[5012]! } + public var Your_cards_expiration_year_is_invalid: String { return self._s[5013]! } + public var UserInfo_ShareMyContactInfo: String { return self._s[5015]! } public func Conversation_ScheduledVoiceChatStartsOnShort(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5015]!, self._r[5015]!, [_0]) + return formatWithArgumentRanges(self._s[5017]!, self._r[5017]!, [_0]) } - public var Passport_DeleteAddress: String { return self._s[5016]! } - public var Passport_DeletePassportConfirmation: String { return self._s[5017]! } - public var Passport_Identity_ReverseSide: String { return self._s[5018]! } - public var CheckoutInfo_ErrorEmailInvalid: String { return self._s[5020]! } - public var Login_InfoLastNamePlaceholder: String { return self._s[5021]! } - public var InviteLink_CreatedBy: String { return self._s[5022]! } - public var Passport_FieldAddress: String { return self._s[5023]! } - public var SettingsSearch_Synonyms_Calls_Title: String { return self._s[5024]! } - public var Passport_Identity_ResidenceCountryPlaceholder: String { return self._s[5027]! } - public var VoiceChat_Panel_TapToJoin: String { return self._s[5028]! } - public var Map_Home: String { return self._s[5029]! } - public var PollResults_Title: String { return self._s[5032]! } + public var Passport_DeleteAddress: String { return self._s[5018]! } + public var Passport_DeletePassportConfirmation: String { return self._s[5019]! } + public var Passport_Identity_ReverseSide: String { return self._s[5020]! } + public var CheckoutInfo_ErrorEmailInvalid: String { return self._s[5022]! } + public var Login_InfoLastNamePlaceholder: String { return self._s[5023]! } + public var InviteLink_CreatedBy: String { return self._s[5024]! } + public var Passport_FieldAddress: String { return self._s[5025]! } + public var SettingsSearch_Synonyms_Calls_Title: String { return self._s[5026]! } + public var Passport_Identity_ResidenceCountryPlaceholder: String { return self._s[5029]! } + public var VoiceChat_Panel_TapToJoin: String { return self._s[5030]! } + public var Map_Home: String { return self._s[5031]! } + public var PollResults_Title: String { return self._s[5034]! } public func InviteLink_OtherPermanentLinkInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5033]!, self._r[5033]!, [_1, _2]) + return formatWithArgumentRanges(self._s[5035]!, self._r[5035]!, [_1, _2]) } - public var ArchivedChats_IntroText2: String { return self._s[5035]! } - public var VoiceChat_VideoPreviewTitle: String { return self._s[5036]! } - public var PasscodeSettings_SimplePasscodeHelp: String { return self._s[5037]! } - public var VoiceOver_Chat_ContactPhoneNumber: String { return self._s[5038]! } - public var VoiceChat_Muted: String { return self._s[5040]! } - public var CallFeedback_ReasonSilentRemote: String { return self._s[5041]! } - public var Passport_Identity_AddPersonalDetails: String { return self._s[5042]! } - public var Conversation_AutoremoveActionEnable: String { return self._s[5044]! } - public var Group_Info_AdminLog: String { return self._s[5045]! } - public var ChatSettings_AutoPlayTitle: String { return self._s[5046]! } - public var Appearance_Animations: String { return self._s[5047]! } - public var Appearance_TextSizeSetting: String { return self._s[5048]! } - public func MessageTimer_ShortDays(_ value: Int32) -> String { + public var ArchivedChats_IntroText2: String { return self._s[5037]! } + public var VoiceChat_VideoPreviewTitle: String { return self._s[5038]! } + public var PasscodeSettings_SimplePasscodeHelp: String { return self._s[5039]! } + public var VoiceOver_Chat_ContactPhoneNumber: String { return self._s[5040]! } + public var VoiceChat_Muted: String { return self._s[5042]! } + public var CallFeedback_ReasonSilentRemote: String { return self._s[5043]! } + public var Passport_Identity_AddPersonalDetails: String { return self._s[5044]! } + public var Conversation_AutoremoveActionEnable: String { return self._s[5046]! } + public var Group_Info_AdminLog: String { return self._s[5047]! } + public var ChatSettings_AutoPlayTitle: String { return self._s[5048]! } + public var Appearance_Animations: String { return self._s[5049]! } + public var Appearance_TextSizeSetting: String { return self._s[5050]! } + public func LiveLocationUpdated_MinutesAgo(_ 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 StickerPacks_DeleteStickerPacksConfirmation(_ value: Int32) -> String { + public func PasscodeSettings_FailedAttempts(_ 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 Call_ShortMinutes(_ value: Int32) -> String { + public func AttachmentMenu_SendVideo(_ 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 Stats_MessageViews(_ value: Int32) -> String { + public func Notification_GameScoreSimple(_ 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 ForwardedPolls(_ value: Int32) -> String { + 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[4 * 6 + Int(form.rawValue)]!, stringValue) } - public func ChatList_MessageMusic(_ value: Int32) -> String { + public func ForwardedContacts(_ 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 LastSeen_HoursAgo(_ value: Int32) -> String { + public func PollResults_ShowMore(_ 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 InviteLink_PeopleJoined(_ value: Int32) -> String { + public func ServiceMessage_GameScoreSelfSimple(_ 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 PUSH_MESSAGE_FILES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[8 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func GroupInfo_ParticipantCount(_ 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 Notification_GameScoreSelfSimple(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[10 * 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[11 * 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[12 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func ForwardedVideos(_ 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 PUSH_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[14 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func LiveLocationUpdated_MinutesAgo(_ 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 ForwardedContacts(_ 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 InviteLink_InviteLinks(_ 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 ForwardedAudios(_ 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 MessagePoll_QuizCount(_ 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 UserCount(_ 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 SharedMedia_File(_ 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 Notifications_Exceptions(_ 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 InviteLink_PeopleJoinedShort(_ 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 VoiceChat_Panel_Members(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[24 * 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[25 * 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[26 * 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[27 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ScheduledIn_Days(_ 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) - } - public func SharedMedia_DeleteItemsConfirmation(_ 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 ServiceMessage_GameScoreSelfExtended(_ 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 StickerPack_RemoveMaskCount(_ 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_SelectedMessages(_ 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 SharedMedia_Link(_ 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 Conversation_AutoremoveRemainingDays(_ 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 VoiceOver_Chat_MessagesSelected(_ 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 OldChannels_InactiveMonth(_ 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 ForwardedMessages(_ 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 ServiceMessage_GameScoreSelfSimple(_ 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 Conversation_ContextViewReplies(_ 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 ChatList_MessageVideos(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[40 * 6 + Int(form.rawValue)]!, stringValue) - } - public func VoiceChat_Status_Members(_ 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 Stats_GroupTopAdminKicks(_ 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 MuteFor_Days(_ 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 StickerPacks_ArchiveStickerPacksConfirmation(_ 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_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[45 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Stats_GroupShowMoreTopInviters(_ 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 Stats_GroupTopAdminBans(_ 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 MessageTimer_Hours(_ 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 ChatList_SelectedChats(_ 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 Chat_MessagesUnpinned(_ 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 PasscodeSettings_FailedAttempts(_ 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 VoiceOver_Chat_ContactPhoneNumberCount(_ 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 MessageTimer_ShortSeconds(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[53 * 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[54 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Stats_GroupShowMoreTopPosters(_ 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 MuteExpires_Hours(_ 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 ServiceMessage_GameScoreSimple(_ 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 Contacts_InviteContacts(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[58 * 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[59 * 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[60 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ScheduledIn_Weeks(_ 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 Conversation_LiveLocationMembersCount(_ 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 MuteExpires_Minutes(_ 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_Video(_ 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 Conversation_MessageViewComments(_ 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 AttachmentMenu_SendVideo(_ 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 VoiceOver_Chat_UnreadMessages(_ 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 Theme_UsersCount(_ 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 Conversation_StatusMembers(_ 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 LiveLocation_MenuChatsCount(_ 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 ChatList_Search_Messages(_ 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 ScheduledIn_Hours(_ 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) - } - public func PollResults_ShowMore(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[73 * 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[74 * 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[75 * 6 + Int(form.rawValue)]!, stringValue) - } - public func InviteLink_PeopleRemaining(_ 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 MessageTimer_Years(_ 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 ForwardedFiles(_ 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 Notifications_ExceptionMuteExpires_Days(_ 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 ForwardedVideoMessages(_ 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 InstantPage_Views(_ 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 LastSeen_MinutesAgo(_ 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 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 InviteText_ContactsCountText(_ 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 VoiceChat_InviteLink_InviteListeners(_ 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 Passport_Scans(_ 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) + return String(format: self._ps[8 * 6 + Int(form.rawValue)]!, stringValue) } public func Media_ShareItem(_ 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) + return String(format: self._ps[9 * 6 + Int(form.rawValue)]!, stringValue) } - public func StickerPack_AddStickerCount(_ value: Int32) -> String { + public func ChatList_MessageVideos(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[88 * 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[89 * 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[90 * 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[91 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Stats_GroupTopPosterMessages(_ 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 MessageTimer_Months(_ 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 Notifications_ExceptionMuteExpires_Minutes(_ 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 MessageTimer_ShortHours(_ 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 Conversation_ContextMenuSelectAll(_ 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 ChatList_MessageFiles(_ 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 Stats_GroupTopPosterChars(_ 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 OldChannels_Leave(_ 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 QuickSend_Photos(_ 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 ScheduledIn_Seconds(_ 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 AttachmentMenu_SendPhoto(_ 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 PUSH_CHANNEL_MESSAGE_DOCS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[103 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Conversation_StatusOnline(_ 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 Notification_GameScoreExtended(_ 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 Media_ShareVideo(_ 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_CHAT_MESSAGE_VIDEOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[107 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func SharedMedia_Generic(_ 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 Call_Seconds(_ 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 Watch_LastSeen_MinutesAgo(_ 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 ChatList_DeleteConfirmation(_ 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 StickerPack_StickerCount(_ 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 Chat_TitlePinnedMessages(_ 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 InviteLink_PeopleCanJoin(_ 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 ForwardedPhotos(_ 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 PUSH_CHAT_MESSAGE_FWDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[116 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func PeopleNearby_ShowMorePeople(_ 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 MessageTimer_Weeks(_ 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 ScheduledIn_Years(_ 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 Stats_MessageForwards(_ 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 PUSH_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[121 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Call_Days(_ 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 Call_ShortSeconds(_ 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 Watch_LastSeen_HoursAgo(_ 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 MessagePoll_VotedCount(_ 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 VoiceChat_InviteLink_InviteSpeakers(_ 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 ForwardedGifs(_ 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 Stats_GroupTopInviterInvites(_ 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 Conversation_StatusSubscribers(_ 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 PUSH_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[130 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Media_SharePhoto(_ 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 AttachmentMenu_SendItem(_ 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 PUSH_CHANNEL_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[133 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Stats_GroupTopAdminDeletions(_ 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 MessageTimer_ShortWeeks(_ 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 PUSH_CHANNEL_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[136 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Forward_ConfirmMultipleFiles(_ 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_ContactEmailCount(_ 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) - } - public func OldChannels_InactiveYear(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[139 * 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[140 * 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[141 * 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[142 * 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[143 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func ScheduledIn_Months(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[144 * 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[145 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHAT_MESSAGE_DOCS_FIX1(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[146 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func Chat_DeleteMessagesConfirmation(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[147 * 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[148 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func ForwardedAuthorsOthers(_ selector: Int32, _ _0: String, _ _1: String) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[149 * 6 + Int(form.rawValue)]!, _0, _1) - } - public func AttachmentMenu_SendGif(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[150 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[10 * 6 + Int(form.rawValue)]!, stringValue) } public func Conversation_TitleReplies(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[151 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[11 * 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[152 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Wallpaper_DeleteConfirmation(_ 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[153 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[12 * 6 + Int(form.rawValue)]!, stringValue) } - public func VoiceOver_Chat_PollVotes(_ value: Int32) -> String { + public func Call_ShortSeconds(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[154 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[13 * 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[155 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func MessageTimer_Seconds(_ value: Int32) -> String { + public func InviteLink_PeopleRemaining(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[156 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[14 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_Minutes(_ value: Int32) -> String { + public func ServiceMessage_GameScoreExtended(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[157 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[15 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ScheduledIn_Days(_ 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 Invitation_Members(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[158 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[17 * 6 + Int(form.rawValue)]!, stringValue) } - public func StickerPack_RemoveStickerCount(_ value: Int32) -> String { + 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[159 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[18 * 6 + Int(form.rawValue)]!, stringValue) } - public func Notifications_ExceptionMuteExpires_Hours(_ value: Int32) -> String { + public func Media_ShareVideo(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[160 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[19 * 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[161 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Conversation_TitleComments(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[162 * 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[163 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + public func PUSH_MESSAGE_FILES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[164 * 6 + Int(form.rawValue)]!, _1, _2) + return String(format: self._ps[20 * 6 + Int(form.rawValue)]!, _1, _2) } - public func Stats_GroupShowMoreTopAdmins(_ value: Int32) -> String { + public func OldChannels_GroupFormat(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[165 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[21 * 6 + Int(form.rawValue)]!, stringValue) } - public func Call_Hours(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[166 * 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[167 * 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[168 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHAT_MESSAGE_ROUNDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + public func PUSH_CHANNEL_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[169 * 6 + Int(form.rawValue)]!, _2, _1, _3) + return String(format: self._ps[22 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func Call_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_MESSAGE_FWDS(_ 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 Notifications_Exceptions(_ 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 Conversation_MessageViewComments(_ 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 StickerPack_StickerCount(_ 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) + } + public func MuteFor_Days(_ 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) + } + 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[29 * 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[30 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ChatList_MessageMusic(_ 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 Call_Days(_ 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 VoiceOver_Chat_PollOptionCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[170 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[33 * 6 + Int(form.rawValue)]!, stringValue) } - public func ScheduledIn_Minutes(_ 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[171 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[34 * 6 + Int(form.rawValue)]!, stringValue) } - public func PrivacyLastSeenSettings_AddUsers(_ value: Int32) -> String { + public func Stats_GroupShowMoreTopAdmins(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[172 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[35 * 6 + Int(form.rawValue)]!, stringValue) + } + public func LastSeen_MinutesAgo(_ 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 Conversation_TitleComments(_ 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 DialogList_LiveLocationChatsCount(_ 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 MessageTimer_Years(_ 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 ScheduledIn_Weeks(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[40 * 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[173 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[41 * 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[42 * 6 + Int(form.rawValue)]!, stringValue) + } + public func StickerPacks_DeleteStickerPacksConfirmation(_ 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_SelectedMessages(_ 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 Watch_LastSeen_HoursAgo(_ 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 Call_Seconds(_ 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 MessageTimer_Months(_ 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 SharedMedia_Photo(_ 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 StickerPack_AddMaskCount(_ 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 OldChannels_InactiveWeek(_ 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 Chat_DeleteMessagesConfirmation(_ 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 ForwardedFiles(_ 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 Call_ShortMinutes(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[53 * 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[54 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Stats_GroupShowMoreTopInviters(_ 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 MessageTimer_Weeks(_ 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 PUSH_CHAT_MESSAGE_ROUNDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[57 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func MessageTimer_Minutes(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[58 * 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[59 * 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[60 * 6 + Int(form.rawValue)]!, stringValue) + } + public func VoiceChat_Panel_Members(_ 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 ChatList_Search_Messages(_ 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 Notifications_ExceptionMuteExpires_Minutes(_ 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 OldChannels_InactiveMonth(_ 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 VoiceChat_InviteLink_InviteListeners(_ 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 ChatList_MessagePhotos(_ 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 PUSH_CHAT_MESSAGES(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[67 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func ScheduledIn_Months(_ 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 ChatList_SelectedChats(_ 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 CreatePoll_AddMoreOptions(_ 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 InstantPage_Views(_ 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 UserCount(_ 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) + } + public func ForwardedGifs(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[73 * 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[74 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ScheduledIn_Hours(_ 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 SharedMedia_DeleteItemsConfirmation(_ 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 Conversation_ContextMenuSelectAll(_ 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 SharedMedia_Generic(_ 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 ForwardedAudios(_ 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 ScheduledIn_Seconds(_ 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 Stats_GroupTopInviterInvites(_ 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 ChatListFilter_ShowMoreChats(_ 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 Notifications_ExceptionMuteExpires_Hours(_ 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_GroupTopAdminDeletions(_ 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 PUSH_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[85 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func Media_SharePhoto(_ 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 PUSH_CHAT_MESSAGE_DOCS_FIX1(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[87 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func LastSeen_HoursAgo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[88 * 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[89 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ChatList_MessageFiles(_ 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 QuickSend_Photos(_ 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 ScheduledIn_Minutes(_ 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 Passport_Scans(_ 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 MuteExpires_Minutes(_ 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 MessagePoll_QuizCount(_ 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 InviteLink_PeopleJoined(_ 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 ChatList_DeleteConfirmation(_ 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_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[98 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func ForwardedStickers(_ 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_MESSAGE_ROUNDS(_ 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 AttachmentMenu_SendPhoto(_ 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 AttachmentMenu_SendItem(_ 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 Contacts_InviteContacts(_ 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 OldChannels_Leave(_ 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 MessageTimer_Hours(_ 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_GroupTopAdminBans(_ 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 Forward_ConfirmMultipleFiles(_ 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 Stats_GroupTopPosterChars(_ 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 MessageTimer_ShortWeeks(_ 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 PUSH_CHANNEL_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[110 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func VoiceOver_Chat_MessagesSelected(_ 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 VoiceChat_Status_Members(_ 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 ForwardedPhotos(_ 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 VoiceOver_Chat_UnreadMessages(_ 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 Map_ETAMinutes(_ 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 Conversation_AutoremoveRemainingDays(_ 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 Chat_TitlePinnedMessages(_ 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 PUSH_CHANNEL_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[118 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func StickerPack_RemoveStickerCount(_ 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 Chat_MessagesUnpinned(_ 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 Stats_MessageViews(_ 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 PUSH_CHANNEL_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[122 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func MessagePoll_VotedCount(_ 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 InviteLink_InviteLinks(_ 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 PUSH_CHAT_MESSAGE_FWDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[125 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func StickerPack_RemoveMaskCount(_ 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 Watch_LastSeen_MinutesAgo(_ 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 LiveLocation_MenuChatsCount(_ 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 PUSH_CHAT_MESSAGE_VIDEOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[129 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + 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[130 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Conversation_ContextViewReplies(_ 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 Notification_GameScoreExtended(_ 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 Stats_GroupShowMoreTopPosters(_ 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 ForwardedAuthorsOthers(_ selector: Int32, _ _0: String, _ _1: String) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[134 * 6 + Int(form.rawValue)]!, _0, _1) + } + public func Notification_GameScoreSelfSimple(_ 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 PUSH_CHANNEL_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[136 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func ChatList_DeletedChats(_ 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 Conversation_StatusOnline(_ 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) + } + public func ScheduledIn_Years(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[139 * 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[140 * 6 + Int(form.rawValue)]!, stringValue) + } + public func StickerPacks_ArchiveStickerPacksConfirmation(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[141 * 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[142 * 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[143 * 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[144 * 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[145 * 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[146 * 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[147 * 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[148 * 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[149 * 6 + Int(form.rawValue)]!, stringValue) + } + public func VoiceChat_InviteLink_InviteSpeakers(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[150 * 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[151 * 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[152 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHANNEL_MESSAGE_DOCS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[153 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func MessageTimer_ShortMinutes(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[154 * 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[155 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func InviteLink_PeopleCanJoin(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[156 * 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[174 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[157 * 6 + Int(form.rawValue)]!, stringValue) } - public func Notification_GameScoreSimple(_ 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[175 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[158 * 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[159 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Stats_MessageForwards(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[160 * 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[161 * 6 + Int(form.rawValue)]!, stringValue) + } + public func InviteText_ContactsCountText(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[162 * 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[163 * 6 + Int(form.rawValue)]!, stringValue) + } + public func AttachmentMenu_SendGif(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[164 * 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[165 * 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[166 * 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[167 * 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[168 * 6 + Int(form.rawValue)]!, stringValue) + } + public func InviteLink_PeopleJoinedShort(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[169 * 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[170 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Call_Hours(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[171 * 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[172 * 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[173 * 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[174 * 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[175 * 6 + Int(form.rawValue)]!, _1, _2) } public init(primaryComponent: PresentationStringsComponent, secondaryComponent: PresentationStringsComponent?, groupingSeparator: String) { diff --git a/submodules/TelegramUI/Resources/PresentationStrings.mapping b/submodules/TelegramUI/Resources/PresentationStrings.mapping index c608d17bf09a71c12b9d5dc03063d802d1f2a62d..b103824b68205a90e59c4923d66bc5be40510e81 100644 GIT binary patch delta 22509 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 awA_1h!eZ?%9MWWX=x#QugS(j*75_h+rgDb> delta 22197 zcmZvE2Y8gl_jP7uQ+GGJ>DjbRNTDtXy+a5sKnf&u1eRohNRkaH^sb^H2>1#IX#o|n z&_zX1id{O0*pOl`R4YpR&b*rh{QbY@!6&{mcls^o-np|&-|_$GpugxjSG*>~*UP$v zd3kvaau*f2GR8YA9qAPlT!s1WyfT+_0xP`Q7`?oL`FF6(HKEWs)sZ*eU0#`2Rm%TY z)oodAhx3LA(XQR_(c;D%MLW2k5)BOPSre^Un}r7UEGl+Ym?oMTy0Li@ z(hG$RpK2mVWZ)-FG?6`w+QonnY%i1k#-8r-$m(lgmYY!$3B)YjZaS!?;3(h(U;7A=-(-7`}qN4pEiZ zFik`oofQ>j+*38rq1d`Y#EW4#u|htsc&<6h`@wQH!>Yz+}AV(`f-&UuniyP6vX%W7c}lM%mK*bGxiVu!T_k7CGb5h$i% z{Aytr)3IPR*E$2cR*S^AStK%ZP8rVPVn>Fv#8vLh89P?ZayDz~Yx~0^VOb-rVlEQa zh$O>2md0Y#a1ox?qr_QMT*s&nvqH&+-ce?0fxD!rbeu;}*flG>9#Kachga7Kn|Kt* z)`%vC`E1kzCxb)??D?V|!qWhWgu~s<56S%Ne zG!ctnTE{<&(SDtXig}VNtC~FW3@%oSII#+1y-1X+jY##8 z5$LjB7{nU%P-W|k+R4Vjn6;jbsy@IOoV%OxYkT@&%*TrC}(lHwcs1ge@DmfERIYgNQV|#1%Ke zzVV{5U!JRYtlHw2k@_qr{)(DooVPB_n=$WMPGk!b5&OIEGyIiuVTz|l*e5pi^91|84=)` zQt6nKs_I_D_UA+c@jAYEjw9{nW^|-5KQBTJZ<4&R65smBd|m_^_Ug^AFBGu`)$nc1 zd0r$K_OrC9wxeq}_C3!XJb<&$i>Bfr{5MkTyu->!ZQ@_S=(ACn@as=Uhh%q1M_>28kpTTJ7;jV;^z;rZ6l}tA!)+2c!c1}M&Tzu z!i|lhQT)d&RqM_j@2+(BC@iXUmpgLGi^dhzaL^%SyddJ`VI#h(ls3$Hf#QC|s9F1k z;Mo^Mu;D1%r{H9Ph{C7p`xw7NmBNkCS9l!$n}ow~f~Cm_JTAhq-CKBL*d{8NlPrwK z_8~G7k8h%wp2EsaBHr)`i^DKCm

yd3}nrn?wV7#t8GH!j9w@xs9KbBubn3bc8Xd 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 rudvsgZ@lq@tpEQ251b(y