diff --git a/TelegramUI.xcodeproj/project.pbxproj b/TelegramUI.xcodeproj/project.pbxproj index b214489b1d..8e89ed3649 100644 --- a/TelegramUI.xcodeproj/project.pbxproj +++ b/TelegramUI.xcodeproj/project.pbxproj @@ -412,6 +412,7 @@ D0C27B3D1F4B454800A4E170 /* InstantPagePlayableVideoNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C27B3C1F4B454800A4E170 /* InstantPagePlayableVideoNode.swift */; }; D0C44B641FC64D0500227BE0 /* SwipeToDismissGestureRecognizer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C44B631FC64D0500227BE0 /* SwipeToDismissGestureRecognizer.swift */; }; D0C45E9F213FFAFD00988156 /* Lottie.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C45E9E213FFAFD00988156 /* Lottie.framework */; }; + D0C683FC21AD797F00A6CAD5 /* ChatListSelection.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C683FB21AD797F00A6CAD5 /* ChatListSelection.swift */; }; D0CAD8FB20AE1D1B00ACD96E /* ChannelMemberCategoryListContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0CAD8FA20AE1D1B00ACD96E /* ChannelMemberCategoryListContext.swift */; }; D0CAD8FD20AE467D00ACD96E /* PeerChannelMemberCategoriesContextsManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0CAD8FC20AE467D00ACD96E /* PeerChannelMemberCategoriesContextsManager.swift */; }; D0CAD90120AEECAC00ACD96E /* ChatEditInterfaceMessageState.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0CAD90020AEECAC00ACD96E /* ChatEditInterfaceMessageState.swift */; }; @@ -1816,6 +1817,7 @@ D0C50E3D1E93D09200F62E39 /* NotificationItemContainerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NotificationItemContainerNode.swift; sourceTree = ""; }; D0C50E3F1E93D3B000F62E39 /* ChatMessageNotificationItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageNotificationItem.swift; sourceTree = ""; }; D0C50E431E93FCD200F62E39 /* notification.caf */ = {isa = PBXFileReference; lastKnownFileType = file; name = notification.caf; path = TelegramUI/Sounds/notification.caf; sourceTree = ""; }; + D0C683FB21AD797F00A6CAD5 /* ChatListSelection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatListSelection.swift; sourceTree = ""; }; D0C932351E0988C60074F044 /* ChatButtonKeyboardInputNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatButtonKeyboardInputNode.swift; sourceTree = ""; }; D0C932371E09E0EA0074F044 /* ChatBotInfoItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatBotInfoItem.swift; sourceTree = ""; }; D0C9323B1E0B4AE90074F044 /* DataAndStorageSettingsController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DataAndStorageSettingsController.swift; sourceTree = ""; }; @@ -4230,6 +4232,7 @@ D0575AEA1E9FD579006F2541 /* ChatListTitleLockView.swift */, D07E413A208A432100FCA8F0 /* ChatListTitleProxyNode.swift */, D06E4C302134910400088087 /* ChatListEmptyNode.swift */, + D0C683FB21AD797F00A6CAD5 /* ChatListSelection.swift */, D0F69E051D6B8A8B0046BCD6 /* Search */, ); name = "Chat List"; @@ -5298,6 +5301,7 @@ D0EC6D681EB9F58800EBF1C3 /* AuthorizationSequenceController.swift in Sources */, D0EC6D691EB9F58800EBF1C3 /* AuthorizationSequenceSplashController.swift in Sources */, D0EC6D6A1EB9F58800EBF1C3 /* AuthorizationSequenceSplashControllerNode.swift in Sources */, + D0C683FC21AD797F00A6CAD5 /* ChatListSelection.swift in Sources */, D0EC6D6B1EB9F58800EBF1C3 /* AuthorizationSequenceCountrySelectionController.swift in Sources */, D0EC6D6C1EB9F58800EBF1C3 /* AuthorizationSequenceCountrySelectionControllerNode.swift in Sources */, D0BFAE5D20AB426300793CF2 /* PeerTitle.swift in Sources */, diff --git a/TelegramUI/ArhivedStickerPacksController.swift b/TelegramUI/ArhivedStickerPacksController.swift index 75879375e1..30c1c20a92 100644 --- a/TelegramUI/ArhivedStickerPacksController.swift +++ b/TelegramUI/ArhivedStickerPacksController.swift @@ -274,7 +274,7 @@ public func archivedStickerPacksController(account: Account, archived: [Archived if !add { return } - let _ = (loadedStickerPack(postbox: account.postbox, network: account.network, reference: .id(id: info.id.id, accessHash: info.accessHash)) + let _ = (loadedStickerPack(postbox: account.postbox, network: account.network, reference: .id(id: info.id.id, accessHash: info.accessHash), forceActualized: false) |> mapToSignal { result -> Signal in switch result { case let .result(info, items, installed): diff --git a/TelegramUI/ChatController.swift b/TelegramUI/ChatController.swift index 3ef7fd0bb3..2185d29fa3 100644 --- a/TelegramUI/ChatController.swift +++ b/TelegramUI/ChatController.swift @@ -4744,9 +4744,27 @@ public final class ChatController: TelegramController, KeyShortcutResponder, UID cancelImpl = { [weak self] in self?.resolvePeerByNameDisposable?.set(nil) } - disposable.set((resolveSignal |> take(1) |> deliverOnMainQueue).start(next: { [weak self] peerId in - if let strongSelf = self { - strongSelf.openResolved(.peer(peerId, navigation)) + let account = self.account + disposable.set((resolveSignal + |> take(1) + |> mapToSignal { peerId -> Signal in + return account.postbox.transaction { transaction -> Peer? in + if let peerId = peerId { + return transaction.getPeer(peerId) + } else { + return nil + } + } + } + |> deliverOnMainQueue).start(next: { [weak self] peer in + if let strongSelf = self, let peer = peer { + var navigation = navigation + if case .default = navigation { + if let peer = peer as? TelegramUser, peer.botInfo != nil { + navigation = .chat(textInputState: nil, messageId: nil) + } + } + strongSelf.openResolved(.peer(peer.id, navigation)) } })) } diff --git a/TelegramUI/ChatInterfaceStateContextMenus.swift b/TelegramUI/ChatInterfaceStateContextMenus.swift index a59b0f8510..064f6037e8 100644 --- a/TelegramUI/ChatInterfaceStateContextMenus.swift +++ b/TelegramUI/ChatInterfaceStateContextMenus.swift @@ -590,7 +590,17 @@ func chatAvailableMessageActions(postbox: Postbox, accountPeerId: PeerId, messag case .creator, .admin: optionsMap[id]!.insert(.deleteGlobally) case .member: - break + var hasMediaToReport = false + for media in message.media { + if let _ = media as? TelegramMediaImage { + hasMediaToReport = true + } else if let file = media as? TelegramMediaFile, file.isVideo { + hasMediaToReport = true + } + } + if hasMediaToReport { + optionsMap[id]!.insert(.report) + } } } } else if let _ = peer as? TelegramUser { diff --git a/TelegramUI/ChatListController.swift b/TelegramUI/ChatListController.swift index d11c9c006d..aced506fa8 100644 --- a/TelegramUI/ChatListController.swift +++ b/TelegramUI/ChatListController.swift @@ -37,8 +37,11 @@ public class ChatListController: TelegramController, KeyShortcutResponder, UIVie private var didSuggestLocalization = false private var presentationData: PresentationData + private let presentationDataValue = Promise() private var presentationDataDisposable: Disposable? + private let stateDisposable = MetaDisposable() + public init(account: Account, groupId: PeerGroupId?, controlsHistoryPreload: Bool) { self.account = account self.controlsHistoryPreload = controlsHistoryPreload @@ -46,6 +49,7 @@ public class ChatListController: TelegramController, KeyShortcutResponder, UIVie self.groupId = groupId self.presentationData = (account.telegramApplicationContext.currentPresentationData.with { $0 }) + self.presentationDataValue.set(.single(self.presentationData)) self.titleView = NetworkStatusTitleView(theme: self.presentationData.theme) @@ -207,18 +211,19 @@ public class ChatListController: TelegramController, KeyShortcutResponder, UIVie } self.presentationDataDisposable = (account.telegramApplicationContext.presentationData - |> deliverOnMainQueue).start(next: { [weak self] presentationData in - if let strongSelf = self { - let previousTheme = strongSelf.presentationData.theme - let previousStrings = strongSelf.presentationData.strings - - strongSelf.presentationData = presentationData - - if previousTheme !== presentationData.theme || previousStrings !== presentationData.strings { - strongSelf.updateThemeAndStrings() - } + |> deliverOnMainQueue).start(next: { [weak self] presentationData in + if let strongSelf = self { + let previousTheme = strongSelf.presentationData.theme + let previousStrings = strongSelf.presentationData.strings + + strongSelf.presentationData = presentationData + strongSelf.presentationDataValue.set(.single(presentationData)) + + if previousTheme !== presentationData.theme || previousStrings !== presentationData.strings { + strongSelf.updateThemeAndStrings() } - }) + } + }) } required public init(coder aDecoder: NSCoder) { @@ -233,6 +238,7 @@ public class ChatListController: TelegramController, KeyShortcutResponder, UIVie self.passcodeLockTooltipDisposable.dispose() self.suggestLocalizationDisposable.dispose() self.presentationDataDisposable?.dispose() + self.stateDisposable.dispose() } private func updateThemeAndStrings() { @@ -477,6 +483,41 @@ public class ChatListController: TelegramController, KeyShortcutResponder, UIVie } } + let account = self.account + let peerIdsAndOptions: Signal<(ChatListSelectionOptions, Set)?, NoError> = self.chatListDisplayNode.chatListNode.state + |> map { state -> Set? in + if !state.editing { + return nil + } + return state.selectedPeerIds + } + |> distinctUntilChanged + |> mapToSignal { selectedPeerIds -> Signal<(ChatListSelectionOptions, Set)?, NoError> in + if let selectedPeerIds = selectedPeerIds { + return chatListSelectionOptions(postbox: account.postbox, peerIds: selectedPeerIds) + |> map { options -> (ChatListSelectionOptions, Set)? in + return (options, selectedPeerIds) + } + } else { + return .single(nil) + } + } + + self.stateDisposable.set(combineLatest(queue: .mainQueue(), self.presentationDataValue.get(), peerIdsAndOptions).start(next: { [weak self] presentationData, peerIdsAndOptions in + var toolbar: Toolbar? + if let (options, _) = peerIdsAndOptions { + let leftAction: ToolbarAction + switch options.read { + case let .all(enabled): + leftAction = ToolbarAction(title: presentationData.strings.ChatList_ReadAll, isEnabled: enabled) + case let .selective(enabled): + leftAction = ToolbarAction(title: presentationData.strings.ChatList_Read, isEnabled: enabled) + } + toolbar = Toolbar(leftAction: leftAction, rightAction: ToolbarAction(title: presentationData.strings.Common_Delete, isEnabled: options.delete)) + } + self?.setToolbar(toolbar, transition: .animated(duration: 0.3, curve: .easeInOut)) + })) + /*self.badgeIconDisposable = (self.chatListDisplayNode.chatListNode.scrollToTopOption |> distinctUntilChanged |> deliverOnMainQueue).start(next: { [weak self] option in @@ -624,7 +665,10 @@ public class ChatListController: TelegramController, KeyShortcutResponder, UIVie self.navigationItem.rightBarButtonItem = editItem } self.chatListDisplayNode.chatListNode.updateState { state in - return state.withUpdatedEditing(true) + var state = state + state.editing = true + state.peerIdWithRevealedOptions = nil + return state } } @@ -636,7 +680,11 @@ public class ChatListController: TelegramController, KeyShortcutResponder, UIVie self.navigationItem.rightBarButtonItem = editItem } self.chatListDisplayNode.chatListNode.updateState { state in - return state.withUpdatedEditing(false).withUpdatedPeerIdWithRevealedOptions(nil) + var state = state + state.editing = false + state.peerIdWithRevealedOptions = nil + state.selectedPeerIds.removeAll() + return state } } @@ -825,4 +873,75 @@ public class ChatListController: TelegramController, KeyShortcutResponder, UIVie KeyShortcut(input: UIKeyInputEscape, modifiers: [], action: toggleSearch) ] } + + override public func toolbarActionSelected(left: Bool) { + let peerIds = self.chatListDisplayNode.chatListNode.currentState.selectedPeerIds + if left { + let signal: Signal + let account = self.account + if !peerIds.isEmpty { + signal = self.account.postbox.transaction { transaction -> Void in + for peerId in peerIds { + togglePeerUnreadMarkInteractively(transaction: transaction, viewTracker: account.viewTracker, peerId: peerId, setToValue: false) + } + } + } else { + signal = self.account.postbox.transaction { transaction -> Void in + markAllChatsAsReadInteractively(transaction: transaction, viewTracker: account.viewTracker) + } + } + let _ = signal.start(completed: { [weak self] in + self?.donePressed() + }) + } else if !peerIds.isEmpty { + let actionSheet = ActionSheetController(presentationTheme: self.presentationData.theme) + var items: [ActionSheetItem] = [] + items.append(ActionSheetButtonItem(title: self.presentationData.strings.ChatList_DeleteConfirmation(Int32(peerIds.count)), color: .destructive, action: { [weak self, weak actionSheet] in + actionSheet?.dismissAnimated() + + guard let strongSelf = self else { + return + } + + let account = strongSelf.account + let presentationData = strongSelf.presentationData + let progressSignal = Signal { subscriber in + let controller = OverlayStatusController(theme: presentationData.theme, strings: presentationData.strings, type: .loading(cancelled: nil)) + self?.present(controller, in: .window(.root)) + return ActionDisposable { [weak controller] in + Queue.mainQueue().async() { + controller?.dismiss() + } + } + } + |> runOn(Queue.mainQueue()) + |> delay(0.8, queue: Queue.mainQueue()) + let progressDisposable = progressSignal.start() + + let signal: Signal = strongSelf.account.postbox.transaction { transaction -> Void in + for peerId in peerIds { + removePeerChat(transaction: transaction, mediaBox: account.postbox.mediaBox, peerId: peerId, reportChatSpam: false) + } + } + |> afterDisposed { + Queue.mainQueue().async { + progressDisposable.dispose() + } + } + let _ = signal.start(completed: { + self?.donePressed() + }) + })) + + actionSheet.setItemGroups([ + ActionSheetItemGroup(items: items), + ActionSheetItemGroup(items: [ + ActionSheetButtonItem(title: self.presentationData.strings.Common_Cancel, color: .accent, action: { [weak actionSheet] in + actionSheet?.dismissAnimated() + }) + ]) + ]) + self.present(actionSheet, in: .window(.root)) + } + } } diff --git a/TelegramUI/ChatListItem.swift b/TelegramUI/ChatListItem.swift index ce0c1b3276..311814e5f2 100644 --- a/TelegramUI/ChatListItem.swift +++ b/TelegramUI/ChatListItem.swift @@ -28,6 +28,7 @@ class ChatListItem: ListViewItem { let content: ChatListItemContent let editing: Bool let hasActiveRevealControls: Bool + let selected: Bool let enableContextActions: Bool let interaction: ChatListNodeInteraction @@ -35,7 +36,7 @@ class ChatListItem: ListViewItem { let header: ListViewItemHeader? - init(presentationData: ChatListPresentationData, account: Account, peerGroupId: PeerGroupId?, index: ChatListIndex, content: ChatListItemContent, editing: Bool, hasActiveRevealControls: Bool, header: ListViewItemHeader?, enableContextActions: Bool, interaction: ChatListNodeInteraction) { + init(presentationData: ChatListPresentationData, account: Account, peerGroupId: PeerGroupId?, index: ChatListIndex, content: ChatListItemContent, editing: Bool, hasActiveRevealControls: Bool, selected: Bool, header: ListViewItemHeader?, enableContextActions: Bool, interaction: ChatListNodeInteraction) { self.presentationData = presentationData self.peerGroupId = peerGroupId self.account = account @@ -43,6 +44,7 @@ class ChatListItem: ListViewItem { self.content = content self.editing = editing self.hasActiveRevealControls = hasActiveRevealControls + self.selected = selected self.header = header self.enableContextActions = enableContextActions self.interaction = interaction @@ -51,7 +53,6 @@ class ChatListItem: ListViewItem { func nodeConfiguredForParams(async: @escaping (@escaping () -> Void) -> Void, params: ListViewItemLayoutParams, previousItem: ListViewItem?, nextItem: ListViewItem?, completion: @escaping (ListViewItemNode, @escaping () -> (Signal?, () -> Void)) -> Void) { async { let node = ChatListItemNode() - node.setupItem(item: self) let (first, last, firstWithHeader, nextIsPinned) = ChatListItem.mergeType(item: self, previousItem: previousItem, nextItem: nextItem) node.insets = ChatListItemNode.insets(first: first, last: last, firstWithHeader: firstWithHeader) @@ -63,6 +64,7 @@ class ChatListItem: ListViewItem { Queue.mainQueue().async { completion(node, { return (nil, { + node.setupItem(item: self) apply(false) node.updateIsHighlighted(transition: .immediate) }) @@ -231,7 +233,7 @@ class ChatListItemNode: ItemListRevealOptionsItemNode { var verificationIconNode: ASImageNode? let mutedIconNode: ASImageNode - var editableControlNode: ItemListEditableControlNode? + var selectableControlNode: ItemListSelectableControlNode? var reorderControlNode: ItemListEditableReorderControlNode? var layoutParams: (ChatListItem, first: Bool, last: Bool, firstWithHeader: Bool, nextIsPinned: Bool, ListViewItemLayoutParams)? @@ -239,7 +241,7 @@ class ChatListItemNode: ItemListRevealOptionsItemNode { private var isHighlighted: Bool = false override var canBeSelected: Bool { - if self.editableControlNode != nil { + if self.selectableControlNode != nil { return false } else { return super.canBeSelected @@ -393,6 +395,13 @@ class ChatListItemNode: ItemListRevealOptionsItemNode { } } + override func tapped() { + guard let item = self.item, item.editing else { + return + } + item.interaction.togglePeerSelected(item.index.messageIndex.id.peerId) + } + func asyncLayout() -> (_ item: ChatListItem, _ params: ListViewItemLayoutParams, _ first: Bool, _ last: Bool, _ firstWithHeader: Bool, _ nextIsPinned: Bool) -> (ListViewItemNodeLayout, (Bool) -> Void) { let dateLayout = TextNode.asyncLayout(self.dateNode) let textLayout = TextNode.asyncLayout(self.textNode) @@ -400,7 +409,7 @@ class ChatListItemNode: ItemListRevealOptionsItemNode { let authorLayout = TextNode.asyncLayout(self.authorNode) let inputActivitiesLayout = self.inputActivitiesNode.asyncLayout() let badgeTextLayout = TextNode.asyncLayout(self.badgeTextNode) - let editableControlLayout = ItemListEditableControlNode.asyncLayout(self.editableControlNode) + let selectableControlLayout = ItemListSelectableControlNode.asyncLayout(self.selectableControlNode) let reorderControlLayout = ItemListEditableReorderControlNode.asyncLayout(self.reorderControlNode) let currentItem = self.layoutParams?.0 @@ -488,17 +497,17 @@ class ChatListItemNode: ItemListRevealOptionsItemNode { var currentVerificationIconImage: UIImage? var currentSecretIconImage: UIImage? - var editableControlSizeAndApply: (CGSize, () -> ItemListEditableControlNode)? + var selectableControlSizeAndApply: (CGFloat, (CGSize, Bool) -> ItemListSelectableControlNode)? var reorderControlSizeAndApply: (CGSize, () -> ItemListEditableReorderControlNode)? let editingOffset: CGFloat var reorderInset: CGFloat = 0.0 if item.editing { - let sizeAndApply = editableControlLayout(itemHeight, item.presentationData.theme, isPeerGroup) + let sizeAndApply = selectableControlLayout(item.presentationData.theme.list.itemCheckColors.strokeColor, item.presentationData.theme.list.itemCheckColors.fillColor, item.presentationData.theme.list.itemCheckColors.foregroundColor, item.selected, true) if !isAd { - editableControlSizeAndApply = sizeAndApply + selectableControlSizeAndApply = sizeAndApply } - editingOffset = sizeAndApply.0.width + editingOffset = sizeAndApply.0 if item.index.pinningIndex != nil && !isAd { let sizeAndApply = reorderControlLayout(itemHeight, item.presentationData.theme) @@ -758,41 +767,39 @@ class ChatListItemNode: ItemListRevealOptionsItemNode { } var crossfadeContent = false - if let editableControlSizeAndApply = editableControlSizeAndApply { - if strongSelf.editableControlNode == nil { + if let selectableControlSizeAndApply = selectableControlSizeAndApply { + let selectableControlSize = CGSize(width: selectableControlSizeAndApply.0, height: layout.contentSize.height) + let selectableControlFrame = CGRect(origin: CGPoint(x: params.leftInset + revealOffset, y: 0.0), size: selectableControlSize) + if strongSelf.selectableControlNode == nil { crossfadeContent = true - let editableControlNode = editableControlSizeAndApply.1() - editableControlNode.tapped = { - if let strongSelf = self { - strongSelf.setRevealOptionsOpened(true, animated: true) - strongSelf.revealOptionsInteractivelyOpened() - } - } - strongSelf.editableControlNode = editableControlNode - strongSelf.addSubnode(editableControlNode) - let editableControlFrame = CGRect(origin: CGPoint(x: params.leftInset + revealOffset, y: 0.0), size: editableControlSizeAndApply.0) - editableControlNode.frame = editableControlFrame - transition.animatePosition(node: editableControlNode, from: CGPoint(x: -editableControlFrame.size.width / 2.0, y: editableControlFrame.midY)) - editableControlNode.alpha = 0.0 - transition.updateAlpha(node: editableControlNode, alpha: 1.0) + let selectableControlNode = selectableControlSizeAndApply.1(selectableControlSize, false) + strongSelf.selectableControlNode = selectableControlNode + strongSelf.addSubnode(selectableControlNode) + selectableControlNode.frame = selectableControlFrame + transition.animatePosition(node: selectableControlNode, from: CGPoint(x: -selectableControlFrame.size.width / 2.0, y: selectableControlFrame.midY)) + selectableControlNode.alpha = 0.0 + transition.updateAlpha(node: selectableControlNode, alpha: 1.0) + } else if let selectableControlNode = strongSelf.selectableControlNode { + transition.updateFrame(node: selectableControlNode, frame: selectableControlFrame) + let _ = selectableControlSizeAndApply.1(selectableControlSize, transition.isAnimated) } - } else if let editableControlNode = strongSelf.editableControlNode { + } else if let selectableControlNode = strongSelf.selectableControlNode { crossfadeContent = true - var editableControlFrame = editableControlNode.frame - editableControlFrame.origin.x = -editableControlFrame.size.width - strongSelf.editableControlNode = nil - transition.updateAlpha(node: editableControlNode, alpha: 0.0) - transition.updateFrame(node: editableControlNode, frame: editableControlFrame, completion: { [weak editableControlNode] _ in - editableControlNode?.removeFromSupernode() + var selectableControlFrame = selectableControlNode.frame + selectableControlFrame.origin.x = -selectableControlFrame.size.width + strongSelf.selectableControlNode = nil + transition.updateAlpha(node: selectableControlNode, alpha: 0.0) + transition.updateFrame(node: selectableControlNode, frame: selectableControlFrame, completion: { [weak selectableControlNode] _ in + selectableControlNode?.removeFromSupernode() }) } if let reorderControlSizeAndApply = reorderControlSizeAndApply { + let reorderControlFrame = CGRect(origin: CGPoint(x: params.width + revealOffset - params.rightInset - reorderControlSizeAndApply.0.width, y: 0.0), size: reorderControlSizeAndApply.0) if strongSelf.reorderControlNode == nil { let reorderControlNode = reorderControlSizeAndApply.1() strongSelf.reorderControlNode = reorderControlNode strongSelf.addSubnode(reorderControlNode) - let reorderControlFrame = CGRect(origin: CGPoint(x: params.width + revealOffset - params.rightInset - reorderControlSizeAndApply.0.width, y: 0.0), size: reorderControlSizeAndApply.0) reorderControlNode.frame = reorderControlFrame reorderControlNode.alpha = 0.0 transition.updateAlpha(node: reorderControlNode, alpha: 1.0) @@ -802,6 +809,9 @@ class ChatListItemNode: ItemListRevealOptionsItemNode { transition.updateAlpha(node: strongSelf.badgeBackgroundNode, alpha: 0.0) transition.updateAlpha(node: strongSelf.mentionBadgeNode, alpha: 0.0) transition.updateAlpha(node: strongSelf.statusNode, alpha: 0.0) + } else if let reorderControlNode = strongSelf.reorderControlNode { + let _ = reorderControlSizeAndApply.1() + transition.updateFrame(node: reorderControlNode, frame: reorderControlFrame) } } else if let reorderControlNode = strongSelf.reorderControlNode { strongSelf.reorderControlNode = nil @@ -1010,6 +1020,12 @@ class ChatListItemNode: ItemListRevealOptionsItemNode { transition.animatePosition(node: strongSelf.authorNode, from: CGPoint(x: authorPosition.x - contentDeltaX, y: authorPosition.y)) } + if crossfadeContent { + strongSelf.authorNode.recursivelyEnsureDisplaySynchronously(true) + strongSelf.titleNode.recursivelyEnsureDisplaySynchronously(true) + strongSelf.textNode.recursivelyEnsureDisplaySynchronously(true) + } + let separatorInset: CGFloat if (!nextIsPinned && item.index.pinningIndex != nil) || last { separatorInset = 0.0 @@ -1020,7 +1036,9 @@ class ChatListItemNode: ItemListRevealOptionsItemNode { transition.updateFrame(node: strongSelf.separatorNode, frame: CGRect(origin: CGPoint(x: separatorInset, y: itemHeight - separatorHeight), size: CGSize(width: params.width - separatorInset, height: separatorHeight))) strongSelf.backgroundNode.frame = CGRect(origin: CGPoint(), size: layout.contentSize) - if item.index.pinningIndex != nil { + if item.selected { + strongSelf.backgroundNode.backgroundColor = theme.itemSelectedBackgroundColor + } else if item.index.pinningIndex != nil { strongSelf.backgroundNode.backgroundColor = theme.pinnedItemBackgroundColor } else { strongSelf.backgroundNode.backgroundColor = theme.itemBackgroundColor @@ -1030,7 +1048,11 @@ class ChatListItemNode: ItemListRevealOptionsItemNode { strongSelf.updateLayout(size: layout.contentSize, leftInset: params.leftInset, rightInset: params.rightInset) - strongSelf.setRevealOptions((left: peerLeftRevealOptions, right: peerRevealOptions)) + if item.editing { + strongSelf.setRevealOptions((left: [], right: [])) + } else { + strongSelf.setRevealOptions((left: peerLeftRevealOptions, right: peerRevealOptions)) + } strongSelf.setRevealOptionsOpened(item.hasActiveRevealControls, animated: true) } }) @@ -1059,11 +1081,11 @@ class ChatListItemNode: ItemListRevealOptionsItemNode { if let _ = self.item, let params = self.layoutParams?.5 { let editingOffset: CGFloat - if let editableControlNode = self.editableControlNode { - editingOffset = editableControlNode.bounds.size.width - var editableControlFrame = editableControlNode.frame - editableControlFrame.origin.x = params.leftInset + offset - transition.updateFrame(node: editableControlNode, frame: editableControlFrame) + if let selectableControlNode = self.selectableControlNode { + editingOffset = selectableControlNode.bounds.size.width + var selectableControlFrame = selectableControlNode.frame + selectableControlFrame.origin.x = params.leftInset + offset + transition.updateFrame(node: selectableControlNode, frame: selectableControlFrame) } else { editingOffset = 0.0 } diff --git a/TelegramUI/ChatListItemStrings.swift b/TelegramUI/ChatListItemStrings.swift index b6c3ca72a7..68ced077f3 100644 --- a/TelegramUI/ChatListItemStrings.swift +++ b/TelegramUI/ChatListItemStrings.swift @@ -75,7 +75,9 @@ public func chatListItemStrings(strings: PresentationStrings, message: Message?, if message.text.isEmpty { isVideo = true } else if #available(iOSApplicationExtension 9.0, *) { - messageText = "📹 \(messageText)" + if !fileMedia.isAnimated { + messageText = "📹 \(messageText)" + } break inner } } diff --git a/TelegramUI/ChatListNode.swift b/TelegramUI/ChatListNode.swift index 988b2f4274..4471c580be 100644 --- a/TelegramUI/ChatListNode.swift +++ b/TelegramUI/ChatListNode.swift @@ -59,6 +59,7 @@ final class ChatListHighlightedLocation { final class ChatListNodeInteraction { let activateSearch: () -> Void let peerSelected: (Peer) -> Void + let togglePeerSelected: (PeerId) -> Void let messageSelected: (Message, Bool) -> Void let groupSelected: (PeerGroupId) -> Void let addContact: (String) -> Void @@ -71,9 +72,10 @@ final class ChatListNodeInteraction { var highlightedChatLocation: ChatListHighlightedLocation? - init(activateSearch: @escaping () -> Void, peerSelected: @escaping (Peer) -> Void, messageSelected: @escaping (Message, Bool) -> Void, groupSelected: @escaping (PeerGroupId) -> Void, addContact: @escaping (String) -> Void, setPeerIdWithRevealedOptions: @escaping (PeerId?, PeerId?) -> Void, setItemPinned: @escaping (PinnedItemId, Bool) -> Void, setPeerMuted: @escaping (PeerId, Bool) -> Void, deletePeer: @escaping (PeerId) -> Void, updatePeerGrouping: @escaping (PeerId, Bool) -> Void, togglePeerMarkedUnread: @escaping (PeerId, Bool) -> Void) { + init(activateSearch: @escaping () -> Void, peerSelected: @escaping (Peer) -> Void, togglePeerSelected: @escaping (PeerId) -> Void, messageSelected: @escaping (Message, Bool) -> Void, groupSelected: @escaping (PeerGroupId) -> Void, addContact: @escaping (String) -> Void, setPeerIdWithRevealedOptions: @escaping (PeerId?, PeerId?) -> Void, setItemPinned: @escaping (PinnedItemId, Bool) -> Void, setPeerMuted: @escaping (PeerId, Bool) -> Void, deletePeer: @escaping (PeerId) -> Void, updatePeerGrouping: @escaping (PeerId, Bool) -> Void, togglePeerMarkedUnread: @escaping (PeerId, Bool) -> Void) { self.activateSearch = activateSearch self.peerSelected = peerSelected + self.togglePeerSelected = togglePeerSelected self.messageSelected = messageSelected self.groupSelected = groupSelected self.addContact = addContact @@ -95,26 +97,11 @@ final class ChatListNodePeerInputActivities { } struct ChatListNodeState: Equatable { - let presentationData: ChatListPresentationData - let editing: Bool - let peerIdWithRevealedOptions: PeerId? - let peerInputActivities: ChatListNodePeerInputActivities? - - func withUpdatedPresentationData(_ presentationData: ChatListPresentationData) -> ChatListNodeState { - return ChatListNodeState(presentationData: presentationData, editing: self.editing, peerIdWithRevealedOptions: self.peerIdWithRevealedOptions, peerInputActivities: self.peerInputActivities) - } - - func withUpdatedEditing(_ editing: Bool) -> ChatListNodeState { - return ChatListNodeState(presentationData: self.presentationData, editing: editing, peerIdWithRevealedOptions: self.peerIdWithRevealedOptions, peerInputActivities: self.peerInputActivities) - } - - func withUpdatedPeerIdWithRevealedOptions(_ peerIdWithRevealedOptions: PeerId?) -> ChatListNodeState { - return ChatListNodeState(presentationData: self.presentationData, editing: self.editing, peerIdWithRevealedOptions: peerIdWithRevealedOptions, peerInputActivities: self.peerInputActivities) - } - - func withUpdatedPeerInputActivities(_ peerInputActivities: ChatListNodePeerInputActivities?) -> ChatListNodeState { - return ChatListNodeState(presentationData: self.presentationData, editing: self.editing, peerIdWithRevealedOptions: self.peerIdWithRevealedOptions, peerInputActivities: peerInputActivities) - } + var presentationData: ChatListPresentationData + var editing: Bool + var peerIdWithRevealedOptions: PeerId? + var selectedPeerIds: Set + var peerInputActivities: ChatListNodePeerInputActivities? static func ==(lhs: ChatListNodeState, rhs: ChatListNodeState) -> Bool { if lhs.presentationData !== rhs.presentationData { @@ -126,6 +113,9 @@ struct ChatListNodeState: Equatable { if lhs.peerIdWithRevealedOptions != rhs.peerIdWithRevealedOptions { return false } + if lhs.selectedPeerIds != rhs.selectedPeerIds { + return false + } if lhs.peerInputActivities !== rhs.peerInputActivities { return false } @@ -136,14 +126,14 @@ struct ChatListNodeState: Equatable { private func mappedInsertEntries(account: Account, nodeInteraction: ChatListNodeInteraction, peerGroupId: PeerGroupId?, mode: ChatListNodeMode, entries: [ChatListNodeViewTransitionInsertEntry]) -> [ListViewInsertItem] { return entries.map { entry -> ListViewInsertItem in switch entry.entry { - case let .SearchEntry(theme, text): - return ListViewInsertItem(index: entry.index, previousIndex: entry.previousIndex, item: ChatListSearchItem(theme: theme, placeholder: text, activate: { + case let .SearchEntry(theme, text, isEnabled): + return ListViewInsertItem(index: entry.index, previousIndex: entry.previousIndex, item: ChatListSearchItem(theme: theme, isEnabled: isEnabled, placeholder: text, activate: { nodeInteraction.activateSearch() }), directionHint: entry.directionHint) - case let .PeerEntry(index, presentationData, message, combinedReadState, notificationSettings, embeddedState, peer, summaryInfo, editing, hasActiveRevealControls, inputActivities, isAd): + case let .PeerEntry(index, presentationData, message, combinedReadState, notificationSettings, embeddedState, peer, summaryInfo, editing, hasActiveRevealControls, selected, inputActivities, isAd): switch mode { case .chatList: - return ListViewInsertItem(index: entry.index, previousIndex: entry.previousIndex, item: ChatListItem(presentationData: presentationData, account: account, peerGroupId: peerGroupId, index: index, content: .peer(message: message, peer: peer, combinedReadState: combinedReadState, notificationSettings: notificationSettings, summaryInfo: summaryInfo, embeddedState: embeddedState, inputActivities: inputActivities, isAd: isAd, ignoreUnreadBadge: false), editing: editing, hasActiveRevealControls: hasActiveRevealControls, header: nil, enableContextActions: true, interaction: nodeInteraction), directionHint: entry.directionHint) + return ListViewInsertItem(index: entry.index, previousIndex: entry.previousIndex, item: ChatListItem(presentationData: presentationData, account: account, peerGroupId: peerGroupId, index: index, content: .peer(message: message, peer: peer, combinedReadState: combinedReadState, notificationSettings: notificationSettings, summaryInfo: summaryInfo, embeddedState: embeddedState, inputActivities: inputActivities, isAd: isAd, ignoreUnreadBadge: false), editing: editing, hasActiveRevealControls: hasActiveRevealControls, selected: selected, header: nil, enableContextActions: true, interaction: nodeInteraction), directionHint: entry.directionHint) case let .peers(filter): let itemPeer = peer.chatMainPeer var chatPeer: Peer? @@ -201,7 +191,7 @@ private func mappedInsertEntries(account: Account, nodeInteraction: ChatListNode case let .HoleEntry(_, theme): return ListViewInsertItem(index: entry.index, previousIndex: entry.previousIndex, item: ChatListHoleItem(theme: theme), directionHint: entry.directionHint) case let .GroupReferenceEntry(index, presentationData, groupId, message, topPeers, counters, editing): - return ListViewInsertItem(index: entry.index, previousIndex: entry.previousIndex, item: ChatListItem(presentationData: presentationData, account: account, peerGroupId: peerGroupId, index: index, content: .groupReference(groupId: groupId, message: message, topPeers: topPeers, counters: counters), editing: editing, hasActiveRevealControls: false, header: nil, enableContextActions: true, interaction: nodeInteraction), directionHint: entry.directionHint) + return ListViewInsertItem(index: entry.index, previousIndex: entry.previousIndex, item: ChatListItem(presentationData: presentationData, account: account, peerGroupId: peerGroupId, index: index, content: .groupReference(groupId: groupId, message: message, topPeers: topPeers, counters: counters), editing: editing, hasActiveRevealControls: false, selected: false, header: nil, enableContextActions: true, interaction: nodeInteraction), directionHint: entry.directionHint) } } } @@ -209,14 +199,14 @@ private func mappedInsertEntries(account: Account, nodeInteraction: ChatListNode private func mappedUpdateEntries(account: Account, nodeInteraction: ChatListNodeInteraction, peerGroupId: PeerGroupId?, mode: ChatListNodeMode, entries: [ChatListNodeViewTransitionUpdateEntry]) -> [ListViewUpdateItem] { return entries.map { entry -> ListViewUpdateItem in switch entry.entry { - case let .SearchEntry(theme, text): - return ListViewUpdateItem(index: entry.index, previousIndex: entry.previousIndex, item: ChatListSearchItem(theme: theme, placeholder: text, activate: { + case let .SearchEntry(theme, text, isEnabled): + return ListViewUpdateItem(index: entry.index, previousIndex: entry.previousIndex, item: ChatListSearchItem(theme: theme, isEnabled: isEnabled, placeholder: text, activate: { nodeInteraction.activateSearch() }), directionHint: entry.directionHint) - case let .PeerEntry(index, presentationData, message, combinedReadState, notificationSettings, embeddedState, peer, summaryInfo, editing, hasActiveRevealControls, inputActivities, isAd): + case let .PeerEntry(index, presentationData, message, combinedReadState, notificationSettings, embeddedState, peer, summaryInfo, editing, hasActiveRevealControls, selected, inputActivities, isAd): switch mode { case .chatList: - return ListViewUpdateItem(index: entry.index, previousIndex: entry.previousIndex, item: ChatListItem(presentationData: presentationData, account: account, peerGroupId: peerGroupId, index: index, content: .peer(message: message, peer: peer, combinedReadState: combinedReadState, notificationSettings: notificationSettings, summaryInfo: summaryInfo, embeddedState: embeddedState, inputActivities: inputActivities, isAd: isAd, ignoreUnreadBadge: false), editing: editing, hasActiveRevealControls: hasActiveRevealControls, header: nil, enableContextActions: true, interaction: nodeInteraction), directionHint: entry.directionHint) + return ListViewUpdateItem(index: entry.index, previousIndex: entry.previousIndex, item: ChatListItem(presentationData: presentationData, account: account, peerGroupId: peerGroupId, index: index, content: .peer(message: message, peer: peer, combinedReadState: combinedReadState, notificationSettings: notificationSettings, summaryInfo: summaryInfo, embeddedState: embeddedState, inputActivities: inputActivities, isAd: isAd, ignoreUnreadBadge: false), editing: editing, hasActiveRevealControls: hasActiveRevealControls, selected: selected, header: nil, enableContextActions: true, interaction: nodeInteraction), directionHint: entry.directionHint) case let .peers(filter): let itemPeer = peer.chatMainPeer var chatPeer: Peer? @@ -242,7 +232,7 @@ private func mappedUpdateEntries(account: Account, nodeInteraction: ChatListNode case let .HoleEntry(_, theme): return ListViewUpdateItem(index: entry.index, previousIndex: entry.previousIndex, item: ChatListHoleItem(theme: theme), directionHint: entry.directionHint) case let .GroupReferenceEntry(index, presentationData, groupId, message, topPeers, counters, editing): - return ListViewUpdateItem(index: entry.index, previousIndex: entry.previousIndex, item: ChatListItem(presentationData: presentationData, account: account, peerGroupId: peerGroupId, index: index, content: .groupReference(groupId: groupId, message: message, topPeers: topPeers, counters: counters), editing: editing, hasActiveRevealControls: false, header: nil, enableContextActions: true, interaction: nodeInteraction), directionHint: entry.directionHint) + return ListViewUpdateItem(index: entry.index, previousIndex: entry.previousIndex, item: ChatListItem(presentationData: presentationData, account: account, peerGroupId: peerGroupId, index: index, content: .groupReference(groupId: groupId, message: message, topPeers: topPeers, counters: counters), editing: editing, hasActiveRevealControls: false, selected: false, header: nil, enableContextActions: true, interaction: nodeInteraction), directionHint: entry.directionHint) } } } @@ -309,8 +299,11 @@ final class ChatListNode: ListView { private var dequeuedInitialTransitionOnLayout = false private var enqueuedTransition: (ChatListNodeListViewTransition, () -> Void)? - private var currentState: ChatListNodeState + private(set) var currentState: ChatListNodeState private let statePromise: ValuePromise + var state: Signal { + return self.statePromise.get() + } private var currentLocation: ChatListNodeLocation? private let chatListLocation = ValuePromise() @@ -348,7 +341,7 @@ final class ChatListNode: ListView { self.controlsHistoryPreload = controlsHistoryPreload self.mode = mode - self.currentState = ChatListNodeState(presentationData: ChatListPresentationData(theme: theme, strings: strings, dateTimeFormat: dateTimeFormat, nameSortOrder: nameSortOrder, nameDisplayOrder: nameDisplayOrder, disableAnimations: disableAnimations), editing: false, peerIdWithRevealedOptions: nil, peerInputActivities: nil) + self.currentState = ChatListNodeState(presentationData: ChatListPresentationData(theme: theme, strings: strings, dateTimeFormat: dateTimeFormat, nameSortOrder: nameSortOrder, nameDisplayOrder: nameDisplayOrder, disableAnimations: disableAnimations), editing: false, peerIdWithRevealedOptions: nil, selectedPeerIds: Set(), peerInputActivities: nil) self.statePromise = ValuePromise(self.currentState, ignoreRepeated: true) self.theme = theme @@ -365,6 +358,16 @@ final class ChatListNode: ListView { if let strongSelf = self, let peerSelected = strongSelf.peerSelected { peerSelected(peer.id, true, false) } + }, togglePeerSelected: { [weak self] peerId in + self?.updateState { state in + var state = state + if state.selectedPeerIds.contains(peerId) { + state.selectedPeerIds.remove(peerId) + } else { + state.selectedPeerIds.insert(peerId) + } + return state + } }, messageSelected: { [weak self] message, isAd in if let strongSelf = self, let peerSelected = strongSelf.peerSelected { peerSelected(message.id.peerId, true, isAd) @@ -378,7 +381,9 @@ final class ChatListNode: ListView { if let strongSelf = self { strongSelf.updateState { state in if (peerId == nil && fromPeerId == state.peerIdWithRevealedOptions) || (peerId != nil && fromPeerId == nil) { - return state.withUpdatedPeerIdWithRevealedOptions(peerId) + var state = state + state.peerIdWithRevealedOptions = peerId + return state } else { return state } @@ -398,8 +403,10 @@ final class ChatListNode: ListView { }, setPeerMuted: { [weak self] peerId, _ in let _ = (togglePeerMuted(account: account, peerId: peerId) |> deliverOnMainQueue).start(completed: { - self?.updateState { - return $0.withUpdatedPeerIdWithRevealedOptions(nil) + self?.updateState { state in + var state = state + state.peerIdWithRevealedOptions = nil + return state } }) }, deletePeer: { [weak self] peerId in @@ -413,8 +420,10 @@ final class ChatListNode: ListView { let _ = (togglePeerUnreadMarkInteractively(postbox: account.postbox, viewTracker: account.viewTracker, peerId: peerId) |> deliverOnMainQueue).start(completed: { - self?.updateState { - return $0.withUpdatedPeerIdWithRevealedOptions(nil) + self?.updateState { state in + var state = state + state.peerIdWithRevealedOptions = nil + return state } }) }) @@ -443,13 +452,12 @@ final class ChatListNode: ListView { let entries = chatListNodeEntriesForView(update.view, state: state, savedMessagesPeer: savedMessagesPeer, mode: mode).filter { entry in switch entry { - case let .PeerEntry(_, _, _, _, _, _, peer, _, _, _, _, _): + case let .PeerEntry(_, _, _, _, _, _, peer, _, _, _, _, _, _): //ChatListNodePeersFilter switch mode { case .chatList: return true case let .peers(filter): - guard !filter.contains(.excludeSavedMessages) || peer.peerId != currentPeerId else { return false } guard !filter.contains(.excludeSecretChats) || peer.peerId.namespace != Namespaces.Peer.SecretChat else { return false } guard !filter.contains(.onlyPrivateChats) || peer.peerId.namespace == Namespaces.Peer.CloudUser else { return false } @@ -533,7 +541,7 @@ final class ChatListNode: ListView { var updatedPinnedCount = 0 if let previous = previousView { for entry in previous.filteredEntries { - if case let .PeerEntry(index, _, _, _, _, _, _, _, _, _, _, _) = entry { + if case let .PeerEntry(index, _, _, _, _, _, _, _, _, _, _, _, _) = entry { if index.pinningIndex != nil { previousPinnedCount += 1 } @@ -541,7 +549,7 @@ final class ChatListNode: ListView { } } for entry in processedView.filteredEntries { - if case let .PeerEntry(index, _, _, _, _, _, _, _, _, _, _, _) = entry { + if case let .PeerEntry(index, _, _, _, _, _, _, _, _, _, _, _, _) = entry { if index.pinningIndex != nil { updatedPinnedCount += 1 } @@ -550,6 +558,9 @@ final class ChatListNode: ListView { if previousPinnedCount != updatedPinnedCount { disableAnimations = false } + if previousState.selectedPeerIds != state.selectedPeerIds { + disableAnimations = false + } } return preparedChatListNodeViewTransition(from: previousView, to: processedView, reason: reason, disableAnimations: disableAnimations, account: account, scrollPosition: updatedScrollPosition) @@ -593,7 +604,7 @@ final class ChatListNode: ListView { continue } switch chatListView.filteredEntries[entryCount - i - 1] { - case let .PeerEntry(_, _, _, readState, notificationSettings, _, _, _, _, _, _, _): + case let .PeerEntry(_, _, _, readState, notificationSettings, _, _, _, _, _, _, _, _): if let readState = readState { let count = readState.count rawUnreadCount += count @@ -716,8 +727,10 @@ final class ChatListNode: ListView { } |> deliverOnMainQueue).start(next: { [weak self] activities in if let strongSelf = self { - strongSelf.updateState { current in - return current.withUpdatedPeerInputActivities(activities) + strongSelf.updateState { state in + var state = state + state.peerInputActivities = activities + return state } } }) @@ -725,8 +738,10 @@ final class ChatListNode: ListView { self.beganInteractiveDragging = { [weak self] in if let strongSelf = self { if strongSelf.currentState.peerIdWithRevealedOptions != nil { - strongSelf.updateState { - return $0.withUpdatedPeerIdWithRevealedOptions(nil) + strongSelf.updateState { state in + var state = state + state.peerIdWithRevealedOptions = nil + return state } } } @@ -740,7 +755,7 @@ final class ChatListNode: ListView { var referenceId: PinnedItemId? var beforeAll = false switch toEntry { - case let .PeerEntry(index, _, _, _, _, _, _, _, _, _, _, isAd): + case let .PeerEntry(index, _, _, _, _, _, _, _, _, _, _, _, isAd): if isAd { beforeAll = true } else { @@ -760,7 +775,7 @@ final class ChatListNode: ListView { var itemId: PinnedItemId? switch fromEntry { - case let .PeerEntry(index, _, _, _, _, _, _, _, _, _, _, _): + case let .PeerEntry(index, _, _, _, _, _, _, _, _, _, _, _, _): itemId = .peer(index.messageIndex.id.peerId) case let .GroupReferenceEntry(_, _, groupId, _, _, _, _): itemId = .group(groupId) @@ -860,8 +875,10 @@ final class ChatListNode: ListView { self.keepTopItemOverscrollBackground = ListViewKeepTopItemOverscrollBackground(color: theme.chatList.pinnedItemBackgroundColor, direction: true) } - self.updateState { - return $0.withUpdatedPresentationData(ChatListPresentationData(theme: theme, strings: strings, dateTimeFormat: dateTimeFormat, nameSortOrder: nameSortOrder, nameDisplayOrder: nameDisplayOrder, disableAnimations: disableAnimations)) + self.updateState { state in + var state = state + state.presentationData = ChatListPresentationData(theme: theme, strings: strings, dateTimeFormat: dateTimeFormat, nameSortOrder: nameSortOrder, nameDisplayOrder: nameDisplayOrder, disableAnimations: disableAnimations) + return state } } } @@ -1080,7 +1097,7 @@ final class ChatListNode: ListView { continue } switch chatListView.filteredEntries[entryCount - i - 1] { - case let .PeerEntry(index, _, _, _, _, _, peer, _, _, _, _, _): + case let .PeerEntry(index, _, _, _, _, _, peer, _, _, _, _, _, _): if interaction.highlightedChatLocation?.location == ChatLocation.peer(peer.peerId) { current = (index, peer.peerId, entryCount - i - 1) break outer @@ -1113,12 +1130,12 @@ final class ChatListNode: ListView { break case .previous(unread: false), .next(unread: false): if current.2 != entryCount - range.firstIndex - 1 && entryCount > 2 { - if case let .PeerEntry(index, _, _, _, _, _, peer, _, _, _, _, _) = chatListView.filteredEntries[current.2 - 1] { + if case let .PeerEntry(index, _, _, _, _, _, peer, _, _, _, _, _, _) = chatListView.filteredEntries[current.2 - 1] { next = (index, peer.peerId) } } if current.2 != entryCount - range.lastIndex - 2 && entryCount > 2 { - if case let .PeerEntry(index, _, _, _, _, _, peer, _, _, _, _, _) = chatListView.filteredEntries[current.2 + 1] { + if case let .PeerEntry(index, _, _, _, _, _, peer, _, _, _, _, _, _) = chatListView.filteredEntries[current.2 + 1] { previous = (index, peer.peerId) } } @@ -1177,7 +1194,7 @@ final class ChatListNode: ListView { continue } switch chatListView.filteredEntries[entryCount - i - 1] { - case let .PeerEntry(index, _, _, readState, notificationSettings, _, _, _, _, _, _, _): + case let .PeerEntry(index, _, _, readState, notificationSettings, _, _, _, _, _, _, _, _): return index default: break diff --git a/TelegramUI/ChatListNodeEntries.swift b/TelegramUI/ChatListNodeEntries.swift index 5959c5b922..1cd883e5ae 100644 --- a/TelegramUI/ChatListNodeEntries.swift +++ b/TelegramUI/ChatListNodeEntries.swift @@ -52,8 +52,8 @@ enum ChatListNodeEntryId: Hashable { } enum ChatListNodeEntry: Comparable, Identifiable { - case SearchEntry(theme: PresentationTheme, text: String) - case PeerEntry(index: ChatListIndex, presentationData: ChatListPresentationData, message: Message?, readState: CombinedPeerReadState?, notificationSettings: PeerNotificationSettings?, embeddedInterfaceState: PeerChatListEmbeddedInterfaceState?, peer: RenderedPeer, summaryInfo: ChatListMessageTagSummaryInfo, editing: Bool, hasActiveRevealControls: Bool, inputActivities: [(Peer, PeerInputActivity)]?, isAd: Bool) + case SearchEntry(theme: PresentationTheme, text: String, isEnabled: Bool) + case PeerEntry(index: ChatListIndex, presentationData: ChatListPresentationData, message: Message?, readState: CombinedPeerReadState?, notificationSettings: PeerNotificationSettings?, embeddedInterfaceState: PeerChatListEmbeddedInterfaceState?, peer: RenderedPeer, summaryInfo: ChatListMessageTagSummaryInfo, editing: Bool, hasActiveRevealControls: Bool, selected: Bool, inputActivities: [(Peer, PeerInputActivity)]?, isAd: Bool) case HoleEntry(ChatListHole, theme: PresentationTheme) case GroupReferenceEntry(index: ChatListIndex, presentationData: ChatListPresentationData, groupId: PeerGroupId, message: Message?, topPeers: [Peer], counters: GroupReferenceUnreadCounters, editing: Bool) @@ -61,7 +61,7 @@ enum ChatListNodeEntry: Comparable, Identifiable { switch self { case .SearchEntry: return ChatListIndex.absoluteUpperBound - case let .PeerEntry(index, _, _, _, _, _, _, _, _, _, _, _): + case let .PeerEntry(index, _, _, _, _, _, _, _, _, _, _, _, _): return index case let .HoleEntry(hole, _): return ChatListIndex(pinningIndex: nil, messageIndex: hole.index) @@ -74,7 +74,7 @@ enum ChatListNodeEntry: Comparable, Identifiable { switch self { case .SearchEntry: return .Search - case let .PeerEntry(index, _, _, _, _, _, _, _, _, _, _, _): + case let .PeerEntry(index, _, _, _, _, _, _, _, _, _, _, _, _): return .PeerId(index.messageIndex.id.peerId.toInt64()) case let .HoleEntry(hole, _): return .Hole(Int64(hole.index.id.id)) @@ -89,15 +89,15 @@ enum ChatListNodeEntry: Comparable, Identifiable { static func ==(lhs: ChatListNodeEntry, rhs: ChatListNodeEntry) -> Bool { switch lhs { - case let .SearchEntry(lhsTheme, lhsText): - if case let .SearchEntry(rhsTheme, rhsText) = rhs, lhsTheme === rhsTheme, lhsText == rhsText { + case let .SearchEntry(lhsTheme, lhsText, lhsEnabled): + if case let .SearchEntry(rhsTheme, rhsText, rhsEnabled) = rhs, lhsTheme === rhsTheme, lhsText == rhsText, lhsEnabled == rhsEnabled { return true } else { return false } - case let .PeerEntry(lhsIndex, lhsPresentationData, lhsMessage, lhsUnreadCount, lhsNotificationSettings, lhsEmbeddedState, lhsPeer, lhsSummaryInfo, lhsEditing, lhsHasRevealControls, lhsInputActivities, lhsAd): + case let .PeerEntry(lhsIndex, lhsPresentationData, lhsMessage, lhsUnreadCount, lhsNotificationSettings, lhsEmbeddedState, lhsPeer, lhsSummaryInfo, lhsEditing, lhsHasRevealControls, lhsSelected, lhsInputActivities, lhsAd): switch rhs { - case let .PeerEntry(rhsIndex, rhsPresentationData, rhsMessage, rhsUnreadCount, rhsNotificationSettings, rhsEmbeddedState, rhsPeer, rhsSummaryInfo, rhsEditing, rhsHasRevealControls, rhsInputActivities, rhsAd): + case let .PeerEntry(rhsIndex, rhsPresentationData, rhsMessage, rhsUnreadCount, rhsNotificationSettings, rhsEmbeddedState, rhsPeer, rhsSummaryInfo, rhsEditing, rhsHasRevealControls, rhsSelected, rhsInputActivities, rhsAd): if lhsIndex != rhsIndex { return false } @@ -130,6 +130,9 @@ enum ChatListNodeEntry: Comparable, Identifiable { if lhsHasRevealControls != rhsHasRevealControls { return false } + if lhsSelected != rhsSelected { + return false + } if lhsPeer != rhsPeer { return false } @@ -221,15 +224,13 @@ func chatListNodeEntriesForView(_ view: ChatListView, state: ChatListNodeState, pinnedIndexOffset = UInt16(view.additionalItemEntries.count) } - - loop: for entry in view.entries { switch entry { case let .MessageEntry(index, message, combinedReadState, notificationSettings, embeddedState, peer, summaryInfo): if let savedMessagesPeer = savedMessagesPeer, savedMessagesPeer.id == index.messageIndex.id.peerId { continue loop } - result.append(.PeerEntry(index: offsetPinnedIndex(index, offset: pinnedIndexOffset), presentationData: state.presentationData, message: message, readState: combinedReadState, notificationSettings: notificationSettings, embeddedInterfaceState: embeddedState, peer: peer, summaryInfo: summaryInfo, editing: state.editing, hasActiveRevealControls: index.messageIndex.id.peerId == state.peerIdWithRevealedOptions, inputActivities: state.peerInputActivities?.activities[index.messageIndex.id.peerId], isAd: false)) + result.append(.PeerEntry(index: offsetPinnedIndex(index, offset: pinnedIndexOffset), presentationData: state.presentationData, message: message, readState: combinedReadState, notificationSettings: notificationSettings, embeddedInterfaceState: embeddedState, peer: peer, summaryInfo: summaryInfo, editing: state.editing, hasActiveRevealControls: index.messageIndex.id.peerId == state.peerIdWithRevealedOptions, selected: state.selectedPeerIds.contains(index.messageIndex.id.peerId), inputActivities: state.peerInputActivities?.activities[index.messageIndex.id.peerId], isAd: false)) case let .HoleEntry(hole): result.append(.HoleEntry(hole, theme: state.presentationData.theme)) case let .GroupReferenceEntry(groupId, index, message, topPeers, counters): @@ -240,14 +241,14 @@ func chatListNodeEntriesForView(_ view: ChatListView, state: ChatListNodeState, } if view.laterIndex == nil { if let savedMessagesPeer = savedMessagesPeer { - result.append(.PeerEntry(index: ChatListIndex.absoluteUpperBound.predecessor, presentationData: state.presentationData, message: nil, readState: nil, notificationSettings: nil, embeddedInterfaceState: nil, peer: RenderedPeer(peerId: savedMessagesPeer.id, peers: SimpleDictionary([savedMessagesPeer.id: savedMessagesPeer])), summaryInfo: ChatListMessageTagSummaryInfo(), editing: state.editing, hasActiveRevealControls: false, inputActivities: nil, isAd: false)) + result.append(.PeerEntry(index: ChatListIndex.absoluteUpperBound.predecessor, presentationData: state.presentationData, message: nil, readState: nil, notificationSettings: nil, embeddedInterfaceState: nil, peer: RenderedPeer(peerId: savedMessagesPeer.id, peers: SimpleDictionary([savedMessagesPeer.id: savedMessagesPeer])), summaryInfo: ChatListMessageTagSummaryInfo(), editing: state.editing, hasActiveRevealControls: false, selected: false, inputActivities: nil, isAd: false)) } else { if !view.additionalItemEntries.isEmpty { var pinningIndex: UInt16 = UInt16(view.additionalItemEntries.count - 1) for entry in view.additionalItemEntries.reversed() { switch entry { case let .MessageEntry(index, message, combinedReadState, notificationSettings, embeddedState, peer, summaryInfo): - result.append(.PeerEntry(index: ChatListIndex(pinningIndex: pinningIndex, messageIndex: index.messageIndex), presentationData: state.presentationData, message: message, readState: combinedReadState, notificationSettings: notificationSettings, embeddedInterfaceState: embeddedState, peer: peer, summaryInfo: summaryInfo, editing: state.editing, hasActiveRevealControls: index.messageIndex.id.peerId == state.peerIdWithRevealedOptions, inputActivities: state.peerInputActivities?.activities[index.messageIndex.id.peerId], isAd: true)) + result.append(.PeerEntry(index: ChatListIndex(pinningIndex: pinningIndex, messageIndex: index.messageIndex), presentationData: state.presentationData, message: message, readState: combinedReadState, notificationSettings: notificationSettings, embeddedInterfaceState: embeddedState, peer: peer, summaryInfo: summaryInfo, editing: state.editing, hasActiveRevealControls: index.messageIndex.id.peerId == state.peerIdWithRevealedOptions, selected: state.selectedPeerIds.contains(index.messageIndex.id.peerId), inputActivities: state.peerInputActivities?.activities[index.messageIndex.id.peerId], isAd: true)) if pinningIndex != 0 { pinningIndex -= 1 } @@ -258,10 +259,10 @@ func chatListNodeEntriesForView(_ view: ChatListView, state: ChatListNodeState, } } switch mode { - case .chatList: - result.append(.SearchEntry(theme: state.presentationData.theme, text: view.groupId == nil ? state.presentationData.strings.DialogList_SearchLabel : "Search this feed")) - case .peers: - result.append(.SearchEntry(theme: state.presentationData.theme, text: state.presentationData.strings.Common_Search)) + case .chatList: + result.append(.SearchEntry(theme: state.presentationData.theme, text: view.groupId == nil ? state.presentationData.strings.DialogList_SearchLabel : "Search this feed", isEnabled: !state.editing)) + case .peers: + result.append(.SearchEntry(theme: state.presentationData.theme, text: state.presentationData.strings.Common_Search, isEnabled: !state.editing)) } } if result.count >= 2, case .SearchEntry = result[result.count - 1], case .HoleEntry = result[result.count - 2] { diff --git a/TelegramUI/ChatListSearchContainerNode.swift b/TelegramUI/ChatListSearchContainerNode.swift index 63f94711b1..7edf5d014b 100644 --- a/TelegramUI/ChatListSearchContainerNode.swift +++ b/TelegramUI/ChatListSearchContainerNode.swift @@ -443,7 +443,7 @@ enum ChatListSearchEntry: Comparable, Identifiable { interaction.peerSelected(peer.peer) }) case let .message(message, readState, presentationData): - return ChatListItem(presentationData: presentationData, account: account, peerGroupId: nil, index: ChatListIndex(pinningIndex: nil, messageIndex: MessageIndex(message)), content: .peer(message: message, peer: RenderedPeer(message: message), combinedReadState: readState, notificationSettings: nil, summaryInfo: ChatListMessageTagSummaryInfo(), embeddedState: nil, inputActivities: nil, isAd: false, ignoreUnreadBadge: true), editing: false, hasActiveRevealControls: false, header: enableHeaders ? ChatListSearchItemHeader(type: .messages, theme: presentationData.theme, strings: presentationData.strings, actionTitle: nil, action: nil) : nil, enableContextActions: false, interaction: interaction) + return ChatListItem(presentationData: presentationData, account: account, peerGroupId: nil, index: ChatListIndex(pinningIndex: nil, messageIndex: MessageIndex(message)), content: .peer(message: message, peer: RenderedPeer(message: message), combinedReadState: readState, notificationSettings: nil, summaryInfo: ChatListMessageTagSummaryInfo(), embeddedState: nil, inputActivities: nil, isAd: false, ignoreUnreadBadge: true), editing: false, hasActiveRevealControls: false, selected: false, header: enableHeaders ? ChatListSearchItemHeader(type: .messages, theme: presentationData.theme, strings: presentationData.strings, actionTitle: nil, action: nil) : nil, enableContextActions: false, interaction: interaction) case let .addContact(phoneNumber, theme, strings): return ContactsAddItem(theme: theme, strings: strings, phoneNumber: phoneNumber, header: ChatListSearchItemHeader(type: .phoneNumber, theme: theme, strings: strings, actionTitle: nil, action: nil), action: { interaction.addContact(phoneNumber) @@ -743,6 +743,7 @@ final class ChatListSearchContainerNode: SearchDisplayControllerContentNode { openPeer(peer, false) let _ = addRecentlySearchedPeer(postbox: account.postbox, peerId: peer.id).start() self?.listNode.clearHighlightAnimated(true) + }, togglePeerSelected: { _ in }, messageSelected: { [weak self] message, _ in if let peer = message.peers[message.id.peerId] { openMessage(peer, message.id) diff --git a/TelegramUI/ChatListSearchItem.swift b/TelegramUI/ChatListSearchItem.swift index f2dd2dff77..bb67a5e85a 100644 --- a/TelegramUI/ChatListSearchItem.swift +++ b/TelegramUI/ChatListSearchItem.swift @@ -11,11 +11,13 @@ class ChatListSearchItem: ListViewItem { let selectable: Bool = false let theme: PresentationTheme + let isEnabled: Bool private let placeholder: String private let activate: () -> Void - init(theme: PresentationTheme, placeholder: String, activate: @escaping () -> Void) { + init(theme: PresentationTheme, isEnabled: Bool = true, placeholder: String, activate: @escaping () -> Void) { self.theme = theme + self.isEnabled = isEnabled self.placeholder = placeholder self.activate = activate } @@ -30,7 +32,7 @@ class ChatListSearchItem: ListViewItem { if let nextItem = nextItem as? ChatListItem, nextItem.index.pinningIndex != nil { nextIsPinned = true } - let (layout, apply) = makeLayout(self, params, nextIsPinned) + let (layout, apply) = makeLayout(self, params, nextIsPinned, self.isEnabled) node.contentSize = layout.contentSize node.insets = layout.insets @@ -56,7 +58,7 @@ class ChatListSearchItem: ListViewItem { if let nextItem = nextItem as? ChatListItem, nextItem.index.pinningIndex != nil { nextIsPinned = true } - let (nodeLayout, apply) = layout(self, params, nextIsPinned) + let (nodeLayout, apply) = layout(self, params, nextIsPinned, self.isEnabled) Queue.mainQueue().async { completion(nodeLayout, { apply(animation.isAnimated) @@ -70,6 +72,7 @@ class ChatListSearchItem: ListViewItem { class ChatListSearchItemNode: ListViewItemNode { let searchBarNode: SearchBarPlaceholderNode + private var disabledOverlay: ASDisplayNode? var placeholder: String? fileprivate var activate: (() -> Void)? { @@ -92,17 +95,17 @@ class ChatListSearchItemNode: ListViewItemNode { if let nextItem = nextItem as? ChatListItem, nextItem.index.pinningIndex != nil { nextIsPinned = true } - let (layout, apply) = makeLayout(item as! ChatListSearchItem, params, nextIsPinned) + let (layout, apply) = makeLayout(item as! ChatListSearchItem, params, nextIsPinned, (item as! ChatListSearchItem).isEnabled) apply(false) self.contentSize = layout.contentSize self.insets = layout.insets } - func asyncLayout() -> (_ item: ChatListSearchItem, _ params: ListViewItemLayoutParams, _ nextIsPinned: Bool) -> (ListViewItemNodeLayout, (Bool) -> Void) { + func asyncLayout() -> (_ item: ChatListSearchItem, _ params: ListViewItemLayoutParams, _ nextIsPinned: Bool, _ isEnabled: Bool) -> (ListViewItemNodeLayout, (Bool) -> Void) { let searchBarNodeLayout = self.searchBarNode.asyncLayout() let placeholder = self.placeholder - return { item, params, nextIsPinned in + return { item, params, nextIsPinned, isEnabled in let baseWidth = params.width - params.leftInset - params.rightInset let backgroundColor = nextIsPinned ? item.theme.chatList.pinnedItemBackgroundColor : item.theme.chatList.itemBackgroundColor @@ -120,11 +123,36 @@ class ChatListSearchItemNode: ListViewItemNode { transition = .immediate } - strongSelf.searchBarNode.frame = CGRect(origin: CGPoint(x: params.leftInset + 8.0, y: 8.0), size: CGSize(width: baseWidth - 16.0, height: 28.0)) + let searchBarFrame = CGRect(origin: CGPoint(x: params.leftInset + 8.0, y: 8.0), size: CGSize(width: baseWidth - 16.0, height: 28.0)) + strongSelf.searchBarNode.frame = searchBarFrame searchBarApply() strongSelf.searchBarNode.bounds = CGRect(origin: CGPoint(), size: CGSize(width: baseWidth - 16.0, height: 28.0)) + if !item.isEnabled { + if strongSelf.disabledOverlay == nil { + let disabledOverlay = ASDisplayNode() + strongSelf.addSubnode(disabledOverlay) + strongSelf.disabledOverlay = disabledOverlay + if animated { + disabledOverlay.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.25) + } + } + if let disabledOverlay = strongSelf.disabledOverlay { + disabledOverlay.backgroundColor = backgroundColor.withAlphaComponent(0.4) + disabledOverlay.frame = searchBarFrame + } + } else if let disabledOverlay = strongSelf.disabledOverlay { + strongSelf.disabledOverlay = nil + if animated { + disabledOverlay.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.3, removeOnCompletion: false, completion: { [weak disabledOverlay] _ in + disabledOverlay?.removeFromSupernode() + }) + } else { + disabledOverlay.removeFromSupernode() + } + } + transition.updateBackgroundColor(node: strongSelf, color: backgroundColor) } }) diff --git a/TelegramUI/ChatListSelection.swift b/TelegramUI/ChatListSelection.swift new file mode 100644 index 0000000000..757061200a --- /dev/null +++ b/TelegramUI/ChatListSelection.swift @@ -0,0 +1,56 @@ +import Foundation +import SwiftSignalKit +import Postbox +import TelegramCore + +enum ChatListSelectionReadOption: Equatable { + case all(enabled: Bool) + case selective(enabled: Bool) +} + +struct ChatListSelectionOptions: Equatable { + let read: ChatListSelectionReadOption + let delete: Bool +} + +func chatListSelectionOptions(postbox: Postbox, peerIds: Set) -> Signal { + if peerIds.isEmpty { + let key = PostboxViewKey.unreadCounts(items: [.total(nil)]) + return postbox.combinedView(keys: [key]) + |> map { view -> ChatListSelectionOptions in + var hasUnread = false + if let unreadCounts = view.views[key] as? UnreadMessageCountsView, let total = unreadCounts.total() { + for (_, counter) in total.1.absoluteCounters { + if counter.messageCount != 0 { + hasUnread = true + break + } + } + } + return ChatListSelectionOptions(read: .all(enabled: hasUnread), delete: false) + } + |> distinctUntilChanged + } else { + let items: [UnreadMessageCountsItem] = peerIds.map(UnreadMessageCountsItem.peer) + let key = PostboxViewKey.unreadCounts(items: items) + return postbox.combinedView(keys: [key]) + |> map { view -> ChatListSelectionOptions in + var hasUnread = false + if let unreadCounts = view.views[key] as? UnreadMessageCountsView { + loop: for entry in unreadCounts.entries { + switch entry { + case let .peer(_, state): + if let state = state, state.isUnread { + hasUnread = true + break loop + } + default: + break + } + } + } + return ChatListSelectionOptions(read: .selective(enabled: hasUnread), delete: true) + } + |> distinctUntilChanged + } +} diff --git a/TelegramUI/ChatMediaInputTrendingPane.swift b/TelegramUI/ChatMediaInputTrendingPane.swift index c1fd0a1b37..2f0ec5e611 100644 --- a/TelegramUI/ChatMediaInputTrendingPane.swift +++ b/TelegramUI/ChatMediaInputTrendingPane.swift @@ -137,7 +137,7 @@ final class ChatMediaInputTrendingPane: ChatMediaInputPane { let interaction = TrendingPaneInteraction(installPack: { [weak self] info in if let strongSelf = self, let info = info as? StickerPackCollectionInfo { - let _ = (loadedStickerPack(postbox: strongSelf.account.postbox, network: strongSelf.account.network, reference: .id(id: info.id.id, accessHash: info.accessHash)) + let _ = (loadedStickerPack(postbox: strongSelf.account.postbox, network: strongSelf.account.network, reference: .id(id: info.id.id, accessHash: info.accessHash), forceActualized: false) |> mapToSignal { result -> Signal in switch result { case let .result(info, items, installed): diff --git a/TelegramUI/ChatMessageInteractiveMediaNode.swift b/TelegramUI/ChatMessageInteractiveMediaNode.swift index 75920c1bc5..a44541d503 100644 --- a/TelegramUI/ChatMessageInteractiveMediaNode.swift +++ b/TelegramUI/ChatMessageInteractiveMediaNode.swift @@ -178,7 +178,14 @@ final class ChatMessageInteractiveMediaNode: ASDisplayNode { var unboundSize: CGSize if let image = media as? TelegramMediaImage, let dimensions = largestImageRepresentation(image.representations)?.dimensions { unboundSize = CGSize(width: floor(dimensions.width * 0.5), height: floor(dimensions.height * 0.5)) - } else if let file = media as? TelegramMediaFile, let dimensions = file.dimensions { + } else if let file = media as? TelegramMediaFile, var dimensions = file.dimensions { + if let thumbnail = file.previewRepresentations.first { + let dimensionsVertical = dimensions.width < dimensions.height + let thumbnailVertical = thumbnail.dimensions.width < thumbnail.dimensions.height + if dimensionsVertical != thumbnailVertical { + dimensions = CGSize(width: dimensions.height, height: dimensions.width) + } + } unboundSize = CGSize(width: floor(dimensions.width * 0.5), height: floor(dimensions.height * 0.5)) if file.isAnimated { unboundSize = unboundSize.aspectFilled(CGSize(width: 480.0, height: 480.0)) @@ -311,7 +318,7 @@ final class ChatMessageInteractiveMediaNode: ASDisplayNode { if file.isSticker { updateImageSignal = chatMessageSticker(account: account, file: file, small: false) } else { - updateImageSignal = chatMessageVideo(postbox: account.postbox, videoReference: .message(message: MessageReference(message), media: file)) + updateImageSignal = mediaGridMessageVideo(postbox: account.postbox, videoReference: .message(message: MessageReference(message), media: file), onlyFullSize: currentMedia != nil) } } diff --git a/TelegramUI/DefaultDarkAccentPresentationTheme.swift b/TelegramUI/DefaultDarkAccentPresentationTheme.swift index 426137c1c7..cf1f4a4182 100644 --- a/TelegramUI/DefaultDarkAccentPresentationTheme.swift +++ b/TelegramUI/DefaultDarkAccentPresentationTheme.swift @@ -109,7 +109,8 @@ private let chatList = PresentationThemeChatList( itemSeparatorColor: UIColor(rgb: 0x131A23), itemBackgroundColor: UIColor(rgb: 0x18222D), pinnedItemBackgroundColor: UIColor(rgb: 0x213040), - itemHighlightedBackgroundColor: UIColor(rgb: 0x10171F), //!!! + itemHighlightedBackgroundColor: UIColor(rgb: 0x10171F), + itemSelectedBackgroundColor: UIColor(rgb: 0x10171F), titleColor: UIColor(rgb: 0xffffff), secretTitleColor: secretColor, dateTextColor: UIColor(rgb: 0xDBF5FF, alpha: 0.5), diff --git a/TelegramUI/DefaultDarkPresentationTheme.swift b/TelegramUI/DefaultDarkPresentationTheme.swift index 191386defa..a3059d9fd8 100644 --- a/TelegramUI/DefaultDarkPresentationTheme.swift +++ b/TelegramUI/DefaultDarkPresentationTheme.swift @@ -110,6 +110,7 @@ private let chatList = PresentationThemeChatList( itemBackgroundColor: UIColor(rgb: 0x000000), pinnedItemBackgroundColor: UIColor(rgb: 0x1c1c1d), itemHighlightedBackgroundColor: UIColor(rgb: 0x191919), + itemSelectedBackgroundColor: UIColor(rgb: 0x191919), titleColor: UIColor(rgb: 0xffffff), secretTitleColor: UIColor(rgb: 0xb2b2b2), //!!! dateTextColor: UIColor(rgb: 0x8e8e93), diff --git a/TelegramUI/DefaultPresentationTheme.swift b/TelegramUI/DefaultPresentationTheme.swift index e4c027537d..b7311fc7eb 100644 --- a/TelegramUI/DefaultPresentationTheme.swift +++ b/TelegramUI/DefaultPresentationTheme.swift @@ -110,6 +110,7 @@ private func makeDefaultPresentationTheme(accentColor: UIColor, day: Bool) -> Pr itemBackgroundColor: .white, pinnedItemBackgroundColor: UIColor(rgb: 0xf7f7f7), itemHighlightedBackgroundColor: UIColor(rgb: 0xd9d9d9), + itemSelectedBackgroundColor: UIColor(rgb: 0xe9f0fa), titleColor: .black, secretTitleColor: secretColor, dateTextColor: UIColor(rgb: 0x8e8e93), @@ -140,6 +141,7 @@ private func makeDefaultPresentationTheme(accentColor: UIColor, day: Bool) -> Pr itemBackgroundColor: .white, pinnedItemBackgroundColor: UIColor(rgb: 0xf7f7f7), itemHighlightedBackgroundColor: UIColor(rgb: 0xd9d9d9), + itemSelectedBackgroundColor: UIColor(rgb: 0xe9f0fa), titleColor: .black, secretTitleColor: secretColor, dateTextColor: UIColor(rgb: 0x8e8e93), diff --git a/TelegramUI/FastBlur.h b/TelegramUI/FastBlur.h index fa372b6b29..6e5b38f304 100644 --- a/TelegramUI/FastBlur.h +++ b/TelegramUI/FastBlur.h @@ -4,6 +4,7 @@ #import void telegramFastBlur(int imageWidth, int imageHeight, int imageStride, void *pixels); +void telegramFastBlurMore(int imageWidth, int imageHeight, int imageStride, void *pixels); void stickerThumbnailAlphaBlur(int imageWidth, int imageHeight, int imageStride, void *pixels); #endif diff --git a/TelegramUI/FastBlur.m b/TelegramUI/FastBlur.m index e25537789d..e196f30436 100644 --- a/TelegramUI/FastBlur.m +++ b/TelegramUI/FastBlur.m @@ -103,6 +103,103 @@ yi += stride; free(rgb); } +void telegramFastBlurMore(int imageWidth, int imageHeight, int imageStride, void *pixels) +{ + uint8_t *pix = (uint8_t *)pixels; + const int w = imageWidth; + const int h = imageHeight; + const int stride = imageStride; + const int radius = 7; + const int r1 = radius + 1; + const int div = radius * 2 + 1; + + if (radius > 15 || div >= w || div >= h) + { + return; + } + + uint64_t *rgb = malloc(imageStride * imageHeight * sizeof(uint64_t)); + + int x, y, i; + + int yw = 0; + const int we = w - r1; + for (y = 0; y < h; y++) { + uint64_t cur = get_colors (&pix[yw]); + uint64_t rgballsum = -radius * cur; + uint64_t rgbsum = cur * ((r1 * (r1 + 1)) >> 1); + + for (i = 1; i <= radius; i++) { + uint64_t cur = get_colors (&pix[yw + i * 4]); + rgbsum += cur * (r1 - i); + rgballsum += cur; + } + + x = 0; + +#define update(start, middle, end) \ +rgb[y * w + x] = (rgbsum >> 6) & 0x00FF00FF00FF00FF; \ +\ +rgballsum += get_colors (&pix[yw + (start) * 4]) - \ +2 * get_colors (&pix[yw + (middle) * 4]) + \ +get_colors (&pix[yw + (end) * 4]); \ +rgbsum += rgballsum; \ +x++; \ + + while (x < r1) { + update (0, x, x + r1); + } + while (x < we) { + update (x - r1, x, x + r1); + } + while (x < w) { + update (x - r1, x, w - 1); + } +#undef update + + yw += stride; + } + + const int he = h - r1; + for (x = 0; x < w; x++) { + uint64_t rgballsum = -radius * rgb[x]; + uint64_t rgbsum = rgb[x] * ((r1 * (r1 + 1)) >> 1); + for (i = 1; i <= radius; i++) { + rgbsum += rgb[i * w + x] * (r1 - i); + rgballsum += rgb[i * w + x]; + } + + y = 0; + int yi = x * 4; + +#define update(start, middle, end) \ +int64_t res = rgbsum >> 6; \ +pix[yi] = (uint8_t)res; \ +pix[yi + 1] = (uint8_t)(res >> 16); \ +pix[yi + 2] = (uint8_t)(res >> 32); \ +\ +rgballsum += rgb[x + (start) * w] - \ +2 * rgb[x + (middle) * w] + \ +rgb[x + (end) * w]; \ +rgbsum += rgballsum; \ +y++; \ +yi += stride; + + while (y < r1) { + update (0, y, y + r1); + } + while (y < he) { + update (y - r1, y, y + r1); + } + while (y < h) { + update (y - r1, y, h - 1); + } +#undef update + } + + free(rgb); +} + void stickerThumbnailAlphaBlur(int imageWidth, int imageHeight, int imageStride, void *pixels) { vImage_Buffer srcBuffer; srcBuffer.width = imageWidth; diff --git a/TelegramUI/FeaturedStickerPacksController.swift b/TelegramUI/FeaturedStickerPacksController.swift index 08fa0f42e3..4192bbc149 100644 --- a/TelegramUI/FeaturedStickerPacksController.swift +++ b/TelegramUI/FeaturedStickerPacksController.swift @@ -171,7 +171,7 @@ public func featuredStickerPacksController(account: Account) -> ViewController { let arguments = FeaturedStickerPacksControllerArguments(account: account, openStickerPack: { info in presentStickerPackController?(info) }, addPack: { info in - let _ = (loadedStickerPack(postbox: account.postbox, network: account.network, reference: .id(id: info.id.id, accessHash: info.accessHash)) + let _ = (loadedStickerPack(postbox: account.postbox, network: account.network, reference: .id(id: info.id.id, accessHash: info.accessHash), forceActualized: false) |> mapToSignal { result -> Signal in switch result { case let .result(info, items, installed): diff --git a/TelegramUI/GroupStickerPackSetupController.swift b/TelegramUI/GroupStickerPackSetupController.swift index 2f3b14c4bd..28b4ed59ac 100644 --- a/TelegramUI/GroupStickerPackSetupController.swift +++ b/TelegramUI/GroupStickerPackSetupController.swift @@ -309,7 +309,7 @@ public func groupStickerPackSetupController(account: Account, peerId: PeerId, cu let initialData = Promise() if let currentPackInfo = currentPackInfo { - initialData.set(cachedStickerPack(postbox: account.postbox, network: account.network, reference: .id(id: currentPackInfo.id.id, accessHash: currentPackInfo.accessHash)) + initialData.set(cachedStickerPack(postbox: account.postbox, network: account.network, reference: .id(id: currentPackInfo.id.id, accessHash: currentPackInfo.accessHash), forceRemote: false) |> map { result -> InitialStickerPackData? in switch result { case .none: @@ -349,7 +349,7 @@ public func groupStickerPackSetupController(account: Account, peerId: PeerId, cu } } return .single((searchText, .searching)) - |> then((loadedStickerPack(postbox: account.postbox, network: account.network, reference: .name(searchText.lowercased())) |> delay(0.3, queue: Queue.concurrentDefaultQueue())) + |> then((loadedStickerPack(postbox: account.postbox, network: account.network, reference: .name(searchText.lowercased()), forceActualized: false) |> delay(0.3, queue: Queue.concurrentDefaultQueue())) |> mapToSignal { value -> Signal<(String, GroupStickerPackSearchState), NoError> in switch value { case .fetching: diff --git a/TelegramUI/HashtagSearchController.swift b/TelegramUI/HashtagSearchController.swift index f1e4a54c4e..f9bb2c88c4 100644 --- a/TelegramUI/HashtagSearchController.swift +++ b/TelegramUI/HashtagSearchController.swift @@ -43,7 +43,7 @@ final class HashtagSearchController: TelegramController { } let interaction = ChatListNodeInteraction(activateSearch: { }, peerSelected: { peer in - + }, togglePeerSelected: { _ in }, messageSelected: { [weak self] message, _ in if let strongSelf = self { if let peer = message.peers[message.id.peerId] { diff --git a/TelegramUI/ItemListSelectableControlNode.swift b/TelegramUI/ItemListSelectableControlNode.swift index af40c06f2a..166e05ca59 100644 --- a/TelegramUI/ItemListSelectableControlNode.swift +++ b/TelegramUI/ItemListSelectableControlNode.swift @@ -14,8 +14,8 @@ final class ItemListSelectableControlNode: ASDisplayNode { self.addSubnode(self.checkNode) } - static func asyncLayout(_ node: ItemListSelectableControlNode?) -> (_ strokeColor: UIColor, _ fillColor: UIColor, _ foregroundColor: UIColor, _ selected: Bool) -> (CGFloat, (CGSize, Bool) -> ItemListSelectableControlNode) { - return { strokeColor, fillColor, foregroundColor, selected in + static func asyncLayout(_ node: ItemListSelectableControlNode?) -> (_ strokeColor: UIColor, _ fillColor: UIColor, _ foregroundColor: UIColor, _ selected: Bool, _ compact: Bool) -> (CGFloat, (CGSize, Bool) -> ItemListSelectableControlNode) { + return { strokeColor, fillColor, foregroundColor, selected, compact in let resultNode: ItemListSelectableControlNode if let node = node { resultNode = node @@ -23,10 +23,9 @@ final class ItemListSelectableControlNode: ASDisplayNode { resultNode = ItemListSelectableControlNode(strokeColor: strokeColor, fillColor: fillColor, foregroundColor: foregroundColor) } - return (45.0, { size, animated in - + return (compact ? 38.0 : 45.0, { size, animated in let checkSize = CGSize(width: 32.0, height: 32.0) - resultNode.checkNode.frame = CGRect(origin: CGPoint(x: 12.0, y: floor((size.height - checkSize.height) / 2.0)), size: checkSize) + resultNode.checkNode.frame = CGRect(origin: CGPoint(x: compact ? 9 : 12.0, y: floor((size.height - checkSize.height) / 2.0)), size: checkSize) resultNode.checkNode.setIsChecked(selected, animated: animated) return resultNode }) diff --git a/TelegramUI/ItemListTextWithLabelItem.swift b/TelegramUI/ItemListTextWithLabelItem.swift index a46ba3a578..6cf15b0744 100644 --- a/TelegramUI/ItemListTextWithLabelItem.swift +++ b/TelegramUI/ItemListTextWithLabelItem.swift @@ -176,7 +176,7 @@ class ItemListTextWithLabelItemNode: ListViewItemNode { var leftOffset: CGFloat = 0.0 var selectionNodeWidthAndApply: (CGFloat, (CGSize, Bool) -> ItemListSelectableControlNode)? if let selected = item.selected { - let (selectionWidth, selectionApply) = selectionNodeLayout(item.theme.list.itemCheckColors.strokeColor, item.theme.list.itemCheckColors.fillColor, item.theme.list.itemCheckColors.foregroundColor, selected) + let (selectionWidth, selectionApply) = selectionNodeLayout(item.theme.list.itemCheckColors.strokeColor, item.theme.list.itemCheckColors.fillColor, item.theme.list.itemCheckColors.foregroundColor, selected, false) selectionNodeWidthAndApply = (selectionWidth, selectionApply) leftOffset += selectionWidth - 8.0 } diff --git a/TelegramUI/ListMessageFileItemNode.swift b/TelegramUI/ListMessageFileItemNode.swift index 89cba32928..fdc08dd3f9 100644 --- a/TelegramUI/ListMessageFileItemNode.swift +++ b/TelegramUI/ListMessageFileItemNode.swift @@ -304,7 +304,7 @@ final class ListMessageFileItemNode: ListMessageNode { var leftOffset: CGFloat = 0.0 var selectionNodeWidthAndApply: (CGFloat, (CGSize, Bool) -> ItemListSelectableControlNode)? if case let .selectable(selected) = item.selection { - let (selectionWidth, selectionApply) = selectionNodeLayout(item.theme.list.itemCheckColors.strokeColor, item.theme.list.itemCheckColors.fillColor, item.theme.list.itemCheckColors.foregroundColor, selected) + let (selectionWidth, selectionApply) = selectionNodeLayout(item.theme.list.itemCheckColors.strokeColor, item.theme.list.itemCheckColors.fillColor, item.theme.list.itemCheckColors.foregroundColor, selected, false) selectionNodeWidthAndApply = (selectionWidth, selectionApply) leftOffset += selectionWidth } diff --git a/TelegramUI/ListMessageSnippetItemNode.swift b/TelegramUI/ListMessageSnippetItemNode.swift index e9982d0ea4..a08c889b8e 100644 --- a/TelegramUI/ListMessageSnippetItemNode.swift +++ b/TelegramUI/ListMessageSnippetItemNode.swift @@ -153,7 +153,7 @@ final class ListMessageSnippetItemNode: ListMessageNode { var leftOffset: CGFloat = 0.0 var selectionNodeWidthAndApply: (CGFloat, (CGSize, Bool) -> ItemListSelectableControlNode)? if case let .selectable(selected) = item.selection { - let (selectionWidth, selectionApply) = selectionNodeLayout(item.theme.list.itemCheckColors.strokeColor, item.theme.list.itemCheckColors.fillColor, item.theme.list.itemCheckColors.foregroundColor, selected) + let (selectionWidth, selectionApply) = selectionNodeLayout(item.theme.list.itemCheckColors.strokeColor, item.theme.list.itemCheckColors.fillColor, item.theme.list.itemCheckColors.foregroundColor, selected, false) selectionNodeWidthAndApply = (selectionWidth, selectionApply) leftOffset += selectionWidth } diff --git a/TelegramUI/NativeVideoContent.swift b/TelegramUI/NativeVideoContent.swift index 6ce7f4fff7..8a125d23bd 100644 --- a/TelegramUI/NativeVideoContent.swift +++ b/TelegramUI/NativeVideoContent.swift @@ -55,7 +55,19 @@ final class NativeVideoContent: UniversalVideoContent { self.nativeId = id self.fileReference = fileReference self.imageReference = imageReference - self.dimensions = fileReference.media.dimensions ?? CGSize(width: 128.0, height: 128.0) + if var dimensions = fileReference.media.dimensions { + if let thumbnail = fileReference.media.previewRepresentations.first { + let dimensionsVertical = dimensions.width < dimensions.height + let thumbnailVertical = thumbnail.dimensions.width < thumbnail.dimensions.height + if dimensionsVertical != thumbnailVertical { + dimensions = CGSize(width: dimensions.height, height: dimensions.width) + } + } + self.dimensions = dimensions + } else { + self.dimensions = CGSize(width: 128.0, height: 128.0) + } + self.duration = fileReference.media.duration ?? 0 self.streamVideo = streamVideo self.loopVideo = loopVideo diff --git a/TelegramUI/OverlayInstantVideoDecoration.swift b/TelegramUI/OverlayInstantVideoDecoration.swift index 883fceef6d..571ad40ab5 100644 --- a/TelegramUI/OverlayInstantVideoDecoration.swift +++ b/TelegramUI/OverlayInstantVideoDecoration.swift @@ -71,7 +71,7 @@ final class OverlayInstantVideoDecoration: UniversalVideoDecoration { if let snapshot = snapshot { self.contentContainerNode.view.addSubview(snapshot) if let validLayoutSize = self.validLayoutSize { - snapshot.frame = CGRect(origin: CGPoint(), size: validLayoutSize) + snapshot.frame = CGRect(origin: CGPoint(), size: snapshot.frame.size) } } } diff --git a/TelegramUI/OverlayPlayerControlsNode.swift b/TelegramUI/OverlayPlayerControlsNode.swift index 2d55a0da55..73796c0373 100644 --- a/TelegramUI/OverlayPlayerControlsNode.swift +++ b/TelegramUI/OverlayPlayerControlsNode.swift @@ -129,7 +129,9 @@ final class OverlayPlayerControlsNode: ASDisplayNode { self.scrubberNode = MediaPlayerScrubbingNode(content: .standard(lineHeight: 3.0, lineCap: .round, scrubberHandle: .circle, backgroundColor: theme.list.controlSecondaryColor, foregroundColor: theme.list.itemAccentColor)) self.leftDurationLabel = MediaPlayerTimeTextNode(textColor: theme.list.itemSecondaryTextColor) + self.leftDurationLabel.displaysAsynchronously = false self.rightDurationLabel = MediaPlayerTimeTextNode(textColor: theme.list.itemSecondaryTextColor) + self.rightDurationLabel.displaysAsynchronously = false self.rightDurationLabel.mode = .reversed self.rightDurationLabel.alignment = .right diff --git a/TelegramUI/PeerReportController.swift b/TelegramUI/PeerReportController.swift index 6a6eb7d352..b48827e297 100644 --- a/TelegramUI/PeerReportController.swift +++ b/TelegramUI/PeerReportController.swift @@ -14,6 +14,7 @@ private enum PeerReportOption { case violence case copyright case pornoghraphy + case childAbuse case other } @@ -25,6 +26,7 @@ func peerReportOptionsController(account: Account, subject: PeerReportSubject, p .spam, .violence, .pornoghraphy, + .childAbuse, .copyright, .other ] @@ -32,6 +34,7 @@ func peerReportOptionsController(account: Account, subject: PeerReportSubject, p var items: [ActionSheetItem] = [] for option in options { let title: String + var color: ActionSheetButtonColor = .accent switch option { case .spam: title = presentationData.strings.ReportPeer_ReasonSpam @@ -39,12 +42,15 @@ func peerReportOptionsController(account: Account, subject: PeerReportSubject, p title = presentationData.strings.ReportPeer_ReasonViolence case .pornoghraphy: title = presentationData.strings.ReportPeer_ReasonPornography + case .childAbuse: + title = presentationData.strings.ReportPeer_ReasonChildAbuse + color = .destructive case .copyright: title = presentationData.strings.ReportPeer_ReasonCopyright case .other: title = presentationData.strings.ReportPeer_ReasonOther } - items.append(ActionSheetButtonItem(title: title, action: { [weak controller] in + items.append(ActionSheetButtonItem(title: title, color: color, action: { [weak controller] in var reportReason: ReportReason? switch option { case .spam: @@ -53,6 +59,8 @@ func peerReportOptionsController(account: Account, subject: PeerReportSubject, p reportReason = .violence case .pornoghraphy: reportReason = .porno + case .childAbuse: + reportReason = .childAbuse case .copyright: reportReason = .copyright case .other: diff --git a/TelegramUI/PeerSelectionControllerNode.swift b/TelegramUI/PeerSelectionControllerNode.swift index eaa805da41..ba8b71fdbf 100644 --- a/TelegramUI/PeerSelectionControllerNode.swift +++ b/TelegramUI/PeerSelectionControllerNode.swift @@ -312,6 +312,7 @@ final class PeerSelectionControllerNode: ASDisplayNode { } func animateOut(completion: (() -> Void)? = nil) { + self.clipsToBounds = true self.layer.animatePosition(from: CGPoint(), to: CGPoint(x: 0.0, y: self.layer.bounds.size.height), duration: 0.2, timingFunction: kCAMediaTimingFunctionEaseInEaseOut, removeOnCompletion: false, additive: true, completion: { [weak self] _ in if let strongSelf = self { strongSelf.dismiss() diff --git a/TelegramUI/PermissionContentNode.swift b/TelegramUI/PermissionContentNode.swift index 2d559047e3..92687e6ec5 100644 --- a/TelegramUI/PermissionContentNode.swift +++ b/TelegramUI/PermissionContentNode.swift @@ -42,7 +42,7 @@ final class PermissionContentNode: ASDisplayNode { self.actionButton = SolidRoundedButtonNode(theme: theme, height: 48.0, cornerRadius: 9.0) self.privacyPolicyButton = HighlightableButtonNode() - self.privacyPolicyButton.setTitle(strings.Permissions_PrivacyPolicy, with: Font.regular(16.0), with: theme.list.itemAccentColor, for: .normal) + //self.privacyPolicyButton.setTitle(strings.Permissions_PrivacyPolicy, with: Font.regular(16.0), with: theme.list.itemAccentColor, for: .normal) super.init() diff --git a/TelegramUI/PermissionController.swift b/TelegramUI/PermissionController.swift index 36b977f0c3..526d4e70c9 100644 --- a/TelegramUI/PermissionController.swift +++ b/TelegramUI/PermissionController.swift @@ -78,7 +78,7 @@ final class PermissionController : ViewController { self.navigationBar?.updatePresentationData(NavigationBarPresentationData(presentationData: self.presentationData)) self.title = self.presentationData.strings.Settings_AppLanguage self.navigationItem.backBarButtonItem = UIBarButtonItem(title: nil, style: .plain, target: nil, action: nil) - self.navigationItem.rightBarButtonItem = UIBarButtonItem(title: self.presentationData.strings.Permissions_Skip, style: .plain, target: self, action: #selector(PermissionController.nextPressed)) + //self.navigationItem.rightBarButtonItem = UIBarButtonItem(title: self.presentationData.strings.Permissions_Skip, style: .plain, target: self, action: #selector(PermissionController.nextPressed)) self.controllerNode.updatePresentationData(self.presentationData) } diff --git a/TelegramUI/PermissionControllerNode.swift b/TelegramUI/PermissionControllerNode.swift index 30828fc64a..7d46cc8fb7 100644 --- a/TelegramUI/PermissionControllerNode.swift +++ b/TelegramUI/PermissionControllerNode.swift @@ -126,79 +126,79 @@ final class PermissionControllerNode: ASDisplayNode { } private func transition(state: PermissionControllerState, transition: ContainedViewLayoutTransition) { - let insets = state.layout.layout.insets(options: [.statusBar]) - let contentFrame = CGRect(origin: CGPoint(x: 0.0, y: 0.0), size: CGSize(width: state.layout.layout.size.width, height: state.layout.layout.size.height)) - - if state.data.state?.kind != self.contentNode?.kind { - if let dataState = state.data.state { - let icon: UIImage? - let title: String - let text: String - let buttonTitle: String - let hasPrivacyPolicy: Bool - - switch dataState { - case let .contacts(status): - icon = UIImage(bundleImageName: "Settings/Permissions/Contacts") - title = self.presentationData.strings.Permissions_ContactsTitle - text = self.presentationData.strings.Permissions_ContactsText - if status == .denied { - buttonTitle = self.presentationData.strings.Permissions_ContactsAllowInSettings - } else { - buttonTitle = self.presentationData.strings.Permissions_ContactsAllow - } - hasPrivacyPolicy = true - case let .notifications(status): - icon = UIImage(bundleImageName: "Settings/Permissions/Notifications") - title = self.presentationData.strings.Permissions_NotificationsTitle - text = self.presentationData.strings.Permissions_NotificationsText - if status == .denied { - buttonTitle = self.presentationData.strings.Permissions_NotificationsAllowInSettings - } else { - buttonTitle = self.presentationData.strings.Permissions_NotificationsAllow - } - hasPrivacyPolicy = false - case let .siri(status): - icon = UIImage(bundleImageName: "Settings/Permissions/CellularData") - title = self.presentationData.strings.Permissions_SiriTitle - text = self.presentationData.strings.Permissions_SiriText - if status == .denied { - buttonTitle = self.presentationData.strings.Permissions_SiriAllowInSettings - } else { - buttonTitle = self.presentationData.strings.Permissions_SiriAllow - } - hasPrivacyPolicy = false - case .cellularData: - icon = UIImage(bundleImageName: "Settings/Permissions/CellularData") - title = self.presentationData.strings.Permissions_CellularDataTitle - text = self.presentationData.strings.Permissions_CellularDataText - buttonTitle = self.presentationData.strings.Permissions_CellularDataAllowInSettings - hasPrivacyPolicy = false - } - - let contentNode = PermissionContentNode(theme: self.presentationData.theme, strings: self.presentationData.strings, kind: dataState.kind, icon: icon, title: title, text: text, buttonTitle: buttonTitle, buttonAction: {}, openPrivacyPolicy: hasPrivacyPolicy ? self.openPrivacyPolicy : nil) - self.insertSubnode(contentNode, at: 0) - contentNode.updateLayout(size: contentFrame.size, insets: insets, transition: .immediate) - contentNode.frame = contentFrame - if let currentContentNode = self.contentNode { - transition.updatePosition(node: currentContentNode, position: CGPoint(x: -contentFrame.size.width / 2.0, y: contentFrame.midY), completion: { [weak currentContentNode] _ in - currentContentNode?.removeFromSupernode() - }) - transition.animateHorizontalOffsetAdditive(node: contentNode, offset: -contentFrame.width) - } else if transition.isAnimated { - contentNode.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.3) - } - self.contentNode = contentNode - } else if let currentContentNode = self.contentNode { - transition.updateAlpha(node: currentContentNode, alpha: 0.0, completion: { [weak currentContentNode] _ in - currentContentNode?.removeFromSupernode() - }) - self.contentNode = nil - } - } else if let contentNode = self.contentNode { - transition.updateFrame(node: contentNode, frame: contentFrame) - contentNode.updateLayout(size: contentFrame.size, insets: insets, transition: transition) - } +// let insets = state.layout.layout.insets(options: [.statusBar]) +// let contentFrame = CGRect(origin: CGPoint(x: 0.0, y: 0.0), size: CGSize(width: state.layout.layout.size.width, height: state.layout.layout.size.height)) +// +// if state.data.state?.kind != self.contentNode?.kind { +// if let dataState = state.data.state { +// let icon: UIImage? +// let title: String +// let text: String +// let buttonTitle: String +// let hasPrivacyPolicy: Bool +// +// switch dataState { +// case let .contacts(status): +// icon = UIImage(bundleImageName: "Settings/Permissions/Contacts") +// title = self.presentationData.strings.Permissions_ContactsTitle +// text = self.presentationData.strings.Permissions_ContactsText +// if status == .denied { +// buttonTitle = self.presentationData.strings.Permissions_ContactsAllowInSettings +// } else { +// buttonTitle = self.presentationData.strings.Permissions_ContactsAllow +// } +// hasPrivacyPolicy = true +// case let .notifications(status): +// icon = UIImage(bundleImageName: "Settings/Permissions/Notifications") +// title = self.presentationData.strings.Permissions_NotificationsTitle +// text = self.presentationData.strings.Permissions_NotificationsText +// if status == .denied { +// buttonTitle = self.presentationData.strings.Permissions_NotificationsAllowInSettings +// } else { +// buttonTitle = self.presentationData.strings.Permissions_NotificationsAllow +// } +// hasPrivacyPolicy = false +// case let .siri(status): +// icon = UIImage(bundleImageName: "Settings/Permissions/CellularData") +// title = self.presentationData.strings.Permissions_SiriTitle +// text = self.presentationData.strings.Permissions_SiriText +// if status == .denied { +// buttonTitle = self.presentationData.strings.Permissions_SiriAllowInSettings +// } else { +// buttonTitle = self.presentationData.strings.Permissions_SiriAllow +// } +// hasPrivacyPolicy = false +// case .cellularData: +// icon = UIImage(bundleImageName: "Settings/Permissions/CellularData") +// title = self.presentationData.strings.Permissions_CellularDataTitle +// text = self.presentationData.strings.Permissions_CellularDataText +// buttonTitle = self.presentationData.strings.Permissions_CellularDataAllowInSettings +// hasPrivacyPolicy = false +// } +// +// let contentNode = PermissionContentNode(theme: self.presentationData.theme, strings: self.presentationData.strings, kind: dataState.kind, icon: icon, title: title, text: text, buttonTitle: buttonTitle, buttonAction: {}, openPrivacyPolicy: hasPrivacyPolicy ? self.openPrivacyPolicy : nil) +// self.insertSubnode(contentNode, at: 0) +// contentNode.updateLayout(size: contentFrame.size, insets: insets, transition: .immediate) +// contentNode.frame = contentFrame +// if let currentContentNode = self.contentNode { +// transition.updatePosition(node: currentContentNode, position: CGPoint(x: -contentFrame.size.width / 2.0, y: contentFrame.midY), completion: { [weak currentContentNode] _ in +// currentContentNode?.removeFromSupernode() +// }) +// transition.animateHorizontalOffsetAdditive(node: contentNode, offset: -contentFrame.width) +// } else if transition.isAnimated { +// contentNode.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.3) +// } +// self.contentNode = contentNode +// } else if let currentContentNode = self.contentNode { +// transition.updateAlpha(node: currentContentNode, alpha: 0.0, completion: { [weak currentContentNode] _ in +// currentContentNode?.removeFromSupernode() +// }) +// self.contentNode = nil +// } +// } else if let contentNode = self.contentNode { +// transition.updateFrame(node: contentNode, frame: contentFrame) +// contentNode.updateLayout(size: contentFrame.size, insets: insets, transition: transition) +// } } func containerLayoutUpdated(_ layout: ContainerViewLayout, navigationBarHeight: CGFloat, transition: ContainedViewLayoutTransition) { diff --git a/TelegramUI/PhotoResources.swift b/TelegramUI/PhotoResources.swift index 4d857428f6..b93e0b8dd8 100644 --- a/TelegramUI/PhotoResources.swift +++ b/TelegramUI/PhotoResources.swift @@ -238,7 +238,7 @@ private func chatMessageImageFileThumbnailDatas(account: Account, fileReference: return signal } -private func chatMessageVideoDatas(postbox: Postbox, fileReference: FileMediaReference, thumbnailSize: Bool = false) -> Signal<(Data?, (Data, String)?, Bool), NoError> { +private func chatMessageVideoDatas(postbox: Postbox, fileReference: FileMediaReference, thumbnailSize: Bool = false, onlyFullSize: Bool = false) -> Signal<(Data?, (Data, String)?, Bool), NoError> { if let smallestRepresentation = smallestImageRepresentation(fileReference.media.previewRepresentations) { let thumbnailResource = smallestRepresentation.resource let fullSizeResource = fileReference.media.resource @@ -256,15 +256,20 @@ private func chatMessageVideoDatas(postbox: Postbox, fileReference: FileMediaRef } else { let fetchedThumbnail = fetchedMediaResource(postbox: postbox, reference: fileReference.resourceReference(thumbnailResource), statsCategory: .video) - let thumbnail = Signal { subscriber in - let fetchedDisposable = fetchedThumbnail.start() - let thumbnailDisposable = postbox.mediaBox.resourceData(thumbnailResource).start(next: { next in - subscriber.putNext(next.size == 0 ? nil : try? Data(contentsOf: URL(fileURLWithPath: next.path), options: [])) - }, error: subscriber.putError, completed: subscriber.putCompletion) - - return ActionDisposable { - fetchedDisposable.dispose() - thumbnailDisposable.dispose() + let thumbnail: Signal + if onlyFullSize { + thumbnail = .single(nil) + } else { + thumbnail = Signal { subscriber in + let fetchedDisposable = fetchedThumbnail.start() + let thumbnailDisposable = postbox.mediaBox.resourceData(thumbnailResource).start(next: { next in + subscriber.putNext(next.size == 0 ? nil : try? Data(contentsOf: URL(fileURLWithPath: next.path), options: [])) + }, error: subscriber.putError, completed: subscriber.putCompletion) + + return ActionDisposable { + fetchedDisposable.dispose() + thumbnailDisposable.dispose() + } } } @@ -293,8 +298,12 @@ private func chatMessageVideoDatas(postbox: Postbox, fileReference: FileMediaRef } } } - } |> filter({ _ in - return true//$0.0 != nil || $0.1 != nil || $0.2 + } |> filter({ + if onlyFullSize { + return $0.1 != nil || $0.2 + } else { + return true//$0.0 != nil || $0.1 != nil || $0.2 + } }) return signal @@ -1396,14 +1405,14 @@ func gifPaneVideoThumbnail(account: Account, videoReference: FileMediaReference) } } -func mediaGridMessageVideo(postbox: Postbox, videoReference: FileMediaReference) -> Signal<(TransformImageArguments) -> DrawingContext?, NoError> { - return internalMediaGridMessageVideo(postbox: postbox, videoReference: videoReference) +func mediaGridMessageVideo(postbox: Postbox, videoReference: FileMediaReference, onlyFullSize: Bool = false) -> Signal<(TransformImageArguments) -> DrawingContext?, NoError> { + return internalMediaGridMessageVideo(postbox: postbox, videoReference: videoReference, onlyFullSize: onlyFullSize) |> map { return $0.1 } } -func internalMediaGridMessageVideo(postbox: Postbox, videoReference: FileMediaReference, imageReference: ImageMediaReference? = nil) -> Signal<(() -> CGSize?, (TransformImageArguments) -> DrawingContext?), NoError> { +func internalMediaGridMessageVideo(postbox: Postbox, videoReference: FileMediaReference, imageReference: ImageMediaReference? = nil, onlyFullSize: Bool = false) -> Signal<(() -> CGSize?, (TransformImageArguments) -> DrawingContext?), NoError> { let signal: Signal<(Data?, (Data, String)?, Bool), NoError> if let imageReference = imageReference { signal = chatMessagePhotoDatas(postbox: postbox, photoReference: imageReference, tryAdditionalRepresentations: true) @@ -1411,7 +1420,7 @@ func internalMediaGridMessageVideo(postbox: Postbox, videoReference: FileMediaRe return (thumbnailData, fullSizeData.flatMap({ ($0, "") }), fullSizeComplete) } } else { - signal = chatMessageVideoDatas(postbox: postbox, fileReference: videoReference) + signal = chatMessageVideoDatas(postbox: postbox, fileReference: videoReference, onlyFullSize: onlyFullSize) } return signal @@ -1431,7 +1440,6 @@ func internalMediaGridMessageVideo(postbox: Postbox, videoReference: FileMediaRe } return nil }, { arguments in - assertNotOnMainThread() let context = DrawingContext(size: arguments.drawingSize, clear: true) let drawingRect = arguments.drawingRect @@ -2008,7 +2016,10 @@ func chatMessageImageFile(account: Account, fileReference: FileMediaReference, t var blurredThumbnailImage: UIImage? if let thumbnailImage = thumbnailImage { let thumbnailSize = CGSize(width: thumbnailImage.width, height: thumbnailImage.height) - let thumbnailContextSize = thumbnailSize.aspectFitted(CGSize(width: 150.0, height: 150.0)) + + let initialThumbnailContextFittingSize = fittedSize.fitted(CGSize(width: 100.0, height: 100.0)) + + let thumbnailContextSize = thumbnailSize.aspectFitted(initialThumbnailContextFittingSize) let thumbnailContext = DrawingContext(size: thumbnailContextSize, scale: 1.0) thumbnailContext.withFlippedContext { c in c.interpolationQuality = .none @@ -2016,7 +2027,25 @@ func chatMessageImageFile(account: Account, fileReference: FileMediaReference, t } telegramFastBlur(Int32(thumbnailContextSize.width), Int32(thumbnailContextSize.height), Int32(thumbnailContext.bytesPerRow), thumbnailContext.bytes) - blurredThumbnailImage = thumbnailContext.generateImage() + var thumbnailContextFittingSize = CGSize(width: floor(arguments.drawingSize.width * 0.5), height: floor(arguments.drawingSize.width * 0.5)) + if thumbnailContextFittingSize.width < 150.0 || thumbnailContextFittingSize.height < 150.0 { + thumbnailContextFittingSize = thumbnailContextFittingSize.aspectFilled(CGSize(width: 150.0, height: 150.0)) + } + + if thumbnailContextFittingSize.width > thumbnailContextSize.width { + let additionalContextSize = thumbnailContextFittingSize + let additionalBlurContext = DrawingContext(size: additionalContextSize, scale: 1.0) + additionalBlurContext.withFlippedContext { c in + c.interpolationQuality = .default + if let image = thumbnailContext.generateImage()?.cgImage { + c.draw(image, in: CGRect(origin: CGPoint(), size: additionalContextSize)) + } + } + telegramFastBlur(Int32(additionalContextSize.width), Int32(additionalContextSize.height), Int32(additionalBlurContext.bytesPerRow), additionalBlurContext.bytes) + blurredThumbnailImage = additionalBlurContext.generateImage() + } else { + blurredThumbnailImage = thumbnailContext.generateImage() + } } context.withFlippedContext { c in @@ -2207,15 +2236,35 @@ func chatAvatarGalleryPhoto(account: Account, representations: [(TelegramMediaIm var blurredThumbnailImage: UIImage? if let thumbnailImage = thumbnailImage { let thumbnailSize = CGSize(width: thumbnailImage.width, height: thumbnailImage.height) - let thumbnailContextSize = thumbnailSize.aspectFitted(CGSize(width: 150.0, height: 150.0)) + + let initialThumbnailContextFittingSize = fittedSize.fitted(CGSize(width: 100.0, height: 100.0)) + + let thumbnailContextSize = thumbnailSize.aspectFitted(initialThumbnailContextFittingSize) let thumbnailContext = DrawingContext(size: thumbnailContextSize, scale: 1.0) thumbnailContext.withFlippedContext { c in - c.interpolationQuality = .none c.draw(thumbnailImage, in: CGRect(origin: CGPoint(), size: thumbnailContextSize)) } telegramFastBlur(Int32(thumbnailContextSize.width), Int32(thumbnailContextSize.height), Int32(thumbnailContext.bytesPerRow), thumbnailContext.bytes) - blurredThumbnailImage = thumbnailContext.generateImage() + var thumbnailContextFittingSize = CGSize(width: floor(arguments.drawingSize.width * 0.5), height: floor(arguments.drawingSize.width * 0.5)) + if thumbnailContextFittingSize.width < 150.0 || thumbnailContextFittingSize.height < 150.0 { + thumbnailContextFittingSize = thumbnailContextFittingSize.aspectFilled(CGSize(width: 150.0, height: 150.0)) + } + + if thumbnailContextFittingSize.width > thumbnailContextSize.width { + let additionalContextSize = thumbnailContextFittingSize + let additionalBlurContext = DrawingContext(size: additionalContextSize, scale: 1.0) + additionalBlurContext.withFlippedContext { c in + c.interpolationQuality = .default + if let image = thumbnailContext.generateImage()?.cgImage { + c.draw(image, in: CGRect(origin: CGPoint(), size: additionalContextSize)) + } + } + telegramFastBlur(Int32(additionalContextSize.width), Int32(additionalContextSize.height), Int32(additionalBlurContext.bytesPerRow), additionalBlurContext.bytes) + blurredThumbnailImage = additionalBlurContext.generateImage() + } else { + blurredThumbnailImage = thumbnailContext.generateImage() + } } context.withFlippedContext { c in @@ -2226,7 +2275,7 @@ func chatAvatarGalleryPhoto(account: Account, representations: [(TelegramMediaIm c.setBlendMode(.copy) if let blurredThumbnailImage = blurredThumbnailImage, let cgImage = blurredThumbnailImage.cgImage { - c.interpolationQuality = .low + c.interpolationQuality = .default drawImage(context: c, image: cgImage, orientation: imageOrientation, in: fittedRect) c.setBlendMode(.normal) } diff --git a/TelegramUI/PresentationCall.swift b/TelegramUI/PresentationCall.swift index 443676dc32..15e3e9f22c 100644 --- a/TelegramUI/PresentationCall.swift +++ b/TelegramUI/PresentationCall.swift @@ -391,7 +391,7 @@ public final class PresentationCall { self.reportedIncomingCall = true self.callKitIntegration?.reportIncomingCall(uuid: self.internalId, handle: "\(self.peerId.id)", displayTitle: self.peer?.displayTitle ?? "Unknown", completion: { [weak self] error in if let error = error { - if error.domain == "com.apple.CallKit.error.incomingcall" && error.code == -3 { + if error.domain == "com.apple.CallKit.error.incomingcall" && (error.code == -3 || error.code == 3) { Logger.shared.log("PresentationCall", "reportIncomingCall device in DND mode") } else { Logger.shared.log("PresentationCall", "reportIncomingCall error \(error)") @@ -486,33 +486,40 @@ public final class PresentationCall { } if let presentationState = presentationState { self.statePromise.set(presentationState) - self.updateTone(presentationState) + self.updateTone(presentationState, previous: previous) } } - private func updateTone(_ state: PresentationCallState) { + private func updateTone(_ state: PresentationCallState, previous: CallSession?) { var tone: PresentationCallTone? - switch state { - case .connecting: - tone = .connecting - case .requesting(true): - tone = .ringing - case let .terminated(reason): - if let reason = reason { - switch reason { - case let .ended(type): - switch type { - case .busy: - tone = .busy - case .hungUp, .missed: - tone = .ended + if let previous = previous { + switch previous.state { + case .accepting, .active, .dropping, .requesting: + switch state { + case .connecting: + tone = .connecting + case .requesting(true): + tone = .ringing + case let .terminated(reason): + if let reason = reason { + switch reason { + case let .ended(type): + switch type { + case .busy: + tone = .busy + case .hungUp, .missed: + tone = .ended + } + case .error: + tone = .failed + } } - case .error: - tone = .failed + default: + break } - } - default: - break + default: + break + } } if tone != self.toneRenderer?.tone { if let tone = tone { diff --git a/TelegramUI/PresentationCallToneData.swift b/TelegramUI/PresentationCallToneData.swift index 8a43d9e818..4be4fb3651 100644 --- a/TelegramUI/PresentationCallToneData.swift +++ b/TelegramUI/PresentationCallToneData.swift @@ -74,8 +74,12 @@ enum PresentationCallTone { var loopCount: Int? { switch self { - case .busy, .failed, .ended: + case .busy: return 3 + case .failed: + return 1 + case .ended: + return 1 default: return nil } diff --git a/TelegramUI/PresentationStrings.swift b/TelegramUI/PresentationStrings.swift index e2e9d835a5..b94467d9bd 100644 --- a/TelegramUI/PresentationStrings.swift +++ b/TelegramUI/PresentationStrings.swift @@ -278,303 +278,302 @@ public final class PresentationStrings { return formatWithArgumentRanges(self._s[78]!, self._r[78]!, [_0, _1, _2]) } public var PrivacyLastSeenSettings_NeverShareWith_Placeholder: String { return self._s[79]! } - public var Notifications_ExceptionsMessagePlaceholder: String { return self._s[83]! } - public var NotificationsSound_Alert: String { return self._s[84]! } - public var TwoStepAuth_SetupEmail: String { return self._s[85]! } - public var Checkout_PayWithFaceId: String { return self._s[86]! } - public var Login_ResetAccountProtected_Reset: String { return self._s[89]! } - public var SocksProxySetup_Hostname: String { return self._s[90]! } + public var Notifications_ExceptionsMessagePlaceholder: String { return self._s[84]! } + public var NotificationsSound_Alert: String { return self._s[85]! } + public var TwoStepAuth_SetupEmail: String { return self._s[86]! } + public var Checkout_PayWithFaceId: String { return self._s[87]! } + public var Login_ResetAccountProtected_Reset: String { return self._s[90]! } + public var SocksProxySetup_Hostname: String { return self._s[91]! } public func PrivacyPolicy_AgeVerificationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[91]!, self._r[91]!, [_0]) + return formatWithArgumentRanges(self._s[92]!, self._r[92]!, [_0]) } - public var NotificationsSound_None: String { return self._s[92]! } - public var Channel_AdminLog_CanEditMessages: String { return self._s[94]! } + public var NotificationsSound_None: String { return self._s[93]! } + public var Channel_AdminLog_CanEditMessages: String { return self._s[95]! } public func MESSAGE_CONTACT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[95]!, self._r[95]!, [_1]) + return formatWithArgumentRanges(self._s[96]!, self._r[96]!, [_1]) } - public var MediaPicker_MomentsDateRangeSameMonthYearFormat: String { return self._s[96]! } - public var Notification_MessageLifetime1w: String { return self._s[98]! } - public var PasscodeSettings_AutoLock_IfAwayFor_5minutes: String { return self._s[99]! } - public var ChatSettings_Groups: String { return self._s[101]! } - public var State_Connecting: String { return self._s[102]! } + public var MediaPicker_MomentsDateRangeSameMonthYearFormat: String { return self._s[97]! } + public var Notification_MessageLifetime1w: String { return self._s[99]! } + public var PasscodeSettings_AutoLock_IfAwayFor_5minutes: String { return self._s[100]! } + public var ChatSettings_Groups: String { return self._s[102]! } + public var State_Connecting: String { return self._s[103]! } public func Message_ForwardedMessageShort(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[103]!, self._r[103]!, [_0]) + return formatWithArgumentRanges(self._s[104]!, self._r[104]!, [_0]) } - public var Watch_ConnectionDescription: String { return self._s[104]! } - public var TwoStepAuth_ReEnterPasswordDescription: String { return self._s[105]! } + public var Watch_ConnectionDescription: String { return self._s[105]! } + public var TwoStepAuth_ReEnterPasswordDescription: String { return self._s[106]! } public func Notification_CallTimeFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[106]!, self._r[106]!, [_1, _2]) + return formatWithArgumentRanges(self._s[107]!, self._r[107]!, [_1, _2]) } - public var Passport_Identity_Selfie: String { return self._s[107]! } - public var Passport_Identity_GenderMale: String { return self._s[108]! } - public var Paint_Delete: String { return self._s[109]! } - public var Group_Username_RevokeExistingUsernamesInfo: String { return self._s[110]! } - public var Passport_Identity_AddDriversLicense: String { return self._s[111]! } - public var Passport_Language_ne: String { return self._s[112]! } - public var Channel_MessagePhotoUpdated: String { return self._s[113]! } - public var Passport_Address_OneOfTypePassportRegistration: String { return self._s[114]! } - public var Cache_Help: String { return self._s[115]! } - public var SocksProxySetup_ProxyStatusConnected: String { return self._s[117]! } + public var Passport_Identity_Selfie: String { return self._s[108]! } + public var Passport_Identity_GenderMale: String { return self._s[109]! } + public var Paint_Delete: String { return self._s[110]! } + public var Group_Username_RevokeExistingUsernamesInfo: String { return self._s[111]! } + public var Passport_Identity_AddDriversLicense: String { return self._s[112]! } + public var Passport_Language_ne: String { return self._s[113]! } + public var Channel_MessagePhotoUpdated: String { return self._s[114]! } + public var Passport_Address_OneOfTypePassportRegistration: String { return self._s[115]! } + public var Cache_Help: String { return self._s[116]! } + public var SocksProxySetup_ProxyStatusConnected: String { return self._s[118]! } public func Login_EmailPhoneBody(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[118]!, self._r[118]!, [_0, _1, _2]) + return formatWithArgumentRanges(self._s[119]!, self._r[119]!, [_0, _1, _2]) } - public var Checkout_ShippingAddress: String { return self._s[120]! } - public var Channel_BanList_RestrictedTitle: String { return self._s[121]! } - public var Checkout_TotalAmount: String { return self._s[122]! } - public var Appearance_TextSize: String { return self._s[123]! } - public var Passport_Address_TypeResidentialAddress: String { return self._s[124]! } - public var Notification_Exceptions_AlwaysOff: String { return self._s[125]! } - public var Conversation_MessageEditedLabel: String { return self._s[126]! } - public var SharedMedia_EmptyLinksText: String { return self._s[127]! } + public var Checkout_ShippingAddress: String { return self._s[121]! } + public var Channel_BanList_RestrictedTitle: String { return self._s[122]! } + public var Checkout_TotalAmount: String { return self._s[123]! } + public var Appearance_TextSize: String { return self._s[124]! } + public var Passport_Address_TypeResidentialAddress: String { return self._s[125]! } + public var Notification_Exceptions_AlwaysOff: String { return self._s[126]! } + public var Conversation_MessageEditedLabel: String { return self._s[127]! } + public var SharedMedia_EmptyLinksText: String { return self._s[128]! } public func Conversation_RestrictedTextTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[128]!, self._r[128]!, [_0]) + return formatWithArgumentRanges(self._s[129]!, self._r[129]!, [_0]) } - public var Passport_Address_AddResidentialAddress: String { return self._s[129]! } - public var Calls_NoCallsPlaceholder: String { return self._s[130]! } - public var Passport_Address_AddPassportRegistration: String { return self._s[131]! } - public var Conversation_PinMessageAlert_OnlyPin: String { return self._s[132]! } - public var PasscodeSettings_UnlockWithFaceId: String { return self._s[133]! } - public var ContactInfo_Title: String { return self._s[134]! } - public var ReportPeer_ReasonOther_Send: String { return self._s[136]! } - public var Notifications_Badge: String { return self._s[138]! } - public var Conversation_InstantPagePreview: String { return self._s[139]! } - public var PasscodeSettings_SimplePasscodeHelp: String { return self._s[140]! } + public var Passport_Address_AddResidentialAddress: String { return self._s[130]! } + public var Calls_NoCallsPlaceholder: String { return self._s[131]! } + public var Passport_Address_AddPassportRegistration: String { return self._s[132]! } + public var Conversation_PinMessageAlert_OnlyPin: String { return self._s[133]! } + public var PasscodeSettings_UnlockWithFaceId: String { return self._s[134]! } + public var ContactInfo_Title: String { return self._s[135]! } + public var ReportPeer_ReasonOther_Send: String { return self._s[137]! } + public var Notifications_Badge: String { return self._s[139]! } + public var Conversation_InstantPagePreview: String { return self._s[140]! } + public var PasscodeSettings_SimplePasscodeHelp: String { return self._s[141]! } public func Time_PreciseDate_m9(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[141]!, self._r[141]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[142]!, self._r[142]!, [_1, _2, _3]) } - public var GroupInfo_Title: String { return self._s[143]! } - public var State_Updating: String { return self._s[145]! } - public var PrivacyPolicy_AgeVerificationAgree: String { return self._s[146]! } - public var Map_GetDirections: String { return self._s[147]! } + public var GroupInfo_Title: String { return self._s[144]! } + public var State_Updating: String { return self._s[146]! } + public var PrivacyPolicy_AgeVerificationAgree: String { return self._s[147]! } + public var Map_GetDirections: String { return self._s[148]! } public func TwoStepAuth_PendingEmailHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[148]!, self._r[148]!, [_0]) + return formatWithArgumentRanges(self._s[149]!, self._r[149]!, [_0]) } - public var UserInfo_PhoneCall: String { return self._s[150]! } - public var Passport_Language_bn: String { return self._s[152]! } - public var MusicPlayer_VoiceNote: String { return self._s[153]! } - public var Paint_Duplicate: String { return self._s[154]! } - public var Channel_Username_InvalidTaken: String { return self._s[155]! } - public var Conversation_ClearGroupHistory: String { return self._s[156]! } - public var Passport_Address_OneOfTypeRentalAgreement: String { return self._s[157]! } - public var Stickers_GroupStickersHelp: String { return self._s[160]! } - public var SecretChat_Title: String { return self._s[161]! } - public var Group_UpgradeConfirmation: String { return self._s[162]! } - public var Checkout_LiabilityAlertTitle: String { return self._s[163]! } - public var GroupInfo_GroupNamePlaceholder: String { return self._s[165]! } + public var UserInfo_PhoneCall: String { return self._s[151]! } + public var Passport_Language_bn: String { return self._s[153]! } + public var MusicPlayer_VoiceNote: String { return self._s[154]! } + public var Paint_Duplicate: String { return self._s[155]! } + public var Channel_Username_InvalidTaken: String { return self._s[156]! } + public var Conversation_ClearGroupHistory: String { return self._s[157]! } + public var Passport_Address_OneOfTypeRentalAgreement: String { return self._s[158]! } + public var Stickers_GroupStickersHelp: String { return self._s[161]! } + public var SecretChat_Title: String { return self._s[162]! } + public var Group_UpgradeConfirmation: String { return self._s[163]! } + public var Checkout_LiabilityAlertTitle: String { return self._s[164]! } + public var GroupInfo_GroupNamePlaceholder: String { return self._s[166]! } public func Time_PreciseDate_m11(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[167]!, self._r[167]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[168]!, self._r[168]!, [_1, _2, _3]) } - public var Passport_DeletePersonalDetailsConfirmation: String { return self._s[168]! } + public var Passport_DeletePersonalDetailsConfirmation: String { return self._s[169]! } public func UserInfo_NotificationsDefaultSound(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[169]!, self._r[169]!, [_0]) + return formatWithArgumentRanges(self._s[170]!, self._r[170]!, [_0]) } - public var Passport_Email_Help: String { return self._s[170]! } + public var Passport_Email_Help: String { return self._s[171]! } public func MESSAGE_GEOLIVE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[172]!, self._r[172]!, [_1]) + return formatWithArgumentRanges(self._s[173]!, self._r[173]!, [_1]) } public func Notification_JoinedGroupByLink(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[173]!, self._r[173]!, [_0]) + return formatWithArgumentRanges(self._s[174]!, self._r[174]!, [_0]) } - public var LoginPassword_Title: String { return self._s[174]! } - public var Login_HaveNotReceivedCodeInternal: String { return self._s[175]! } - public var PasscodeSettings_SimplePasscode: String { return self._s[177]! } - public var NewContact_Title: String { return self._s[178]! } - public var Username_CheckingUsername: String { return self._s[179]! } - public var Login_ResetAccountProtected_TimerTitle: String { return self._s[180]! } - public var Checkout_Email: String { return self._s[181]! } - public var CheckoutInfo_SaveInfo: String { return self._s[182]! } - public var UserInfo_InviteBotToGroup: String { return self._s[183]! } + public var LoginPassword_Title: String { return self._s[175]! } + public var Login_HaveNotReceivedCodeInternal: String { return self._s[176]! } + public var PasscodeSettings_SimplePasscode: String { return self._s[178]! } + public var NewContact_Title: String { return self._s[179]! } + public var Username_CheckingUsername: String { return self._s[180]! } + public var Login_ResetAccountProtected_TimerTitle: String { return self._s[181]! } + public var Checkout_Email: String { return self._s[182]! } + public var CheckoutInfo_SaveInfo: String { return self._s[183]! } + public var UserInfo_InviteBotToGroup: String { return self._s[184]! } public func ChangePhoneNumberCode_CallTimer(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[184]!, self._r[184]!, [_0]) + return formatWithArgumentRanges(self._s[185]!, self._r[185]!, [_0]) } - public var TwoStepAuth_SetupPasswordEnterPasswordNew: String { return self._s[185]! } - public var Weekday_Wednesday: String { return self._s[186]! } + public var TwoStepAuth_SetupPasswordEnterPasswordNew: String { return self._s[186]! } + public var Weekday_Wednesday: String { return self._s[187]! } public func Channel_AdminLog_MessageToggleSignaturesOff(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[187]!, self._r[187]!, [_0]) + return formatWithArgumentRanges(self._s[188]!, self._r[188]!, [_0]) } - public var Month_ShortDecember: String { return self._s[188]! } - public var Channel_SignMessages: String { return self._s[189]! } - public var Appearance_Title: String { return self._s[190]! } - public var ReportPeer_ReasonCopyright: String { return self._s[191]! } - public var Conversation_Moderate_Delete: String { return self._s[192]! } - public var Conversation_CloudStorage_ChatStatus: String { return self._s[193]! } - public var Login_InfoTitle: String { return self._s[195]! } - public var Privacy_GroupsAndChannels_NeverAllow_Placeholder: String { return self._s[196]! } - public var Message_Video: String { return self._s[197]! } - public var Notification_ChannelInviterSelf: String { return self._s[198]! } - public var Channel_AdminLog_BanEmbedLinks: String { return self._s[199]! } - public var Conversation_SecretLinkPreviewAlert: String { return self._s[200]! } + public var Month_ShortDecember: String { return self._s[189]! } + public var Channel_SignMessages: String { return self._s[190]! } + public var Appearance_Title: String { return self._s[191]! } + public var ReportPeer_ReasonCopyright: String { return self._s[192]! } + public var Conversation_Moderate_Delete: String { return self._s[193]! } + public var Conversation_CloudStorage_ChatStatus: String { return self._s[194]! } + public var Login_InfoTitle: String { return self._s[196]! } + public var Privacy_GroupsAndChannels_NeverAllow_Placeholder: String { return self._s[197]! } + public var Message_Video: String { return self._s[198]! } + public var Notification_ChannelInviterSelf: String { return self._s[199]! } + public var Channel_AdminLog_BanEmbedLinks: String { return self._s[200]! } + public var Conversation_SecretLinkPreviewAlert: String { return self._s[201]! } public func CHANNEL_MESSAGE_GEOLIVE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[202]!, self._r[202]!, [_1]) + return formatWithArgumentRanges(self._s[203]!, self._r[203]!, [_1]) } - public var Cache_Videos: String { return self._s[203]! } - public var Call_ReportSkip: String { return self._s[204]! } - public var NetworkUsageSettings_MediaImageDataSection: String { return self._s[205]! } - public var Group_Setup_HistoryTitle: String { return self._s[206]! } - public var TwoStepAuth_GenericHelp: String { return self._s[207]! } + public var Cache_Videos: String { return self._s[204]! } + public var Call_ReportSkip: String { return self._s[205]! } + public var NetworkUsageSettings_MediaImageDataSection: String { return self._s[206]! } + public var Group_Setup_HistoryTitle: String { return self._s[207]! } + public var TwoStepAuth_GenericHelp: String { return self._s[208]! } public func DialogList_SingleRecordingAudioSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[208]!, self._r[208]!, [_0]) + return formatWithArgumentRanges(self._s[209]!, self._r[209]!, [_0]) } - public var Privacy_TopPeersDelete: String { return self._s[209]! } - public var Checkout_NewCard_CardholderNameTitle: String { return self._s[211]! } - public var Settings_FAQ_Button: String { return self._s[212]! } + public var Privacy_TopPeersDelete: String { return self._s[210]! } + public var Checkout_NewCard_CardholderNameTitle: String { return self._s[212]! } + public var Settings_FAQ_Button: String { return self._s[213]! } public func GroupInfo_AddParticipantConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[213]!, self._r[213]!, [_0]) + return formatWithArgumentRanges(self._s[214]!, self._r[214]!, [_0]) } public func Notification_PinnedLiveLocationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[216]!, self._r[216]!, [_0]) + return formatWithArgumentRanges(self._s[217]!, self._r[217]!, [_0]) } - public var AccessDenied_PhotosRestricted: String { return self._s[217]! } - public var Map_Locating: String { return self._s[218]! } - public var AutoDownloadSettings_Unlimited: String { return self._s[219]! } - public var Passport_Language_km: String { return self._s[220]! } - public var MediaPicker_LivePhotoDescription: String { return self._s[221]! } - public var Passport_DiscardMessageDescription: String { return self._s[222]! } - public var SocksProxySetup_Title: String { return self._s[225]! } - public var SharedMedia_EmptyMusicText: String { return self._s[226]! } - public var Cache_ByPeerHeader: String { return self._s[228]! } - public var Bot_GroupStatusReadsHistory: String { return self._s[229]! } - public var TwoStepAuth_ResetAccountConfirmation: String { return self._s[230]! } - public var CallSettings_Always: String { return self._s[231]! } - public var Message_ImageExpired: String { return self._s[232]! } - public var Channel_BanUser_Unban: String { return self._s[234]! } - public var Stickers_GroupChooseStickerPack: String { return self._s[235]! } - public var Group_Setup_TypePrivate: String { return self._s[236]! } - public var Passport_Language_cs: String { return self._s[237]! } - public var Settings_LogoutConfirmationTitle: String { return self._s[238]! } - public var UserInfo_FirstNamePlaceholder: String { return self._s[239]! } - public var Passport_Identity_SurnamePlaceholder: String { return self._s[240]! } - public var Passport_Identity_FilesView: String { return self._s[241]! } - public var LoginPassword_ResetAccount: String { return self._s[242]! } - public var Privacy_GroupsAndChannels_AlwaysAllow: String { return self._s[243]! } + public var AccessDenied_PhotosRestricted: String { return self._s[218]! } + public var Map_Locating: String { return self._s[219]! } + public var AutoDownloadSettings_Unlimited: String { return self._s[220]! } + public var Passport_Language_km: String { return self._s[221]! } + public var MediaPicker_LivePhotoDescription: String { return self._s[222]! } + public var Passport_DiscardMessageDescription: String { return self._s[223]! } + public var SocksProxySetup_Title: String { return self._s[226]! } + public var SharedMedia_EmptyMusicText: String { return self._s[227]! } + public var Cache_ByPeerHeader: String { return self._s[229]! } + public var Bot_GroupStatusReadsHistory: String { return self._s[230]! } + public var TwoStepAuth_ResetAccountConfirmation: String { return self._s[231]! } + public var CallSettings_Always: String { return self._s[232]! } + public var Message_ImageExpired: String { return self._s[233]! } + public var Channel_BanUser_Unban: String { return self._s[235]! } + public var Stickers_GroupChooseStickerPack: String { return self._s[236]! } + public var Group_Setup_TypePrivate: String { return self._s[237]! } + public var Passport_Language_cs: String { return self._s[238]! } + public var Settings_LogoutConfirmationTitle: String { return self._s[239]! } + public var UserInfo_FirstNamePlaceholder: String { return self._s[240]! } + public var Passport_Identity_SurnamePlaceholder: String { return self._s[241]! } + public var Passport_Identity_FilesView: String { return self._s[242]! } + public var LoginPassword_ResetAccount: String { return self._s[243]! } + public var Privacy_GroupsAndChannels_AlwaysAllow: String { return self._s[244]! } public func Notification_JoinedChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[245]!, self._r[245]!, [_0]) + return formatWithArgumentRanges(self._s[246]!, self._r[246]!, [_0]) } - public var Notifications_ExceptionsUnmuted: String { return self._s[246]! } - public var ChannelInfo_DeleteChannel: String { return self._s[247]! } - public var Passport_Title: String { return self._s[249]! } - public var NetworkUsageSettings_BytesReceived: String { return self._s[250]! } - public var BlockedUsers_BlockTitle: String { return self._s[251]! } - public var Update_Title: String { return self._s[253]! } - public var AccessDenied_PhotosAndVideos: String { return self._s[254]! } - public var Channel_Username_Title: String { return self._s[255]! } + public var Notifications_ExceptionsUnmuted: String { return self._s[247]! } + public var ChannelInfo_DeleteChannel: String { return self._s[248]! } + public var Passport_Title: String { return self._s[250]! } + public var NetworkUsageSettings_BytesReceived: String { return self._s[251]! } + public var BlockedUsers_BlockTitle: String { return self._s[252]! } + public var Update_Title: String { return self._s[254]! } + public var AccessDenied_PhotosAndVideos: String { return self._s[255]! } + public var Channel_Username_Title: String { return self._s[256]! } public func Channel_AdminLog_MessageToggleSignaturesOn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[256]!, self._r[256]!, [_0]) + return formatWithArgumentRanges(self._s[257]!, self._r[257]!, [_0]) } - public var Map_PullUpForPlaces: String { return self._s[257]! } + public var Map_PullUpForPlaces: String { return self._s[258]! } public func Conversation_EncryptionWaiting(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[258]!, self._r[258]!, [_0]) + return formatWithArgumentRanges(self._s[259]!, self._r[259]!, [_0]) } - public var Passport_Language_ka: String { return self._s[259]! } - public var InfoPlist_NSSiriUsageDescription: String { return self._s[260]! } - public var Calls_NotNow: String { return self._s[261]! } - public var Conversation_Report: String { return self._s[262]! } + public var Passport_Language_ka: String { return self._s[260]! } + public var InfoPlist_NSSiriUsageDescription: String { return self._s[261]! } + public var Calls_NotNow: String { return self._s[262]! } + public var Conversation_Report: String { return self._s[263]! } public func CHANNEL_MESSAGE_DOC(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[263]!, self._r[263]!, [_1]) + return formatWithArgumentRanges(self._s[264]!, self._r[264]!, [_1]) } - public var Channel_AdminLogFilter_EventsAll: String { return self._s[264]! } - public var InfoPlist_NSLocationWhenInUseUsageDescription: String { return self._s[265]! } - public var Passport_Address_TypeTemporaryRegistration: String { return self._s[266]! } - public var TwoStepAuth_EmailChangeSuccess: String { return self._s[269]! } - public var Call_ConnectionErrorTitle: String { return self._s[270]! } - public var Passport_Language_tr: String { return self._s[271]! } - public var Settings_ApplyProxyAlertEnable: String { return self._s[274]! } - public var Settings_ChatSettings: String { return self._s[275]! } - public var Group_About_Help: String { return self._s[276]! } + public var Channel_AdminLogFilter_EventsAll: String { return self._s[265]! } + public var InfoPlist_NSLocationWhenInUseUsageDescription: String { return self._s[266]! } + public var Passport_Address_TypeTemporaryRegistration: String { return self._s[267]! } + public var TwoStepAuth_EmailChangeSuccess: String { return self._s[270]! } + public var Call_ConnectionErrorTitle: String { return self._s[271]! } + public var Passport_Language_tr: String { return self._s[272]! } + public var Settings_ApplyProxyAlertEnable: String { return self._s[275]! } + public var Settings_ChatSettings: String { return self._s[276]! } + public var Group_About_Help: String { return self._s[277]! } public func CHANNEL_MESSAGE_NOTEXT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[277]!, self._r[277]!, [_1]) + return formatWithArgumentRanges(self._s[278]!, self._r[278]!, [_1]) } - public var Month_GenSeptember: String { return self._s[278]! } - public var PrivacySettings_LastSeenEverybody: String { return self._s[279]! } - public var Contacts_NotRegisteredSection: String { return self._s[280]! } - public var PhotoEditor_BlurToolRadial: String { return self._s[281]! } - public var TwoStepAuth_PasswordRemoveConfirmation: String { return self._s[282]! } - public var Channel_EditAdmin_PermissionEditMessages: String { return self._s[285]! } - public var TwoStepAuth_ChangePassword: String { return self._s[286]! } - public var Watch_MessageView_Title: String { return self._s[287]! } + public var Month_GenSeptember: String { return self._s[279]! } + public var PrivacySettings_LastSeenEverybody: String { return self._s[280]! } + public var Contacts_NotRegisteredSection: String { return self._s[281]! } + public var PhotoEditor_BlurToolRadial: String { return self._s[282]! } + public var TwoStepAuth_PasswordRemoveConfirmation: String { return self._s[283]! } + public var Channel_EditAdmin_PermissionEditMessages: String { return self._s[286]! } + public var TwoStepAuth_ChangePassword: String { return self._s[287]! } + public var Watch_MessageView_Title: String { return self._s[288]! } public func Notification_PinnedRoundMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[288]!, self._r[288]!, [_0]) + return formatWithArgumentRanges(self._s[289]!, self._r[289]!, [_0]) } - public var Conversation_ViewMessage: String { return self._s[289]! } - public var Passport_FieldEmailHelp: String { return self._s[290]! } - public var Settings_SaveEditedPhotos: String { return self._s[291]! } - public var Channel_Management_LabelCreator: String { return self._s[292]! } + public var Conversation_ViewMessage: String { return self._s[290]! } + public var Passport_FieldEmailHelp: String { return self._s[291]! } + public var Settings_SaveEditedPhotos: String { return self._s[292]! } + public var Channel_Management_LabelCreator: String { return self._s[293]! } public func Notification_PinnedStickerMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[293]!, self._r[293]!, [_0]) - } - public func AutoNightTheme_AutomaticHelp(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[294]!, self._r[294]!, [_0]) } - public var Passport_Address_EditPassportRegistration: String { return self._s[296]! } - public var PhotoEditor_QualityTool: String { return self._s[297]! } - public var Login_NetworkError: String { return self._s[298]! } - public var TwoStepAuth_EnterPasswordForgot: String { return self._s[299]! } - public var Compose_ChannelMembers: String { return self._s[301]! } + public func AutoNightTheme_AutomaticHelp(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[295]!, self._r[295]!, [_0]) + } + public var Passport_Address_EditPassportRegistration: String { return self._s[297]! } + public var PhotoEditor_QualityTool: String { return self._s[298]! } + public var Login_NetworkError: String { return self._s[299]! } + public var TwoStepAuth_EnterPasswordForgot: String { return self._s[300]! } + public var Compose_ChannelMembers: String { return self._s[302]! } public func Channel_AdminLog_CaptionEdited(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[302]!, self._r[302]!, [_0]) + return formatWithArgumentRanges(self._s[303]!, self._r[303]!, [_0]) } - public var Common_Yes: String { return self._s[303]! } - public var KeyCommand_JumpToPreviousUnreadChat: String { return self._s[304]! } - public var CheckoutInfo_ReceiverInfoPhone: String { return self._s[305]! } - public var SocksProxySetup_TypeNone: String { return self._s[306]! } - public var GroupInfo_AddParticipantTitle: String { return self._s[308]! } - public var Map_LiveLocationShowAll: String { return self._s[309]! } - public var Settings_SavedMessages: String { return self._s[310]! } - public var Passport_FieldIdentitySelfieHelp: String { return self._s[311]! } + public var Common_Yes: String { return self._s[304]! } + public var KeyCommand_JumpToPreviousUnreadChat: String { return self._s[305]! } + public var CheckoutInfo_ReceiverInfoPhone: String { return self._s[306]! } + public var SocksProxySetup_TypeNone: String { return self._s[307]! } + public var GroupInfo_AddParticipantTitle: String { return self._s[309]! } + public var Map_LiveLocationShowAll: String { return self._s[310]! } + public var Settings_SavedMessages: String { return self._s[311]! } + public var Passport_FieldIdentitySelfieHelp: String { return self._s[312]! } public func CHANNEL_MESSAGE_TEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[313]!, self._r[313]!, [_1, _2]) + return formatWithArgumentRanges(self._s[314]!, self._r[314]!, [_1, _2]) } - public var Checkout_PayNone: String { return self._s[314]! } - public var CheckoutInfo_ErrorNameInvalid: String { return self._s[315]! } - public var Notification_PaymentSent: String { return self._s[316]! } - public var Settings_Username: String { return self._s[317]! } - public var Notification_CallMissedShort: String { return self._s[318]! } - public var Call_CallInProgressTitle: String { return self._s[319]! } - public var Passport_Scans: String { return self._s[321]! } - public var PhotoEditor_Skip: String { return self._s[323]! } - public var AuthSessions_TerminateOtherSessionsHelp: String { return self._s[324]! } - public var Call_AudioRouteHeadphones: String { return self._s[325]! } - public var SocksProxySetup_UseForCalls: String { return self._s[326]! } - public var Contacts_InviteFriends: String { return self._s[327]! } - public var Channel_BanUser_PermissionSendMessages: String { return self._s[328]! } - public var Notifications_InAppNotificationsVibrate: String { return self._s[329]! } - public var StickerPack_Share: String { return self._s[330]! } - public var Watch_MessageView_Reply: String { return self._s[331]! } - public var Call_AudioRouteSpeaker: String { return self._s[332]! } - public var Checkout_Title: String { return self._s[336]! } + public var Checkout_PayNone: String { return self._s[315]! } + public var CheckoutInfo_ErrorNameInvalid: String { return self._s[316]! } + public var Notification_PaymentSent: String { return self._s[317]! } + public var Settings_Username: String { return self._s[318]! } + public var Notification_CallMissedShort: String { return self._s[319]! } + public var Call_CallInProgressTitle: String { return self._s[320]! } + public var Passport_Scans: String { return self._s[322]! } + public var PhotoEditor_Skip: String { return self._s[324]! } + public var AuthSessions_TerminateOtherSessionsHelp: String { return self._s[325]! } + public var Call_AudioRouteHeadphones: String { return self._s[326]! } + public var SocksProxySetup_UseForCalls: String { return self._s[327]! } + public var Contacts_InviteFriends: String { return self._s[328]! } + public var Channel_BanUser_PermissionSendMessages: String { return self._s[329]! } + public var Notifications_InAppNotificationsVibrate: String { return self._s[330]! } + public var StickerPack_Share: String { return self._s[331]! } + public var Watch_MessageView_Reply: String { return self._s[332]! } + public var Call_AudioRouteSpeaker: String { return self._s[333]! } + public var Checkout_Title: String { return self._s[337]! } public func MESSAGE_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[337]!, self._r[337]!, [_1]) + return formatWithArgumentRanges(self._s[338]!, self._r[338]!, [_1]) } - public var Privacy_Calls: String { return self._s[338]! } - public var DialogList_AdLabel: String { return self._s[339]! } - public var Passport_Identity_ScansHelp: String { return self._s[340]! } - public var Channel_AdminLogFilter_EventsInfo: String { return self._s[341]! } - public var Passport_Language_hu: String { return self._s[342]! } + public var Privacy_Calls: String { return self._s[339]! } + public var DialogList_AdLabel: String { return self._s[340]! } + public var Passport_Identity_ScansHelp: String { return self._s[341]! } + public var Channel_AdminLogFilter_EventsInfo: String { return self._s[342]! } + public var Passport_Language_hu: String { return self._s[343]! } public func Channel_AdminLog_MessagePinned(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[343]!, self._r[343]!, [_0]) - } - public func Channel_AdminLog_MessageToggleInvitesOn(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[344]!, self._r[344]!, [_0]) } - public var KeyCommand_ScrollDown: String { return self._s[346]! } - public var Conversation_LinkDialogSave: String { return self._s[347]! } - public var CheckoutInfo_ErrorShippingNotAvailable: String { return self._s[349]! } - public var Conversation_SendMessageErrorFlood: String { return self._s[351]! } + public func Channel_AdminLog_MessageToggleInvitesOn(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[345]!, self._r[345]!, [_0]) + } + public var KeyCommand_ScrollDown: String { return self._s[347]! } + public var Conversation_LinkDialogSave: String { return self._s[348]! } + public var CheckoutInfo_ErrorShippingNotAvailable: String { return self._s[350]! } + public var Conversation_SendMessageErrorFlood: String { return self._s[352]! } public func Checkout_SavePasswordTimeoutAndTouchId(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[352]!, self._r[352]!, [_0]) + return formatWithArgumentRanges(self._s[353]!, self._r[353]!, [_0]) } - public var HashtagSearch_AllChats: String { return self._s[353]! } - public var InfoPlist_NSPhotoLibraryAddUsageDescription: String { return self._s[354]! } + public var HashtagSearch_AllChats: String { return self._s[354]! } + public var InfoPlist_NSPhotoLibraryAddUsageDescription: String { return self._s[355]! } public func Date_ChatDateHeaderYear(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[357]!, self._r[357]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[358]!, self._r[358]!, [_1, _2, _3]) } - public var Privacy_Calls_P2PContacts: String { return self._s[358]! } - public var Passport_Email_Delete: String { return self._s[359]! } - public var CheckoutInfo_ShippingInfoCountry: String { return self._s[360]! } - public var Map_ShowPlaces: String { return self._s[361]! } - public var Passport_Identity_GenderFemale: String { return self._s[362]! } - public var ApplyLanguage_ChangeLanguageAction: String { return self._s[363]! } - public var Permissions_SiriText: String { return self._s[364]! } + public var Privacy_Calls_P2PContacts: String { return self._s[359]! } + public var Passport_Email_Delete: String { return self._s[360]! } + public var CheckoutInfo_ShippingInfoCountry: String { return self._s[361]! } + public var Map_ShowPlaces: String { return self._s[362]! } + public var Passport_Identity_GenderFemale: String { return self._s[363]! } + public var ApplyLanguage_ChangeLanguageAction: String { return self._s[364]! } public var Camera_VideoMode: String { return self._s[365]! } public func Watch_Time_ShortFullAt(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[366]!, self._r[366]!, [_1, _2]) @@ -693,2667 +692,2654 @@ public final class PresentationStrings { } public var DialogList_NoMessagesTitle: String { return self._s[485]! } public var Passport_DeletePassportConfirmation: String { return self._s[486]! } - public var Permissions_CellularDataText: String { return self._s[488]! } - public var Passport_Language_az: String { return self._s[489]! } - public var AccessDenied_Contacts: String { return self._s[490]! } - public var Your_cards_security_code_is_invalid: String { return self._s[491]! } - public var Contacts_InviteSearchLabel: String { return self._s[492]! } - public var Tour_StartButton: String { return self._s[493]! } - public var CheckoutInfo_Title: String { return self._s[495]! } - public var Conversation_Admin: String { return self._s[496]! } + public var Passport_Language_az: String { return self._s[488]! } + public var AccessDenied_Contacts: String { return self._s[489]! } + public var Your_cards_security_code_is_invalid: String { return self._s[490]! } + public var Contacts_InviteSearchLabel: String { return self._s[491]! } + public var Tour_StartButton: String { return self._s[492]! } + public var CheckoutInfo_Title: String { return self._s[494]! } + public var Conversation_Admin: String { return self._s[495]! } public func Channel_AdminLog_MessageRestrictedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[498]!, self._r[498]!, [_1, _2]) + return formatWithArgumentRanges(self._s[497]!, self._r[497]!, [_1, _2]) } - public var ChangePhoneNumberCode_Help: String { return self._s[499]! } - public var Web_Error: String { return self._s[500]! } - public var ShareFileTip_Title: String { return self._s[501]! } - public var Privacy_SecretChatsLinkPreviews: String { return self._s[502]! } - public var Username_InvalidStartsWithNumber: String { return self._s[503]! } + public var ChangePhoneNumberCode_Help: String { return self._s[498]! } + public var Web_Error: String { return self._s[499]! } + public var ShareFileTip_Title: String { return self._s[500]! } + public var Privacy_SecretChatsLinkPreviews: String { return self._s[501]! } + public var Username_InvalidStartsWithNumber: String { return self._s[502]! } public func DialogList_EncryptedChatStartedIncoming(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[505]!, self._r[505]!, [_0]) + return formatWithArgumentRanges(self._s[504]!, self._r[504]!, [_0]) } - public var Calls_AddTab: String { return self._s[507]! } - public var DialogList_AdNoticeAlert: String { return self._s[508]! } - public var PhotoEditor_TiltShift: String { return self._s[511]! } - public var Passport_Identity_TypeDriversLicenseUploadScan: String { return self._s[512]! } - public var ChannelMembers_WhoCanAddMembers_Admins: String { return self._s[513]! } - public var Tour_Text5: String { return self._s[514]! } - public var Notifications_ExceptionsGroupPlaceholder: String { return self._s[515]! } - public var Watch_Stickers_RecentPlaceholder: String { return self._s[516]! } - public var Common_Select: String { return self._s[517]! } + public var Calls_AddTab: String { return self._s[506]! } + public var DialogList_AdNoticeAlert: String { return self._s[507]! } + public var PhotoEditor_TiltShift: String { return self._s[510]! } + public var Passport_Identity_TypeDriversLicenseUploadScan: String { return self._s[511]! } + public var ChannelMembers_WhoCanAddMembers_Admins: String { return self._s[512]! } + public var Tour_Text5: String { return self._s[513]! } + public var Notifications_ExceptionsGroupPlaceholder: String { return self._s[514]! } + public var Watch_Stickers_RecentPlaceholder: String { return self._s[515]! } + public var Common_Select: String { return self._s[516]! } public func Notification_MessageLifetimeRemoved(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[518]!, self._r[518]!, [_1]) + return formatWithArgumentRanges(self._s[517]!, self._r[517]!, [_1]) } public func PINNED_INVOICE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[519]!, self._r[519]!, [_1]) + return formatWithArgumentRanges(self._s[518]!, self._r[518]!, [_1]) } - public var Month_GenFebruary: String { return self._s[520]! } - public var Contacts_SelectAll: String { return self._s[521]! } - public var FastTwoStepSetup_EmailHelp: String { return self._s[522]! } - public var Month_GenOctober: String { return self._s[523]! } - public var CheckoutInfo_ErrorPhoneInvalid: String { return self._s[524]! } - public var Passport_Identity_DocumentNumberPlaceholder: String { return self._s[525]! } - public var AutoNightTheme_UpdateLocation: String { return self._s[526]! } - public var Permissions_Skip: String { return self._s[527]! } - public var Group_Setup_TypePublic: String { return self._s[529]! } - public var Checkout_PaymentMethod_New: String { return self._s[530]! } - public var ShareMenu_Comment: String { return self._s[531]! } - public var Passport_FloodError: String { return self._s[532]! } - public var Channel_Management_LabelEditor: String { return self._s[533]! } - public var TwoStepAuth_SetPasswordHelp: String { return self._s[534]! } - public var Channel_AdminLogFilter_EventsTitle: String { return self._s[535]! } - public var NotificationSettings_ContactJoined: String { return self._s[537]! } - public var ChatSettings_AutoDownloadVideos: String { return self._s[538]! } - public var Passport_Identity_TypeIdentityCard: String { return self._s[540]! } - public var Username_LinkCopied: String { return self._s[542]! } + public var Month_GenFebruary: String { return self._s[519]! } + public var Contacts_SelectAll: String { return self._s[520]! } + public var FastTwoStepSetup_EmailHelp: String { return self._s[521]! } + public var Month_GenOctober: String { return self._s[522]! } + public var CheckoutInfo_ErrorPhoneInvalid: String { return self._s[523]! } + public var Passport_Identity_DocumentNumberPlaceholder: String { return self._s[524]! } + public var AutoNightTheme_UpdateLocation: String { return self._s[525]! } + public var Group_Setup_TypePublic: String { return self._s[527]! } + public var Checkout_PaymentMethod_New: String { return self._s[528]! } + public var ShareMenu_Comment: String { return self._s[529]! } + public var Passport_FloodError: String { return self._s[530]! } + public var Channel_Management_LabelEditor: String { return self._s[531]! } + public var TwoStepAuth_SetPasswordHelp: String { return self._s[532]! } + public var Channel_AdminLogFilter_EventsTitle: String { return self._s[533]! } + public var NotificationSettings_ContactJoined: String { return self._s[535]! } + public var ChatSettings_AutoDownloadVideos: String { return self._s[536]! } + public var Passport_Identity_TypeIdentityCard: String { return self._s[538]! } + public var Username_LinkCopied: String { return self._s[540]! } public func Time_MonthOfYear_m9(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[543]!, self._r[543]!, [_0]) + return formatWithArgumentRanges(self._s[541]!, self._r[541]!, [_0]) } - public var Permissions_CellularDataAllowInSettings: String { return self._s[544]! } - public var Channel_EditAdmin_PermissionAddAdmins: String { return self._s[546]! } - public var Passport_FieldPhoneHelp: String { return self._s[547]! } - public var Conversation_SendMessage: String { return self._s[548]! } - public var Notification_CallIncoming: String { return self._s[549]! } + public var Channel_EditAdmin_PermissionAddAdmins: String { return self._s[543]! } + public var Passport_FieldPhoneHelp: String { return self._s[544]! } + public var Conversation_SendMessage: String { return self._s[545]! } + public var Notification_CallIncoming: String { return self._s[546]! } public func MESSAGE_FWDS(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[550]!, self._r[550]!, [_1, _2]) + return formatWithArgumentRanges(self._s[547]!, self._r[547]!, [_1, _2]) } - public var Map_OpenInYandexMaps: String { return self._s[553]! } - public var FastTwoStepSetup_PasswordHelp: String { return self._s[554]! } - public var GroupInfo_GroupHistoryHidden: String { return self._s[555]! } - public var AutoNightTheme_UseSunsetSunrise: String { return self._s[556]! } - public var Month_ShortNovember: String { return self._s[557]! } - public var AccessDenied_Settings: String { return self._s[560]! } - public var EncryptionKey_Title: String { return self._s[561]! } - public var Profile_MessageLifetime1h: String { return self._s[562]! } + public var Map_OpenInYandexMaps: String { return self._s[550]! } + public var FastTwoStepSetup_PasswordHelp: String { return self._s[551]! } + public var GroupInfo_GroupHistoryHidden: String { return self._s[552]! } + public var AutoNightTheme_UseSunsetSunrise: String { return self._s[553]! } + public var Month_ShortNovember: String { return self._s[554]! } + public var AccessDenied_Settings: String { return self._s[557]! } + public var EncryptionKey_Title: String { return self._s[558]! } + public var Profile_MessageLifetime1h: String { return self._s[559]! } public func Map_DistanceAway(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[563]!, self._r[563]!, [_0]) + return formatWithArgumentRanges(self._s[560]!, self._r[560]!, [_0]) } - public var Checkout_ErrorPaymentFailed: String { return self._s[564]! } - public var Compose_NewMessage: String { return self._s[565]! } - public var Conversation_LiveLocationYou: String { return self._s[566]! } - public var Privacy_TopPeersHelp: String { return self._s[567]! } - public var Map_OpenInWaze: String { return self._s[568]! } - public var Checkout_ShippingMethod: String { return self._s[569]! } - public var Login_InfoFirstNamePlaceholder: String { return self._s[570]! } - public var Checkout_ErrorProviderAccountInvalid: String { return self._s[571]! } + public var Checkout_ErrorPaymentFailed: String { return self._s[561]! } + public var Compose_NewMessage: String { return self._s[562]! } + public var Conversation_LiveLocationYou: String { return self._s[563]! } + public var Privacy_TopPeersHelp: String { return self._s[564]! } + public var Map_OpenInWaze: String { return self._s[565]! } + public var Checkout_ShippingMethod: String { return self._s[566]! } + public var Login_InfoFirstNamePlaceholder: String { return self._s[567]! } + public var Checkout_ErrorProviderAccountInvalid: String { return self._s[568]! } public func Notification_Exceptions_Sound(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[572]!, self._r[572]!, [_0]) + return formatWithArgumentRanges(self._s[569]!, self._r[569]!, [_0]) } - public var CallSettings_TabIconDescription: String { return self._s[574]! } - public var ChatSettings_AutoDownloadReset: String { return self._s[575]! } - public var Checkout_WebConfirmation_Title: String { return self._s[576]! } - public var PasscodeSettings_AutoLock: String { return self._s[577]! } - public var Notifications_MessageNotificationsPreview: String { return self._s[580]! } - public var Conversation_BlockUser: String { return self._s[581]! } + public var CallSettings_TabIconDescription: String { return self._s[571]! } + public var ChatSettings_AutoDownloadReset: String { return self._s[572]! } + public var Checkout_WebConfirmation_Title: String { return self._s[573]! } + public var PasscodeSettings_AutoLock: String { return self._s[574]! } + public var Notifications_MessageNotificationsPreview: String { return self._s[577]! } + public var Conversation_BlockUser: String { return self._s[578]! } public func TwoStepAuth_SetupPendingEmail(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[582]!, self._r[582]!, [_0]) + return formatWithArgumentRanges(self._s[579]!, self._r[579]!, [_0]) } - public var Passport_Identity_EditPassport: String { return self._s[583]! } - public var MessageTimer_Custom: String { return self._s[584]! } - public var Conversation_SilentBroadcastTooltipOff: String { return self._s[586]! } - public var Conversation_Mute: String { return self._s[587]! } - public var CreateGroup_SoftUserLimitAlert: String { return self._s[588]! } - public var AccessDenied_LocationDenied: String { return self._s[589]! } - public var Tour_Title6: String { return self._s[590]! } - public var Settings_UsernameEmpty: String { return self._s[591]! } - public var PrivacySettings_TwoStepAuth: String { return self._s[592]! } - public var Conversation_FileICloudDrive: String { return self._s[593]! } - public var KeyCommand_SendMessage: String { return self._s[595]! } + public var Passport_Identity_EditPassport: String { return self._s[580]! } + public var MessageTimer_Custom: String { return self._s[581]! } + public var Conversation_SilentBroadcastTooltipOff: String { return self._s[583]! } + public var Conversation_Mute: String { return self._s[584]! } + public var CreateGroup_SoftUserLimitAlert: String { return self._s[585]! } + public var AccessDenied_LocationDenied: String { return self._s[586]! } + public var Tour_Title6: String { return self._s[587]! } + public var Settings_UsernameEmpty: String { return self._s[588]! } + public var PrivacySettings_TwoStepAuth: String { return self._s[589]! } + public var Conversation_FileICloudDrive: String { return self._s[590]! } + public var KeyCommand_SendMessage: String { return self._s[592]! } public func Channel_AdminLog_MessageDeleted(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[597]!, self._r[597]!, [_0]) + return formatWithArgumentRanges(self._s[594]!, self._r[594]!, [_0]) } - public var DialogList_DeleteBotConfirmation: String { return self._s[598]! } - public var EditProfile_Title: String { return self._s[599]! } - public var PasscodeSettings_HelpTop: String { return self._s[600]! } - public var SocksProxySetup_ProxySocks5: String { return self._s[601]! } - public var Common_TakePhotoOrVideo: String { return self._s[602]! } - public var Notification_MessageLifetime2s: String { return self._s[603]! } - public var Checkout_ErrorGeneric: String { return self._s[604]! } - public var DialogList_Unread: String { return self._s[606]! } - public var AutoNightTheme_Automatic: String { return self._s[607]! } - public var Passport_Identity_Name: String { return self._s[608]! } - public var Channel_AdminLog_CanBanUsers: String { return self._s[610]! } - public var Cache_Indexing: String { return self._s[611]! } + public var DialogList_DeleteBotConfirmation: String { return self._s[595]! } + public var EditProfile_Title: String { return self._s[596]! } + public var PasscodeSettings_HelpTop: String { return self._s[597]! } + public var SocksProxySetup_ProxySocks5: String { return self._s[598]! } + public var Common_TakePhotoOrVideo: String { return self._s[599]! } + public var Notification_MessageLifetime2s: String { return self._s[600]! } + public var Checkout_ErrorGeneric: String { return self._s[601]! } + public var DialogList_Unread: String { return self._s[603]! } + public var AutoNightTheme_Automatic: String { return self._s[604]! } + public var Passport_Identity_Name: String { return self._s[605]! } + public var Channel_AdminLog_CanBanUsers: String { return self._s[607]! } + public var Cache_Indexing: String { return self._s[608]! } public func ENCRYPTION_REQUEST(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[613]!, self._r[613]!, [_1]) + return formatWithArgumentRanges(self._s[610]!, self._r[610]!, [_1]) } - public var StickerSettings_ContextInfo: String { return self._s[614]! } - public var Channel_BanUser_PermissionEmbedLinks: String { return self._s[615]! } - public var Map_Location: String { return self._s[616]! } - public var GroupInfo_InviteLink_LinkSection: String { return self._s[617]! } + public var StickerSettings_ContextInfo: String { return self._s[611]! } + public var Channel_BanUser_PermissionEmbedLinks: String { return self._s[612]! } + public var Map_Location: String { return self._s[613]! } + public var GroupInfo_InviteLink_LinkSection: String { return self._s[614]! } public func Passport_Identity_UploadOneOfScan(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[618]!, self._r[618]!, [_0]) + return formatWithArgumentRanges(self._s[615]!, self._r[615]!, [_0]) } - public var Notification_PassportValuePhone: String { return self._s[619]! } - public var TwoStepAuth_PasswordChangeSuccess: String { return self._s[620]! } - public var Privacy_Calls_AlwaysAllow_Placeholder: String { return self._s[621]! } - public var CheckoutInfo_ShippingInfoPostcode: String { return self._s[622]! } - public var Group_Setup_HistoryVisibleHelp: String { return self._s[623]! } + public var Notification_PassportValuePhone: String { return self._s[616]! } + public var TwoStepAuth_PasswordChangeSuccess: String { return self._s[617]! } + public var Privacy_Calls_AlwaysAllow_Placeholder: String { return self._s[618]! } + public var CheckoutInfo_ShippingInfoPostcode: String { return self._s[619]! } + public var Group_Setup_HistoryVisibleHelp: String { return self._s[620]! } public func Time_PreciseDate_m7(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[625]!, self._r[625]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[622]!, self._r[622]!, [_1, _2, _3]) } - public var PasscodeSettings_EncryptDataHelp: String { return self._s[626]! } - public var Passport_Language_ja: String { return self._s[628]! } - public var KeyCommand_FocusOnInputField: String { return self._s[629]! } - public var Channel_Members_AddAdminErrorBlacklisted: String { return self._s[630]! } - public var Cache_KeepMedia: String { return self._s[631]! } - public var SocksProxySetup_ProxyTelegram: String { return self._s[633]! } - public var WebPreview_GettingLinkInfo: String { return self._s[634]! } - public var Group_Setup_TypePublicHelp: String { return self._s[635]! } - public var Map_Satellite: String { return self._s[636]! } - public var Username_InvalidTaken: String { return self._s[637]! } + public var PasscodeSettings_EncryptDataHelp: String { return self._s[623]! } + public var Passport_Language_ja: String { return self._s[625]! } + public var KeyCommand_FocusOnInputField: String { return self._s[626]! } + public var Channel_Members_AddAdminErrorBlacklisted: String { return self._s[627]! } + public var Cache_KeepMedia: String { return self._s[628]! } + public var SocksProxySetup_ProxyTelegram: String { return self._s[630]! } + public var WebPreview_GettingLinkInfo: String { return self._s[631]! } + public var Group_Setup_TypePublicHelp: String { return self._s[632]! } + public var Map_Satellite: String { return self._s[633]! } + public var Username_InvalidTaken: String { return self._s[634]! } public func Notification_PinnedAudioMessage(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[635]!, self._r[635]!, [_0]) + } + public var Notification_MessageLifetime1d: String { return self._s[636]! } + public var Profile_MessageLifetime2s: String { return self._s[637]! } + public func TwoStepAuth_RecoveryEmailUnavailable(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[638]!, self._r[638]!, [_0]) } - public var Notification_MessageLifetime1d: String { return self._s[639]! } - public var Profile_MessageLifetime2s: String { return self._s[640]! } - public func TwoStepAuth_RecoveryEmailUnavailable(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[641]!, self._r[641]!, [_0]) - } - public var Calls_RatingFeedback: String { return self._s[642]! } - public var Profile_EncryptionKey: String { return self._s[643]! } - public var Watch_Suggestion_WhatsUp: String { return self._s[644]! } - public var LoginPassword_PasswordPlaceholder: String { return self._s[645]! } - public var TwoStepAuth_EnterPasswordPassword: String { return self._s[646]! } + public var Calls_RatingFeedback: String { return self._s[639]! } + public var Profile_EncryptionKey: String { return self._s[640]! } + public var Watch_Suggestion_WhatsUp: String { return self._s[641]! } + public var LoginPassword_PasswordPlaceholder: String { return self._s[642]! } + public var TwoStepAuth_EnterPasswordPassword: String { return self._s[643]! } public func Time_PreciseDate_m10(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[648]!, self._r[648]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[645]!, self._r[645]!, [_1, _2, _3]) } public func CHANNEL_MESSAGE_CONTACT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[649]!, self._r[649]!, [_1]) + return formatWithArgumentRanges(self._s[646]!, self._r[646]!, [_1]) } - public var Passport_Language_bg: String { return self._s[650]! } - public var PrivacySettings_DeleteAccountHelp: String { return self._s[652]! } - public var Notifications_MessageNotificationsExceptionsHelp: String { return self._s[655]! } - public var Channel_Info_Banned: String { return self._s[656]! } - public var Conversation_ShareBotContactConfirmationTitle: String { return self._s[657]! } - public var ConversationProfile_UsersTooMuchError: String { return self._s[658]! } - public var ChatAdmins_AllMembersAreAdminsOffHelp: String { return self._s[659]! } - public var Privacy_GroupsAndChannels_WhoCanAddMe: String { return self._s[660]! } - public var Login_CodeExpiredError: String { return self._s[662]! } - public var Settings_PhoneNumber: String { return self._s[663]! } - public var FastTwoStepSetup_EmailPlaceholder: String { return self._s[664]! } + public var Passport_Language_bg: String { return self._s[647]! } + public var PrivacySettings_DeleteAccountHelp: String { return self._s[649]! } + public var Notifications_MessageNotificationsExceptionsHelp: String { return self._s[652]! } + public var Channel_Info_Banned: String { return self._s[653]! } + public var Conversation_ShareBotContactConfirmationTitle: String { return self._s[654]! } + public var ConversationProfile_UsersTooMuchError: String { return self._s[655]! } + public var ChatAdmins_AllMembersAreAdminsOffHelp: String { return self._s[656]! } + public var Privacy_GroupsAndChannels_WhoCanAddMe: String { return self._s[657]! } + public var Login_CodeExpiredError: String { return self._s[659]! } + public var Settings_PhoneNumber: String { return self._s[660]! } + public var FastTwoStepSetup_EmailPlaceholder: String { return self._s[661]! } public func DialogList_MultipleTypingSuffix(_ _0: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[665]!, self._r[665]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[662]!, self._r[662]!, ["\(_0)"]) } - public var Passport_Phone_Help: String { return self._s[666]! } - public var Passport_Language_sl: String { return self._s[667]! } - public var Bot_GenericBotStatus: String { return self._s[669]! } - public var PrivacySettings_PasscodeAndTouchId: String { return self._s[670]! } - public var Common_edit: String { return self._s[672]! } - public var Settings_AppLanguage: String { return self._s[674]! } - public var PrivacyLastSeenSettings_WhoCanSeeMyTimestamp: String { return self._s[675]! } + public var Passport_Phone_Help: String { return self._s[663]! } + public var Passport_Language_sl: String { return self._s[664]! } + public var Bot_GenericBotStatus: String { return self._s[666]! } + public var PrivacySettings_PasscodeAndTouchId: String { return self._s[667]! } + public var Common_edit: String { return self._s[669]! } + public var Settings_AppLanguage: String { return self._s[671]! } + public var PrivacyLastSeenSettings_WhoCanSeeMyTimestamp: String { return self._s[672]! } public func Notification_Kicked(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[678]!, self._r[678]!, [_0, _1]) + return formatWithArgumentRanges(self._s[676]!, self._r[676]!, [_0, _1]) } - public var Channel_AdminLog_MessageRestrictedForever: String { return self._s[680]! } - public var Passport_DeleteDocument: String { return self._s[681]! } - public var Notifications_ExceptionsResetToDefaults: String { return self._s[683]! } - public var ChannelInfo_DeleteChannelConfirmation: String { return self._s[684]! } - public var Permissions_CellularDataTitle: String { return self._s[685]! } - public var Passport_Address_OneOfTypeBankStatement: String { return self._s[687]! } - public var Weekday_ShortSaturday: String { return self._s[688]! } - public var Settings_Passport: String { return self._s[689]! } - public var Share_AuthTitle: String { return self._s[690]! } - public var Map_SendThisLocation: String { return self._s[691]! } + public var Channel_AdminLog_MessageRestrictedForever: String { return self._s[678]! } + public var Passport_DeleteDocument: String { return self._s[679]! } + public var Notifications_ExceptionsResetToDefaults: String { return self._s[681]! } + public var ChannelInfo_DeleteChannelConfirmation: String { return self._s[682]! } + public var Passport_Address_OneOfTypeBankStatement: String { return self._s[684]! } + public var Weekday_ShortSaturday: String { return self._s[685]! } + public var Settings_Passport: String { return self._s[686]! } + public var Share_AuthTitle: String { return self._s[687]! } + public var Map_SendThisLocation: String { return self._s[688]! } public func Notification_PinnedDocumentMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[692]!, self._r[692]!, [_0]) + return formatWithArgumentRanges(self._s[689]!, self._r[689]!, [_0]) } - public var Passport_Identity_Surname: String { return self._s[693]! } - public var Conversation_ContextMenuReply: String { return self._s[694]! } - public var Channel_BanUser_PermissionSendMedia: String { return self._s[695]! } - public var NetworkUsageSettings_Wifi: String { return self._s[697]! } - public var Call_Accept: String { return self._s[698]! } - public var Notification_Exceptions_NewException: String { return self._s[700]! } - public var GroupInfo_SetGroupPhotoDelete: String { return self._s[701]! } - public var Login_PhoneBannedError: String { return self._s[703]! } - public var PhotoEditor_CropAuto: String { return self._s[705]! } - public var PhotoEditor_ContrastTool: String { return self._s[706]! } - public var CheckoutInfo_ReceiverInfoNamePlaceholder: String { return self._s[707]! } - public var Passport_InfoLearnMore: String { return self._s[708]! } - public var Channel_AdminLog_MessagePreviousCaption: String { return self._s[709]! } - public var Passport_Identity_DocumentDetails: String { return self._s[710]! } - public var Privacy_PaymentsClear_ShippingInfo: String { return self._s[712]! } + public var Passport_Identity_Surname: String { return self._s[690]! } + public var Conversation_ContextMenuReply: String { return self._s[691]! } + public var Channel_BanUser_PermissionSendMedia: String { return self._s[692]! } + public var NetworkUsageSettings_Wifi: String { return self._s[694]! } + public var Call_Accept: String { return self._s[695]! } + public var Notification_Exceptions_NewException: String { return self._s[697]! } + public var GroupInfo_SetGroupPhotoDelete: String { return self._s[698]! } + public var Login_PhoneBannedError: String { return self._s[700]! } + public var PhotoEditor_CropAuto: String { return self._s[702]! } + public var PhotoEditor_ContrastTool: String { return self._s[703]! } + public var CheckoutInfo_ReceiverInfoNamePlaceholder: String { return self._s[704]! } + public var Passport_InfoLearnMore: String { return self._s[705]! } + public var Channel_AdminLog_MessagePreviousCaption: String { return self._s[706]! } + public var Passport_Identity_DocumentDetails: String { return self._s[707]! } + public var Privacy_PaymentsClear_ShippingInfo: String { return self._s[709]! } public func Passport_Email_UseTelegramEmail(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[713]!, self._r[713]!, [_0]) + return formatWithArgumentRanges(self._s[710]!, self._r[710]!, [_0]) } - public var Passport_Email_UseTelegramEmailHelp: String { return self._s[714]! } - public var UserInfo_NotificationsDefaultDisabled: String { return self._s[715]! } - public var Date_DialogDateFormat: String { return self._s[717]! } - public var Passport_Address_EditTemporaryRegistration: String { return self._s[718]! } - public var ReportPeer_ReasonSpam: String { return self._s[719]! } - public var Privacy_Calls_P2P: String { return self._s[720]! } - public var Compose_TokenListPlaceholder: String { return self._s[721]! } + public var Passport_Email_UseTelegramEmailHelp: String { return self._s[711]! } + public var UserInfo_NotificationsDefaultDisabled: String { return self._s[712]! } + public var Date_DialogDateFormat: String { return self._s[714]! } + public var Passport_Address_EditTemporaryRegistration: String { return self._s[715]! } + public var ReportPeer_ReasonSpam: String { return self._s[716]! } + public var Privacy_Calls_P2P: String { return self._s[717]! } + public var Compose_TokenListPlaceholder: String { return self._s[718]! } public func PINNED_VIDEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[722]!, self._r[722]!, [_1]) + return formatWithArgumentRanges(self._s[719]!, self._r[719]!, [_1]) } - public var StickerPacksSettings_Title: String { return self._s[724]! } - public var Privacy_PaymentsClearInfoDoneHelp: String { return self._s[725]! } - public var Privacy_Calls_NeverAllow_Placeholder: String { return self._s[726]! } - public var Passport_PassportInformation: String { return self._s[727]! } - public var Passport_Identity_OneOfTypeDriversLicense: String { return self._s[728]! } - public var Settings_Support: String { return self._s[729]! } - public var Notification_GroupInviterSelf: String { return self._s[731]! } - public var TwoStepAuth_EmailAddSuccess: String { return self._s[732]! } + public var StickerPacksSettings_Title: String { return self._s[721]! } + public var Privacy_PaymentsClearInfoDoneHelp: String { return self._s[722]! } + public var Privacy_Calls_NeverAllow_Placeholder: String { return self._s[723]! } + public var Passport_PassportInformation: String { return self._s[724]! } + public var Passport_Identity_OneOfTypeDriversLicense: String { return self._s[725]! } + public var Settings_Support: String { return self._s[726]! } + public var Notification_GroupInviterSelf: String { return self._s[728]! } + public var TwoStepAuth_EmailAddSuccess: String { return self._s[729]! } public func SecretImage_NotViewedYet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[733]!, self._r[733]!, [_0]) + return formatWithArgumentRanges(self._s[730]!, self._r[730]!, [_0]) } - public var MaskStickerSettings_Title: String { return self._s[735]! } - public var TwoStepAuth_SetPassword: String { return self._s[738]! } + public var MaskStickerSettings_Title: String { return self._s[732]! } + public var TwoStepAuth_SetPassword: String { return self._s[735]! } public func Passport_AcceptHelp(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[740]!, self._r[740]!, [_1, _2]) + return formatWithArgumentRanges(self._s[737]!, self._r[737]!, [_1, _2]) } - public var SocksProxySetup_SavedProxies: String { return self._s[741]! } - public var GroupInfo_InviteLink_ShareLink: String { return self._s[742]! } - public var Common_Cancel: String { return self._s[743]! } - public var UserInfo_About_Placeholder: String { return self._s[745]! } - public var Passport_Identity_NativeNameGenericTitle: String { return self._s[749]! } - public var ApplyLanguage_ApplySuccess: String { return self._s[750]! } - public var Permissions_SiriAllow: String { return self._s[751]! } - public var Notifications_ChannelNotificationsPreview: String { return self._s[752]! } - public var Camera_Discard: String { return self._s[753]! } - public var TextFormat_Italic: String { return self._s[754]! } - public var ChangePhoneNumberCode_RequestingACall: String { return self._s[755]! } - public var PrivacyLastSeenSettings_NeverShareWith_Title: String { return self._s[756]! } - public var KeyCommand_JumpToNextChat: String { return self._s[758]! } + public var SocksProxySetup_SavedProxies: String { return self._s[738]! } + public var GroupInfo_InviteLink_ShareLink: String { return self._s[739]! } + public var Common_Cancel: String { return self._s[740]! } + public var UserInfo_About_Placeholder: String { return self._s[742]! } + public var Passport_Identity_NativeNameGenericTitle: String { return self._s[746]! } + public var ApplyLanguage_ApplySuccess: String { return self._s[747]! } + public var Notifications_ChannelNotificationsPreview: String { return self._s[748]! } + public var Camera_Discard: String { return self._s[749]! } + public var TextFormat_Italic: String { return self._s[750]! } + public var ChangePhoneNumberCode_RequestingACall: String { return self._s[751]! } + public var PrivacyLastSeenSettings_NeverShareWith_Title: String { return self._s[752]! } + public var KeyCommand_JumpToNextChat: String { return self._s[754]! } public func Time_MonthOfYear_m8(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[762]!, self._r[762]!, [_0]) + return formatWithArgumentRanges(self._s[758]!, self._r[758]!, [_0]) } - public var Tour_Text1: String { return self._s[763]! } - public var Privacy_SecretChatsTitle: String { return self._s[764]! } - public var Conversation_HoldForVideo: String { return self._s[765]! } - public var Passport_Language_pt: String { return self._s[766]! } - public var Checkout_NewCard_Title: String { return self._s[767]! } - public var Channel_TitleInfo: String { return self._s[768]! } - public var State_ConnectingToProxy: String { return self._s[769]! } - public var Settings_About_Help: String { return self._s[770]! } - public var AutoNightTheme_ScheduledFrom: String { return self._s[772]! } - public var Passport_Language_tk: String { return self._s[773]! } - public var Watch_Conversation_Reply: String { return self._s[774]! } - public var ShareMenu_CopyShareLink: String { return self._s[775]! } - public var Stickers_Search: String { return self._s[776]! } - public var Notifications_GroupNotificationsExceptions: String { return self._s[777]! } - public var Channel_Setup_TypePrivateHelp: String { return self._s[778]! } - public var PhotoEditor_GrainTool: String { return self._s[779]! } - public var Conversation_SearchByName_Placeholder: String { return self._s[780]! } - public var Permissions_NotificationsTitle: String { return self._s[781]! } - public var Watch_Suggestion_TalkLater: String { return self._s[782]! } - public var TwoStepAuth_ChangeEmail: String { return self._s[783]! } - public var Passport_Identity_EditPersonalDetails: String { return self._s[784]! } - public var Passport_FieldPhone: String { return self._s[786]! } + public var Tour_Text1: String { return self._s[759]! } + public var Privacy_SecretChatsTitle: String { return self._s[760]! } + public var Conversation_HoldForVideo: String { return self._s[761]! } + public var Passport_Language_pt: String { return self._s[762]! } + public var Checkout_NewCard_Title: String { return self._s[763]! } + public var Channel_TitleInfo: String { return self._s[764]! } + public var State_ConnectingToProxy: String { return self._s[765]! } + public var Settings_About_Help: String { return self._s[766]! } + public var AutoNightTheme_ScheduledFrom: String { return self._s[768]! } + public var Passport_Language_tk: String { return self._s[769]! } + public var Watch_Conversation_Reply: String { return self._s[770]! } + public var ShareMenu_CopyShareLink: String { return self._s[771]! } + public var Stickers_Search: String { return self._s[772]! } + public var Notifications_GroupNotificationsExceptions: String { return self._s[773]! } + public var Channel_Setup_TypePrivateHelp: String { return self._s[774]! } + public var PhotoEditor_GrainTool: String { return self._s[775]! } + public var Conversation_SearchByName_Placeholder: String { return self._s[776]! } + public var Watch_Suggestion_TalkLater: String { return self._s[777]! } + public var TwoStepAuth_ChangeEmail: String { return self._s[778]! } + public var Passport_Identity_EditPersonalDetails: String { return self._s[779]! } + public var Passport_FieldPhone: String { return self._s[781]! } public func ENCRYPTION_ACCEPT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[787]!, self._r[787]!, [_1]) + return formatWithArgumentRanges(self._s[782]!, self._r[782]!, [_1]) } - public var NetworkUsageSettings_BytesSent: String { return self._s[788]! } - public var Conversation_ShareBotLocationConfirmationTitle: String { return self._s[789]! } - public var Conversation_ForwardContacts: String { return self._s[791]! } + public var NetworkUsageSettings_BytesSent: String { return self._s[783]! } + public var Conversation_ShareBotLocationConfirmationTitle: String { return self._s[784]! } + public var Conversation_ForwardContacts: String { return self._s[786]! } public func Notification_ChangedGroupName(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[792]!, self._r[792]!, [_0, _1]) + return formatWithArgumentRanges(self._s[787]!, self._r[787]!, [_0, _1]) } public func MESSAGE_VIDEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[793]!, self._r[793]!, [_1]) + return formatWithArgumentRanges(self._s[788]!, self._r[788]!, [_1]) } public func Checkout_PayPrice(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[794]!, self._r[794]!, [_0]) + return formatWithArgumentRanges(self._s[789]!, self._r[789]!, [_0]) } public func Notification_PinnedTextMessage(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[795]!, self._r[795]!, [_0, _1]) + return formatWithArgumentRanges(self._s[790]!, self._r[790]!, [_0, _1]) } - public var GroupInfo_InvitationLinkDoesNotExist: String { return self._s[797]! } - public var ReportPeer_ReasonOther_Placeholder: String { return self._s[798]! } - public var Wallpaper_Title: String { return self._s[800]! } - public var PasscodeSettings_AutoLock_Disabled: String { return self._s[801]! } - public var Watch_Compose_CreateMessage: String { return self._s[802]! } - public var ChatSettings_ConnectionType_UseProxy: String { return self._s[803]! } - public var Message_Audio: String { return self._s[805]! } - public var Conversation_SearchNoResults: String { return self._s[807]! } - public var PrivacyPolicy_Accept: String { return self._s[808]! } - public var ReportPeer_ReasonViolence: String { return self._s[809]! } - public var Group_Username_RemoveExistingUsernamesInfo: String { return self._s[810]! } - public var Message_InvoiceLabel: String { return self._s[811]! } - public var Channel_AdminLogFilter_Title: String { return self._s[812]! } - public var Contacts_SearchLabel: String { return self._s[813]! } - public var Group_Username_InvalidStartsWithNumber: String { return self._s[814]! } - public var ChatAdmins_AllMembersAreAdminsOnHelp: String { return self._s[816]! } - public var Month_ShortSeptember: String { return self._s[818]! } - public var Group_Username_CreatePublicLinkHelp: String { return self._s[819]! } - public var Login_CallRequestState2: String { return self._s[820]! } - public var TwoStepAuth_RecoveryUnavailable: String { return self._s[822]! } - public var Bot_Unblock: String { return self._s[823]! } - public var SharedMedia_CategoryMedia: String { return self._s[824]! } - public var Conversation_HoldForAudio: String { return self._s[825]! } - public var Conversation_ClousStorageInfo_Description1: String { return self._s[827]! } - public var Channel_Members_InviteLink: String { return self._s[828]! } - public var Core_ServiceUserStatus: String { return self._s[829]! } - public var WebSearch_RecentClearConfirmation: String { return self._s[830]! } - public var Notification_ChannelMigratedFrom: String { return self._s[831]! } - public var Settings_Title: String { return self._s[833]! } - public var Call_StatusBusy: String { return self._s[834]! } - public var ArchivedPacksAlert_Title: String { return self._s[835]! } - public var ConversationMedia_Title: String { return self._s[836]! } + public var GroupInfo_InvitationLinkDoesNotExist: String { return self._s[792]! } + public var ReportPeer_ReasonOther_Placeholder: String { return self._s[793]! } + public var Wallpaper_Title: String { return self._s[795]! } + public var PasscodeSettings_AutoLock_Disabled: String { return self._s[796]! } + public var Watch_Compose_CreateMessage: String { return self._s[797]! } + public var ChatSettings_ConnectionType_UseProxy: String { return self._s[798]! } + public var Message_Audio: String { return self._s[800]! } + public var Conversation_SearchNoResults: String { return self._s[802]! } + public var PrivacyPolicy_Accept: String { return self._s[803]! } + public var ReportPeer_ReasonViolence: String { return self._s[804]! } + public var Group_Username_RemoveExistingUsernamesInfo: String { return self._s[805]! } + public var Message_InvoiceLabel: String { return self._s[806]! } + public var Channel_AdminLogFilter_Title: String { return self._s[807]! } + public var Contacts_SearchLabel: String { return self._s[808]! } + public var Group_Username_InvalidStartsWithNumber: String { return self._s[809]! } + public var ChatAdmins_AllMembersAreAdminsOnHelp: String { return self._s[811]! } + public var Month_ShortSeptember: String { return self._s[813]! } + public var Group_Username_CreatePublicLinkHelp: String { return self._s[814]! } + public var Login_CallRequestState2: String { return self._s[815]! } + public var TwoStepAuth_RecoveryUnavailable: String { return self._s[817]! } + public var Bot_Unblock: String { return self._s[818]! } + public var SharedMedia_CategoryMedia: String { return self._s[819]! } + public var Conversation_HoldForAudio: String { return self._s[820]! } + public var Conversation_ClousStorageInfo_Description1: String { return self._s[822]! } + public var Channel_Members_InviteLink: String { return self._s[823]! } + public var Core_ServiceUserStatus: String { return self._s[824]! } + public var WebSearch_RecentClearConfirmation: String { return self._s[825]! } + public var Notification_ChannelMigratedFrom: String { return self._s[826]! } + public var Settings_Title: String { return self._s[828]! } + public var Call_StatusBusy: String { return self._s[829]! } + public var ArchivedPacksAlert_Title: String { return self._s[830]! } + public var ConversationMedia_Title: String { return self._s[831]! } public func Conversation_MessageViaUser(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[837]!, self._r[837]!, [_0]) + return formatWithArgumentRanges(self._s[832]!, self._r[832]!, [_0]) } - public var Notification_PassportValueAddress: String { return self._s[838]! } - public var Tour_Title4: String { return self._s[840]! } - public var Call_StatusEnded: String { return self._s[841]! } - public var Notifications_ChannelNotificationsAlert: String { return self._s[842]! } - public var LiveLocationUpdated_JustNow: String { return self._s[843]! } + public var Notification_PassportValueAddress: String { return self._s[833]! } + public var Tour_Title4: String { return self._s[835]! } + public var Call_StatusEnded: String { return self._s[836]! } + public var Notifications_ChannelNotificationsAlert: String { return self._s[837]! } + public var LiveLocationUpdated_JustNow: String { return self._s[838]! } public func Login_BannedPhoneSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[844]!, self._r[844]!, [_0]) + return formatWithArgumentRanges(self._s[839]!, self._r[839]!, [_0]) } - public var Passport_Address_EditResidentialAddress: String { return self._s[846]! } + public var Passport_Address_EditResidentialAddress: String { return self._s[841]! } public func Channel_Management_RestrictedBy(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[847]!, self._r[847]!, [_0]) + return formatWithArgumentRanges(self._s[842]!, self._r[842]!, [_0]) } - public var Conversation_UnpinMessageAlert: String { return self._s[848]! } - public var NotificationsSound_Glass: String { return self._s[849]! } - public var Passport_Address_Street1Placeholder: String { return self._s[851]! } + public var Conversation_UnpinMessageAlert: String { return self._s[843]! } + public var NotificationsSound_Glass: String { return self._s[844]! } + public var Passport_Address_Street1Placeholder: String { return self._s[846]! } public func Conversation_MessageDialogRetryAll(_ _1: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[852]!, self._r[852]!, ["\(_1)"]) + return formatWithArgumentRanges(self._s[847]!, self._r[847]!, ["\(_1)"]) } public func Checkout_PasswordEntry_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[855]!, self._r[855]!, [_0]) + return formatWithArgumentRanges(self._s[850]!, self._r[850]!, [_0]) } - public var Call_Message: String { return self._s[856]! } - public var Contacts_MemberSearchSectionTitleGroup: String { return self._s[857]! } + public var Call_Message: String { return self._s[851]! } + public var Contacts_MemberSearchSectionTitleGroup: String { return self._s[852]! } public func Conversation_BotInteractiveUrlAlert(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[858]!, self._r[858]!, [_0]) + return formatWithArgumentRanges(self._s[853]!, self._r[853]!, [_0]) } - public var TwoStepAuth_SetupResendEmailCodeAlert: String { return self._s[859]! } - public var GroupInfo_SharedMedia: String { return self._s[860]! } + public var TwoStepAuth_SetupResendEmailCodeAlert: String { return self._s[854]! } + public var GroupInfo_SharedMedia: String { return self._s[855]! } public func Time_PreciseDate_m6(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[861]!, self._r[861]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[856]!, self._r[856]!, [_1, _2, _3]) } - public var Channel_Username_InvalidStartsWithNumber: String { return self._s[862]! } - public var KeyCommand_JumpToPreviousChat: String { return self._s[863]! } - public var Conversation_Call: String { return self._s[864]! } - public var KeyCommand_ScrollUp: String { return self._s[865]! } + public var Channel_Username_InvalidStartsWithNumber: String { return self._s[857]! } + public var KeyCommand_JumpToPreviousChat: String { return self._s[858]! } + public var Conversation_Call: String { return self._s[859]! } + public var KeyCommand_ScrollUp: String { return self._s[860]! } public func Privacy_GroupsAndChannels_InviteToChannelError(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[866]!, self._r[866]!, [_0, _1]) + return formatWithArgumentRanges(self._s[861]!, self._r[861]!, [_0, _1]) } - public var AuthSessions_Sessions: String { return self._s[869]! } - public var Document_TargetConfirmationFormat: String { return self._s[870]! } - public var Group_Setup_TypeHeader: String { return self._s[871]! } + public var AuthSessions_Sessions: String { return self._s[864]! } + public var Document_TargetConfirmationFormat: String { return self._s[865]! } + public var Group_Setup_TypeHeader: String { return self._s[866]! } public func DialogList_SinglePlayingGameSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[872]!, self._r[872]!, [_0]) + return formatWithArgumentRanges(self._s[867]!, self._r[867]!, [_0]) } - public var AttachmentMenu_SendAsFiles: String { return self._s[873]! } - public var Profile_MessageLifetime1m: String { return self._s[875]! } - public var Passport_PasswordReset: String { return self._s[877]! } - public var Settings_AppleWatch: String { return self._s[878]! } - public var Passport_PasswordCompleteSetup: String { return self._s[880]! } - public var Notifications_ExceptionsTitle: String { return self._s[881]! } - public var Permissions_NotificationsAllow: String { return self._s[882]! } - public var Passport_Language_de: String { return self._s[883]! } - public var Channel_AdminLog_MessagePreviousDescription: String { return self._s[884]! } - public var Your_card_was_declined: String { return self._s[885]! } - public var Notifications_DisplayNamesOnLockScreen: String { return self._s[886]! } - public var PhoneNumberHelp_ChangeNumber: String { return self._s[888]! } - public var ReportPeer_ReasonPornography: String { return self._s[889]! } - public var Notification_CreatedChannel: String { return self._s[890]! } - public var PhotoEditor_Original: String { return self._s[891]! } - public var NotificationsSound_Chord: String { return self._s[892]! } - public var Target_SelectGroup: String { return self._s[893]! } - public var Stickers_SuggestAdded: String { return self._s[895]! } - public var Channel_AdminLog_InfoPanelAlertTitle: String { return self._s[896]! } - public var Notifications_GroupNotificationsPreview: String { return self._s[898]! } - public var ChatSettings_AutoDownloadPhotos: String { return self._s[899]! } - public var Message_PinnedLocationMessage: String { return self._s[901]! } - public var Appearance_PreviewReplyText: String { return self._s[902]! } - public var Passport_Address_Street2Placeholder: String { return self._s[903]! } - public var Settings_Logout: String { return self._s[904]! } + public var AttachmentMenu_SendAsFiles: String { return self._s[868]! } + public var Profile_MessageLifetime1m: String { return self._s[870]! } + public var Passport_PasswordReset: String { return self._s[872]! } + public var Settings_AppleWatch: String { return self._s[873]! } + public var Passport_PasswordCompleteSetup: String { return self._s[875]! } + public var Notifications_ExceptionsTitle: String { return self._s[876]! } + public var Passport_Language_de: String { return self._s[877]! } + public var Channel_AdminLog_MessagePreviousDescription: String { return self._s[878]! } + public var Your_card_was_declined: String { return self._s[879]! } + public var Notifications_DisplayNamesOnLockScreen: String { return self._s[880]! } + public var PhoneNumberHelp_ChangeNumber: String { return self._s[882]! } + public var ReportPeer_ReasonPornography: String { return self._s[883]! } + public var Notification_CreatedChannel: String { return self._s[884]! } + public var PhotoEditor_Original: String { return self._s[885]! } + public var NotificationsSound_Chord: String { return self._s[886]! } + public var Target_SelectGroup: String { return self._s[887]! } + public var Stickers_SuggestAdded: String { return self._s[889]! } + public var Channel_AdminLog_InfoPanelAlertTitle: String { return self._s[890]! } + public var Notifications_GroupNotificationsPreview: String { return self._s[892]! } + public var ChatSettings_AutoDownloadPhotos: String { return self._s[893]! } + public var Message_PinnedLocationMessage: String { return self._s[895]! } + public var Appearance_PreviewReplyText: String { return self._s[896]! } + public var Passport_Address_Street2Placeholder: String { return self._s[897]! } + public var Settings_Logout: String { return self._s[898]! } public func UserInfo_BlockConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[905]!, self._r[905]!, [_0]) + return formatWithArgumentRanges(self._s[899]!, self._r[899]!, [_0]) } - public var Profile_Username: String { return self._s[907]! } - public var Group_Username_InvalidTooShort: String { return self._s[908]! } - public var Appearance_AutoNightTheme: String { return self._s[909]! } - public var AuthSessions_TerminateOtherSessions: String { return self._s[912]! } - public var PasscodeSettings_TryAgainIn1Minute: String { return self._s[913]! } - public var Privacy_TopPeers: String { return self._s[914]! } - public var Passport_Phone_EnterOtherNumber: String { return self._s[915]! } - public var NotificationsSound_Hello: String { return self._s[916]! } - public var Notifications_InAppNotifications: String { return self._s[917]! } + public var Profile_Username: String { return self._s[901]! } + public var Group_Username_InvalidTooShort: String { return self._s[902]! } + public var Appearance_AutoNightTheme: String { return self._s[903]! } + public var AuthSessions_TerminateOtherSessions: String { return self._s[906]! } + public var PasscodeSettings_TryAgainIn1Minute: String { return self._s[907]! } + public var Privacy_TopPeers: String { return self._s[908]! } + public var Passport_Phone_EnterOtherNumber: String { return self._s[909]! } + public var NotificationsSound_Hello: String { return self._s[910]! } + public var Notifications_InAppNotifications: String { return self._s[911]! } public func Notification_PassportValuesSentMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[918]!, self._r[918]!, [_1, _2]) + return formatWithArgumentRanges(self._s[912]!, self._r[912]!, [_1, _2]) } - public var Passport_Language_is: String { return self._s[920]! } - public var StickerPack_ViewPack: String { return self._s[921]! } - public var EnterPasscode_ChangeTitle: String { return self._s[922]! } - public var Call_Decline: String { return self._s[923]! } - public var UserInfo_AddPhone: String { return self._s[925]! } - public var AutoNightTheme_Title: String { return self._s[926]! } - public var Activity_PlayingGame: String { return self._s[928]! } - public var CheckoutInfo_ShippingInfoStatePlaceholder: String { return self._s[929]! } - public var SaveIncomingPhotosSettings_From: String { return self._s[931]! } - public var Passport_Address_TypeBankStatementUploadScan: String { return self._s[933]! } - public var Notifications_MessageNotificationsSound: String { return self._s[934]! } - public var Call_StatusWaiting: String { return self._s[935]! } - public var Passport_Identity_MainPageHelp: String { return self._s[936]! } - public var Weekday_ShortWednesday: String { return self._s[937]! } - public var Notifications_Title: String { return self._s[938]! } - public var PasscodeSettings_AutoLock_IfAwayFor_5hours: String { return self._s[939]! } - public var Conversation_PinnedMessage: String { return self._s[941]! } - public var Notifications_ChannelNotificationsHelp: String { return self._s[942]! } + public var Passport_Language_is: String { return self._s[914]! } + public var StickerPack_ViewPack: String { return self._s[915]! } + public var EnterPasscode_ChangeTitle: String { return self._s[916]! } + public var Call_Decline: String { return self._s[917]! } + public var UserInfo_AddPhone: String { return self._s[919]! } + public var AutoNightTheme_Title: String { return self._s[920]! } + public var Activity_PlayingGame: String { return self._s[922]! } + public var CheckoutInfo_ShippingInfoStatePlaceholder: String { return self._s[923]! } + public var SaveIncomingPhotosSettings_From: String { return self._s[925]! } + public var Passport_Address_TypeBankStatementUploadScan: String { return self._s[927]! } + public var Notifications_MessageNotificationsSound: String { return self._s[928]! } + public var Call_StatusWaiting: String { return self._s[929]! } + public var Passport_Identity_MainPageHelp: String { return self._s[930]! } + public var Weekday_ShortWednesday: String { return self._s[931]! } + public var Notifications_Title: String { return self._s[932]! } + public var PasscodeSettings_AutoLock_IfAwayFor_5hours: String { return self._s[933]! } + public var Conversation_PinnedMessage: String { return self._s[935]! } + public var Notifications_ChannelNotificationsHelp: String { return self._s[936]! } public func Time_MonthOfYear_m12(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[944]!, self._r[944]!, [_0]) + return formatWithArgumentRanges(self._s[938]!, self._r[938]!, [_0]) } - public var ConversationProfile_LeaveDeleteAndExit: String { return self._s[945]! } - public var State_connecting: String { return self._s[946]! } - public var Channel_AdminLog_MessagePreviousMessage: String { return self._s[947]! } - public var Passport_Scans_Upload: String { return self._s[949]! } - public var AutoDownloadSettings_PhotosTitle: String { return self._s[950]! } - public var Map_OpenInHereMaps: String { return self._s[951]! } - public var Stickers_FavoriteStickers: String { return self._s[953]! } - public var CheckoutInfo_Pay: String { return self._s[954]! } - public var Passport_Identity_FrontSideHelp: String { return self._s[955]! } - public var Update_UpdateApp: String { return self._s[956]! } - public var Login_CountryCode: String { return self._s[957]! } - public var PasscodeSettings_AutoLock_IfAwayFor_1hour: String { return self._s[958]! } - public var CheckoutInfo_ShippingInfoState: String { return self._s[959]! } + public var ConversationProfile_LeaveDeleteAndExit: String { return self._s[939]! } + public var State_connecting: String { return self._s[940]! } + public var Channel_AdminLog_MessagePreviousMessage: String { return self._s[941]! } + public var Passport_Scans_Upload: String { return self._s[943]! } + public var AutoDownloadSettings_PhotosTitle: String { return self._s[944]! } + public var Map_OpenInHereMaps: String { return self._s[945]! } + public var Stickers_FavoriteStickers: String { return self._s[947]! } + public var CheckoutInfo_Pay: String { return self._s[948]! } + public var Passport_Identity_FrontSideHelp: String { return self._s[949]! } + public var Update_UpdateApp: String { return self._s[950]! } + public var Login_CountryCode: String { return self._s[951]! } + public var PasscodeSettings_AutoLock_IfAwayFor_1hour: String { return self._s[952]! } + public var CheckoutInfo_ShippingInfoState: String { return self._s[953]! } public func CHAT_MESSAGE_AUDIO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[960]!, self._r[960]!, [_1, _2]) + return formatWithArgumentRanges(self._s[954]!, self._r[954]!, [_1, _2]) } - public var Login_SmsRequestState2: String { return self._s[961]! } - public var Preview_SaveToCameraRoll: String { return self._s[962]! } - public var SocksProxySetup_ProxyStatusConnecting: String { return self._s[963]! } - public var Broadcast_AdminLog_EmptyText: String { return self._s[964]! } - public var PasscodeSettings_ChangePasscode: String { return self._s[965]! } - public var TwoStepAuth_RecoveryCodeInvalid: String { return self._s[966]! } + public var Login_SmsRequestState2: String { return self._s[955]! } + public var Preview_SaveToCameraRoll: String { return self._s[956]! } + public var SocksProxySetup_ProxyStatusConnecting: String { return self._s[957]! } + public var Broadcast_AdminLog_EmptyText: String { return self._s[958]! } + public var PasscodeSettings_ChangePasscode: String { return self._s[959]! } + public var TwoStepAuth_RecoveryCodeInvalid: String { return self._s[960]! } public func Message_PaymentSent(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[967]!, self._r[967]!, [_0]) + return formatWithArgumentRanges(self._s[961]!, self._r[961]!, [_0]) } - public var TwoStepAuth_RecoveryEmailChangeDescription: String { return self._s[969]! } - public var Message_PinnedAudioMessage: String { return self._s[970]! } - public var ChatSettings_ConnectionType_Title: String { return self._s[973]! } + public var TwoStepAuth_RecoveryEmailChangeDescription: String { return self._s[963]! } + public var Message_PinnedAudioMessage: String { return self._s[964]! } + public var ChatSettings_ConnectionType_Title: String { return self._s[967]! } public func Conversation_RestrictedMediaTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[975]!, self._r[975]!, [_0]) + return formatWithArgumentRanges(self._s[969]!, self._r[969]!, [_0]) } - public var NotificationsSound_Complete: String { return self._s[976]! } - public var NotificationsSound_Chime: String { return self._s[977]! } - public var Login_InfoDeletePhoto: String { return self._s[978]! } - public var ContactInfo_BirthdayLabel: String { return self._s[981]! } - public var TwoStepAuth_RecoveryCodeExpired: String { return self._s[982]! } - public var AutoDownloadSettings_Channels: String { return self._s[983]! } - public var AutoDownloadSettings_Contacts: String { return self._s[985]! } - public var TwoStepAuth_EmailTitle: String { return self._s[986]! } - public var Passport_Email_EmailPlaceholder: String { return self._s[987]! } - public var Channel_AdminLog_ChannelEmptyText: String { return self._s[988]! } - public var Passport_Address_EditUtilityBill: String { return self._s[989]! } - public var Privacy_GroupsAndChannels_NeverAllow: String { return self._s[990]! } - public var Conversation_RestrictedStickers: String { return self._s[991]! } - public var Conversation_AddContact: String { return self._s[992]! } - public var Login_CancelPhoneVerificationContinue: String { return self._s[993]! } + public var NotificationsSound_Complete: String { return self._s[970]! } + public var NotificationsSound_Chime: String { return self._s[971]! } + public var Login_InfoDeletePhoto: String { return self._s[972]! } + public var ContactInfo_BirthdayLabel: String { return self._s[975]! } + public var TwoStepAuth_RecoveryCodeExpired: String { return self._s[976]! } + public var AutoDownloadSettings_Channels: String { return self._s[977]! } + public var AutoDownloadSettings_Contacts: String { return self._s[979]! } + public var TwoStepAuth_EmailTitle: String { return self._s[980]! } + public var Passport_Email_EmailPlaceholder: String { return self._s[981]! } + public var Channel_AdminLog_ChannelEmptyText: String { return self._s[982]! } + public var Passport_Address_EditUtilityBill: String { return self._s[983]! } + public var Privacy_GroupsAndChannels_NeverAllow: String { return self._s[984]! } + public var Conversation_RestrictedStickers: String { return self._s[985]! } + public var Conversation_AddContact: String { return self._s[986]! } + public var Login_CancelPhoneVerificationContinue: String { return self._s[987]! } public func Time_MonthOfYear_m7(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[994]!, self._r[994]!, [_0]) + return formatWithArgumentRanges(self._s[988]!, self._r[988]!, [_0]) } - public var PhotoEditor_QualityLow: String { return self._s[995]! } - public var Paint_Outlined: String { return self._s[996]! } - public var State_ConnectingToProxyInfo: String { return self._s[998]! } - public var Checkout_PasswordEntry_Title: String { return self._s[999]! } - public var Conversation_InputTextCaptionPlaceholder: String { return self._s[1001]! } - public var Common_Done: String { return self._s[1002]! } - public var Passport_Identity_FilesUploadNew: String { return self._s[1003]! } - public var PrivacySettings_LastSeenContacts: String { return self._s[1005]! } - public var Passport_Language_vi: String { return self._s[1006]! } - public var CheckoutInfo_ShippingInfoAddress1: String { return self._s[1007]! } - public var UserInfo_LastNamePlaceholder: String { return self._s[1008]! } - public var Conversation_StatusKickedFromChannel: String { return self._s[1010]! } - public var CheckoutInfo_ShippingInfoAddress2: String { return self._s[1011]! } + public var PhotoEditor_QualityLow: String { return self._s[989]! } + public var Paint_Outlined: String { return self._s[990]! } + public var State_ConnectingToProxyInfo: String { return self._s[992]! } + public var Checkout_PasswordEntry_Title: String { return self._s[993]! } + public var Conversation_InputTextCaptionPlaceholder: String { return self._s[995]! } + public var Common_Done: String { return self._s[996]! } + public var Passport_Identity_FilesUploadNew: String { return self._s[997]! } + public var PrivacySettings_LastSeenContacts: String { return self._s[999]! } + public var Passport_Language_vi: String { return self._s[1000]! } + public var CheckoutInfo_ShippingInfoAddress1: String { return self._s[1001]! } + public var UserInfo_LastNamePlaceholder: String { return self._s[1002]! } + public var Conversation_StatusKickedFromChannel: String { return self._s[1004]! } + public var CheckoutInfo_ShippingInfoAddress2: String { return self._s[1005]! } public func DialogList_SingleTypingSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1012]!, self._r[1012]!, [_0]) + return formatWithArgumentRanges(self._s[1006]!, self._r[1006]!, [_0]) } - public var LastSeen_JustNow: String { return self._s[1013]! } - public var GroupInfo_InviteLink_RevokeAlert_Text: String { return self._s[1014]! } - public var BroadcastListInfo_AddRecipient: String { return self._s[1015]! } + public var LastSeen_JustNow: String { return self._s[1007]! } + public var GroupInfo_InviteLink_RevokeAlert_Text: String { return self._s[1008]! } + public var BroadcastListInfo_AddRecipient: String { return self._s[1009]! } public func Channel_Management_ErrorNotMember(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1016]!, self._r[1016]!, [_0]) + return formatWithArgumentRanges(self._s[1010]!, self._r[1010]!, [_0]) } - public var Privacy_Calls_NeverAllow: String { return self._s[1017]! } - public var Settings_About_Title: String { return self._s[1018]! } - public var PhoneNumberHelp_Help: String { return self._s[1019]! } - public var Channel_LinkItem: String { return self._s[1021]! } - public var Camera_Retake: String { return self._s[1022]! } - public var StickerPack_ShowStickers: String { return self._s[1023]! } - public var Conversation_RestrictedText: String { return self._s[1024]! } - public var Channel_Stickers_YourStickers: String { return self._s[1025]! } + public var Privacy_Calls_NeverAllow: String { return self._s[1011]! } + public var Settings_About_Title: String { return self._s[1012]! } + public var PhoneNumberHelp_Help: String { return self._s[1013]! } + public var Channel_LinkItem: String { return self._s[1015]! } + public var ChatList_Read: String { return self._s[1016]! } + public var Camera_Retake: String { return self._s[1017]! } + public var StickerPack_ShowStickers: String { return self._s[1018]! } + public var Conversation_RestrictedText: String { return self._s[1019]! } + public var Channel_Stickers_YourStickers: String { return self._s[1020]! } public func CHAT_CREATED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1029]!, self._r[1029]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1024]!, self._r[1024]!, [_1, _2]) } - public var LastSeen_WithinAMonth: String { return self._s[1030]! } + public var LastSeen_WithinAMonth: String { return self._s[1025]! } public func PrivacySettings_LastSeenContactsPlus(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1031]!, self._r[1031]!, [_0]) + return formatWithArgumentRanges(self._s[1026]!, self._r[1026]!, [_0]) } - public var ApplyLanguage_UnsufficientDataTitle: String { return self._s[1032]! } - public var ChangePhoneNumberNumber_NewNumber: String { return self._s[1034]! } - public var Compose_NewChannel: String { return self._s[1035]! } - public var Permissions_NotificationsText: String { return self._s[1036]! } - public var NotificationsSound_Circles: String { return self._s[1037]! } - public var Login_TermsOfServiceAgree: String { return self._s[1039]! } - public var Channel_AdminLog_CanChangeInviteLink: String { return self._s[1040]! } + public var ApplyLanguage_UnsufficientDataTitle: String { return self._s[1027]! } + public var ChangePhoneNumberNumber_NewNumber: String { return self._s[1029]! } + public var Compose_NewChannel: String { return self._s[1030]! } + public var NotificationsSound_Circles: String { return self._s[1031]! } + public var Login_TermsOfServiceAgree: String { return self._s[1033]! } + public var Channel_AdminLog_CanChangeInviteLink: String { return self._s[1034]! } public func Passport_RequestHeader(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1041]!, self._r[1041]!, [_0]) + return formatWithArgumentRanges(self._s[1035]!, self._r[1035]!, [_0]) } public func Call_CallInProgressMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1042]!, self._r[1042]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1036]!, self._r[1036]!, [_1, _2]) } - public var Conversation_InputTextBroadcastPlaceholder: String { return self._s[1044]! } + public var Conversation_InputTextBroadcastPlaceholder: String { return self._s[1038]! } public func ShareFileTip_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1046]!, self._r[1046]!, [_0]) + return formatWithArgumentRanges(self._s[1040]!, self._r[1040]!, [_0]) } public func CancelResetAccount_TextSMS(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1047]!, self._r[1047]!, [_0]) + return formatWithArgumentRanges(self._s[1041]!, self._r[1041]!, [_0]) } - public var Channel_EditAdmin_PermissionInviteUsers: String { return self._s[1048]! } - public var Privacy_Calls_P2PNever: String { return self._s[1049]! } - public var GroupInfo_DeleteAndExit: String { return self._s[1050]! } - public var GroupInfo_InviteLink_CopyLink: String { return self._s[1051]! } - public var Weekday_Friday: String { return self._s[1053]! } - public var Login_ResetAccountProtected_Title: String { return self._s[1054]! } - public var Settings_SetProfilePhoto: String { return self._s[1055]! } - public var Compose_ChannelTokenListPlaceholder: String { return self._s[1056]! } - public var Channel_EditAdmin_PermissionPinMessages: String { return self._s[1057]! } - public var Your_card_has_expired: String { return self._s[1058]! } + public var Channel_EditAdmin_PermissionInviteUsers: String { return self._s[1042]! } + public var Privacy_Calls_P2PNever: String { return self._s[1043]! } + public var GroupInfo_DeleteAndExit: String { return self._s[1044]! } + public var GroupInfo_InviteLink_CopyLink: String { return self._s[1045]! } + public var Weekday_Friday: String { return self._s[1047]! } + public var Login_ResetAccountProtected_Title: String { return self._s[1048]! } + public var Settings_SetProfilePhoto: String { return self._s[1049]! } + public var Compose_ChannelTokenListPlaceholder: String { return self._s[1050]! } + public var Channel_EditAdmin_PermissionPinMessages: String { return self._s[1051]! } + public var Your_card_has_expired: String { return self._s[1052]! } public func CHAT_MESSAGE_INVOICE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1061]!, self._r[1061]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1055]!, self._r[1055]!, [_1, _2, _3]) } - public var ChannelInfo_ConfirmLeave: String { return self._s[1062]! } - public var ShareMenu_CopyShareLinkGame: String { return self._s[1063]! } - public var ReportPeer_ReasonOther: String { return self._s[1065]! } + public var ChannelInfo_ConfirmLeave: String { return self._s[1056]! } + public var ShareMenu_CopyShareLinkGame: String { return self._s[1057]! } + public var ReportPeer_ReasonOther: String { return self._s[1059]! } public func Username_UsernameIsAvailable(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1066]!, self._r[1066]!, [_0]) + return formatWithArgumentRanges(self._s[1060]!, self._r[1060]!, [_0]) } - public var KeyCommand_JumpToNextUnreadChat: String { return self._s[1068]! } - public var InfoPlist_NSContactsUsageDescription: String { return self._s[1069]! } + public var KeyCommand_JumpToNextUnreadChat: String { return self._s[1062]! } + public var InfoPlist_NSContactsUsageDescription: String { return self._s[1063]! } public func SocksProxySetup_ProxyStatusPing(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1071]!, self._r[1071]!, [_0]) + return formatWithArgumentRanges(self._s[1065]!, self._r[1065]!, [_0]) } public func Date_ChatDateHeader(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1072]!, self._r[1072]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1066]!, self._r[1066]!, [_1, _2]) } - public var Conversation_EncryptedDescriptionTitle: String { return self._s[1074]! } - public var DialogList_Pin: String { return self._s[1075]! } + public var Conversation_EncryptedDescriptionTitle: String { return self._s[1068]! } + public var DialogList_Pin: String { return self._s[1069]! } public func Notification_RemovedGroupPhoto(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1076]!, self._r[1076]!, [_0]) + return formatWithArgumentRanges(self._s[1070]!, self._r[1070]!, [_0]) } - public var Channel_ErrorAddTooMuch: String { return self._s[1077]! } - public var GroupInfo_SharedMediaNone: String { return self._s[1078]! } - public var ChatSettings_TextSizeUnits: String { return self._s[1079]! } - public var ChatSettings_AutoPlayAnimations: String { return self._s[1080]! } - public var Conversation_FileOpenIn: String { return self._s[1081]! } - public var Channel_Setup_TypePublic: String { return self._s[1082]! } + public var Channel_ErrorAddTooMuch: String { return self._s[1071]! } + public var GroupInfo_SharedMediaNone: String { return self._s[1072]! } + public var ChatSettings_TextSizeUnits: String { return self._s[1073]! } + public var ChatSettings_AutoPlayAnimations: String { return self._s[1074]! } + public var Conversation_FileOpenIn: String { return self._s[1075]! } + public var Channel_Setup_TypePublic: String { return self._s[1076]! } public func ChangePhone_ErrorOccupied(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1083]!, self._r[1083]!, [_0]) + return formatWithArgumentRanges(self._s[1077]!, self._r[1077]!, [_0]) } - public var ContactInfo_PhoneLabelMain: String { return self._s[1084]! } - public var Clipboard_SendPhoto: String { return self._s[1085]! } - public var Privacy_GroupsAndChannels_CustomShareHelp: String { return self._s[1086]! } - public var KeyCommand_ChatInfo: String { return self._s[1087]! } - public var Channel_AdminLog_EmptyFilterTitle: String { return self._s[1088]! } - public var PhotoEditor_HighlightsTint: String { return self._s[1089]! } - public var Passport_Address_Region: String { return self._s[1091]! } - public var Watch_Compose_AddContact: String { return self._s[1092]! } + public var ContactInfo_PhoneLabelMain: String { return self._s[1078]! } + public var Clipboard_SendPhoto: String { return self._s[1079]! } + public var Privacy_GroupsAndChannels_CustomShareHelp: String { return self._s[1080]! } + public var KeyCommand_ChatInfo: String { return self._s[1081]! } + public var Channel_AdminLog_EmptyFilterTitle: String { return self._s[1082]! } + public var PhotoEditor_HighlightsTint: String { return self._s[1083]! } + public var Passport_Address_Region: String { return self._s[1085]! } + public var Watch_Compose_AddContact: String { return self._s[1086]! } public func Time_PreciseDate_m5(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1093]!, self._r[1093]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1087]!, self._r[1087]!, [_1, _2, _3]) } public func Channel_AdminLog_MessageKickedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1094]!, self._r[1094]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1088]!, self._r[1088]!, [_1, _2]) } public func Login_WillSendSms(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1095]!, self._r[1095]!, [_0]) + return formatWithArgumentRanges(self._s[1089]!, self._r[1089]!, [_0]) } - public var Coub_TapForSound: String { return self._s[1096]! } + public var Coub_TapForSound: String { return self._s[1090]! } public func AuthCode_Alert(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1098]!, self._r[1098]!, [_0]) + return formatWithArgumentRanges(self._s[1092]!, self._r[1092]!, [_0]) } - public var Compose_NewEncryptedChat: String { return self._s[1100]! } - public var PhotoEditor_CropReset: String { return self._s[1101]! } - public var Privacy_Calls_P2PAlways: String { return self._s[1103]! } - public var Passport_Address_TypeTemporaryRegistrationUploadScan: String { return self._s[1104]! } - public var Login_InvalidLastNameError: String { return self._s[1105]! } - public var Channel_Members_AddMembers: String { return self._s[1106]! } - public var Tour_Title2: String { return self._s[1107]! } - public var Login_TermsOfServiceHeader: String { return self._s[1109]! } - public var Channel_AdminLog_BanSendGifs: String { return self._s[1110]! } - public var Login_TermsOfServiceSignupDecline: String { return self._s[1112]! } - public var InfoPlist_NSMicrophoneUsageDescription: String { return self._s[1113]! } - public var AuthSessions_OtherSessions: String { return self._s[1114]! } - public var Watch_UserInfo_Title: String { return self._s[1115]! } - public var InstantPage_FeedbackButton: String { return self._s[1116]! } + public var Compose_NewEncryptedChat: String { return self._s[1094]! } + public var PhotoEditor_CropReset: String { return self._s[1095]! } + public var Privacy_Calls_P2PAlways: String { return self._s[1097]! } + public var Passport_Address_TypeTemporaryRegistrationUploadScan: String { return self._s[1098]! } + public var Login_InvalidLastNameError: String { return self._s[1099]! } + public var Channel_Members_AddMembers: String { return self._s[1100]! } + public var Tour_Title2: String { return self._s[1101]! } + public var Login_TermsOfServiceHeader: String { return self._s[1103]! } + public var Channel_AdminLog_BanSendGifs: String { return self._s[1104]! } + public var Login_TermsOfServiceSignupDecline: String { return self._s[1106]! } + public var InfoPlist_NSMicrophoneUsageDescription: String { return self._s[1107]! } + public var AuthSessions_OtherSessions: String { return self._s[1108]! } + public var Watch_UserInfo_Title: String { return self._s[1109]! } + public var InstantPage_FeedbackButton: String { return self._s[1110]! } public func Generic_OpenHiddenLinkAlert(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1117]!, self._r[1117]!, [_0]) + return formatWithArgumentRanges(self._s[1111]!, self._r[1111]!, [_0]) } - public var Conversation_Contact: String { return self._s[1118]! } - public var NetworkUsageSettings_GeneralDataSection: String { return self._s[1119]! } - public var EnterPasscode_RepeatNewPasscode: String { return self._s[1122]! } - public var Conversation_ContextMenuCopyLink: String { return self._s[1123]! } - public var Passport_Language_sk: String { return self._s[1124]! } - public var InstantPage_AutoNightTheme: String { return self._s[1125]! } - public var CloudStorage_Title: String { return self._s[1126]! } - public var Month_ShortOctober: String { return self._s[1127]! } - public var Settings_FAQ: String { return self._s[1129]! } - public var PrivacySettings_LastSeen: String { return self._s[1130]! } - public var DialogList_SearchSectionRecent: String { return self._s[1131]! } - public var ChatSettings_AutomaticVideoMessageDownload: String { return self._s[1132]! } - public var Conversation_ContextMenuDelete: String { return self._s[1133]! } - public var Tour_Text6: String { return self._s[1134]! } - public var PhotoEditor_WarmthTool: String { return self._s[1135]! } - public var Passport_Address_TypePassportRegistrationUploadScan: String { return self._s[1137]! } - public var Common_TakePhoto: String { return self._s[1138]! } - public var SocksProxySetup_AdNoticeHelp: String { return self._s[1139]! } - public var Permissions_SiriAllowInSettings: String { return self._s[1140]! } - public var UserInfo_CreateNewContact: String { return self._s[1142]! } - public var NetworkUsageSettings_MediaDocumentDataSection: String { return self._s[1143]! } - public var Login_CodeSentCall: String { return self._s[1144]! } - public var Watch_PhotoView_Title: String { return self._s[1145]! } + public var Conversation_Contact: String { return self._s[1112]! } + public var NetworkUsageSettings_GeneralDataSection: String { return self._s[1113]! } + public var EnterPasscode_RepeatNewPasscode: String { return self._s[1116]! } + public var Conversation_ContextMenuCopyLink: String { return self._s[1117]! } + public var Passport_Language_sk: String { return self._s[1118]! } + public var InstantPage_AutoNightTheme: String { return self._s[1119]! } + public var CloudStorage_Title: String { return self._s[1120]! } + public var Month_ShortOctober: String { return self._s[1121]! } + public var Settings_FAQ: String { return self._s[1123]! } + public var PrivacySettings_LastSeen: String { return self._s[1124]! } + public var DialogList_SearchSectionRecent: String { return self._s[1125]! } + public var ChatSettings_AutomaticVideoMessageDownload: String { return self._s[1126]! } + public var Conversation_ContextMenuDelete: String { return self._s[1127]! } + public var Tour_Text6: String { return self._s[1128]! } + public var PhotoEditor_WarmthTool: String { return self._s[1129]! } + public var Passport_Address_TypePassportRegistrationUploadScan: String { return self._s[1131]! } + public var Common_TakePhoto: String { return self._s[1132]! } + public var SocksProxySetup_AdNoticeHelp: String { return self._s[1133]! } + public var UserInfo_CreateNewContact: String { return self._s[1135]! } + public var NetworkUsageSettings_MediaDocumentDataSection: String { return self._s[1136]! } + public var Login_CodeSentCall: String { return self._s[1137]! } + public var Watch_PhotoView_Title: String { return self._s[1138]! } public func PrivacySettings_LastSeenContactsMinus(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1146]!, self._r[1146]!, [_0]) + return formatWithArgumentRanges(self._s[1139]!, self._r[1139]!, [_0]) } - public var ShareMenu_SelectChats: String { return self._s[1148]! } - public var Group_ErrorSendRestrictedMedia: String { return self._s[1149]! } - public var Group_Setup_HistoryVisible: String { return self._s[1150]! } - public var Channel_EditAdmin_PermissinAddAdminOff: String { return self._s[1151]! } - public var DialogList_ProxyConnectionIssuesTooltip: String { return self._s[1153]! } - public var Cache_Files: String { return self._s[1154]! } - public var PhotoEditor_EnhanceTool: String { return self._s[1156]! } - public var Conversation_SearchPlaceholder: String { return self._s[1157]! } - public var Channel_Stickers_NotFound: String { return self._s[1158]! } - public var UserInfo_NotificationsDefaultEnabled: String { return self._s[1162]! } - public var Login_CodeExpired: String { return self._s[1163]! } - public var WatchRemote_AlertText: String { return self._s[1164]! } - public var Channel_AdminLog_CanInviteUsers: String { return self._s[1166]! } - public var Channel_BanUser_PermissionReadMessages: String { return self._s[1168]! } - public var AttachmentMenu_PhotoOrVideo: String { return self._s[1169]! } - public var Passport_Identity_GenderPlaceholder: String { return self._s[1170]! } - public var Month_ShortMarch: String { return self._s[1171]! } - public var GroupInfo_InviteLink_Title: String { return self._s[1172]! } - public var Watch_LastSeen_JustNow: String { return self._s[1173]! } - public var PhoneLabel_Title: String { return self._s[1174]! } - public var PrivacySettings_Passcode: String { return self._s[1176]! } - public var Paint_ClearConfirm: String { return self._s[1178]! } - public var SocksProxySetup_Secret: String { return self._s[1179]! } + public var ShareMenu_SelectChats: String { return self._s[1141]! } + public var Group_ErrorSendRestrictedMedia: String { return self._s[1142]! } + public var Group_Setup_HistoryVisible: String { return self._s[1143]! } + public var Channel_EditAdmin_PermissinAddAdminOff: String { return self._s[1144]! } + public var DialogList_ProxyConnectionIssuesTooltip: String { return self._s[1146]! } + public var Cache_Files: String { return self._s[1147]! } + public var PhotoEditor_EnhanceTool: String { return self._s[1149]! } + public var Conversation_SearchPlaceholder: String { return self._s[1150]! } + public var Channel_Stickers_NotFound: String { return self._s[1151]! } + public var UserInfo_NotificationsDefaultEnabled: String { return self._s[1155]! } + public var Login_CodeExpired: String { return self._s[1156]! } + public var WatchRemote_AlertText: String { return self._s[1157]! } + public var Channel_AdminLog_CanInviteUsers: String { return self._s[1159]! } + public var Channel_BanUser_PermissionReadMessages: String { return self._s[1161]! } + public var AttachmentMenu_PhotoOrVideo: String { return self._s[1162]! } + public var Passport_Identity_GenderPlaceholder: String { return self._s[1163]! } + public var Month_ShortMarch: String { return self._s[1164]! } + public var GroupInfo_InviteLink_Title: String { return self._s[1165]! } + public var Watch_LastSeen_JustNow: String { return self._s[1166]! } + public var PhoneLabel_Title: String { return self._s[1167]! } + public var PrivacySettings_Passcode: String { return self._s[1169]! } + public var Paint_ClearConfirm: String { return self._s[1171]! } + public var SocksProxySetup_Secret: String { return self._s[1172]! } public func Checkout_SavePasswordTimeout(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1180]!, self._r[1180]!, [_0]) + return formatWithArgumentRanges(self._s[1173]!, self._r[1173]!, [_0]) } - public var PhotoEditor_BlurToolOff: String { return self._s[1181]! } - public var AccessDenied_VideoMicrophone: String { return self._s[1182]! } - public var Weekday_ShortThursday: String { return self._s[1183]! } - public var UserInfo_ShareContact: String { return self._s[1184]! } - public var LoginPassword_InvalidPasswordError: String { return self._s[1185]! } - public var NotificationsSound_Calypso: String { return self._s[1187]! } + public var PhotoEditor_BlurToolOff: String { return self._s[1174]! } + public var AccessDenied_VideoMicrophone: String { return self._s[1175]! } + public var Weekday_ShortThursday: String { return self._s[1176]! } + public var UserInfo_ShareContact: String { return self._s[1177]! } + public var LoginPassword_InvalidPasswordError: String { return self._s[1178]! } + public var NotificationsSound_Calypso: String { return self._s[1180]! } public func MESSAGE_PHOTO_SECRET(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1188]!, self._r[1188]!, [_1]) + return formatWithArgumentRanges(self._s[1181]!, self._r[1181]!, [_1]) } - public var Login_PhoneAndCountryHelp: String { return self._s[1189]! } - public var CheckoutInfo_ReceiverInfoName: String { return self._s[1190]! } - public var NotificationsSound_Popcorn: String { return self._s[1192]! } + public var Login_PhoneAndCountryHelp: String { return self._s[1182]! } + public var CheckoutInfo_ReceiverInfoName: String { return self._s[1183]! } + public var NotificationsSound_Popcorn: String { return self._s[1185]! } public func Time_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1193]!, self._r[1193]!, [_0]) + return formatWithArgumentRanges(self._s[1186]!, self._r[1186]!, [_0]) } - public var Weekday_Yesterday: String { return self._s[1194]! } - public var Conversation_InputTextSilentBroadcastPlaceholder: String { return self._s[1195]! } - public var Embed_PlayingInPIP: String { return self._s[1196]! } - public var Localization_EnglishLanguageName: String { return self._s[1197]! } - public var Call_StatusIncoming: String { return self._s[1198]! } - public var Settings_Appearance: String { return self._s[1199]! } + public var Weekday_Yesterday: String { return self._s[1187]! } + public var Conversation_InputTextSilentBroadcastPlaceholder: String { return self._s[1188]! } + public var Embed_PlayingInPIP: String { return self._s[1189]! } + public var Localization_EnglishLanguageName: String { return self._s[1190]! } + public var Call_StatusIncoming: String { return self._s[1191]! } + public var Settings_Appearance: String { return self._s[1192]! } public func ApplyLanguage_ChangeLanguageAlreadyActive(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1201]!, self._r[1201]!, [_1]) + return formatWithArgumentRanges(self._s[1194]!, self._r[1194]!, [_1]) } - public var Settings_PrivacySettings: String { return self._s[1202]! } - public var Conversation_SilentBroadcastTooltipOn: String { return self._s[1203]! } + public var Settings_PrivacySettings: String { return self._s[1195]! } + public var Conversation_SilentBroadcastTooltipOn: String { return self._s[1196]! } public func SecretVideo_NotViewedYet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1204]!, self._r[1204]!, [_0]) + return formatWithArgumentRanges(self._s[1197]!, self._r[1197]!, [_0]) } public func CHAT_MESSAGE_GEO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1205]!, self._r[1205]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1198]!, self._r[1198]!, [_1, _2]) } - public var DialogList_SearchLabel: String { return self._s[1207]! } - public var InfoPlist_NSLocationAlwaysAndWhenInUseUsageDescription: String { return self._s[1208]! } - public var Login_CodeSentInternal: String { return self._s[1209]! } - public var Channel_AdminLog_BanSendMessages: String { return self._s[1211]! } - public var Channel_MessagePhotoRemoved: String { return self._s[1212]! } - public var Conversation_StatusKickedFromGroup: String { return self._s[1213]! } - public var GroupInfo_ChatAdmins: String { return self._s[1214]! } - public var PhotoEditor_CurvesAll: String { return self._s[1215]! } + public var DialogList_SearchLabel: String { return self._s[1200]! } + public var InfoPlist_NSLocationAlwaysAndWhenInUseUsageDescription: String { return self._s[1201]! } + public var Login_CodeSentInternal: String { return self._s[1202]! } + public var Channel_AdminLog_BanSendMessages: String { return self._s[1204]! } + public var Channel_MessagePhotoRemoved: String { return self._s[1205]! } + public var Conversation_StatusKickedFromGroup: String { return self._s[1206]! } + public var GroupInfo_ChatAdmins: String { return self._s[1207]! } + public var PhotoEditor_CurvesAll: String { return self._s[1208]! } public func Notification_LeftChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1216]!, self._r[1216]!, [_0]) + return formatWithArgumentRanges(self._s[1209]!, self._r[1209]!, [_0]) } - public var Compose_Create: String { return self._s[1217]! } + public var Compose_Create: String { return self._s[1210]! } public func Passport_Identity_NativeNameGenericHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1218]!, self._r[1218]!, [_0]) + return formatWithArgumentRanges(self._s[1211]!, self._r[1211]!, [_0]) } public func LOCKED_MESSAGE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1219]!, self._r[1219]!, [_1]) + return formatWithArgumentRanges(self._s[1212]!, self._r[1212]!, [_1]) } - public var Conversation_ClearPrivateHistory: String { return self._s[1220]! } - public var Conversation_ContextMenuShare: String { return self._s[1221]! } - public var Notifications_ExceptionsNone: String { return self._s[1222]! } + public var Conversation_ClearPrivateHistory: String { return self._s[1213]! } + public var Conversation_ContextMenuShare: String { return self._s[1214]! } + public var Notifications_ExceptionsNone: String { return self._s[1215]! } public func Time_MonthOfYear_m6(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1223]!, self._r[1223]!, [_0]) + return formatWithArgumentRanges(self._s[1216]!, self._r[1216]!, [_0]) } - public var Conversation_ContextMenuReport: String { return self._s[1224]! } + public var Conversation_ContextMenuReport: String { return self._s[1217]! } public func Call_GroupFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1226]!, self._r[1226]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1219]!, self._r[1219]!, [_1, _2]) } - public var Forward_ChannelReadOnly: String { return self._s[1227]! } - public var Passport_InfoText: String { return self._s[1229]! } - public var Privacy_GroupsAndChannels_NeverAllow_Title: String { return self._s[1230]! } + public var Forward_ChannelReadOnly: String { return self._s[1220]! } + public var Passport_InfoText: String { return self._s[1222]! } + public var Privacy_GroupsAndChannels_NeverAllow_Title: String { return self._s[1223]! } public func Passport_Address_UploadOneOfScan(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1231]!, self._r[1231]!, [_0]) + return formatWithArgumentRanges(self._s[1224]!, self._r[1224]!, [_0]) } - public var AutoDownloadSettings_Reset: String { return self._s[1232]! } - public var NotificationsSound_Synth: String { return self._s[1233]! } - public var TextFormat_Bold: String { return self._s[1234]! } + public var AutoDownloadSettings_Reset: String { return self._s[1225]! } + public var NotificationsSound_Synth: String { return self._s[1226]! } + public var TextFormat_Bold: String { return self._s[1227]! } public func Channel_AdminLog_MessageInvitedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1235]!, self._r[1235]!, [_1]) + return formatWithArgumentRanges(self._s[1228]!, self._r[1228]!, [_1]) } - public var Conversation_Moderate_Ban: String { return self._s[1238]! } - public var Group_Status: String { return self._s[1240]! } - public var SocksProxySetup_ShareProxyList: String { return self._s[1243]! } - public var Passport_Phone_Delete: String { return self._s[1244]! } - public var Conversation_InputTextPlaceholder: String { return self._s[1245]! } - public var ContactInfo_PhoneLabelOther: String { return self._s[1246]! } - public var Passport_Language_lv: String { return self._s[1248]! } - public var TwoStepAuth_RecoveryCode: String { return self._s[1249]! } - public var Conversation_EditingMessageMediaEditCurrentPhoto: String { return self._s[1250]! } - public var Passport_DeleteDocumentConfirmation: String { return self._s[1251]! } - public var Passport_Language_hy: String { return self._s[1252]! } - public var Permissions_PrivacyPolicy: String { return self._s[1253]! } - public var SharedMedia_CategoryDocs: String { return self._s[1256]! } - public var Channel_AdminLog_CanChangeInfo: String { return self._s[1258]! } - public var Channel_AdminLogFilter_EventsAdmins: String { return self._s[1259]! } - public var Group_Setup_HistoryHiddenHelp: String { return self._s[1260]! } + public var Conversation_Moderate_Ban: String { return self._s[1231]! } + public var Group_Status: String { return self._s[1233]! } + public var SocksProxySetup_ShareProxyList: String { return self._s[1236]! } + public var Passport_Phone_Delete: String { return self._s[1237]! } + public var Conversation_InputTextPlaceholder: String { return self._s[1238]! } + public var ContactInfo_PhoneLabelOther: String { return self._s[1239]! } + public var Passport_Language_lv: String { return self._s[1241]! } + public var TwoStepAuth_RecoveryCode: String { return self._s[1242]! } + public var Conversation_EditingMessageMediaEditCurrentPhoto: String { return self._s[1243]! } + public var Passport_DeleteDocumentConfirmation: String { return self._s[1244]! } + public var Passport_Language_hy: String { return self._s[1245]! } + public var SharedMedia_CategoryDocs: String { return self._s[1248]! } + public var Channel_AdminLog_CanChangeInfo: String { return self._s[1250]! } + public var Channel_AdminLogFilter_EventsAdmins: String { return self._s[1251]! } + public var Group_Setup_HistoryHiddenHelp: String { return self._s[1252]! } public func AuthSessions_AppUnofficial(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1261]!, self._r[1261]!, [_0]) + return formatWithArgumentRanges(self._s[1253]!, self._r[1253]!, [_0]) } - public var NotificationsSound_Telegraph: String { return self._s[1262]! } - public var AutoNightTheme_Disabled: String { return self._s[1263]! } - public var Conversation_ContextMenuBan: String { return self._s[1264]! } - public var Channel_EditAdmin_PermissionsHeader: String { return self._s[1265]! } - public var SocksProxySetup_PortPlaceholder: String { return self._s[1266]! } + public var NotificationsSound_Telegraph: String { return self._s[1254]! } + public var AutoNightTheme_Disabled: String { return self._s[1255]! } + public var Conversation_ContextMenuBan: String { return self._s[1256]! } + public var Channel_EditAdmin_PermissionsHeader: String { return self._s[1257]! } + public var SocksProxySetup_PortPlaceholder: String { return self._s[1258]! } public func DialogList_SingleUploadingVideoSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1268]!, self._r[1268]!, [_0]) + return formatWithArgumentRanges(self._s[1260]!, self._r[1260]!, [_0]) } - public var Group_UpgradeNoticeHeader: String { return self._s[1269]! } + public var Group_UpgradeNoticeHeader: String { return self._s[1261]! } public func CHAT_DELETE_YOU(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1270]!, self._r[1270]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1262]!, self._r[1262]!, [_1, _2]) } public func MESSAGE_NOTEXT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1271]!, self._r[1271]!, [_1]) + return formatWithArgumentRanges(self._s[1263]!, self._r[1263]!, [_1]) } public func ApplyLanguage_ChangeLanguageUnofficialText(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1272]!, self._r[1272]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1264]!, self._r[1264]!, [_1, _2]) } public func CHAT_MESSAGE_GIF(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1274]!, self._r[1274]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1266]!, self._r[1266]!, [_1, _2]) } - public var GroupInfo_InviteLink_CopyAlert_Success: String { return self._s[1275]! } - public var Channel_Info_Members: String { return self._s[1276]! } - public var ShareFileTip_CloseTip: String { return self._s[1277]! } - public var KeyCommand_Find: String { return self._s[1278]! } - public var SecretVideo_Title: String { return self._s[1279]! } - public var Passport_DeleteAddressConfirmation: String { return self._s[1280]! } - public var Passport_DiscardMessageAction: String { return self._s[1281]! } - public var Passport_Language_dv: String { return self._s[1282]! } - public var Checkout_NewCard_PostcodeTitle: String { return self._s[1283]! } - public var Notifications_Badge_CountUnreadMessages_InfoOn: String { return self._s[1285]! } + public var GroupInfo_InviteLink_CopyAlert_Success: String { return self._s[1267]! } + public var Channel_Info_Members: String { return self._s[1268]! } + public var ShareFileTip_CloseTip: String { return self._s[1269]! } + public var KeyCommand_Find: String { return self._s[1270]! } + public var SecretVideo_Title: String { return self._s[1271]! } + public var Passport_DeleteAddressConfirmation: String { return self._s[1272]! } + public var Passport_DiscardMessageAction: String { return self._s[1273]! } + public var Passport_Language_dv: String { return self._s[1274]! } + public var Checkout_NewCard_PostcodeTitle: String { return self._s[1275]! } + public var Notifications_Badge_CountUnreadMessages_InfoOn: String { return self._s[1277]! } public func Channel_AdminLog_MessageRestricted(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1286]!, self._r[1286]!, [_0, _1, _2]) + return formatWithArgumentRanges(self._s[1278]!, self._r[1278]!, [_0, _1, _2]) } - public var SocksProxySetup_SecretPlaceholder: String { return self._s[1287]! } - public var Channel_EditAdmin_PermissinAddAdminOn: String { return self._s[1288]! } - public var WebSearch_GIFs: String { return self._s[1289]! } - public var Privacy_ChatsTitle: String { return self._s[1290]! } - public var Conversation_SavedMessages: String { return self._s[1291]! } - public var TwoStepAuth_EnterPasswordTitle: String { return self._s[1292]! } + public var SocksProxySetup_SecretPlaceholder: String { return self._s[1279]! } + public var Channel_EditAdmin_PermissinAddAdminOn: String { return self._s[1280]! } + public var WebSearch_GIFs: String { return self._s[1281]! } + public var Privacy_ChatsTitle: String { return self._s[1282]! } + public var Conversation_SavedMessages: String { return self._s[1283]! } + public var TwoStepAuth_EnterPasswordTitle: String { return self._s[1284]! } public func CHANNEL_MESSAGE_GAME(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1293]!, self._r[1293]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1285]!, self._r[1285]!, [_1, _2]) } - public var Channel_Subscribers_Title: String { return self._s[1294]! } - public var AccessDenied_CallMicrophone: String { return self._s[1295]! } - public var Conversation_DeleteMessagesForEveryone: String { return self._s[1296]! } - public var AuthSessions_Terminate: String { return self._s[1297]! } - public var UserInfo_TapToCall: String { return self._s[1298]! } - public var Common_Edit: String { return self._s[1299]! } - public var TwoStepAuth_AddHintDescription: String { return self._s[1301]! } - public var Conversation_OpenFile: String { return self._s[1302]! } - public var PrivacyPolicy_Decline: String { return self._s[1304]! } - public var Passport_Identity_ResidenceCountryPlaceholder: String { return self._s[1305]! } - public var Message_PinnedDocumentMessage: String { return self._s[1306]! } - public var AuthSessions_LogOut: String { return self._s[1308]! } - public var Settings_AppLanguage_Unofficial: String { return self._s[1310]! } - public var AutoDownloadSettings_PrivateChats: String { return self._s[1311]! } - public var Checkout_TotalPaidAmount: String { return self._s[1312]! } - public var Conversation_UnsupportedMedia: String { return self._s[1313]! } - public var Passport_InvalidPasswordError: String { return self._s[1314]! } + public var Channel_Subscribers_Title: String { return self._s[1286]! } + public var AccessDenied_CallMicrophone: String { return self._s[1287]! } + public var Conversation_DeleteMessagesForEveryone: String { return self._s[1288]! } + public var AuthSessions_Terminate: String { return self._s[1289]! } + public var UserInfo_TapToCall: String { return self._s[1290]! } + public var Common_Edit: String { return self._s[1291]! } + public var TwoStepAuth_AddHintDescription: String { return self._s[1293]! } + public var Conversation_OpenFile: String { return self._s[1294]! } + public var PrivacyPolicy_Decline: String { return self._s[1296]! } + public var Passport_Identity_ResidenceCountryPlaceholder: String { return self._s[1297]! } + public var Message_PinnedDocumentMessage: String { return self._s[1298]! } + public var AuthSessions_LogOut: String { return self._s[1300]! } + public var Settings_AppLanguage_Unofficial: String { return self._s[1302]! } + public var AutoDownloadSettings_PrivateChats: String { return self._s[1303]! } + public var Checkout_TotalPaidAmount: String { return self._s[1304]! } + public var Conversation_UnsupportedMedia: String { return self._s[1305]! } + public var Passport_InvalidPasswordError: String { return self._s[1306]! } public func Message_ForwardedMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1316]!, self._r[1316]!, [_0]) + return formatWithArgumentRanges(self._s[1308]!, self._r[1308]!, [_0]) } public func Time_PreciseDate_m4(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1317]!, self._r[1317]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1309]!, self._r[1309]!, [_1, _2, _3]) } - public var Checkout_NewCard_SaveInfoEnableHelp: String { return self._s[1318]! } - public var Call_AudioRouteHide: String { return self._s[1319]! } - public var CallSettings_OnMobile: String { return self._s[1321]! } - public var Conversation_GifTooltip: String { return self._s[1322]! } - public var Passport_Address_EditBankStatement: String { return self._s[1323]! } - public var CheckoutInfo_ErrorCityInvalid: String { return self._s[1325]! } + public var Checkout_NewCard_SaveInfoEnableHelp: String { return self._s[1310]! } + public var Call_AudioRouteHide: String { return self._s[1311]! } + public var CallSettings_OnMobile: String { return self._s[1313]! } + public var Conversation_GifTooltip: String { return self._s[1314]! } + public var Passport_Address_EditBankStatement: String { return self._s[1315]! } + public var CheckoutInfo_ErrorCityInvalid: String { return self._s[1317]! } public func CHANNEL_MESSAGE_PHOTOS(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1326]!, self._r[1326]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1318]!, self._r[1318]!, [_1, _2]) } - public var Profile_CreateEncryptedChatError: String { return self._s[1327]! } - public var Map_LocationTitle: String { return self._s[1328]! } - public var Call_RateCall: String { return self._s[1329]! } - public var Login_CancelPhoneVerificationStop: String { return self._s[1330]! } - public var Passport_Address_City: String { return self._s[1331]! } - public var SocksProxySetup_PasswordPlaceholder: String { return self._s[1332]! } - public var Message_ReplyActionButtonShowReceipt: String { return self._s[1334]! } - public var PhotoEditor_ShadowsTool: String { return self._s[1335]! } - public var Checkout_NewCard_CardholderNamePlaceholder: String { return self._s[1337]! } - public var Cache_Title: String { return self._s[1339]! } - public var Passport_Email_Title: String { return self._s[1340]! } - public var Month_GenMay: String { return self._s[1341]! } - public var PasscodeSettings_HelpBottom: String { return self._s[1342]! } + public var Profile_CreateEncryptedChatError: String { return self._s[1319]! } + public var Map_LocationTitle: String { return self._s[1320]! } + public var Call_RateCall: String { return self._s[1321]! } + public var Login_CancelPhoneVerificationStop: String { return self._s[1322]! } + public var Passport_Address_City: String { return self._s[1323]! } + public var SocksProxySetup_PasswordPlaceholder: String { return self._s[1324]! } + public var Message_ReplyActionButtonShowReceipt: String { return self._s[1326]! } + public var PhotoEditor_ShadowsTool: String { return self._s[1327]! } + public var Checkout_NewCard_CardholderNamePlaceholder: String { return self._s[1329]! } + public var Cache_Title: String { return self._s[1331]! } + public var Passport_Email_Title: String { return self._s[1332]! } + public var Month_GenMay: String { return self._s[1333]! } + public var PasscodeSettings_HelpBottom: String { return self._s[1334]! } public func Notification_CreatedChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1343]!, self._r[1343]!, [_0]) + return formatWithArgumentRanges(self._s[1335]!, self._r[1335]!, [_0]) } - public var Calls_NoMissedCallsPlacehoder: String { return self._s[1344]! } - public var Passport_Address_RegionPlaceholder: String { return self._s[1345]! } - public var Channel_Stickers_NotFoundHelp: String { return self._s[1346]! } - public var Watch_UserInfo_Block: String { return self._s[1347]! } - public var Watch_LastSeen_ALongTimeAgo: String { return self._s[1348]! } - public var StickerPacksSettings_ManagingHelp: String { return self._s[1349]! } - public var Privacy_GroupsAndChannels_InviteToChannelMultipleError: String { return self._s[1350]! } - public var SearchImages_Title: String { return self._s[1351]! } - public var Channel_BlackList_Title: String { return self._s[1352]! } + public var Calls_NoMissedCallsPlacehoder: String { return self._s[1336]! } + public var Passport_Address_RegionPlaceholder: String { return self._s[1337]! } + public var Channel_Stickers_NotFoundHelp: String { return self._s[1338]! } + public var Watch_UserInfo_Block: String { return self._s[1339]! } + public var Watch_LastSeen_ALongTimeAgo: String { return self._s[1340]! } + public var StickerPacksSettings_ManagingHelp: String { return self._s[1341]! } + public var Privacy_GroupsAndChannels_InviteToChannelMultipleError: String { return self._s[1342]! } + public var SearchImages_Title: String { return self._s[1343]! } + public var Channel_BlackList_Title: String { return self._s[1344]! } public func Conversation_LiveLocationYouAnd(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1354]!, self._r[1354]!, [_0]) + return formatWithArgumentRanges(self._s[1346]!, self._r[1346]!, [_0]) } - public var TwoStepAuth_PasswordRemovePassportConfirmation: String { return self._s[1355]! } - public var Checkout_NewCard_SaveInfo: String { return self._s[1356]! } - public var Notification_CallMissed: String { return self._s[1357]! } - public var Profile_ShareContactButton: String { return self._s[1358]! } - public var Group_ErrorSendRestrictedStickers: String { return self._s[1359]! } - public var Bot_GroupStatusDoesNotReadHistory: String { return self._s[1360]! } - public var Notification_Mute1h: String { return self._s[1361]! } + public var TwoStepAuth_PasswordRemovePassportConfirmation: String { return self._s[1347]! } + public var Checkout_NewCard_SaveInfo: String { return self._s[1348]! } + public var Notification_CallMissed: String { return self._s[1349]! } + public var Profile_ShareContactButton: String { return self._s[1350]! } + public var Group_ErrorSendRestrictedStickers: String { return self._s[1351]! } + public var Bot_GroupStatusDoesNotReadHistory: String { return self._s[1352]! } + public var Notification_Mute1h: String { return self._s[1353]! } public func Channel_AdminLog_MessageUnkickedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1362]!, self._r[1362]!, [_1]) + return formatWithArgumentRanges(self._s[1354]!, self._r[1354]!, [_1]) } - public var Passport_Identity_ExpiryDatePlaceholder: String { return self._s[1364]! } - public var NetworkUsageSettings_MediaAudioDataSection: String { return self._s[1365]! } - public var GroupInfo_DeactivatedStatus: String { return self._s[1366]! } + public var Passport_Identity_ExpiryDatePlaceholder: String { return self._s[1356]! } + public var NetworkUsageSettings_MediaAudioDataSection: String { return self._s[1357]! } + public var GroupInfo_DeactivatedStatus: String { return self._s[1358]! } public func CHAT_PHOTO_EDITED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1367]!, self._r[1367]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1359]!, self._r[1359]!, [_1, _2]) } - public var Conversation_ContextMenuMore: String { return self._s[1368]! } + public var Conversation_ContextMenuMore: String { return self._s[1360]! } public func PrivacySettings_LastSeenEverybodyMinus(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1369]!, self._r[1369]!, [_0]) + return formatWithArgumentRanges(self._s[1361]!, self._r[1361]!, [_0]) } - public var Map_ShareLiveLocation: String { return self._s[1370]! } - public var Weekday_Today: String { return self._s[1371]! } + public var Map_ShareLiveLocation: String { return self._s[1362]! } + public var Weekday_Today: String { return self._s[1363]! } public func PINNED_GEOLIVE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1372]!, self._r[1372]!, [_1]) + return formatWithArgumentRanges(self._s[1364]!, self._r[1364]!, [_1]) } public func Conversation_RestrictedStickersTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1373]!, self._r[1373]!, [_0]) + return formatWithArgumentRanges(self._s[1365]!, self._r[1365]!, [_0]) } - public var Login_InvalidFirstNameError: String { return self._s[1374]! } + public var Login_InvalidFirstNameError: String { return self._s[1366]! } public func Channel_AdminLog_MessageUnkickedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1375]!, self._r[1375]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1367]!, self._r[1367]!, [_1, _2]) } public func Notification_Joined(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1376]!, self._r[1376]!, [_0]) + return formatWithArgumentRanges(self._s[1368]!, self._r[1368]!, [_0]) } public func ApplyLanguage_UnsufficientDataText(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1377]!, self._r[1377]!, [_1]) + return formatWithArgumentRanges(self._s[1369]!, self._r[1369]!, [_1]) } - public var Paint_Clear: String { return self._s[1378]! } - public var TwoStepAuth_RecoveryFailed: String { return self._s[1380]! } + public var Paint_Clear: String { return self._s[1370]! } + public var TwoStepAuth_RecoveryFailed: String { return self._s[1372]! } public func MESSAGE_AUDIO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1381]!, self._r[1381]!, [_1]) + return formatWithArgumentRanges(self._s[1373]!, self._r[1373]!, [_1]) } - public var Checkout_PasswordEntry_Pay: String { return self._s[1382]! } - public var Conversation_EditingMessagePanelMedia: String { return self._s[1383]! } - public var Notifications_MessageNotificationsHelp: String { return self._s[1384]! } - public var EnterPasscode_EnterCurrentPasscode: String { return self._s[1385]! } - public var Conversation_EditingMessageMediaEditCurrentVideo: String { return self._s[1386]! } + public var Checkout_PasswordEntry_Pay: String { return self._s[1374]! } + public var Conversation_EditingMessagePanelMedia: String { return self._s[1375]! } + public var Notifications_MessageNotificationsHelp: String { return self._s[1376]! } + public var EnterPasscode_EnterCurrentPasscode: String { return self._s[1377]! } + public var Conversation_EditingMessageMediaEditCurrentVideo: String { return self._s[1378]! } public func MESSAGE_GAME(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1387]!, self._r[1387]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1379]!, self._r[1379]!, [_1, _2]) } - public var Conversation_Moderate_Report: String { return self._s[1388]! } - public var MessageTimer_Forever: String { return self._s[1389]! } - public var DialogList_SavedMessagesHelp: String { return self._s[1390]! } + public var Conversation_Moderate_Report: String { return self._s[1380]! } + public var MessageTimer_Forever: String { return self._s[1381]! } + public var DialogList_SavedMessagesHelp: String { return self._s[1382]! } public func Conversation_EncryptedPlaceholderTitleIncoming(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1391]!, self._r[1391]!, [_0]) + return formatWithArgumentRanges(self._s[1383]!, self._r[1383]!, [_0]) } public func Map_AccurateTo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1393]!, self._r[1393]!, [_0]) + return formatWithArgumentRanges(self._s[1385]!, self._r[1385]!, [_0]) } public func Call_ParticipantVersionOutdatedError(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1394]!, self._r[1394]!, [_0]) + return formatWithArgumentRanges(self._s[1386]!, self._r[1386]!, [_0]) } - public var Passport_Identity_ReverseSideHelp: String { return self._s[1395]! } - public var Tour_Text2: String { return self._s[1396]! } - public var Call_StatusNoAnswer: String { return self._s[1398]! } + public var Passport_Identity_ReverseSideHelp: String { return self._s[1387]! } + public var Tour_Text2: String { return self._s[1388]! } + public var Call_StatusNoAnswer: String { return self._s[1390]! } public func Passport_Phone_UseTelegramNumber(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1391]!, self._r[1391]!, [_0]) + } + public var Channel_AdminLogFilter_EventsLeavingSubscribers: String { return self._s[1392]! } + public var Conversation_MessageDialogDelete: String { return self._s[1395]! } + public var Appearance_PreviewOutgoingText: String { return self._s[1396]! } + public var Login_CheckOtherSessionMessages: String { return self._s[1397]! } + public var Username_Placeholder: String { return self._s[1398]! } + public func Notification_PinnedDeletedMessage(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1399]!, self._r[1399]!, [_0]) } - public var Channel_AdminLogFilter_EventsLeavingSubscribers: String { return self._s[1400]! } - public var Conversation_MessageDialogDelete: String { return self._s[1403]! } - public var Appearance_PreviewOutgoingText: String { return self._s[1404]! } - public var Login_CheckOtherSessionMessages: String { return self._s[1405]! } - public var Username_Placeholder: String { return self._s[1406]! } - public func Notification_PinnedDeletedMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1407]!, self._r[1407]!, [_0]) - } public func Time_MonthOfYear_m11(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1408]!, self._r[1408]!, [_0]) + return formatWithArgumentRanges(self._s[1400]!, self._r[1400]!, [_0]) } - public var TwoStepAuth_ReEnterPasswordTitle: String { return self._s[1409]! } - public var UserInfo_BotHelp: String { return self._s[1410]! } - public var TwoStepAuth_PasswordSet: String { return self._s[1411]! } + public var TwoStepAuth_ReEnterPasswordTitle: String { return self._s[1401]! } + public var UserInfo_BotHelp: String { return self._s[1402]! } + public var TwoStepAuth_PasswordSet: String { return self._s[1403]! } public func CHANNEL_MESSAGE_VIDEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1412]!, self._r[1412]!, [_1]) + return formatWithArgumentRanges(self._s[1404]!, self._r[1404]!, [_1]) } - public var EnterPasscode_TouchId: String { return self._s[1413]! } - public var AuthSessions_LoggedInWithTelegram: String { return self._s[1414]! } - public var Checkout_ErrorInvoiceAlreadyPaid: String { return self._s[1417]! } - public var ChatAdmins_Title: String { return self._s[1418]! } - public var ChannelMembers_WhoCanAddMembers: String { return self._s[1419]! } - public var Passport_Language_ar: String { return self._s[1420]! } - public var PasscodeSettings_Help: String { return self._s[1421]! } - public var Conversation_EditingMessagePanelTitle: String { return self._s[1422]! } - public var Settings_AboutEmpty: String { return self._s[1423]! } + public var EnterPasscode_TouchId: String { return self._s[1405]! } + public var AuthSessions_LoggedInWithTelegram: String { return self._s[1406]! } + public var Checkout_ErrorInvoiceAlreadyPaid: String { return self._s[1409]! } + public var ChatAdmins_Title: String { return self._s[1410]! } + public var ChannelMembers_WhoCanAddMembers: String { return self._s[1411]! } + public var Passport_Language_ar: String { return self._s[1412]! } + public var PasscodeSettings_Help: String { return self._s[1413]! } + public var Conversation_EditingMessagePanelTitle: String { return self._s[1414]! } + public var Settings_AboutEmpty: String { return self._s[1415]! } public func NetworkUsageSettings_CellularUsageSince(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1424]!, self._r[1424]!, [_0]) + return formatWithArgumentRanges(self._s[1416]!, self._r[1416]!, [_0]) } - public var GroupInfo_ConvertToSupergroup: String { return self._s[1425]! } + public var GroupInfo_ConvertToSupergroup: String { return self._s[1417]! } public func Notification_PinnedContactMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1426]!, self._r[1426]!, [_0]) + return formatWithArgumentRanges(self._s[1418]!, self._r[1418]!, [_0]) } - public var CallSettings_UseLessDataLongDescription: String { return self._s[1427]! } - public var FastTwoStepSetup_PasswordPlaceholder: String { return self._s[1428]! } - public var Conversation_SecretChatContextBotAlert: String { return self._s[1429]! } - public var Channel_Moderator_AccessLevelRevoke: String { return self._s[1430]! } - public var CheckoutInfo_ReceiverInfoTitle: String { return self._s[1431]! } - public var Channel_AdminLogFilter_EventsRestrictions: String { return self._s[1432]! } - public var GroupInfo_InviteLink_RevokeLink: String { return self._s[1434]! } - public var Checkout_PaymentMethod_Title: String { return self._s[1435]! } - public var Conversation_Unmute: String { return self._s[1436]! } - public var AutoDownloadSettings_DocumentsTitle: String { return self._s[1437]! } - public var Passport_FieldOneOf_FinalDelimeter: String { return self._s[1439]! } - public var Notifications_MessageNotifications: String { return self._s[1440]! } - public var Passport_ForgottenPassword: String { return self._s[1442]! } - public var ChannelMembers_WhoCanAddMembersAdminsHelp: String { return self._s[1443]! } - public var DialogList_DeleteBotConversationConfirmation: String { return self._s[1444]! } - public var Passport_Identity_TranslationHelp: String { return self._s[1445]! } + public var CallSettings_UseLessDataLongDescription: String { return self._s[1419]! } + public var FastTwoStepSetup_PasswordPlaceholder: String { return self._s[1420]! } + public var Conversation_SecretChatContextBotAlert: String { return self._s[1421]! } + public var Channel_Moderator_AccessLevelRevoke: String { return self._s[1422]! } + public var CheckoutInfo_ReceiverInfoTitle: String { return self._s[1423]! } + public var Channel_AdminLogFilter_EventsRestrictions: String { return self._s[1424]! } + public var GroupInfo_InviteLink_RevokeLink: String { return self._s[1426]! } + public var Checkout_PaymentMethod_Title: String { return self._s[1427]! } + public var Conversation_Unmute: String { return self._s[1428]! } + public var AutoDownloadSettings_DocumentsTitle: String { return self._s[1429]! } + public var Passport_FieldOneOf_FinalDelimeter: String { return self._s[1431]! } + public var Notifications_MessageNotifications: String { return self._s[1432]! } + public var Passport_ForgottenPassword: String { return self._s[1434]! } + public var ChannelMembers_WhoCanAddMembersAdminsHelp: String { return self._s[1435]! } + public var DialogList_DeleteBotConversationConfirmation: String { return self._s[1436]! } + public var Passport_Identity_TranslationHelp: String { return self._s[1437]! } public func Update_AppVersion(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1446]!, self._r[1446]!, [_0]) + return formatWithArgumentRanges(self._s[1438]!, self._r[1438]!, [_0]) } public func DialogList_MultipleTyping(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1447]!, self._r[1447]!, [_0, _1]) + return formatWithArgumentRanges(self._s[1439]!, self._r[1439]!, [_0, _1]) } - public var Passport_Identity_OneOfTypeIdentityCard: String { return self._s[1448]! } - public var Conversation_ClousStorageInfo_Description2: String { return self._s[1449]! } + public var Passport_Identity_OneOfTypeIdentityCard: String { return self._s[1440]! } + public var Conversation_ClousStorageInfo_Description2: String { return self._s[1441]! } public func Time_MonthOfYear_m5(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1450]!, self._r[1450]!, [_0]) + return formatWithArgumentRanges(self._s[1442]!, self._r[1442]!, [_0]) } - public var Map_Hybrid: String { return self._s[1451]! } - public var Channel_Setup_Title: String { return self._s[1452]! } - public var MediaPicker_TimerTooltip: String { return self._s[1453]! } - public var Activity_UploadingVideo: String { return self._s[1454]! } - public var Channel_Info_Management: String { return self._s[1455]! } + public var Map_Hybrid: String { return self._s[1443]! } + public var Channel_Setup_Title: String { return self._s[1444]! } + public var MediaPicker_TimerTooltip: String { return self._s[1445]! } + public var Activity_UploadingVideo: String { return self._s[1446]! } + public var Channel_Info_Management: String { return self._s[1447]! } public func Login_TermsOfService_ProceedBot(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1456]!, self._r[1456]!, [_0]) + return formatWithArgumentRanges(self._s[1448]!, self._r[1448]!, [_0]) } - public var TwoStepAuth_ConfirmEmailCodePlaceholder: String { return self._s[1457]! } + public var TwoStepAuth_ConfirmEmailCodePlaceholder: String { return self._s[1449]! } public func Notification_MessageLifetimeChangedOutgoing(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1458]!, self._r[1458]!, [_1]) + return formatWithArgumentRanges(self._s[1450]!, self._r[1450]!, [_1]) } - public var PhotoEditor_QualityVeryLow: String { return self._s[1459]! } - public var Stickers_AddToFavorites: String { return self._s[1460]! } - public var Month_ShortFebruary: String { return self._s[1461]! } - public var Notifications_AddExceptionTitle: String { return self._s[1462]! } - public var Conversation_ForwardTitle: String { return self._s[1463]! } - public var Settings_FAQ_URL: String { return self._s[1464]! } - public var Activity_RecordingVideoMessage: String { return self._s[1465]! } - public var SharedMedia_EmptyFilesText: String { return self._s[1466]! } + public var PhotoEditor_QualityVeryLow: String { return self._s[1451]! } + public var Stickers_AddToFavorites: String { return self._s[1452]! } + public var Month_ShortFebruary: String { return self._s[1453]! } + public var Notifications_AddExceptionTitle: String { return self._s[1454]! } + public var Conversation_ForwardTitle: String { return self._s[1455]! } + public var Settings_FAQ_URL: String { return self._s[1456]! } + public var Activity_RecordingVideoMessage: String { return self._s[1457]! } + public var SharedMedia_EmptyFilesText: String { return self._s[1458]! } public func Contacts_AccessDeniedHelpLandscape(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1467]!, self._r[1467]!, [_0]) + return formatWithArgumentRanges(self._s[1459]!, self._r[1459]!, [_0]) } - public var PasscodeSettings_UnlockWithTouchId: String { return self._s[1468]! } - public var Contacts_AccessDeniedHelpON: String { return self._s[1469]! } - public var Passport_Identity_AddInternalPassport: String { return self._s[1470]! } - public var NetworkUsageSettings_ResetStats: String { return self._s[1471]! } - public var Share_AuthDescription: String { return self._s[1472]! } + public var PasscodeSettings_UnlockWithTouchId: String { return self._s[1460]! } + public var Contacts_AccessDeniedHelpON: String { return self._s[1461]! } + public var Passport_Identity_AddInternalPassport: String { return self._s[1462]! } + public var NetworkUsageSettings_ResetStats: String { return self._s[1463]! } + public var Share_AuthDescription: String { return self._s[1464]! } public func CHAT_MESSAGE_PHOTOS(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1473]!, self._r[1473]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1465]!, self._r[1465]!, [_1, _2, _3]) } public func PrivacySettings_LastSeenContactsMinusPlus(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1474]!, self._r[1474]!, [_0, _1]) + return formatWithArgumentRanges(self._s[1466]!, self._r[1466]!, [_0, _1]) } - public var Channel_AdminLog_EmptyMessageText: String { return self._s[1475]! } + public var Channel_AdminLog_EmptyMessageText: String { return self._s[1467]! } public func Notification_ChannelInviter(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1476]!, self._r[1476]!, [_0]) + return formatWithArgumentRanges(self._s[1468]!, self._r[1468]!, [_0]) } - public var SocksProxySetup_TypeSocks: String { return self._s[1477]! } - public var Profile_MessageLifetimeForever: String { return self._s[1478]! } - public var MediaPicker_UngroupDescription: String { return self._s[1479]! } + public var SocksProxySetup_TypeSocks: String { return self._s[1469]! } + public var Profile_MessageLifetimeForever: String { return self._s[1470]! } + public var MediaPicker_UngroupDescription: String { return self._s[1471]! } public func Checkout_SavePasswordTimeoutAndFaceId(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1480]!, self._r[1480]!, [_0]) + return formatWithArgumentRanges(self._s[1472]!, self._r[1472]!, [_0]) } - public var SocksProxySetup_Username: String { return self._s[1481]! } - public var Conversation_Edit: String { return self._s[1482]! } - public var TwoStepAuth_ResetAccountHelp: String { return self._s[1483]! } - public var Month_GenDecember: String { return self._s[1484]! } + public var SocksProxySetup_Username: String { return self._s[1473]! } + public var Conversation_Edit: String { return self._s[1474]! } + public var TwoStepAuth_ResetAccountHelp: String { return self._s[1475]! } + public var Month_GenDecember: String { return self._s[1476]! } public func Watch_LastSeen_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1486]!, self._r[1486]!, [_0]) + return formatWithArgumentRanges(self._s[1478]!, self._r[1478]!, [_0]) } - public var Channel_ErrorAddBlocked: String { return self._s[1487]! } - public var Conversation_Unpin: String { return self._s[1488]! } - public var Call_RecordingDisabledMessage: String { return self._s[1490]! } - public var Passport_Address_TypeUtilityBill: String { return self._s[1491]! } - public var Conversation_UnblockUser: String { return self._s[1492]! } - public var Conversation_Unblock: String { return self._s[1493]! } + public var Channel_ErrorAddBlocked: String { return self._s[1479]! } + public var Conversation_Unpin: String { return self._s[1480]! } + public var Call_RecordingDisabledMessage: String { return self._s[1482]! } + public var Passport_Address_TypeUtilityBill: String { return self._s[1483]! } + public var Conversation_UnblockUser: String { return self._s[1484]! } + public var Conversation_Unblock: String { return self._s[1485]! } public func CHANNEL_MESSAGE_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1494]!, self._r[1494]!, [_1]) + return formatWithArgumentRanges(self._s[1486]!, self._r[1486]!, [_1]) } - public var Channel_AdminLogFilter_EventsEditedMessages: String { return self._s[1497]! } - public var AutoNightTheme_ScheduleSection: String { return self._s[1498]! } - public var Appearance_ThemeNightBlue: String { return self._s[1499]! } + public var Channel_AdminLogFilter_EventsEditedMessages: String { return self._s[1489]! } + public var AutoNightTheme_ScheduleSection: String { return self._s[1490]! } + public var Appearance_ThemeNightBlue: String { return self._s[1491]! } public func Passport_Scans_ScanIndex(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1500]!, self._r[1500]!, [_0]) + return formatWithArgumentRanges(self._s[1492]!, self._r[1492]!, [_0]) } - public var Channel_Username_InvalidTooShort: String { return self._s[1501]! } - public var Conversation_ViewGroup: String { return self._s[1502]! } - public var Watch_LastSeen_WithinAWeek: String { return self._s[1503]! } - public var BlockedUsers_SelectUserTitle: String { return self._s[1504]! } - public var Profile_MessageLifetime1w: String { return self._s[1505]! } - public var Passport_Address_TypeRentalAgreementUploadScan: String { return self._s[1508]! } - public var DialogList_TabTitle: String { return self._s[1509]! } - public var UserInfo_GenericPhoneLabel: String { return self._s[1510]! } + public var Channel_Username_InvalidTooShort: String { return self._s[1493]! } + public var Conversation_ViewGroup: String { return self._s[1494]! } + public var Watch_LastSeen_WithinAWeek: String { return self._s[1495]! } + public var BlockedUsers_SelectUserTitle: String { return self._s[1496]! } + public var Profile_MessageLifetime1w: String { return self._s[1497]! } + public var Passport_Address_TypeRentalAgreementUploadScan: String { return self._s[1500]! } + public var DialogList_TabTitle: String { return self._s[1501]! } + public var UserInfo_GenericPhoneLabel: String { return self._s[1502]! } public func Channel_AdminLog_MessagePromotedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1511]!, self._r[1511]!, [_1]) + return formatWithArgumentRanges(self._s[1503]!, self._r[1503]!, [_1]) } - public var Group_Members_AddMemberBotErrorNotAllowed: String { return self._s[1512]! } + public var Group_Members_AddMemberBotErrorNotAllowed: String { return self._s[1504]! } public func Username_LinkHint(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1513]!, self._r[1513]!, [_0]) + return formatWithArgumentRanges(self._s[1505]!, self._r[1505]!, [_0]) } - public var Map_StopLiveLocation: String { return self._s[1514]! } - public var Message_LiveLocation: String { return self._s[1515]! } - public var NetworkUsageSettings_Title: String { return self._s[1517]! } - public var CheckoutInfo_ShippingInfoPostcodePlaceholder: String { return self._s[1518]! } - public var InfoPlist_NSPhotoLibraryUsageDescription: String { return self._s[1519]! } - public var Wallpaper_Wallpaper: String { return self._s[1520]! } - public var GroupInfo_InviteLink_RevokeAlert_Revoke: String { return self._s[1521]! } - public var SharedMedia_TitleLink: String { return self._s[1523]! } + public var Map_StopLiveLocation: String { return self._s[1506]! } + public var Message_LiveLocation: String { return self._s[1507]! } + public var NetworkUsageSettings_Title: String { return self._s[1509]! } + public var CheckoutInfo_ShippingInfoPostcodePlaceholder: String { return self._s[1510]! } + public var InfoPlist_NSPhotoLibraryUsageDescription: String { return self._s[1511]! } + public var Wallpaper_Wallpaper: String { return self._s[1512]! } + public var GroupInfo_InviteLink_RevokeAlert_Revoke: String { return self._s[1513]! } + public var SharedMedia_TitleLink: String { return self._s[1515]! } public func Channel_AdminLog_MessageRestrictedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1525]!, self._r[1525]!, [_1]) + return formatWithArgumentRanges(self._s[1517]!, self._r[1517]!, [_1]) } public func Channel_AdminLog_MessageGroupPreHistoryHidden(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1526]!, self._r[1526]!, [_0]) + return formatWithArgumentRanges(self._s[1518]!, self._r[1518]!, [_0]) } - public var Channel_JoinChannel: String { return self._s[1527]! } - public var StickerPack_Add: String { return self._s[1528]! } - public var Group_ErrorNotMutualContact: String { return self._s[1530]! } - public var AccessDenied_LocationDisabled: String { return self._s[1533]! } - public var Login_UnknownError: String { return self._s[1534]! } - public var Presence_online: String { return self._s[1535]! } - public var DialogList_Title: String { return self._s[1537]! } - public var Stickers_Install: String { return self._s[1540]! } - public var SearchImages_NoImagesFound: String { return self._s[1543]! } + public var Channel_JoinChannel: String { return self._s[1519]! } + public var StickerPack_Add: String { return self._s[1520]! } + public var Group_ErrorNotMutualContact: String { return self._s[1522]! } + public var AccessDenied_LocationDisabled: String { return self._s[1525]! } + public var Login_UnknownError: String { return self._s[1526]! } + public var Presence_online: String { return self._s[1527]! } + public var DialogList_Title: String { return self._s[1529]! } + public var Stickers_Install: String { return self._s[1532]! } + public var SearchImages_NoImagesFound: String { return self._s[1535]! } public func Watch_Time_ShortTodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1537]!, self._r[1537]!, [_0]) + } + public var Channel_AdminLogFilter_EventsNewSubscribers: String { return self._s[1538]! } + public var Passport_Identity_ExpiryDate: String { return self._s[1539]! } + public var UserInfo_GroupsInCommon: String { return self._s[1540]! } + public var Message_PinnedContactMessage: String { return self._s[1541]! } + public var AccessDenied_CameraDisabled: String { return self._s[1542]! } + public func Time_PreciseDate_m3(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1543]!, self._r[1543]!, [_1, _2, _3]) + } + public var Passport_Email_EnterOtherEmail: String { return self._s[1544]! } + public func LiveLocationUpdated_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1545]!, self._r[1545]!, [_0]) } - public var Channel_AdminLogFilter_EventsNewSubscribers: String { return self._s[1546]! } - public var Passport_Identity_ExpiryDate: String { return self._s[1547]! } - public var UserInfo_GroupsInCommon: String { return self._s[1548]! } - public var Message_PinnedContactMessage: String { return self._s[1549]! } - public var AccessDenied_CameraDisabled: String { return self._s[1550]! } - public func Time_PreciseDate_m3(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1551]!, self._r[1551]!, [_1, _2, _3]) - } - public var Passport_Email_EnterOtherEmail: String { return self._s[1552]! } - public func LiveLocationUpdated_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1553]!, self._r[1553]!, [_0]) - } - public var NotificationsSound_Note: String { return self._s[1555]! } - public var Passport_Identity_MiddleNamePlaceholder: String { return self._s[1557]! } - public var PrivacyPolicy_Title: String { return self._s[1560]! } - public var Month_GenMarch: String { return self._s[1561]! } - public var Watch_UserInfo_Unmute: String { return self._s[1562]! } - public var CheckoutInfo_ErrorPostcodeInvalid: String { return self._s[1563]! } - public var Common_Delete: String { return self._s[1564]! } - public var Username_Title: String { return self._s[1565]! } - public var Login_PhoneFloodError: String { return self._s[1566]! } - public var Channel_AdminLog_InfoPanelTitle: String { return self._s[1567]! } + public var NotificationsSound_Note: String { return self._s[1547]! } + public var Passport_Identity_MiddleNamePlaceholder: String { return self._s[1549]! } + public var PrivacyPolicy_Title: String { return self._s[1552]! } + public var Month_GenMarch: String { return self._s[1553]! } + public var Watch_UserInfo_Unmute: String { return self._s[1554]! } + public var CheckoutInfo_ErrorPostcodeInvalid: String { return self._s[1555]! } + public var Common_Delete: String { return self._s[1556]! } + public var Username_Title: String { return self._s[1557]! } + public var Login_PhoneFloodError: String { return self._s[1558]! } + public var Channel_AdminLog_InfoPanelTitle: String { return self._s[1559]! } public func CHANNEL_MESSAGE_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1568]!, self._r[1568]!, [_1]) + return formatWithArgumentRanges(self._s[1560]!, self._r[1560]!, [_1]) } public func Channel_AdminLog_MessageToggleInvitesOff(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1569]!, self._r[1569]!, [_0]) + return formatWithArgumentRanges(self._s[1561]!, self._r[1561]!, [_0]) } - public var Group_ErrorAddTooMuchBots: String { return self._s[1570]! } + public var Group_ErrorAddTooMuchBots: String { return self._s[1562]! } public func Notification_CallFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1571]!, self._r[1571]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1563]!, self._r[1563]!, [_1, _2]) } public func CHAT_MESSAGE_PHOTO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1572]!, self._r[1572]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1564]!, self._r[1564]!, [_1, _2]) } public func UserInfo_UnblockConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1574]!, self._r[1574]!, [_0]) + return formatWithArgumentRanges(self._s[1566]!, self._r[1566]!, [_0]) } - public var Appearance_PickAccentColor: String { return self._s[1575]! } - public var Passport_Identity_EditDriversLicense: String { return self._s[1576]! } - public var Passport_Identity_AddPassport: String { return self._s[1577]! } - public var UserInfo_ShareBot: String { return self._s[1578]! } - public var Settings_ProxyConnected: String { return self._s[1579]! } - public var TwoStepAuth_RecoveryEmailAddDescription: String { return self._s[1580]! } - public var ChatSettings_AutoDownloadVoiceMessages: String { return self._s[1581]! } - public var TwoStepAuth_EmailSkip: String { return self._s[1583]! } - public var Conversation_ViewContactDetails: String { return self._s[1584]! } - public var Notifications_Badge_CountUnreadMessages_InfoOff: String { return self._s[1585]! } - public var Conversation_JumpToDate: String { return self._s[1586]! } - public var AutoDownloadSettings_VideoMessagesTitle: String { return self._s[1587]! } - public var Passport_Address_OneOfTypeUtilityBill: String { return self._s[1589]! } - public var CheckoutInfo_ReceiverInfoEmailPlaceholder: String { return self._s[1590]! } - public var Message_Photo: String { return self._s[1592]! } - public var Conversation_ReportSpam: String { return self._s[1593]! } - public var Camera_FlashAuto: String { return self._s[1594]! } - public var Passport_Identity_TypePassportUploadScan: String { return self._s[1596]! } - public var Call_ConnectionErrorMessage: String { return self._s[1597]! } - public var Stickers_FrequentlyUsed: String { return self._s[1598]! } - public var LastSeen_ALongTimeAgo: String { return self._s[1600]! } - public var Passport_Identity_ReverseSide: String { return self._s[1601]! } - public var DialogList_SearchSectionGlobal: String { return self._s[1602]! } - public var ChangePhoneNumberNumber_NumberPlaceholder: String { return self._s[1603]! } - public var GroupInfo_AddUserLeftError: String { return self._s[1604]! } - public var Appearance_ThemeDay: String { return self._s[1605]! } - public var GroupInfo_GroupType: String { return self._s[1606]! } - public var Watch_Suggestion_OnMyWay: String { return self._s[1607]! } - public var Checkout_NewCard_PaymentCard: String { return self._s[1608]! } + public var Appearance_PickAccentColor: String { return self._s[1567]! } + public var Passport_Identity_EditDriversLicense: String { return self._s[1568]! } + public var Passport_Identity_AddPassport: String { return self._s[1569]! } + public var UserInfo_ShareBot: String { return self._s[1570]! } + public var Settings_ProxyConnected: String { return self._s[1571]! } + public var TwoStepAuth_RecoveryEmailAddDescription: String { return self._s[1572]! } + public var ChatSettings_AutoDownloadVoiceMessages: String { return self._s[1573]! } + public var TwoStepAuth_EmailSkip: String { return self._s[1575]! } + public var Conversation_ViewContactDetails: String { return self._s[1576]! } + public var Notifications_Badge_CountUnreadMessages_InfoOff: String { return self._s[1577]! } + public var Conversation_JumpToDate: String { return self._s[1578]! } + public var AutoDownloadSettings_VideoMessagesTitle: String { return self._s[1579]! } + public var Passport_Address_OneOfTypeUtilityBill: String { return self._s[1581]! } + public var CheckoutInfo_ReceiverInfoEmailPlaceholder: String { return self._s[1582]! } + public var Message_Photo: String { return self._s[1584]! } + public var Conversation_ReportSpam: String { return self._s[1585]! } + public var Camera_FlashAuto: String { return self._s[1586]! } + public var Passport_Identity_TypePassportUploadScan: String { return self._s[1588]! } + public var Call_ConnectionErrorMessage: String { return self._s[1589]! } + public var Stickers_FrequentlyUsed: String { return self._s[1590]! } + public var LastSeen_ALongTimeAgo: String { return self._s[1592]! } + public var Passport_Identity_ReverseSide: String { return self._s[1593]! } + public var DialogList_SearchSectionGlobal: String { return self._s[1594]! } + public var ChangePhoneNumberNumber_NumberPlaceholder: String { return self._s[1595]! } + public var GroupInfo_AddUserLeftError: String { return self._s[1596]! } + public var Appearance_ThemeDay: String { return self._s[1597]! } + public var GroupInfo_GroupType: String { return self._s[1598]! } + public var Watch_Suggestion_OnMyWay: String { return self._s[1599]! } + public var Checkout_NewCard_PaymentCard: String { return self._s[1600]! } public func DialogList_SearchSubtitleFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1609]!, self._r[1609]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1601]!, self._r[1601]!, [_1, _2]) } - public var PhotoEditor_CropAspectRatioOriginal: String { return self._s[1610]! } + public var PhotoEditor_CropAspectRatioOriginal: String { return self._s[1602]! } public func Conversation_RestrictedInlineTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1611]!, self._r[1611]!, [_0]) + return formatWithArgumentRanges(self._s[1603]!, self._r[1603]!, [_0]) } - public var UserInfo_NotificationsDisabled: String { return self._s[1612]! } + public var UserInfo_NotificationsDisabled: String { return self._s[1604]! } public func CONTACT_JOINED(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1613]!, self._r[1613]!, [_1]) + return formatWithArgumentRanges(self._s[1605]!, self._r[1605]!, [_1]) } - public var NotificationsSound_Bamboo: String { return self._s[1615]! } - public var PrivacyLastSeenSettings_AlwaysShareWith_Title: String { return self._s[1616]! } + public var NotificationsSound_Bamboo: String { return self._s[1607]! } + public var PrivacyLastSeenSettings_AlwaysShareWith_Title: String { return self._s[1608]! } public func Channel_AdminLog_MessageGroupPreHistoryVisible(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1609]!, self._r[1609]!, [_0]) + } + public var BlockedUsers_LeavePrefix: String { return self._s[1611]! } + public var NetworkUsageSettings_ResetStatsConfirmation: String { return self._s[1612]! } + public var Group_Setup_HistoryHeader: String { return self._s[1613]! } + public var Channel_EditAdmin_PermissionPostMessages: String { return self._s[1616]! } + public func Contacts_AddPhoneNumber(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1617]!, self._r[1617]!, [_0]) } - public var BlockedUsers_LeavePrefix: String { return self._s[1619]! } - public var NetworkUsageSettings_ResetStatsConfirmation: String { return self._s[1620]! } - public var Group_Setup_HistoryHeader: String { return self._s[1621]! } - public var Channel_EditAdmin_PermissionPostMessages: String { return self._s[1624]! } - public func Contacts_AddPhoneNumber(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1625]!, self._r[1625]!, [_0]) - } public func MESSAGE_SCREENSHOT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1626]!, self._r[1626]!, [_1]) + return formatWithArgumentRanges(self._s[1618]!, self._r[1618]!, [_1]) } - public var DialogList_EncryptionProcessing: String { return self._s[1627]! } - public var GroupInfo_GroupHistory: String { return self._s[1629]! } - public var Conversation_ApplyLocalization: String { return self._s[1630]! } - public var FastTwoStepSetup_Title: String { return self._s[1631]! } - public var SocksProxySetup_ProxyStatusUnavailable: String { return self._s[1632]! } - public var Passport_Address_EditRentalAgreement: String { return self._s[1633]! } - public var Conversation_DeleteManyMessages: String { return self._s[1635]! } - public var CancelResetAccount_Title: String { return self._s[1636]! } - public var Permissions_ContactsAllow: String { return self._s[1637]! } - public var Notification_CallOutgoingShort: String { return self._s[1638]! } - public var SharedMedia_TitleAll: String { return self._s[1640]! } - public var Conversation_SlideToCancel: String { return self._s[1641]! } - public var AuthSessions_TerminateSession: String { return self._s[1642]! } - public var Channel_AdminLogFilter_EventsDeletedMessages: String { return self._s[1643]! } - public var PrivacyLastSeenSettings_AlwaysShareWith_Placeholder: String { return self._s[1644]! } - public var Channel_Members_Title: String { return self._s[1645]! } - public var Channel_AdminLog_CanDeleteMessages: String { return self._s[1646]! } - public var Privacy_DeleteDrafts: String { return self._s[1647]! } - public var Group_Setup_TypePrivateHelp: String { return self._s[1648]! } + public var DialogList_EncryptionProcessing: String { return self._s[1619]! } + public var GroupInfo_GroupHistory: String { return self._s[1621]! } + public var Conversation_ApplyLocalization: String { return self._s[1622]! } + public var FastTwoStepSetup_Title: String { return self._s[1623]! } + public var SocksProxySetup_ProxyStatusUnavailable: String { return self._s[1624]! } + public var Passport_Address_EditRentalAgreement: String { return self._s[1625]! } + public var Conversation_DeleteManyMessages: String { return self._s[1627]! } + public var CancelResetAccount_Title: String { return self._s[1628]! } + public var ReportPeer_ReasonChildAbuse: String { return self._s[1629]! } + public var Notification_CallOutgoingShort: String { return self._s[1630]! } + public var SharedMedia_TitleAll: String { return self._s[1632]! } + public var Conversation_SlideToCancel: String { return self._s[1633]! } + public var AuthSessions_TerminateSession: String { return self._s[1634]! } + public var Channel_AdminLogFilter_EventsDeletedMessages: String { return self._s[1635]! } + public var PrivacyLastSeenSettings_AlwaysShareWith_Placeholder: String { return self._s[1636]! } + public var Channel_Members_Title: String { return self._s[1637]! } + public var Channel_AdminLog_CanDeleteMessages: String { return self._s[1638]! } + public var Privacy_DeleteDrafts: String { return self._s[1639]! } + public var Group_Setup_TypePrivateHelp: String { return self._s[1640]! } public func Notification_PinnedVideoMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1649]!, self._r[1649]!, [_0]) + return formatWithArgumentRanges(self._s[1641]!, self._r[1641]!, [_0]) } - public var Conversation_ContextMenuStickerPackAdd: String { return self._s[1650]! } - public var Channel_AdminLogFilter_EventsNewMembers: String { return self._s[1651]! } - public var Channel_AdminLogFilter_EventsPinned: String { return self._s[1653]! } + public var Conversation_ContextMenuStickerPackAdd: String { return self._s[1642]! } + public var Channel_AdminLogFilter_EventsNewMembers: String { return self._s[1643]! } + public var Channel_AdminLogFilter_EventsPinned: String { return self._s[1645]! } public func Conversation_Moderate_DeleteAllMessages(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1655]!, self._r[1655]!, [_0]) + return formatWithArgumentRanges(self._s[1647]!, self._r[1647]!, [_0]) } - public var SharedMedia_CategoryOther: String { return self._s[1656]! } - public var Passport_Address_Address: String { return self._s[1657]! } - public var DialogList_SavedMessagesTooltip: String { return self._s[1658]! } - public var Preview_DeletePhoto: String { return self._s[1661]! } - public var GroupInfo_ChannelListNamePlaceholder: String { return self._s[1662]! } - public var PasscodeSettings_TurnPasscodeOn: String { return self._s[1663]! } - public var AuthSessions_LogOutApplicationsHelp: String { return self._s[1664]! } - public var Notification_Exceptions_AddException: String { return self._s[1666]! } - public var Passport_FieldOneOf_Delimeter: String { return self._s[1667]! } + public var SharedMedia_CategoryOther: String { return self._s[1648]! } + public var Passport_Address_Address: String { return self._s[1649]! } + public var DialogList_SavedMessagesTooltip: String { return self._s[1650]! } + public var Preview_DeletePhoto: String { return self._s[1653]! } + public var GroupInfo_ChannelListNamePlaceholder: String { return self._s[1654]! } + public var PasscodeSettings_TurnPasscodeOn: String { return self._s[1655]! } + public var AuthSessions_LogOutApplicationsHelp: String { return self._s[1656]! } + public var Notification_Exceptions_AddException: String { return self._s[1658]! } + public var Passport_FieldOneOf_Delimeter: String { return self._s[1659]! } public func Channel_AdminLog_MessageChangedGroupStickerPack(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1668]!, self._r[1668]!, [_0]) + return formatWithArgumentRanges(self._s[1660]!, self._r[1660]!, [_0]) } - public var DialogList_Unpin: String { return self._s[1669]! } - public var GroupInfo_SetGroupPhoto: String { return self._s[1671]! } - public var StickerPacksSettings_ArchivedPacks_Info: String { return self._s[1672]! } - public var ConvertToSupergroup_Title: String { return self._s[1674]! } + public var DialogList_Unpin: String { return self._s[1661]! } + public var GroupInfo_SetGroupPhoto: String { return self._s[1663]! } + public var StickerPacksSettings_ArchivedPacks_Info: String { return self._s[1664]! } + public var ConvertToSupergroup_Title: String { return self._s[1666]! } public func CHAT_MESSAGE_NOTEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1675]!, self._r[1675]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1667]!, self._r[1667]!, [_1, _2]) } - public var Notification_CallCanceledShort: String { return self._s[1676]! } - public var Channel_Setup_TypeHeader: String { return self._s[1677]! } + public var Notification_CallCanceledShort: String { return self._s[1668]! } + public var Channel_Setup_TypeHeader: String { return self._s[1669]! } public func Notification_NewAuthDetected(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String, _ _6: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1678]!, self._r[1678]!, [_1, _2, _3, _4, _5, _6]) + return formatWithArgumentRanges(self._s[1670]!, self._r[1670]!, [_1, _2, _3, _4, _5, _6]) } public func Channel_AdminLog_MessageRemovedGroupStickerPack(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1671]!, self._r[1671]!, [_0]) + } + public var PrivacyPolicy_DeclineTitle: String { return self._s[1674]! } + public var AccessDenied_VideoMessageCamera: String { return self._s[1675]! } + public var Privacy_ContactsSyncHelp: String { return self._s[1676]! } + public var Conversation_Search: String { return self._s[1678]! } + public func Channel_Management_PromotedBy(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1679]!, self._r[1679]!, [_0]) } - public var PrivacyPolicy_DeclineTitle: String { return self._s[1682]! } - public var AccessDenied_VideoMessageCamera: String { return self._s[1683]! } - public var Privacy_ContactsSyncHelp: String { return self._s[1684]! } - public var Conversation_Search: String { return self._s[1686]! } - public func Channel_Management_PromotedBy(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1687]!, self._r[1687]!, [_0]) - } public func PrivacySettings_LastSeenNobodyPlus(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1688]!, self._r[1688]!, [_0]) + return formatWithArgumentRanges(self._s[1680]!, self._r[1680]!, [_0]) } public func Time_MonthOfYear_m4(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1689]!, self._r[1689]!, [_0]) + return formatWithArgumentRanges(self._s[1681]!, self._r[1681]!, [_0]) } - public var SecretImage_Title: String { return self._s[1690]! } - public var Notifications_InAppNotificationsSounds: String { return self._s[1691]! } - public var Call_StatusRequesting: String { return self._s[1692]! } + public var SecretImage_Title: String { return self._s[1682]! } + public var Notifications_InAppNotificationsSounds: String { return self._s[1683]! } + public var Call_StatusRequesting: String { return self._s[1684]! } public func Channel_AdminLog_MessageRestrictedUntil(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1693]!, self._r[1693]!, [_0]) + return formatWithArgumentRanges(self._s[1685]!, self._r[1685]!, [_0]) } public func CHAT_MESSAGE_CONTACT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1694]!, self._r[1694]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1686]!, self._r[1686]!, [_1, _2]) } - public var SocksProxySetup_UseProxy: String { return self._s[1695]! } - public var Group_UpgradeNoticeText1: String { return self._s[1696]! } - public var ChatSettings_Other: String { return self._s[1697]! } + public var SocksProxySetup_UseProxy: String { return self._s[1687]! } + public var Group_UpgradeNoticeText1: String { return self._s[1688]! } + public var ChatSettings_Other: String { return self._s[1689]! } public func Channel_AdminLog_MessageChangedChannelAbout(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1698]!, self._r[1698]!, [_0]) + return formatWithArgumentRanges(self._s[1690]!, self._r[1690]!, [_0]) } - public var Channel_Stickers_CreateYourOwn: String { return self._s[1699]! } + public var Channel_Stickers_CreateYourOwn: String { return self._s[1691]! } public func Call_EmojiDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1701]!, self._r[1701]!, [_0]) + return formatWithArgumentRanges(self._s[1693]!, self._r[1693]!, [_0]) } - public var Settings_SaveIncomingPhotos: String { return self._s[1702]! } - public var TwoStepAuth_EnterEmailCode: String { return self._s[1703]! } + public var Settings_SaveIncomingPhotos: String { return self._s[1694]! } + public var TwoStepAuth_EnterEmailCode: String { return self._s[1695]! } public func Conversation_Bytes(_ _0: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1704]!, self._r[1704]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[1696]!, self._r[1696]!, ["\(_0)"]) } - public var GroupInfo_InviteLink_Help: String { return self._s[1705]! } - public var Calls_Missed: String { return self._s[1706]! } - public var Conversation_ContextMenuForward: String { return self._s[1709]! } - public var AutoDownloadSettings_ResetHelp: String { return self._s[1710]! } - public var Passport_Identity_NativeNameHelp: String { return self._s[1711]! } - public var Call_StatusRinging: String { return self._s[1712]! } - public var Passport_Language_pl: String { return self._s[1713]! } - public var Invitation_JoinGroup: String { return self._s[1714]! } - public var Notification_PinnedMessage: String { return self._s[1715]! } - public var AutoDownloadSettings_WiFi: String { return self._s[1717]! } - public var Conversation_ClearSelfHistory: String { return self._s[1718]! } - public var Message_Location: String { return self._s[1719]! } + public var GroupInfo_InviteLink_Help: String { return self._s[1697]! } + public var Calls_Missed: String { return self._s[1698]! } + public var Conversation_ContextMenuForward: String { return self._s[1701]! } + public var AutoDownloadSettings_ResetHelp: String { return self._s[1702]! } + public var Passport_Identity_NativeNameHelp: String { return self._s[1703]! } + public var Call_StatusRinging: String { return self._s[1704]! } + public var Passport_Language_pl: String { return self._s[1705]! } + public var Invitation_JoinGroup: String { return self._s[1706]! } + public var Notification_PinnedMessage: String { return self._s[1707]! } + public var AutoDownloadSettings_WiFi: String { return self._s[1709]! } + public var Conversation_ClearSelfHistory: String { return self._s[1710]! } + public var Message_Location: String { return self._s[1711]! } public func Notification_MessageLifetimeChanged(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1720]!, self._r[1720]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1712]!, self._r[1712]!, [_1, _2]) } - public var Message_Contact: String { return self._s[1721]! } - public var Passport_Language_lo: String { return self._s[1723]! } - public var UserInfo_BotPrivacy: String { return self._s[1724]! } - public var PasscodeSettings_AutoLock_IfAwayFor_1minute: String { return self._s[1725]! } - public var Common_More: String { return self._s[1728]! } - public var Preview_OpenInInstagram: String { return self._s[1729]! } - public var PhotoEditor_HighlightsTool: String { return self._s[1732]! } + public var Message_Contact: String { return self._s[1713]! } + public var Passport_Language_lo: String { return self._s[1715]! } + public var UserInfo_BotPrivacy: String { return self._s[1716]! } + public var PasscodeSettings_AutoLock_IfAwayFor_1minute: String { return self._s[1717]! } + public var Common_More: String { return self._s[1720]! } + public var Preview_OpenInInstagram: String { return self._s[1721]! } + public var PhotoEditor_HighlightsTool: String { return self._s[1724]! } public func Channel_Username_UsernameIsAvailable(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1733]!, self._r[1733]!, [_0]) + return formatWithArgumentRanges(self._s[1725]!, self._r[1725]!, [_0]) } public func PINNED_GAME(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1734]!, self._r[1734]!, [_1]) + return formatWithArgumentRanges(self._s[1726]!, self._r[1726]!, [_1]) } - public var Invite_LargeRecipientsCountWarning: String { return self._s[1735]! } - public var Passport_Language_hr: String { return self._s[1736]! } - public var GroupInfo_BroadcastListNamePlaceholder: String { return self._s[1737]! } - public var Activity_UploadingVideoMessage: String { return self._s[1738]! } - public var Conversation_ShareBotContactConfirmation: String { return self._s[1739]! } - public var Login_CodeSentSms: String { return self._s[1742]! } + public var Invite_LargeRecipientsCountWarning: String { return self._s[1727]! } + public var Passport_Language_hr: String { return self._s[1728]! } + public var GroupInfo_BroadcastListNamePlaceholder: String { return self._s[1729]! } + public var Activity_UploadingVideoMessage: String { return self._s[1730]! } + public var Conversation_ShareBotContactConfirmation: String { return self._s[1731]! } + public var Login_CodeSentSms: String { return self._s[1734]! } public func CHANNEL_MESSAGES(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1743]!, self._r[1743]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1735]!, self._r[1735]!, [_1, _2]) } - public var Conversation_ReportSpamConfirmation: String { return self._s[1744]! } - public var ChannelMembers_ChannelAdminsTitle: String { return self._s[1745]! } - public var SocksProxySetup_Credentials: String { return self._s[1746]! } - public var CallSettings_UseLessData: String { return self._s[1747]! } - public var MediaPicker_GroupDescription: String { return self._s[1748]! } - public var Conversation_SendMessageErrorGroupRestricted: String { return self._s[1749]! } + public var Conversation_ReportSpamConfirmation: String { return self._s[1736]! } + public var ChannelMembers_ChannelAdminsTitle: String { return self._s[1737]! } + public var SocksProxySetup_Credentials: String { return self._s[1738]! } + public var CallSettings_UseLessData: String { return self._s[1739]! } + public var MediaPicker_GroupDescription: String { return self._s[1740]! } + public var Conversation_SendMessageErrorGroupRestricted: String { return self._s[1741]! } public func TwoStepAuth_EnterPasswordHint(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1750]!, self._r[1750]!, [_0]) + return formatWithArgumentRanges(self._s[1742]!, self._r[1742]!, [_0]) } - public var CallSettings_TabIcon: String { return self._s[1751]! } - public var ConversationProfile_UnknownAddMemberError: String { return self._s[1753]! } + public var CallSettings_TabIcon: String { return self._s[1743]! } + public var ConversationProfile_UnknownAddMemberError: String { return self._s[1745]! } public func Conversation_FileHowToText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1756]!, self._r[1756]!, [_0]) + return formatWithArgumentRanges(self._s[1748]!, self._r[1748]!, [_0]) } - public var Channel_AdminLog_BanSendMedia: String { return self._s[1757]! } - public var Passport_Language_uz: String { return self._s[1758]! } - public var Watch_UserInfo_Unblock: String { return self._s[1759]! } - public var ChatSettings_AutoDownloadVideoMessages: String { return self._s[1761]! } - public var PrivacyPolicy_AgeVerificationTitle: String { return self._s[1762]! } - public var StickerPacksSettings_ArchivedMasks: String { return self._s[1764]! } - public var Message_Animation: String { return self._s[1766]! } - public var Checkout_PaymentMethod: String { return self._s[1767]! } - public var Channel_AdminLog_TitleSelectedEvents: String { return self._s[1768]! } - public var PrivacyPolicy_DeclineDeleteNow: String { return self._s[1769]! } - public var Privacy_Calls_NeverAllow_Title: String { return self._s[1770]! } - public var Cache_Music: String { return self._s[1771]! } - public var Settings_ProxyDisabled: String { return self._s[1775]! } - public var SocksProxySetup_Connecting: String { return self._s[1776]! } - public var Channel_Username_CreatePrivateLinkHelp: String { return self._s[1777]! } + public var Channel_AdminLog_BanSendMedia: String { return self._s[1749]! } + public var Passport_Language_uz: String { return self._s[1750]! } + public var Watch_UserInfo_Unblock: String { return self._s[1751]! } + public var ChatSettings_AutoDownloadVideoMessages: String { return self._s[1753]! } + public var PrivacyPolicy_AgeVerificationTitle: String { return self._s[1754]! } + public var StickerPacksSettings_ArchivedMasks: String { return self._s[1756]! } + public var Message_Animation: String { return self._s[1758]! } + public var Checkout_PaymentMethod: String { return self._s[1759]! } + public var Channel_AdminLog_TitleSelectedEvents: String { return self._s[1760]! } + public var PrivacyPolicy_DeclineDeleteNow: String { return self._s[1761]! } + public var Privacy_Calls_NeverAllow_Title: String { return self._s[1762]! } + public var Cache_Music: String { return self._s[1763]! } + public var Settings_ProxyDisabled: String { return self._s[1767]! } + public var SocksProxySetup_Connecting: String { return self._s[1768]! } + public var Channel_Username_CreatePrivateLinkHelp: String { return self._s[1769]! } public func Time_PreciseDate_m2(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1778]!, self._r[1778]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1770]!, self._r[1770]!, [_1, _2, _3]) } public func FileSize_B(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1780]!, self._r[1780]!, [_0]) + return formatWithArgumentRanges(self._s[1772]!, self._r[1772]!, [_0]) } public func Target_ShareGameConfirmationGroup(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1783]!, self._r[1783]!, [_0]) + return formatWithArgumentRanges(self._s[1775]!, self._r[1775]!, [_0]) } - public var PhotoEditor_SaturationTool: String { return self._s[1785]! } - public var Channel_BanUser_BlockFor: String { return self._s[1786]! } - public var Call_StatusConnecting: String { return self._s[1787]! } - public var AutoNightTheme_NotAvailable: String { return self._s[1788]! } - public var PrivateDataSettings_Title: String { return self._s[1789]! } - public var Bot_Start: String { return self._s[1791]! } + public var PhotoEditor_SaturationTool: String { return self._s[1777]! } + public var Channel_BanUser_BlockFor: String { return self._s[1778]! } + public var Call_StatusConnecting: String { return self._s[1779]! } + public var AutoNightTheme_NotAvailable: String { return self._s[1780]! } + public var PrivateDataSettings_Title: String { return self._s[1781]! } + public var Bot_Start: String { return self._s[1783]! } public func Channel_AdminLog_MessageChangedGroupAbout(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1792]!, self._r[1792]!, [_0]) + return formatWithArgumentRanges(self._s[1784]!, self._r[1784]!, [_0]) } - public var Appearance_PreviewReplyAuthor: String { return self._s[1793]! } - public var Notifications_TextTone: String { return self._s[1794]! } - public var Settings_CallSettings: String { return self._s[1795]! } + public var Appearance_PreviewReplyAuthor: String { return self._s[1785]! } + public var Notifications_TextTone: String { return self._s[1786]! } + public var Settings_CallSettings: String { return self._s[1787]! } public func Watch_Time_ShortYesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1796]!, self._r[1796]!, [_0]) + return formatWithArgumentRanges(self._s[1788]!, self._r[1788]!, [_0]) } - public var Contacts_InviteToTelegram: String { return self._s[1797]! } + public var Contacts_InviteToTelegram: String { return self._s[1789]! } public func PINNED_DOC(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1798]!, self._r[1798]!, [_1]) + return formatWithArgumentRanges(self._s[1790]!, self._r[1790]!, [_1]) } - public var ChatSettings_PrivateChats: String { return self._s[1799]! } - public var DialogList_Draft: String { return self._s[1800]! } - public var Channel_EditAdmin_PermissionDeleteMessages: String { return self._s[1801]! } - public var Channel_BanUser_PermissionSendStickersAndGifs: String { return self._s[1802]! } - public var Conversation_CloudStorageInfo_Title: String { return self._s[1803]! } - public var Conversation_ClearSecretHistory: String { return self._s[1804]! } - public var Passport_Identity_EditIdentityCard: String { return self._s[1805]! } - public var Notification_RenamedChannel: String { return self._s[1806]! } - public var BlockedUsers_BlockUser: String { return self._s[1807]! } - public var ChatSettings_TextSize: String { return self._s[1808]! } - public var ChannelInfo_DeleteGroup: String { return self._s[1809]! } - public var PhoneNumberHelp_Alert: String { return self._s[1810]! } + public var ChatSettings_PrivateChats: String { return self._s[1791]! } + public var DialogList_Draft: String { return self._s[1792]! } + public var Channel_EditAdmin_PermissionDeleteMessages: String { return self._s[1793]! } + public var Channel_BanUser_PermissionSendStickersAndGifs: String { return self._s[1794]! } + public var Conversation_CloudStorageInfo_Title: String { return self._s[1795]! } + public var Conversation_ClearSecretHistory: String { return self._s[1796]! } + public var Passport_Identity_EditIdentityCard: String { return self._s[1797]! } + public var Notification_RenamedChannel: String { return self._s[1798]! } + public var BlockedUsers_BlockUser: String { return self._s[1799]! } + public var ChatSettings_TextSize: String { return self._s[1800]! } + public var ChannelInfo_DeleteGroup: String { return self._s[1801]! } + public var PhoneNumberHelp_Alert: String { return self._s[1802]! } public func PINNED_TEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1811]!, self._r[1811]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1803]!, self._r[1803]!, [_1, _2]) } - public var Watch_ChannelInfo_Title: String { return self._s[1812]! } - public var WebSearch_RecentSectionClear: String { return self._s[1813]! } - public var Channel_AdminLogFilter_AdminsAll: String { return self._s[1814]! } - public var Channel_Setup_TypePrivate: String { return self._s[1815]! } - public var PhotoEditor_TintTool: String { return self._s[1816]! } - public var Watch_Suggestion_CantTalk: String { return self._s[1817]! } - public var PhotoEditor_QualityHigh: String { return self._s[1818]! } - public var SocksProxySetup_AddProxyTitle: String { return self._s[1820]! } + public var Watch_ChannelInfo_Title: String { return self._s[1804]! } + public var WebSearch_RecentSectionClear: String { return self._s[1805]! } + public var Channel_AdminLogFilter_AdminsAll: String { return self._s[1806]! } + public var Channel_Setup_TypePrivate: String { return self._s[1807]! } + public var PhotoEditor_TintTool: String { return self._s[1808]! } + public var Watch_Suggestion_CantTalk: String { return self._s[1809]! } + public var PhotoEditor_QualityHigh: String { return self._s[1810]! } + public var SocksProxySetup_AddProxyTitle: String { return self._s[1812]! } public func CHAT_MESSAGE_STICKER(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1822]!, self._r[1822]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1814]!, self._r[1814]!, [_1, _2, _3]) } - public var Map_ChooseAPlace: String { return self._s[1823]! } - public var Passport_Identity_NamePlaceholder: String { return self._s[1825]! } - public var Passport_ScanPassport: String { return self._s[1826]! } - public var ApplyLanguage_ChangeLanguageTitle: String { return self._s[1827]! } - public var Map_ShareLiveLocationHelp: String { return self._s[1828]! } - public var Watch_Bot_Restart: String { return self._s[1830]! } - public var Passport_RequestedInformation: String { return self._s[1831]! } - public var Channel_About_Help: String { return self._s[1832]! } - public var Web_OpenExternal: String { return self._s[1833]! } - public var Passport_Language_mn: String { return self._s[1834]! } - public var UserInfo_AddContact: String { return self._s[1836]! } - public var Privacy_ContactsSync: String { return self._s[1837]! } - public var SocksProxySetup_Connection: String { return self._s[1839]! } - public var Passport_NotLoggedInMessage: String { return self._s[1840]! } - public var Passport_PasswordPlaceholder: String { return self._s[1841]! } - public var Passport_PasswordCreate: String { return self._s[1842]! } - public var SocksProxySetup_ProxyStatusChecking: String { return self._s[1844]! } - public var Call_EncryptionKey_Title: String { return self._s[1845]! } - public var PhotoEditor_BlurToolLinear: String { return self._s[1847]! } - public var AuthSessions_EmptyText: String { return self._s[1848]! } - public var Notification_MessageLifetime1m: String { return self._s[1849]! } + public var Map_ChooseAPlace: String { return self._s[1815]! } + public var Passport_Identity_NamePlaceholder: String { return self._s[1817]! } + public var Passport_ScanPassport: String { return self._s[1818]! } + public var ApplyLanguage_ChangeLanguageTitle: String { return self._s[1819]! } + public var Map_ShareLiveLocationHelp: String { return self._s[1820]! } + public var Watch_Bot_Restart: String { return self._s[1822]! } + public var Passport_RequestedInformation: String { return self._s[1823]! } + public var Channel_About_Help: String { return self._s[1824]! } + public var Web_OpenExternal: String { return self._s[1825]! } + public var Passport_Language_mn: String { return self._s[1826]! } + public var UserInfo_AddContact: String { return self._s[1828]! } + public var Privacy_ContactsSync: String { return self._s[1829]! } + public var SocksProxySetup_Connection: String { return self._s[1831]! } + public var Passport_NotLoggedInMessage: String { return self._s[1832]! } + public var Passport_PasswordPlaceholder: String { return self._s[1833]! } + public var Passport_PasswordCreate: String { return self._s[1834]! } + public var SocksProxySetup_ProxyStatusChecking: String { return self._s[1836]! } + public var Call_EncryptionKey_Title: String { return self._s[1838]! } + public var PhotoEditor_BlurToolLinear: String { return self._s[1840]! } + public var AuthSessions_EmptyText: String { return self._s[1841]! } + public var Notification_MessageLifetime1m: String { return self._s[1842]! } public func Call_StatusBar(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1850]!, self._r[1850]!, [_0]) + return formatWithArgumentRanges(self._s[1843]!, self._r[1843]!, [_0]) } - public var EditProfile_NameAndPhotoHelp: String { return self._s[1851]! } - public var NotificationsSound_Tritone: String { return self._s[1852]! } - public var Passport_FieldAddressUploadHelp: String { return self._s[1853]! } - public var Month_ShortJuly: String { return self._s[1854]! } - public var CheckoutInfo_ShippingInfoAddress1Placeholder: String { return self._s[1855]! } - public var Watch_MessageView_ViewOnPhone: String { return self._s[1856]! } - public var CallSettings_Never: String { return self._s[1857]! } - public var Passport_Identity_TypeInternalPassportUploadScan: String { return self._s[1860]! } - public var TwoStepAuth_EmailSent: String { return self._s[1861]! } + public var EditProfile_NameAndPhotoHelp: String { return self._s[1844]! } + public var NotificationsSound_Tritone: String { return self._s[1845]! } + public var Passport_FieldAddressUploadHelp: String { return self._s[1846]! } + public var Month_ShortJuly: String { return self._s[1847]! } + public var CheckoutInfo_ShippingInfoAddress1Placeholder: String { return self._s[1848]! } + public var Watch_MessageView_ViewOnPhone: String { return self._s[1849]! } + public var CallSettings_Never: String { return self._s[1850]! } + public var Passport_Identity_TypeInternalPassportUploadScan: String { return self._s[1853]! } + public var TwoStepAuth_EmailSent: String { return self._s[1854]! } public func Notification_PinnedAnimationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1862]!, self._r[1862]!, [_0]) + return formatWithArgumentRanges(self._s[1855]!, self._r[1855]!, [_0]) } - public var TwoStepAuth_RecoveryTitle: String { return self._s[1865]! } - public var Notifications_MessageNotificationsExceptions: String { return self._s[1866]! } - public var WatchRemote_AlertOpen: String { return self._s[1868]! } - public var ExplicitContent_AlertChannel: String { return self._s[1869]! } - public var Notification_PassportValueEmail: String { return self._s[1870]! } - public var ContactInfo_PhoneLabelMobile: String { return self._s[1872]! } - public var Widget_AuthRequired: String { return self._s[1874]! } + public var TwoStepAuth_RecoveryTitle: String { return self._s[1858]! } + public var Notifications_MessageNotificationsExceptions: String { return self._s[1859]! } + public var WatchRemote_AlertOpen: String { return self._s[1861]! } + public var ExplicitContent_AlertChannel: String { return self._s[1862]! } + public var Notification_PassportValueEmail: String { return self._s[1863]! } + public var ContactInfo_PhoneLabelMobile: String { return self._s[1865]! } + public var Widget_AuthRequired: String { return self._s[1867]! } public func ForwardedAuthors2(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1875]!, self._r[1875]!, [_0, _1]) + return formatWithArgumentRanges(self._s[1868]!, self._r[1868]!, [_0, _1]) } - public var ChannelInfo_DeleteGroupConfirmation: String { return self._s[1876]! } - public var TwoStepAuth_ConfirmationText: String { return self._s[1877]! } - public var Login_SmsRequestState3: String { return self._s[1878]! } - public var Notifications_AlertTones: String { return self._s[1879]! } + public var ChannelInfo_DeleteGroupConfirmation: String { return self._s[1869]! } + public var TwoStepAuth_ConfirmationText: String { return self._s[1870]! } + public var Login_SmsRequestState3: String { return self._s[1871]! } + public var Notifications_AlertTones: String { return self._s[1872]! } public func Time_MonthOfYear_m10(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1880]!, self._r[1880]!, [_0]) + return formatWithArgumentRanges(self._s[1873]!, self._r[1873]!, [_0]) } - public var Login_InfoAvatarPhoto: String { return self._s[1882]! } - public var Calls_TabTitle: String { return self._s[1885]! } - public var Map_YouAreHere: String { return self._s[1886]! } - public var PhotoEditor_CurvesTool: String { return self._s[1887]! } - public var Map_LiveLocationFor1Hour: String { return self._s[1888]! } - public var AutoNightTheme_AutomaticSection: String { return self._s[1889]! } - public var Stickers_NoStickersFound: String { return self._s[1890]! } - public var Passport_Identity_AddIdentityCard: String { return self._s[1892]! } + public var Login_InfoAvatarPhoto: String { return self._s[1875]! } + public var Calls_TabTitle: String { return self._s[1878]! } + public var Map_YouAreHere: String { return self._s[1879]! } + public var PhotoEditor_CurvesTool: String { return self._s[1880]! } + public var Map_LiveLocationFor1Hour: String { return self._s[1881]! } + public var AutoNightTheme_AutomaticSection: String { return self._s[1882]! } + public var Stickers_NoStickersFound: String { return self._s[1883]! } + public var Passport_Identity_AddIdentityCard: String { return self._s[1885]! } public func Notification_JoinedChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1893]!, self._r[1893]!, [_0]) + return formatWithArgumentRanges(self._s[1886]!, self._r[1886]!, [_0]) } - public var Passport_Language_et: String { return self._s[1894]! } - public var Passport_Language_en: String { return self._s[1895]! } - public var Login_CancelPhoneVerification: String { return self._s[1896]! } - public var GroupInfo_ActionRestrict: String { return self._s[1899]! } - public var Checkout_ShippingOption_Title: String { return self._s[1900]! } - public var Stickers_SuggestStickers: String { return self._s[1902]! } + public var Passport_Language_et: String { return self._s[1887]! } + public var Passport_Language_en: String { return self._s[1888]! } + public var Login_CancelPhoneVerification: String { return self._s[1889]! } + public var GroupInfo_ActionRestrict: String { return self._s[1892]! } + public var Checkout_ShippingOption_Title: String { return self._s[1893]! } + public var Stickers_SuggestStickers: String { return self._s[1895]! } public func Channel_AdminLog_MessageKickedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1906]!, self._r[1906]!, [_1]) + return formatWithArgumentRanges(self._s[1899]!, self._r[1899]!, [_1]) } - public var Conversation_EncryptionProcessing: String { return self._s[1907]! } - public var TwoStepAuth_EmailCodeExpired: String { return self._s[1908]! } + public var Conversation_EncryptionProcessing: String { return self._s[1900]! } + public var TwoStepAuth_EmailCodeExpired: String { return self._s[1901]! } public func CHAT_ADD_MEMBER(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1911]!, self._r[1911]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1904]!, self._r[1904]!, [_1, _2, _3]) } - public var Weekday_ShortSunday: String { return self._s[1914]! } - public var Privacy_ContactsResetConfirmation: String { return self._s[1915]! } - public var Month_ShortJune: String { return self._s[1916]! } - public var Privacy_Calls_Integration: String { return self._s[1917]! } - public var Channel_TypeSetup_Title: String { return self._s[1918]! } - public var Month_GenApril: String { return self._s[1919]! } - public var StickerPacksSettings_ShowStickersButton: String { return self._s[1920]! } - public var CheckoutInfo_ShippingInfoTitle: String { return self._s[1921]! } - public var Notification_PassportValueProofOfAddress: String { return self._s[1922]! } - public var Weekday_Tuesday: String { return self._s[1923]! } - public var StickerPacksSettings_ShowStickersButtonHelp: String { return self._s[1924]! } + public var Weekday_ShortSunday: String { return self._s[1907]! } + public var Privacy_ContactsResetConfirmation: String { return self._s[1908]! } + public var Month_ShortJune: String { return self._s[1909]! } + public var Privacy_Calls_Integration: String { return self._s[1910]! } + public var Channel_TypeSetup_Title: String { return self._s[1911]! } + public var Month_GenApril: String { return self._s[1912]! } + public var StickerPacksSettings_ShowStickersButton: String { return self._s[1913]! } + public var CheckoutInfo_ShippingInfoTitle: String { return self._s[1914]! } + public var Notification_PassportValueProofOfAddress: String { return self._s[1915]! } + public var Weekday_Tuesday: String { return self._s[1916]! } + public var StickerPacksSettings_ShowStickersButtonHelp: String { return self._s[1917]! } public func Compatibility_SecretMediaVersionTooLow(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1925]!, self._r[1925]!, [_0, _1]) + return formatWithArgumentRanges(self._s[1918]!, self._r[1918]!, [_0, _1]) } - public var CallSettings_RecentCalls: String { return self._s[1926]! } + public var CallSettings_RecentCalls: String { return self._s[1919]! } public func Conversation_Megabytes(_ _0: Float) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1931]!, self._r[1931]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[1924]!, self._r[1924]!, ["\(_0)"]) } - public var Conversation_SearchByName_Prefix: String { return self._s[1934]! } - public var Permissions_ContactsText: String { return self._s[1935]! } - public var TwoStepAuth_FloodError: String { return self._s[1936]! } - public var Paint_Stickers: String { return self._s[1937]! } - public var Login_InvalidCountryCode: String { return self._s[1938]! } - public var Privacy_Calls_AlwaysAllow_Title: String { return self._s[1939]! } - public var Username_InvalidTooShort: String { return self._s[1940]! } + public var Conversation_SearchByName_Prefix: String { return self._s[1927]! } + public var TwoStepAuth_FloodError: String { return self._s[1928]! } + public var Paint_Stickers: String { return self._s[1929]! } + public var Login_InvalidCountryCode: String { return self._s[1930]! } + public var Privacy_Calls_AlwaysAllow_Title: String { return self._s[1931]! } + public var Username_InvalidTooShort: String { return self._s[1932]! } public func Settings_ApplyProxyAlert(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1941]!, self._r[1941]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1933]!, self._r[1933]!, [_1, _2]) } - public var Weekday_ShortFriday: String { return self._s[1942]! } + public var Weekday_ShortFriday: String { return self._s[1934]! } public func Login_BannedPhoneBody(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1943]!, self._r[1943]!, [_0]) + return formatWithArgumentRanges(self._s[1935]!, self._r[1935]!, [_0]) } - public var Conversation_ClearAll: String { return self._s[1944]! } - public var Conversation_EditingMessageMediaChange: String { return self._s[1945]! } - public var Passport_FieldIdentityTranslationHelp: String { return self._s[1946]! } - public var Call_ReportIncludeLog: String { return self._s[1947]! } + public var Conversation_ClearAll: String { return self._s[1936]! } + public var Conversation_EditingMessageMediaChange: String { return self._s[1937]! } + public var Passport_FieldIdentityTranslationHelp: String { return self._s[1938]! } + public var Call_ReportIncludeLog: String { return self._s[1939]! } public func Time_MonthOfYear_m3(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1948]!, self._r[1948]!, [_0]) + return formatWithArgumentRanges(self._s[1940]!, self._r[1940]!, [_0]) } - public var SharedMedia_EmptyTitle: String { return self._s[1949]! } - public var Call_PhoneCallInProgressMessage: String { return self._s[1950]! } - public var Notification_GroupActivated: String { return self._s[1951]! } - public var Checkout_Name: String { return self._s[1952]! } - public var Passport_Address_PostcodePlaceholder: String { return self._s[1953]! } + public var SharedMedia_EmptyTitle: String { return self._s[1941]! } + public var Call_PhoneCallInProgressMessage: String { return self._s[1942]! } + public var Notification_GroupActivated: String { return self._s[1943]! } + public var Checkout_Name: String { return self._s[1944]! } + public var Passport_Address_PostcodePlaceholder: String { return self._s[1945]! } public func AUTH_REGION(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1954]!, self._r[1954]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1946]!, self._r[1946]!, [_1, _2]) } - public var Settings_NotificationsAndSounds: String { return self._s[1955]! } - public var Conversation_EncryptionCanceled: String { return self._s[1956]! } + public var Settings_NotificationsAndSounds: String { return self._s[1947]! } + public var Conversation_EncryptionCanceled: String { return self._s[1948]! } public func GroupInfo_InvitationLinkAcceptChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1957]!, self._r[1957]!, [_0]) + return formatWithArgumentRanges(self._s[1949]!, self._r[1949]!, [_0]) } - public var AccessDenied_SaveMedia: String { return self._s[1958]! } - public var InviteText_URL: String { return self._s[1959]! } - public var Passport_CorrectErrors: String { return self._s[1960]! } + public var AccessDenied_SaveMedia: String { return self._s[1950]! } + public var InviteText_URL: String { return self._s[1951]! } + public var Passport_CorrectErrors: String { return self._s[1952]! } public func Channel_AdminLog_MessageInvitedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1961]!, self._r[1961]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1953]!, self._r[1953]!, [_1, _2]) } - public var Notifications_Badge_CountUnreadMessages: String { return self._s[1962]! } - public var Appearance_ReduceMotion: String { return self._s[1963]! } - public var Compose_GroupTokenListPlaceholder: String { return self._s[1964]! } - public var Passport_Address_CityPlaceholder: String { return self._s[1965]! } - public var Passport_InfoFAQ_URL: String { return self._s[1966]! } - public var Conversation_MessageDeliveryFailed: String { return self._s[1969]! } - public var InstantPage_TapToOpenLink: String { return self._s[1970]! } - public var Privacy_PaymentsClear_PaymentInfo: String { return self._s[1971]! } - public var Notifications_GroupNotifications: String { return self._s[1972]! } - public var CheckoutInfo_SaveInfoHelp: String { return self._s[1973]! } - public var Notification_Mute1hMin: String { return self._s[1974]! } - public var Privacy_TopPeersWarning: String { return self._s[1975]! } - public var StickerPacksSettings_ArchivedMasks_Info: String { return self._s[1977]! } - public var ChannelMembers_WhoCanAddMembers_AllMembers: String { return self._s[1979]! } - public var Channel_Edit_PrivatePublicLinkAlert: String { return self._s[1980]! } - public var Watch_Conversation_UserInfo: String { return self._s[1981]! } - public var Application_Name: String { return self._s[1982]! } - public var Conversation_AddToReadingList: String { return self._s[1983]! } - public var Conversation_FileDropbox: String { return self._s[1984]! } - public var Login_PhonePlaceholder: String { return self._s[1985]! } - public var SocksProxySetup_ProxyEnabled: String { return self._s[1986]! } - public var Profile_MessageLifetime1d: String { return self._s[1987]! } - public var CheckoutInfo_ShippingInfoCityPlaceholder: String { return self._s[1988]! } - public var Notifications_ChannelNotificationsSound: String { return self._s[1989]! } - public var Calls_CallTabDescription: String { return self._s[1990]! } - public var Passport_DeletePersonalDetails: String { return self._s[1991]! } - public var Passport_Address_AddBankStatement: String { return self._s[1992]! } - public var Resolve_ErrorNotFound: String { return self._s[1993]! } - public var Watch_Message_Call: String { return self._s[1994]! } - public var PhotoEditor_FadeTool: String { return self._s[1995]! } - public var Channel_Setup_TypePublicHelp: String { return self._s[1997]! } - public var GroupInfo_InviteLink_RevokeAlert_Success: String { return self._s[2000]! } - public var Channel_Setup_PublicNoLink: String { return self._s[2001]! } - public var Privacy_Calls_P2PHelp: String { return self._s[2002]! } - public var Conversation_Info: String { return self._s[2003]! } + public var Notifications_Badge_CountUnreadMessages: String { return self._s[1954]! } + public var Appearance_ReduceMotion: String { return self._s[1955]! } + public var Compose_GroupTokenListPlaceholder: String { return self._s[1956]! } + public var Passport_Address_CityPlaceholder: String { return self._s[1957]! } + public var Passport_InfoFAQ_URL: String { return self._s[1958]! } + public var Conversation_MessageDeliveryFailed: String { return self._s[1961]! } + public var InstantPage_TapToOpenLink: String { return self._s[1962]! } + public var Privacy_PaymentsClear_PaymentInfo: String { return self._s[1963]! } + public var Notifications_GroupNotifications: String { return self._s[1964]! } + public var CheckoutInfo_SaveInfoHelp: String { return self._s[1965]! } + public var Notification_Mute1hMin: String { return self._s[1966]! } + public var Privacy_TopPeersWarning: String { return self._s[1967]! } + public var StickerPacksSettings_ArchivedMasks_Info: String { return self._s[1969]! } + public var ChannelMembers_WhoCanAddMembers_AllMembers: String { return self._s[1971]! } + public var Channel_Edit_PrivatePublicLinkAlert: String { return self._s[1972]! } + public var Watch_Conversation_UserInfo: String { return self._s[1973]! } + public var Application_Name: String { return self._s[1974]! } + public var Conversation_AddToReadingList: String { return self._s[1975]! } + public var Conversation_FileDropbox: String { return self._s[1976]! } + public var Login_PhonePlaceholder: String { return self._s[1977]! } + public var SocksProxySetup_ProxyEnabled: String { return self._s[1978]! } + public var Profile_MessageLifetime1d: String { return self._s[1979]! } + public var CheckoutInfo_ShippingInfoCityPlaceholder: String { return self._s[1980]! } + public var Notifications_ChannelNotificationsSound: String { return self._s[1981]! } + public var Calls_CallTabDescription: String { return self._s[1982]! } + public var Passport_DeletePersonalDetails: String { return self._s[1983]! } + public var Passport_Address_AddBankStatement: String { return self._s[1984]! } + public var Resolve_ErrorNotFound: String { return self._s[1985]! } + public var Watch_Message_Call: String { return self._s[1986]! } + public var PhotoEditor_FadeTool: String { return self._s[1987]! } + public var Channel_Setup_TypePublicHelp: String { return self._s[1989]! } + public var GroupInfo_InviteLink_RevokeAlert_Success: String { return self._s[1992]! } + public var Channel_Setup_PublicNoLink: String { return self._s[1993]! } + public var Privacy_Calls_P2PHelp: String { return self._s[1994]! } + public var Conversation_Info: String { return self._s[1995]! } public func Time_TodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2005]!, self._r[2005]!, [_0]) + return formatWithArgumentRanges(self._s[1997]!, self._r[1997]!, [_0]) } - public var AutoDownloadSettings_VideosTitle: String { return self._s[2006]! } - public var Conversation_Processing: String { return self._s[2007]! } - public var Conversation_RestrictedInline: String { return self._s[2008]! } + public var AutoDownloadSettings_VideosTitle: String { return self._s[1998]! } + public var Conversation_Processing: String { return self._s[1999]! } + public var Conversation_RestrictedInline: String { return self._s[2000]! } public func InstantPage_AuthorAndDateTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2012]!, self._r[2012]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2004]!, self._r[2004]!, [_1, _2]) } public func Watch_LastSeen_AtDate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2013]!, self._r[2013]!, [_0]) + return formatWithArgumentRanges(self._s[2005]!, self._r[2005]!, [_0]) } - public var Conversation_Location: String { return self._s[2014]! } - public var DialogList_PasscodeLockHelp: String { return self._s[2015]! } - public var Channel_Management_Title: String { return self._s[2016]! } - public var Notifications_InAppNotificationsPreview: String { return self._s[2017]! } - public var EnterPasscode_EnterTitle: String { return self._s[2019]! } - public var ReportPeer_ReasonOther_Title: String { return self._s[2020]! } - public var Month_GenJanuary: String { return self._s[2021]! } - public var Conversation_ForwardChats: String { return self._s[2022]! } - public var Channel_UpdatePhotoItem: String { return self._s[2024]! } - public var UserInfo_StartSecretChat: String { return self._s[2025]! } - public var PrivacySettings_LastSeenNobody: String { return self._s[2026]! } + public var Conversation_Location: String { return self._s[2006]! } + public var DialogList_PasscodeLockHelp: String { return self._s[2007]! } + public var Channel_Management_Title: String { return self._s[2008]! } + public var Notifications_InAppNotificationsPreview: String { return self._s[2009]! } + public var EnterPasscode_EnterTitle: String { return self._s[2011]! } + public var ReportPeer_ReasonOther_Title: String { return self._s[2012]! } + public var Month_GenJanuary: String { return self._s[2013]! } + public var Conversation_ForwardChats: String { return self._s[2014]! } + public var Channel_UpdatePhotoItem: String { return self._s[2016]! } + public var UserInfo_StartSecretChat: String { return self._s[2017]! } + public var PrivacySettings_LastSeenNobody: String { return self._s[2018]! } public func FileSize_MB(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2027]!, self._r[2027]!, [_0]) + return formatWithArgumentRanges(self._s[2019]!, self._r[2019]!, [_0]) } - public var ChatSearch_SearchPlaceholder: String { return self._s[2030]! } - public var TwoStepAuth_ConfirmationAbort: String { return self._s[2031]! } - public var FastTwoStepSetup_HintSection: String { return self._s[2032]! } - public var TwoStepAuth_SetupPasswordDescription: String { return self._s[2035]! } - public var TwoStepAuth_SetupPasswordConfirmFailed: String { return self._s[2037]! } + public var ChatSearch_SearchPlaceholder: String { return self._s[2022]! } + public var TwoStepAuth_ConfirmationAbort: String { return self._s[2023]! } + public var FastTwoStepSetup_HintSection: String { return self._s[2024]! } + public var TwoStepAuth_SetupPasswordDescription: String { return self._s[2027]! } + public var TwoStepAuth_SetupPasswordConfirmFailed: String { return self._s[2029]! } public func LastSeen_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2030]!, self._r[2030]!, [_0]) + } + public var GroupInfo_GroupHistoryVisible: String { return self._s[2032]! } + public var AppleWatch_ReplyPresetsHelp: String { return self._s[2033]! } + public var Localization_LanguageName: String { return self._s[2034]! } + public var Map_OpenIn: String { return self._s[2035]! } + public var Message_File: String { return self._s[2036]! } + public var Call_ReportSend: String { return self._s[2037]! } + public func Channel_AdminLog_MessageChangedGroupUsername(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2038]!, self._r[2038]!, [_0]) } - public var GroupInfo_GroupHistoryVisible: String { return self._s[2040]! } - public var AppleWatch_ReplyPresetsHelp: String { return self._s[2041]! } - public var Localization_LanguageName: String { return self._s[2042]! } - public var Map_OpenIn: String { return self._s[2043]! } - public var Message_File: String { return self._s[2044]! } - public var Call_ReportSend: String { return self._s[2045]! } - public func Channel_AdminLog_MessageChangedGroupUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2046]!, self._r[2046]!, [_0]) - } public func CHAT_MESSAGE_GAME(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2047]!, self._r[2047]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2039]!, self._r[2039]!, [_1, _2, _3]) } public func Time_PreciseDate_m1(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2048]!, self._r[2048]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2040]!, self._r[2040]!, [_1, _2, _3]) } - public var Month_ShortMay: String { return self._s[2051]! } - public var Tour_Text3: String { return self._s[2052]! } - public var Notification_Exceptions_NewException_NotificationHeader: String { return self._s[2053]! } - public var Contacts_GlobalSearch: String { return self._s[2054]! } - public var DialogList_LanguageTooltip: String { return self._s[2055]! } - public var AuthSessions_LogOutApplications: String { return self._s[2056]! } - public var Map_LoadError: String { return self._s[2057]! } - public var Notifications_DisplayNamesOnLockScreenInfoWithLink: String { return self._s[2058]! } - public var Settings_ProxyConnecting: String { return self._s[2059]! } - public var Passport_Language_fa: String { return self._s[2061]! } - public var AccessDenied_VoiceMicrophone: String { return self._s[2062]! } + public var Month_ShortMay: String { return self._s[2043]! } + public var Tour_Text3: String { return self._s[2044]! } + public var Notification_Exceptions_NewException_NotificationHeader: String { return self._s[2045]! } + public var Contacts_GlobalSearch: String { return self._s[2046]! } + public var DialogList_LanguageTooltip: String { return self._s[2047]! } + public var AuthSessions_LogOutApplications: String { return self._s[2048]! } + public var Map_LoadError: String { return self._s[2049]! } + public var Notifications_DisplayNamesOnLockScreenInfoWithLink: String { return self._s[2050]! } + public var Settings_ProxyConnecting: String { return self._s[2051]! } + public var Passport_Language_fa: String { return self._s[2053]! } + public var AccessDenied_VoiceMicrophone: String { return self._s[2054]! } public func CHANNEL_MESSAGE_STICKER(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2065]!, self._r[2065]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2057]!, self._r[2057]!, [_1, _2]) } - public var Passport_Address_TypeUtilityBillUploadScan: String { return self._s[2066]! } - public var PrivacySettings_Title: String { return self._s[2067]! } - public var PasscodeSettings_TurnPasscodeOff: String { return self._s[2070]! } - public var MediaPicker_AddCaption: String { return self._s[2071]! } - public var Channel_AdminLog_BanReadMessages: String { return self._s[2072]! } - public var Channel_Status: String { return self._s[2073]! } - public var Map_ChooseLocationTitle: String { return self._s[2074]! } - public var Notifications_ChannelNotifications: String { return self._s[2075]! } - public var Map_OpenInYandexNavigator: String { return self._s[2076]! } + public var Passport_Address_TypeUtilityBillUploadScan: String { return self._s[2058]! } + public var PrivacySettings_Title: String { return self._s[2059]! } + public var PasscodeSettings_TurnPasscodeOff: String { return self._s[2062]! } + public var MediaPicker_AddCaption: String { return self._s[2063]! } + public var Channel_AdminLog_BanReadMessages: String { return self._s[2064]! } + public var Channel_Status: String { return self._s[2065]! } + public var Map_ChooseLocationTitle: String { return self._s[2066]! } + public var Notifications_ChannelNotifications: String { return self._s[2067]! } + public var Map_OpenInYandexNavigator: String { return self._s[2068]! } public func TwoStepAuth_ConfirmEmailDescription(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2077]!, self._r[2077]!, [_1]) + return formatWithArgumentRanges(self._s[2069]!, self._r[2069]!, [_1]) } - public var AutoNightTheme_PreferredTheme: String { return self._s[2078]! } - public var State_WaitingForNetwork: String { return self._s[2079]! } - public var TwoStepAuth_EmailHelp: String { return self._s[2080]! } - public var Conversation_StopLiveLocation: String { return self._s[2081]! } - public var Username_TooManyPublicUsernamesError: String { return self._s[2082]! } - public var Privacy_SecretChatsLinkPreviewsHelp: String { return self._s[2083]! } - public var PhotoEditor_SharpenTool: String { return self._s[2084]! } - public var Common_of: String { return self._s[2085]! } - public var AuthSessions_Title: String { return self._s[2086]! } - public var Passport_Scans_UploadNew: String { return self._s[2087]! } - public var Message_PinnedLiveLocationMessage: String { return self._s[2088]! } - public var Passport_FieldIdentityDetailsHelp: String { return self._s[2089]! } - public var PrivacyLastSeenSettings_AlwaysShareWith: String { return self._s[2090]! } - public var EnterPasscode_EnterPasscode: String { return self._s[2091]! } - public var Notifications_Reset: String { return self._s[2092]! } + public var AutoNightTheme_PreferredTheme: String { return self._s[2070]! } + public var State_WaitingForNetwork: String { return self._s[2071]! } + public var TwoStepAuth_EmailHelp: String { return self._s[2072]! } + public var Conversation_StopLiveLocation: String { return self._s[2073]! } + public var Username_TooManyPublicUsernamesError: String { return self._s[2074]! } + public var Privacy_SecretChatsLinkPreviewsHelp: String { return self._s[2075]! } + public var PhotoEditor_SharpenTool: String { return self._s[2076]! } + public var Common_of: String { return self._s[2077]! } + public var AuthSessions_Title: String { return self._s[2078]! } + public var Passport_Scans_UploadNew: String { return self._s[2079]! } + public var Message_PinnedLiveLocationMessage: String { return self._s[2080]! } + public var Passport_FieldIdentityDetailsHelp: String { return self._s[2081]! } + public var PrivacyLastSeenSettings_AlwaysShareWith: String { return self._s[2082]! } + public var EnterPasscode_EnterPasscode: String { return self._s[2083]! } + public var Notifications_Reset: String { return self._s[2084]! } public func Map_LiveLocationPrivateDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2093]!, self._r[2093]!, [_0]) + return formatWithArgumentRanges(self._s[2085]!, self._r[2085]!, [_0]) } - public var GroupInfo_InvitationLinkGroupFull: String { return self._s[2094]! } + public var GroupInfo_InvitationLinkGroupFull: String { return self._s[2086]! } public func Channel_AdminLog_MessageChangedChannelUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2096]!, self._r[2096]!, [_0]) + return formatWithArgumentRanges(self._s[2088]!, self._r[2088]!, [_0]) } public func CHAT_MESSAGE_DOC(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2097]!, self._r[2097]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2089]!, self._r[2089]!, [_1, _2]) } - public var Watch_AppName: String { return self._s[2098]! } - public var ConvertToSupergroup_HelpTitle: String { return self._s[2099]! } - public var Conversation_TapAndHoldToRecord: String { return self._s[2100]! } - public var Permissions_SiriTitle: String { return self._s[2102]! } + public var Watch_AppName: String { return self._s[2090]! } + public var ConvertToSupergroup_HelpTitle: String { return self._s[2091]! } + public var Conversation_TapAndHoldToRecord: String { return self._s[2092]! } public func MESSAGE_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2103]!, self._r[2103]!, [_1]) + return formatWithArgumentRanges(self._s[2094]!, self._r[2094]!, [_1]) } public func DialogList_EncryptedChatStartedOutgoing(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2104]!, self._r[2104]!, [_0]) + return formatWithArgumentRanges(self._s[2095]!, self._r[2095]!, [_0]) } - public var Checkout_PayWithTouchId: String { return self._s[2105]! } - public var Passport_Language_ko: String { return self._s[2106]! } - public var Conversation_DiscardVoiceMessageTitle: String { return self._s[2107]! } + public var Checkout_PayWithTouchId: String { return self._s[2096]! } + public var Passport_Language_ko: String { return self._s[2097]! } + public var Conversation_DiscardVoiceMessageTitle: String { return self._s[2098]! } public func CHAT_ADD_YOU(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2108]!, self._r[2108]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2099]!, self._r[2099]!, [_1, _2]) } - public var CheckoutInfo_ShippingInfoCity: String { return self._s[2109]! } - public var Group_AdminLog_EmptyText: String { return self._s[2110]! } - public var AutoDownloadSettings_GroupChats: String { return self._s[2111]! } - public var TwoStepAuth_AddHintTitle: String { return self._s[2112]! } - public var Conversation_ClousStorageInfo_Description3: String { return self._s[2114]! } - public var Notifications_ExceptionsMuted: String { return self._s[2115]! } - public var Conversation_PinMessageAlertGroup: String { return self._s[2116]! } - public var TwoStepAuth_RecoveryEmailTitle: String { return self._s[2118]! } - public var Settings_FAQ_Intro: String { return self._s[2119]! } - public var PrivacySettings_AuthSessions: String { return self._s[2120]! } + public var CheckoutInfo_ShippingInfoCity: String { return self._s[2100]! } + public var Group_AdminLog_EmptyText: String { return self._s[2101]! } + public var AutoDownloadSettings_GroupChats: String { return self._s[2102]! } + public var TwoStepAuth_AddHintTitle: String { return self._s[2103]! } + public var Conversation_ClousStorageInfo_Description3: String { return self._s[2105]! } + public var Notifications_ExceptionsMuted: String { return self._s[2106]! } + public var Conversation_PinMessageAlertGroup: String { return self._s[2107]! } + public var TwoStepAuth_RecoveryEmailTitle: String { return self._s[2109]! } + public var Settings_FAQ_Intro: String { return self._s[2110]! } + public var PrivacySettings_AuthSessions: String { return self._s[2111]! } public func CHAT_MESSAGE_GEOLIVE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2121]!, self._r[2121]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2112]!, self._r[2112]!, [_1, _2]) } - public var Passport_Address_Postcode: String { return self._s[2123]! } - public var Tour_Title5: String { return self._s[2124]! } - public var ChatAdmins_AllMembersAreAdmins: String { return self._s[2125]! } - public var Group_Management_AddModeratorHelp: String { return self._s[2126]! } - public var Channel_Username_CheckingUsername: String { return self._s[2127]! } + public var Passport_Address_Postcode: String { return self._s[2114]! } + public var Tour_Title5: String { return self._s[2115]! } + public var ChatAdmins_AllMembersAreAdmins: String { return self._s[2116]! } + public var Group_Management_AddModeratorHelp: String { return self._s[2117]! } + public var Channel_Username_CheckingUsername: String { return self._s[2118]! } public func DialogList_SingleRecordingVideoMessageSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2129]!, self._r[2129]!, [_0]) + return formatWithArgumentRanges(self._s[2120]!, self._r[2120]!, [_0]) } public func Contacts_AccessDeniedHelpPortrait(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2133]!, self._r[2133]!, [_0]) + return formatWithArgumentRanges(self._s[2124]!, self._r[2124]!, [_0]) } public func Checkout_LiabilityAlert(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2134]!, self._r[2134]!, [_1, _1, _1, _2]) + return formatWithArgumentRanges(self._s[2125]!, self._r[2125]!, [_1, _1, _1, _2]) } - public var Channel_Info_BlackList: String { return self._s[2135]! } - public var Profile_BotInfo: String { return self._s[2136]! } - public var Stickers_SuggestAll: String { return self._s[2137]! } - public var Compose_NewChannel_Members: String { return self._s[2138]! } - public var Notification_Reply: String { return self._s[2139]! } - public var Watch_Stickers_Recents: String { return self._s[2141]! } - public var GroupInfo_SetGroupPhotoStop: String { return self._s[2142]! } - public var Channel_Stickers_Placeholder: String { return self._s[2143]! } - public var AttachmentMenu_File: String { return self._s[2144]! } + public var Channel_Info_BlackList: String { return self._s[2126]! } + public var Profile_BotInfo: String { return self._s[2127]! } + public var Stickers_SuggestAll: String { return self._s[2128]! } + public var Compose_NewChannel_Members: String { return self._s[2129]! } + public var Notification_Reply: String { return self._s[2130]! } + public var Watch_Stickers_Recents: String { return self._s[2132]! } + public var GroupInfo_SetGroupPhotoStop: String { return self._s[2133]! } + public var Channel_Stickers_Placeholder: String { return self._s[2134]! } + public var AttachmentMenu_File: String { return self._s[2135]! } public func MESSAGE_STICKER(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2145]!, self._r[2145]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2136]!, self._r[2136]!, [_1, _2]) } - public var Profile_MessageLifetime5s: String { return self._s[2146]! } - public var Privacy_ContactsReset: String { return self._s[2148]! } - public var Permissions_ContactsTitle: String { return self._s[2149]! } - public var TwoStepAuth_ChangePasswordDescription: String { return self._s[2150]! } + public var Profile_MessageLifetime5s: String { return self._s[2137]! } + public var Privacy_ContactsReset: String { return self._s[2139]! } + public var TwoStepAuth_ChangePasswordDescription: String { return self._s[2140]! } public func PINNED_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2151]!, self._r[2151]!, [_1]) + return formatWithArgumentRanges(self._s[2141]!, self._r[2141]!, [_1]) } - public var Channel_AdminLog_CanAddAdmins: String { return self._s[2154]! } - public var TwoStepAuth_SetupHint: String { return self._s[2155]! } - public var Conversation_StatusLeftGroup: String { return self._s[2156]! } - public var Settings_CopyUsername: String { return self._s[2157]! } - public var Passport_Identity_CountryPlaceholder: String { return self._s[2158]! } - public var ChatSettings_AutoDownloadDocuments: String { return self._s[2159]! } - public var MediaPicker_TapToUngroupDescription: String { return self._s[2160]! } - public var Conversation_ShareBotLocationConfirmation: String { return self._s[2161]! } - public var Conversation_DeleteMessagesForMe: String { return self._s[2162]! } - public var Notification_PassportValuePersonalDetails: String { return self._s[2163]! } - public var Message_PinnedAnimationMessage: String { return self._s[2164]! } - public var Passport_FieldIdentityUploadHelp: String { return self._s[2165]! } - public var SocksProxySetup_ConnectAndSave: String { return self._s[2166]! } - public var SocksProxySetup_FailedToConnect: String { return self._s[2167]! } - public var Checkout_ErrorPrecheckoutFailed: String { return self._s[2168]! } - public var Camera_PhotoMode: String { return self._s[2170]! } + public var Channel_AdminLog_CanAddAdmins: String { return self._s[2144]! } + public var TwoStepAuth_SetupHint: String { return self._s[2145]! } + public var Conversation_StatusLeftGroup: String { return self._s[2146]! } + public var Settings_CopyUsername: String { return self._s[2147]! } + public var Passport_Identity_CountryPlaceholder: String { return self._s[2148]! } + public var ChatSettings_AutoDownloadDocuments: String { return self._s[2149]! } + public var MediaPicker_TapToUngroupDescription: String { return self._s[2150]! } + public var Conversation_ShareBotLocationConfirmation: String { return self._s[2151]! } + public var Conversation_DeleteMessagesForMe: String { return self._s[2152]! } + public var Notification_PassportValuePersonalDetails: String { return self._s[2153]! } + public var Message_PinnedAnimationMessage: String { return self._s[2154]! } + public var Passport_FieldIdentityUploadHelp: String { return self._s[2155]! } + public var SocksProxySetup_ConnectAndSave: String { return self._s[2156]! } + public var SocksProxySetup_FailedToConnect: String { return self._s[2157]! } + public var Checkout_ErrorPrecheckoutFailed: String { return self._s[2158]! } + public var Camera_PhotoMode: String { return self._s[2160]! } public func Time_MonthOfYear_m2(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2172]!, self._r[2172]!, [_0]) + return formatWithArgumentRanges(self._s[2162]!, self._r[2162]!, [_0]) } - public var Channel_About_Placeholder: String { return self._s[2173]! } - public var Map_Directions: String { return self._s[2175]! } - public var Channel_About_Title: String { return self._s[2176]! } + public var Channel_About_Placeholder: String { return self._s[2163]! } + public var Map_Directions: String { return self._s[2165]! } + public var Channel_About_Title: String { return self._s[2166]! } public func MESSAGE_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2177]!, self._r[2177]!, [_1]) + return formatWithArgumentRanges(self._s[2167]!, self._r[2167]!, [_1]) } - public var Calls_RatingTitle: String { return self._s[2178]! } - public var SharedMedia_EmptyText: String { return self._s[2179]! } - public var Channel_Stickers_Searching: String { return self._s[2180]! } - public var Passport_Address_AddUtilityBill: String { return self._s[2181]! } - public var Login_PadPhoneHelp: String { return self._s[2182]! } - public var StickerPacksSettings_ArchivedPacks: String { return self._s[2184]! } - public var Passport_Language_th: String { return self._s[2185]! } - public var Channel_ErrorAccessDenied: String { return self._s[2186]! } - public var Generic_ErrorMoreInfo: String { return self._s[2188]! } - public var Channel_AdminLog_TitleAllEvents: String { return self._s[2189]! } - public var Settings_Proxy: String { return self._s[2190]! } - public var Passport_Language_lt: String { return self._s[2191]! } - public var TwoStepAuth_ConfirmEmailResendCode: String { return self._s[2192]! } - public var Channel_Username_RevokeExistingUsernamesInfo: String { return self._s[2194]! } - public var ChannelMembers_WhoCanAddMembersAllHelp: String { return self._s[2195]! } - public var Passport_Address_CountryPlaceholder: String { return self._s[2196]! } - public var ChangePhoneNumberCode_CodePlaceholder: String { return self._s[2197]! } - public var Camera_SquareMode: String { return self._s[2198]! } + public var Calls_RatingTitle: String { return self._s[2168]! } + public var SharedMedia_EmptyText: String { return self._s[2169]! } + public var Channel_Stickers_Searching: String { return self._s[2170]! } + public var Passport_Address_AddUtilityBill: String { return self._s[2171]! } + public var Login_PadPhoneHelp: String { return self._s[2172]! } + public var StickerPacksSettings_ArchivedPacks: String { return self._s[2174]! } + public var Passport_Language_th: String { return self._s[2175]! } + public var Channel_ErrorAccessDenied: String { return self._s[2176]! } + public var Generic_ErrorMoreInfo: String { return self._s[2178]! } + public var Channel_AdminLog_TitleAllEvents: String { return self._s[2179]! } + public var Settings_Proxy: String { return self._s[2180]! } + public var Passport_Language_lt: String { return self._s[2181]! } + public var TwoStepAuth_ConfirmEmailResendCode: String { return self._s[2182]! } + public var Channel_Username_RevokeExistingUsernamesInfo: String { return self._s[2184]! } + public var ChannelMembers_WhoCanAddMembersAllHelp: String { return self._s[2185]! } + public var Passport_Address_CountryPlaceholder: String { return self._s[2186]! } + public var ChangePhoneNumberCode_CodePlaceholder: String { return self._s[2187]! } + public var Camera_SquareMode: String { return self._s[2188]! } public func Conversation_EncryptedPlaceholderTitleOutgoing(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2199]!, self._r[2199]!, [_0]) + return formatWithArgumentRanges(self._s[2189]!, self._r[2189]!, [_0]) } - public var NetworkUsageSettings_CallDataSection: String { return self._s[2200]! } - public var Login_PadPhoneHelpTitle: String { return self._s[2201]! } - public var Profile_CreateNewContact: String { return self._s[2202]! } - public var AccessDenied_VideoMessageMicrophone: String { return self._s[2203]! } - public var AutoDownloadSettings_VoiceMessagesTitle: String { return self._s[2204]! } - public var PhotoEditor_VignetteTool: String { return self._s[2205]! } - public var LastSeen_WithinAWeek: String { return self._s[2206]! } - public var Widget_NoUsers: String { return self._s[2207]! } - public var Passport_Identity_DocumentNumber: String { return self._s[2209]! } - public var Application_Update: String { return self._s[2210]! } - public var Calls_NewCall: String { return self._s[2211]! } + public var NetworkUsageSettings_CallDataSection: String { return self._s[2190]! } + public var Login_PadPhoneHelpTitle: String { return self._s[2191]! } + public var Profile_CreateNewContact: String { return self._s[2192]! } + public var AccessDenied_VideoMessageMicrophone: String { return self._s[2193]! } + public var AutoDownloadSettings_VoiceMessagesTitle: String { return self._s[2194]! } + public var PhotoEditor_VignetteTool: String { return self._s[2195]! } + public var LastSeen_WithinAWeek: String { return self._s[2196]! } + public var Widget_NoUsers: String { return self._s[2197]! } + public var Passport_Identity_DocumentNumber: String { return self._s[2199]! } + public var Application_Update: String { return self._s[2200]! } + public var Calls_NewCall: String { return self._s[2201]! } public func CHANNEL_MESSAGE_AUDIO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2212]!, self._r[2212]!, [_1]) + return formatWithArgumentRanges(self._s[2202]!, self._r[2202]!, [_1]) } - public var DialogList_NoMessagesText: String { return self._s[2213]! } - public var MaskStickerSettings_Info: String { return self._s[2214]! } - public var ChatSettings_AutoDownloadTitle: String { return self._s[2215]! } - public var Passport_FieldAddressHelp: String { return self._s[2216]! } - public var Passport_Language_dz: String { return self._s[2217]! } - public var Conversation_FilePhotoOrVideo: String { return self._s[2218]! } - public var Channel_AdminLog_BanSendStickers: String { return self._s[2219]! } - public var Common_Next: String { return self._s[2220]! } - public var Stickers_RemoveFromFavorites: String { return self._s[2221]! } - public var Watch_Notification_Joined: String { return self._s[2222]! } + public var DialogList_NoMessagesText: String { return self._s[2203]! } + public var MaskStickerSettings_Info: String { return self._s[2204]! } + public var ChatSettings_AutoDownloadTitle: String { return self._s[2205]! } + public var Passport_FieldAddressHelp: String { return self._s[2206]! } + public var Passport_Language_dz: String { return self._s[2207]! } + public var Conversation_FilePhotoOrVideo: String { return self._s[2208]! } + public var Channel_AdminLog_BanSendStickers: String { return self._s[2209]! } + public var Common_Next: String { return self._s[2210]! } + public var Stickers_RemoveFromFavorites: String { return self._s[2211]! } + public var Watch_Notification_Joined: String { return self._s[2212]! } public func Channel_AdminLog_MessageRestrictedNewSetting(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2223]!, self._r[2223]!, [_0]) + return formatWithArgumentRanges(self._s[2213]!, self._r[2213]!, [_0]) } - public var Passport_DeleteAddress: String { return self._s[2224]! } - public var ContactInfo_PhoneLabelHome: String { return self._s[2225]! } - public var GroupInfo_DeleteAndExitConfirmation: String { return self._s[2226]! } - public var NotificationsSound_Tremolo: String { return self._s[2227]! } - public var TwoStepAuth_EmailInvalid: String { return self._s[2228]! } - public var Privacy_ContactsTitle: String { return self._s[2229]! } - public var Passport_Address_TypeBankStatement: String { return self._s[2231]! } + public var Passport_DeleteAddress: String { return self._s[2214]! } + public var ContactInfo_PhoneLabelHome: String { return self._s[2215]! } + public var GroupInfo_DeleteAndExitConfirmation: String { return self._s[2216]! } + public var NotificationsSound_Tremolo: String { return self._s[2217]! } + public var TwoStepAuth_EmailInvalid: String { return self._s[2218]! } + public var Privacy_ContactsTitle: String { return self._s[2219]! } + public var Passport_Address_TypeBankStatement: String { return self._s[2221]! } public func CHAT_MESSAGE_VIDEO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2232]!, self._r[2232]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2222]!, self._r[2222]!, [_1, _2]) } - public var Month_GenJune: String { return self._s[2233]! } - public var Map_LiveLocationFor15Minutes: String { return self._s[2234]! } + public var Month_GenJune: String { return self._s[2223]! } + public var Map_LiveLocationFor15Minutes: String { return self._s[2224]! } public func Login_EmailCodeSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2235]!, self._r[2235]!, [_0]) + return formatWithArgumentRanges(self._s[2225]!, self._r[2225]!, [_0]) } public func CHAT_TITLE_EDITED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2236]!, self._r[2236]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2226]!, self._r[2226]!, [_1, _2]) } - public var ContactInfo_PhoneLabelHomeFax: String { return self._s[2237]! } + public var ContactInfo_PhoneLabelHomeFax: String { return self._s[2227]! } public func NetworkUsageSettings_WifiUsageSince(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2238]!, self._r[2238]!, [_0]) + return formatWithArgumentRanges(self._s[2228]!, self._r[2228]!, [_0]) } - public var Watch_LastSeen_Lately: String { return self._s[2239]! } - public var Watch_Compose_CurrentLocation: String { return self._s[2240]! } - public var DialogList_RecentTitlePeople: String { return self._s[2242]! } - public var GroupInfo_Notifications: String { return self._s[2243]! } - public var Call_ReportPlaceholder: String { return self._s[2244]! } + public var Watch_LastSeen_Lately: String { return self._s[2229]! } + public var Watch_Compose_CurrentLocation: String { return self._s[2230]! } + public var DialogList_RecentTitlePeople: String { return self._s[2232]! } + public var GroupInfo_Notifications: String { return self._s[2233]! } + public var Call_ReportPlaceholder: String { return self._s[2234]! } public func AuthSessions_Message(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2245]!, self._r[2245]!, [_0]) + return formatWithArgumentRanges(self._s[2235]!, self._r[2235]!, [_0]) } public func MESSAGE_DOC(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2246]!, self._r[2246]!, [_1]) + return formatWithArgumentRanges(self._s[2236]!, self._r[2236]!, [_1]) } - public var Group_Username_CreatePrivateLinkHelp: String { return self._s[2247]! } - public var Notifications_GroupNotificationsSound: String { return self._s[2248]! } - public var AuthSessions_EmptyTitle: String { return self._s[2249]! } - public var Privacy_GroupsAndChannels_AlwaysAllow_Title: String { return self._s[2251]! } - public var InstantPage_Reference: String { return self._s[2252]! } - public var Passport_Language_he: String { return self._s[2253]! } + public var Group_Username_CreatePrivateLinkHelp: String { return self._s[2237]! } + public var Notifications_GroupNotificationsSound: String { return self._s[2238]! } + public var AuthSessions_EmptyTitle: String { return self._s[2239]! } + public var Privacy_GroupsAndChannels_AlwaysAllow_Title: String { return self._s[2241]! } + public var InstantPage_Reference: String { return self._s[2242]! } + public var Passport_Language_he: String { return self._s[2243]! } public func MediaPicker_Nof(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2254]!, self._r[2254]!, [_0]) + return formatWithArgumentRanges(self._s[2244]!, self._r[2244]!, [_0]) } - public var Common_Create: String { return self._s[2255]! } - public var Contacts_TopSection: String { return self._s[2256]! } + public var Common_Create: String { return self._s[2245]! } + public var Contacts_TopSection: String { return self._s[2246]! } public func Map_DirectionsDriveEta(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2257]!, self._r[2257]!, [_0]) + return formatWithArgumentRanges(self._s[2247]!, self._r[2247]!, [_0]) } - public var PrivacyPolicy_DeclineMessage: String { return self._s[2258]! } - public var Your_cards_number_is_invalid: String { return self._s[2259]! } + public var PrivacyPolicy_DeclineMessage: String { return self._s[2248]! } + public var Your_cards_number_is_invalid: String { return self._s[2249]! } public func MESSAGE_INVOICE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2260]!, self._r[2260]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2250]!, self._r[2250]!, [_1, _2]) } - public var Localization_LanguageCustom: String { return self._s[2261]! } + public var Localization_LanguageCustom: String { return self._s[2251]! } public func Channel_AdminLog_MessageRemovedChannelUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2262]!, self._r[2262]!, [_0]) + return formatWithArgumentRanges(self._s[2252]!, self._r[2252]!, [_0]) } - public var Group_MessagePhotoRemoved: String { return self._s[2263]! } - public var Appearance_Animations: String { return self._s[2264]! } - public var UserInfo_AddToExisting: String { return self._s[2265]! } - public var NotificationsSound_Aurora: String { return self._s[2266]! } + public var Group_MessagePhotoRemoved: String { return self._s[2253]! } + public var Appearance_Animations: String { return self._s[2254]! } + public var UserInfo_AddToExisting: String { return self._s[2255]! } + public var NotificationsSound_Aurora: String { return self._s[2256]! } public func LastSeen_AtDate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2269]!, self._r[2269]!, [_0]) + return formatWithArgumentRanges(self._s[2259]!, self._r[2259]!, [_0]) } - public var Conversation_MessageDialogRetry: String { return self._s[2270]! } - public var Watch_ChatList_NoConversationsTitle: String { return self._s[2271]! } - public var Passport_Language_my: String { return self._s[2272]! } - public var Stickers_GroupStickers: String { return self._s[2274]! } - public var BlockedUsers_Title: String { return self._s[2276]! } + public var Conversation_MessageDialogRetry: String { return self._s[2260]! } + public var Watch_ChatList_NoConversationsTitle: String { return self._s[2261]! } + public var Passport_Language_my: String { return self._s[2262]! } + public var Stickers_GroupStickers: String { return self._s[2264]! } + public var BlockedUsers_Title: String { return self._s[2266]! } public func LiveLocationUpdated_TodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2277]!, self._r[2277]!, [_0]) + return formatWithArgumentRanges(self._s[2267]!, self._r[2267]!, [_0]) } - public var ContactInfo_PhoneLabelWork: String { return self._s[2278]! } - public var ChatSettings_ConnectionType_UseSocks5: String { return self._s[2279]! } - public var Passport_FieldAddressTranslationHelp: String { return self._s[2280]! } - public var Cache_ClearNone: String { return self._s[2281]! } - public var SecretTimer_VideoDescription: String { return self._s[2283]! } - public var Login_InvalidCodeError: String { return self._s[2284]! } - public var Channel_BanList_BlockedTitle: String { return self._s[2286]! } - public var Passport_PasswordHelp: String { return self._s[2287]! } - public var NetworkUsageSettings_Cellular: String { return self._s[2288]! } - public var Watch_Location_Access: String { return self._s[2289]! } - public var PrivacySettings_DeleteAccountIfAwayFor: String { return self._s[2291]! } - public var Channel_AdminLog_EmptyFilterText: String { return self._s[2292]! } - public var Channel_AdminLog_EmptyText: String { return self._s[2293]! } - public var PrivacySettings_DeleteAccountTitle: String { return self._s[2294]! } - public var Passport_Language_ms: String { return self._s[2295]! } - public var PrivacyLastSeenSettings_CustomShareSettings_Delete: String { return self._s[2296]! } + public var ContactInfo_PhoneLabelWork: String { return self._s[2268]! } + public var ChatSettings_ConnectionType_UseSocks5: String { return self._s[2269]! } + public var Passport_FieldAddressTranslationHelp: String { return self._s[2270]! } + public var Cache_ClearNone: String { return self._s[2271]! } + public var SecretTimer_VideoDescription: String { return self._s[2273]! } + public var Login_InvalidCodeError: String { return self._s[2274]! } + public var Channel_BanList_BlockedTitle: String { return self._s[2276]! } + public var Passport_PasswordHelp: String { return self._s[2277]! } + public var NetworkUsageSettings_Cellular: String { return self._s[2278]! } + public var Watch_Location_Access: String { return self._s[2279]! } + public var PrivacySettings_DeleteAccountIfAwayFor: String { return self._s[2281]! } + public var Channel_AdminLog_EmptyFilterText: String { return self._s[2282]! } + public var Channel_AdminLog_EmptyText: String { return self._s[2283]! } + public var PrivacySettings_DeleteAccountTitle: String { return self._s[2284]! } + public var Passport_Language_ms: String { return self._s[2285]! } + public var PrivacyLastSeenSettings_CustomShareSettings_Delete: String { return self._s[2286]! } public func ENCRYPTED_MESSAGE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2297]!, self._r[2297]!, [_1]) + return formatWithArgumentRanges(self._s[2287]!, self._r[2287]!, [_1]) } - public var Watch_LastSeen_WithinAMonth: String { return self._s[2298]! } - public var PrivacyLastSeenSettings_CustomHelp: String { return self._s[2299]! } - public var TwoStepAuth_EnterPasswordHelp: String { return self._s[2300]! } - public var TwoStepAuth_SetupResendEmailCode: String { return self._s[2301]! } - public var Bot_Stop: String { return self._s[2302]! } - public var Privacy_GroupsAndChannels_AlwaysAllow_Placeholder: String { return self._s[2303]! } - public var UserInfo_BotSettings: String { return self._s[2304]! } - public var Your_cards_expiration_month_is_invalid: String { return self._s[2305]! } - public var Passport_FieldIdentity: String { return self._s[2306]! } - public var PrivacyLastSeenSettings_EmpryUsersPlaceholder: String { return self._s[2307]! } - public var Passport_Identity_EditInternalPassport: String { return self._s[2308]! } + public var Watch_LastSeen_WithinAMonth: String { return self._s[2288]! } + public var PrivacyLastSeenSettings_CustomHelp: String { return self._s[2289]! } + public var TwoStepAuth_EnterPasswordHelp: String { return self._s[2290]! } + public var TwoStepAuth_SetupResendEmailCode: String { return self._s[2291]! } + public var Bot_Stop: String { return self._s[2292]! } + public var Privacy_GroupsAndChannels_AlwaysAllow_Placeholder: String { return self._s[2293]! } + public var UserInfo_BotSettings: String { return self._s[2294]! } + public var Your_cards_expiration_month_is_invalid: String { return self._s[2295]! } + public var Passport_FieldIdentity: String { return self._s[2296]! } + public var PrivacyLastSeenSettings_EmpryUsersPlaceholder: String { return self._s[2297]! } + public var Passport_Identity_EditInternalPassport: String { return self._s[2298]! } public func CHANNEL_MESSAGE_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2310]!, self._r[2310]!, [_1]) + return formatWithArgumentRanges(self._s[2300]!, self._r[2300]!, [_1]) } - public var Passport_Identity_LatinNameHelp: String { return self._s[2311]! } - public var ApplyLanguage_LanguageNotSupportedError: String { return self._s[2312]! } - public var SocksProxySetup_Port: String { return self._s[2313]! } - public var Message_VideoMessage: String { return self._s[2315]! } - public var Conversation_ContextMenuStickerPackInfo: String { return self._s[2316]! } - public var Login_ResetAccountProtected_LimitExceeded: String { return self._s[2317]! } + public var Passport_Identity_LatinNameHelp: String { return self._s[2301]! } + public var ApplyLanguage_LanguageNotSupportedError: String { return self._s[2302]! } + public var SocksProxySetup_Port: String { return self._s[2303]! } + public var Message_VideoMessage: String { return self._s[2305]! } + public var Conversation_ContextMenuStickerPackInfo: String { return self._s[2306]! } + public var Login_ResetAccountProtected_LimitExceeded: String { return self._s[2307]! } public func CHAT_DELETE_MEMBER(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2318]!, self._r[2318]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2308]!, self._r[2308]!, [_1, _2, _3]) } - public var Conversation_DiscardVoiceMessageAction: String { return self._s[2319]! } - public var Camera_Title: String { return self._s[2320]! } - public var Passport_Identity_IssueDate: String { return self._s[2321]! } - public var PhotoEditor_CurvesBlue: String { return self._s[2323]! } - public var Message_PinnedVideoMessage: String { return self._s[2324]! } + public var Conversation_DiscardVoiceMessageAction: String { return self._s[2309]! } + public var Camera_Title: String { return self._s[2310]! } + public var Passport_Identity_IssueDate: String { return self._s[2311]! } + public var PhotoEditor_CurvesBlue: String { return self._s[2313]! } + public var Message_PinnedVideoMessage: String { return self._s[2314]! } public func Login_EmailPhoneSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2325]!, self._r[2325]!, [_0]) + return formatWithArgumentRanges(self._s[2315]!, self._r[2315]!, [_0]) } - public var Passport_Phone_UseTelegramNumberHelp: String { return self._s[2327]! } - public var Group_EditAdmin_PermissionChangeInfo: String { return self._s[2328]! } - public var TwoStepAuth_Email: String { return self._s[2329]! } - public var Stickers_SuggestNone: String { return self._s[2330]! } - public var Map_SendMyCurrentLocation: String { return self._s[2332]! } + public var Passport_Phone_UseTelegramNumberHelp: String { return self._s[2317]! } + public var Group_EditAdmin_PermissionChangeInfo: String { return self._s[2318]! } + public var TwoStepAuth_Email: String { return self._s[2319]! } + public var Stickers_SuggestNone: String { return self._s[2320]! } + public var Map_SendMyCurrentLocation: String { return self._s[2322]! } public func MESSAGE_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2333]!, self._r[2333]!, [_1]) + return formatWithArgumentRanges(self._s[2323]!, self._r[2323]!, [_1]) } - public var Passport_Identity_IssueDatePlaceholder: String { return self._s[2334]! } - public var Watch_Message_Invoice: String { return self._s[2335]! } - public var Map_Unknown: String { return self._s[2337]! } - public var Wallpaper_Set: String { return self._s[2339]! } - public var AccessDenied_Title: String { return self._s[2340]! } - public var SharedMedia_CategoryLinks: String { return self._s[2341]! } - public var Localization_LanguageOther: String { return self._s[2342]! } + public var Passport_Identity_IssueDatePlaceholder: String { return self._s[2324]! } + public var Watch_Message_Invoice: String { return self._s[2325]! } + public var Map_Unknown: String { return self._s[2327]! } + public var Wallpaper_Set: String { return self._s[2329]! } + public var AccessDenied_Title: String { return self._s[2330]! } + public var SharedMedia_CategoryLinks: String { return self._s[2331]! } + public var Localization_LanguageOther: String { return self._s[2332]! } public func CHAT_MESSAGES(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2343]!, self._r[2343]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2333]!, self._r[2333]!, [_1, _2, _3]) } - public var SaveIncomingPhotosSettings_Title: String { return self._s[2344]! } - public var Passport_Identity_TypeDriversLicense: String { return self._s[2345]! } - public var FastTwoStepSetup_HintHelp: String { return self._s[2346]! } - public var Notifications_ExceptionsDefaultSound: String { return self._s[2347]! } - public var TwoStepAuth_EmailSkipAlert: String { return self._s[2348]! } - public var ChatSettings_Stickers: String { return self._s[2349]! } - public var Camera_FlashOff: String { return self._s[2350]! } - public var TwoStepAuth_Title: String { return self._s[2352]! } - public var Passport_Identity_Translation: String { return self._s[2353]! } - public var Checkout_ErrorProviderAccountTimeout: String { return self._s[2354]! } - public var TwoStepAuth_SetupPasswordEnterPasswordChange: String { return self._s[2355]! } - public var WebSearch_Images: String { return self._s[2356]! } - public var Conversation_typing: String { return self._s[2357]! } - public var Common_Back: String { return self._s[2358]! } - public var PrivacySettings_DataSettingsHelp: String { return self._s[2360]! } - public var Passport_Language_es: String { return self._s[2361]! } - public var Common_Search: String { return self._s[2362]! } + public var SaveIncomingPhotosSettings_Title: String { return self._s[2334]! } + public var Passport_Identity_TypeDriversLicense: String { return self._s[2335]! } + public var FastTwoStepSetup_HintHelp: String { return self._s[2336]! } + public var Notifications_ExceptionsDefaultSound: String { return self._s[2337]! } + public var TwoStepAuth_EmailSkipAlert: String { return self._s[2338]! } + public var ChatSettings_Stickers: String { return self._s[2339]! } + public var Camera_FlashOff: String { return self._s[2340]! } + public var TwoStepAuth_Title: String { return self._s[2342]! } + public var Passport_Identity_Translation: String { return self._s[2343]! } + public var Checkout_ErrorProviderAccountTimeout: String { return self._s[2344]! } + public var TwoStepAuth_SetupPasswordEnterPasswordChange: String { return self._s[2345]! } + public var WebSearch_Images: String { return self._s[2346]! } + public var Conversation_typing: String { return self._s[2347]! } + public var Common_Back: String { return self._s[2348]! } + public var PrivacySettings_DataSettingsHelp: String { return self._s[2350]! } + public var Passport_Language_es: String { return self._s[2351]! } + public var Common_Search: String { return self._s[2352]! } public func CancelResetAccount_Success(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2363]!, self._r[2363]!, [_0]) + return formatWithArgumentRanges(self._s[2353]!, self._r[2353]!, [_0]) } - public var Common_No: String { return self._s[2364]! } - public var Login_EmailNotConfiguredError: String { return self._s[2365]! } - public var Watch_Suggestion_OK: String { return self._s[2366]! } - public var Profile_AddToExisting: String { return self._s[2367]! } + public var Common_No: String { return self._s[2354]! } + public var Login_EmailNotConfiguredError: String { return self._s[2355]! } + public var Watch_Suggestion_OK: String { return self._s[2356]! } + public var Profile_AddToExisting: String { return self._s[2357]! } public func Passport_Identity_NativeNameTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2369]!, self._r[2369]!, [_0]) + return formatWithArgumentRanges(self._s[2359]!, self._r[2359]!, [_0]) } public func PINNED_NOTEXT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2370]!, self._r[2370]!, [_1]) + return formatWithArgumentRanges(self._s[2360]!, self._r[2360]!, [_1]) } public func Login_EmailCodeBody(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2371]!, self._r[2371]!, [_0]) + return formatWithArgumentRanges(self._s[2361]!, self._r[2361]!, [_0]) } - public var NotificationsSound_Keys: String { return self._s[2372]! } - public var Passport_Phone_Title: String { return self._s[2374]! } - public var Profile_About: String { return self._s[2375]! } + public var NotificationsSound_Keys: String { return self._s[2362]! } + public var Passport_Phone_Title: String { return self._s[2364]! } + public var Profile_About: String { return self._s[2365]! } public func EncryptionKey_Description(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2376]!, self._r[2376]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2366]!, self._r[2366]!, [_1, _2]) } - public var Conversation_UnreadMessages: String { return self._s[2377]! } + public var Conversation_UnreadMessages: String { return self._s[2367]! } public func DialogList_LiveLocationSharingTo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2378]!, self._r[2378]!, [_0]) + return formatWithArgumentRanges(self._s[2368]!, self._r[2368]!, [_0]) } - public var Tour_Title3: String { return self._s[2379]! } - public var Passport_Identity_FrontSide: String { return self._s[2380]! } - public var PrivacyLastSeenSettings_GroupsAndChannelsHelp: String { return self._s[2381]! } - public var Watch_Contacts_NoResults: String { return self._s[2382]! } - public var Passport_Language_id: String { return self._s[2383]! } - public var Passport_Identity_TypeIdentityCardUploadScan: String { return self._s[2384]! } - public var Watch_UserInfo_MuteTitle: String { return self._s[2385]! } + public var Tour_Title3: String { return self._s[2369]! } + public var Passport_Identity_FrontSide: String { return self._s[2370]! } + public var PrivacyLastSeenSettings_GroupsAndChannelsHelp: String { return self._s[2371]! } + public var Watch_Contacts_NoResults: String { return self._s[2372]! } + public var Passport_Language_id: String { return self._s[2373]! } + public var Passport_Identity_TypeIdentityCardUploadScan: String { return self._s[2374]! } + public var Watch_UserInfo_MuteTitle: String { return self._s[2375]! } public func Privacy_GroupsAndChannels_InviteToGroupError(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2388]!, self._r[2388]!, [_0, _1]) + return formatWithArgumentRanges(self._s[2378]!, self._r[2378]!, [_0, _1]) } public func Message_PinnedTextMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2390]!, self._r[2390]!, [_0]) + return formatWithArgumentRanges(self._s[2380]!, self._r[2380]!, [_0]) } public func Watch_Time_ShortWeekdayAt(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2391]!, self._r[2391]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2381]!, self._r[2381]!, [_1, _2]) } - public var Conversation_EmptyGifPanelPlaceholder: String { return self._s[2392]! } - public var DialogList_Typing: String { return self._s[2393]! } - public var Notification_CallBack: String { return self._s[2394]! } - public var Passport_Language_ru: String { return self._s[2395]! } - public var Login_CancelSignUpConfirmation: String { return self._s[2396]! } - public var Map_LocatingError: String { return self._s[2397]! } - public var InfoPlist_NSFaceIDUsageDescription: String { return self._s[2399]! } - public var MediaPicker_Send: String { return self._s[2400]! } - public var ChannelIntro_Title: String { return self._s[2401]! } - public var AccessDenied_LocationAlwaysDenied: String { return self._s[2403]! } + public var Conversation_EmptyGifPanelPlaceholder: String { return self._s[2382]! } + public var DialogList_Typing: String { return self._s[2383]! } + public var Notification_CallBack: String { return self._s[2384]! } + public var Passport_Language_ru: String { return self._s[2385]! } + public var Login_CancelSignUpConfirmation: String { return self._s[2386]! } + public var Map_LocatingError: String { return self._s[2387]! } + public var InfoPlist_NSFaceIDUsageDescription: String { return self._s[2389]! } + public var MediaPicker_Send: String { return self._s[2390]! } + public var ChannelIntro_Title: String { return self._s[2391]! } + public var AccessDenied_LocationAlwaysDenied: String { return self._s[2393]! } public func PINNED_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2404]!, self._r[2404]!, [_1]) + return formatWithArgumentRanges(self._s[2394]!, self._r[2394]!, [_1]) } public func InviteText_SingleContact(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2395]!, self._r[2395]!, [_0]) + } + public var Passport_Address_TypePassportRegistration: String { return self._s[2396]! } + public var Channel_EditAdmin_CannotEdit: String { return self._s[2399]! } + public var LoginPassword_PasswordHelp: String { return self._s[2401]! } + public var BlockedUsers_Unblock: String { return self._s[2402]! } + public var AutoDownloadSettings_Cellular: String { return self._s[2403]! } + public var Passport_Language_ro: String { return self._s[2404]! } + public func Time_MonthOfYear_m1(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2405]!, self._r[2405]!, [_0]) } - public var Passport_Address_TypePassportRegistration: String { return self._s[2406]! } - public var Channel_EditAdmin_CannotEdit: String { return self._s[2409]! } - public var LoginPassword_PasswordHelp: String { return self._s[2411]! } - public var BlockedUsers_Unblock: String { return self._s[2412]! } - public var AutoDownloadSettings_Cellular: String { return self._s[2413]! } - public var Passport_Language_ro: String { return self._s[2414]! } - public func Time_MonthOfYear_m1(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2415]!, self._r[2415]!, [_0]) - } - public var Appearance_PreviewIncomingText: String { return self._s[2416]! } - public var Passport_Identity_DateOfBirthPlaceholder: String { return self._s[2417]! } - public var Notifications_ChannelNotificationsExceptionsHelp: String { return self._s[2418]! } - public var Notifications_GroupNotificationsAlert: String { return self._s[2419]! } - public var Paint_Masks: String { return self._s[2420]! } - public var Appearance_ThemeDayClassic: String { return self._s[2422]! } - public var StickerPack_ErrorNotFound: String { return self._s[2423]! } - public var Appearance_ThemeNight: String { return self._s[2424]! } - public var SecretTimer_ImageDescription: String { return self._s[2425]! } - public var Permissions_ContactsAllowInSettings: String { return self._s[2426]! } + public var Appearance_PreviewIncomingText: String { return self._s[2406]! } + public var Passport_Identity_DateOfBirthPlaceholder: String { return self._s[2407]! } + public var Notifications_ChannelNotificationsExceptionsHelp: String { return self._s[2408]! } + public var Notifications_GroupNotificationsAlert: String { return self._s[2409]! } + public var Paint_Masks: String { return self._s[2410]! } + public var Appearance_ThemeDayClassic: String { return self._s[2412]! } + public var StickerPack_ErrorNotFound: String { return self._s[2413]! } + public var Appearance_ThemeNight: String { return self._s[2414]! } + public var SecretTimer_ImageDescription: String { return self._s[2415]! } public func PINNED_CONTACT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2427]!, self._r[2427]!, [_1]) + return formatWithArgumentRanges(self._s[2416]!, self._r[2416]!, [_1]) } public func FileSize_KB(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2428]!, self._r[2428]!, [_0]) + return formatWithArgumentRanges(self._s[2417]!, self._r[2417]!, [_0]) } - public var Map_LiveLocationTitle: String { return self._s[2429]! } - public var Watch_GroupInfo_Title: String { return self._s[2430]! } - public var Channel_AdminLog_EmptyTitle: String { return self._s[2431]! } - public var PhotoEditor_Set: String { return self._s[2433]! } - public var LiveLocation_MenuStopAll: String { return self._s[2434]! } - public var SocksProxySetup_AddProxy: String { return self._s[2435]! } + public var Map_LiveLocationTitle: String { return self._s[2418]! } + public var Watch_GroupInfo_Title: String { return self._s[2419]! } + public var Channel_AdminLog_EmptyTitle: String { return self._s[2420]! } + public var PhotoEditor_Set: String { return self._s[2422]! } + public var LiveLocation_MenuStopAll: String { return self._s[2423]! } + public var SocksProxySetup_AddProxy: String { return self._s[2424]! } public func Notification_Invited(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2436]!, self._r[2436]!, [_0, _1]) + return formatWithArgumentRanges(self._s[2425]!, self._r[2425]!, [_0, _1]) } - public var Watch_AuthRequired: String { return self._s[2437]! } - public var Conversation_EncryptedDescription1: String { return self._s[2438]! } - public var AppleWatch_ReplyPresets: String { return self._s[2439]! } - public var Channel_Members_AddAdminErrorNotAMember: String { return self._s[2440]! } - public var Conversation_EncryptedDescription2: String { return self._s[2441]! } - public var SocksProxySetup_HostnamePlaceholder: String { return self._s[2442]! } - public var NetworkUsageSettings_MediaVideoDataSection: String { return self._s[2443]! } - public var Paint_Edit: String { return self._s[2444]! } - public var Passport_Language_nl: String { return self._s[2445]! } - public var LastSeen_Offline: String { return self._s[2446]! } - public var Login_CodeFloodError: String { return self._s[2447]! } - public var Conversation_EncryptedDescription3: String { return self._s[2448]! } - public var Notifications_Badge_IncludePublicGroups: String { return self._s[2450]! } - public var Conversation_EncryptedDescription4: String { return self._s[2451]! } - public var AppleWatch_Title: String { return self._s[2453]! } - public var Contacts_AccessDeniedError: String { return self._s[2454]! } - public var Conversation_StatusTyping: String { return self._s[2455]! } - public var Share_Title: String { return self._s[2456]! } - public var TwoStepAuth_ConfirmationTitle: String { return self._s[2457]! } - public var Passport_Identity_FilesTitle: String { return self._s[2458]! } - public var ChatSettings_Title: String { return self._s[2459]! } - public var AuthSessions_CurrentSession: String { return self._s[2460]! } - public var Notifications_GroupNotificationsExceptionsHelp: String { return self._s[2461]! } + public var Watch_AuthRequired: String { return self._s[2426]! } + public var Conversation_EncryptedDescription1: String { return self._s[2427]! } + public var AppleWatch_ReplyPresets: String { return self._s[2428]! } + public var Channel_Members_AddAdminErrorNotAMember: String { return self._s[2429]! } + public var Conversation_EncryptedDescription2: String { return self._s[2430]! } + public var SocksProxySetup_HostnamePlaceholder: String { return self._s[2431]! } + public var NetworkUsageSettings_MediaVideoDataSection: String { return self._s[2432]! } + public var Paint_Edit: String { return self._s[2433]! } + public var Passport_Language_nl: String { return self._s[2434]! } + public var LastSeen_Offline: String { return self._s[2435]! } + public var Login_CodeFloodError: String { return self._s[2436]! } + public var Conversation_EncryptedDescription3: String { return self._s[2437]! } + public var Notifications_Badge_IncludePublicGroups: String { return self._s[2439]! } + public var Conversation_EncryptedDescription4: String { return self._s[2440]! } + public var AppleWatch_Title: String { return self._s[2442]! } + public var Contacts_AccessDeniedError: String { return self._s[2443]! } + public var Conversation_StatusTyping: String { return self._s[2444]! } + public var Share_Title: String { return self._s[2446]! } + public var TwoStepAuth_ConfirmationTitle: String { return self._s[2447]! } + public var Passport_Identity_FilesTitle: String { return self._s[2448]! } + public var ChatSettings_Title: String { return self._s[2449]! } + public var AuthSessions_CurrentSession: String { return self._s[2450]! } + public var Notifications_GroupNotificationsExceptionsHelp: String { return self._s[2451]! } public func Notification_RenamedChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2462]!, self._r[2462]!, [_0]) + return formatWithArgumentRanges(self._s[2452]!, self._r[2452]!, [_0]) } - public var Watch_Microphone_Access: String { return self._s[2463]! } - public var Watch_Conversation_GroupInfo: String { return self._s[2464]! } - public var Conversation_LiveLocation: String { return self._s[2465]! } - public var UserInfo_Title: String { return self._s[2467]! } - public var Passport_Language_fr: String { return self._s[2468]! } - public var Passport_Identity_DoesNotExpire: String { return self._s[2469]! } - public var Map_LiveLocationGroupDescription: String { return self._s[2470]! } - public var Login_InfoHelp: String { return self._s[2471]! } - public var ShareMenu_ShareTo: String { return self._s[2473]! } - public var Message_PinnedGame: String { return self._s[2477]! } - public var Channel_AdminLog_CanSendMessages: String { return self._s[2478]! } + public var Watch_Microphone_Access: String { return self._s[2453]! } + public var Watch_Conversation_GroupInfo: String { return self._s[2454]! } + public var Conversation_LiveLocation: String { return self._s[2455]! } + public var UserInfo_Title: String { return self._s[2457]! } + public var Passport_Language_fr: String { return self._s[2458]! } + public var Passport_Identity_DoesNotExpire: String { return self._s[2459]! } + public var Map_LiveLocationGroupDescription: String { return self._s[2460]! } + public var Login_InfoHelp: String { return self._s[2461]! } + public var ShareMenu_ShareTo: String { return self._s[2463]! } + public var Message_PinnedGame: String { return self._s[2467]! } + public var Channel_AdminLog_CanSendMessages: String { return self._s[2468]! } public func AutoNightTheme_LocationHelp(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2479]!, self._r[2479]!, [_0, _1]) + return formatWithArgumentRanges(self._s[2469]!, self._r[2469]!, [_0, _1]) } - public var Notification_RenamedGroup: String { return self._s[2480]! } + public var Notification_RenamedGroup: String { return self._s[2470]! } public func Call_PrivacyErrorMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2481]!, self._r[2481]!, [_0]) + return formatWithArgumentRanges(self._s[2471]!, self._r[2471]!, [_0]) } - public var Passport_Address_Street: String { return self._s[2482]! } - public var Weekday_Thursday: String { return self._s[2483]! } - public var FastTwoStepSetup_HintPlaceholder: String { return self._s[2484]! } - public var PrivacySettings_DataSettings: String { return self._s[2485]! } - public var ChangePhoneNumberNumber_Title: String { return self._s[2486]! } - public var NotificationsSound_Bell: String { return self._s[2487]! } - public var Notifications_Badge_IncludeMutedChats: String { return self._s[2489]! } - public var TwoStepAuth_EnterPasswordInvalid: String { return self._s[2491]! } - public var DialogList_SearchSectionMessages: String { return self._s[2492]! } - public var Media_ShareThisVideo: String { return self._s[2493]! } - public var Call_ReportIncludeLogDescription: String { return self._s[2494]! } - public var Preview_DeleteGif: String { return self._s[2495]! } - public var Passport_Address_OneOfTypeTemporaryRegistration: String { return self._s[2496]! } - public var Weekday_Saturday: String { return self._s[2497]! } - public var UserInfo_DeleteContact: String { return self._s[2498]! } - public var Notifications_ResetAllNotifications: String { return self._s[2499]! } - public var SocksProxySetup_SaveProxy: String { return self._s[2500]! } - public var Passport_Identity_Country: String { return self._s[2501]! } - public var Notification_MessageLifetimeRemovedOutgoing: String { return self._s[2502]! } - public var Login_ContinueWithLocalization: String { return self._s[2503]! } - public var GroupInfo_AddParticipant: String { return self._s[2504]! } - public var Watch_Location_Current: String { return self._s[2505]! } - public var Checkout_NewCard_SaveInfoHelp: String { return self._s[2506]! } + public var Passport_Address_Street: String { return self._s[2472]! } + public var Weekday_Thursday: String { return self._s[2473]! } + public var FastTwoStepSetup_HintPlaceholder: String { return self._s[2474]! } + public var PrivacySettings_DataSettings: String { return self._s[2475]! } + public var ChangePhoneNumberNumber_Title: String { return self._s[2476]! } + public var NotificationsSound_Bell: String { return self._s[2477]! } + public var Notifications_Badge_IncludeMutedChats: String { return self._s[2479]! } + public var TwoStepAuth_EnterPasswordInvalid: String { return self._s[2481]! } + public var DialogList_SearchSectionMessages: String { return self._s[2482]! } + public var Media_ShareThisVideo: String { return self._s[2483]! } + public var Call_ReportIncludeLogDescription: String { return self._s[2484]! } + public var Preview_DeleteGif: String { return self._s[2485]! } + public var Passport_Address_OneOfTypeTemporaryRegistration: String { return self._s[2486]! } + public var Weekday_Saturday: String { return self._s[2487]! } + public var UserInfo_DeleteContact: String { return self._s[2488]! } + public var Notifications_ResetAllNotifications: String { return self._s[2489]! } + public var SocksProxySetup_SaveProxy: String { return self._s[2490]! } + public var Passport_Identity_Country: String { return self._s[2491]! } + public var Notification_MessageLifetimeRemovedOutgoing: String { return self._s[2492]! } + public var Login_ContinueWithLocalization: String { return self._s[2493]! } + public var GroupInfo_AddParticipant: String { return self._s[2494]! } + public var Watch_Location_Current: String { return self._s[2495]! } + public var Checkout_NewCard_SaveInfoHelp: String { return self._s[2496]! } public func Settings_ApplyProxyAlertCredentials(_ _1: String, _ _2: String, _ _3: String, _ _4: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2509]!, self._r[2509]!, [_1, _2, _3, _4]) + return formatWithArgumentRanges(self._s[2499]!, self._r[2499]!, [_1, _2, _3, _4]) } - public var MediaPicker_CameraRoll: String { return self._s[2510]! } - public var Channel_AdminLog_CanPinMessages: String { return self._s[2511]! } - public var KeyCommand_NewMessage: String { return self._s[2512]! } + public var MediaPicker_CameraRoll: String { return self._s[2500]! } + public var Channel_AdminLog_CanPinMessages: String { return self._s[2501]! } + public var KeyCommand_NewMessage: String { return self._s[2502]! } public func ChannelInfo_AddParticipantConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2504]!, self._r[2504]!, [_0]) + } + public var NetworkUsageSettings_TotalSection: String { return self._s[2505]! } + public func PINNED_AUDIO(_ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2506]!, self._r[2506]!, [_1]) + } + public var Privacy_GroupsAndChannels: String { return self._s[2507]! } + public func Time_PreciseDate_m12(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2509]!, self._r[2509]!, [_1, _2, _3]) + } + public var Conversation_DiscardVoiceMessageDescription: String { return self._s[2512]! } + public var Passport_Address_ScansHelp: String { return self._s[2513]! } + public func Notification_ChangedGroupPhoto(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2514]!, self._r[2514]!, [_0]) } - public var NetworkUsageSettings_TotalSection: String { return self._s[2515]! } - public func PINNED_AUDIO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2516]!, self._r[2516]!, [_1]) - } - public var Privacy_GroupsAndChannels: String { return self._s[2517]! } - public func Time_PreciseDate_m12(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2519]!, self._r[2519]!, [_1, _2, _3]) - } - public var Conversation_DiscardVoiceMessageDescription: String { return self._s[2522]! } - public var Passport_Address_ScansHelp: String { return self._s[2523]! } - public func Notification_ChangedGroupPhoto(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2524]!, self._r[2524]!, [_0]) - } - public var TwoStepAuth_RemovePassword: String { return self._s[2526]! } - public var Privacy_GroupsAndChannels_CustomHelp: String { return self._s[2528]! } - public var Passport_Identity_Gender: String { return self._s[2529]! } - public var UserInfo_NotificationsDisable: String { return self._s[2530]! } - public var Watch_UserInfo_Service: String { return self._s[2531]! } - public var Privacy_Calls_CustomHelp: String { return self._s[2533]! } - public var ChangePhoneNumberCode_Code: String { return self._s[2534]! } - public var UserInfo_Invite: String { return self._s[2535]! } - public var CheckoutInfo_ErrorStateInvalid: String { return self._s[2536]! } - public var DialogList_ClearHistoryConfirmation: String { return self._s[2538]! } - public var CheckoutInfo_ErrorEmailInvalid: String { return self._s[2540]! } - public var Month_GenNovember: String { return self._s[2541]! } - public var UserInfo_NotificationsEnable: String { return self._s[2542]! } + public var TwoStepAuth_RemovePassword: String { return self._s[2516]! } + public var Privacy_GroupsAndChannels_CustomHelp: String { return self._s[2519]! } + public var Passport_Identity_Gender: String { return self._s[2520]! } + public var UserInfo_NotificationsDisable: String { return self._s[2521]! } + public var Watch_UserInfo_Service: String { return self._s[2522]! } + public var Privacy_Calls_CustomHelp: String { return self._s[2524]! } + public var ChangePhoneNumberCode_Code: String { return self._s[2525]! } + public var UserInfo_Invite: String { return self._s[2526]! } + public var CheckoutInfo_ErrorStateInvalid: String { return self._s[2527]! } + public var DialogList_ClearHistoryConfirmation: String { return self._s[2529]! } + public var CheckoutInfo_ErrorEmailInvalid: String { return self._s[2531]! } + public var Month_GenNovember: String { return self._s[2532]! } + public var UserInfo_NotificationsEnable: String { return self._s[2533]! } public func Target_InviteToGroupConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2544]!, self._r[2544]!, [_0]) + return formatWithArgumentRanges(self._s[2535]!, self._r[2535]!, [_0]) } - public var Map_Map: String { return self._s[2545]! } - public var Map_OpenInMaps: String { return self._s[2546]! } - public var Common_OK: String { return self._s[2547]! } - public var TwoStepAuth_SetupHintTitle: String { return self._s[2548]! } - public var GroupInfo_LeftStatus: String { return self._s[2549]! } - public var Cache_ClearProgress: String { return self._s[2550]! } - public var Login_InvalidPhoneError: String { return self._s[2551]! } - public var Passport_Authorize: String { return self._s[2552]! } - public var Cache_ClearEmpty: String { return self._s[2553]! } - public var Map_Search: String { return self._s[2554]! } - public var Passport_Identity_Translations: String { return self._s[2555]! } - public var ChannelMembers_GroupAdminsTitle: String { return self._s[2557]! } + public var Map_Map: String { return self._s[2536]! } + public var ChatList_ReadAll: String { return self._s[2537]! } + public var Map_OpenInMaps: String { return self._s[2538]! } + public var Common_OK: String { return self._s[2539]! } + public var TwoStepAuth_SetupHintTitle: String { return self._s[2540]! } + public var GroupInfo_LeftStatus: String { return self._s[2541]! } + public var Cache_ClearProgress: String { return self._s[2542]! } + public var Login_InvalidPhoneError: String { return self._s[2543]! } + public var Passport_Authorize: String { return self._s[2544]! } + public var Cache_ClearEmpty: String { return self._s[2545]! } + public var Map_Search: String { return self._s[2546]! } + public var Passport_Identity_Translations: String { return self._s[2547]! } + public var ChannelMembers_GroupAdminsTitle: String { return self._s[2549]! } public func Channel_AdminLog_MessageRemovedGroupUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2558]!, self._r[2558]!, [_0]) + return formatWithArgumentRanges(self._s[2550]!, self._r[2550]!, [_0]) } public func ApplyLanguage_ChangeLanguageOfficialText(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2559]!, self._r[2559]!, [_1]) + return formatWithArgumentRanges(self._s[2551]!, self._r[2551]!, [_1]) } - public var ChatSettings_AutomaticPhotoDownload: String { return self._s[2560]! } - public var Group_ErrorAddTooMuchAdmins: String { return self._s[2562]! } - public var SocksProxySetup_Password: String { return self._s[2564]! } - public var Login_SelectCountry_Title: String { return self._s[2565]! } + public var ChatSettings_AutomaticPhotoDownload: String { return self._s[2552]! } + public var Group_ErrorAddTooMuchAdmins: String { return self._s[2554]! } + public var SocksProxySetup_Password: String { return self._s[2556]! } + public var Login_SelectCountry_Title: String { return self._s[2557]! } public func MESSAGE_PHOTOS(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2566]!, self._r[2566]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2558]!, self._r[2558]!, [_1, _2]) } - public var Notifications_GroupNotificationsHelp: String { return self._s[2567]! } - public var PhotoEditor_CropAspectRatioSquare: String { return self._s[2568]! } - public var Notification_CallOutgoing: String { return self._s[2569]! } - public var UserInfo_NotificationsDefault: String { return self._s[2570]! } - public var Weekday_ShortMonday: String { return self._s[2571]! } - public var Channel_Edit_AboutItem: String { return self._s[2572]! } - public var Checkout_Receipt_Title: String { return self._s[2573]! } - public var Login_InfoLastNamePlaceholder: String { return self._s[2574]! } - public var Channel_Members_AddMembersHelp: String { return self._s[2576]! } + public var Notifications_GroupNotificationsHelp: String { return self._s[2559]! } + public var PhotoEditor_CropAspectRatioSquare: String { return self._s[2560]! } + public var Notification_CallOutgoing: String { return self._s[2561]! } + public var UserInfo_NotificationsDefault: String { return self._s[2562]! } + public var Weekday_ShortMonday: String { return self._s[2563]! } + public var Channel_Edit_AboutItem: String { return self._s[2564]! } + public var Checkout_Receipt_Title: String { return self._s[2565]! } + public var Login_InfoLastNamePlaceholder: String { return self._s[2566]! } + public var Channel_Members_AddMembersHelp: String { return self._s[2568]! } public func MESSAGE_VIDEO_SECRET(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2577]!, self._r[2577]!, [_1]) + return formatWithArgumentRanges(self._s[2569]!, self._r[2569]!, [_1]) } - public var Settings_CopyPhoneNumber: String { return self._s[2578]! } - public var ReportPeer_Report: String { return self._s[2579]! } - public var Channel_EditMessageErrorGeneric: String { return self._s[2580]! } - public var Passport_Identity_TranslationsHelp: String { return self._s[2581]! } - public var LoginPassword_FloodError: String { return self._s[2582]! } - public var TwoStepAuth_SetupPasswordTitle: String { return self._s[2584]! } - public var PhotoEditor_DiscardChanges: String { return self._s[2585]! } - public var Group_UpgradeNoticeText2: String { return self._s[2586]! } + public var Settings_CopyPhoneNumber: String { return self._s[2570]! } + public var ReportPeer_Report: String { return self._s[2571]! } + public var Channel_EditMessageErrorGeneric: String { return self._s[2572]! } + public var Passport_Identity_TranslationsHelp: String { return self._s[2573]! } + public var LoginPassword_FloodError: String { return self._s[2574]! } + public var TwoStepAuth_SetupPasswordTitle: String { return self._s[2576]! } + public var PhotoEditor_DiscardChanges: String { return self._s[2577]! } + public var Group_UpgradeNoticeText2: String { return self._s[2578]! } public func PINNED_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2587]!, self._r[2587]!, [_1]) + return formatWithArgumentRanges(self._s[2579]!, self._r[2579]!, [_1]) } public func ChannelInfo_ChannelForbidden(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2588]!, self._r[2588]!, [_0]) + return formatWithArgumentRanges(self._s[2580]!, self._r[2580]!, [_0]) } - public var Conversation_ShareMyContactInfo: String { return self._s[2589]! } - public var SocksProxySetup_UsernamePlaceholder: String { return self._s[2590]! } + public var Conversation_ShareMyContactInfo: String { return self._s[2581]! } + public var SocksProxySetup_UsernamePlaceholder: String { return self._s[2582]! } public func CHANNEL_MESSAGE_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2591]!, self._r[2591]!, [_1]) + return formatWithArgumentRanges(self._s[2583]!, self._r[2583]!, [_1]) } - public var Contacts_PhoneNumber: String { return self._s[2592]! } - public var Group_Info_AdminLog: String { return self._s[2593]! } - public var Channel_AdminLogFilter_ChannelEventsInfo: String { return self._s[2594]! } - public var ChatSettings_AutoDownloadEnabled: String { return self._s[2595]! } - public var StickerPacksSettings_FeaturedPacks: String { return self._s[2596]! } - public var AuthSessions_LoggedIn: String { return self._s[2597]! } - public var Month_GenAugust: String { return self._s[2598]! } - public var Notification_CallCanceled: String { return self._s[2599]! } - public var Channel_Username_CreatePublicLinkHelp: String { return self._s[2600]! } - public var StickerPack_Send: String { return self._s[2601]! } - public var StickerSettings_MaskContextInfo: String { return self._s[2602]! } - public var Watch_Suggestion_HoldOn: String { return self._s[2603]! } + public var Contacts_PhoneNumber: String { return self._s[2584]! } + public var Group_Info_AdminLog: String { return self._s[2585]! } + public var Channel_AdminLogFilter_ChannelEventsInfo: String { return self._s[2586]! } + public var ChatSettings_AutoDownloadEnabled: String { return self._s[2587]! } + public var StickerPacksSettings_FeaturedPacks: String { return self._s[2588]! } + public var AuthSessions_LoggedIn: String { return self._s[2589]! } + public var Month_GenAugust: String { return self._s[2590]! } + public var Notification_CallCanceled: String { return self._s[2591]! } + public var Channel_Username_CreatePublicLinkHelp: String { return self._s[2592]! } + public var StickerPack_Send: String { return self._s[2593]! } + public var StickerSettings_MaskContextInfo: String { return self._s[2594]! } + public var Watch_Suggestion_HoldOn: String { return self._s[2595]! } public func PINNED_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2604]!, self._r[2604]!, [_1]) + return formatWithArgumentRanges(self._s[2596]!, self._r[2596]!, [_1]) } - public var PasscodeSettings_EncryptData: String { return self._s[2605]! } - public var Common_NotNow: String { return self._s[2606]! } - public var FastTwoStepSetup_PasswordConfirmationPlaceholder: String { return self._s[2608]! } - public var PasscodeSettings_Title: String { return self._s[2609]! } - public var StickerPack_BuiltinPackName: String { return self._s[2610]! } - public var Appearance_AccentColor: String { return self._s[2612]! } - public var Watch_Suggestion_BRB: String { return self._s[2613]! } + public var PasscodeSettings_EncryptData: String { return self._s[2597]! } + public var Common_NotNow: String { return self._s[2598]! } + public var FastTwoStepSetup_PasswordConfirmationPlaceholder: String { return self._s[2600]! } + public var PasscodeSettings_Title: String { return self._s[2601]! } + public var StickerPack_BuiltinPackName: String { return self._s[2603]! } + public var Appearance_AccentColor: String { return self._s[2605]! } + public var Watch_Suggestion_BRB: String { return self._s[2606]! } public func CHAT_MESSAGE_ROUND(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2614]!, self._r[2614]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2607]!, self._r[2607]!, [_1, _2]) } - public var Notifications_MessageNotificationsAlert: String { return self._s[2615]! } - public var Username_InvalidCharacters: String { return self._s[2616]! } - public var GroupInfo_LabelAdmin: String { return self._s[2617]! } - public var GroupInfo_Sound: String { return self._s[2618]! } - public var Channel_EditAdmin_PermissionBanUsers: String { return self._s[2619]! } - public var InfoPlist_NSCameraUsageDescription: String { return self._s[2620]! } - public var Passport_Address_AddRentalAgreement: String { return self._s[2621]! } - public var Wallpaper_PhotoLibrary: String { return self._s[2622]! } - public var Settings_About: String { return self._s[2623]! } - public var Privacy_Calls_IntegrationHelp: String { return self._s[2624]! } - public var ContactInfo_Job: String { return self._s[2625]! } + public var Notifications_MessageNotificationsAlert: String { return self._s[2608]! } + public var Username_InvalidCharacters: String { return self._s[2609]! } + public var GroupInfo_LabelAdmin: String { return self._s[2610]! } + public var GroupInfo_Sound: String { return self._s[2611]! } + public var Channel_EditAdmin_PermissionBanUsers: String { return self._s[2612]! } + public var InfoPlist_NSCameraUsageDescription: String { return self._s[2613]! } + public var Passport_Address_AddRentalAgreement: String { return self._s[2614]! } + public var Wallpaper_PhotoLibrary: String { return self._s[2615]! } + public var Settings_About: String { return self._s[2616]! } + public var Privacy_Calls_IntegrationHelp: String { return self._s[2617]! } + public var ContactInfo_Job: String { return self._s[2618]! } public func CHAT_LEFT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2626]!, self._r[2626]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2619]!, self._r[2619]!, [_1, _2]) } - public var LoginPassword_ForgotPassword: String { return self._s[2627]! } - public var Passport_Address_AddTemporaryRegistration: String { return self._s[2629]! } + public var LoginPassword_ForgotPassword: String { return self._s[2620]! } + public var Passport_Address_AddTemporaryRegistration: String { return self._s[2622]! } public func Map_LiveLocationShortHour(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2630]!, self._r[2630]!, [_0]) + return formatWithArgumentRanges(self._s[2623]!, self._r[2623]!, [_0]) } - public var Appearance_Preview: String { return self._s[2631]! } + public var Appearance_Preview: String { return self._s[2624]! } public func DialogList_AwaitingEncryption(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2632]!, self._r[2632]!, [_0]) + return formatWithArgumentRanges(self._s[2625]!, self._r[2625]!, [_0]) } - public var Passport_Identity_TypePassport: String { return self._s[2633]! } - public var ChatSettings_Appearance: String { return self._s[2634]! } - public var Tour_Title1: String { return self._s[2635]! } - public var Conversation_EditingCaptionPanelTitle: String { return self._s[2637]! } + public var Passport_Identity_TypePassport: String { return self._s[2626]! } + public var ChatSettings_Appearance: String { return self._s[2627]! } + public var Tour_Title1: String { return self._s[2628]! } + public var Conversation_EditingCaptionPanelTitle: String { return self._s[2630]! } public func Notifications_ExceptionsChangeSound(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2638]!, self._r[2638]!, [_0]) + return formatWithArgumentRanges(self._s[2631]!, self._r[2631]!, [_0]) } - public var Conversation_LinkDialogCopy: String { return self._s[2639]! } + public var Conversation_LinkDialogCopy: String { return self._s[2632]! } public func Notification_PinnedLocationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2640]!, self._r[2640]!, [_0]) + return formatWithArgumentRanges(self._s[2633]!, self._r[2633]!, [_0]) } public func Notification_PinnedPhotoMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2641]!, self._r[2641]!, [_0]) + return formatWithArgumentRanges(self._s[2634]!, self._r[2634]!, [_0]) } public func DownloadingStatus(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2642]!, self._r[2642]!, [_0, _1]) + return formatWithArgumentRanges(self._s[2635]!, self._r[2635]!, [_0, _1]) } - public var Calls_All: String { return self._s[2643]! } + public var Calls_All: String { return self._s[2636]! } public func Channel_MessageTitleUpdated(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2644]!, self._r[2644]!, [_0]) + return formatWithArgumentRanges(self._s[2637]!, self._r[2637]!, [_0]) } - public var Call_CallAgain: String { return self._s[2645]! } - public var Message_VideoExpired: String { return self._s[2646]! } - public var TwoStepAuth_RecoveryCodeHelp: String { return self._s[2647]! } + public var Call_CallAgain: String { return self._s[2638]! } + public var Message_VideoExpired: String { return self._s[2639]! } + public var TwoStepAuth_RecoveryCodeHelp: String { return self._s[2640]! } public func Channel_AdminLog_MessagePromotedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2648]!, self._r[2648]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2641]!, self._r[2641]!, [_1, _2]) } - public var UserInfo_SendMessage: String { return self._s[2649]! } + public var UserInfo_SendMessage: String { return self._s[2642]! } public func Channel_Username_LinkHint(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2650]!, self._r[2650]!, [_0]) + return formatWithArgumentRanges(self._s[2643]!, self._r[2643]!, [_0]) } public func AutoDownloadSettings_UpTo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2651]!, self._r[2651]!, [_0]) + return formatWithArgumentRanges(self._s[2644]!, self._r[2644]!, [_0]) } - public var Settings_ViewPhoto: String { return self._s[2652]! } - public var Paint_RecentStickers: String { return self._s[2653]! } - public var TwoStepAuth_HintPlaceholder: String { return self._s[2654]! } + public var Settings_ViewPhoto: String { return self._s[2645]! } + public var Paint_RecentStickers: String { return self._s[2646]! } + public var TwoStepAuth_HintPlaceholder: String { return self._s[2647]! } public func Passport_PrivacyPolicy(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2655]!, self._r[2655]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2648]!, self._r[2648]!, [_1, _2]) } - public var ApplyLanguage_ApplyLanguageAction: String { return self._s[2656]! } - public var TwoStepAuth_EnabledSuccess: String { return self._s[2657]! } - public var Login_CallRequestState3: String { return self._s[2658]! } - public var Channel_Edit_LinkItem: String { return self._s[2659]! } - public var CallSettings_Title: String { return self._s[2661]! } - public var ChangePhoneNumberNumber_Help: String { return self._s[2662]! } - public var Passport_InfoTitle: String { return self._s[2663]! } - public var Watch_Suggestion_Thanks: String { return self._s[2664]! } - public var Channel_Moderator_Title: String { return self._s[2665]! } - public var Message_PinnedPhotoMessage: String { return self._s[2666]! } - public var Notification_SecretChatScreenshot: String { return self._s[2667]! } + public var ApplyLanguage_ApplyLanguageAction: String { return self._s[2649]! } + public var TwoStepAuth_EnabledSuccess: String { return self._s[2650]! } + public var Login_CallRequestState3: String { return self._s[2651]! } + public var Channel_Edit_LinkItem: String { return self._s[2652]! } + public var CallSettings_Title: String { return self._s[2654]! } + public var ChangePhoneNumberNumber_Help: String { return self._s[2655]! } + public var Passport_InfoTitle: String { return self._s[2656]! } + public var Watch_Suggestion_Thanks: String { return self._s[2657]! } + public var Channel_Moderator_Title: String { return self._s[2658]! } + public var Message_PinnedPhotoMessage: String { return self._s[2659]! } + public var Notification_SecretChatScreenshot: String { return self._s[2660]! } public func Conversation_DeleteMessagesFor(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2668]!, self._r[2668]!, [_0]) + return formatWithArgumentRanges(self._s[2661]!, self._r[2661]!, [_0]) } - public var Activity_UploadingDocument: String { return self._s[2669]! } - public var Watch_ChatList_NoConversationsText: String { return self._s[2670]! } - public var ReportPeer_AlertSuccess: String { return self._s[2671]! } - public var Tour_Text4: String { return self._s[2672]! } - public var Channel_Info_Description: String { return self._s[2673]! } - public var AccessDenied_LocationTracking: String { return self._s[2675]! } - public var Watch_Compose_Send: String { return self._s[2676]! } - public var SocksProxySetup_UseForCallsHelp: String { return self._s[2677]! } - public var Preview_CopyAddress: String { return self._s[2678]! } - public var Settings_BlockedUsers: String { return self._s[2679]! } - public var Month_ShortAugust: String { return self._s[2680]! } - public var Passport_Identity_MainPage: String { return self._s[2681]! } - public var Passport_FieldAddress: String { return self._s[2683]! } - public var Channel_AdminLogFilter_AdminsTitle: String { return self._s[2684]! } - public var Channel_EditAdmin_PermissionChangeInfo: String { return self._s[2685]! } - public var Notifications_ResetAllNotificationsHelp: String { return self._s[2686]! } - public var DialogList_EncryptionRejected: String { return self._s[2687]! } - public var Target_InviteToGroupErrorAlreadyInvited: String { return self._s[2689]! } - public var AccessDenied_CameraRestricted: String { return self._s[2690]! } - public var Watch_Message_ForwardedFrom: String { return self._s[2691]! } - public var CheckoutInfo_ShippingInfoCountryPlaceholder: String { return self._s[2693]! } - public var Channel_AboutItem: String { return self._s[2694]! } - public var PhotoEditor_CurvesGreen: String { return self._s[2695]! } - public var Month_GenJuly: String { return self._s[2696]! } - public var ContactInfo_URLLabelHomepage: String { return self._s[2697]! } - public var PrivacyPolicy_DeclineDeclineAndDelete: String { return self._s[2698]! } + public var Activity_UploadingDocument: String { return self._s[2662]! } + public var Watch_ChatList_NoConversationsText: String { return self._s[2663]! } + public var ReportPeer_AlertSuccess: String { return self._s[2664]! } + public var Tour_Text4: String { return self._s[2665]! } + public var Channel_Info_Description: String { return self._s[2666]! } + public var AccessDenied_LocationTracking: String { return self._s[2668]! } + public var Watch_Compose_Send: String { return self._s[2669]! } + public var SocksProxySetup_UseForCallsHelp: String { return self._s[2670]! } + public var Preview_CopyAddress: String { return self._s[2671]! } + public var Settings_BlockedUsers: String { return self._s[2672]! } + public var Month_ShortAugust: String { return self._s[2673]! } + public var Passport_Identity_MainPage: String { return self._s[2674]! } + public var Passport_FieldAddress: String { return self._s[2676]! } + public var Channel_AdminLogFilter_AdminsTitle: String { return self._s[2677]! } + public var Channel_EditAdmin_PermissionChangeInfo: String { return self._s[2678]! } + public var Notifications_ResetAllNotificationsHelp: String { return self._s[2679]! } + public var DialogList_EncryptionRejected: String { return self._s[2680]! } + public var Target_InviteToGroupErrorAlreadyInvited: String { return self._s[2682]! } + public var AccessDenied_CameraRestricted: String { return self._s[2683]! } + public var Watch_Message_ForwardedFrom: String { return self._s[2684]! } + public var CheckoutInfo_ShippingInfoCountryPlaceholder: String { return self._s[2686]! } + public var Channel_AboutItem: String { return self._s[2687]! } + public var PhotoEditor_CurvesGreen: String { return self._s[2688]! } + public var Month_GenJuly: String { return self._s[2689]! } + public var ContactInfo_URLLabelHomepage: String { return self._s[2690]! } + public var PrivacyPolicy_DeclineDeclineAndDelete: String { return self._s[2691]! } public func DialogList_SingleUploadingFileSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2693]!, self._r[2693]!, [_0]) + } + public var ChannelIntro_CreateChannel: String { return self._s[2695]! } + public var Channel_Management_AddModerator: String { return self._s[2696]! } + public var Common_ChoosePhoto: String { return self._s[2697]! } + public var Conversation_Pin: String { return self._s[2698]! } + public func Login_ResetAccountProtected_Text(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2700]!, self._r[2700]!, [_0]) } - public var ChannelIntro_CreateChannel: String { return self._s[2702]! } - public var Channel_Management_AddModerator: String { return self._s[2703]! } - public var Common_ChoosePhoto: String { return self._s[2704]! } - public var Conversation_Pin: String { return self._s[2705]! } - public func Login_ResetAccountProtected_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2707]!, self._r[2707]!, [_0]) - } public func Channel_AdminLog_EmptyFilterQueryText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2708]!, self._r[2708]!, [_0]) + return formatWithArgumentRanges(self._s[2701]!, self._r[2701]!, [_0]) } - public var Camera_TapAndHoldForVideo: String { return self._s[2709]! } - public var Notification_Exceptions_AlwaysOn: String { return self._s[2710]! } - public var Bot_DescriptionTitle: String { return self._s[2711]! } - public var FeaturedStickerPacks_Title: String { return self._s[2712]! } - public var Map_OpenInGoogleMaps: String { return self._s[2714]! } - public var Notification_MessageLifetime5s: String { return self._s[2715]! } - public var Contacts_Title: String { return self._s[2718]! } - public var TwoStepAuth_DisableSuccess: String { return self._s[2719]! } + public var Camera_TapAndHoldForVideo: String { return self._s[2702]! } + public var Notification_Exceptions_AlwaysOn: String { return self._s[2703]! } + public var Bot_DescriptionTitle: String { return self._s[2704]! } + public var FeaturedStickerPacks_Title: String { return self._s[2705]! } + public var Map_OpenInGoogleMaps: String { return self._s[2707]! } + public var Notification_MessageLifetime5s: String { return self._s[2708]! } + public var Contacts_Title: String { return self._s[2711]! } + public var TwoStepAuth_DisableSuccess: String { return self._s[2712]! } public func MESSAGES(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2720]!, self._r[2720]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2713]!, self._r[2713]!, [_1, _2]) } - public var Channel_Management_AddModeratorHelp: String { return self._s[2723]! } - public var Permissions_NotificationsAllowInSettings: String { return self._s[2724]! } + public var Channel_Management_AddModeratorHelp: String { return self._s[2716]! } public func CHAT_MESSAGE_FWDS(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2725]!, self._r[2725]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2717]!, self._r[2717]!, [_1, _2, _3]) } - public var Conversation_MessageDialogEdit: String { return self._s[2726]! } - public var PrivacyLastSeenSettings_Title: String { return self._s[2727]! } - public var Notifications_ClassicTones: String { return self._s[2729]! } - public var Conversation_LinkDialogOpen: String { return self._s[2730]! } - public var Channel_Info_Subscribers: String { return self._s[2731]! } - public var NotificationsSound_Input: String { return self._s[2732]! } - public var Conversation_ClousStorageInfo_Description4: String { return self._s[2733]! } - public var Privacy_Calls_AlwaysAllow: String { return self._s[2734]! } - public var Privacy_PaymentsClearInfoHelp: String { return self._s[2736]! } - public var Notification_MessageLifetime1h: String { return self._s[2737]! } + public var Conversation_MessageDialogEdit: String { return self._s[2718]! } + public var PrivacyLastSeenSettings_Title: String { return self._s[2719]! } + public var Notifications_ClassicTones: String { return self._s[2721]! } + public var Conversation_LinkDialogOpen: String { return self._s[2722]! } + public var Channel_Info_Subscribers: String { return self._s[2723]! } + public var NotificationsSound_Input: String { return self._s[2724]! } + public var Conversation_ClousStorageInfo_Description4: String { return self._s[2725]! } + public var Privacy_Calls_AlwaysAllow: String { return self._s[2726]! } + public var Privacy_PaymentsClearInfoHelp: String { return self._s[2728]! } + public var Notification_MessageLifetime1h: String { return self._s[2729]! } public func Notification_CreatedChatWithTitle(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2738]!, self._r[2738]!, [_0, _1]) + return formatWithArgumentRanges(self._s[2730]!, self._r[2730]!, [_0, _1]) } - public var CheckoutInfo_ReceiverInfoEmail: String { return self._s[2739]! } - public var LastSeen_Lately: String { return self._s[2740]! } - public var Month_ShortApril: String { return self._s[2741]! } - public var ConversationProfile_ErrorCreatingConversation: String { return self._s[2742]! } + public var CheckoutInfo_ReceiverInfoEmail: String { return self._s[2731]! } + public var LastSeen_Lately: String { return self._s[2732]! } + public var Month_ShortApril: String { return self._s[2733]! } + public var ConversationProfile_ErrorCreatingConversation: String { return self._s[2734]! } public func PHONE_CALL_MISSED(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2743]!, self._r[2743]!, [_1]) + return formatWithArgumentRanges(self._s[2735]!, self._r[2735]!, [_1]) } public func Conversation_Kilobytes(_ _0: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2744]!, self._r[2744]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[2736]!, self._r[2736]!, ["\(_0)"]) } - public var Group_ErrorAddBlocked: String { return self._s[2745]! } - public var TwoStepAuth_AdditionalPassword: String { return self._s[2747]! } - public var MediaPicker_Videos: String { return self._s[2748]! } - public var Notification_PassportValueProofOfIdentity: String { return self._s[2749]! } - public var BlockedUsers_AddNew: String { return self._s[2750]! } - public var StickerPacksSettings_StickerPacksSection: String { return self._s[2751]! } - public var Channel_NotificationLoading: String { return self._s[2752]! } - public var Passport_Language_da: String { return self._s[2754]! } - public var Passport_Address_Country: String { return self._s[2755]! } + public var Group_ErrorAddBlocked: String { return self._s[2737]! } + public var TwoStepAuth_AdditionalPassword: String { return self._s[2739]! } + public var MediaPicker_Videos: String { return self._s[2740]! } + public var Notification_PassportValueProofOfIdentity: String { return self._s[2741]! } + public var BlockedUsers_AddNew: String { return self._s[2742]! } + public var StickerPacksSettings_StickerPacksSection: String { return self._s[2743]! } + public var Channel_NotificationLoading: String { return self._s[2744]! } + public var Passport_Language_da: String { return self._s[2746]! } + public var Passport_Address_Country: String { return self._s[2747]! } public func CHAT_RETURNED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2756]!, self._r[2756]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2748]!, self._r[2748]!, [_1, _2]) } - public var PhotoEditor_ShadowsTint: String { return self._s[2758]! } - public var ExplicitContent_AlertTitle: String { return self._s[2760]! } - public var Channel_AdminLogFilter_EventsLeaving: String { return self._s[2761]! } - public var Map_LiveLocationFor8Hours: String { return self._s[2762]! } - public var StickerPack_HideStickers: String { return self._s[2763]! } - public var Checkout_EnterPassword: String { return self._s[2764]! } - public var UserInfo_NotificationsEnabled: String { return self._s[2765]! } - public var InfoPlist_NSLocationAlwaysUsageDescription: String { return self._s[2766]! } - public var SocksProxySetup_ProxyDetailsTitle: String { return self._s[2767]! } - public var Appearance_ReduceMotionInfo: String { return self._s[2768]! } - public var Weekday_ShortTuesday: String { return self._s[2769]! } - public var Notification_CallIncomingShort: String { return self._s[2770]! } - public var ConvertToSupergroup_Note: String { return self._s[2771]! } - public var Login_SendCodeViaSms: String { return self._s[2772]! } - public var DialogList_Read: String { return self._s[2773]! } - public var Conversation_EmptyPlaceholder: String { return self._s[2774]! } + public var PhotoEditor_ShadowsTint: String { return self._s[2750]! } + public var ExplicitContent_AlertTitle: String { return self._s[2752]! } + public var Channel_AdminLogFilter_EventsLeaving: String { return self._s[2753]! } + public var Map_LiveLocationFor8Hours: String { return self._s[2754]! } + public var StickerPack_HideStickers: String { return self._s[2755]! } + public var Checkout_EnterPassword: String { return self._s[2756]! } + public var UserInfo_NotificationsEnabled: String { return self._s[2757]! } + public var InfoPlist_NSLocationAlwaysUsageDescription: String { return self._s[2758]! } + public var SocksProxySetup_ProxyDetailsTitle: String { return self._s[2759]! } + public var Appearance_ReduceMotionInfo: String { return self._s[2760]! } + public var Weekday_ShortTuesday: String { return self._s[2761]! } + public var Notification_CallIncomingShort: String { return self._s[2762]! } + public var ConvertToSupergroup_Note: String { return self._s[2763]! } + public var Login_SendCodeViaSms: String { return self._s[2764]! } + public var DialogList_Read: String { return self._s[2765]! } + public var Conversation_EmptyPlaceholder: String { return self._s[2766]! } public func Passport_Email_CodeHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2775]!, self._r[2775]!, [_0]) + return formatWithArgumentRanges(self._s[2767]!, self._r[2767]!, [_0]) } - public var Username_Help: String { return self._s[2776]! } - public var StickerSettings_ContextHide: String { return self._s[2777]! } - public var Media_ShareThisPhoto: String { return self._s[2780]! } - public var Contacts_ShareTelegram: String { return self._s[2781]! } - public var AutoNightTheme_Scheduled: String { return self._s[2782]! } - public var Weekday_Sunday: String { return self._s[2783]! } - public var PrivacySettings_PasscodeAndFaceId: String { return self._s[2785]! } - public var Settings_ChatBackground: String { return self._s[2786]! } - public var Login_TermsOfServiceDecline: String { return self._s[2788]! } - public func StickerPack_RemoveMaskCount(_ value: Int32) -> String { + public var Username_Help: String { return self._s[2768]! } + public var StickerSettings_ContextHide: String { return self._s[2769]! } + public var Media_ShareThisPhoto: String { return self._s[2772]! } + public var Contacts_ShareTelegram: String { return self._s[2773]! } + public var AutoNightTheme_Scheduled: String { return self._s[2774]! } + public var Weekday_Sunday: String { return self._s[2775]! } + public var PrivacySettings_PasscodeAndFaceId: String { return self._s[2777]! } + public var Settings_ChatBackground: String { return self._s[2778]! } + public var Login_TermsOfServiceDecline: String { return self._s[2780]! } + public func ServiceMessage_GameScoreSelfSimple(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[0 * 6 + Int(form.rawValue)]!, "\(value)") } - public func MessageTimer_ShortSeconds(_ value: Int32) -> String { + public func Watch_UserInfo_Mute(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[1 * 6 + Int(form.rawValue)]!, "\(value)") } - public func SharedMedia_Generic(_ value: Int32) -> String { + public func MessageTimer_ShortSeconds(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[2 * 6 + Int(form.rawValue)]!, "\(value)") } - public func MuteExpires_Hours(_ value: Int32) -> String { + public func Notification_GameScoreSelfSimple(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[3 * 6 + Int(form.rawValue)]!, "\(value)") } - public func LiveLocation_MenuChatsCount(_ value: Int32) -> String { + public func ForwardedAuthorsOthers(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[4 * 6 + Int(form.rawValue)]!, "\(value)") } - public func MessageTimer_Weeks(_ value: Int32) -> String { + public func Conversation_StatusMembers(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[5 * 6 + Int(form.rawValue)]!, "\(value)") } - public func Conversation_StatusMembers(_ value: Int32) -> String { + public func StickerPack_RemoveMaskCount(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[6 * 6 + Int(form.rawValue)]!, "\(value)") } - public func AttachmentMenu_SendGif(_ value: Int32) -> String { + public func AttachmentMenu_SendPhoto(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[7 * 6 + Int(form.rawValue)]!, "\(value)") } - public func MuteFor_Days(_ value: Int32) -> String { + public func Notification_GameScoreExtended(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[8 * 6 + Int(form.rawValue)]!, "\(value)") } - public func ForwardedLocations(_ value: Int32) -> String { + public func Forward_ConfirmMultipleFiles(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[9 * 6 + Int(form.rawValue)]!, "\(value)") } - public func ForwardedVideos(_ value: Int32) -> String { + public func MuteExpires_Days(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[10 * 6 + Int(form.rawValue)]!, "\(value)") } - public func StickerPack_RemoveStickerCount(_ value: Int32) -> String { + public func PasscodeSettings_FailedAttempts(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[11 * 6 + Int(form.rawValue)]!, "\(value)") } - public func Forward_ConfirmMultipleFiles(_ value: Int32) -> String { + public func MuteFor_Days(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[12 * 6 + Int(form.rawValue)]!, "\(value)") } - public func ForwardedMessages(_ value: Int32) -> String { + public func MuteExpires_Minutes(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[13 * 6 + Int(form.rawValue)]!, "\(value)") } - public func AttachmentMenu_SendPhoto(_ value: Int32) -> String { + public func MessageTimer_Hours(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[14 * 6 + Int(form.rawValue)]!, "\(value)") } - public func LastSeen_HoursAgo(_ value: Int32) -> String { + public func SharedMedia_DeleteItemsConfirmation(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[15 * 6 + Int(form.rawValue)]!, "\(value)") } - public func Conversation_LiveLocationMembersCount(_ value: Int32) -> String { + public func SharedMedia_Link(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[16 * 6 + Int(form.rawValue)]!, "\(value)") } - public func ForwardedStickers(_ value: Int32) -> String { + public func StickerPack_AddStickerCount(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[17 * 6 + Int(form.rawValue)]!, "\(value)") } - public func QuickSend_Photos(_ value: Int32) -> String { + public func Call_Seconds(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[18 * 6 + Int(form.rawValue)]!, "\(value)") } - public func ServiceMessage_GameScoreSelfSimple(_ value: Int32) -> String { + public func ForwardedStickers(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[19 * 6 + Int(form.rawValue)]!, "\(value)") } - public func ForwardedContacts(_ value: Int32) -> String { + public func SharedMedia_Generic(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[20 * 6 + Int(form.rawValue)]!, "\(value)") } - public func MessageTimer_ShortWeeks(_ value: Int32) -> String { + public func Map_ETAHours(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[21 * 6 + Int(form.rawValue)]!, "\(value)") } - public func MuteExpires_Days(_ value: Int32) -> String { + public func Watch_LastSeen_MinutesAgo(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[22 * 6 + Int(form.rawValue)]!, "\(value)") } - public func SharedMedia_DeleteItemsConfirmation(_ value: Int32) -> String { + public func LiveLocation_MenuChatsCount(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[23 * 6 + Int(form.rawValue)]!, "\(value)") } - public func SharedMedia_Photo(_ value: Int32) -> String { + public func ForwardedAudios(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[24 * 6 + Int(form.rawValue)]!, "\(value)") } - public func MessageTimer_ShortDays(_ value: Int32) -> String { + public func SharedMedia_Video(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[25 * 6 + Int(form.rawValue)]!, "\(value)") } - public func ForwardedVideoMessages(_ value: Int32) -> String { + public func PrivacyLastSeenSettings_AddUsers(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[26 * 6 + Int(form.rawValue)]!, "\(value)") } - public func Call_Minutes(_ value: Int32) -> String { + public func Conversation_StatusOnline(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[27 * 6 + Int(form.rawValue)]!, "\(value)") } - public func Map_ETAHours(_ value: Int32) -> String { + public func MessageTimer_ShortDays(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[28 * 6 + Int(form.rawValue)]!, "\(value)") } - public func Notifications_ExceptionMuteExpires_Days(_ value: Int32) -> String { + public func ForwardedVideos(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[29 * 6 + Int(form.rawValue)]!, "\(value)") } - public func Notifications_Exceptions(_ value: Int32) -> String { + public func MessageTimer_ShortWeeks(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[30 * 6 + Int(form.rawValue)]!, "\(value)") } - public func MuteFor_Hours(_ value: Int32) -> String { + public func Notifications_ExceptionMuteExpires_Days(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[31 * 6 + Int(form.rawValue)]!, "\(value)") } - public func Map_ETAMinutes(_ value: Int32) -> String { + public func ForwardedLocations(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[32 * 6 + Int(form.rawValue)]!, "\(value)") } - public func LiveLocationUpdated_MinutesAgo(_ value: Int32) -> String { + public func ServiceMessage_GameScoreExtended(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[33 * 6 + Int(form.rawValue)]!, "\(value)") } - public func Watch_UserInfo_Mute(_ value: Int32) -> String { + public func MuteFor_Hours(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[34 * 6 + Int(form.rawValue)]!, "\(value)") } - public func Media_ShareVideo(_ value: Int32) -> String { + public func ForwardedContacts(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[35 * 6 + Int(form.rawValue)]!, "\(value)") } - public func ServiceMessage_GameScoreSelfExtended(_ value: Int32) -> String { + public func AttachmentMenu_SendItem(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[36 * 6 + Int(form.rawValue)]!, "\(value)") } - public func MessageTimer_ShortMinutes(_ value: Int32) -> String { + public func Notifications_ExceptionMuteExpires_Hours(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[37 * 6 + Int(form.rawValue)]!, "\(value)") } - public func ServiceMessage_GameScoreSimple(_ value: Int32) -> String { + public func Notification_GameScoreSimple(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[38 * 6 + Int(form.rawValue)]!, "\(value)") } - public func MessageTimer_Months(_ value: Int32) -> String { + public func ChatList_DeleteConfirmation(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[39 * 6 + Int(form.rawValue)]!, "\(value)") } - public func ForwardedAuthorsOthers(_ value: Int32) -> String { + public func Conversation_LiveLocationMembersCount(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[40 * 6 + Int(form.rawValue)]!, "\(value)") } - public func DialogList_LiveLocationChatsCount(_ value: Int32) -> String { + public func MessageTimer_Months(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[41 * 6 + Int(form.rawValue)]!, "\(value)") } - public func MessageTimer_Minutes(_ value: Int32) -> String { + public func Notification_GameScoreSelfExtended(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[42 * 6 + Int(form.rawValue)]!, "\(value)") } - public func Notification_GameScoreSimple(_ value: Int32) -> String { + public func UserCount(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[43 * 6 + Int(form.rawValue)]!, "\(value)") } - public func Notification_GameScoreSelfExtended(_ value: Int32) -> String { + public func StickerPack_StickerCount(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[44 * 6 + Int(form.rawValue)]!, "\(value)") } - public func Watch_LastSeen_HoursAgo(_ value: Int32) -> String { + public func GroupInfo_ParticipantCount(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[45 * 6 + Int(form.rawValue)]!, "\(value)") } - public func LastSeen_MinutesAgo(_ value: Int32) -> String { + public func Conversation_StatusSubscribers(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[46 * 6 + Int(form.rawValue)]!, "\(value)") } - public func Call_ShortSeconds(_ value: Int32) -> String { + public func LiveLocationUpdated_MinutesAgo(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[47 * 6 + Int(form.rawValue)]!, "\(value)") } - public func Media_SharePhoto(_ value: Int32) -> String { + public func AttachmentMenu_SendVideo(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[48 * 6 + Int(form.rawValue)]!, "\(value)") } - public func ServiceMessage_GameScoreExtended(_ value: Int32) -> String { + public func MessageTimer_Seconds(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[49 * 6 + Int(form.rawValue)]!, "\(value)") } - public func Call_ShortMinutes(_ value: Int32) -> String { + public func InviteText_ContactsCountText(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[50 * 6 + Int(form.rawValue)]!, "\(value)") } - public func MuteExpires_Minutes(_ value: Int32) -> String { + public func Invitation_Members(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[51 * 6 + Int(form.rawValue)]!, "\(value)") } - public func ForwardedAudios(_ value: Int32) -> String { + public func Call_Minutes(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[52 * 6 + Int(form.rawValue)]!, "\(value)") } @@ -3361,134 +3347,138 @@ public final class PresentationStrings { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[53 * 6 + Int(form.rawValue)]!, "\(value)") } - public func StickerPack_AddStickerCount(_ value: Int32) -> String { + public func Watch_LastSeen_HoursAgo(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[54 * 6 + Int(form.rawValue)]!, "\(value)") } - public func Watch_LastSeen_MinutesAgo(_ value: Int32) -> String { + public func StickerPack_RemoveStickerCount(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[55 * 6 + Int(form.rawValue)]!, "\(value)") } - public func MessageTimer_Hours(_ value: Int32) -> String { + public func MessageTimer_Minutes(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[56 * 6 + Int(form.rawValue)]!, "\(value)") } - public func SharedMedia_File(_ value: Int32) -> String { + public func SharedMedia_Photo(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[57 * 6 + Int(form.rawValue)]!, "\(value)") } - public func Notifications_ExceptionMuteExpires_Minutes(_ value: Int32) -> String { + public func ForwardedMessages(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[58 * 6 + Int(form.rawValue)]!, "\(value)") } - public func AttachmentMenu_SendVideo(_ value: Int32) -> String { + public func MessageTimer_Days(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[59 * 6 + Int(form.rawValue)]!, "\(value)") } - public func MessageTimer_ShortHours(_ value: Int32) -> String { + public func ForwardedVideoMessages(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[60 * 6 + Int(form.rawValue)]!, "\(value)") } - public func SharedMedia_Video(_ value: Int32) -> String { + public func LastSeen_MinutesAgo(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[61 * 6 + Int(form.rawValue)]!, "\(value)") } - public func Call_Seconds(_ value: Int32) -> String { + public func SharedMedia_File(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[62 * 6 + Int(form.rawValue)]!, "\(value)") } - public func MessageTimer_Seconds(_ value: Int32) -> String { + public func AttachmentMenu_SendGif(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[63 * 6 + Int(form.rawValue)]!, "\(value)") } - public func Conversation_StatusSubscribers(_ value: Int32) -> String { + public func ForwardedPhotos(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[64 * 6 + Int(form.rawValue)]!, "\(value)") } - public func Notification_GameScoreSelfSimple(_ value: Int32) -> String { + public func ServiceMessage_GameScoreSelfExtended(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[65 * 6 + Int(form.rawValue)]!, "\(value)") } - public func SharedMedia_Link(_ value: Int32) -> String { + public func Media_ShareItem(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[66 * 6 + Int(form.rawValue)]!, "\(value)") } - public func StickerPack_AddMaskCount(_ value: Int32) -> String { + public func Notifications_Exceptions(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[67 * 6 + Int(form.rawValue)]!, "\(value)") } - public func MessageTimer_Years(_ value: Int32) -> String { + public func LastSeen_HoursAgo(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[68 * 6 + Int(form.rawValue)]!, "\(value)") } - public func GroupInfo_ParticipantCount(_ value: Int32) -> String { + public func StickerPack_AddMaskCount(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[69 * 6 + Int(form.rawValue)]!, "\(value)") } - public func ForwardedPhotos(_ value: Int32) -> String { + public func Media_ShareVideo(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[70 * 6 + Int(form.rawValue)]!, "\(value)") } - public func UserCount(_ value: Int32) -> String { + public func Call_ShortMinutes(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[71 * 6 + Int(form.rawValue)]!, "\(value)") } - public func MessageTimer_Days(_ value: Int32) -> String { + public func Media_SharePhoto(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[72 * 6 + Int(form.rawValue)]!, "\(value)") } - public func PasscodeSettings_FailedAttempts(_ value: Int32) -> String { + public func ServiceMessage_GameScoreSimple(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[73 * 6 + Int(form.rawValue)]!, "\(value)") } - public func PrivacyLastSeenSettings_AddUsers(_ value: Int32) -> String { + public func QuickSend_Photos(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[74 * 6 + Int(form.rawValue)]!, "\(value)") } - public func StickerPack_StickerCount(_ value: Int32) -> String { + public func MuteExpires_Hours(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[75 * 6 + Int(form.rawValue)]!, "\(value)") } - public func Contacts_ImportersCount(_ value: Int32) -> String { + public func DialogList_LiveLocationChatsCount(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[76 * 6 + Int(form.rawValue)]!, "\(value)") } - public func Passport_Scans(_ value: Int32) -> String { + public func MessageTimer_ShortHours(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[77 * 6 + Int(form.rawValue)]!, "\(value)") } - public func InviteText_ContactsCountText(_ value: Int32) -> String { + public func MessageTimer_Weeks(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[78 * 6 + Int(form.rawValue)]!, "\(value)") } - public func Media_ShareItem(_ value: Int32) -> String { + public func MessageTimer_Years(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[79 * 6 + Int(form.rawValue)]!, "\(value)") } - public func Notifications_ExceptionMuteExpires_Hours(_ value: Int32) -> String { + public func Contacts_ImportersCount(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[80 * 6 + Int(form.rawValue)]!, "\(value)") } - public func AttachmentMenu_SendItem(_ value: Int32) -> String { + public func Map_ETAMinutes(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[81 * 6 + Int(form.rawValue)]!, "\(value)") } - public func Notification_GameScoreExtended(_ value: Int32) -> String { + public func Passport_Scans(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[82 * 6 + Int(form.rawValue)]!, "\(value)") } - public func Invitation_Members(_ value: Int32) -> String { + public func ForwardedGifs(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[83 * 6 + Int(form.rawValue)]!, "\(value)") } - public func ForwardedGifs(_ value: Int32) -> String { + public func Notifications_ExceptionMuteExpires_Minutes(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[84 * 6 + Int(form.rawValue)]!, "\(value)") } - public func Conversation_StatusOnline(_ value: Int32) -> String { + public func MessageTimer_ShortMinutes(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) return String(format: self._ps[85 * 6 + Int(form.rawValue)]!, "\(value)") } + public func Call_ShortSeconds(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + return String(format: self._ps[86 * 6 + Int(form.rawValue)]!, "\(value)") + } init(primaryComponent: PresentationStringsComponent, secondaryComponent: PresentationStringsComponent?) { self.primaryComponent = primaryComponent diff --git a/TelegramUI/PresentationTheme.swift b/TelegramUI/PresentationTheme.swift index efdb3e0735..38d5eee5ed 100644 --- a/TelegramUI/PresentationTheme.swift +++ b/TelegramUI/PresentationTheme.swift @@ -334,6 +334,7 @@ public final class PresentationThemeChatList { public let itemBackgroundColor: UIColor public let pinnedItemBackgroundColor: UIColor public let itemHighlightedBackgroundColor: UIColor + public let itemSelectedBackgroundColor: UIColor public let titleColor: UIColor public let secretTitleColor: UIColor public let dateTextColor: UIColor @@ -357,12 +358,13 @@ public final class PresentationThemeChatList { public let verifiedIconForegroundColor: UIColor public let secretIconColor: UIColor - init(backgroundColor: UIColor, itemSeparatorColor: UIColor, itemBackgroundColor: UIColor, pinnedItemBackgroundColor: UIColor, itemHighlightedBackgroundColor: UIColor, titleColor: UIColor, secretTitleColor: UIColor, dateTextColor: UIColor, authorNameColor: UIColor, messageTextColor: UIColor, messageDraftTextColor: UIColor, checkmarkColor: UIColor, pendingIndicatorColor: UIColor, muteIconColor: UIColor, unreadBadgeActiveBackgroundColor: UIColor, unreadBadgeActiveTextColor: UIColor, unreadBadgeInactiveBackgroundColor: UIColor, unreadBadgeInactiveTextColor: UIColor, pinnedBadgeColor: UIColor, pinnedSearchBarColor: UIColor, regularSearchBarColor: UIColor, sectionHeaderFillColor: UIColor, sectionHeaderTextColor: UIColor, searchBarKeyboardColor: PresentationThemeKeyboardColor, verifiedIconFillColor: UIColor, verifiedIconForegroundColor: UIColor, secretIconColor: UIColor) { + init(backgroundColor: UIColor, itemSeparatorColor: UIColor, itemBackgroundColor: UIColor, pinnedItemBackgroundColor: UIColor, itemHighlightedBackgroundColor: UIColor, itemSelectedBackgroundColor: UIColor, titleColor: UIColor, secretTitleColor: UIColor, dateTextColor: UIColor, authorNameColor: UIColor, messageTextColor: UIColor, messageDraftTextColor: UIColor, checkmarkColor: UIColor, pendingIndicatorColor: UIColor, muteIconColor: UIColor, unreadBadgeActiveBackgroundColor: UIColor, unreadBadgeActiveTextColor: UIColor, unreadBadgeInactiveBackgroundColor: UIColor, unreadBadgeInactiveTextColor: UIColor, pinnedBadgeColor: UIColor, pinnedSearchBarColor: UIColor, regularSearchBarColor: UIColor, sectionHeaderFillColor: UIColor, sectionHeaderTextColor: UIColor, searchBarKeyboardColor: PresentationThemeKeyboardColor, verifiedIconFillColor: UIColor, verifiedIconForegroundColor: UIColor, secretIconColor: UIColor) { self.backgroundColor = backgroundColor self.itemSeparatorColor = itemSeparatorColor self.itemBackgroundColor = itemBackgroundColor self.pinnedItemBackgroundColor = pinnedItemBackgroundColor self.itemHighlightedBackgroundColor = itemHighlightedBackgroundColor + self.itemSelectedBackgroundColor = itemSelectedBackgroundColor self.titleColor = titleColor self.secretTitleColor = secretTitleColor self.dateTextColor = dateTextColor diff --git a/TelegramUI/Resources/PresentationStrings.mapping b/TelegramUI/Resources/PresentationStrings.mapping index e733f51b60..0d58ba1f3a 100644 Binary files a/TelegramUI/Resources/PresentationStrings.mapping and b/TelegramUI/Resources/PresentationStrings.mapping differ diff --git a/TelegramUI/StickerPackPreviewController.swift b/TelegramUI/StickerPackPreviewController.swift index e61d61668a..e301bd862c 100644 --- a/TelegramUI/StickerPackPreviewController.swift +++ b/TelegramUI/StickerPackPreviewController.swift @@ -56,7 +56,7 @@ final class StickerPackPreviewController: ViewController { self.statusBar.statusBarStyle = .Ignore - self.stickerPackContents.set(loadedStickerPack(postbox: account.postbox, network: account.network, reference: stickerPack)) + self.stickerPackContents.set(loadedStickerPack(postbox: account.postbox, network: account.network, reference: stickerPack, forceActualized: true)) } required init(coder aDecoder: NSCoder) { diff --git a/TelegramUI/StickerPackPreviewControllerNode.swift b/TelegramUI/StickerPackPreviewControllerNode.swift index 355c6f88f6..f5681788f2 100644 --- a/TelegramUI/StickerPackPreviewControllerNode.swift +++ b/TelegramUI/StickerPackPreviewControllerNode.swift @@ -5,6 +5,37 @@ import SwiftSignalKit import Postbox import TelegramCore +private struct StickerPackPreviewGridEntry: Comparable, Identifiable { + let index: Int + let stickerItem: StickerPackItem + + var stableId: MediaId { + return self.stickerItem.file.fileId + } + + static func <(lhs: StickerPackPreviewGridEntry, rhs: StickerPackPreviewGridEntry) -> Bool { + return lhs.index < rhs.index + } + + func item(account: Account, interaction: StickerPackPreviewInteraction) -> StickerPackPreviewGridItem { + return StickerPackPreviewGridItem(account: account, stickerItem: self.stickerItem, interaction: interaction) + } +} + +private struct StickerPackPreviewGridTransaction { + let deletions: [Int] + let insertions: [GridNodeInsertItem] + let updates: [GridNodeUpdateItem] + + init(previousList: [StickerPackPreviewGridEntry], list: [StickerPackPreviewGridEntry], account: Account, interaction: StickerPackPreviewInteraction) { + let (deleteIndices, indicesAndItems, updateIndices) = mergeListsStableWithUpdates(leftList: previousList, rightList: list) + + self.deletions = deleteIndices + self.insertions = indicesAndItems.map { GridNodeInsertItem(index: $0.0, item: $0.1.item(account: account, interaction: interaction), previousIndex: $0.2) } + self.updates = updateIndices.map { GridNodeUpdateItem(index: $0.0, previousIndex: $0.2, item: $0.1.item(account: account, interaction: interaction)) } + } +} + final class StickerPackPreviewControllerNode: ViewControllerTracingNode, UIScrollViewDelegate { private let account: Account private let openShare: () -> Void @@ -42,7 +73,7 @@ final class StickerPackPreviewControllerNode: ViewControllerTracingNode, UIScrol private var stickerPackUpdated = false private var stickerPackInitiallyInstalled : Bool? - private var didSetItems = false + private var currentItems: [StickerPackPreviewGridEntry] = [] private var hapticFeedback: HapticFeedback? @@ -267,7 +298,7 @@ final class StickerPackPreviewControllerNode: ViewControllerTracingNode, UIScrol let contentContainerFrame = CGRect(origin: CGPoint(x: sideInset, y: insets.top), size: CGSize(width: width, height: maximumContentHeight)) let contentFrame = contentContainerFrame.insetBy(dx: 12.0, dy: 0.0) - var insertItems: [GridNodeInsertItem] = [] + var transaction: StickerPackPreviewGridTransaction? var itemCount = 0 var animateIn = false @@ -286,16 +317,21 @@ final class StickerPackPreviewControllerNode: ViewControllerTracingNode, UIScrol self.activityIndicator = nil } itemCount = items.count - if !self.didSetItems { - let entities = generateTextEntities(info.title, enabledTypes: [.mention]) - self.contentTitleNode.attributedText = stringWithAppliedEntities(info.title, entities: entities, baseColor: self.presentationData.theme.actionSheet.primaryTextColor, linkColor: self.presentationData.theme.actionSheet.controlAccentColor, baseFont: Font.medium(20.0), linkFont: Font.medium(20.0), boldFont: Font.medium(20.0), italicFont: Font.medium(20.0), fixedFont: Font.medium(20.0)) - - self.didSetItems = true - animateIn = true - for i in 0 ..< items.count { - insertItems.append(GridNodeInsertItem(index: i, item: StickerPackPreviewGridItem(account: self.account, stickerItem: items[i] as! StickerPackItem, interaction: self.interaction), previousIndex: nil)) + + var updatedItems: [StickerPackPreviewGridEntry] = [] + for item in items { + if let item = item as? StickerPackItem { + updatedItems.append(StickerPackPreviewGridEntry(index: updatedItems.count, stickerItem: item)) } } + + if self.currentItems.isEmpty && !updatedItems.isEmpty { + let entities = generateTextEntities(info.title, enabledTypes: [.mention]) + self.contentTitleNode.attributedText = stringWithAppliedEntities(info.title, entities: entities, baseColor: self.presentationData.theme.actionSheet.primaryTextColor, linkColor: self.presentationData.theme.actionSheet.controlAccentColor, baseFont: Font.medium(20.0), linkFont: Font.medium(20.0), boldFont: Font.medium(20.0), italicFont: Font.medium(20.0), fixedFont: Font.medium(20.0)) + animateIn = true + } + transaction = StickerPackPreviewGridTransaction(previousList: self.currentItems, list: updatedItems, account: self.account, interaction: self.interaction) + self.currentItems = updatedItems } } @@ -335,7 +371,7 @@ final class StickerPackPreviewControllerNode: ViewControllerTracingNode, UIScrol let gridSize = CGSize(width: contentFrame.size.width, height: max(32.0, contentFrame.size.height - titleAreaHeight)) - self.contentGridNode.transaction(GridNodeTransaction(deleteItems: [], insertItems: insertItems, updateItems: [], scrollToItem: nil, updateLayout: GridNodeUpdateLayout(layout: GridNodeLayout(size: gridSize, insets: UIEdgeInsets(top: topInset, left: 0.0, bottom: bottomGridInset, right: 0.0), preloadSize: 80.0, type: .fixed(itemSize: CGSize(width: itemWidth, height: itemWidth), lineSpacing: 0.0)), transition: transition), itemTransition: .immediate, stationaryItems: .none, updateFirstIndexInSectionOffset: nil), completion: { _ in }) + self.contentGridNode.transaction(GridNodeTransaction(deleteItems: transaction?.deletions ?? [], insertItems: transaction?.insertions ?? [], updateItems: transaction?.updates ?? [], scrollToItem: nil, updateLayout: GridNodeUpdateLayout(layout: GridNodeLayout(size: gridSize, insets: UIEdgeInsets(top: topInset, left: 0.0, bottom: bottomGridInset, right: 0.0), preloadSize: 80.0, type: .fixed(itemSize: CGSize(width: itemWidth, height: itemWidth), lineSpacing: 0.0)), transition: transition), itemTransition: .immediate, stationaryItems: .none, updateFirstIndexInSectionOffset: nil), completion: { _ in }) transition.updateFrame(node: self.contentGridNode, frame: CGRect(origin: CGPoint(x: floor((contentContainerFrame.size.width - contentFrame.size.width) / 2.0), y: titleAreaHeight), size: gridSize)) if animateIn { diff --git a/TelegramUI/StickerPaneSearchContainerNode.swift b/TelegramUI/StickerPaneSearchContainerNode.swift index a8e7bbde00..2f2d8cce58 100644 --- a/TelegramUI/StickerPaneSearchContainerNode.swift +++ b/TelegramUI/StickerPaneSearchContainerNode.swift @@ -217,7 +217,7 @@ final class StickerPaneSearchContainerNode: ASDisplayNode { } }, install: { [weak self] info in if let strongSelf = self { - let _ = (loadedStickerPack(postbox: strongSelf.account.postbox, network: strongSelf.account.network, reference: .id(id: info.id.id, accessHash: info.accessHash)) + let _ = (loadedStickerPack(postbox: strongSelf.account.postbox, network: strongSelf.account.network, reference: .id(id: info.id.id, accessHash: info.accessHash), forceActualized: false) |> mapToSignal { result -> Signal in switch result { case let .result(info, items, installed): diff --git a/TelegramUI/UrlHandling.swift b/TelegramUI/UrlHandling.swift index 0b9d5a7e40..c7f25c19ed 100644 --- a/TelegramUI/UrlHandling.swift +++ b/TelegramUI/UrlHandling.swift @@ -147,19 +147,32 @@ private func resolveInternalUrl(account: Account, url: ParsedInternalUrl) -> Sig case let .peerName(name, parameter): return resolvePeerByName(account: account, name: name) |> take(1) - |> map { peerId -> ResolvedUrl? in - if let peerId = peerId { + |> mapToSignal { peerId -> Signal in + return account.postbox.transaction { transaction -> Peer? in + if let peerId = peerId { + return transaction.getPeer(peerId) + } else { + return nil + } + } + } + |> map { peer -> ResolvedUrl? in + if let peer = peer { if let parameter = parameter { switch parameter { case let .botStart(payload): - return .botStart(peerId: peerId, payload: payload) + return .botStart(peerId: peer.id, payload: payload) case let .groupBotStart(payload): - return .groupBotStart(peerId: peerId, payload: payload) + return .groupBotStart(peerId: peer.id, payload: payload) case let .channelMessage(id): - return .channelMessage(peerId: peerId, messageId: MessageId(peerId: peerId, namespace: Namespaces.Message.Cloud, id: id)) + return .channelMessage(peerId: peer.id, messageId: MessageId(peerId: peer.id, namespace: Namespaces.Message.Cloud, id: id)) } } else { - return .peer(peerId, .chat(textInputState: nil, messageId: nil)) + if let peer = peer as? TelegramUser, peer.botInfo != nil { + return .peer(peer.id, .chat(textInputState: nil, messageId: nil)) + } else { + return .peer(peer.id, .info) + } } } else { return nil