From e5882cb0dc8847728ca4f93cad7ef37c1515de0b Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Tue, 16 Feb 2021 21:18:47 +0400 Subject: [PATCH] Invite Links Improvements --- .../Telegram-iOS/en.lproj/Localizable.strings | 4 + .../Sources/DatePickerNode.swift | 579 ++- .../DatePickerNode/Sources/TapeNode.swift | 271 ++ .../Navigation/NavigationModalContainer.swift | 7 +- .../Sources/InviteLinkEditController.swift | 15 +- .../Sources/ItemListDatePickerItem.swift | 2 + .../Sources/ItemListController.swift | 9 + .../Sources/ItemListControllerNode.swift | 7 + .../RecentSessionsController.swift | 94 +- .../Sources/PresentationStrings.swift | 3340 +++++++++-------- .../Sources/DateFormat.swift | 23 + .../Help.imageset/Contents.json | 12 + .../Help.imageset/ic_question.pdf | Bin 0 -> 4307 bytes .../Resources/PresentationStrings.mapping | Bin 162733 -> 162805 bytes .../ChatChannelSubscriberInputPanelNode.swift | 22 + .../TelegramUI/Sources/ChatController.swift | 4 + .../ChatPanelInterfaceInteraction.swift | 3 + .../Sources/ChatRecentActionsController.swift | 1 + .../ChatRecentActionsControllerNode.swift | 33 +- .../ChatRecentActionsHistoryTransition.swift | 2 +- .../Sources/PeerInfo/PeerInfoData.swift | 10 +- .../Sources/PeerInfo/PeerInfoScreen.swift | 1 + 22 files changed, 2659 insertions(+), 1780 deletions(-) create mode 100644 submodules/DatePickerNode/Sources/TapeNode.swift create mode 100644 submodules/TelegramUI/Images.xcassets/Chat/Input/Accessory Panels/Help.imageset/Contents.json create mode 100644 submodules/TelegramUI/Images.xcassets/Chat/Input/Accessory Panels/Help.imageset/ic_question.pdf diff --git a/Telegram/Telegram-iOS/en.lproj/Localizable.strings b/Telegram/Telegram-iOS/en.lproj/Localizable.strings index a7ce5d2311..711af7a5d0 100644 --- a/Telegram/Telegram-iOS/en.lproj/Localizable.strings +++ b/Telegram/Telegram-iOS/en.lproj/Localizable.strings @@ -1087,6 +1087,8 @@ "Time.PreciseDate_m11" = "Nov %1$@, %2$@ at %3$@"; "Time.PreciseDate_m12" = "Dec %1$@, %2$@ at %3$@"; +"Time.MediumDate" = "%1$@ at %2$@"; + "MuteFor.Hours_1" = "Mute for 1 hour"; "MuteFor.Hours_2" = "Mute for 2 hours"; "MuteFor.Hours_3_10" = "Mute for %@ hours"; @@ -6102,3 +6104,5 @@ Sorry for the inconvenience."; "Conversation.AutoremoveTimerRemovedGroup" = "A group admin disabled the auto-delete timer"; "Conversation.AutoremoveTimerSetChannel" = "Messages in this channel will be automatically deleted after %1$@"; "Conversation.AutoremoveTimerRemovedChannel" = "Messages in this channel will no longer be automatically deleted"; + +"Conversation.GigagroupDescription" = "Only admins can send messages in this group."; diff --git a/submodules/DatePickerNode/Sources/DatePickerNode.swift b/submodules/DatePickerNode/Sources/DatePickerNode.swift index 4e7e7e8236..567cc5ccd2 100644 --- a/submodules/DatePickerNode/Sources/DatePickerNode.swift +++ b/submodules/DatePickerNode/Sources/DatePickerNode.swift @@ -917,29 +917,67 @@ private class TimeInputView: UIView, UIKeyInput { return !self.text.isEmpty } + var focusUpdated: ((Bool) -> Void)? var textUpdated: ((String) -> Void)? + override func becomeFirstResponder() -> Bool { + if self.isFirstResponder { + self.didReset = false + } + let result = super.becomeFirstResponder() + self.focusUpdated?(true) + return result + } + + override func resignFirstResponder() -> Bool { + let result = super.resignFirstResponder() + self.focusUpdated?(false) + return result + } + + var didReset = false + private let nonDigits = CharacterSet.decimalDigits.inverted func insertText(_ text: String) { if text.rangeOfCharacter(from: nonDigits) != nil { return } + if !self.didReset { + self.text = "" + self.didReset = true + } var updatedText = self.text - updatedText.append(updatedText) - updatedText = String(updatedText.suffix(4)) + updatedText.append(text) self.text = updatedText self.textUpdated?(self.text) } func deleteBackward() { + self.didReset = true var updatedText = self.text - updatedText.removeLast() + if !updatedText.isEmpty { + updatedText.removeLast() + } self.text = updatedText self.textUpdated?(self.text) } } private class TimeInputNode: ASDisplayNode { + var text: String { + get { + if let view = self.view as? TimeInputView { + return view.text + } else { + return "" + } + } + set { + if let view = self.view as? TimeInputView { + view.text = newValue + } + } + } var textUpdated: ((String) -> Void)? { didSet { if let view = self.view as? TimeInputView { @@ -948,6 +986,14 @@ private class TimeInputNode: ASDisplayNode { } } + var focusUpdated: ((Bool) -> Void)? { + didSet { + if let view = self.view as? TimeInputView { + view.focusUpdated = self.focusUpdated + } + } + } + override init() { super.init() @@ -958,57 +1004,44 @@ private class TimeInputNode: ASDisplayNode { override func didLoad() { super.didLoad() - - self.view.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(self.handleTap))) - + if let view = self.view as? TimeInputView { view.textUpdated = self.textUpdated } } - - @objc private func handleTap() { - self.view.becomeFirstResponder() - } -} - -public func stringTimestamp(hours: Int32, minutes: Int32, dateTimeFormat: PresentationDateTimeFormat) -> String { - switch dateTimeFormat.timeFormat { - case .regular: - let hourString: String - if hours == 0 { - hourString = "12" - } else if hours > 12 { - hourString = "\(hours - 12)" - } else { - hourString = "\(hours)" - } - - let periodString: String - if hours >= 12 { - periodString = "PM" - } else { - periodString = "AM" - } - if minutes >= 10 { - return "\(hourString) \(minutes) \(periodString)" - } else { - return "\(hourString):0\(minutes) \(periodString)" - } - case .military: - return String(format: "%02d %02d", arguments: [Int(hours), Int(minutes)]) - } } private final class TimePickerNode: ASDisplayNode { + enum Selection { + case none + case hours + case minutes + case all + } + private var theme: DatePickerTheme private let dateTimeFormat: PresentationDateTimeFormat private let backgroundNode: ASDisplayNode - private let textNode: ImmediateTextNode + private let hoursNode: TapeNode + private let minutesNode: TapeNode + private let hoursTopMaskNode: ASDisplayNode + private let hoursBottomMaskNode: ASDisplayNode + private let minutesTopMaskNode: ASDisplayNode + private let minutesBottomMaskNode: ASDisplayNode private let colonNode: ImmediateTextNode + private let borderNode: ASDisplayNode private let inputNode: TimeInputNode private let amPMSelectorNode: SegmentedControlNode + private var typing = false + private var typingString = "" + + private var typingHours: Int? + private var typingMinutes: Int? + private let hoursTypingNode: ImmediateTextNode + private let minutesTypingNode: ImmediateTextNode + var date: Date? { didSet { if let size = self.validLayout { @@ -1027,15 +1060,42 @@ private final class TimePickerNode: ASDisplayNode { self.theme = theme self.dateTimeFormat = dateTimeFormat self.date = date + self.selection = .none self.backgroundNode = ASDisplayNode() self.backgroundNode.backgroundColor = theme.segmentedControlTheme.backgroundColor self.backgroundNode.cornerRadius = 9.0 - self.textNode = ImmediateTextNode() + self.borderNode = ASDisplayNode() + self.borderNode.cornerRadius = 9.0 + self.borderNode.isUserInteractionEnabled = false + self.borderNode.isHidden = true + self.borderNode.borderWidth = 2.0 + self.borderNode.borderColor = theme.accentColor.cgColor + self.colonNode = ImmediateTextNode() + self.hoursNode = TapeNode() + self.minutesNode = TapeNode() + + self.hoursTypingNode = ImmediateTextNode() + self.hoursTypingNode.isHidden = true + self.hoursTypingNode.textAlignment = .right + self.minutesTypingNode = ImmediateTextNode() + self.minutesTypingNode.isHidden = true + self.minutesTypingNode.textAlignment = .right + self.inputNode = TimeInputNode() + self.hoursTopMaskNode = ASDisplayNode() + self.hoursTopMaskNode.backgroundColor = theme.segmentedControlTheme.backgroundColor + self.hoursBottomMaskNode = ASDisplayNode() + self.hoursBottomMaskNode.backgroundColor = theme.segmentedControlTheme.backgroundColor + + self.minutesTopMaskNode = ASDisplayNode() + self.minutesTopMaskNode.backgroundColor = theme.segmentedControlTheme.backgroundColor + self.minutesBottomMaskNode = ASDisplayNode() + self.minutesBottomMaskNode.backgroundColor = theme.segmentedControlTheme.backgroundColor + let isPM: Bool if let date = date { let hours = calendar.component(.hour, from: date) @@ -1049,13 +1109,21 @@ private final class TimePickerNode: ASDisplayNode { super.init() self.addSubnode(self.backgroundNode) - self.addSubnode(self.textNode) -// self.addSubnode(self.colonNode) -// self.addSubnode(self.inputNode) + self.addSubnode(self.colonNode) + self.addSubnode(self.hoursNode) + self.addSubnode(self.minutesNode) + self.addSubnode(self.hoursTopMaskNode) + self.addSubnode(self.hoursBottomMaskNode) + self.addSubnode(self.minutesTopMaskNode) + self.addSubnode(self.minutesBottomMaskNode) + self.addSubnode(self.hoursTypingNode) + self.addSubnode(self.minutesTypingNode) + self.addSubnode(self.borderNode) + self.addSubnode(self.inputNode) self.addSubnode(self.amPMSelectorNode) - self.amPMSelectorNode.selectedIndexChanged = { index in - guard let date = self.date else { + self.amPMSelectorNode.selectedIndexChanged = { [weak self] index in + guard let strongSelf = self, let date = strongSelf.date else { return } let hours = calendar.component(.hour, from: date) @@ -1066,12 +1134,376 @@ private final class TimePickerNode: ASDisplayNode { components.hour = hours + 12 } if let newDate = calendar.date(from: components) { - self.valueChanged?(newDate) + strongSelf.date = newDate + strongSelf.valueChanged?(newDate) } } - self.inputNode.textUpdated = { text in + self.inputNode.textUpdated = { [weak self] text in + self?.handleTextInput(text) + } + + self.inputNode.focusUpdated = { [weak self] focus in + if focus { + self?.selection = .all + } else { + self?.selection = .none + } + } + + self.hoursNode.count = { + switch dateTimeFormat.timeFormat { + case .military: + return 24 + case .regular: + return 12 + } + } + self.hoursNode.titleAt = { i in + switch dateTimeFormat.timeFormat { + case .military: + if i < 10 { + return "0\(i)" + } else { + return "\(i)" + } + case .regular: + if i < 10 { + return "0\(i)" + } else { + return "\(1 + i)" + } + } + } + self.hoursNode.isScrollingUpdated = { [weak self] scrolling in + if let strongSelf = self { + if scrolling { + strongSelf.typing = false + strongSelf.selection = .hours + } else { + if strongSelf.inputNode.view.isFirstResponder { + strongSelf.selection = .all + } else { + strongSelf.selection = .none + } + } + } + } + self.hoursNode.selected = { [weak self] index in + guard let strongSelf = self else { + return + } + switch dateTimeFormat.timeFormat { + case .military: + let hour = index + if let date = strongSelf.date { + var components = calendar.dateComponents([.year, .month, .day, .hour, .minute], from: date) + components.hour = hour + if let newDate = calendar.date(from: components) { + strongSelf.date = newDate + strongSelf.valueChanged?(newDate) + } + } + case .regular: + break + } + } + + self.minutesNode.count = { + return 60 + } + self.minutesNode.titleAt = { i in + if i < 10 { + return "0\(i)" + } else { + return "\(i)" + } + } + self.minutesNode.isScrollingUpdated = { [weak self] scrolling in + if let strongSelf = self { + if scrolling { + strongSelf.typing = false + strongSelf.selection = .minutes + } else { + if strongSelf.inputNode.view.isFirstResponder { + strongSelf.selection = .all + } else { + strongSelf.selection = .none + } + } + } + } + self.minutesNode.selected = { [weak self] index in + guard let strongSelf = self else { + return + } + switch dateTimeFormat.timeFormat { + case .military: + let minute = index + if let date = strongSelf.date { + var components = calendar.dateComponents([.year, .month, .day, .hour, .minute], from: date) + components.minute = minute + if let newDate = calendar.date(from: components) { + strongSelf.date = newDate + strongSelf.valueChanged?(newDate) + } + } + case .regular: + break + } + } + } + + override func didLoad() { + super.didLoad() + + self.view.disablesInteractiveTransitionGestureRecognizer = true + self.view.disablesInteractiveModalDismiss = true + + self.view.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(self.handleTap(_:)))) + } + + private func handleTextInput(_ input: String) { + self.typing = true + + var text = input + var typingHours: Int? + var typingMinutes: Int? + if self.selection == .all { + text = String(text.suffix(4)) + if text.count < 2 { + typingHours = nil + } else { + if var value = Int(String(text.prefix(2))) { + if value > 24 { + value = value % 10 + } + typingHours = value + } + } + if var value = Int(String(text.suffix(2))) { + if value >= 60 { + value = value % 10 + } + typingMinutes = value + } + } else if self.selection == .hours { + text = String(text.suffix(2)) + if var value = Int(text) { + if value > 24 { + value = value % 10 + } + typingHours = value + } else { + typingHours = nil + } + } else if self.selection == .minutes { + text = String(text.suffix(2)) + if var value = Int(text) { + if value >= 60 { + value = value % 10 + } + typingMinutes = value + } else { + typingMinutes = nil + } + } + self.typingHours = typingHours + self.typingMinutes = typingMinutes + + if let date = self.date { + var components = calendar.dateComponents([.year, .month, .day, .hour, .minute], from: date) + if let typingHours = typingHours { + components.hour = typingHours + } + if let typingMinutes = typingMinutes { + components.minute = typingMinutes + } + if let newDate = calendar.date(from: components) { + self.date = newDate + self.valueChanged?(newDate) + self.updateTapes() + } + } + + self.update() + } + + private var selection: Selection { + didSet { + self.update() + } + } + + private func update() { + if case .none = self.selection { + self.borderNode.isHidden = true + } else { + self.borderNode.isHidden = false + } + + let colonColor: UIColor + switch self.selection { + case .none: + colonColor = self.theme.textColor + self.colonNode.alpha = 1.0 + + self.hoursNode.textColor = self.theme.textColor + self.minutesNode.textColor = self.theme.textColor + self.hoursNode.alpha = 1.0 + self.minutesNode.alpha = 1.0 + + self.hoursTopMaskNode.alpha = 1.0 + self.hoursBottomMaskNode.alpha = 1.0 + self.minutesTopMaskNode.alpha = 1.0 + self.minutesBottomMaskNode.alpha = 1.0 + + self.typing = false + self.typingHours = nil + self.typingMinutes = nil + self.hoursTypingNode.isHidden = true + self.minutesTypingNode.isHidden = true + + self.hoursNode.isHidden = false + self.minutesNode.isHidden = false + case .hours: + colonColor = self.theme.textColor + self.colonNode.alpha = 0.35 + + self.hoursNode.textColor = self.theme.accentColor + self.minutesNode.textColor = self.theme.textColor + self.hoursNode.alpha = 1.0 + self.minutesNode.alpha = 0.35 + + self.hoursTopMaskNode.alpha = 0.5 + self.hoursBottomMaskNode.alpha = 0.5 + self.minutesTopMaskNode.alpha = 1.0 + self.minutesBottomMaskNode.alpha = 1.0 + + if self.typing { + self.hoursTypingNode.isHidden = false + self.minutesTypingNode.isHidden = true + + self.hoursNode.isHidden = true + self.minutesNode.isHidden = false + } else { + self.hoursTypingNode.isHidden = true + self.minutesTypingNode.isHidden = true + + self.hoursNode.isHidden = false + self.minutesNode.isHidden = false + } + case .minutes: + colonColor = self.theme.textColor + self.colonNode.alpha = 0.35 + + self.hoursNode.textColor = self.theme.textColor + self.minutesNode.textColor = self.theme.accentColor + self.hoursNode.alpha = 0.35 + self.minutesNode.alpha = 1.0 + + self.hoursTopMaskNode.alpha = 1.0 + self.hoursBottomMaskNode.alpha = 1.0 + self.minutesTopMaskNode.alpha = 0.5 + self.minutesBottomMaskNode.alpha = 0.5 + + if self.typing { + self.hoursTypingNode.isHidden = true + self.minutesTypingNode.isHidden = false + + self.hoursNode.isHidden = false + self.minutesNode.isHidden = true + } else { + self.hoursTypingNode.isHidden = true + self.minutesTypingNode.isHidden = true + + self.hoursNode.isHidden = false + self.minutesNode.isHidden = false + } + case .all: + colonColor = self.theme.accentColor + self.colonNode.alpha = 1.0 + + self.hoursNode.textColor = self.theme.accentColor + self.minutesNode.textColor = self.theme.accentColor + self.hoursNode.alpha = 1.0 + self.minutesNode.alpha = 1.0 + + self.hoursTopMaskNode.alpha = 0.5 + self.hoursBottomMaskNode.alpha = 0.5 + self.minutesTopMaskNode.alpha = 0.5 + self.minutesBottomMaskNode.alpha = 0.5 + + if self.typing { + self.hoursTypingNode.isHidden = false + self.minutesTypingNode.isHidden = false + + self.hoursNode.isHidden = true + self.minutesNode.isHidden = true + } else { + self.hoursTypingNode.isHidden = true + self.minutesTypingNode.isHidden = true + + self.hoursNode.isHidden = false + self.minutesNode.isHidden = false + } + } + + if let size = self.validLayout { + let hoursString: String + if let typingHours = self.typingHours { + if typingHours < 10 { + hoursString = "0\(typingHours)" + } else { + hoursString = "\(typingHours)" + } + } else { + hoursString = "" + } + let minutesString: String + if let typingMinutes = self.typingMinutes { + if typingMinutes < 10 { + minutesString = "0\(typingMinutes)" + } else { + minutesString = "\(typingMinutes)" + } + } else { + minutesString = "" + } + self.hoursTypingNode.attributedText = NSAttributedString(string: hoursString, font: Font.with(size: 21.0, design: .regular, weight: .regular, traits: [.monospacedNumbers]), textColor: theme.textColor) + let hoursSize = self.hoursTypingNode.updateLayout(size) + self.hoursTypingNode.frame = CGRect(origin: CGPoint(x: 37.0 - hoursSize.width - 3.0 + UIScreenPixel, y: 6.0), size: hoursSize) + + self.minutesTypingNode.attributedText = NSAttributedString(string: minutesString, font: Font.with(size: 21.0, design: .regular, weight: .regular, traits: [.monospacedNumbers]), textColor: theme.textColor) + + let minutesSize = self.minutesTypingNode.updateLayout(size) + self.minutesTypingNode.frame = CGRect(origin: CGPoint(x: 75.0 - minutesSize.width - 9.0 + UIScreenPixel, y: 6.0), size: minutesSize) + + self.colonNode.attributedText = NSAttributedString(string: ":", font: Font.with(size: 21.0, design: .regular, weight: .regular, traits: [.monospacedNumbers]), textColor: colonColor) + let _ = self.colonNode.updateLayout(size) + } + } + + @objc func handleTap(_ gestureRecognizer: UITapGestureRecognizer) { + if !self.inputNode.view.isFirstResponder { + self.inputNode.view.becomeFirstResponder() + self.selection = .all + } else { + let location = gestureRecognizer.location(in: self.view) + if location.x < 37.0 { + if self.selection == .hours { + self.selection = .all + } else { + self.selection = .hours + } + } else if location.x > 37.0 && location.x < 75.0 { + if self.selection == .minutes { + self.selection = .all + } else { + self.selection = .minutes + } + } } } @@ -1079,35 +1511,60 @@ private final class TimePickerNode: ASDisplayNode { self.theme = theme self.backgroundNode.backgroundColor = theme.segmentedControlTheme.backgroundColor + self.borderNode.borderColor = theme.accentColor.cgColor } - func updateLayout(size: CGSize) -> CGSize { - self.backgroundNode.frame = CGRect(x: 0.0, y: 0.0, width: 75.0, height: 36.0) - - var contentSize = CGSize() - + func updateTapes() { let hours: Int32 let minutes: Int32 if let date = self.date { hours = Int32(calendar.component(.hour, from: date)) - minutes = Int32(calendar.component(.hour, from: date)) + minutes = Int32(calendar.component(.minute, from: date)) } else { hours = 11 minutes = 0 } - let string = stringForShortTimestamp(hours: hours, minutes: minutes, dateTimeFormat: self.dateTimeFormat).replacingOccurrences(of: " AM", with: "").replacingOccurrences(of: " PM", with: "") - - self.textNode.attributedText = NSAttributedString(string: string, font: Font.with(size: 21.0, design: .regular, weight: .regular, traits: [.monospacedNumbers]), textColor: self.theme.textColor) + + switch self.dateTimeFormat.timeFormat { + case .military: + self.hoursNode.selectRow(Int(hours), animated: false) + self.minutesNode.selectRow(Int(minutes), animated: false) + case .regular: + var h12Hours = hours + if hours == 0 { + h12Hours = 12 + } else if hours > 12 { + h12Hours = hours - 12 + } + self.hoursNode.selectRow(Int(h12Hours - 1), animated: false) + self.minutesNode.selectRow(Int(minutes), animated: false) + } + } + + func updateLayout(size: CGSize) -> CGSize { + self.validLayout = size + + self.backgroundNode.frame = CGRect(x: 0.0, y: 0.0, width: 75.0, height: 36.0) + self.borderNode.frame = self.backgroundNode.frame + + var contentSize = CGSize() + + self.updateTapes() + + self.hoursNode.frame = CGRect(x: 3.0, y: 0.0, width: 36.0, height: 36.0) + self.minutesNode.frame = CGRect(x: 35.0, y: 0.0, width: 36.0, height: 36.0) + + self.hoursTopMaskNode.frame = CGRect(x: 9.0, y: 0.0, width: 28.0, height: 5.0) + self.hoursBottomMaskNode.frame = CGRect(x: 9.0, y: 36.0 - 5.0, width: 28.0, height: 5.0) + self.minutesTopMaskNode.frame = CGRect(x: 37.0, y: 0.0, width: 28.0, height: 5.0) + self.minutesBottomMaskNode.frame = CGRect(x: 37.0, y: 36.0 - 5.0, width: 28.0, height: 5.0) self.colonNode.attributedText = NSAttributedString(string: ":", font: Font.with(size: 21.0, design: .regular, weight: .regular, traits: [.monospacedNumbers]), textColor: self.theme.textColor) - let textSize = self.textNode.updateLayout(size) - self.textNode.frame = CGRect(origin: CGPoint(x: floorToScreenPixels((self.backgroundNode.frame.width - textSize.width) / 2.0), y: floorToScreenPixels((self.backgroundNode.frame.height - textSize.height) / 2.0)), size: textSize) - let colonSize = self.colonNode.updateLayout(size) - self.colonNode.frame = CGRect(origin: CGPoint(x: floorToScreenPixels((self.backgroundNode.frame.width - colonSize.width) / 2.0) - 7.0, y: floorToScreenPixels((self.backgroundNode.frame.height - colonSize.height) / 2.0) - 2.0), size: colonSize) + self.colonNode.frame = CGRect(origin: CGPoint(x: floorToScreenPixels((self.backgroundNode.frame.width - colonSize.width) / 2.0), y: floorToScreenPixels((self.backgroundNode.frame.height - colonSize.height) / 2.0) - 2.0), size: colonSize) - self.inputNode.frame = self.backgroundNode.frame + self.inputNode.frame = CGRect(origin: CGPoint(), size: CGSize(width: 1.0, height: 1.0)) if self.dateTimeFormat.timeFormat == .military { contentSize = self.backgroundNode.frame.size diff --git a/submodules/DatePickerNode/Sources/TapeNode.swift b/submodules/DatePickerNode/Sources/TapeNode.swift new file mode 100644 index 0000000000..d72a7e074c --- /dev/null +++ b/submodules/DatePickerNode/Sources/TapeNode.swift @@ -0,0 +1,271 @@ +import Foundation +import UIKit +import Display +import AsyncDisplayKit +import AudioToolbox + +@objc public protocol PickerViewDelegate: class { + func pickerViewHeightForRows(_ pickerView: TapeNode) -> CGFloat + @objc optional func pickerView(_ pickerView: TapeNode, didSelectRow row: Int) + @objc optional func pickerView(_ pickerView: TapeNode, didTapRow row: Int) + @objc optional func pickerView(_ pickerView: TapeNode, styleForLabel label: UILabel, highlighted: Bool) + @objc optional func pickerView(_ pickerView: TapeNode, viewForRow row: Int, highlighted: Bool, reusingView view: UIView?) -> UIView? +} + +open class TapeNode: ASDisplayNode { + fileprivate class Cell: UITableViewCell { + lazy var titleLabel: UILabel = { + let titleLabel = UILabel(frame: CGRect(x: 0.0, y: 0.0, width: self.contentView.frame.width, height: self.contentView.frame.height)) + titleLabel.textAlignment = .center + + return titleLabel + }() + + var customView: UIView? + } + + var textColor: UIColor = .black { + didSet { + for cell in self.tableView.visibleCells { + if let cell = cell as? Cell { + cell.titleLabel.textColor = self.textColor + } + } + } + } + + + private let hapticFeedback = HapticFeedback() + private var previousRoundedRow: Int? + + var count: (() -> Int)? + var titleAt: ((Int) -> String)? + var selected: ((Int) -> Void)? + var isScrollingUpdated: ((Bool) -> Void)? + + var numberOfRows: Int { + get { + return self.count?() ?? 0 + } + } + + private var indexesCount: Int { + return self.numberOfRows > 0 ? self.numberOfRows - 1 : self.numberOfRows + } + + private var rowHeight: CGFloat { + return 21.0 + } + + private let cellIdentifier = "tapeCell" + + public lazy var tableView: UITableView = { + return UITableView() + }() + + private var infinityRowsMultiplier: Int = 1 + + var currentSelectedRow: Int? + var currentSelectedIndex: Int { + get { + if let currentSelectedRow = self.currentSelectedRow { + return self.indexForRow(currentSelectedRow) + } else { + return 0 + } + } + } + + private var isScrolling = false + private var initialized = false + private var shouldSelectNearbyToMiddleRow = false + + open override func didLoad() { + super.didLoad() + self.setup() + } + + fileprivate func setup() { + self.infinityRowsMultiplier = self.generateInfinityRowsMultiplier() + + if #available(iOS 11.0, *) { + self.tableView.contentInsetAdjustmentBehavior = .never + } + self.tableView.estimatedRowHeight = 0 + self.tableView.estimatedSectionFooterHeight = 0 + self.tableView.estimatedSectionHeaderHeight = 0 + self.tableView.backgroundColor = .clear + self.tableView.separatorStyle = .none + self.tableView.separatorColor = .none + self.tableView.allowsSelection = true + self.tableView.allowsMultipleSelection = false + self.tableView.showsVerticalScrollIndicator = false + self.tableView.showsHorizontalScrollIndicator = false + self.tableView.scrollsToTop = false + self.tableView.register(Cell.classForCoder(), forCellReuseIdentifier: self.cellIdentifier) + self.view.addSubview(tableView) + + self.tableView.delegate = self + self.tableView.dataSource = self + self.tableView.reloadData() + } + + fileprivate func generateInfinityRowsMultiplier() -> Int { + if self.numberOfRows > 100 { + return 100 + } else if self.numberOfRows < 100 && self.numberOfRows > 50 { + return 200 + } else if self.numberOfRows < 50 && self.numberOfRows > 25 { + return 400 + } else { + return 800 + } + } + + open override func layout() { + super.layout() + + self.tableView.frame = self.bounds + if !self.initialized { + self.setup() + self.initialized = true + } + } + + fileprivate func indexForRow(_ row: Int) -> Int { + return row % (self.numberOfRows > 0 ? self.numberOfRows : 1) + } + + fileprivate func selectTappedRow(_ row: Int) { + self.selectRow(row, animated: true) + if let currentSelectedRow = self.currentSelectedRow { + self.selected?(currentSelectedRow) + } + } + + fileprivate func visibleIndexOfSelectedRow() -> Int { + let middleMultiplier = (self.infinityRowsMultiplier / 2) + let middleIndex = self.numberOfRows * middleMultiplier + let indexForSelectedRow: Int + + if let currentSelectedRow = self.currentSelectedRow { + indexForSelectedRow = middleIndex - (self.numberOfRows - currentSelectedRow) + } else { + let middleRow = Int(floor(Float(self.indexesCount) / 2.0)) + indexForSelectedRow = middleIndex - (self.numberOfRows - middleRow) + } + + return indexForSelectedRow + } + + open func selectRow(_ row : Int, animated: Bool) { + if self.currentSelectedIndex == self.indexForRow(row) { + return + } + var finalRow = row + + if row <= self.numberOfRows { + let middleMultiplier = (self.infinityRowsMultiplier / 2) + let middleIndex = self.numberOfRows * middleMultiplier + finalRow = middleIndex - (self.numberOfRows - finalRow) + } + + self.currentSelectedRow = finalRow + if let currentSelectedRow = self.currentSelectedRow { + self.tableView.setContentOffset(CGPoint(x: 0.0, y: CGFloat(currentSelectedRow) * self.rowHeight), animated: animated) + } + } + + open func reloadPickerView() { + self.tableView.reloadData() + } +} + +extension TapeNode: UITableViewDataSource { + public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + return self.numberOfRows * self.infinityRowsMultiplier + } + + public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { + let pickerViewCell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier, for: indexPath) as! Cell + + pickerViewCell.selectionStyle = .none + + let centerY = (indexPath as NSIndexPath).row == 0 ? (self.frame.height / 2) - (self.rowHeight / 2) : 0.0 + + pickerViewCell.backgroundColor = .clear + pickerViewCell.contentView.backgroundColor = .clear + pickerViewCell.contentView.addSubview(pickerViewCell.titleLabel) + pickerViewCell.titleLabel.backgroundColor = .clear + pickerViewCell.titleLabel.font = Font.with(size: 21.0, design: .regular, weight: .regular, traits: [.monospacedNumbers]) + pickerViewCell.titleLabel.text = self.titleAt?(indexForRow((indexPath as NSIndexPath).row)) + pickerViewCell.titleLabel.textColor = self.textColor + pickerViewCell.titleLabel.frame = CGRect(x: 0.0, y: centerY, width: frame.width, height: self.rowHeight) + + return pickerViewCell + } +} + +extension TapeNode: UITableViewDelegate { + public func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { + self.selectTappedRow((indexPath as NSIndexPath).row) + } + + public func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { + let numberOfRows = (self.count?() ?? 0) * self.infinityRowsMultiplier + if (indexPath as NSIndexPath).row == 0 { + return (self.frame.height / 2) + (self.rowHeight / 2) + } else if numberOfRows > 0 && (indexPath as NSIndexPath).row == numberOfRows - 1 { + return (self.frame.height / 2) + (self.rowHeight / 2) + } + return self.rowHeight + } +} + +extension TapeNode: UIScrollViewDelegate { + public func scrollViewWillBeginDragging(_ scrollView: UIScrollView) { + self.isScrolling = true + self.isScrollingUpdated?(true) + } + + public func scrollViewWillEndDragging(_ scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer) { + let partialRow = Float(targetContentOffset.pointee.y / self.rowHeight) + var roundedRow = Int(lroundf(partialRow)) + + if roundedRow < 0 { + roundedRow = 0 + } else { + targetContentOffset.pointee.y = CGFloat(roundedRow) * self.rowHeight + } + + self.currentSelectedRow = self.indexForRow(roundedRow) + if let currentSelectedRow = self.currentSelectedRow { + self.selected?(currentSelectedRow) + } + } + + public func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) { + if !decelerate { + self.isScrolling = false + self.isScrollingUpdated?(false) + } + } + + public func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) { + self.isScrolling = false + self.isScrollingUpdated?(false) + } + + + public func scrollViewDidScroll(_ scrollView: UIScrollView) { + let partialRow = Float(scrollView.contentOffset.y / self.rowHeight) + let roundedRow = Int(lroundf(partialRow)) + + if self.previousRoundedRow != roundedRow && self.isScrolling { + self.previousRoundedRow = roundedRow + + self.hapticFeedback.impact() + AudioServicesPlaySystemSound(1157) + } + } +} diff --git a/submodules/Display/Source/Navigation/NavigationModalContainer.swift b/submodules/Display/Source/Navigation/NavigationModalContainer.swift index c3d65c5ca3..e823d543a4 100644 --- a/submodules/Display/Source/Navigation/NavigationModalContainer.swift +++ b/submodules/Display/Source/Navigation/NavigationModalContainer.swift @@ -497,7 +497,12 @@ final class NavigationModalContainer: ASDisplayNode, UIScrollViewDelegate, UIGes if currentParent == nil { break } - if let scrollView = currentParent as? UIScrollView { + if currentParent is UIKeyInput { + if currentParent?.disablesInteractiveModalDismiss == true { + enableScrolling = false + break + } + } else if let scrollView = currentParent as? UIScrollView { if scrollView === self.scrollNode.view { break } diff --git a/submodules/InviteLinksUI/Sources/InviteLinkEditController.swift b/submodules/InviteLinksUI/Sources/InviteLinkEditController.swift index ed8300ce7c..8a36f6da33 100644 --- a/submodules/InviteLinksUI/Sources/InviteLinkEditController.swift +++ b/submodules/InviteLinksUI/Sources/InviteLinkEditController.swift @@ -54,7 +54,7 @@ func isValidNumberOfUsers(_ number: String) -> Bool { private enum InviteLinksEditEntry: ItemListNodeEntry { case timeHeader(PresentationTheme, String) case timePicker(PresentationTheme, InviteLinkTimeLimit) - case timeExpiryDate(PresentationTheme, Int32?, Bool) + case timeExpiryDate(PresentationTheme, PresentationDateTimeFormat, Int32?, Bool) case timeCustomPicker(PresentationTheme, PresentationDateTimeFormat, Int32?) case timeInfo(PresentationTheme, String) @@ -115,8 +115,8 @@ private enum InviteLinksEditEntry: ItemListNodeEntry { } else { return false } - case let .timeExpiryDate(lhsTheme, lhsDate, lhsActive): - if case let .timeExpiryDate(rhsTheme, rhsDate, rhsActive) = rhs, lhsTheme === rhsTheme, lhsDate == rhsDate, lhsActive == rhsActive { + case let .timeExpiryDate(lhsTheme, lhsDateTimeFormat, lhsDate, lhsActive): + if case let .timeExpiryDate(rhsTheme, rhsDateTimeFormat, rhsDate, rhsActive) = rhs, lhsTheme === rhsTheme, lhsDateTimeFormat == rhsDateTimeFormat, lhsDate == rhsDate, lhsActive == rhsActive { return true } else { return false @@ -186,10 +186,10 @@ private enum InviteLinksEditEntry: ItemListNodeEntry { return updatedState }) }) - case let .timeExpiryDate(theme, value, active): + case let .timeExpiryDate(theme, dateTimeFormat, value, active): let text: String if let value = value { - text = stringForFullDate(timestamp: value, strings: presentationData.strings, dateTimeFormat: PresentationDateTimeFormat(timeFormat: .regular, dateFormat: .monthFirst, dateSeparator: ".", decimalSeparator: ".", groupingSeparator: ".")) + text = stringForMediumDate(timestamp: value, strings: presentationData.strings, dateTimeFormat: dateTimeFormat) } else { text = presentationData.strings.InviteLink_Create_TimeLimitExpiryDateNever } @@ -287,7 +287,7 @@ private func inviteLinkEditControllerEntries(invite: ExportedInvitation?, state: } else if let value = state.time.value { time = currentTime + value } - entries.append(.timeExpiryDate(presentationData.theme, time, state.pickingTimeLimit)) + entries.append(.timeExpiryDate(presentationData.theme, presentationData.dateTimeFormat, time, state.pickingTimeLimit)) if state.pickingTimeLimit { entries.append(.timeCustomPicker(presentationData.theme, presentationData.dateTimeFormat, time)) } @@ -484,6 +484,9 @@ public func inviteLinkEditController(context: AccountContext, peerId: PeerId, in } let controller = ItemListController(context: context, state: signal) + controller.beganInteractiveDragging = { + dismissInputImpl?() + } presentControllerImpl = { [weak controller] c, p in if let controller = controller { controller.present(c, in: .window(.root), with: p) diff --git a/submodules/InviteLinksUI/Sources/ItemListDatePickerItem.swift b/submodules/InviteLinksUI/Sources/ItemListDatePickerItem.swift index a8956396e7..53df72d767 100644 --- a/submodules/InviteLinksUI/Sources/ItemListDatePickerItem.swift +++ b/submodules/InviteLinksUI/Sources/ItemListDatePickerItem.swift @@ -104,6 +104,8 @@ public class ItemListDatePickerItemNode: ListViewItemNode, ItemListItemNode { self.bottomStripeNode.isLayerBacked = true super.init(layerBacked: false, dynamicBounce: false) + + self.allowsGroupOpacity = true } public func asyncLayout() -> (_ item: ItemListDatePickerItem, _ params: ListViewItemLayoutParams, _ insets: ItemListNeighbors) -> (ListViewItemNodeLayout, () -> Void) { diff --git a/submodules/ItemListUI/Sources/ItemListController.swift b/submodules/ItemListUI/Sources/ItemListController.swift index f06b4dc925..73a09858ce 100644 --- a/submodules/ItemListUI/Sources/ItemListController.swift +++ b/submodules/ItemListUI/Sources/ItemListController.swift @@ -164,6 +164,14 @@ open class ItemListController: ViewController, KeyShortcutResponder, Presentable } } + public var beganInteractiveDragging: (() -> Void)? { + didSet { + if self.isNodeLoaded { + (self.displayNode as! ItemListControllerNode).beganInteractiveDragging = self.beganInteractiveDragging + } + } + } + public var visibleBottomContentOffsetChanged: ((ListViewVisibleContentOffset) -> Void)? { didSet { if self.isNodeLoaded { @@ -447,6 +455,7 @@ open class ItemListController: ViewController, KeyShortcutResponder, Presentable displayNode.enableInteractiveDismiss = self.enableInteractiveDismiss displayNode.alwaysSynchronous = self.alwaysSynchronous displayNode.visibleEntriesUpdated = self.visibleEntriesUpdated + displayNode.beganInteractiveDragging = self.beganInteractiveDragging displayNode.visibleBottomContentOffsetChanged = self.visibleBottomContentOffsetChanged displayNode.contentOffsetChanged = self.contentOffsetChanged displayNode.contentScrollingEnded = self.contentScrollingEnded diff --git a/submodules/ItemListUI/Sources/ItemListControllerNode.swift b/submodules/ItemListUI/Sources/ItemListControllerNode.swift index f80a80bad8..704754171e 100644 --- a/submodules/ItemListUI/Sources/ItemListControllerNode.swift +++ b/submodules/ItemListUI/Sources/ItemListControllerNode.swift @@ -210,6 +210,7 @@ open class ItemListControllerNode: ASDisplayNode, UIScrollViewDelegate { public var visibleEntriesUpdated: ((ItemListNodeVisibleEntries) -> Void)? public var visibleBottomContentOffsetChanged: ((ListViewVisibleContentOffset) -> Void)? + public var beganInteractiveDragging: (() -> Void)? public var contentOffsetChanged: ((ListViewVisibleContentOffset, Bool) -> Void)? public var contentScrollingEnded: ((ListView) -> Bool)? public var searchActivated: ((Bool) -> Void)? @@ -291,6 +292,12 @@ open class ItemListControllerNode: ASDisplayNode, UIScrollViewDelegate { self?.contentOffsetChanged?(offset, inVoiceOver) } + self.listNode.beganInteractiveDragging = { [weak self] in + if let strongSelf = self { + strongSelf.beganInteractiveDragging?() + } + } + self.listNode.didEndScrolling = { [weak self] in if let strongSelf = self { let _ = strongSelf.contentScrollingEnded?(strongSelf.listNode) diff --git a/submodules/SettingsUI/Sources/Privacy and Security/Recent Sessions/RecentSessionsController.swift b/submodules/SettingsUI/Sources/Privacy and Security/Recent Sessions/RecentSessionsController.swift index 9a1d034d43..639413cb04 100644 --- a/submodules/SettingsUI/Sources/Privacy and Security/Recent Sessions/RecentSessionsController.swift +++ b/submodules/SettingsUI/Sources/Privacy and Security/Recent Sessions/RecentSessionsController.swift @@ -63,6 +63,7 @@ private enum RecentSessionsEntry: ItemListNodeEntry { case currentSession(PresentationTheme, PresentationStrings, PresentationDateTimeFormat, RecentAccountSession) case terminateOtherSessions(PresentationTheme, String) case terminateAllWebSessions(PresentationTheme, String) + case currentAddDevice(PresentationTheme, String) case currentSessionInfo(PresentationTheme, String) case pendingSessionsHeader(PresentationTheme, String) case pendingSession(index: Int32, theme: PresentationTheme, strings: PresentationStrings, dateTimeFormat: PresentationDateTimeFormat, session: RecentAccountSession, enabled: Bool, editing: Bool, revealed: Bool) @@ -75,12 +76,12 @@ private enum RecentSessionsEntry: ItemListNodeEntry { var section: ItemListSectionId { switch self { - case .currentSessionHeader, .currentSession, .terminateOtherSessions, .terminateAllWebSessions, .currentSessionInfo: - return RecentSessionsSection.currentSession.rawValue - case .pendingSessionsHeader, .pendingSession, .pendingSessionsInfo: - return RecentSessionsSection.pendingSessions.rawValue - case .otherSessionsHeader, .addDevice, .session, .website, .devicesInfo: - return RecentSessionsSection.otherSessions.rawValue + case .currentSessionHeader, .currentSession, .terminateOtherSessions, .terminateAllWebSessions, .currentAddDevice, .currentSessionInfo: + return RecentSessionsSection.currentSession.rawValue + case .pendingSessionsHeader, .pendingSession, .pendingSessionsInfo: + return RecentSessionsSection.pendingSessions.rawValue + case .otherSessionsHeader, .addDevice, .session, .website, .devicesInfo: + return RecentSessionsSection.otherSessions.rawValue } } @@ -94,18 +95,20 @@ private enum RecentSessionsEntry: ItemListNodeEntry { return .index(2) case .terminateAllWebSessions: return .index(3) + case .currentAddDevice: + return .index(3) case .currentSessionInfo: - return .index(4) - case .pendingSessionsHeader: return .index(5) + case .pendingSessionsHeader: + return .index(6) case let .pendingSession(_, _, _, _, session, _, _, _): return .session(session.hash) case .pendingSessionsInfo: - return .index(6) - case .otherSessionsHeader: return .index(7) - case .addDevice: + case .otherSessionsHeader: return .index(8) + case .addDevice: + return .index(9) case let .session(_, _, _, _, session, _, _, _): return .session(session.hash) case let .website(_, _, _, _, _, website, _, _, _, _): @@ -135,6 +138,12 @@ private enum RecentSessionsEntry: ItemListNodeEntry { } else { return false } + case let .currentAddDevice(lhsTheme, lhsText): + if case let .currentAddDevice(rhsTheme, rhsText) = rhs, lhsTheme === rhsTheme, lhsText == rhsText { + return true + } else { + return false + } case let .currentSessionInfo(lhsTheme, lhsText): if case let .currentSessionInfo(rhsTheme, rhsText) = rhs, lhsTheme === rhsTheme, lhsText == rhsText { return true @@ -257,39 +266,48 @@ private enum RecentSessionsEntry: ItemListNodeEntry { func item(presentationData: ItemListPresentationData, arguments: Any) -> ListViewItem { let arguments = arguments as! RecentSessionsControllerArguments switch self { - case let .currentSessionHeader(theme, text): + case let .currentSessionHeader(_, text): return ItemListSectionHeaderItem(presentationData: presentationData, text: text, sectionId: self.section) - case let .currentSession(theme, strings, dateTimeFormat, session): + case let .currentSession(_, strings, dateTimeFormat, session): return ItemListRecentSessionItem(presentationData: presentationData, dateTimeFormat: dateTimeFormat, session: session, enabled: true, editable: false, editing: false, revealed: false, sectionId: self.section, setSessionIdWithRevealedOptions: { _, _ in }, removeSession: { _ in }) - case let .terminateOtherSessions(theme, text): + case let .terminateOtherSessions(_, text): return ItemListActionItem(presentationData: presentationData, title: text, kind: .destructive, alignment: .natural, sectionId: self.section, style: .blocks, action: { arguments.terminateOtherSessions() }) - case let .terminateAllWebSessions(theme, text): + case let .terminateAllWebSessions(_, text): return ItemListActionItem(presentationData: presentationData, title: text, kind: .destructive, alignment: .natural, sectionId: self.section, style: .blocks, action: { arguments.terminateAllWebSessions() }) - case let .currentSessionInfo(theme, text): - return ItemListTextItem(presentationData: presentationData, text: .plain(text), sectionId: self.section) - case let .pendingSessionsHeader(theme, text): + case let .currentAddDevice(_, text): + return ItemListActionItem(presentationData: presentationData, title: text, kind: .generic, alignment: .natural, sectionId: self.section, style: .blocks, action: { + arguments.addDevice() + }) + case let .currentSessionInfo(_, text): + return ItemListTextItem(presentationData: presentationData, text: .markdown(text), sectionId: self.section, linkAction: { action in + switch action { + case .tap: + arguments.openOtherAppsUrl() + } + }) + case let .pendingSessionsHeader(_, text): return ItemListSectionHeaderItem(presentationData: presentationData, text: text, sectionId: self.section) - case let .pendingSession(_, theme, strings, dateTimeFormat, session, enabled, editing, revealed): + case let .pendingSession(_, _, _, dateTimeFormat, session, enabled, editing, revealed): return ItemListRecentSessionItem(presentationData: presentationData, dateTimeFormat: dateTimeFormat, session: session, enabled: enabled, editable: true, editing: editing, revealed: revealed, sectionId: self.section, setSessionIdWithRevealedOptions: { previousId, id in arguments.setSessionIdWithRevealedOptions(previousId, id) }, removeSession: { id in arguments.removeSession(id) }) - case let .pendingSessionsInfo(theme, text): + case let .pendingSessionsInfo(_, text): return ItemListTextItem(presentationData: presentationData, text: .plain(text), sectionId: self.section) - case let .otherSessionsHeader(theme, text): + case let .otherSessionsHeader(_, text): return ItemListSectionHeaderItem(presentationData: presentationData, text: text, sectionId: self.section) - case let .addDevice(theme, text): + case let .addDevice(_, text): return ItemListActionItem(presentationData: presentationData, title: text, kind: .generic, alignment: .natural, sectionId: self.section, style: .blocks, action: { arguments.addDevice() }) - case let .session(_, theme, strings, dateTimeFormat, session, enabled, editing, revealed): + case let .session(_, _, _, dateTimeFormat, session, enabled, editing, revealed): return ItemListRecentSessionItem(presentationData: presentationData, dateTimeFormat: dateTimeFormat, session: session, enabled: enabled, editable: true, editing: editing, revealed: revealed, sectionId: self.section, setSessionIdWithRevealedOptions: { previousId, id in arguments.setSessionIdWithRevealedOptions(previousId, id) }, removeSession: { id in @@ -301,7 +319,7 @@ private enum RecentSessionsEntry: ItemListNodeEntry { }, removeSession: { id in arguments.removeWebSession(id) }) - case let .devicesInfo(theme, text): + case let .devicesInfo(_, text): return ItemListTextItem(presentationData: presentationData, text: .markdown(text), sectionId: self.section, linkAction: { action in switch action { case .tap: @@ -377,10 +395,17 @@ private func recentSessionsControllerEntries(presentationData: PresentationData, entries.append(.currentSession(presentationData.theme, presentationData.strings, presentationData.dateTimeFormat, sessionsState.sessions[index])) } + var hasAddDevice = false if sessionsState.sessions.count > 1 || enableQRLogin { - entries.append(.terminateOtherSessions(presentationData.theme, presentationData.strings.AuthSessions_TerminateOtherSessions)) - entries.append(.currentSessionInfo(presentationData.theme, presentationData.strings.AuthSessions_TerminateOtherSessionsHelp)) - + if sessionsState.sessions.count > 1 { + entries.append(.terminateOtherSessions(presentationData.theme, presentationData.strings.AuthSessions_TerminateOtherSessions)) + entries.append(.currentSessionInfo(presentationData.theme, presentationData.strings.AuthSessions_TerminateOtherSessionsHelp)) + } else if enableQRLogin { + hasAddDevice = true + entries.append(.currentAddDevice(presentationData.theme, presentationData.strings.AuthSessions_AddDevice)) + entries.append(.currentSessionInfo(presentationData.theme, presentationData.strings.AuthSessions_OtherDevices)) + } + let filteredPendingSessions: [RecentAccountSession] = sessionsState.sessions.filter({ $0.flags.contains(.passwordPending) }) if !filteredPendingSessions.isEmpty { entries.append(.pendingSessionsHeader(presentationData.theme, presentationData.strings.AuthSessions_IncompleteAttempts)) @@ -393,9 +418,11 @@ private func recentSessionsControllerEntries(presentationData: PresentationData, entries.append(.pendingSessionsInfo(presentationData.theme, presentationData.strings.AuthSessions_IncompleteAttemptsInfo)) } - entries.append(.otherSessionsHeader(presentationData.theme, presentationData.strings.AuthSessions_OtherSessions)) + if sessionsState.sessions.count > 1 { + entries.append(.otherSessionsHeader(presentationData.theme, presentationData.strings.AuthSessions_OtherSessions)) + } - if enableQRLogin { + if enableQRLogin && !hasAddDevice { entries.append(.addDevice(presentationData.theme, presentationData.strings.AuthSessions_AddDevice)) } @@ -410,7 +437,7 @@ private func recentSessionsControllerEntries(presentationData: PresentationData, } } - if enableQRLogin { + if enableQRLogin && !hasAddDevice { entries.append(.devicesInfo(presentationData.theme, presentationData.strings.AuthSessions_OtherDevices)) } } @@ -654,7 +681,12 @@ public func recentSessionsController(context: AccountContext, activeSessionsCont } } - let emptyStateItem: ItemListControllerEmptyStateItem? = nil + let emptyStateItem: ItemListControllerEmptyStateItem? + if sessionsState.sessions.count == 1 && mode == .sessions { + emptyStateItem = RecentSessionsEmptyStateItem(theme: presentationData.theme, strings: presentationData.strings) + } else { + emptyStateItem = nil + } let title: ItemListControllerTitle let entries: [RecentSessionsEntry] diff --git a/submodules/TelegramPresentationData/Sources/PresentationStrings.swift b/submodules/TelegramPresentationData/Sources/PresentationStrings.swift index 210789e230..4f2383baba 100644 --- a/submodules/TelegramPresentationData/Sources/PresentationStrings.swift +++ b/submodules/TelegramPresentationData/Sources/PresentationStrings.swift @@ -4084,1999 +4084,2003 @@ public final class PresentationStrings: Equatable { return formatWithArgumentRanges(self._s[3630]!, self._r[3630]!, [_0, _1]) } public var Chat_SlowmodeTooltipPending: String { return self._s[3631]! } - public var CallFeedback_ReasonInterruption: String { return self._s[3633]! } + public func Time_MediumDate(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3633]!, self._r[3633]!, [_1, _2]) + } public var ContactInfo_PhoneLabelHome: String { return self._s[3634]! } - public var Passport_Identity_OneOfTypeDriversLicense: String { return self._s[3635]! } + public var CallFeedback_ReasonInterruption: String { return self._s[3635]! } + public var Passport_Identity_OneOfTypeDriversLicense: String { return self._s[3636]! } public func PUSH_MESSAGE_DOCS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3637]!, self._r[3637]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[3638]!, self._r[3638]!, [_1, "\(_2)"]) } - public var Conversation_MessageEditedLabel: String { return self._s[3638]! } - public var CallList_ActiveVoiceChatsHeader: String { return self._s[3639]! } - public var SocksProxySetup_PasswordPlaceholder: String { return self._s[3640]! } - public var ChatList_Context_AddToContacts: String { return self._s[3641]! } - public var Passport_Language_is: String { return self._s[3642]! } - public var Notification_PassportValueProofOfIdentity: String { return self._s[3643]! } - public var PhotoEditor_CurvesBlue: String { return self._s[3644]! } + public var Conversation_MessageEditedLabel: String { return self._s[3639]! } + public var CallList_ActiveVoiceChatsHeader: String { return self._s[3640]! } + public var SocksProxySetup_PasswordPlaceholder: String { return self._s[3641]! } + public var ChatList_Context_AddToContacts: String { return self._s[3642]! } + public var Passport_Language_is: String { return self._s[3643]! } + public var Notification_PassportValueProofOfIdentity: String { return self._s[3644]! } + public var PhotoEditor_CurvesBlue: String { return self._s[3645]! } public func FileSize_MB(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3645]!, self._r[3645]!, [_0]) + return formatWithArgumentRanges(self._s[3646]!, self._r[3646]!, [_0]) } - public var SocksProxySetup_Username: String { return self._s[3646]! } - public var Login_SmsRequestState3: String { return self._s[3647]! } - public var Message_PinnedVideoMessage: String { return self._s[3648]! } - public var SharedMedia_TitleLink: String { return self._s[3649]! } - public var Passport_FieldIdentity: String { return self._s[3650]! } - public var GroupInfo_Permissions_BroadcastConvert: String { return self._s[3652]! } + public var SocksProxySetup_Username: String { return self._s[3647]! } + public var Login_SmsRequestState3: String { return self._s[3648]! } + public var Message_PinnedVideoMessage: String { return self._s[3649]! } + public var SharedMedia_TitleLink: String { return self._s[3650]! } + public var Passport_FieldIdentity: String { return self._s[3651]! } + public var GroupInfo_Permissions_BroadcastConvert: String { return self._s[3653]! } public func Conversation_EncryptedPlaceholderTitleOutgoing(_ _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 DialogList_ProxyConnectionIssuesTooltip: String { return self._s[3658]! } - public var ReportSpam_DeleteThisChat: String { return self._s[3659]! } - public var Checkout_NewCard_CardholderNamePlaceholder: String { return self._s[3660]! } - public var Passport_Identity_DateOfBirth: String { return self._s[3661]! } - public var Call_StatusIncoming: String { return self._s[3662]! } - public var ChatAdmins_AdminLabel: String { return self._s[3663]! } + public var DialogList_ProxyConnectionIssuesTooltip: String { return self._s[3659]! } + public var ReportSpam_DeleteThisChat: String { return self._s[3660]! } + public var Checkout_NewCard_CardholderNamePlaceholder: String { return self._s[3661]! } + public var Passport_Identity_DateOfBirth: String { return self._s[3662]! } + public var Call_StatusIncoming: String { return self._s[3663]! } + public var ChatAdmins_AdminLabel: String { return self._s[3664]! } public func Time_MonthOfYear_m10(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3665]!, self._r[3665]!, [_0]) + return formatWithArgumentRanges(self._s[3666]!, self._r[3666]!, [_0]) } - public var Message_PinnedAnimationMessage: String { return self._s[3666]! } - public var Conversation_ReportSpamAndLeave: String { return self._s[3667]! } - public var Preview_CopyAddress: String { return self._s[3668]! } - public var MediaPlayer_UnknownTrack: String { return self._s[3670]! } - public var Login_CancelSignUpConfirmation: String { return self._s[3671]! } - public var Map_OpenInYandexMaps: String { return self._s[3673]! } + public var Message_PinnedAnimationMessage: String { return self._s[3667]! } + public var Conversation_ReportSpamAndLeave: String { return self._s[3668]! } + public var Preview_CopyAddress: String { return self._s[3669]! } + public var MediaPlayer_UnknownTrack: String { return self._s[3671]! } + public var Login_CancelSignUpConfirmation: String { return self._s[3672]! } + public var Map_OpenInYandexMaps: String { return self._s[3674]! } public func Time_PreciseDate_m11(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3676]!, self._r[3676]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3677]!, self._r[3677]!, [_1, _2, _3]) } - public var GroupRemoved_Remove: String { return self._s[3677]! } - public var ChatListFolder_TitleCreate: String { return self._s[3678]! } + public var GroupRemoved_Remove: String { return self._s[3678]! } + public var ChatListFolder_TitleCreate: String { return self._s[3679]! } public func InstantPage_AuthorAndDateTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3680]!, self._r[3680]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3681]!, self._r[3681]!, [_1, _2]) } - public var Watch_UserInfo_MuteTitle: String { return self._s[3681]! } - public var Group_UpgradeNoticeText2: String { return self._s[3683]! } - public var Stats_GroupGrowthTitle: String { return self._s[3684]! } - public var CreatePoll_CancelConfirmation: String { return self._s[3687]! } - public var Month_GenOctober: String { return self._s[3688]! } - public var Conversation_TitleCommentsEmpty: String { return self._s[3689]! } - public var Settings_Appearance: String { return self._s[3690]! } + public var Watch_UserInfo_MuteTitle: String { return self._s[3682]! } + public var Group_UpgradeNoticeText2: String { return self._s[3684]! } + public var Stats_GroupGrowthTitle: String { return self._s[3685]! } + public var CreatePoll_CancelConfirmation: String { return self._s[3688]! } + public var Month_GenOctober: String { return self._s[3689]! } + public var Conversation_TitleCommentsEmpty: String { return self._s[3690]! } + public var Settings_Appearance: String { return self._s[3691]! } public func Time_MonthOfYear_m6(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3691]!, self._r[3691]!, [_0]) + return formatWithArgumentRanges(self._s[3692]!, self._r[3692]!, [_0]) } - public var UserInfo_AddToExisting: String { return self._s[3692]! } - public var Call_PhoneCallInProgressMessage: String { return self._s[3694]! } - public var Map_HomeAndWorkInfo: String { return self._s[3695]! } - public var Paint_Arrow: String { return self._s[3696]! } - public var InviteLink_CreatePrivateLinkHelp: String { return self._s[3697]! } + public var UserInfo_AddToExisting: String { return self._s[3693]! } + public var Call_PhoneCallInProgressMessage: String { return self._s[3695]! } + public var Map_HomeAndWorkInfo: String { return self._s[3696]! } + public var Paint_Arrow: String { return self._s[3697]! } + public var InviteLink_CreatePrivateLinkHelp: String { return self._s[3698]! } public func DialogList_MultipleTypingPair(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3698]!, self._r[3698]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3699]!, self._r[3699]!, [_0, _1]) } - public var CancelResetAccount_Title: String { return self._s[3699]! } - public var NotificationsSound_Circles: String { return self._s[3700]! } - public var Notifications_GroupNotificationsExceptionsHelp: String { return self._s[3701]! } - public var ChatState_Connecting: String { return self._s[3703]! } - public var Profile_MessageLifetime5s: String { return self._s[3704]! } + public var CancelResetAccount_Title: String { return self._s[3700]! } + public var NotificationsSound_Circles: String { return self._s[3701]! } + public var Notifications_GroupNotificationsExceptionsHelp: String { return self._s[3702]! } + public var ChatState_Connecting: String { return self._s[3704]! } + public var Profile_MessageLifetime5s: String { return self._s[3705]! } public func DialogList_AwaitingEncryption(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3705]!, self._r[3705]!, [_0]) + return formatWithArgumentRanges(self._s[3706]!, self._r[3706]!, [_0]) } - public var PrivacyPolicy_AgeVerificationTitle: String { return self._s[3706]! } - public var Channel_Username_CreatePublicLinkHelp: String { return self._s[3707]! } - public var AutoNightTheme_ScheduledTo: String { return self._s[3708]! } - public var Conversation_DefaultRestrictedStickers: String { return self._s[3709]! } - public var TwoStepAuth_ConfirmationTitle: String { return self._s[3710]! } + public var PrivacyPolicy_AgeVerificationTitle: String { return self._s[3707]! } + public var Channel_Username_CreatePublicLinkHelp: String { return self._s[3708]! } + public var AutoNightTheme_ScheduledTo: String { return self._s[3709]! } + public var Conversation_DefaultRestrictedStickers: String { return self._s[3710]! } + public var TwoStepAuth_ConfirmationTitle: String { return self._s[3711]! } public func Chat_UnsendMyMessagesAlertTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3711]!, self._r[3711]!, [_0]) + return formatWithArgumentRanges(self._s[3712]!, self._r[3712]!, [_0]) } - public var Passport_Phone_Help: String { return self._s[3712]! } - public var Privacy_ContactsSync: String { return self._s[3713]! } - public var CheckoutInfo_ReceiverInfoPhone: String { return self._s[3714]! } - public var Channel_AdminLogFilter_EventsLeavingSubscribers: String { return self._s[3715]! } - public var Map_SendMyCurrentLocation: String { return self._s[3716]! } - public var Map_AddressOnMap: String { return self._s[3717]! } - public var BroadcastGroups_ConfirmationAlert_Convert: String { return self._s[3719]! } - public var DialogList_SearchLabel: String { return self._s[3720]! } - public var Notification_Exceptions_NewException_NotificationHeader: String { return self._s[3721]! } - public var GroupInfo_FakeGroupWarning: String { return self._s[3722]! } - public var Conversation_ChecksTooltip_Read: String { return self._s[3723]! } - public var ConversationProfile_UnknownAddMemberError: String { return self._s[3724]! } - public var ChatList_Search_ShowMore: String { return self._s[3725]! } - public var DialogList_EncryptionRejected: String { return self._s[3726]! } - public var VoiceChat_InviteLinkCopiedText: String { return self._s[3727]! } - public var DialogList_DeleteBotConfirmation: String { return self._s[3728]! } - public var VoiceChat_StartRecordingText: String { return self._s[3729]! } - public var Privacy_TopPeersDelete: String { return self._s[3730]! } - public var AttachmentMenu_SendAsFile: String { return self._s[3732]! } - public var ChatList_GenericPsaAlert: String { return self._s[3734]! } - public var SecretTimer_ImageDescription: String { return self._s[3736]! } + public var Passport_Phone_Help: String { return self._s[3713]! } + public var Privacy_ContactsSync: String { return self._s[3714]! } + public var CheckoutInfo_ReceiverInfoPhone: String { return self._s[3715]! } + public var Channel_AdminLogFilter_EventsLeavingSubscribers: String { return self._s[3716]! } + public var Map_SendMyCurrentLocation: String { return self._s[3717]! } + public var Map_AddressOnMap: String { return self._s[3718]! } + public var BroadcastGroups_ConfirmationAlert_Convert: String { return self._s[3720]! } + public var DialogList_SearchLabel: String { return self._s[3721]! } + public var Notification_Exceptions_NewException_NotificationHeader: String { return self._s[3722]! } + public var GroupInfo_FakeGroupWarning: String { return self._s[3723]! } + public var Conversation_ChecksTooltip_Read: String { return self._s[3724]! } + public var ConversationProfile_UnknownAddMemberError: String { return self._s[3725]! } + public var ChatList_Search_ShowMore: String { return self._s[3726]! } + public var DialogList_EncryptionRejected: String { return self._s[3727]! } + public var VoiceChat_InviteLinkCopiedText: String { return self._s[3728]! } + public var DialogList_DeleteBotConfirmation: String { return self._s[3729]! } + public var VoiceChat_StartRecordingText: String { return self._s[3730]! } + public var Privacy_TopPeersDelete: String { return self._s[3731]! } + public var AttachmentMenu_SendAsFile: String { return self._s[3733]! } + public var ChatList_GenericPsaAlert: String { return self._s[3735]! } + public var SecretTimer_ImageDescription: String { return self._s[3737]! } public func Conversation_SetReminder_RemindOn(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3737]!, self._r[3737]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3738]!, self._r[3738]!, [_0, _1]) } - public var ChatSettings_TextSizeUnits: String { return self._s[3738]! } - public var Notification_RenamedGroup: String { return self._s[3739]! } - public var Tour_Title2: String { return self._s[3740]! } - public var Settings_CopyUsername: String { return self._s[3741]! } - public var Compose_NewEncryptedChat: String { return self._s[3742]! } - public var Conversation_CloudStorageInfo_Title: String { return self._s[3743]! } - public var Month_ShortSeptember: String { return self._s[3744]! } - public var AutoDownloadSettings_OnForAll: String { return self._s[3745]! } - public var ChatList_DeleteForEveryoneConfirmationText: String { return self._s[3746]! } - public var Call_StatusConnecting: String { return self._s[3748]! } - public var Privacy_GroupsAndChannels_NeverAllow_Placeholder: String { return self._s[3749]! } - public var Map_ShareLiveLocationHelp: String { return self._s[3750]! } - public var Cache_Files: String { return self._s[3751]! } - public var Notifications_Reset: String { return self._s[3752]! } + public var ChatSettings_TextSizeUnits: String { return self._s[3739]! } + public var Notification_RenamedGroup: String { return self._s[3740]! } + public var Tour_Title2: String { return self._s[3741]! } + public var Settings_CopyUsername: String { return self._s[3742]! } + public var Compose_NewEncryptedChat: String { return self._s[3743]! } + public var Conversation_CloudStorageInfo_Title: String { return self._s[3744]! } + public var Month_ShortSeptember: String { return self._s[3745]! } + public var AutoDownloadSettings_OnForAll: String { return self._s[3746]! } + public var ChatList_DeleteForEveryoneConfirmationText: String { return self._s[3747]! } + public var Call_StatusConnecting: String { return self._s[3749]! } + public var Privacy_GroupsAndChannels_NeverAllow_Placeholder: String { return self._s[3750]! } + public var Map_ShareLiveLocationHelp: String { return self._s[3751]! } + public var Cache_Files: String { return self._s[3752]! } + public var Notifications_Reset: String { return self._s[3753]! } public func Settings_KeepPhoneNumber(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3753]!, self._r[3753]!, [_0]) + return formatWithArgumentRanges(self._s[3754]!, self._r[3754]!, [_0]) } - public var Privacy_GroupsAndChannels_AlwaysAllow_Title: String { return self._s[3754]! } + public var Privacy_GroupsAndChannels_AlwaysAllow_Title: String { return self._s[3755]! } public func Conversation_OpenBotLinkLogin(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3755]!, self._r[3755]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3756]!, self._r[3756]!, [_1, _2]) } - public var Notification_CallIncomingShort: String { return self._s[3756]! } - public var UserInfo_BotPrivacy: String { return self._s[3758]! } - public var Appearance_BubbleCorners_Apply: String { return self._s[3759]! } - public var WebSearch_RecentClearConfirmation: String { return self._s[3760]! } - public var Conversation_ContextMenuLookUp: String { return self._s[3762]! } - public var Calls_RatingTitle: String { return self._s[3763]! } - public var SecretImage_Title: String { return self._s[3764]! } - public var Weekday_Monday: String { return self._s[3765]! } + public var Notification_CallIncomingShort: String { return self._s[3757]! } + public var UserInfo_BotPrivacy: String { return self._s[3759]! } + public var Appearance_BubbleCorners_Apply: String { return self._s[3760]! } + public var WebSearch_RecentClearConfirmation: String { return self._s[3761]! } + public var Conversation_ContextMenuLookUp: String { return self._s[3763]! } + public var Calls_RatingTitle: String { return self._s[3764]! } + public var SecretImage_Title: String { return self._s[3765]! } + public var Weekday_Monday: String { return self._s[3766]! } public func Passport_PrivacyPolicy(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3766]!, self._r[3766]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3767]!, self._r[3767]!, [_1, _2]) } - public var KeyCommand_JumpToPreviousChat: String { return self._s[3767]! } + public var KeyCommand_JumpToPreviousChat: String { return self._s[3768]! } public func DialogList_SearchSubtitleFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3768]!, self._r[3768]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3769]!, self._r[3769]!, [_1, _2]) } - public var Stats_GroupMembers: String { return self._s[3769]! } - public var Camera_Retake: String { return self._s[3770]! } - public var Conversation_SearchPlaceholder: String { return self._s[3772]! } + public var Stats_GroupMembers: String { return self._s[3770]! } + public var Camera_Retake: String { return self._s[3771]! } + public var Conversation_SearchPlaceholder: String { return self._s[3773]! } public func Passport_Identity_NativeNameGenericHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3773]!, self._r[3773]!, [_0]) + return formatWithArgumentRanges(self._s[3774]!, self._r[3774]!, [_0]) } - public var Channel_DiscussionGroup_Info: String { return self._s[3774]! } - public var SocksProxySetup_Hostname: String { return self._s[3775]! } - public var PrivacyLastSeenSettings_EmpryUsersPlaceholder: String { return self._s[3776]! } - public var Privacy_DeleteDrafts: String { return self._s[3778]! } + public var Channel_DiscussionGroup_Info: String { return self._s[3775]! } + public var SocksProxySetup_Hostname: String { return self._s[3776]! } + public var PrivacyLastSeenSettings_EmpryUsersPlaceholder: String { return self._s[3777]! } + public var Privacy_DeleteDrafts: String { return self._s[3779]! } public func Checkout_LiabilityAlert(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3779]!, self._r[3779]!, [_1, _1, _1, _2]) + return formatWithArgumentRanges(self._s[3780]!, self._r[3780]!, [_1, _1, _1, _2]) } - public var Login_CancelPhoneVerification: String { return self._s[3781]! } - public var TwoStepAuth_ResetAccountHelp: String { return self._s[3782]! } - public var VoiceOver_Chat_Profile: String { return self._s[3783]! } + public var Login_CancelPhoneVerification: String { return self._s[3782]! } + public var TwoStepAuth_ResetAccountHelp: String { return self._s[3783]! } + public var VoiceOver_Chat_Profile: String { return self._s[3784]! } public func SocksProxySetup_ProxyStatusPing(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3784]!, self._r[3784]!, [_0]) + return formatWithArgumentRanges(self._s[3785]!, self._r[3785]!, [_0]) } - public var TwoStepAuth_EmailSent: String { return self._s[3785]! } - public var Cache_Indexing: String { return self._s[3786]! } - public var Notifications_ExceptionsNone: String { return self._s[3787]! } - public var MessagePoll_LabelQuiz: String { return self._s[3788]! } - public var Call_EncryptionKey_Title: String { return self._s[3789]! } - public var Common_Yes: String { return self._s[3790]! } - public var Channel_ErrorAddBlocked: String { return self._s[3791]! } - public var Month_GenJanuary: String { return self._s[3792]! } - public var Checkout_NewCard_Title: String { return self._s[3793]! } + public var TwoStepAuth_EmailSent: String { return self._s[3786]! } + public var Cache_Indexing: String { return self._s[3787]! } + public var Notifications_ExceptionsNone: String { return self._s[3788]! } + public var MessagePoll_LabelQuiz: String { return self._s[3789]! } + public var Call_EncryptionKey_Title: String { return self._s[3790]! } + public var Common_Yes: String { return self._s[3791]! } + public var Channel_ErrorAddBlocked: String { return self._s[3792]! } + public var Month_GenJanuary: String { return self._s[3793]! } + public var Checkout_NewCard_Title: String { return self._s[3794]! } public func TwoStepAuth_EnterPasswordHint(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3794]!, self._r[3794]!, [_0]) + return formatWithArgumentRanges(self._s[3795]!, self._r[3795]!, [_0]) } - public var Conversation_InputTextPlaceholderReply: String { return self._s[3796]! } - public var PasscodeSettings_AutoLock_IfAwayFor_1hour: String { return self._s[3797]! } - public var Conversation_SendDice: String { return self._s[3798]! } + public var Conversation_InputTextPlaceholderReply: String { return self._s[3797]! } + public var PasscodeSettings_AutoLock_IfAwayFor_1hour: String { return self._s[3798]! } + public var Conversation_SendDice: String { return self._s[3799]! } public func ChatSettings_AutoDownloadSettings_TypeVideo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3799]!, self._r[3799]!, [_0]) - } - public func VoiceOver_Chat_VideoFrom(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3800]!, self._r[3800]!, [_0]) } - public var Weekday_Wednesday: String { return self._s[3801]! } - public var ReportPeer_ReasonOther_Send: String { return self._s[3802]! } - public var PasscodeSettings_EncryptDataHelp: String { return self._s[3803]! } - public var PrivacyLastSeenSettings_CustomShareSettingsHelp: String { return self._s[3804]! } - public var OldChannels_NoticeTitle: String { return self._s[3805]! } - public var TwoStepAuth_ChangeEmail: String { return self._s[3806]! } - public var PasscodeSettings_PasscodeOptions: String { return self._s[3807]! } - public var InfoPlist_NSPhotoLibraryUsageDescription: String { return self._s[3808]! } - public var Passport_Address_AddUtilityBill: String { return self._s[3809]! } + public func VoiceOver_Chat_VideoFrom(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3801]!, self._r[3801]!, [_0]) + } + public var Weekday_Wednesday: String { return self._s[3802]! } + public var ReportPeer_ReasonOther_Send: String { return self._s[3803]! } + public var PasscodeSettings_EncryptDataHelp: String { return self._s[3804]! } + public var PrivacyLastSeenSettings_CustomShareSettingsHelp: String { return self._s[3805]! } + public var OldChannels_NoticeTitle: String { return self._s[3806]! } + public var TwoStepAuth_ChangeEmail: String { return self._s[3807]! } + public var PasscodeSettings_PasscodeOptions: String { return self._s[3808]! } + public var InfoPlist_NSPhotoLibraryUsageDescription: String { return self._s[3809]! } + public var Passport_Address_AddUtilityBill: String { return self._s[3810]! } public func Time_PreciseDate_m5(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3811]!, self._r[3811]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3812]!, self._r[3812]!, [_1, _2, _3]) } - public var TwoFactorSetup_EmailVerification_ResendAction: String { return self._s[3813]! } - public var Stats_GroupTopAdminsTitle: String { return self._s[3814]! } - public var Paint_Regular: String { return self._s[3815]! } - public var Message_Contact: String { return self._s[3816]! } - public var NetworkUsageSettings_MediaVideoDataSection: String { return self._s[3817]! } - public var VoiceOver_Chat_YourPhoto: String { return self._s[3818]! } - public var Notification_Mute1hMin: String { return self._s[3819]! } + public var TwoFactorSetup_EmailVerification_ResendAction: String { return self._s[3814]! } + public var Stats_GroupTopAdminsTitle: String { return self._s[3815]! } + public var Paint_Regular: String { return self._s[3816]! } + public var Message_Contact: String { return self._s[3817]! } + public var NetworkUsageSettings_MediaVideoDataSection: String { return self._s[3818]! } + public var VoiceOver_Chat_YourPhoto: String { return self._s[3819]! } + public var Notification_Mute1hMin: String { return self._s[3820]! } public func Login_BannedPhoneSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3820]!, self._r[3820]!, [_0]) + return formatWithArgumentRanges(self._s[3821]!, self._r[3821]!, [_0]) } - public var Profile_MessageLifetime1h: String { return self._s[3821]! } - public var TwoStepAuth_GenericHelp: String { return self._s[3822]! } - public var TextFormat_Monospace: String { return self._s[3823]! } - public var VoiceOver_Media_PlaybackRateChange: String { return self._s[3825]! } - public var Conversation_DeleteMessagesForMe: String { return self._s[3826]! } - public var ChatList_DeleteChat: String { return self._s[3827]! } - public var Channel_OwnershipTransfer_EnterPasswordText: String { return self._s[3830]! } + public var Profile_MessageLifetime1h: String { return self._s[3822]! } + public var TwoStepAuth_GenericHelp: String { return self._s[3823]! } + public var TextFormat_Monospace: String { return self._s[3824]! } + public var VoiceOver_Media_PlaybackRateChange: String { return self._s[3826]! } + public var Conversation_DeleteMessagesForMe: String { return self._s[3827]! } + public var ChatList_DeleteChat: String { return self._s[3828]! } + public var Channel_OwnershipTransfer_EnterPasswordText: String { return self._s[3831]! } public func Settings_ApplyProxyAlertCredentials(_ _1: String, _ _2: String, _ _3: String, _ _4: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3831]!, self._r[3831]!, [_1, _2, _3, _4]) + return formatWithArgumentRanges(self._s[3832]!, self._r[3832]!, [_1, _2, _3, _4]) } - public var Login_CancelPhoneVerificationStop: String { return self._s[3832]! } - public var Appearance_ThemePreview_ChatList_4_Name: String { return self._s[3833]! } - public var MediaPicker_MomentsDateRangeSameMonthYearFormat: String { return self._s[3834]! } + public var Login_CancelPhoneVerificationStop: String { return self._s[3833]! } + public var Appearance_ThemePreview_ChatList_4_Name: String { return self._s[3834]! } + public var MediaPicker_MomentsDateRangeSameMonthYearFormat: String { return self._s[3835]! } public func Channel_AdminLog_MessageToggleInvitesOn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3835]!, self._r[3835]!, [_0]) + return formatWithArgumentRanges(self._s[3836]!, self._r[3836]!, [_0]) } - public var Notifications_Badge_IncludeChannels: String { return self._s[3836]! } - public var InviteLink_CreatePrivateLinkHelpChannel: String { return self._s[3837]! } - public var StickerPack_ViewPack: String { return self._s[3840]! } - public var FastTwoStepSetup_PasswordConfirmationPlaceholder: String { return self._s[3842]! } - public var EditTheme_Expand_Preview_IncomingText: String { return self._s[3843]! } - public var Notifications_Title: String { return self._s[3844]! } - public var Conversation_InputTextPlaceholderComment: String { return self._s[3845]! } - public var GroupInfo_PublicLink: String { return self._s[3846]! } - public var VoiceOver_DiscardPreparedContent: String { return self._s[3847]! } - public var Conversation_Moderate_Ban: String { return self._s[3851]! } - public var InviteLink_Manage: String { return self._s[3852]! } + public var Notifications_Badge_IncludeChannels: String { return self._s[3837]! } + public var InviteLink_CreatePrivateLinkHelpChannel: String { return self._s[3838]! } + public var StickerPack_ViewPack: String { return self._s[3841]! } + public var FastTwoStepSetup_PasswordConfirmationPlaceholder: String { return self._s[3843]! } + public var EditTheme_Expand_Preview_IncomingText: String { return self._s[3844]! } + public var Notifications_Title: String { return self._s[3845]! } + public var Conversation_InputTextPlaceholderComment: String { return self._s[3846]! } + public var GroupInfo_PublicLink: String { return self._s[3847]! } + public var VoiceOver_DiscardPreparedContent: String { return self._s[3848]! } + public var Conversation_Moderate_Ban: String { return self._s[3852]! } + public var InviteLink_Manage: String { return self._s[3853]! } public func Activity_RemindAboutGroup(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3853]!, self._r[3853]!, [_0]) + return formatWithArgumentRanges(self._s[3854]!, self._r[3854]!, [_0]) } - public var TextFormat_Underline: String { return self._s[3854]! } + public var TextFormat_Underline: String { return self._s[3855]! } public func DownloadingStatus(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3855]!, self._r[3855]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3856]!, self._r[3856]!, [_0, _1]) } public func PUSH_PINNED_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3856]!, self._r[3856]!, [_1]) + return formatWithArgumentRanges(self._s[3857]!, self._r[3857]!, [_1]) } - public var PollResults_Collapse: String { return self._s[3858]! } - public var Contacts_GlobalSearch: String { return self._s[3859]! } + public var PollResults_Collapse: String { return self._s[3859]! } + public var Contacts_GlobalSearch: String { return self._s[3860]! } public func Conversation_EncryptionWaiting(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3861]!, self._r[3861]!, [_0]) + return formatWithArgumentRanges(self._s[3862]!, self._r[3862]!, [_0]) } - public var Channel_Management_LabelEditor: String { return self._s[3862]! } - public var Conversation_VoiceChatMediaRecordingRestricted: String { return self._s[3863]! } - public var SettingsSearch_Synonyms_Stickers_FeaturedPacks: String { return self._s[3864]! } - public var Conversation_Theme: String { return self._s[3865]! } + public var Channel_Management_LabelEditor: String { return self._s[3863]! } + public var Conversation_VoiceChatMediaRecordingRestricted: String { return self._s[3864]! } + public var SettingsSearch_Synonyms_Stickers_FeaturedPacks: String { return self._s[3865]! } + public var Conversation_Theme: String { return self._s[3866]! } public func PUSH_CHANNEL_MESSAGE_DOCS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3866]!, self._r[3866]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[3867]!, self._r[3867]!, [_1, "\(_2)"]) } - public var Conversation_LinkDialogSave: String { return self._s[3867]! } - public var EnterPasscode_TouchId: String { return self._s[3868]! } - public var Group_ErrorAdminsTooMuch: String { return self._s[3870]! } - public var Stats_MessageOverview: String { return self._s[3871]! } - public var Privacy_Calls_P2PAlways: String { return self._s[3873]! } - public var Message_Sticker: String { return self._s[3874]! } - public var Conversation_Mute: String { return self._s[3877]! } - public var VoiceChat_AnonymousDisabledAlertText: String { return self._s[3878]! } - public var ContactInfo_Title: String { return self._s[3879]! } + public var Conversation_LinkDialogSave: String { return self._s[3868]! } + public var EnterPasscode_TouchId: String { return self._s[3869]! } + public var Group_ErrorAdminsTooMuch: String { return self._s[3871]! } + public var Stats_MessageOverview: String { return self._s[3872]! } + public var Privacy_Calls_P2PAlways: String { return self._s[3874]! } + public var Message_Sticker: String { return self._s[3875]! } + public var Conversation_Mute: String { return self._s[3878]! } + public var VoiceChat_AnonymousDisabledAlertText: String { return self._s[3879]! } + public var ContactInfo_Title: String { return self._s[3880]! } public func PUSH_CHANNEL_MESSAGE_CONTACT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3880]!, self._r[3880]!, [_1]) + return formatWithArgumentRanges(self._s[3881]!, self._r[3881]!, [_1]) } - public var Channel_Setup_TypeHeader: String { return self._s[3881]! } - public var AuthSessions_LogOut: String { return self._s[3882]! } - public var ChatSettings_AutoDownloadReset: String { return self._s[3883]! } - public var Group_Info_Members: String { return self._s[3885]! } - public var ChatListFolderSettings_NewFolder: String { return self._s[3886]! } - public var Appearance_ThemePreview_ChatList_3_AuthorName: String { return self._s[3887]! } - public var CreatePoll_Title: String { return self._s[3888]! } - public var EditTheme_EditTitle: String { return self._s[3889]! } - public var ChatListFolderSettings_RecommendedFoldersSection: String { return self._s[3890]! } - public var TwoStepAuth_SetPassword: String { return self._s[3891]! } + public var Channel_Setup_TypeHeader: String { return self._s[3882]! } + public var AuthSessions_LogOut: String { return self._s[3883]! } + public var ChatSettings_AutoDownloadReset: String { return self._s[3884]! } + public var Group_Info_Members: String { return self._s[3886]! } + public var ChatListFolderSettings_NewFolder: String { return self._s[3887]! } + public var Appearance_ThemePreview_ChatList_3_AuthorName: String { return self._s[3888]! } + public var CreatePoll_Title: String { return self._s[3889]! } + public var EditTheme_EditTitle: String { return self._s[3890]! } + public var ChatListFolderSettings_RecommendedFoldersSection: String { return self._s[3891]! } + public var TwoStepAuth_SetPassword: String { return self._s[3892]! } public func Login_InvalidPhoneEmailSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3892]!, self._r[3892]!, [_0]) + return formatWithArgumentRanges(self._s[3893]!, self._r[3893]!, [_0]) } - public var BlockedUsers_Info: String { return self._s[3893]! } - public var AuthSessions_Sessions: String { return self._s[3894]! } - public var Group_EditAdmin_RankTitle: String { return self._s[3895]! } - public var Common_ActionNotAllowedError: String { return self._s[3896]! } - public var WebPreview_GettingLinkInfo: String { return self._s[3897]! } - public var Appearance_AppIconFilledX: String { return self._s[3898]! } - public var Passport_Email_EmailPlaceholder: String { return self._s[3899]! } - public var FeaturedStickers_OtherSection: String { return self._s[3900]! } - public var VoiceChat_RecordingStarted: String { return self._s[3901]! } - public var EditTheme_Edit_Preview_OutgoingText: String { return self._s[3902]! } - public var Profile_Username: String { return self._s[3903]! } - public var Appearance_RemoveTheme: String { return self._s[3904]! } - public var TwoStepAuth_SetupPasswordConfirmPassword: String { return self._s[3905]! } - public var Message_PinnedStickerMessage: String { return self._s[3906]! } - public var AccessDenied_VideoMicrophone: String { return self._s[3907]! } - public var WallpaperPreview_CustomColorBottomText: String { return self._s[3908]! } - public var Passport_Address_RegionPlaceholder: String { return self._s[3909]! } - public var SettingsSearch_Synonyms_Data_Storage_Title: String { return self._s[3910]! } - public var TwoStepAuth_Title: String { return self._s[3911]! } - public var Checkout_WebConfirmation_Title: String { return self._s[3912]! } - public var AutoDownloadSettings_VoiceMessagesInfo: String { return self._s[3913]! } - public var ChatListFolder_CategoryGroups: String { return self._s[3915]! } - public var Stats_GroupTopInviter_Promote: String { return self._s[3916]! } - public var Conversation_EditingPhotoPanelTitle: String { return self._s[3917]! } - public var Month_GenJuly: String { return self._s[3918]! } - public var Passport_Identity_Gender: String { return self._s[3919]! } - public var Channel_DiscussionGroup_UnlinkGroup: String { return self._s[3920]! } - public var Notification_Exceptions_DeleteAll: String { return self._s[3921]! } - public var VoiceChat_StopRecording: String { return self._s[3922]! } + public var BlockedUsers_Info: String { return self._s[3894]! } + public var AuthSessions_Sessions: String { return self._s[3895]! } + public var Group_EditAdmin_RankTitle: String { return self._s[3896]! } + public var Common_ActionNotAllowedError: String { return self._s[3897]! } + public var WebPreview_GettingLinkInfo: String { return self._s[3898]! } + public var Appearance_AppIconFilledX: String { return self._s[3899]! } + public var Passport_Email_EmailPlaceholder: String { return self._s[3900]! } + public var FeaturedStickers_OtherSection: String { return self._s[3901]! } + public var VoiceChat_RecordingStarted: String { return self._s[3902]! } + public var EditTheme_Edit_Preview_OutgoingText: String { return self._s[3903]! } + public var Profile_Username: String { return self._s[3904]! } + public var Appearance_RemoveTheme: String { return self._s[3905]! } + public var TwoStepAuth_SetupPasswordConfirmPassword: String { return self._s[3906]! } + public var Message_PinnedStickerMessage: String { return self._s[3907]! } + public var AccessDenied_VideoMicrophone: String { return self._s[3908]! } + public var WallpaperPreview_CustomColorBottomText: String { return self._s[3909]! } + public var Passport_Address_RegionPlaceholder: String { return self._s[3910]! } + public var SettingsSearch_Synonyms_Data_Storage_Title: String { return self._s[3911]! } + public var TwoStepAuth_Title: String { return self._s[3912]! } + public var Checkout_WebConfirmation_Title: String { return self._s[3913]! } + public var AutoDownloadSettings_VoiceMessagesInfo: String { return self._s[3914]! } + public var ChatListFolder_CategoryGroups: String { return self._s[3916]! } + public var Stats_GroupTopInviter_Promote: String { return self._s[3917]! } + public var Conversation_EditingPhotoPanelTitle: String { return self._s[3918]! } + public var Month_GenJuly: String { return self._s[3919]! } + public var Passport_Identity_Gender: String { return self._s[3920]! } + public var Channel_DiscussionGroup_UnlinkGroup: String { return self._s[3921]! } + public var Notification_Exceptions_DeleteAll: String { return self._s[3922]! } + public var VoiceChat_StopRecording: String { return self._s[3923]! } public func Conversation_FileHowToText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3923]!, self._r[3923]!, [_0]) + return formatWithArgumentRanges(self._s[3924]!, self._r[3924]!, [_0]) } public func Channel_AdminLog_MessageAdmin(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3924]!, self._r[3924]!, [_0, _1, _2]) + return formatWithArgumentRanges(self._s[3925]!, self._r[3925]!, [_0, _1, _2]) } - public var Login_CodeSentSms: String { return self._s[3925]! } + public var Login_CodeSentSms: String { return self._s[3926]! } public func VoiceOver_Chat_ReplyFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3926]!, self._r[3926]!, [_0]) + return formatWithArgumentRanges(self._s[3927]!, self._r[3927]!, [_0]) } - public var Login_CallRequestState2: String { return self._s[3927]! } - public var Channel_DiscussionGroup_Header: String { return self._s[3928]! } + public var Login_CallRequestState2: String { return self._s[3928]! } + public var Channel_DiscussionGroup_Header: String { return self._s[3929]! } public func Channel_AdminLog_MessageToggleInvitesOff(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3929]!, self._r[3929]!, [_0]) + return formatWithArgumentRanges(self._s[3930]!, self._r[3930]!, [_0]) } - public var Passport_Language_ms: String { return self._s[3930]! } - public var PeopleNearby_MakeInvisible: String { return self._s[3932]! } - public var ChatList_Search_FilterVoice: String { return self._s[3934]! } - public var Camera_TapAndHoldForVideo: String { return self._s[3936]! } - public var Permissions_NotificationsAllowInSettings_v0: String { return self._s[3937]! } + public var Passport_Language_ms: String { return self._s[3931]! } + public var PeopleNearby_MakeInvisible: String { return self._s[3933]! } + public var ChatList_Search_FilterVoice: String { return self._s[3935]! } + public var Camera_TapAndHoldForVideo: String { return self._s[3937]! } + public var Permissions_NotificationsAllowInSettings_v0: String { return self._s[3938]! } public func Notification_LeftChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3938]!, self._r[3938]!, [_0]) + return formatWithArgumentRanges(self._s[3939]!, self._r[3939]!, [_0]) } public func Call_VoiceChatInProgressMessageCall(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3939]!, self._r[3939]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3940]!, self._r[3940]!, [_1, _2]) } - public var Map_Locating: String { return self._s[3940]! } + public var Map_Locating: String { return self._s[3941]! } public func Checkout_SavePasswordTimeout(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3942]!, self._r[3942]!, [_0]) + return formatWithArgumentRanges(self._s[3943]!, self._r[3943]!, [_0]) } - public var Passport_Identity_TypeInternalPassport: String { return self._s[3944]! } - public var Appearance_ThemePreview_Chat_4_Text: String { return self._s[3945]! } - public var SettingsSearch_Synonyms_EditProfile_Username: String { return self._s[3946]! } - public var Stickers_Installed: String { return self._s[3947]! } - public var Notifications_PermissionsAllowInSettings: String { return self._s[3948]! } - public var StickerPackActionInfo_RemovedTitle: String { return self._s[3949]! } - public var CallSettings_Never: String { return self._s[3951]! } - public var Channel_Setup_TypePublicHelp: String { return self._s[3952]! } + public var Passport_Identity_TypeInternalPassport: String { return self._s[3945]! } + public var Appearance_ThemePreview_Chat_4_Text: String { return self._s[3946]! } + public var SettingsSearch_Synonyms_EditProfile_Username: String { return self._s[3947]! } + public var Stickers_Installed: String { return self._s[3948]! } + public var Notifications_PermissionsAllowInSettings: String { return self._s[3949]! } + public var StickerPackActionInfo_RemovedTitle: String { return self._s[3950]! } + public var CallSettings_Never: String { return self._s[3952]! } + public var Channel_Setup_TypePublicHelp: String { return self._s[3953]! } public func ChatList_DeleteForEveryone(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3954]!, self._r[3954]!, [_0]) + return formatWithArgumentRanges(self._s[3955]!, self._r[3955]!, [_0]) } - public var Message_Game: String { return self._s[3955]! } - public var Call_Message: String { return self._s[3956]! } + public var Message_Game: String { return self._s[3956]! } + public var Call_Message: String { return self._s[3957]! } public func PUSH_CHANNEL_MESSAGE_VIDEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3957]!, self._r[3957]!, [_1]) + return formatWithArgumentRanges(self._s[3958]!, self._r[3958]!, [_1]) } - public var ChannelIntro_Text: String { return self._s[3958]! } - public var StickerPack_Send: String { return self._s[3959]! } - public var Share_AuthDescription: String { return self._s[3960]! } - public var PasscodeSettings_AutoLock_IfAwayFor_5minutes: String { return self._s[3961]! } - public var CallFeedback_WhatWentWrong: String { return self._s[3962]! } - public var Common_Create: String { return self._s[3965]! } - public var Passport_Language_hy: String { return self._s[3966]! } - public var CreatePoll_Explanation: String { return self._s[3967]! } - public var GroupPermission_AddMembersNotAvailable: String { return self._s[3968]! } - public var ChatImport_CreateGroupAlertImportAction: String { return self._s[3969]! } - public var PeerInfo_ButtonVoiceChat: String { return self._s[3970]! } - public var Undo_ChatClearedForBothSides: String { return self._s[3971]! } - public var DialogList_NoMessagesTitle: String { return self._s[3972]! } - public var GroupInfo_Title: String { return self._s[3974]! } - public var Channel_AdminLog_CanBanUsers: String { return self._s[3975]! } - public var PhoneNumberHelp_Help: String { return self._s[3976]! } - public var TwoStepAuth_AdditionalPassword: String { return self._s[3977]! } - public var Settings_Logout: String { return self._s[3978]! } - public var Privacy_PaymentsTitle: String { return self._s[3979]! } - public var StickerPacksSettings_StickerPacksSection: String { return self._s[3980]! } - public var Tour_Text6: String { return self._s[3981]! } - public var ChatImportActivity_Title: String { return self._s[3983]! } - public var Channel_Username_Help: String { return self._s[3984]! } - public var VoiceOver_Chat_RecordModeVoiceMessageInfo: String { return self._s[3985]! } - public var AttachmentMenu_Poll: String { return self._s[3986]! } - public var EditTheme_Create_Preview_IncomingReplyName: String { return self._s[3987]! } - public var Conversation_ReportSpamChannelConfirmation: String { return self._s[3988]! } - public var Passport_DeletePassport: String { return self._s[3989]! } - public var Login_Code: String { return self._s[3990]! } - public var Notification_SecretChatScreenshot: String { return self._s[3991]! } - public var Login_CodeFloodError: String { return self._s[3992]! } + public var ChannelIntro_Text: String { return self._s[3959]! } + public var StickerPack_Send: String { return self._s[3960]! } + public var Share_AuthDescription: String { return self._s[3961]! } + public var PasscodeSettings_AutoLock_IfAwayFor_5minutes: String { return self._s[3962]! } + public var CallFeedback_WhatWentWrong: String { return self._s[3963]! } + public var Common_Create: String { return self._s[3966]! } + public var Passport_Language_hy: String { return self._s[3967]! } + public var CreatePoll_Explanation: String { return self._s[3968]! } + public var GroupPermission_AddMembersNotAvailable: String { return self._s[3969]! } + public var ChatImport_CreateGroupAlertImportAction: String { return self._s[3970]! } + public var PeerInfo_ButtonVoiceChat: String { return self._s[3971]! } + public var Undo_ChatClearedForBothSides: String { return self._s[3972]! } + public var DialogList_NoMessagesTitle: String { return self._s[3973]! } + public var GroupInfo_Title: String { return self._s[3975]! } + public var Channel_AdminLog_CanBanUsers: String { return self._s[3976]! } + public var PhoneNumberHelp_Help: String { return self._s[3977]! } + public var TwoStepAuth_AdditionalPassword: String { return self._s[3978]! } + public var Settings_Logout: String { return self._s[3979]! } + public var Privacy_PaymentsTitle: String { return self._s[3980]! } + public var StickerPacksSettings_StickerPacksSection: String { return self._s[3981]! } + public var Tour_Text6: String { return self._s[3982]! } + public var ChatImportActivity_Title: String { return self._s[3984]! } + public var Channel_Username_Help: String { return self._s[3985]! } + public var VoiceOver_Chat_RecordModeVoiceMessageInfo: String { return self._s[3986]! } + public var AttachmentMenu_Poll: String { return self._s[3987]! } + public var EditTheme_Create_Preview_IncomingReplyName: String { return self._s[3988]! } + public var Conversation_ReportSpamChannelConfirmation: String { return self._s[3989]! } + public var Passport_DeletePassport: String { return self._s[3990]! } + public var Login_Code: String { return self._s[3991]! } + public var Notification_SecretChatScreenshot: String { return self._s[3992]! } + public var Login_CodeFloodError: String { return self._s[3993]! } public func Notification_PinnedAnimationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3993]!, self._r[3993]!, [_0]) - } - public func Channel_Username_UsernameIsAvailable(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3994]!, self._r[3994]!, [_0]) } - public var Watch_Stickers_Recents: String { return self._s[3995]! } - public var Generic_ErrorMoreInfo: String { return self._s[3996]! } + public func Channel_Username_UsernameIsAvailable(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3995]!, self._r[3995]!, [_0]) + } + public var Watch_Stickers_Recents: String { return self._s[3996]! } + public var Generic_ErrorMoreInfo: String { return self._s[3997]! } public func Call_AccountIsLoggedOnCurrentDevice(_ _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 AutoDownloadSettings_DataUsage: String { return self._s[3998]! } - public var Conversation_ViewTheme: String { return self._s[3999]! } - public var Contacts_InviteSearchLabel: String { return self._s[4000]! } - public var Settings_CancelUpload: String { return self._s[4002]! } - public var Settings_AppLanguage_Unofficial: String { return self._s[4003]! } + public var AutoDownloadSettings_DataUsage: String { return self._s[3999]! } + public var Conversation_ViewTheme: String { return self._s[4000]! } + public var Contacts_InviteSearchLabel: String { return self._s[4001]! } + public var Settings_CancelUpload: String { return self._s[4003]! } + public var Settings_AppLanguage_Unofficial: String { return self._s[4004]! } public func ChatList_ClearChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4004]!, self._r[4004]!, [_0]) + return formatWithArgumentRanges(self._s[4005]!, self._r[4005]!, [_0]) } - public var ChatList_AddFolder: String { return self._s[4005]! } - public var Conversation_Location: String { return self._s[4007]! } - public var Appearance_BubbleCorners_AdjustAdjacent: String { return self._s[4008]! } - public var DialogList_AdLabel: String { return self._s[4009]! } + public var ChatList_AddFolder: String { return self._s[4006]! } + public var Conversation_Location: String { return self._s[4008]! } + public var Appearance_BubbleCorners_AdjustAdjacent: String { return self._s[4009]! } + public var DialogList_AdLabel: String { return self._s[4010]! } public func Time_TomorrowAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4011]!, self._r[4011]!, [_0]) + return formatWithArgumentRanges(self._s[4012]!, self._r[4012]!, [_0]) } - public var Message_InvoiceLabel: String { return self._s[4012]! } - public var Channel_TooMuchBots: String { return self._s[4013]! } + public var Message_InvoiceLabel: String { return self._s[4013]! } + public var Channel_TooMuchBots: String { return self._s[4014]! } public func Channel_AdminLog_MessageRemovedChannelUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4015]!, self._r[4015]!, [_0]) + return formatWithArgumentRanges(self._s[4016]!, self._r[4016]!, [_0]) } - public var Call_IncomingVideoCall: String { return self._s[4016]! } - public var Conversation_LiveLocation: String { return self._s[4017]! } - public var TwoStepAuth_SetupPasswordEnterPasswordChange: String { return self._s[4018]! } - public var Passport_Identity_EditPassport: String { return self._s[4019]! } - public var Permissions_CellularDataTitle_v0: String { return self._s[4021]! } - public var ChatList_Search_NoResultsFitlerVoice: String { return self._s[4022]! } - public var GroupInfo_Permissions_AddException: String { return self._s[4023]! } - public var Channel_AdminLog_CanInviteUsers: String { return self._s[4025]! } - public var Channel_MessageVideoUpdated: String { return self._s[4026]! } - public var GroupInfo_Permissions_EditingDisabled: String { return self._s[4027]! } - public var AccessDenied_Camera: String { return self._s[4030]! } + public var Call_IncomingVideoCall: String { return self._s[4017]! } + public var Conversation_LiveLocation: String { return self._s[4018]! } + public var TwoStepAuth_SetupPasswordEnterPasswordChange: String { return self._s[4019]! } + public var Passport_Identity_EditPassport: String { return self._s[4020]! } + public var Permissions_CellularDataTitle_v0: String { return self._s[4022]! } + public var ChatList_Search_NoResultsFitlerVoice: String { return self._s[4023]! } + public var GroupInfo_Permissions_AddException: String { return self._s[4024]! } + public var Channel_AdminLog_CanInviteUsers: String { return self._s[4026]! } + public var Channel_MessageVideoUpdated: String { return self._s[4027]! } + public var GroupInfo_Permissions_EditingDisabled: String { return self._s[4028]! } + public var AccessDenied_Camera: String { return self._s[4031]! } public func Target_InviteToGroupConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4031]!, self._r[4031]!, [_0]) + return formatWithArgumentRanges(self._s[4032]!, self._r[4032]!, [_0]) } - public var Theme_Context_ChangeColors: String { return self._s[4032]! } - public var PrivacySettings_TwoStepAuth: String { return self._s[4033]! } - public var Privacy_Forwards_PreviewMessageText: String { return self._s[4034]! } - public var Login_CodeExpiredError: String { return self._s[4035]! } - public var State_ConnectingToProxy: String { return self._s[4036]! } - public var TextFormat_Link: String { return self._s[4037]! } - public var Passport_Language_lv: String { return self._s[4039]! } - public var Conversation_AutoremoveTimerRemovedGroup: String { return self._s[4040]! } - public var AccessDenied_VoiceMicrophone: String { return self._s[4041]! } - public var WallpaperPreview_SwipeBottomText: String { return self._s[4042]! } - public var ProfilePhoto_SetMainVideo: String { return self._s[4043]! } - public var AutoDownloadSettings_Cellular: String { return self._s[4045]! } - public var ChatSettings_AutoDownloadVoiceMessages: String { return self._s[4046]! } + public var Theme_Context_ChangeColors: String { return self._s[4033]! } + public var PrivacySettings_TwoStepAuth: String { return self._s[4034]! } + public var Privacy_Forwards_PreviewMessageText: String { return self._s[4035]! } + public var Login_CodeExpiredError: String { return self._s[4036]! } + public var State_ConnectingToProxy: String { return self._s[4037]! } + public var TextFormat_Link: String { return self._s[4038]! } + public var Passport_Language_lv: String { return self._s[4040]! } + public var Conversation_AutoremoveTimerRemovedGroup: String { return self._s[4041]! } + public var AccessDenied_VoiceMicrophone: String { return self._s[4042]! } + public var WallpaperPreview_SwipeBottomText: String { return self._s[4043]! } + public var ProfilePhoto_SetMainVideo: String { return self._s[4044]! } + public var AutoDownloadSettings_Cellular: String { return self._s[4046]! } + public var ChatSettings_AutoDownloadVoiceMessages: String { return self._s[4047]! } public func Channel_AdminLog_MessageKickedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4047]!, self._r[4047]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4048]!, self._r[4048]!, [_1, _2]) } - public var ChatList_EmptyChatListFilterTitle: String { return self._s[4048]! } - public var Checkout_PayNone: String { return self._s[4049]! } - public var NotificationsSound_Complete: String { return self._s[4051]! } - public var TwoStepAuth_ConfirmEmailCodePlaceholder: String { return self._s[4052]! } - public var InviteLink_CreateInfo: String { return self._s[4053]! } - public var AuthSessions_DevicesTitle: String { return self._s[4054]! } + public var ChatList_EmptyChatListFilterTitle: String { return self._s[4049]! } + public var Checkout_PayNone: String { return self._s[4050]! } + public var NotificationsSound_Complete: String { return self._s[4052]! } + public var TwoStepAuth_ConfirmEmailCodePlaceholder: String { return self._s[4053]! } + public var InviteLink_CreateInfo: String { return self._s[4054]! } + public var AuthSessions_DevicesTitle: String { return self._s[4055]! } public func DialogList_MultipleTyping(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4055]!, self._r[4055]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4056]!, self._r[4056]!, [_0, _1]) } - public var Message_LiveLocation: String { return self._s[4056]! } - public var Watch_Suggestion_BRB: String { return self._s[4057]! } - public var Channel_BanUser_Title: String { return self._s[4058]! } - public var SettingsSearch_Synonyms_Privacy_Data_Title: String { return self._s[4059]! } - public var Conversation_Dice_u1F3C0: String { return self._s[4060]! } - public var Conversation_ClearSelfHistory: String { return self._s[4061]! } - public var ProfilePhoto_OpenGallery: String { return self._s[4062]! } - public var PrivacySettings_LastSeenTitle: String { return self._s[4063]! } - public var Weekday_Thursday: String { return self._s[4064]! } - public var BroadcastListInfo_AddRecipient: String { return self._s[4065]! } - public var Privacy_ProfilePhoto: String { return self._s[4067]! } - public var StickerPacksSettings_ArchivedPacks_Info: String { return self._s[4068]! } + public var Message_LiveLocation: String { return self._s[4057]! } + public var Watch_Suggestion_BRB: String { return self._s[4058]! } + public var Channel_BanUser_Title: String { return self._s[4059]! } + public var SettingsSearch_Synonyms_Privacy_Data_Title: String { return self._s[4060]! } + public var Conversation_Dice_u1F3C0: String { return self._s[4061]! } + public var Conversation_ClearSelfHistory: String { return self._s[4062]! } + public var ProfilePhoto_OpenGallery: String { return self._s[4063]! } + public var PrivacySettings_LastSeenTitle: String { return self._s[4064]! } + public var Weekday_Thursday: String { return self._s[4065]! } + public var BroadcastListInfo_AddRecipient: String { return self._s[4066]! } + public var Privacy_ProfilePhoto: String { return self._s[4068]! } + public var StickerPacksSettings_ArchivedPacks_Info: String { return self._s[4069]! } public func Channel_AdminLog_MessageChangedUnlinkedGroup(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4069]!, self._r[4069]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4070]!, self._r[4070]!, [_1, _2]) } - public var Message_Audio: String { return self._s[4070]! } - public var Conversation_Info: String { return self._s[4071]! } - public var Cache_Videos: String { return self._s[4072]! } - public var Appearance_ThemePreview_ChatList_6_Text: String { return self._s[4073]! } - public var Channel_ErrorAddTooMuch: String { return self._s[4074]! } + public var Message_Audio: String { return self._s[4071]! } + public var Conversation_Info: String { return self._s[4072]! } + public var Cache_Videos: String { return self._s[4073]! } + public var Appearance_ThemePreview_ChatList_6_Text: String { return self._s[4074]! } + public var Channel_ErrorAddTooMuch: String { return self._s[4075]! } public func ChatList_DeleteSecretChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4075]!, self._r[4075]!, [_0]) + return formatWithArgumentRanges(self._s[4076]!, self._r[4076]!, [_0]) } - public var ChannelMembers_ChannelAdminsTitle: String { return self._s[4077]! } - public var ScheduledMessages_Title: String { return self._s[4079]! } - public var ShareFileTip_Title: String { return self._s[4082]! } - public var Chat_Gifs_TrendingSectionHeader: String { return self._s[4083]! } - public var ChatList_RemoveFolderConfirmation: String { return self._s[4084]! } + public var ChannelMembers_ChannelAdminsTitle: String { return self._s[4078]! } + public var ScheduledMessages_Title: String { return self._s[4080]! } + public var ShareFileTip_Title: String { return self._s[4083]! } + public var Chat_Gifs_TrendingSectionHeader: String { return self._s[4084]! } + public var ChatList_RemoveFolderConfirmation: String { return self._s[4085]! } public func PUSH_CHAT_MESSAGE_GEOLIVE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4085]!, self._r[4085]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4086]!, self._r[4086]!, [_1, _2]) } - public var Conversation_ContextViewStats: String { return self._s[4087]! } - public var Channel_DiscussionGroup_SearchPlaceholder: String { return self._s[4088]! } - public var PasscodeSettings_Title: String { return self._s[4089]! } - public var Channel_AdminLog_SendPolls: String { return self._s[4090]! } - public var LastSeen_ALongTimeAgo: String { return self._s[4091]! } + public var Conversation_ContextViewStats: String { return self._s[4088]! } + public var Channel_DiscussionGroup_SearchPlaceholder: String { return self._s[4089]! } + public var PasscodeSettings_Title: String { return self._s[4090]! } + public var Channel_AdminLog_SendPolls: String { return self._s[4091]! } + public var LastSeen_ALongTimeAgo: String { return self._s[4092]! } public func PUSH_CHANNEL_MESSAGE_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4092]!, self._r[4092]!, [_1]) + return formatWithArgumentRanges(self._s[4093]!, self._r[4093]!, [_1]) } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChannels: String { return self._s[4093]! } - public var ChannelInfo_FakeChannelWarning: String { return self._s[4094]! } - public var CallFeedback_VideoReasonLowQuality: String { return self._s[4095]! } - public var Conversation_PinnedPreviousMessage: String { return self._s[4096]! } - public var SocksProxySetup_AddProxyTitle: String { return self._s[4097]! } - public var Passport_Identity_AddInternalPassport: String { return self._s[4098]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChannels: String { return self._s[4094]! } + public var ChannelInfo_FakeChannelWarning: String { return self._s[4095]! } + public var CallFeedback_VideoReasonLowQuality: String { return self._s[4096]! } + public var Conversation_PinnedPreviousMessage: String { return self._s[4097]! } + public var SocksProxySetup_AddProxyTitle: String { return self._s[4098]! } + public var Passport_Identity_AddInternalPassport: String { return self._s[4099]! } public func ChatList_RemovedFromFolderTooltip(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4099]!, self._r[4099]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4100]!, self._r[4100]!, [_1, _2]) } public func Conversation_SetReminder_RemindToday(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4100]!, self._r[4100]!, [_0]) + return formatWithArgumentRanges(self._s[4101]!, self._r[4101]!, [_0]) } - public var Passport_Identity_GenderFemale: String { return self._s[4101]! } - public var Location_ProximityNotification_DistanceKM: String { return self._s[4104]! } - public var ConvertToSupergroup_HelpTitle: String { return self._s[4105]! } + public var Passport_Identity_GenderFemale: String { return self._s[4102]! } + public var Location_ProximityNotification_DistanceKM: String { return self._s[4105]! } + public var ConvertToSupergroup_HelpTitle: String { return self._s[4106]! } public func Message_ImportedDateFormat(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4106]!, self._r[4106]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4107]!, self._r[4107]!, [_1, _2, _3]) } - public var VoiceChat_Audio: String { return self._s[4107]! } - public var SharedMedia_TitleAll: String { return self._s[4108]! } - public var Settings_Context_Logout: String { return self._s[4109]! } - public var GroupInfo_SetGroupPhotoDelete: String { return self._s[4111]! } - public var Settings_About_Title: String { return self._s[4112]! } - public var StickerSettings_ContextHide: String { return self._s[4113]! } + public var VoiceChat_Audio: String { return self._s[4108]! } + public var SharedMedia_TitleAll: String { return self._s[4109]! } + public var Settings_Context_Logout: String { return self._s[4110]! } + public var GroupInfo_SetGroupPhotoDelete: String { return self._s[4112]! } + public var Settings_About_Title: String { return self._s[4113]! } + public var StickerSettings_ContextHide: String { return self._s[4114]! } public func AutoDownloadSettings_UpTo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4114]!, self._r[4114]!, [_0]) - } - public func Conversation_LiveLocationYouAndOther(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[4115]!, self._r[4115]!, [_0]) } - public var ChatImport_SelectionConfirmationAlertImportAction: String { return self._s[4117]! } - public var Common_Cancel: String { return self._s[4118]! } - public var CallFeedback_Title: String { return self._s[4120]! } - public func Notification_PinnedContactMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4121]!, self._r[4121]!, [_0]) + public func Conversation_LiveLocationYouAndOther(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4116]!, self._r[4116]!, [_0]) } - public var Activity_UploadingVideoMessage: String { return self._s[4122]! } - public var MediaPicker_Send: String { return self._s[4123]! } - public var PasscodeSettings_AutoLock_IfAwayFor_1minute: String { return self._s[4124]! } - public var Conversation_LiveLocationYou: String { return self._s[4125]! } - public var Notifications_ExceptionsUnmuted: String { return self._s[4126]! } + public var ChatImport_SelectionConfirmationAlertImportAction: String { return self._s[4118]! } + public var Common_Cancel: String { return self._s[4119]! } + public var CallFeedback_Title: String { return self._s[4121]! } + public func Notification_PinnedContactMessage(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4122]!, self._r[4122]!, [_0]) + } + public var Activity_UploadingVideoMessage: String { return self._s[4123]! } + public var MediaPicker_Send: String { return self._s[4124]! } + public var PasscodeSettings_AutoLock_IfAwayFor_1minute: String { return self._s[4125]! } + public var Conversation_LiveLocationYou: String { return self._s[4126]! } + public var Notifications_ExceptionsUnmuted: String { return self._s[4127]! } public func Channel_AdminLog_MessageGroupPreHistoryHidden(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4128]!, self._r[4128]!, [_0]) + return formatWithArgumentRanges(self._s[4129]!, self._r[4129]!, [_0]) } public func PUSH_CHAT_ADD_YOU(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4129]!, self._r[4129]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4130]!, self._r[4130]!, [_1, _2]) } - public var Conversation_ViewBackground: String { return self._s[4130]! } - public var ChatSettings_PrivateChats: String { return self._s[4133]! } - public var Conversation_ErrorInaccessibleMessage: String { return self._s[4134]! } - public var BroadcastGroups_LimitAlert_LearnMore: String { return self._s[4135]! } - public var Appearance_ThemeNight: String { return self._s[4136]! } - public var Common_Search: String { return self._s[4137]! } - public var TwoStepAuth_ReEnterPasswordTitle: String { return self._s[4138]! } - public var ChangePhoneNumberNumber_Help: String { return self._s[4140]! } - public var InviteLink_QRCode_Share: String { return self._s[4141]! } - public var Stickers_SuggestAdded: String { return self._s[4142]! } - public var Conversation_DiscardVoiceMessageDescription: String { return self._s[4145]! } - public var NetworkUsageSettings_Cellular: String { return self._s[4146]! } - public var CheckoutInfo_Title: String { return self._s[4147]! } - public var Conversation_ShareBotLocationConfirmationTitle: String { return self._s[4148]! } - public var Channel_BotDoesntSupportGroups: String { return self._s[4149]! } + public var Conversation_ViewBackground: String { return self._s[4131]! } + public var ChatSettings_PrivateChats: String { return self._s[4134]! } + public var Conversation_ErrorInaccessibleMessage: String { return self._s[4135]! } + public var BroadcastGroups_LimitAlert_LearnMore: String { return self._s[4136]! } + public var Appearance_ThemeNight: String { return self._s[4137]! } + public var Common_Search: String { return self._s[4138]! } + public var TwoStepAuth_ReEnterPasswordTitle: String { return self._s[4139]! } + public var ChangePhoneNumberNumber_Help: String { return self._s[4141]! } + public var InviteLink_QRCode_Share: String { return self._s[4142]! } + public var Stickers_SuggestAdded: String { return self._s[4143]! } + public var Conversation_DiscardVoiceMessageDescription: String { return self._s[4146]! } + public var NetworkUsageSettings_Cellular: String { return self._s[4147]! } + public var CheckoutInfo_Title: String { return self._s[4148]! } + public var Conversation_ShareBotLocationConfirmationTitle: String { return self._s[4149]! } + public var Channel_BotDoesntSupportGroups: String { return self._s[4150]! } public func DialogList_SingleRecordingAudioSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4150]!, self._r[4150]!, [_0]) + return formatWithArgumentRanges(self._s[4151]!, self._r[4151]!, [_0]) } - public var MaskStickerSettings_Info: String { return self._s[4152]! } - public var GroupRemoved_DeleteUser: String { return self._s[4154]! } - public var Contacts_ShareTelegram: String { return self._s[4155]! } - public var Group_UpgradeNoticeText1: String { return self._s[4156]! } + public var MaskStickerSettings_Info: String { return self._s[4153]! } + public var GroupRemoved_DeleteUser: String { return self._s[4155]! } + public var Contacts_ShareTelegram: String { return self._s[4156]! } + public var Group_UpgradeNoticeText1: String { return self._s[4157]! } public func PUSH_PHONE_CALL_REQUEST(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4157]!, self._r[4157]!, [_1]) + return formatWithArgumentRanges(self._s[4158]!, self._r[4158]!, [_1]) } - public var PrivacyLastSeenSettings_Title: String { return self._s[4158]! } - public var SettingsSearch_Synonyms_Support: String { return self._s[4162]! } - public var PhotoEditor_TintTool: String { return self._s[4163]! } - public var ChatImportActivity_OpenApp: String { return self._s[4165]! } - public var GroupPermission_NoSendPolls: String { return self._s[4166]! } - public var NotificationsSound_None: String { return self._s[4167]! } + public var PrivacyLastSeenSettings_Title: String { return self._s[4159]! } + public var SettingsSearch_Synonyms_Support: String { return self._s[4163]! } + public var PhotoEditor_TintTool: String { return self._s[4164]! } + public var ChatImportActivity_OpenApp: String { return self._s[4166]! } + public var GroupPermission_NoSendPolls: String { return self._s[4167]! } + public var NotificationsSound_None: String { return self._s[4168]! } public func LOCAL_CHANNEL_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4168]!, self._r[4168]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[4169]!, self._r[4169]!, [_1, "\(_2)"]) } - public var CheckoutInfo_ShippingInfoCityPlaceholder: String { return self._s[4170]! } + public var CheckoutInfo_ShippingInfoCityPlaceholder: String { return self._s[4171]! } public func Conversation_AutoremoveTimerSetChannel(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4172]!, self._r[4172]!, [_1]) + return formatWithArgumentRanges(self._s[4173]!, self._r[4173]!, [_1]) } - public var ExplicitContent_AlertChannel: String { return self._s[4173]! } - public var Conversation_ClousStorageInfo_Description1: String { return self._s[4174]! } - public var Contacts_SortedByPresence: String { return self._s[4175]! } - public var WallpaperSearch_ColorGray: String { return self._s[4176]! } - public var Channel_AdminLogFilter_EventsNewSubscribers: String { return self._s[4177]! } - public var Conversation_ReportSpam: String { return self._s[4178]! } - public var ChatList_Search_NoResultsFilter: String { return self._s[4181]! } - public var WallpaperSearch_ColorBlack: String { return self._s[4182]! } - public var ArchivedChats_IntroTitle3: String { return self._s[4183]! } - public var InviteLink_DeleteAllRevokedLinksAlert_Action: String { return self._s[4184]! } + public var ExplicitContent_AlertChannel: String { return self._s[4174]! } + public var Conversation_ClousStorageInfo_Description1: String { return self._s[4175]! } + public var Contacts_SortedByPresence: String { return self._s[4176]! } + public var WallpaperSearch_ColorGray: String { return self._s[4177]! } + public var Channel_AdminLogFilter_EventsNewSubscribers: String { return self._s[4178]! } + public var Conversation_ReportSpam: String { return self._s[4179]! } + public var ChatList_Search_NoResultsFilter: String { return self._s[4182]! } + public var WallpaperSearch_ColorBlack: String { return self._s[4183]! } + public var ArchivedChats_IntroTitle3: String { return self._s[4184]! } + public var InviteLink_DeleteAllRevokedLinksAlert_Action: String { return self._s[4185]! } public func VoiceChat_PeerJoinedText(_ _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 Conversation_DefaultRestrictedText: String { return self._s[4186]! } - public var Settings_Devices: String { return self._s[4187]! } - public var Call_AudioRouteSpeaker: String { return self._s[4188]! } - public var GroupInfo_InviteLink_CopyLink: String { return self._s[4189]! } - public var Passport_Address_Country: String { return self._s[4191]! } - public var Cache_MaximumCacheSize: String { return self._s[4192]! } - public var Chat_PanelHidePinnedMessages: String { return self._s[4193]! } - public var Notifications_Badge_IncludePublicGroups: String { return self._s[4194]! } - public var ChatSettings_AutoDownloadUsingWiFi: String { return self._s[4196]! } - public var Login_TermsOfServiceLabel: String { return self._s[4197]! } - public var Calls_NoMissedCallsPlacehoder: String { return self._s[4198]! } - public var SocksProxySetup_RequiredCredentials: String { return self._s[4199]! } - public var VoiceOver_MessageContextOpenMessageMenu: String { return self._s[4200]! } - public var AutoNightTheme_ScheduledFrom: String { return self._s[4201]! } - public var ChatSettings_AutoDownloadDocuments: String { return self._s[4202]! } - public var ConvertToSupergroup_Note: String { return self._s[4204]! } - public var Settings_SetNewProfilePhotoOrVideo: String { return self._s[4205]! } - public var PrivacySettings_PasscodeAndTouchId: String { return self._s[4206]! } - public var Common_More: String { return self._s[4207]! } - public var ShareMenu_SelectChats: String { return self._s[4209]! } + public var Conversation_DefaultRestrictedText: String { return self._s[4187]! } + public var Settings_Devices: String { return self._s[4188]! } + public var Call_AudioRouteSpeaker: String { return self._s[4189]! } + public var GroupInfo_InviteLink_CopyLink: String { return self._s[4190]! } + public var Passport_Address_Country: String { return self._s[4192]! } + public var Cache_MaximumCacheSize: String { return self._s[4193]! } + public var Chat_PanelHidePinnedMessages: String { return self._s[4194]! } + public var Notifications_Badge_IncludePublicGroups: String { return self._s[4195]! } + public var ChatSettings_AutoDownloadUsingWiFi: String { return self._s[4197]! } + public var Login_TermsOfServiceLabel: String { return self._s[4198]! } + public var Calls_NoMissedCallsPlacehoder: String { return self._s[4199]! } + public var SocksProxySetup_RequiredCredentials: String { return self._s[4200]! } + public var VoiceOver_MessageContextOpenMessageMenu: String { return self._s[4201]! } + public var AutoNightTheme_ScheduledFrom: String { return self._s[4202]! } + public var ChatSettings_AutoDownloadDocuments: String { return self._s[4203]! } + public var ConvertToSupergroup_Note: String { return self._s[4205]! } + public var Settings_SetNewProfilePhotoOrVideo: String { return self._s[4206]! } + public var PrivacySettings_PasscodeAndTouchId: String { return self._s[4207]! } + public var Common_More: String { return self._s[4208]! } + public var ShareMenu_SelectChats: String { return self._s[4210]! } public func Conversation_ScheduleMessage_SendToday(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4210]!, self._r[4210]!, [_0]) - } - public func Channel_AdminLog_MessageRemovedGroupStickerPack(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[4211]!, self._r[4211]!, [_0]) } - public var Contacts_PermissionsKeepDisabled: String { return self._s[4213]! } + public func Channel_AdminLog_MessageRemovedGroupStickerPack(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4212]!, self._r[4212]!, [_0]) + } + public var Contacts_PermissionsKeepDisabled: String { return self._s[4214]! } public func Call_ParticipantVersionOutdatedError(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4214]!, self._r[4214]!, [_0]) + return formatWithArgumentRanges(self._s[4215]!, self._r[4215]!, [_0]) } - public var WatchRemote_AlertOpen: String { return self._s[4215]! } + public var WatchRemote_AlertOpen: String { return self._s[4216]! } public func PUSH_CHAT_ADD_MEMBER(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4216]!, self._r[4216]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4217]!, self._r[4217]!, [_1, _2, _3]) } - public var Channel_Members_AddMembersHelp: String { return self._s[4217]! } - public var Shortcut_SwitchAccount: String { return self._s[4218]! } - public var Map_LiveLocationFor8Hours: String { return self._s[4219]! } + public var Channel_Members_AddMembersHelp: String { return self._s[4218]! } + public var Shortcut_SwitchAccount: String { return self._s[4219]! } + public var Map_LiveLocationFor8Hours: String { return self._s[4220]! } public func AutoNightTheme_AutomaticHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4220]!, self._r[4220]!, [_0]) + return formatWithArgumentRanges(self._s[4221]!, self._r[4221]!, [_0]) } - public var Compose_NewGroupTitle: String { return self._s[4221]! } - public var Call_VoiceOver_VoiceCallOutgoing: String { return self._s[4222]! } + public var Compose_NewGroupTitle: String { return self._s[4222]! } public var DialogList_You: String { return self._s[4223]! } - public var ReportPeer_ReasonViolence: String { return self._s[4224]! } + public var Call_VoiceOver_VoiceCallOutgoing: String { return self._s[4224]! } + public var ReportPeer_ReasonViolence: String { return self._s[4225]! } public func PUSH_CHANNEL_MESSAGE_STICKER(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4225]!, self._r[4225]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4226]!, self._r[4226]!, [_1, _2]) } - public var VoiceChat_Reconnecting: String { return self._s[4227]! } - public var KeyCommand_ScrollDown: String { return self._s[4230]! } - public var ChatSettings_DownloadInBackground: String { return self._s[4231]! } - public var Wallpaper_ResetWallpapers: String { return self._s[4232]! } - public var Channel_BanList_RestrictedTitle: String { return self._s[4233]! } - public var ArchivedChats_IntroText3: String { return self._s[4234]! } - public var HashtagSearch_AllChats: String { return self._s[4236]! } - public var VoiceChat_EndVoiceChat: String { return self._s[4237]! } - public var Channel_Info_BlackList: String { return self._s[4239]! } - public var Contacts_SearchUsersAndGroupsLabel: String { return self._s[4240]! } - public var PrivacyPhoneNumberSettings_DiscoveryHeader: String { return self._s[4241]! } - public var Paint_Neon: String { return self._s[4243]! } - public var SettingsSearch_Synonyms_AppLanguage: String { return self._s[4244]! } - public var AutoDownloadSettings_AutoDownload: String { return self._s[4245]! } + public var VoiceChat_Reconnecting: String { return self._s[4228]! } + public var KeyCommand_ScrollDown: String { return self._s[4231]! } + public var ChatSettings_DownloadInBackground: String { return self._s[4232]! } + public var Wallpaper_ResetWallpapers: String { return self._s[4233]! } + public var Channel_BanList_RestrictedTitle: String { return self._s[4234]! } + public var ArchivedChats_IntroText3: String { return self._s[4235]! } + public var HashtagSearch_AllChats: String { return self._s[4237]! } + public var VoiceChat_EndVoiceChat: String { return self._s[4238]! } + public var Channel_Info_BlackList: String { return self._s[4240]! } + public var Contacts_SearchUsersAndGroupsLabel: String { return self._s[4241]! } + public var PrivacyPhoneNumberSettings_DiscoveryHeader: String { return self._s[4242]! } + public var Paint_Neon: String { return self._s[4244]! } + public var SettingsSearch_Synonyms_AppLanguage: String { return self._s[4245]! } + public var AutoDownloadSettings_AutoDownload: String { return self._s[4246]! } public func Notification_PinnedVideoMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4247]!, self._r[4247]!, [_0]) + return formatWithArgumentRanges(self._s[4248]!, self._r[4248]!, [_0]) } - public var Map_StopLiveLocation: String { return self._s[4248]! } - public var SettingsSearch_Synonyms_Data_SaveEditedPhotos: String { return self._s[4249]! } - public var Channel_Username_InvalidCharacters: String { return self._s[4250]! } - public var InstantPage_Reference: String { return self._s[4252]! } - public var Group_Members_AddMembers: String { return self._s[4254]! } - public var ChatList_HideAction: String { return self._s[4255]! } - public var Conversation_FileICloudDrive: String { return self._s[4257]! } + public var Map_StopLiveLocation: String { return self._s[4249]! } + public var SettingsSearch_Synonyms_Data_SaveEditedPhotos: String { return self._s[4250]! } + public var Channel_Username_InvalidCharacters: String { return self._s[4251]! } + public var InstantPage_Reference: String { return self._s[4253]! } + public var Group_Members_AddMembers: String { return self._s[4255]! } + public var ChatList_HideAction: String { return self._s[4256]! } + public var Conversation_FileICloudDrive: String { return self._s[4258]! } public func PUSH_PINNED_GEOLIVE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4258]!, self._r[4258]!, [_1]) + return formatWithArgumentRanges(self._s[4259]!, self._r[4259]!, [_1]) } - public var Passport_PasswordReset: String { return self._s[4260]! } - public var ChatList_Context_UnhideArchive: String { return self._s[4262]! } - public var ConvertToSupergroup_HelpText: String { return self._s[4263]! } - public var Calls_AddTab: String { return self._s[4264]! } - public var TwoStepAuth_ConfirmEmailResendCode: String { return self._s[4265]! } - public var SettingsSearch_Synonyms_Stickers_SuggestStickers: String { return self._s[4266]! } - public var Privacy_GroupsAndChannels: String { return self._s[4269]! } - public var AutoNightTheme_Disabled: String { return self._s[4270]! } - public var CreatePoll_MultipleChoice: String { return self._s[4271]! } + public var Passport_PasswordReset: String { return self._s[4261]! } + public var ChatList_Context_UnhideArchive: String { return self._s[4263]! } + public var ConvertToSupergroup_HelpText: String { return self._s[4264]! } + public var Calls_AddTab: String { return self._s[4265]! } + public var TwoStepAuth_ConfirmEmailResendCode: String { return self._s[4266]! } + public var SettingsSearch_Synonyms_Stickers_SuggestStickers: String { return self._s[4267]! } + public var Privacy_GroupsAndChannels: String { return self._s[4270]! } + public var AutoNightTheme_Disabled: String { return self._s[4271]! } + public var CreatePoll_MultipleChoice: String { return self._s[4272]! } public func PINNED_INVOICE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4272]!, self._r[4272]!, [_1]) + return formatWithArgumentRanges(self._s[4273]!, self._r[4273]!, [_1]) } - public var Watch_Bot_Restart: String { return self._s[4274]! } + public var Watch_Bot_Restart: String { return self._s[4275]! } public func Conversation_Kilobytes(_ _0: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4275]!, self._r[4275]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[4276]!, self._r[4276]!, ["\(_0)"]) } - public var GroupInfo_ScamGroupWarning: String { return self._s[4277]! } - public var Conversation_EditingMessagePanelMedia: String { return self._s[4278]! } - public var Appearance_PreviewIncomingText: String { return self._s[4279]! } - public var ChatSettings_WidgetSettings: String { return self._s[4280]! } - public var Notifications_ChannelNotificationsExceptionsHelp: String { return self._s[4281]! } - public var ChatList_UndoArchiveRevealedTitle: String { return self._s[4283]! } - public var Stats_GroupOverview: String { return self._s[4285]! } - public var ScheduledMessages_EditTime: String { return self._s[4288]! } - public var Month_GenFebruary: String { return self._s[4289]! } - public var ChatList_AutoarchiveSuggestion_OpenSettings: String { return self._s[4290]! } - public var Stickers_ClearRecent: String { return self._s[4291]! } - public var InviteLink_Create_UsersLimitNumberOfUsersUnlimited: String { return self._s[4292]! } - public var TwoStepAuth_EnterPasswordPassword: String { return self._s[4293]! } - public var Stats_Message_PublicShares: String { return self._s[4294]! } + public var GroupInfo_ScamGroupWarning: String { return self._s[4278]! } + public var Conversation_EditingMessagePanelMedia: String { return self._s[4279]! } + public var Appearance_PreviewIncomingText: String { return self._s[4280]! } + public var ChatSettings_WidgetSettings: String { return self._s[4281]! } + public var Notifications_ChannelNotificationsExceptionsHelp: String { return self._s[4282]! } + public var ChatList_UndoArchiveRevealedTitle: String { return self._s[4284]! } + public var Stats_GroupOverview: String { return self._s[4286]! } + public var ScheduledMessages_EditTime: String { return self._s[4289]! } + public var Month_GenFebruary: String { return self._s[4290]! } + public var ChatList_AutoarchiveSuggestion_OpenSettings: String { return self._s[4291]! } + public var Stickers_ClearRecent: String { return self._s[4292]! } + public var InviteLink_Create_UsersLimitNumberOfUsersUnlimited: String { return self._s[4293]! } + public var TwoStepAuth_EnterPasswordPassword: String { return self._s[4294]! } + public var Stats_Message_PublicShares: String { return self._s[4295]! } public func Checkout_PayPrice(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4295]!, self._r[4295]!, [_0]) + return formatWithArgumentRanges(self._s[4296]!, self._r[4296]!, [_0]) } - public var Login_TermsOfServiceSignupDecline: String { return self._s[4296]! } - public var CheckoutInfo_ErrorCityInvalid: String { return self._s[4297]! } - public var VoiceOver_Chat_PlayHint: String { return self._s[4298]! } - public var ChatAdmins_AllMembersAreAdminsOffHelp: String { return self._s[4299]! } - public var CheckoutInfo_ShippingInfoTitle: String { return self._s[4301]! } - public var CreatePoll_Create: String { return self._s[4302]! } - public var ChatList_Search_FilterLinks: String { return self._s[4303]! } - public var Your_cards_number_is_invalid: String { return self._s[4304]! } - public var Month_ShortApril: String { return self._s[4305]! } - public var SocksProxySetup_UseForCalls: String { return self._s[4306]! } - public var Conversation_EditingCaptionPanelTitle: String { return self._s[4307]! } - public var SocksProxySetup_Status: String { return self._s[4308]! } - public var VoiceChat_UnmuteForMe: String { return self._s[4309]! } - public var ChannelInfo_DeleteGroupConfirmation: String { return self._s[4310]! } - public var ChatListFolder_CategoryBots: String { return self._s[4311]! } - public var Passport_FieldIdentitySelfieHelp: String { return self._s[4313]! } - public var GroupInfo_BroadcastListNamePlaceholder: String { return self._s[4314]! } - public var Chat_PinnedListPreview_UnpinAllMessages: String { return self._s[4315]! } - public var Wallpaper_ResetWallpapersInfo: String { return self._s[4316]! } - public var Conversation_TitleUnmute: String { return self._s[4317]! } - public var Group_Setup_TypeHeader: String { return self._s[4318]! } + public var Login_TermsOfServiceSignupDecline: String { return self._s[4297]! } + public var CheckoutInfo_ErrorCityInvalid: String { return self._s[4298]! } + public var VoiceOver_Chat_PlayHint: String { return self._s[4299]! } + public var ChatAdmins_AllMembersAreAdminsOffHelp: String { return self._s[4300]! } + public var CheckoutInfo_ShippingInfoTitle: String { return self._s[4302]! } + public var CreatePoll_Create: String { return self._s[4303]! } + public var ChatList_Search_FilterLinks: String { return self._s[4304]! } + public var Your_cards_number_is_invalid: String { return self._s[4305]! } + public var Month_ShortApril: String { return self._s[4306]! } + public var SocksProxySetup_UseForCalls: String { return self._s[4307]! } + public var Conversation_EditingCaptionPanelTitle: String { return self._s[4308]! } + public var SocksProxySetup_Status: String { return self._s[4309]! } + public var VoiceChat_UnmuteForMe: String { return self._s[4310]! } + public var ChannelInfo_DeleteGroupConfirmation: String { return self._s[4311]! } + public var ChatListFolder_CategoryBots: String { return self._s[4312]! } + public var Passport_FieldIdentitySelfieHelp: String { return self._s[4314]! } + public var GroupInfo_BroadcastListNamePlaceholder: String { return self._s[4315]! } + public var Chat_PinnedListPreview_UnpinAllMessages: String { return self._s[4316]! } + public var Wallpaper_ResetWallpapersInfo: String { return self._s[4317]! } + public var Conversation_TitleUnmute: String { return self._s[4318]! } + public var Group_Setup_TypeHeader: String { return self._s[4319]! } public func Conversation_ForwardTooltip_ManyChats_One(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4319]!, self._r[4319]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4320]!, self._r[4320]!, [_0, _1]) } - public var Stats_ViewsPerPost: String { return self._s[4320]! } - public var CheckoutInfo_ShippingInfoCountry: String { return self._s[4321]! } - public var Passport_Identity_TranslationHelp: String { return self._s[4322]! } + public var Stats_ViewsPerPost: String { return self._s[4321]! } + public var CheckoutInfo_ShippingInfoCountry: String { return self._s[4322]! } + public var Passport_Identity_TranslationHelp: String { return self._s[4323]! } public func PUSH_CHANNEL_MESSAGE_FWD(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4323]!, self._r[4323]!, [_1]) + return formatWithArgumentRanges(self._s[4324]!, self._r[4324]!, [_1]) } - public var GroupInfo_Administrators_Title: String { return self._s[4324]! } + public var GroupInfo_Administrators_Title: String { return self._s[4325]! } public func Channel_AdminLog_MessageRankName(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4325]!, self._r[4325]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4326]!, self._r[4326]!, [_1, _2]) } public func PUSH_CHAT_MESSAGE_POLL(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4326]!, self._r[4326]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4327]!, self._r[4327]!, [_1, _2, _3]) } - public var CheckoutInfo_ShippingInfoState: String { return self._s[4327]! } - public var Passport_Language_my: String { return self._s[4329]! } - public var PrivacyLastSeenSettings_AlwaysShareWith_Title: String { return self._s[4330]! } - public var Map_PlacesNearby: String { return self._s[4331]! } - public var Channel_About_Help: String { return self._s[4332]! } - public var LogoutOptions_AddAccountTitle: String { return self._s[4333]! } - public var ChatSettings_AutomaticAudioDownload: String { return self._s[4334]! } - public var Channel_Username_Title: String { return self._s[4335]! } - public var Activity_RecordingVideoMessage: String { return self._s[4336]! } + public var CheckoutInfo_ShippingInfoState: String { return self._s[4328]! } + public var Passport_Language_my: String { return self._s[4330]! } + public var PrivacyLastSeenSettings_AlwaysShareWith_Title: String { return self._s[4331]! } + public var Map_PlacesNearby: String { return self._s[4332]! } + public var Channel_About_Help: String { return self._s[4333]! } + public var LogoutOptions_AddAccountTitle: String { return self._s[4334]! } + public var ChatSettings_AutomaticAudioDownload: String { return self._s[4335]! } + public var Channel_Username_Title: String { return self._s[4336]! } + public var Activity_RecordingVideoMessage: String { return self._s[4337]! } public func StickerPackActionInfo_RemovedText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4337]!, self._r[4337]!, [_0]) + return formatWithArgumentRanges(self._s[4338]!, self._r[4338]!, [_0]) } - public var CheckoutInfo_ShippingInfoCity: String { return self._s[4338]! } - public var Passport_DiscardMessageDescription: String { return self._s[4339]! } - public var Conversation_LinkDialogOpen: String { return self._s[4340]! } - public var ChatList_Context_HideArchive: String { return self._s[4341]! } + public var CheckoutInfo_ShippingInfoCity: String { return self._s[4339]! } + public var Passport_DiscardMessageDescription: String { return self._s[4340]! } + public var Conversation_LinkDialogOpen: String { return self._s[4341]! } + public var ChatList_Context_HideArchive: String { return self._s[4342]! } public func Message_AuthorPinnedGame(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4342]!, self._r[4342]!, [_0]) + return formatWithArgumentRanges(self._s[4343]!, self._r[4343]!, [_0]) } - public var Privacy_GroupsAndChannels_CustomShareHelp: String { return self._s[4343]! } - public var Conversation_Admin: String { return self._s[4344]! } - public var DialogList_TabTitle: String { return self._s[4345]! } + public var Privacy_GroupsAndChannels_CustomShareHelp: String { return self._s[4344]! } + public var Conversation_Admin: String { return self._s[4345]! } + public var DialogList_TabTitle: String { return self._s[4346]! } public func PUSH_CHAT_ALBUM(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4346]!, self._r[4346]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4347]!, self._r[4347]!, [_1, _2]) } - public var Notifications_PermissionsUnreachableText: String { return self._s[4347]! } - public var Passport_Identity_GenderMale: String { return self._s[4349]! } - public var SettingsSearch_Synonyms_Privacy_BlockedUsers: String { return self._s[4351]! } - public var PhoneNumberHelp_Alert: String { return self._s[4352]! } - public var EnterPasscode_EnterNewPasscodeChange: String { return self._s[4353]! } - public var Notifications_InAppNotifications: String { return self._s[4354]! } + public var Notifications_PermissionsUnreachableText: String { return self._s[4348]! } + public var Passport_Identity_GenderMale: String { return self._s[4350]! } + public var SettingsSearch_Synonyms_Privacy_BlockedUsers: String { return self._s[4352]! } + public var PhoneNumberHelp_Alert: String { return self._s[4353]! } + public var EnterPasscode_EnterNewPasscodeChange: String { return self._s[4354]! } + public var Notifications_InAppNotifications: String { return self._s[4355]! } public func Update_AppVersion(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4355]!, self._r[4355]!, [_0]) + return formatWithArgumentRanges(self._s[4356]!, self._r[4356]!, [_0]) } - public var Notification_VideoCallOutgoing: String { return self._s[4356]! } - public var Login_InvalidCodeError: String { return self._s[4357]! } - public var Conversation_PrivateChannelTimeLimitedAlertJoin: String { return self._s[4358]! } + public var Notification_VideoCallOutgoing: String { return self._s[4357]! } + public var Login_InvalidCodeError: String { return self._s[4358]! } + public var Conversation_PrivateChannelTimeLimitedAlertJoin: String { return self._s[4359]! } public func LastSeen_TodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4360]!, self._r[4360]!, [_0]) + return formatWithArgumentRanges(self._s[4361]!, self._r[4361]!, [_0]) } - public var Conversation_InputTextCaptionPlaceholder: String { return self._s[4361]! } - public var ReportPeer_Report: String { return self._s[4362]! } - public var Camera_FlashOff: String { return self._s[4365]! } - public var Conversation_InputTextBroadcastPlaceholder: String { return self._s[4368]! } - public var PrivacyPolicy_DeclineTitle: String { return self._s[4371]! } - public var SettingsSearch_Synonyms_Privacy_PasscodeAndTouchId: String { return self._s[4372]! } - public var Passport_FieldEmail: String { return self._s[4373]! } + public var Conversation_InputTextCaptionPlaceholder: String { return self._s[4362]! } + public var ReportPeer_Report: String { return self._s[4363]! } + public var Camera_FlashOff: String { return self._s[4366]! } + public var Conversation_InputTextBroadcastPlaceholder: String { return self._s[4369]! } + public var PrivacyPolicy_DeclineTitle: String { return self._s[4372]! } + public var SettingsSearch_Synonyms_Privacy_PasscodeAndTouchId: String { return self._s[4373]! } + public var Passport_FieldEmail: String { return self._s[4374]! } public func Channel_AdminLog_MessageKickedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4374]!, self._r[4374]!, [_1]) + return formatWithArgumentRanges(self._s[4375]!, self._r[4375]!, [_1]) } - public var Notifications_ExceptionsResetToDefaults: String { return self._s[4375]! } - public var PeerInfo_PaneVoiceAndVideo: String { return self._s[4376]! } - public var Group_OwnershipTransfer_Title: String { return self._s[4377]! } - public var Conversation_DefaultRestrictedInline: String { return self._s[4378]! } - public var Login_PhoneNumberHelp: String { return self._s[4380]! } - public var Channel_AdminLogFilter_EventsNewMembers: String { return self._s[4381]! } - public var Conversation_PinnedQuiz: String { return self._s[4382]! } - public var CreateGroup_SoftUserLimitAlert: String { return self._s[4383]! } - public var Login_PhoneNumberAlreadyAuthorizedSwitch: String { return self._s[4384]! } - public var Group_MessagePhotoUpdated: String { return self._s[4385]! } - public var LoginPassword_PasswordPlaceholder: String { return self._s[4386]! } - public var BroadcastGroups_ConfirmationAlert_Text: String { return self._s[4387]! } - public var Passport_Identity_Translations: String { return self._s[4389]! } - public var ChatAdmins_AllMembersAreAdmins: String { return self._s[4390]! } - public var ChannelInfo_DeleteChannel: String { return self._s[4392]! } - public var PasscodeSettings_HelpBottom: String { return self._s[4393]! } - public var Channel_Members_AddMembers: String { return self._s[4394]! } - public var AutoDownloadSettings_LastDelimeter: String { return self._s[4395]! } - public var Notification_Exceptions_DeleteAllConfirmation: String { return self._s[4397]! } - public var Conversation_HoldForAudio: String { return self._s[4398]! } - public var Media_LimitedAccessChangeSettings: String { return self._s[4400]! } - public var Watch_LastSeen_Lately: String { return self._s[4401]! } - public var ChatList_Context_MarkAsRead: String { return self._s[4402]! } - public var Conversation_PinnedMessage: String { return self._s[4403]! } - public var SettingsSearch_Synonyms_Appearance_ColorTheme: String { return self._s[4404]! } - public var Passport_UpdateRequiredError: String { return self._s[4406]! } - public var PrivacySettings_Passcode: String { return self._s[4407]! } + public var Notifications_ExceptionsResetToDefaults: String { return self._s[4376]! } + public var PeerInfo_PaneVoiceAndVideo: String { return self._s[4377]! } + public var Group_OwnershipTransfer_Title: String { return self._s[4378]! } + public var Conversation_DefaultRestrictedInline: String { return self._s[4379]! } + public var Login_PhoneNumberHelp: String { return self._s[4381]! } + public var Channel_AdminLogFilter_EventsNewMembers: String { return self._s[4382]! } + public var Conversation_PinnedQuiz: String { return self._s[4383]! } + public var CreateGroup_SoftUserLimitAlert: String { return self._s[4384]! } + public var Login_PhoneNumberAlreadyAuthorizedSwitch: String { return self._s[4385]! } + public var Group_MessagePhotoUpdated: String { return self._s[4386]! } + public var LoginPassword_PasswordPlaceholder: String { return self._s[4387]! } + public var BroadcastGroups_ConfirmationAlert_Text: String { return self._s[4388]! } + public var Passport_Identity_Translations: String { return self._s[4390]! } + public var ChatAdmins_AllMembersAreAdmins: String { return self._s[4391]! } + public var ChannelInfo_DeleteChannel: String { return self._s[4393]! } + public var PasscodeSettings_HelpBottom: String { return self._s[4394]! } + public var Channel_Members_AddMembers: String { return self._s[4395]! } + public var AutoDownloadSettings_LastDelimeter: String { return self._s[4396]! } + public var Notification_Exceptions_DeleteAllConfirmation: String { return self._s[4398]! } + public var Conversation_HoldForAudio: String { return self._s[4399]! } + public var Media_LimitedAccessChangeSettings: String { return self._s[4401]! } + public var Watch_LastSeen_Lately: String { return self._s[4402]! } + public var ChatList_Context_MarkAsRead: String { return self._s[4403]! } + public var Conversation_PinnedMessage: String { return self._s[4404]! } + public var SettingsSearch_Synonyms_Appearance_ColorTheme: String { return self._s[4405]! } + public var Passport_UpdateRequiredError: String { return self._s[4407]! } + public var PrivacySettings_Passcode: String { return self._s[4408]! } public func Call_EmojiDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4408]!, self._r[4408]!, [_0]) + return formatWithArgumentRanges(self._s[4409]!, self._r[4409]!, [_0]) } - public var AutoNightTheme_NotAvailable: String { return self._s[4409]! } - public var Conversation_PressVolumeButtonForSound: String { return self._s[4410]! } - public var VoiceOver_Common_On: String { return self._s[4411]! } - public var LoginPassword_InvalidPasswordError: String { return self._s[4412]! } - public var ChatListFolder_IncludedSectionHeader: String { return self._s[4413]! } - public var Channel_SignMessages_Help: String { return self._s[4414]! } - public var ChatList_DeleteForEveryoneConfirmationTitle: String { return self._s[4415]! } - public var Conversation_TitleNoComments: String { return self._s[4416]! } - public var MediaPicker_LivePhotoDescription: String { return self._s[4417]! } - public var GroupInfo_Permissions: String { return self._s[4418]! } - public var GroupPermission_NoSendLinks: String { return self._s[4421]! } - public var Passport_Identity_ResidenceCountry: String { return self._s[4422]! } - public var Appearance_ThemeCarouselNightBlue: String { return self._s[4424]! } - public var ChatList_ArchiveAction: String { return self._s[4425]! } + public var AutoNightTheme_NotAvailable: String { return self._s[4410]! } + public var Conversation_PressVolumeButtonForSound: String { return self._s[4411]! } + public var VoiceOver_Common_On: String { return self._s[4412]! } + public var LoginPassword_InvalidPasswordError: String { return self._s[4413]! } + public var ChatListFolder_IncludedSectionHeader: String { return self._s[4414]! } + public var Channel_SignMessages_Help: String { return self._s[4415]! } + public var ChatList_DeleteForEveryoneConfirmationTitle: String { return self._s[4416]! } + public var Conversation_TitleNoComments: String { return self._s[4417]! } + public var MediaPicker_LivePhotoDescription: String { return self._s[4418]! } + public var GroupInfo_Permissions: String { return self._s[4419]! } + public var GroupPermission_NoSendLinks: String { return self._s[4422]! } + public var Passport_Identity_ResidenceCountry: String { return self._s[4423]! } + public var Appearance_ThemeCarouselNightBlue: String { return self._s[4425]! } + public var ChatList_ArchiveAction: String { return self._s[4426]! } public func Channel_AdminLog_DisabledSlowmode(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4426]!, self._r[4426]!, [_0]) + return formatWithArgumentRanges(self._s[4427]!, self._r[4427]!, [_0]) } - public var GroupInfo_GroupHistory: String { return self._s[4427]! } + public var GroupInfo_GroupHistory: String { return self._s[4428]! } public func Channel_Management_ErrorNotMember(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4429]!, self._r[4429]!, [_0]) + return formatWithArgumentRanges(self._s[4430]!, self._r[4430]!, [_0]) } - public var Privacy_Forwards_LinkIfAllowed: String { return self._s[4431]! } - public var Channel_Info_Banned: String { return self._s[4432]! } - public var Paint_RecentStickers: String { return self._s[4433]! } - public var VoiceOver_MessageContextSend: String { return self._s[4434]! } - public var Group_ErrorNotMutualContact: String { return self._s[4435]! } - public var ReportPeer_ReasonOther: String { return self._s[4437]! } - public var Channel_BanUser_PermissionChangeGroupInfo: String { return self._s[4438]! } - public var SocksProxySetup_ShareQRCodeInfo: String { return self._s[4440]! } - public var KeyCommand_Find: String { return self._s[4441]! } + public var Privacy_Forwards_LinkIfAllowed: String { return self._s[4432]! } + public var Channel_Info_Banned: String { return self._s[4433]! } + public var Paint_RecentStickers: String { return self._s[4434]! } + public var VoiceOver_MessageContextSend: String { return self._s[4435]! } + public var Group_ErrorNotMutualContact: String { return self._s[4436]! } + public var ReportPeer_ReasonOther: String { return self._s[4438]! } + public var Channel_BanUser_PermissionChangeGroupInfo: String { return self._s[4439]! } + public var SocksProxySetup_ShareQRCodeInfo: String { return self._s[4441]! } + public var KeyCommand_Find: String { return self._s[4442]! } public func Channel_MessageTitleUpdated(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4442]!, self._r[4442]!, [_0]) + return formatWithArgumentRanges(self._s[4443]!, self._r[4443]!, [_0]) } - public var ChatList_Context_Unmute: String { return self._s[4443]! } - public var Chat_SlowmodeAttachmentLimitReached: String { return self._s[4444]! } - public var Stickers_GroupStickersHelp: String { return self._s[4445]! } - public var Checkout_Title: String { return self._s[4446]! } - public var Activity_RecordingAudio: String { return self._s[4447]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsPreview: String { return self._s[4448]! } - public var BlockedUsers_BlockTitle: String { return self._s[4449]! } - public var DialogList_SavedMessagesHelp: String { return self._s[4451]! } - public var Calls_All: String { return self._s[4452]! } - public var Settings_FAQ_Button: String { return self._s[4454]! } - public var Conversation_Dice_u1F3B0: String { return self._s[4456]! } + public var ChatList_Context_Unmute: String { return self._s[4444]! } + public var Chat_SlowmodeAttachmentLimitReached: String { return self._s[4445]! } + public var Stickers_GroupStickersHelp: String { return self._s[4446]! } + public var Checkout_Title: String { return self._s[4447]! } + public var Activity_RecordingAudio: String { return self._s[4448]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsPreview: String { return self._s[4449]! } + public var BlockedUsers_BlockTitle: String { return self._s[4450]! } + public var DialogList_SavedMessagesHelp: String { return self._s[4452]! } + public var Calls_All: String { return self._s[4453]! } + public var Settings_FAQ_Button: String { return self._s[4455]! } + public var Conversation_Dice_u1F3B0: String { return self._s[4457]! } public func Time_MonthOfYear_m5(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4457]!, self._r[4457]!, [_0]) + return formatWithArgumentRanges(self._s[4458]!, self._r[4458]!, [_0]) } - public var Conversation_ReportGroupLocation: String { return self._s[4458]! } - public var Passport_Scans_Upload: String { return self._s[4459]! } - public var Channel_EditAdmin_PermissionPinMessages: String { return self._s[4461]! } - public var ChatList_UnarchiveAction: String { return self._s[4462]! } - public var Stats_GroupTopInviter_History: String { return self._s[4463]! } - public var GroupInfo_Permissions_Title: String { return self._s[4464]! } - public var VoiceChat_CreateNewVoiceChatStart: String { return self._s[4465]! } - public var Passport_Language_el: String { return self._s[4466]! } - public var Channel_DiscussionMessageUnavailable: String { return self._s[4467]! } - public var GroupInfo_ActionPromote: String { return self._s[4468]! } - public var Group_OwnershipTransfer_ErrorLocatedGroupsTooMuch: String { return self._s[4469]! } - public var Media_LimitedAccessSelectMore: String { return self._s[4470]! } + public var Conversation_ReportGroupLocation: String { return self._s[4459]! } + public var Passport_Scans_Upload: String { return self._s[4460]! } + public var Channel_EditAdmin_PermissionPinMessages: String { return self._s[4462]! } + public var ChatList_UnarchiveAction: String { return self._s[4463]! } + public var Stats_GroupTopInviter_History: String { return self._s[4464]! } + public var GroupInfo_Permissions_Title: String { return self._s[4465]! } + public var VoiceChat_CreateNewVoiceChatStart: String { return self._s[4466]! } + public var Passport_Language_el: String { return self._s[4467]! } + public var Channel_DiscussionMessageUnavailable: String { return self._s[4468]! } + public var GroupInfo_ActionPromote: String { return self._s[4469]! } + public var Group_OwnershipTransfer_ErrorLocatedGroupsTooMuch: String { return self._s[4470]! } + public var Media_LimitedAccessSelectMore: String { return self._s[4471]! } public func TwoStepAuth_PendingEmailHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4471]!, self._r[4471]!, [_0]) + return formatWithArgumentRanges(self._s[4472]!, self._r[4472]!, [_0]) } - public var VoiceOver_Chat_Reply: String { return self._s[4472]! } - public var Month_GenMay: String { return self._s[4473]! } - public var DialogList_DeleteBotConversationConfirmation: String { return self._s[4474]! } - public var Chat_PsaTooltip_covid: String { return self._s[4475]! } - public var Watch_Suggestion_CantTalk: String { return self._s[4476]! } - public var Privacy_GroupsAndChannels_NeverAllow_Title: String { return self._s[4477]! } - public var AppUpgrade_Running: String { return self._s[4478]! } - public var PasscodeSettings_UnlockWithFaceId: String { return self._s[4481]! } - public var Notification_Exceptions_PreviewAlwaysOff: String { return self._s[4482]! } - public var SharedMedia_EmptyText: String { return self._s[4483]! } - public var Passport_Address_EditResidentialAddress: String { return self._s[4484]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsAlert: String { return self._s[4485]! } - public var Message_PinnedGame: String { return self._s[4486]! } - public var KeyCommand_SearchInChat: String { return self._s[4487]! } - public var Appearance_ThemeCarouselNewNight: String { return self._s[4488]! } - public var ChatList_Search_FilterMedia: String { return self._s[4489]! } - public var Message_PinnedAudioMessage: String { return self._s[4490]! } - public var ChannelInfo_ConfirmLeave: String { return self._s[4491]! } + public var VoiceOver_Chat_Reply: String { return self._s[4473]! } + public var Month_GenMay: String { return self._s[4474]! } + public var DialogList_DeleteBotConversationConfirmation: String { return self._s[4475]! } + public var Chat_PsaTooltip_covid: String { return self._s[4476]! } + public var Watch_Suggestion_CantTalk: String { return self._s[4477]! } + public var Privacy_GroupsAndChannels_NeverAllow_Title: String { return self._s[4478]! } + public var AppUpgrade_Running: String { return self._s[4479]! } + public var PasscodeSettings_UnlockWithFaceId: String { return self._s[4482]! } + public var Notification_Exceptions_PreviewAlwaysOff: String { return self._s[4483]! } + public var SharedMedia_EmptyText: String { return self._s[4484]! } + public var Passport_Address_EditResidentialAddress: String { return self._s[4485]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsAlert: String { return self._s[4486]! } + public var Message_PinnedGame: String { return self._s[4487]! } + public var KeyCommand_SearchInChat: String { return self._s[4488]! } + public var Appearance_ThemeCarouselNewNight: String { return self._s[4489]! } + public var ChatList_Search_FilterMedia: String { return self._s[4490]! } + public var Message_PinnedAudioMessage: String { return self._s[4491]! } + public var ChannelInfo_ConfirmLeave: String { return self._s[4492]! } public func Channel_AdminLog_MessagePromotedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4492]!, self._r[4492]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4493]!, self._r[4493]!, [_1, _2]) } - public var SocksProxySetup_ProxyStatusUnavailable: String { return self._s[4493]! } - public var InviteLink_Create: String { return self._s[4494]! } + public var SocksProxySetup_ProxyStatusUnavailable: String { return self._s[4494]! } + public var InviteLink_Create: String { return self._s[4495]! } public func Passport_Email_CodeHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4495]!, self._r[4495]!, [_0]) - } - public func Message_PinnedTextMessage(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[4496]!, self._r[4496]!, [_0]) } - public var Settings_AddAccount: String { return self._s[4497]! } - public var Channel_AdminLog_CanDeleteMessages: String { return self._s[4498]! } - public var Conversation_DiscardVoiceMessageTitle: String { return self._s[4499]! } - public var Channel_JoinChannel: String { return self._s[4500]! } - public var Watch_UserInfo_Unblock: String { return self._s[4501]! } - public var PhoneLabel_Title: String { return self._s[4502]! } - public var Group_Setup_HistoryHiddenHelp: String { return self._s[4504]! } - public var Privacy_ProfilePhoto_AlwaysShareWith_Title: String { return self._s[4505]! } + public func Message_PinnedTextMessage(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4497]!, self._r[4497]!, [_0]) + } + public var Settings_AddAccount: String { return self._s[4498]! } + public var Channel_AdminLog_CanDeleteMessages: String { return self._s[4499]! } + public var Conversation_DiscardVoiceMessageTitle: String { return self._s[4500]! } + public var Channel_JoinChannel: String { return self._s[4501]! } + public var Watch_UserInfo_Unblock: String { return self._s[4502]! } + public var PhoneLabel_Title: String { return self._s[4503]! } + public var Group_Setup_HistoryHiddenHelp: String { return self._s[4505]! } + public var Privacy_ProfilePhoto_AlwaysShareWith_Title: String { return self._s[4506]! } public func Login_PhoneGenericEmailBody(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String, _ _6: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4506]!, self._r[4506]!, [_1, _2, _3, _4, _5, _6]) + return formatWithArgumentRanges(self._s[4507]!, self._r[4507]!, [_1, _2, _3, _4, _5, _6]) } - public var Channel_AddBotErrorHaveRights: String { return self._s[4507]! } - public var ChatList_TabIconFoldersTooltipNonEmptyFolders: String { return self._s[4508]! } - public var DialogList_EncryptionProcessing: String { return self._s[4509]! } - public var ChatList_Search_FilterChats: String { return self._s[4510]! } - public var WatchRemote_NotificationText: String { return self._s[4511]! } - public var EditTheme_ChangeColors: String { return self._s[4512]! } - public var GroupRemoved_ViewUserInfo: String { return self._s[4513]! } - public var CallSettings_OnMobile: String { return self._s[4515]! } - public var Month_ShortFebruary: String { return self._s[4517]! } - public var VoiceOver_MessageContextReply: String { return self._s[4518]! } - public var Group_Location_ChangeLocation: String { return self._s[4520]! } + public var Channel_AddBotErrorHaveRights: String { return self._s[4508]! } + public var ChatList_TabIconFoldersTooltipNonEmptyFolders: String { return self._s[4509]! } + public var DialogList_EncryptionProcessing: String { return self._s[4510]! } + public var ChatList_Search_FilterChats: String { return self._s[4511]! } + public var WatchRemote_NotificationText: String { return self._s[4512]! } + public var EditTheme_ChangeColors: String { return self._s[4513]! } + public var GroupRemoved_ViewUserInfo: String { return self._s[4514]! } + public var CallSettings_OnMobile: String { return self._s[4516]! } + public var Month_ShortFebruary: String { return self._s[4518]! } + public var VoiceOver_MessageContextReply: String { return self._s[4519]! } + public var Group_Location_ChangeLocation: String { return self._s[4521]! } public func PUSH_VIDEO_CALL_REQUEST(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4521]!, self._r[4521]!, [_1]) + return formatWithArgumentRanges(self._s[4522]!, self._r[4522]!, [_1]) } - public var Passport_Address_TypeBankStatementUploadScan: String { return self._s[4522]! } - public var VoiceOver_Media_PlaybackStop: String { return self._s[4523]! } - public var SettingsSearch_Synonyms_Data_SaveIncomingPhotos: String { return self._s[4524]! } + public var Passport_Address_TypeBankStatementUploadScan: String { return self._s[4523]! } + public var VoiceOver_Media_PlaybackStop: String { return self._s[4524]! } + public var SettingsSearch_Synonyms_Data_SaveIncomingPhotos: String { return self._s[4525]! } public func Channel_AdminLog_MessageRestrictedUntil(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4526]!, self._r[4526]!, [_0]) + return formatWithArgumentRanges(self._s[4527]!, self._r[4527]!, [_0]) } - public var PhotoEditor_WarmthTool: String { return self._s[4527]! } - public var Login_InfoAvatarPhoto: String { return self._s[4528]! } - public var Notification_Exceptions_NewException_MessagePreviewHeader: String { return self._s[4529]! } - public var Permissions_CellularDataAllowInSettings_v0: String { return self._s[4530]! } - public var Map_PlacesInThisArea: String { return self._s[4531]! } - public var VoiceOver_Chat_ContactEmail: String { return self._s[4532]! } - public var Notifications_InAppNotificationsSounds: String { return self._s[4533]! } + public var PhotoEditor_WarmthTool: String { return self._s[4528]! } + public var Login_InfoAvatarPhoto: String { return self._s[4529]! } + public var Notification_Exceptions_NewException_MessagePreviewHeader: String { return self._s[4530]! } + public var Permissions_CellularDataAllowInSettings_v0: String { return self._s[4531]! } + public var Map_PlacesInThisArea: String { return self._s[4532]! } + public var VoiceOver_Chat_ContactEmail: String { return self._s[4533]! } + public var Notifications_InAppNotificationsSounds: String { return self._s[4534]! } public func PUSH_PINNED_NOTEXT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4534]!, self._r[4534]!, [_1]) + return formatWithArgumentRanges(self._s[4535]!, self._r[4535]!, [_1]) } - public var PeerInfo_ReportProfileVideo: String { return self._s[4535]! } - public var ShareMenu_Send: String { return self._s[4536]! } - public var Username_InvalidStartsWithNumber: String { return self._s[4537]! } + public var PeerInfo_ReportProfileVideo: String { return self._s[4536]! } + public var ShareMenu_Send: String { return self._s[4537]! } + public var Username_InvalidStartsWithNumber: String { return self._s[4538]! } public func Channel_AdminLog_StartedVoiceChat(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4538]!, self._r[4538]!, [_1]) + return formatWithArgumentRanges(self._s[4539]!, self._r[4539]!, [_1]) } - public var Appearance_AppIconClassicX: String { return self._s[4539]! } - public var Report_Report: String { return self._s[4540]! } + public var Appearance_AppIconClassicX: String { return self._s[4540]! } + public var Report_Report: String { return self._s[4541]! } public func PUSH_CHANNEL_MESSAGE_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4541]!, self._r[4541]!, [_1]) + return formatWithArgumentRanges(self._s[4542]!, self._r[4542]!, [_1]) } - public var Conversation_StopPoll: String { return self._s[4542]! } - public var InfoPlist_NSLocationAlwaysUsageDescription: String { return self._s[4544]! } - public var Passport_Identity_EditIdentityCard: String { return self._s[4545]! } - public var Appearance_ThemePreview_ChatList_3_Name: String { return self._s[4546]! } - public var Conversation_Timer_Title: String { return self._s[4547]! } - public var Common_Next: String { return self._s[4548]! } - public var Notification_Exceptions_NewException: String { return self._s[4549]! } + public var Conversation_StopPoll: String { return self._s[4543]! } + public var InfoPlist_NSLocationAlwaysUsageDescription: String { return self._s[4545]! } + public var Passport_Identity_EditIdentityCard: String { return self._s[4546]! } + public var Appearance_ThemePreview_ChatList_3_Name: String { return self._s[4547]! } + public var Conversation_Timer_Title: String { return self._s[4548]! } + public var Common_Next: String { return self._s[4549]! } + public var Notification_Exceptions_NewException: String { return self._s[4550]! } public func Generic_OpenHiddenLinkAlert(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4550]!, self._r[4550]!, [_0]) + return formatWithArgumentRanges(self._s[4551]!, self._r[4551]!, [_0]) } - public var AccessDenied_CallMicrophone: String { return self._s[4551]! } - public var VoiceChat_UnmutePeer: String { return self._s[4552]! } - public var ChatImportActivity_Retry: String { return self._s[4553]! } - public var SettingsSearch_Synonyms_Data_AutoDownloadUsingCellular: String { return self._s[4554]! } - public var ChangePhoneNumberCode_Help: String { return self._s[4555]! } - public var Passport_Identity_OneOfTypeIdentityCard: String { return self._s[4556]! } - public var Channel_AdminLogFilter_EventsLeaving: String { return self._s[4557]! } - public var BlockedUsers_LeavePrefix: String { return self._s[4558]! } + public var AccessDenied_CallMicrophone: String { return self._s[4552]! } + public var VoiceChat_UnmutePeer: String { return self._s[4553]! } + public var ChatImportActivity_Retry: String { return self._s[4554]! } + public var SettingsSearch_Synonyms_Data_AutoDownloadUsingCellular: String { return self._s[4555]! } + public var ChangePhoneNumberCode_Help: String { return self._s[4556]! } + public var Passport_Identity_OneOfTypeIdentityCard: String { return self._s[4557]! } + public var Channel_AdminLogFilter_EventsLeaving: String { return self._s[4558]! } + public var BlockedUsers_LeavePrefix: String { return self._s[4559]! } public func Passport_RequestHeader(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4559]!, self._r[4559]!, [_0]) + return formatWithArgumentRanges(self._s[4560]!, self._r[4560]!, [_0]) } - public var Group_About_Help: String { return self._s[4560]! } - public var TwoStepAuth_ChangePasswordDescription: String { return self._s[4561]! } - public var Tour_Title3: String { return self._s[4562]! } - public var Watch_Conversation_Unblock: String { return self._s[4563]! } - public var Watch_UserInfo_Block: String { return self._s[4564]! } - public var Notifications_ChannelNotificationsAlert: String { return self._s[4565]! } - public var TwoFactorSetup_Hint_Action: String { return self._s[4566]! } - public var IntentsSettings_SuggestedChatsInfo: String { return self._s[4567]! } - public var TextFormat_AddLinkTitle: String { return self._s[4568]! } - public var GroupInfo_InviteLink_RevokeAlert_Revoke: String { return self._s[4569]! } - public var TwoStepAuth_EnterPasswordTitle: String { return self._s[4570]! } - public var FastTwoStepSetup_PasswordSection: String { return self._s[4571]! } - public var Compose_ChannelMembers: String { return self._s[4572]! } - public var Conversation_ForwardTitle: String { return self._s[4573]! } - public var Conversation_PinnedPoll: String { return self._s[4575]! } + public var Group_About_Help: String { return self._s[4561]! } + public var TwoStepAuth_ChangePasswordDescription: String { return self._s[4562]! } + public var Tour_Title3: String { return self._s[4563]! } + public var Watch_Conversation_Unblock: String { return self._s[4564]! } + public var Watch_UserInfo_Block: String { return self._s[4565]! } + public var Notifications_ChannelNotificationsAlert: String { return self._s[4566]! } + public var TwoFactorSetup_Hint_Action: String { return self._s[4567]! } + public var IntentsSettings_SuggestedChatsInfo: String { return self._s[4568]! } + public var TextFormat_AddLinkTitle: String { return self._s[4569]! } + public var GroupInfo_InviteLink_RevokeAlert_Revoke: String { return self._s[4570]! } + public var TwoStepAuth_EnterPasswordTitle: String { return self._s[4571]! } + public var FastTwoStepSetup_PasswordSection: String { return self._s[4572]! } + public var Compose_ChannelMembers: String { return self._s[4573]! } + public var Conversation_ForwardTitle: String { return self._s[4574]! } + public var Conversation_PinnedPoll: String { return self._s[4576]! } public func VoiceOver_Chat_AnonymousPollFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4576]!, self._r[4576]!, [_0]) + return formatWithArgumentRanges(self._s[4577]!, self._r[4577]!, [_0]) } - public var SettingsSearch_Synonyms_EditProfile_AddAccount: String { return self._s[4577]! } - public var Conversation_ContextMenuStickerPackAdd: String { return self._s[4578]! } - public var Stats_Overview: String { return self._s[4579]! } - public var Map_HomeAndWorkTitle: String { return self._s[4580]! } + public var SettingsSearch_Synonyms_EditProfile_AddAccount: String { return self._s[4578]! } + public var Conversation_ContextMenuStickerPackAdd: String { return self._s[4579]! } + public var Stats_Overview: String { return self._s[4580]! } + public var Map_HomeAndWorkTitle: String { return self._s[4581]! } public func Time_PreciseDate_m4(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4581]!, self._r[4581]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4582]!, self._r[4582]!, [_1, _2, _3]) } - public var Passport_Address_CityPlaceholder: String { return self._s[4582]! } - public var InfoPlist_NSLocationAlwaysAndWhenInUseUsageDescription: String { return self._s[4583]! } - public var Privacy_PhoneNumber: String { return self._s[4584]! } - public var ChatList_Search_FilterFiles: String { return self._s[4585]! } - public var ChatList_DeleteForEveryoneConfirmationAction: String { return self._s[4586]! } - public var ChannelIntro_CreateChannel: String { return self._s[4587]! } - public var Conversation_InputTextAnonymousPlaceholder: String { return self._s[4588]! } + public var Passport_Address_CityPlaceholder: String { return self._s[4583]! } + public var InfoPlist_NSLocationAlwaysAndWhenInUseUsageDescription: String { return self._s[4584]! } + public var Privacy_PhoneNumber: String { return self._s[4585]! } + public var ChatList_Search_FilterFiles: String { return self._s[4586]! } + public var ChatList_DeleteForEveryoneConfirmationAction: String { return self._s[4587]! } + public var ChannelIntro_CreateChannel: String { return self._s[4588]! } + public var Conversation_InputTextAnonymousPlaceholder: String { return self._s[4589]! } public func Login_EmailCodeBody(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4589]!, self._r[4589]!, [_0]) + return formatWithArgumentRanges(self._s[4590]!, self._r[4590]!, [_0]) } - public var Weekday_ShortMonday: String { return self._s[4590]! } - public var Passport_Language_ar: String { return self._s[4592]! } - public var SettingsSearch_Synonyms_EditProfile_Title: String { return self._s[4593]! } - public var TwoFactorSetup_Done_Title: String { return self._s[4594]! } - public var Calls_RatingFeedback: String { return self._s[4595]! } - public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsPreview: String { return self._s[4596]! } - public var AutoDownloadSettings_ResetSettings: String { return self._s[4599]! } - public var Watch_Compose_Send: String { return self._s[4600]! } - public var PasscodeSettings_ChangePasscode: String { return self._s[4601]! } - public var WebSearch_RecentSectionClear: String { return self._s[4602]! } + public var Weekday_ShortMonday: String { return self._s[4591]! } + public var Passport_Language_ar: String { return self._s[4593]! } + public var SettingsSearch_Synonyms_EditProfile_Title: String { return self._s[4594]! } + public var TwoFactorSetup_Done_Title: String { return self._s[4595]! } + public var Calls_RatingFeedback: String { return self._s[4596]! } + public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsPreview: String { return self._s[4597]! } + public var AutoDownloadSettings_ResetSettings: String { return self._s[4600]! } + public var Watch_Compose_Send: String { return self._s[4601]! } + public var PasscodeSettings_ChangePasscode: String { return self._s[4602]! } + public var WebSearch_RecentSectionClear: String { return self._s[4603]! } public func Contacts_AccessDeniedHelpPortrait(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4603]!, self._r[4603]!, [_0]) + return formatWithArgumentRanges(self._s[4604]!, self._r[4604]!, [_0]) } - public var WallpaperSearch_ColorTeal: String { return self._s[4604]! } - public var Wallpaper_SetCustomBackgroundInfo: String { return self._s[4605]! } - public var Permissions_ContactsTitle_v0: String { return self._s[4606]! } - public var Checkout_PasswordEntry_Pay: String { return self._s[4608]! } - public var Settings_SavedMessages: String { return self._s[4609]! } - public var TwoStepAuth_ReEnterPasswordDescription: String { return self._s[4610]! } - public var Month_ShortMarch: String { return self._s[4611]! } - public var Message_Location: String { return self._s[4612]! } + public var WallpaperSearch_ColorTeal: String { return self._s[4605]! } + public var Wallpaper_SetCustomBackgroundInfo: String { return self._s[4606]! } + public var Permissions_ContactsTitle_v0: String { return self._s[4607]! } + public var Checkout_PasswordEntry_Pay: String { return self._s[4609]! } + public var Settings_SavedMessages: String { return self._s[4610]! } + public var TwoStepAuth_ReEnterPasswordDescription: String { return self._s[4611]! } + public var Month_ShortMarch: String { return self._s[4612]! } + public var Message_Location: String { return self._s[4613]! } public func PUSH_MESSAGE_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4613]!, self._r[4613]!, [_1]) + return formatWithArgumentRanges(self._s[4614]!, self._r[4614]!, [_1]) } public func Notification_CallTimeFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4614]!, self._r[4614]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4615]!, self._r[4615]!, [_1, _2]) } - public var VoiceOver_Chat_VoiceMessage: String { return self._s[4616]! } + public var VoiceOver_Chat_VoiceMessage: String { return self._s[4617]! } public func Channel_AdminLog_MessageChangedUnlinkedChannel(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4617]!, self._r[4617]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4618]!, self._r[4618]!, [_1, _2]) } - public var GroupPermission_NoSendMedia: String { return self._s[4618]! } - public var Conversation_ClousStorageInfo_Description2: String { return self._s[4619]! } - public var SharedMedia_CategoryDocs: String { return self._s[4620]! } - public var Appearance_RemoveThemeConfirmation: String { return self._s[4621]! } - public var Paint_Framed: String { return self._s[4622]! } - public var Channel_EditAdmin_PermissionAddAdmins: String { return self._s[4623]! } - public var Passport_Identity_DoesNotExpire: String { return self._s[4624]! } + public var GroupPermission_NoSendMedia: String { return self._s[4619]! } + public var Conversation_ClousStorageInfo_Description2: String { return self._s[4620]! } + public var SharedMedia_CategoryDocs: String { return self._s[4621]! } + public var Appearance_RemoveThemeConfirmation: String { return self._s[4622]! } + public var Paint_Framed: String { return self._s[4623]! } + public var Channel_EditAdmin_PermissionAddAdmins: String { return self._s[4624]! } + public var Passport_Identity_DoesNotExpire: String { return self._s[4625]! } public func ChatImport_SelectionConfirmationUserWithTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4625]!, self._r[4625]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4626]!, self._r[4626]!, [_1, _2]) } - public var Channel_SignMessages: String { return self._s[4626]! } - public var Contacts_AccessDeniedHelpON: String { return self._s[4627]! } - public var Conversation_ContextMenuStickerPackInfo: String { return self._s[4628]! } + public var Channel_SignMessages: String { return self._s[4627]! } + public var Contacts_AccessDeniedHelpON: String { return self._s[4628]! } + public var Conversation_ContextMenuStickerPackInfo: String { return self._s[4629]! } public func PUSH_CHAT_LEFT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4629]!, self._r[4629]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4630]!, self._r[4630]!, [_1, _2]) } - public var InviteLink_Create_TimeLimitNoLimit: String { return self._s[4630]! } - public var GroupInfo_UpgradeButton: String { return self._s[4631]! } - public var Channel_EditAdmin_PermissionInviteMembers: String { return self._s[4632]! } - public var AutoDownloadSettings_Files: String { return self._s[4633]! } + public var InviteLink_Create_TimeLimitNoLimit: String { return self._s[4631]! } + public var GroupInfo_UpgradeButton: String { return self._s[4632]! } + public var Channel_EditAdmin_PermissionInviteMembers: String { return self._s[4633]! } + public var AutoDownloadSettings_Files: String { return self._s[4634]! } public func Notification_ChangedGroupName(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4634]!, self._r[4634]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4635]!, self._r[4635]!, [_0, _1]) } - public var Login_SendCodeViaSms: String { return self._s[4636]! } - public var Update_UpdateApp: String { return self._s[4637]! } - public var Channel_Setup_TypePublic: String { return self._s[4638]! } - public var Watch_Compose_CreateMessage: String { return self._s[4639]! } + public var Login_SendCodeViaSms: String { return self._s[4637]! } + public var Update_UpdateApp: String { return self._s[4638]! } + public var Channel_Setup_TypePublic: String { return self._s[4639]! } + public var Watch_Compose_CreateMessage: String { return self._s[4640]! } public func PUSH_CHAT_MESSAGE_VIDEOS(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4640]!, self._r[4640]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4641]!, self._r[4641]!, [_1, _2, _3]) } - public var StickerPacksSettings_ManagingHelp: String { return self._s[4641]! } - public var VoiceOver_Chat_Video: String { return self._s[4642]! } - public var Forward_ChannelReadOnly: String { return self._s[4643]! } - public var StickerPack_HideStickers: String { return self._s[4644]! } - public var ChatListFolder_NameContacts: String { return self._s[4645]! } - public var Profile_BotInfo: String { return self._s[4646]! } - public var Document_TargetConfirmationFormat: String { return self._s[4647]! } - public var GroupInfo_InviteByLink: String { return self._s[4648]! } - public var Channel_AdminLog_BanSendStickersAndGifs: String { return self._s[4649]! } - public var Watch_Stickers_RecentPlaceholder: String { return self._s[4650]! } - public var Broadcast_AdminLog_EmptyText: String { return self._s[4651]! } - public var Passport_NotLoggedInMessage: String { return self._s[4652]! } - public var Conversation_StopQuizConfirmation: String { return self._s[4653]! } - public var Checkout_PaymentMethod: String { return self._s[4654]! } - public var ChatList_ArchivedChatsTitle: String { return self._s[4658]! } - public var TwoStepAuth_SetupPasswordConfirmFailed: String { return self._s[4659]! } - public var VoiceOver_Chat_RecordPreviewVoiceMessage: String { return self._s[4660]! } - public var PrivacyLastSeenSettings_GroupsAndChannelsHelp: String { return self._s[4661]! } - public var SettingsSearch_Synonyms_Privacy_Data_ContactsReset: String { return self._s[4662]! } - public var Camera_Title: String { return self._s[4663]! } - public var Map_Directions: String { return self._s[4664]! } - public var Stats_MessagePublicForwardsTitle: String { return self._s[4666]! } - public var Privacy_ProfilePhoto_WhoCanSeeMyPhoto: String { return self._s[4667]! } - public var Profile_EncryptionKey: String { return self._s[4668]! } + public var StickerPacksSettings_ManagingHelp: String { return self._s[4642]! } + public var VoiceOver_Chat_Video: String { return self._s[4643]! } + public var Forward_ChannelReadOnly: String { return self._s[4644]! } + public var StickerPack_HideStickers: String { return self._s[4645]! } + public var ChatListFolder_NameContacts: String { return self._s[4646]! } + public var Profile_BotInfo: String { return self._s[4647]! } + public var Document_TargetConfirmationFormat: String { return self._s[4648]! } + public var GroupInfo_InviteByLink: String { return self._s[4649]! } + public var Channel_AdminLog_BanSendStickersAndGifs: String { return self._s[4650]! } + public var Watch_Stickers_RecentPlaceholder: String { return self._s[4651]! } + public var Broadcast_AdminLog_EmptyText: String { return self._s[4652]! } + public var Passport_NotLoggedInMessage: String { return self._s[4653]! } + public var Conversation_StopQuizConfirmation: String { return self._s[4654]! } + public var Checkout_PaymentMethod: String { return self._s[4655]! } + public var ChatList_ArchivedChatsTitle: String { return self._s[4659]! } + public var TwoStepAuth_SetupPasswordConfirmFailed: String { return self._s[4660]! } + public var VoiceOver_Chat_RecordPreviewVoiceMessage: String { return self._s[4661]! } + public var PrivacyLastSeenSettings_GroupsAndChannelsHelp: String { return self._s[4662]! } + public var SettingsSearch_Synonyms_Privacy_Data_ContactsReset: String { return self._s[4663]! } + public var Conversation_GigagroupDescription: String { return self._s[4664]! } + public var Camera_Title: String { return self._s[4665]! } + public var Map_Directions: String { return self._s[4666]! } + public var Stats_MessagePublicForwardsTitle: String { return self._s[4668]! } + public var Privacy_ProfilePhoto_WhoCanSeeMyPhoto: String { return self._s[4669]! } + public var Profile_EncryptionKey: String { return self._s[4670]! } public func LOCAL_CHAT_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4669]!, self._r[4669]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[4671]!, self._r[4671]!, [_1, "\(_2)"]) } public func Compatibility_SecretMediaVersionTooLow(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4670]!, self._r[4670]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4672]!, self._r[4672]!, [_0, _1]) } - public var Passport_Identity_TypePassport: String { return self._s[4671]! } - public var CreatePoll_QuizOptionsHeader: String { return self._s[4673]! } - public var Common_No: String { return self._s[4674]! } - public var Conversation_SendMessage_ScheduleMessage: String { return self._s[4675]! } - public var SettingsSearch_Synonyms_Privacy_LastSeen: String { return self._s[4676]! } - public var Settings_AboutEmpty: String { return self._s[4677]! } - public var TwoStepAuth_FloodError: String { return self._s[4679]! } - public var SettingsSearch_Synonyms_Appearance_TextSize: String { return self._s[4680]! } + public var Passport_Identity_TypePassport: String { return self._s[4673]! } + public var CreatePoll_QuizOptionsHeader: String { return self._s[4675]! } + public var Common_No: String { return self._s[4676]! } + public var Conversation_SendMessage_ScheduleMessage: String { return self._s[4677]! } + public var SettingsSearch_Synonyms_Privacy_LastSeen: String { return self._s[4678]! } + public var Settings_AboutEmpty: String { return self._s[4679]! } + public var TwoStepAuth_FloodError: String { return self._s[4681]! } + public var SettingsSearch_Synonyms_Appearance_TextSize: String { return self._s[4682]! } public func Channel_AdminLog_MessageUnkickedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4682]!, self._r[4682]!, [_1]) + return formatWithArgumentRanges(self._s[4684]!, self._r[4684]!, [_1]) } - public var Conversation_Edit: String { return self._s[4685]! } - public var CheckoutInfo_SaveInfo: String { return self._s[4686]! } - public var VoiceOver_Chat_AnonymousPoll: String { return self._s[4687]! } - public var Call_CameraTooltip: String { return self._s[4689]! } - public var InstantPage_FeedbackButtonShort: String { return self._s[4690]! } - public var Contacts_InviteToTelegram: String { return self._s[4691]! } - public var Notifications_ResetAllNotifications: String { return self._s[4692]! } - public var Calls_NewCall: String { return self._s[4693]! } - public var VoiceOver_Chat_Music: String { return self._s[4696]! } - public var Channel_AdminLogFilter_EventsInviteLinks: String { return self._s[4697]! } - public var Channel_Members_AddAdminErrorNotAMember: String { return self._s[4698]! } - public var Channel_Edit_AboutItem: String { return self._s[4699]! } - public var Message_VideoExpired: String { return self._s[4700]! } - public var Passport_Address_TypeTemporaryRegistrationUploadScan: String { return self._s[4701]! } + public var Conversation_Edit: String { return self._s[4687]! } + public var CheckoutInfo_SaveInfo: String { return self._s[4688]! } + public var VoiceOver_Chat_AnonymousPoll: String { return self._s[4689]! } + public var Call_CameraTooltip: String { return self._s[4691]! } + public var InstantPage_FeedbackButtonShort: String { return self._s[4692]! } + public var Contacts_InviteToTelegram: String { return self._s[4693]! } + public var Notifications_ResetAllNotifications: String { return self._s[4694]! } + public var Calls_NewCall: String { return self._s[4695]! } + public var VoiceOver_Chat_Music: String { return self._s[4698]! } + public var Channel_AdminLogFilter_EventsInviteLinks: String { return self._s[4699]! } + public var Channel_Members_AddAdminErrorNotAMember: String { return self._s[4700]! } + public var Channel_Edit_AboutItem: String { return self._s[4701]! } + public var Message_VideoExpired: String { return self._s[4702]! } + public var Passport_Address_TypeTemporaryRegistrationUploadScan: String { return self._s[4703]! } public func PUSH_CHAT_RETURNED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4702]!, self._r[4702]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4704]!, self._r[4704]!, [_1, _2]) } - public var NotificationsSound_Input: String { return self._s[4704]! } - public var Notifications_ClassicTones: String { return self._s[4705]! } - public var Conversation_StatusTyping: String { return self._s[4706]! } - public var Checkout_ErrorProviderAccountInvalid: String { return self._s[4707]! } - public var ChatSettings_AutoDownloadSettings_Delimeter: String { return self._s[4708]! } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChats: String { return self._s[4709]! } - public var Conversation_MessageLeaveComment: String { return self._s[4710]! } - public var UserInfo_TapToCall: String { return self._s[4711]! } - public var EnterPasscode_EnterNewPasscodeNew: String { return self._s[4712]! } - public var Conversation_ClearAll: String { return self._s[4714]! } - public var UserInfo_NotificationsDefault: String { return self._s[4715]! } - public var Location_ProximityGroupTip: String { return self._s[4716]! } - public var Map_ChooseAPlace: String { return self._s[4717]! } - public var GroupInfo_AddParticipantTitle: String { return self._s[4719]! } - public var ChatList_PeerTypeNonContact: String { return self._s[4720]! } - public var Conversation_SlideToCancel: String { return self._s[4721]! } - public var Month_ShortJuly: String { return self._s[4722]! } - public var SocksProxySetup_ProxyType: String { return self._s[4723]! } + public var NotificationsSound_Input: String { return self._s[4706]! } + public var Notifications_ClassicTones: String { return self._s[4707]! } + public var Conversation_StatusTyping: String { return self._s[4708]! } + public var Checkout_ErrorProviderAccountInvalid: String { return self._s[4709]! } + public var ChatSettings_AutoDownloadSettings_Delimeter: String { return self._s[4710]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChats: String { return self._s[4711]! } + public var Conversation_MessageLeaveComment: String { return self._s[4712]! } + public var UserInfo_TapToCall: String { return self._s[4713]! } + public var EnterPasscode_EnterNewPasscodeNew: String { return self._s[4714]! } + public var Conversation_ClearAll: String { return self._s[4716]! } + public var UserInfo_NotificationsDefault: String { return self._s[4717]! } + public var Location_ProximityGroupTip: String { return self._s[4718]! } + public var Map_ChooseAPlace: String { return self._s[4719]! } + public var GroupInfo_AddParticipantTitle: String { return self._s[4721]! } + public var ChatList_PeerTypeNonContact: String { return self._s[4722]! } + public var Conversation_SlideToCancel: String { return self._s[4723]! } + public var Month_ShortJuly: String { return self._s[4724]! } + public var SocksProxySetup_ProxyType: String { return self._s[4725]! } public func ChatList_DeleteChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4724]!, self._r[4724]!, [_0]) + return formatWithArgumentRanges(self._s[4726]!, self._r[4726]!, [_0]) } - public var ChatList_EditFolders: String { return self._s[4725]! } - public var TwoStepAuth_SetPasswordHelp: String { return self._s[4726]! } - public var ScheduledMessages_RemindersTitle: String { return self._s[4728]! } + public var ChatList_EditFolders: String { return self._s[4727]! } + public var TwoStepAuth_SetPasswordHelp: String { return self._s[4728]! } + public var ScheduledMessages_RemindersTitle: String { return self._s[4730]! } public func GroupPermission_ApplyAlertText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4729]!, self._r[4729]!, [_0]) + return formatWithArgumentRanges(self._s[4731]!, self._r[4731]!, [_0]) } - public var Permissions_PeopleNearbyTitle_v0: String { return self._s[4730]! } - public var Your_cards_expiration_year_is_invalid: String { return self._s[4731]! } - public var UserInfo_ShareMyContactInfo: String { return self._s[4733]! } - public var Passport_DeleteAddress: String { return self._s[4735]! } - public var Passport_DeletePassportConfirmation: String { return self._s[4736]! } - public var Passport_Identity_ReverseSide: String { return self._s[4737]! } - public var CheckoutInfo_ErrorEmailInvalid: String { return self._s[4738]! } - public var Login_InfoLastNamePlaceholder: String { return self._s[4739]! } - public var InviteLink_CreatedBy: String { return self._s[4740]! } - public var Passport_FieldAddress: String { return self._s[4741]! } - public var SettingsSearch_Synonyms_Calls_Title: String { return self._s[4742]! } - public var Passport_Identity_ResidenceCountryPlaceholder: String { return self._s[4745]! } - public var VoiceChat_Panel_TapToJoin: String { return self._s[4746]! } - public var Map_Home: String { return self._s[4747]! } - public var PollResults_Title: String { return self._s[4749]! } + public var Permissions_PeopleNearbyTitle_v0: String { return self._s[4732]! } + public var Your_cards_expiration_year_is_invalid: String { return self._s[4733]! } + public var UserInfo_ShareMyContactInfo: String { return self._s[4735]! } + public var Passport_DeleteAddress: String { return self._s[4737]! } + public var Passport_DeletePassportConfirmation: String { return self._s[4738]! } + public var Passport_Identity_ReverseSide: String { return self._s[4739]! } + public var CheckoutInfo_ErrorEmailInvalid: String { return self._s[4740]! } + public var Login_InfoLastNamePlaceholder: String { return self._s[4741]! } + public var InviteLink_CreatedBy: String { return self._s[4742]! } + public var Passport_FieldAddress: String { return self._s[4743]! } + public var SettingsSearch_Synonyms_Calls_Title: String { return self._s[4744]! } + public var Passport_Identity_ResidenceCountryPlaceholder: String { return self._s[4747]! } + public var VoiceChat_Panel_TapToJoin: String { return self._s[4748]! } + public var Map_Home: String { return self._s[4749]! } + public var PollResults_Title: String { return self._s[4751]! } public func InviteLink_OtherPermanentLinkInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4750]!, self._r[4750]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4752]!, self._r[4752]!, [_1, _2]) } - public var ArchivedChats_IntroText2: String { return self._s[4752]! } - public var PasscodeSettings_SimplePasscodeHelp: String { return self._s[4753]! } - public var VoiceOver_Chat_ContactPhoneNumber: String { return self._s[4754]! } - public var VoiceChat_Muted: String { return self._s[4756]! } - public var CallFeedback_ReasonSilentRemote: String { return self._s[4757]! } - public var Passport_Identity_AddPersonalDetails: String { return self._s[4758]! } - public var Group_Info_AdminLog: String { return self._s[4760]! } - public var ChatSettings_AutoPlayTitle: String { return self._s[4761]! } - public var Appearance_Animations: String { return self._s[4762]! } - public var Appearance_TextSizeSetting: String { return self._s[4763]! } - public func MuteExpires_Hours(_ value: Int32) -> String { + public var ArchivedChats_IntroText2: String { return self._s[4754]! } + public var PasscodeSettings_SimplePasscodeHelp: String { return self._s[4755]! } + public var VoiceOver_Chat_ContactPhoneNumber: String { return self._s[4756]! } + public var VoiceChat_Muted: String { return self._s[4758]! } + public var CallFeedback_ReasonSilentRemote: String { return self._s[4759]! } + public var Passport_Identity_AddPersonalDetails: String { return self._s[4760]! } + public var Group_Info_AdminLog: String { return self._s[4762]! } + public var ChatSettings_AutoPlayTitle: String { return self._s[4763]! } + public var Appearance_Animations: String { return self._s[4764]! } + public var Appearance_TextSizeSetting: String { return self._s[4765]! } + public func DialogList_LiveLocationChatsCount(_ 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 Invitation_Members(_ value: Int32) -> String { + public func MessageTimer_ShortSeconds(_ 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 Stats_GroupTopAdminBans(_ value: Int32) -> String { + public func LiveLocationUpdated_MinutesAgo(_ 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 ChatList_MessageFiles(_ value: Int32) -> String { + public func MessageTimer_Days(_ 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 MessageTimer_ShortSeconds(_ value: Int32) -> String { + 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[4 * 6 + Int(form.rawValue)]!, stringValue) } - public func ChatList_MessageVideos(_ 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[5 * 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[6 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func Stats_GroupShowMoreTopInviters(_ 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 StickerPack_AddMaskCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[8 * 6 + Int(form.rawValue)]!, stringValue) - } - public func StickerPack_RemoveMaskCount(_ 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 ChatList_DeletedChats(_ 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 VoiceOver_Chat_ContactPhoneNumberCount(_ 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 Call_Minutes(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[12 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Passport_Scans(_ 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 Notifications_ExceptionMuteExpires_Minutes(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[14 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_ShortWeeks(_ 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 Notification_GameScoreSelfExtended(_ 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 Chat_DeleteMessagesConfirmation(_ 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 SharedMedia_Generic(_ 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 OldChannels_InactiveWeek(_ 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 PUSH_CHAT_MESSAGE_PHOTOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[20 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func Call_Hours(_ 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 VoiceOver_Chat_PollOptionCount(_ 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 LiveLocationUpdated_MinutesAgo(_ 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 InviteLink_InviteLinks(_ 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 SharedMedia_DeleteItemsConfirmation(_ 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 ForwardedPolls(_ 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 Stats_GroupTopInviterInvites(_ 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 GroupInfo_ParticipantCount(_ 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 Conversation_ContextMenuSelectAll(_ 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_Years(_ 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 Chat_TitlePinnedMessages(_ 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 Conversation_TitleReplies(_ 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 PUSH_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[34 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func InviteText_ContactsCountText(_ 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 ChatList_Search_Messages(_ 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 PUSH_CHANNEL_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[37 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func PUSH_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[38 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func InviteLink_PeopleRemaining(_ 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 LastSeen_MinutesAgo(_ 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 VoiceOver_Chat_PollVotes(_ 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 LiveLocation_MenuChatsCount(_ 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 Notifications_ExceptionMuteExpires_Hours(_ 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 MuteFor_Days(_ 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 ForwardedVideos(_ 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 Conversation_StatusMembers(_ 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 PrivacyLastSeenSettings_AddUsers(_ 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 VoiceChat_Status_Members(_ 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 Stats_GroupTopAdminKicks(_ 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 Conversation_ContextViewReplies(_ 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 ChatList_MessagePhotos(_ 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 Notification_GameScoreExtended(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[52 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHANNEL_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[53 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Call_Seconds(_ 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 QuickSend_Photos(_ 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 Map_ETAHours(_ 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 MessageTimer_ShortMinutes(_ 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 Notification_GameScoreSelfSimple(_ 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 Map_ETAMinutes(_ 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 MuteExpires_Days(_ 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 MuteExpires_Minutes(_ 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 Stats_GroupShowMoreTopAdmins(_ 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 ServiceMessage_GameScoreExtended(_ 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 PUSH_MESSAGE_DOCS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[64 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Contacts_ImportersCount(_ 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 InviteLink_PeopleJoinedShort(_ 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 Stats_GroupTopPosterChars(_ 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 Watch_UserInfo_Mute(_ 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_AutoremoveRemainingDays(_ 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 MessagePoll_QuizCount(_ 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 Conversation_StatusOnline(_ 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 ForwardedVideoMessages(_ 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 Notification_GameScoreSimple(_ 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 SharedMedia_Link(_ 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 PUSH_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[75 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func ForwardedMessages(_ 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 ChatListFilter_ShowMoreChats(_ 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 Media_ShareItem(_ 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 ForwardedLocations(_ 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 ForwardedStickers(_ 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 Conversation_MessageViewComments(_ 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_HoursAgo(_ 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 GroupInfo_ShowMoreMembers(_ 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 SharedMedia_Video(_ 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 Stats_GroupTopPosterMessages(_ 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_CHANNEL_MESSAGE_DOCS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[87 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func PasscodeSettings_FailedAttempts(_ 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 Call_ShortMinutes(_ 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 Media_SharePhoto(_ 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 MessageTimer_ShortDays(_ 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 ForwardedFiles(_ 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 Stats_GroupShowMoreTopPosters(_ 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) + return String(format: self._ps[6 * 6 + Int(form.rawValue)]!, _2, _1, _3) } public func MessageTimer_Months(_ 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) + return String(format: self._ps[7 * 6 + Int(form.rawValue)]!, stringValue) } - public func Notifications_Exceptions(_ 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[95 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[8 * 6 + Int(form.rawValue)]!, stringValue) } - public func OldChannels_InactiveMonth(_ value: Int32) -> String { + public func MuteExpires_Hours(_ 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 Forward_ConfirmMultipleFiles(_ 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 Theme_UsersCount(_ 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 StickerPack_RemoveStickerCount(_ 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) + return String(format: self._ps[9 * 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[100 * 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[101 * 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[102 * 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[103 * 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[104 * 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[105 * 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[106 * 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[107 * 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[108 * 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[109 * 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[110 * 6 + Int(form.rawValue)]!, _0, _1) + return String(format: self._ps[10 * 6 + Int(form.rawValue)]!, stringValue) } public func StickerPack_AddStickerCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[111 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[11 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessagePoll_VotedCount(_ 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[112 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[12 * 6 + Int(form.rawValue)]!, stringValue) } - public func InviteLink_PeopleJoined(_ 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[113 * 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[114 * 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[115 * 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[116 * 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[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 PUSH_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[119 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func MessageTimer_Minutes(_ 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 InviteLink_PeopleCanJoin(_ 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 Watch_LastSeen_MinutesAgo(_ 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_Days(_ 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 ForwardedPhotos(_ 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 ForwardedAudios(_ 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 PUSH_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[126 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Conversation_StatusSubscribers(_ 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 SharedMedia_Photo(_ 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 VoiceChat_Panel_Members(_ 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 ChatList_MessageMusic(_ 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 UserCount(_ 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 InstantPage_Views(_ 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 VoiceOver_Chat_MessagesSelected(_ 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 Conversation_LiveLocationMembersCount(_ 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 PUSH_CHANNEL_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[135 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func MessageTimer_Seconds(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[136 * 6 + Int(form.rawValue)]!, stringValue) - } - public func AttachmentMenu_SendItem(_ 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 MessageTimer_Hours(_ 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 PUSH_CHANNEL_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[139 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func StickerPack_StickerCount(_ 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 MessageTimer_ShortHours(_ 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 MuteFor_Hours(_ 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 VoiceOver_Chat_ContactEmailCount(_ 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 AttachmentMenu_SendVideo(_ 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 ChatList_DeleteConfirmation(_ 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 ServiceMessage_GameScoreSelfExtended(_ 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 AttachmentMenu_SendGif(_ 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 AttachmentMenu_SendPhoto(_ 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 PollResults_ShowMore(_ 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 Watch_LastSeen_HoursAgo(_ 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 PUSH_CHANNEL_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[151 * 6 + Int(form.rawValue)]!, _1, _2) - } - 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[152 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func OldChannels_Leave(_ 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[13 * 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[154 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[14 * 6 + Int(form.rawValue)]!, stringValue) } - public func PUSH_CHAT_MESSAGE_DOCS_FIX1(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + public func StickerPack_RemoveStickerCount(_ 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 PUSH_CHAT_MESSAGE_ROUNDS(_ 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) + return String(format: self._ps[16 * 6 + Int(form.rawValue)]!, _2, _1, _3) } - public func Stats_GroupTopAdminDeletions(_ value: Int32) -> String { + public func ForwardedVideoMessages(_ 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[17 * 6 + Int(form.rawValue)]!, stringValue) } - public func Notifications_ExceptionMuteExpires_Days(_ value: Int32) -> String { + public func Theme_UsersCount(_ 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[18 * 6 + Int(form.rawValue)]!, stringValue) } - public func Contacts_InviteContacts(_ value: Int32) -> String { + public func ForwardedLocations(_ 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[19 * 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[159 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[20 * 6 + Int(form.rawValue)]!, stringValue) } - public func PUSH_CHAT_MESSAGES(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + public func ForwardedVideos(_ 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 Conversation_LiveLocationMembersCount(_ 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 Watch_LastSeen_HoursAgo(_ 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 Conversation_AutoremoveRemainingDays(_ 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 Conversation_SelectedMessages(_ 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 PUSH_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[160 * 6 + Int(form.rawValue)]!, _2, _1, _3) + return String(format: self._ps[26 * 6 + Int(form.rawValue)]!, _1, _2) } - public func MessageTimer_Days(_ value: Int32) -> String { + public func ForwardedFiles(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[161 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[27 * 6 + Int(form.rawValue)]!, stringValue) } - public func VoiceOver_Chat_UnreadMessages(_ value: Int32) -> String { + public func Map_ETAHours(_ 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) + return String(format: self._ps[28 * 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[29 * 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[30 * 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[31 * 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[32 * 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[33 * 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[34 * 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[35 * 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[36 * 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[37 * 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[38 * 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[39 * 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[40 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func InviteLink_PeopleRemaining(_ 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 Media_ShareItem(_ 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 Stats_GroupShowMoreTopPosters(_ 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 Media_ShareVideo(_ 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 MessageTimer_ShortHours(_ 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 ForwardedPhotos(_ 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 Conversation_StatusMembers(_ 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 ServiceMessage_GameScoreExtended(_ 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 UserCount(_ 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 Call_Days(_ 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 AttachmentMenu_SendGif(_ 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 ForwardedAuthorsOthers(_ selector: Int32, _ _0: String, _ _1: String) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[52 * 6 + Int(form.rawValue)]!, _0, _1) + } + public func Stats_MessageForwards(_ 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 Notification_GameScoreSelfSimple(_ 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 PUSH_CHAT_MESSAGE_FWDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[55 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + 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[56 * 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[57 * 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[58 * 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[59 * 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[60 * 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[61 * 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[62 * 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[63 * 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[64 * 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[65 * 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[66 * 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[67 * 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[68 * 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[69 * 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[70 * 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[71 * 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[72 * 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[73 * 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[74 * 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[75 * 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[76 * 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[77 * 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[78 * 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[79 * 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[80 * 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[81 * 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[82 * 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[83 * 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[84 * 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[85 * 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[86 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func OldChannels_InactiveYear(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[87 * 6 + Int(form.rawValue)]!, stringValue) + } + public func GroupInfo_ParticipantCount(_ 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 QuickSend_Photos(_ 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 Stats_GroupTopInviterInvites(_ 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 Call_ShortSeconds(_ 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 AttachmentMenu_SendVideo(_ 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 Call_Minutes(_ 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 Watch_LastSeen_MinutesAgo(_ 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_Hours(_ 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 StickerPack_StickerCount(_ 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 Media_SharePhoto(_ 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 Notifications_ExceptionMuteExpires_Minutes(_ 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 Chat_MessagesUnpinned(_ 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_DOCS(_ 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 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[101 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func Invitation_Members(_ 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 MuteFor_Days(_ 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 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_GameScoreSimple(_ 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 ChatList_MessageMusic(_ 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 Conversation_ContextViewReplies(_ 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 PUSH_CHANNEL_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[108 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func Stats_GroupTopAdminBans(_ 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 Conversation_ContextMenuSelectAll(_ 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 Notifications_ExceptionMuteExpires_Days(_ 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 Notification_GameScoreSelfExtended(_ 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 Stats_GroupTopAdminKicks(_ 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 ChatList_DeleteConfirmation(_ 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 LastSeen_MinutesAgo(_ 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 VoiceOver_Chat_MessagesSelected(_ 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 VoiceChat_Panel_Members(_ 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 AttachmentMenu_SendPhoto(_ 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 SharedMedia_DeleteItemsConfirmation(_ 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 PUSH_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[120 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func Stats_GroupTopPosterMessages(_ 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 MuteFor_Hours(_ 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 PUSH_CHAT_MESSAGES(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[123 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func Call_Hours(_ 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 ChatListFilter_ShowMoreChats(_ 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 MessageTimer_Minutes(_ 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 MessagePoll_VotedCount(_ 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 InviteLink_PeopleJoinedShort(_ 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 PrivacyLastSeenSettings_AddUsers(_ 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 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 InviteText_ContactsCountText(_ 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 ForwardedPolls(_ 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_DOCS(_ 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 ChatList_MessageFiles(_ 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 ForwardedMessages(_ 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 Call_Seconds(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[136 * 6 + Int(form.rawValue)]!, stringValue) + } + public func SharedMedia_Link(_ 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 SharedMedia_Photo(_ 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 LastSeen_HoursAgo(_ 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 Contacts_InviteContacts(_ 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 PUSH_CHANNEL_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[141 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func AttachmentMenu_SendItem(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[142 * 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[143 * 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[144 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_ShortDays(_ 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 InviteLink_InviteLinks(_ 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_MessageViewComments(_ 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 Chat_DeleteMessagesConfirmation(_ 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 MessagePoll_QuizCount(_ 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 SharedMedia_Generic(_ 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 GroupInfo_ShowMoreMembers(_ 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 MessageTimer_ShortMinutes(_ 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) + } + public func Wallpaper_DeleteConfirmation(_ 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 SharedMedia_Video(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[155 * 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[156 * 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[157 * 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[158 * 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[159 * 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[160 * 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[161 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func MessageTimer_Seconds(_ 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 InviteLink_PeopleCanJoin(_ 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_CHAT_MESSAGE_FWDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[164 * 6 + Int(form.rawValue)]!, _2, _1, _3) + public func ChatList_MessagePhotos(_ 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 init(primaryComponent: PresentationStringsComponent, secondaryComponent: PresentationStringsComponent?, groupingSeparator: String) { diff --git a/submodules/TelegramStringFormatting/Sources/DateFormat.swift b/submodules/TelegramStringFormatting/Sources/DateFormat.swift index a15cf8ecb8..4cfdfd694f 100644 --- a/submodules/TelegramStringFormatting/Sources/DateFormat.swift +++ b/submodules/TelegramStringFormatting/Sources/DateFormat.swift @@ -42,6 +42,29 @@ public func stringForMessageTimestamp(timestamp: Int32, dateTimeFormat: Presenta return stringForShortTimestamp(hours: timeinfo.tm_hour, minutes: timeinfo.tm_min, dateTimeFormat: dateTimeFormat) } +public func stringForMediumDate(timestamp: Int32, strings: PresentationStrings, dateTimeFormat: PresentationDateTimeFormat) -> String { + var t: time_t = Int(timestamp) + var timeinfo = tm() + localtime_r(&t, &timeinfo); + + let day = timeinfo.tm_mday + let month = timeinfo.tm_mon + 1 + let year = timeinfo.tm_year + + let dateString: String + let separator = dateTimeFormat.dateSeparator + switch dateTimeFormat.dateFormat { + case .monthFirst: + dateString = String(format: "%d%@%d%@%02d", month, separator, day, separator, year - 100) + case .dayFirst: + dateString = String(format: "%d%@%02d%@%02d", day, separator, month, separator, year - 100) + } + + let timeString = stringForShortTimestamp(hours: Int32(timeinfo.tm_hour), minutes: Int32(timeinfo.tm_min), dateTimeFormat: dateTimeFormat) + + return strings.Time_MediumDate(dateString, timeString).0 +} + public func stringForFullDate(timestamp: Int32, strings: PresentationStrings, dateTimeFormat: PresentationDateTimeFormat) -> String { var t: time_t = Int(timestamp) var timeinfo = tm() diff --git a/submodules/TelegramUI/Images.xcassets/Chat/Input/Accessory Panels/Help.imageset/Contents.json b/submodules/TelegramUI/Images.xcassets/Chat/Input/Accessory Panels/Help.imageset/Contents.json new file mode 100644 index 0000000000..71bb64a0e0 --- /dev/null +++ b/submodules/TelegramUI/Images.xcassets/Chat/Input/Accessory Panels/Help.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "filename" : "ic_question.pdf", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/submodules/TelegramUI/Images.xcassets/Chat/Input/Accessory Panels/Help.imageset/ic_question.pdf b/submodules/TelegramUI/Images.xcassets/Chat/Input/Accessory Panels/Help.imageset/ic_question.pdf new file mode 100644 index 0000000000000000000000000000000000000000..1180c27083cca6e4e8e947229c8c7f47035b04e9 GIT binary patch literal 4307 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 literal 0 HcmV?d00001 diff --git a/submodules/TelegramUI/Resources/PresentationStrings.mapping b/submodules/TelegramUI/Resources/PresentationStrings.mapping index 8c40783afb08fc753491252e2b1d3e97cb1d5a16..8262e8c7a79a4a1d40053412052855629c554895 100644 GIT binary patch delta 14111 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 Void let joinGroupCall: (CachedChannelData.ActiveCall) -> Void let presentInviteMembers: () -> Void + let presentGigagroupHelp: () -> Void let statuses: ChatPanelInterfaceInteractionStatuses? init( @@ -210,6 +211,7 @@ final class ChatPanelInterfaceInteraction { activatePinnedListPreview: @escaping (ASDisplayNode, ContextGesture) -> Void, joinGroupCall: @escaping (CachedChannelData.ActiveCall) -> Void, presentInviteMembers: @escaping () -> Void, + presentGigagroupHelp: @escaping () -> Void, editMessageMedia: @escaping (MessageId, Bool) -> Void, statuses: ChatPanelInterfaceInteractionStatuses? ) { @@ -292,6 +294,7 @@ final class ChatPanelInterfaceInteraction { self.editMessageMedia = editMessageMedia self.joinGroupCall = joinGroupCall self.presentInviteMembers = presentInviteMembers + self.presentGigagroupHelp = presentGigagroupHelp self.statuses = statuses } } diff --git a/submodules/TelegramUI/Sources/ChatRecentActionsController.swift b/submodules/TelegramUI/Sources/ChatRecentActionsController.swift index a93fc10d17..8d0391d054 100644 --- a/submodules/TelegramUI/Sources/ChatRecentActionsController.swift +++ b/submodules/TelegramUI/Sources/ChatRecentActionsController.swift @@ -134,6 +134,7 @@ final class ChatRecentActionsController: TelegramBaseController { }, activatePinnedListPreview: { _, _ in }, joinGroupCall: { _ in }, presentInviteMembers: { + }, presentGigagroupHelp: { }, editMessageMedia: { _, _ in }, statuses: nil) diff --git a/submodules/TelegramUI/Sources/ChatRecentActionsControllerNode.swift b/submodules/TelegramUI/Sources/ChatRecentActionsControllerNode.swift index 710e92d4d3..6ef18c156e 100644 --- a/submodules/TelegramUI/Sources/ChatRecentActionsControllerNode.swift +++ b/submodules/TelegramUI/Sources/ChatRecentActionsControllerNode.swift @@ -154,11 +154,34 @@ final class ChatRecentActionsControllerNode: ViewControllerTracingNode { } case let .editExportedInvitation(_, invite), let .revokeExportedInvitation(invite), let .deleteExportedInvitation(invite), let .participantJoinedViaInvite(invite): if !invite.link.hasSuffix("...") { - let controller = inviteLinkEditController(context: strongSelf.context, peerId: peer.id, invite: invite, completion: { [weak self] _ in - self?.eventLogContext.reload() - }) - controller.navigationPresentation = .modal - strongSelf.pushController(controller) + if invite.isPermanent { + let actionSheet = ActionSheetController(presentationData: strongSelf.presentationData) + + var items: [ActionSheetItem] = [] + items.append(ActionSheetTextItem(title: invite.link)) + items.append(ActionSheetButtonItem(title: strongSelf.presentationData.strings.InviteLink_ContextRevoke, color: .destructive, action: { [weak actionSheet] in + actionSheet?.dismissAnimated() + if let strongSelf = self { + let _ = (revokePeerExportedInvitation(account: strongSelf.context.account, peerId: peer.id, link: invite.link) + + |> deliverOnMainQueue).start(completed: { [weak self] in + self?.eventLogContext.reload() + }) + } + })) + actionSheet.setItemGroups([ActionSheetItemGroup(items: items), ActionSheetItemGroup(items: [ + ActionSheetButtonItem(title: strongSelf.presentationData.strings.Common_Cancel, color: .accent, font: .bold, action: { [weak actionSheet] in + actionSheet?.dismissAnimated() + }) + ])]) + strongSelf.presentController(actionSheet, nil) + } else { + let controller = inviteLinkEditController(context: strongSelf.context, peerId: peer.id, invite: invite, completion: { [weak self] _ in + self?.eventLogContext.reload() + }) + controller.navigationPresentation = .modal + strongSelf.pushController(controller) + } return true } case .changeHistoryTTL: diff --git a/submodules/TelegramUI/Sources/ChatRecentActionsHistoryTransition.swift b/submodules/TelegramUI/Sources/ChatRecentActionsHistoryTransition.swift index 3c42b40acb..dc833ca813 100644 --- a/submodules/TelegramUI/Sources/ChatRecentActionsHistoryTransition.swift +++ b/submodules/TelegramUI/Sources/ChatRecentActionsHistoryTransition.swift @@ -1187,7 +1187,7 @@ struct ChatRecentActionsEntry: Comparable, Identifiable { var text: String = "" var entities: [MessageTextEntity] = [] - let rawText: (String, [(Int, NSRange)]) = self.presentationData.strings.Channel_AdminLog_UpdatedParticipantVolume(author?.displayTitle(strings: self.presentationData.strings, displayOrder: self.presentationData.nameDisplayOrder) ?? "", participant?.displayTitle(strings: self.presentationData.strings, displayOrder: self.presentationData.nameDisplayOrder) ?? "", "\(volume)") + let rawText: (String, [(Int, NSRange)]) = self.presentationData.strings.Channel_AdminLog_UpdatedParticipantVolume(author?.displayTitle(strings: self.presentationData.strings, displayOrder: self.presentationData.nameDisplayOrder) ?? "", participant?.displayTitle(strings: self.presentationData.strings, displayOrder: self.presentationData.nameDisplayOrder) ?? "", "\(volume / 100)%") appendAttributedText(text: rawText, generateEntities: { index in if index == 0, let author = author { diff --git a/submodules/TelegramUI/Sources/PeerInfo/PeerInfoData.swift b/submodules/TelegramUI/Sources/PeerInfo/PeerInfoData.swift index 41cb36d1e3..565b31f214 100644 --- a/submodules/TelegramUI/Sources/PeerInfo/PeerInfoData.swift +++ b/submodules/TelegramUI/Sources/PeerInfo/PeerInfoData.swift @@ -765,14 +765,10 @@ func peerInfoScreenData(context: AccountContext, peerId: PeerId, strings: Presen let membersData: Signal = combineLatest(membersContext.state, context.account.viewTracker.peerView(groupId, updateData: false)) |> map { state, view -> PeerInfoMembersData? in - if let peer = peerViewMainPeer(view) as? TelegramChannel, peer.flags.contains(.isGigagroup) { - return nil + if state.members.count > 5 { + return .longList(membersContext) } else { - if state.members.count > 5 { - return .longList(membersContext) - } else { - return .shortList(membersContext: membersContext, members: state.members) - } + return .shortList(membersContext: membersContext, members: state.members) } } |> distinctUntilChanged diff --git a/submodules/TelegramUI/Sources/PeerInfo/PeerInfoScreen.swift b/submodules/TelegramUI/Sources/PeerInfo/PeerInfoScreen.swift index 389f78cf0c..a6f111dd4b 100644 --- a/submodules/TelegramUI/Sources/PeerInfo/PeerInfoScreen.swift +++ b/submodules/TelegramUI/Sources/PeerInfo/PeerInfoScreen.swift @@ -446,6 +446,7 @@ final class PeerInfoSelectionPanelNode: ASDisplayNode { }, activatePinnedListPreview: { _, _ in }, joinGroupCall: { _ in }, presentInviteMembers: { + }, presentGigagroupHelp: { }, editMessageMedia: { _, _ in }, statuses: nil)