From 84ad1344c7e009dd0f40a94696d4fdff429115f5 Mon Sep 17 00:00:00 2001 From: Isaac <> Date: Thu, 10 Apr 2025 19:56:53 +0400 Subject: [PATCH 01/10] Confrence updates --- .../Sources/CallListControllerNode.swift | 4 +-- .../Sources/PresentationGroupCall.swift | 25 ++++++++++++++++++- 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/submodules/CallListUI/Sources/CallListControllerNode.swift b/submodules/CallListUI/Sources/CallListControllerNode.swift index 74b1c7280a..204dffbf3f 100644 --- a/submodules/CallListUI/Sources/CallListControllerNode.swift +++ b/submodules/CallListUI/Sources/CallListControllerNode.swift @@ -126,7 +126,7 @@ private func mappedInsertEntries(context: AccountContext, presentationData: Item case let .displayTabInfo(_, text): return ListViewInsertItem(index: entry.index, previousIndex: entry.previousIndex, item: ItemListTextItem(presentationData: presentationData, text: .plain(text), sectionId: 0), directionHint: entry.directionHint) case .openNewCall: - let item = ItemListPeerActionItem(presentationData: presentationData, style: showSettings ? .blocks : .plain, icon: .none, title: presentationData.strings.CallList_NewCall, hasSeparator: false, sectionId: 1, height: .generic, noInsets: true, editing: false, action: { + let item = ItemListPeerActionItem(presentationData: presentationData, style: showSettings ? .blocks : .plain, icon: PresentationResourcesRootController.navigationCallIcon(presentationData.theme), title: presentationData.strings.CallList_NewCall, hasSeparator: false, sectionId: 1, height: .generic, noInsets: true, editing: false, action: { nodeInteraction.openNewCall() }) return ListViewInsertItem(index: entry.index, previousIndex: entry.previousIndex, item: item, directionHint: entry.directionHint) @@ -150,7 +150,7 @@ private func mappedUpdateEntries(context: AccountContext, presentationData: Item case let .displayTabInfo(_, text): return ListViewUpdateItem(index: entry.index, previousIndex: entry.previousIndex, item: ItemListTextItem(presentationData: presentationData, text: .plain(text), sectionId: 0), directionHint: entry.directionHint) case .openNewCall: - let item = ItemListPeerActionItem(presentationData: presentationData, icon: .none, title: presentationData.strings.CallList_NewCall, sectionId: 1, height: .generic, noInsets: true, editing: false, action: { + let item = ItemListPeerActionItem(presentationData: presentationData, style: showSettings ? .blocks : .plain, icon: PresentationResourcesRootController.navigationCallIcon(presentationData.theme), title: presentationData.strings.CallList_NewCall, hasSeparator: false, sectionId: 1, height: .generic, noInsets: true, editing: false, action: { nodeInteraction.openNewCall() }) return ListViewUpdateItem(index: entry.index, previousIndex: entry.previousIndex, item: item, directionHint: entry.directionHint) diff --git a/submodules/TelegramCallsUI/Sources/PresentationGroupCall.swift b/submodules/TelegramCallsUI/Sources/PresentationGroupCall.swift index 781dda7de0..bb7957c770 100644 --- a/submodules/TelegramCallsUI/Sources/PresentationGroupCall.swift +++ b/submodules/TelegramCallsUI/Sources/PresentationGroupCall.swift @@ -859,6 +859,12 @@ public final class PresentationGroupCallImpl: PresentationGroupCall { self.isConference = isConference self.beginWithVideo = beginWithVideo self.keyPair = keyPair + + if self.isConference && conferenceSourceId == nil { + self.isMutedValue = .unmuted + self.isMutedPromise.set(self.isMutedValue) + self.stateValue.muteState = nil + } if let keyPair, let initialCall { self.e2eContext = ConferenceCallE2EContext( @@ -1760,6 +1766,15 @@ public final class PresentationGroupCallImpl: PresentationGroupCall { self.onMutedSpeechActivityDetected?(value) } }, isConference: self.isConference, audioIsActiveByDefault: audioIsActiveByDefault, isStream: self.isStream, sharedAudioDevice: self.sharedAudioContext?.audioDevice, encryptionContext: encryptionContext)) + + let isEffectivelyMuted: Bool + switch self.isMutedValue { + case let .muted(isPushToTalkActive): + isEffectivelyMuted = !isPushToTalkActive + case .unmuted: + isEffectivelyMuted = false + } + genericCallContext.setIsMuted(isEffectivelyMuted) } self.genericCallContext = genericCallContext @@ -1907,6 +1922,14 @@ public final class PresentationGroupCallImpl: PresentationGroupCall { } else { reference = .id(id: callInfo.id, accessHash: callInfo.accessHash) } + + let isEffectivelyMuted: Bool + switch self.isMutedValue { + case let .muted(isPushToTalkActive): + isEffectivelyMuted = !isPushToTalkActive + case .unmuted: + isEffectivelyMuted = false + } self.currentLocalSsrc = ssrc self.requestDisposable.set((self.accountContext.engine.calls.joinGroupCall( @@ -1914,7 +1937,7 @@ public final class PresentationGroupCallImpl: PresentationGroupCall { joinAs: self.joinAsPeerId, callId: callInfo.id, reference: reference, - preferMuted: true, + preferMuted: isEffectivelyMuted, joinPayload: joinPayload, peerAdminIds: peerAdminIds, inviteHash: self.invite, From a1631b421a24a7d62ed472febd37662c35b5d238 Mon Sep 17 00:00:00 2001 From: Isaac <> Date: Fri, 11 Apr 2025 12:56:35 +0400 Subject: [PATCH 02/10] Conference updates --- .../Sources/ContactsControllerNode.swift | 2 +- .../Sources/ContactsSearchContainerNode.swift | 65 ++++++++++++------- .../InviteContactsControllerNode.swift | 2 +- .../Sources/PeerSelectionControllerNode.swift | 2 +- .../Sources/ComposeControllerNode.swift | 2 +- .../Sources/ContactSelectionController.swift | 4 +- .../ContactSelectionControllerNode.swift | 28 ++++++-- 7 files changed, 71 insertions(+), 34 deletions(-) diff --git a/submodules/ContactListUI/Sources/ContactsControllerNode.swift b/submodules/ContactListUI/Sources/ContactsControllerNode.swift index 36d11ff2a3..cccd381c9b 100644 --- a/submodules/ContactListUI/Sources/ContactsControllerNode.swift +++ b/submodules/ContactListUI/Sources/ContactsControllerNode.swift @@ -474,7 +474,7 @@ final class ContactsControllerNode: ASDisplayNode, ASGestureRecognizerDelegate { if let requestAddContact = self?.requestAddContact { requestAddContact(phoneNumber) } - }, openPeer: { [weak self] peer in + }, openPeer: { [weak self] peer, _ in if let requestOpenPeerFromSearch = self?.requestOpenPeerFromSearch { requestOpenPeerFromSearch(peer) } diff --git a/submodules/ContactListUI/Sources/ContactsSearchContainerNode.swift b/submodules/ContactListUI/Sources/ContactsSearchContainerNode.swift index 7a9a595cd6..442df4f39d 100644 --- a/submodules/ContactListUI/Sources/ContactsSearchContainerNode.swift +++ b/submodules/ContactListUI/Sources/ContactsSearchContainerNode.swift @@ -52,14 +52,14 @@ private enum ContactListSearchEntryId: Hashable { } private enum ContactListSearchEntry: Comparable, Identifiable { - case addContact(PresentationTheme, PresentationStrings, String) - case peer(Int, PresentationTheme, PresentationStrings, ContactListPeer, EnginePeer.Presence?, ContactListSearchGroup, Bool, Bool) + case addContact(theme: PresentationTheme, strings: PresentationStrings, phoneNumber: String) + case peer(index: Int, theme: PresentationTheme, strings: PresentationStrings, peer: ContactListPeer, presence: EnginePeer.Presence?, group: ContactListSearchGroup, enabled: Bool, requiresPremiumForMessaging: Bool, displayCallIcons: Bool) var stableId: ContactListSearchEntryId { switch self { case .addContact: return .addContact - case let .peer(_, _, _, peer, _, _, _, _): + case let .peer(_, _, _, peer, _, _, _, _, _): return .peerId(peer.id) } } @@ -72,9 +72,9 @@ private enum ContactListSearchEntry: Comparable, Identifiable { } else { return false } - case let .peer(lhsIndex, lhsTheme, lhsStrings, lhsPeer, lhsPresence, lhsGroup, lhsEnabled, lhsRequiresPremiumForMessaging): + case let .peer(lhsIndex, lhsTheme, lhsStrings, lhsPeer, lhsPresence, lhsGroup, lhsEnabled, lhsRequiresPremiumForMessaging, lhsDisplayCallIcons): switch rhs { - case let .peer(rhsIndex, rhsTheme, rhsStrings, rhsPeer, rhsPresence, rhsGroup, rhsEnabled, rhsRequiresPremiumForMessaging): + case let .peer(rhsIndex, rhsTheme, rhsStrings, rhsPeer, rhsPresence, rhsGroup, rhsEnabled, rhsRequiresPremiumForMessaging, rhsDisplayCallIcons): if lhsIndex != rhsIndex { return false } @@ -103,6 +103,9 @@ private enum ContactListSearchEntry: Comparable, Identifiable { if lhsRequiresPremiumForMessaging != rhsRequiresPremiumForMessaging { return false } + if lhsDisplayCallIcons != rhsDisplayCallIcons { + return false + } return true default: return false @@ -114,23 +117,23 @@ private enum ContactListSearchEntry: Comparable, Identifiable { switch lhs { case .addContact: return true - case let .peer(lhsIndex, _, _, _, _, _, _, _): + case let .peer(lhsIndex, _, _, _, _, _, _, _, _): switch rhs { case .addContact: return false - case let .peer(rhsIndex, _, _, _, _, _, _, _): + case let .peer(rhsIndex, _, _, _, _, _, _, _, _): return lhsIndex < rhsIndex } } } - func item(context: AccountContext, presentationData: PresentationData, nameSortOrder: PresentationPersonNameOrder, nameDisplayOrder: PresentationPersonNameOrder, timeFormat: PresentationDateTimeFormat, addContact: ((String) -> Void)?, openPeer: @escaping (ContactListPeer) -> Void, openDisabledPeer: @escaping (EnginePeer, ChatListDisabledPeerReason) -> Void, contextAction: ((EnginePeer, ASDisplayNode, ContextGesture?, CGPoint?) -> Void)?) -> ListViewItem { + func item(context: AccountContext, presentationData: PresentationData, nameSortOrder: PresentationPersonNameOrder, nameDisplayOrder: PresentationPersonNameOrder, timeFormat: PresentationDateTimeFormat, isPeerEnabled: @escaping (ContactListPeer) -> Bool, addContact: ((String) -> Void)?, openPeer: @escaping (ContactListPeer, ContactsSearchContainerNode.OpenPeerAction) -> Void, openDisabledPeer: @escaping (EnginePeer, ChatListDisabledPeerReason) -> Void, contextAction: ((EnginePeer, ASDisplayNode, ContextGesture?, CGPoint?) -> Void)?) -> ListViewItem { switch self { case let .addContact(theme, strings, phoneNumber): return ContactsAddItem(context: context, theme: theme, strings: strings, phoneNumber: phoneNumber, header: ChatListSearchItemHeader(type: .phoneNumber, theme: theme, strings: strings, actionTitle: nil, action: nil), action: { addContact?(phoneNumber) }) - case let .peer(_, theme, strings, peer, presence, group, enabled, requiresPremiumForMessaging): + case let .peer(_, theme, strings, peer, presence, group, enabled, requiresPremiumForMessaging, displayCallIcons): let header: ListViewItemHeader let status: ContactsPeerItemStatus switch group { @@ -161,8 +164,16 @@ private enum ContactListSearchEntry: Comparable, Identifiable { case let .deviceContact(stableId, contact): peerItem = .deviceContact(stableId: stableId, contact: contact) } - return ContactsPeerItem(presentationData: ItemListPresentationData(presentationData), sortOrder: nameSortOrder, displayOrder: nameDisplayOrder, context: context, peerMode: .peer, peer: peerItem, status: status, requiresPremiumForMessaging: requiresPremiumForMessaging, enabled: enabled, selection: .none, editing: ContactsPeerItemEditing(editable: false, editing: false, revealed: false), index: nil, header: header, action: { _ in - openPeer(peer) + var additionalActions: [ContactsPeerItemAction] = [] + if displayCallIcons { + additionalActions = [ContactsPeerItemAction(icon: .voiceCall, action: { _, sourceNode, gesture in + openPeer(peer, .voiceCall) + }), ContactsPeerItemAction(icon: .videoCall, action: { _, sourceNode, gesture in + openPeer(peer, .videoCall) + })] + } + return ContactsPeerItem(presentationData: ItemListPresentationData(presentationData), sortOrder: nameSortOrder, displayOrder: nameDisplayOrder, context: context, peerMode: .peer, peer: peerItem, status: status, requiresPremiumForMessaging: requiresPremiumForMessaging, enabled: enabled && isPeerEnabled(peer), selection: .none, editing: ContactsPeerItemEditing(editable: false, editing: false, revealed: false), additionalActions: additionalActions, index: nil, header: header, action: { _ in + openPeer(peer, .generic) }, disabledAction: { _ in if case let .peer(peer, _, _) = peer { openDisabledPeer(EnginePeer(peer), requiresPremiumForMessaging ? .premiumRequired : .generic) @@ -187,12 +198,12 @@ struct ContactListSearchContainerTransition { let query: String } -private func contactListSearchContainerPreparedRecentTransition(from fromEntries: [ContactListSearchEntry], to toEntries: [ContactListSearchEntry], isSearching: Bool, emptyResults: Bool, query: String, context: AccountContext, presentationData: PresentationData, nameSortOrder: PresentationPersonNameOrder, nameDisplayOrder: PresentationPersonNameOrder, timeFormat: PresentationDateTimeFormat, addContact: ((String) -> Void)?, openPeer: @escaping (ContactListPeer) -> Void, openDisabledPeer: @escaping (EnginePeer, ChatListDisabledPeerReason) -> Void, contextAction: ((EnginePeer, ASDisplayNode, ContextGesture?, CGPoint?) -> Void)?) -> ContactListSearchContainerTransition { +private func contactListSearchContainerPreparedRecentTransition(from fromEntries: [ContactListSearchEntry], to toEntries: [ContactListSearchEntry], isSearching: Bool, emptyResults: Bool, query: String, context: AccountContext, presentationData: PresentationData, nameSortOrder: PresentationPersonNameOrder, nameDisplayOrder: PresentationPersonNameOrder, timeFormat: PresentationDateTimeFormat, isPeerEnabled: @escaping (ContactListPeer) -> Bool, addContact: ((String) -> Void)?, openPeer: @escaping (ContactListPeer, ContactsSearchContainerNode.OpenPeerAction) -> Void, openDisabledPeer: @escaping (EnginePeer, ChatListDisabledPeerReason) -> Void, contextAction: ((EnginePeer, ASDisplayNode, ContextGesture?, CGPoint?) -> Void)?) -> ContactListSearchContainerTransition { let (deleteIndices, indicesAndItems, updateIndices) = mergeListsStableWithUpdates(leftList: fromEntries, rightList: toEntries) let deletions = deleteIndices.map { ListViewDeleteItem(index: $0, directionHint: nil) } - let insertions = indicesAndItems.map { ListViewInsertItem(index: $0.0, previousIndex: $0.2, item: $0.1.item(context: context, presentationData: presentationData, nameSortOrder: nameSortOrder, nameDisplayOrder: nameDisplayOrder, timeFormat: timeFormat, addContact: addContact, openPeer: openPeer, openDisabledPeer: openDisabledPeer, contextAction: contextAction), directionHint: nil) } - let updates = updateIndices.map { ListViewUpdateItem(index: $0.0, previousIndex: $0.2, item: $0.1.item(context: context, presentationData: presentationData, nameSortOrder: nameSortOrder, nameDisplayOrder: nameDisplayOrder, timeFormat: timeFormat, addContact: addContact, openPeer: openPeer, openDisabledPeer: openDisabledPeer, contextAction: contextAction), directionHint: nil) } + let insertions = indicesAndItems.map { ListViewInsertItem(index: $0.0, previousIndex: $0.2, item: $0.1.item(context: context, presentationData: presentationData, nameSortOrder: nameSortOrder, nameDisplayOrder: nameDisplayOrder, timeFormat: timeFormat, isPeerEnabled: isPeerEnabled, addContact: addContact, openPeer: openPeer, openDisabledPeer: openDisabledPeer, contextAction: contextAction), directionHint: nil) } + let updates = updateIndices.map { ListViewUpdateItem(index: $0.0, previousIndex: $0.2, item: $0.1.item(context: context, presentationData: presentationData, nameSortOrder: nameSortOrder, nameDisplayOrder: nameDisplayOrder, timeFormat: timeFormat, isPeerEnabled: isPeerEnabled, addContact: addContact, openPeer: openPeer, openDisabledPeer: openDisabledPeer, contextAction: contextAction), directionHint: nil) } return ContactListSearchContainerTransition(deletions: deletions, insertions: insertions, updates: updates, isSearching: isSearching, emptyResults: emptyResults, query: query) } @@ -211,9 +222,16 @@ public struct ContactsSearchCategories: OptionSet { } public final class ContactsSearchContainerNode: SearchDisplayControllerContentNode { + public enum OpenPeerAction { + case generic + case voiceCall + case videoCall + } + private let context: AccountContext + private let isPeerEnabled: (ContactListPeer) -> Bool private let addContact: ((String) -> Void)? - private let openPeer: (ContactListPeer) -> Void + private let openPeer: (ContactListPeer, ContactsSearchContainerNode.OpenPeerAction) -> Void private let openDisabledPeer: (EnginePeer, ChatListDisabledPeerReason) -> Void private let contextAction: ((EnginePeer, ASDisplayNode, ContextGesture?, CGPoint?) -> Void)? @@ -238,8 +256,9 @@ public final class ContactsSearchContainerNode: SearchDisplayControllerContentNo return true } - public init(context: AccountContext, updatedPresentationData: (initial: PresentationData, signal: Signal)? = nil, onlyWriteable: Bool, categories: ContactsSearchCategories, filters: [ContactListFilter] = [.excludeSelf], addContact: ((String) -> Void)?, openPeer: @escaping (ContactListPeer) -> Void, openDisabledPeer: @escaping (EnginePeer, ChatListDisabledPeerReason) -> Void, contextAction: ((EnginePeer, ASDisplayNode, ContextGesture?, CGPoint?) -> Void)?) { + public init(context: AccountContext, updatedPresentationData: (initial: PresentationData, signal: Signal)? = nil, onlyWriteable: Bool, categories: ContactsSearchCategories, filters: [ContactListFilter] = [.excludeSelf], displayCallIcons: Bool = false, isPeerEnabled: @escaping (ContactListPeer) -> Bool = { _ in true }, addContact: ((String) -> Void)?, openPeer: @escaping (ContactListPeer, ContactsSearchContainerNode.OpenPeerAction) -> Void, openDisabledPeer: @escaping (EnginePeer, ChatListDisabledPeerReason) -> Void, contextAction: ((EnginePeer, ASDisplayNode, ContextGesture?, CGPoint?) -> Void)?) { self.context = context + self.isPeerEnabled = isPeerEnabled self.addContact = addContact self.openPeer = openPeer self.openDisabledPeer = openDisabledPeer @@ -441,7 +460,7 @@ public final class ContactsSearchContainerNode: SearchDisplayControllerContentNo enabled = false } } - entries.append(.peer(index, themeAndStrings.0, themeAndStrings.1, .peer(peer: peer._asPeer(), isGlobal: false, participantCount: nil), localPeersAndPresences.1[peer.id], .contacts, enabled, requiresPremiumForMessaging)) + entries.append(.peer(index: index, theme: themeAndStrings.0, strings: themeAndStrings.1, peer: .peer(peer: peer._asPeer(), isGlobal: false, participantCount: nil), presence: localPeersAndPresences.1[peer.id], group: .contacts, enabled: enabled, requiresPremiumForMessaging: requiresPremiumForMessaging, displayCallIcons: displayCallIcons)) if searchDeviceContacts, case let .user(user) = peer, let phone = user.phone { existingNormalizedPhoneNumbers.insert(DeviceContactNormalizedPhoneNumber(rawValue: formatPhoneNumber(phone))) } @@ -483,7 +502,7 @@ public final class ContactsSearchContainerNode: SearchDisplayControllerContentNo } } - entries.append(.peer(index, themeAndStrings.0, themeAndStrings.1, .peer(peer: peer.peer, isGlobal: true, participantCount: peer.subscribers), nil, .global, enabled, requiresPremiumForMessaging)) + entries.append(.peer(index: index, theme: themeAndStrings.0, strings: themeAndStrings.1, peer: .peer(peer: peer.peer, isGlobal: true, participantCount: peer.subscribers), presence: nil, group: .global, enabled: enabled, requiresPremiumForMessaging: requiresPremiumForMessaging, displayCallIcons: displayCallIcons)) if searchDeviceContacts, let user = peer.peer as? TelegramUser, let phone = user.phone { existingNormalizedPhoneNumbers.insert(DeviceContactNormalizedPhoneNumber(rawValue: formatPhoneNumber(phone))) } @@ -518,7 +537,7 @@ public final class ContactsSearchContainerNode: SearchDisplayControllerContentNo } } - entries.append(.peer(index, themeAndStrings.0, themeAndStrings.1, .peer(peer: peer.peer, isGlobal: true, participantCount: peer.subscribers), nil, .global, enabled, requiresPremiumForMessaging)) + entries.append(.peer(index: index, theme: themeAndStrings.0, strings: themeAndStrings.1, peer: .peer(peer: peer.peer, isGlobal: true, participantCount: peer.subscribers), presence: nil, group: .global, enabled: enabled, requiresPremiumForMessaging: requiresPremiumForMessaging, displayCallIcons: displayCallIcons)) if searchDeviceContacts, let user = peer.peer as? TelegramUser, let phone = user.phone { existingNormalizedPhoneNumbers.insert(DeviceContactNormalizedPhoneNumber(rawValue: formatPhoneNumber(phone))) } @@ -539,13 +558,13 @@ public final class ContactsSearchContainerNode: SearchDisplayControllerContentNo continue outer } } - entries.append(.peer(index, themeAndStrings.0, themeAndStrings.1, .deviceContact(stableId, contact.0), nil, .deviceContacts, true, false)) + entries.append(.peer(index: index, theme: themeAndStrings.0, strings: themeAndStrings.1, peer: .deviceContact(stableId, contact.0), presence: nil, group: .deviceContacts, enabled: true, requiresPremiumForMessaging: false, displayCallIcons: displayCallIcons)) index += 1 } } if let _ = addContact, isViablePhoneNumber(query) { - entries.append(.addContact(themeAndStrings.0, themeAndStrings.1, query)) + entries.append(.addContact(theme: themeAndStrings.0, strings: themeAndStrings.1, phoneNumber: query)) } return (entries, query) @@ -571,9 +590,9 @@ public final class ContactsSearchContainerNode: SearchDisplayControllerContentNo } } - let transition = contactListSearchContainerPreparedRecentTransition(from: previousItems, to: items ?? [], isSearching: items != nil, emptyResults: items?.isEmpty ?? false, query: query, context: context, presentationData: strongSelf.presentationData, nameSortOrder: strongSelf.presentationData.nameSortOrder, nameDisplayOrder: strongSelf.presentationData.nameDisplayOrder, timeFormat: strongSelf.presentationData.dateTimeFormat, addContact: addContact, openPeer: { peer in + let transition = contactListSearchContainerPreparedRecentTransition(from: previousItems, to: items ?? [], isSearching: items != nil, emptyResults: items?.isEmpty ?? false, query: query, context: context, presentationData: strongSelf.presentationData, nameSortOrder: strongSelf.presentationData.nameSortOrder, nameDisplayOrder: strongSelf.presentationData.nameDisplayOrder, timeFormat: strongSelf.presentationData.dateTimeFormat, isPeerEnabled: strongSelf.isPeerEnabled, addContact: addContact, openPeer: { peer, action in self?.listNode.clearHighlightAnimated(true) - self?.openPeer(peer) + self?.openPeer(peer, action) }, openDisabledPeer: { peer, reason in guard let self else { return diff --git a/submodules/ContactListUI/Sources/InviteContactsControllerNode.swift b/submodules/ContactListUI/Sources/InviteContactsControllerNode.swift index 504582fbac..57124b8f37 100644 --- a/submodules/ContactListUI/Sources/InviteContactsControllerNode.swift +++ b/submodules/ContactListUI/Sources/InviteContactsControllerNode.swift @@ -508,7 +508,7 @@ final class InviteContactsControllerNode: ASDisplayNode { return } - self.searchDisplayController = SearchDisplayController(presentationData: self.presentationData, contentNode: ContactsSearchContainerNode(context: self.context, onlyWriteable: false, categories: [.deviceContacts], addContact: nil, openPeer: { [weak self] peer in + self.searchDisplayController = SearchDisplayController(presentationData: self.presentationData, contentNode: ContactsSearchContainerNode(context: self.context, onlyWriteable: false, categories: [.deviceContacts], addContact: nil, openPeer: { [weak self] peer, _ in if let strongSelf = self, case let .deviceContact(id, _) = peer { strongSelf.selectionState = strongSelf.selectionState.withSelectedContactId(id) strongSelf.requestDeactivateSearch?() diff --git a/submodules/TelegramUI/Components/PeerSelectionController/Sources/PeerSelectionControllerNode.swift b/submodules/TelegramUI/Components/PeerSelectionController/Sources/PeerSelectionControllerNode.swift index 1f027a0b52..bf71406a8c 100644 --- a/submodules/TelegramUI/Components/PeerSelectionController/Sources/PeerSelectionControllerNode.swift +++ b/submodules/TelegramUI/Components/PeerSelectionController/Sources/PeerSelectionControllerNode.swift @@ -1330,7 +1330,7 @@ final class PeerSelectionControllerNode: ASDisplayNode { if self.hasGlobalSearch { categories.insert(.global) } - self.searchDisplayController = SearchDisplayController(presentationData: self.presentationData, contentNode: ContactsSearchContainerNode(context: self.context, updatedPresentationData: self.updatedPresentationData, onlyWriteable: true, categories: categories, addContact: nil, openPeer: { [weak self] peer in + self.searchDisplayController = SearchDisplayController(presentationData: self.presentationData, contentNode: ContactsSearchContainerNode(context: self.context, updatedPresentationData: self.updatedPresentationData, onlyWriteable: true, categories: categories, addContact: nil, openPeer: { [weak self] peer, _ in if let strongSelf = self { var updated = false var count = 0 diff --git a/submodules/TelegramUI/Sources/ComposeControllerNode.swift b/submodules/TelegramUI/Sources/ComposeControllerNode.swift index 6bb6a6b24b..20ec24de5b 100644 --- a/submodules/TelegramUI/Sources/ComposeControllerNode.swift +++ b/submodules/TelegramUI/Sources/ComposeControllerNode.swift @@ -120,7 +120,7 @@ final class ComposeControllerNode: ASDisplayNode { return } - self.searchDisplayController = SearchDisplayController(presentationData: self.presentationData, contentNode: ContactsSearchContainerNode(context: self.context, onlyWriteable: false, categories: [.cloudContacts, .global], addContact: nil, openPeer: { [weak self] peer in + self.searchDisplayController = SearchDisplayController(presentationData: self.presentationData, contentNode: ContactsSearchContainerNode(context: self.context, onlyWriteable: false, categories: [.cloudContacts, .global], addContact: nil, openPeer: { [weak self] peer, _ in if let requestOpenPeerFromSearch = self?.requestOpenPeerFromSearch, case let .peer(peer, _, _) = peer { requestOpenPeerFromSearch(peer.id) } diff --git a/submodules/TelegramUI/Sources/ContactSelectionController.swift b/submodules/TelegramUI/Sources/ContactSelectionController.swift index 0cb897a7d2..e8b191c343 100644 --- a/submodules/TelegramUI/Sources/ContactSelectionController.swift +++ b/submodules/TelegramUI/Sources/ContactSelectionController.swift @@ -229,8 +229,8 @@ class ContactSelectionControllerImpl: ViewController, ContactSelectionController self?.deactivateSearch() } - self.contactsNode.requestOpenPeerFromSearch = { [weak self] peer in - self?.openPeer(peer: peer, action: .generic, node: nil, gesture: nil) + self.contactsNode.requestOpenPeerFromSearch = { [weak self] peer, action in + self?.openPeer(peer: peer, action: action, node: nil, gesture: nil) } self.contactsNode.contactListNode.activateSearch = { [weak self] in diff --git a/submodules/TelegramUI/Sources/ContactSelectionControllerNode.swift b/submodules/TelegramUI/Sources/ContactSelectionControllerNode.swift index 58abf88ff3..78d954af74 100644 --- a/submodules/TelegramUI/Sources/ContactSelectionControllerNode.swift +++ b/submodules/TelegramUI/Sources/ContactSelectionControllerNode.swift @@ -37,7 +37,7 @@ final class ContactSelectionControllerNode: ASDisplayNode { var navigationBar: NavigationBar? var requestDeactivateSearch: (() -> Void)? - var requestOpenPeerFromSearch: ((ContactListPeer) -> Void)? + var requestOpenPeerFromSearch: ((ContactListPeer, ContactListAction) -> Void)? var requestOpenDisabledPeerFromSearch: ((EnginePeer, ChatListDisabledPeerReason) -> Void)? var requestMultipleAction: ((_ silent: Bool, _ scheduleTime: Int32?, _ parameters: ChatSendMessageActionSheetController.SendParameters?) -> Void)? var dismiss: (() -> Void)? @@ -258,7 +258,7 @@ final class ContactSelectionControllerNode: ASDisplayNode { categories.insert(.channels) } - let searchContainerNode = ContactsSearchContainerNode(context: self.context, updatedPresentationData: (self.presentationData, self.presentationDataPromise.get()), onlyWriteable: false, categories: categories, filters: self.filters, addContact: nil, openPeer: { [weak self] peer in + let searchContainerNode = ContactsSearchContainerNode(context: self.context, updatedPresentationData: (self.presentationData, self.presentationDataPromise.get()), onlyWriteable: false, categories: categories, filters: self.filters, displayCallIcons: self.displayCallIcons, isPeerEnabled: self.isPeerEnabled, addContact: nil, openPeer: { [weak self] peer, action in if let strongSelf = self { var updated = false strongSelf.contactListNode.updateSelectionState { state -> ContactListNodeGroupSelectionState? in @@ -285,7 +285,16 @@ final class ContactSelectionControllerNode: ASDisplayNode { if updated { strongSelf.requestDeactivateSearch?() } else { - strongSelf.requestOpenPeerFromSearch?(peer) + let mappedAction: ContactListAction + switch action { + case .generic: + mappedAction = .generic + case .voiceCall: + mappedAction = .voiceCall + case .videoCall: + mappedAction = .videoCall + } + strongSelf.requestOpenPeerFromSearch?(peer, mappedAction) } } }, openDisabledPeer: { [weak self] peer, reason in @@ -330,7 +339,7 @@ final class ContactSelectionControllerNode: ASDisplayNode { categories.insert(.channels) } - self.searchDisplayController = SearchDisplayController(presentationData: self.presentationData, contentNode: ContactsSearchContainerNode(context: self.context, updatedPresentationData: (self.presentationData, self.presentationDataPromise.get()), onlyWriteable: false, categories: categories, filters: self.filters, addContact: nil, openPeer: { [weak self] peer in + self.searchDisplayController = SearchDisplayController(presentationData: self.presentationData, contentNode: ContactsSearchContainerNode(context: self.context, updatedPresentationData: (self.presentationData, self.presentationDataPromise.get()), onlyWriteable: false, categories: categories, filters: self.filters, displayCallIcons: self.displayCallIcons, isPeerEnabled: self.isPeerEnabled, addContact: nil, openPeer: { [weak self] peer, action in if let strongSelf = self { var updated = false strongSelf.contactListNode.updateSelectionState { state -> ContactListNodeGroupSelectionState? in @@ -357,7 +366,16 @@ final class ContactSelectionControllerNode: ASDisplayNode { if updated { strongSelf.requestDeactivateSearch?() } else { - strongSelf.requestOpenPeerFromSearch?(peer) + let mappedAction: ContactListAction + switch action { + case .generic: + mappedAction = .generic + case .voiceCall: + mappedAction = .voiceCall + case .videoCall: + mappedAction = .videoCall + } + strongSelf.requestOpenPeerFromSearch?(peer, mappedAction) } } }, openDisabledPeer: { [weak self] peer, reason in From 22b4c3077491c2534c204132410ebaa153ab2591 Mon Sep 17 00:00:00 2001 From: Isaac <> Date: Fri, 11 Apr 2025 14:41:49 +0400 Subject: [PATCH 03/10] Conference updates --- .../Telegram-iOS/en.lproj/Localizable.strings | 4 +- .../Sources/CallListControllerNode.swift | 4 +- .../Sources/InviteLinkInviteController.swift | 2 +- .../Sources/PresentationGroupCall.swift | 6 ++- .../VideoChatEncryptionKeyComponent.swift | 2 +- .../State/ConferenceCallE2EContext.swift | 13 ++++-- .../TelegramEngine/Calls/GroupCalls.swift | 42 ++++++++++++++++-- .../Resources/PresentationResourceKey.swift | 2 + .../PresentationResourcesRootController.swift | 6 +++ .../NewCallListIcon.imageset/Contents.json | 12 +++++ .../NewCallListIcon.imageset/newcall_30.pdf | Bin 0 -> 4933 bytes 11 files changed, 80 insertions(+), 13 deletions(-) create mode 100644 submodules/TelegramUI/Images.xcassets/Call List/NewCallListIcon.imageset/Contents.json create mode 100644 submodules/TelegramUI/Images.xcassets/Call List/NewCallListIcon.imageset/newcall_30.pdf diff --git a/Telegram/Telegram-iOS/en.lproj/Localizable.strings b/Telegram/Telegram-iOS/en.lproj/Localizable.strings index f6e9611518..ab0406233a 100644 --- a/Telegram/Telegram-iOS/en.lproj/Localizable.strings +++ b/Telegram/Telegram-iOS/en.lproj/Localizable.strings @@ -14179,4 +14179,6 @@ Sorry for the inconvenience."; "Call.IncomingGroupCallTitle.Single" = "%@"; "Call.IncomingGroupCallTitle.Multiple_1" = "{} and 1 other"; -"Call.IncomingGroupCallTitle.Multiple_any" = "{} and %d others"; \ No newline at end of file +"Call.IncomingGroupCallTitle.Multiple_any" = "{} and %d others"; + +"GroupCall.RevokeLinkText" = "Are you sure you want to revoke this link? Once you do, no one will be able to join the call using it."; diff --git a/submodules/CallListUI/Sources/CallListControllerNode.swift b/submodules/CallListUI/Sources/CallListControllerNode.swift index 204dffbf3f..dfb1a324e2 100644 --- a/submodules/CallListUI/Sources/CallListControllerNode.swift +++ b/submodules/CallListUI/Sources/CallListControllerNode.swift @@ -126,7 +126,7 @@ private func mappedInsertEntries(context: AccountContext, presentationData: Item case let .displayTabInfo(_, text): return ListViewInsertItem(index: entry.index, previousIndex: entry.previousIndex, item: ItemListTextItem(presentationData: presentationData, text: .plain(text), sectionId: 0), directionHint: entry.directionHint) case .openNewCall: - let item = ItemListPeerActionItem(presentationData: presentationData, style: showSettings ? .blocks : .plain, icon: PresentationResourcesRootController.navigationCallIcon(presentationData.theme), title: presentationData.strings.CallList_NewCall, hasSeparator: false, sectionId: 1, height: .generic, noInsets: true, editing: false, action: { + let item = ItemListPeerActionItem(presentationData: presentationData, style: showSettings ? .blocks : .plain, icon: PresentationResourcesRootController.callListCallIcon(presentationData.theme), title: presentationData.strings.CallList_NewCall, hasSeparator: false, sectionId: 1, height: .generic, noInsets: true, editing: false, action: { nodeInteraction.openNewCall() }) return ListViewInsertItem(index: entry.index, previousIndex: entry.previousIndex, item: item, directionHint: entry.directionHint) @@ -150,7 +150,7 @@ private func mappedUpdateEntries(context: AccountContext, presentationData: Item case let .displayTabInfo(_, text): return ListViewUpdateItem(index: entry.index, previousIndex: entry.previousIndex, item: ItemListTextItem(presentationData: presentationData, text: .plain(text), sectionId: 0), directionHint: entry.directionHint) case .openNewCall: - let item = ItemListPeerActionItem(presentationData: presentationData, style: showSettings ? .blocks : .plain, icon: PresentationResourcesRootController.navigationCallIcon(presentationData.theme), title: presentationData.strings.CallList_NewCall, hasSeparator: false, sectionId: 1, height: .generic, noInsets: true, editing: false, action: { + let item = ItemListPeerActionItem(presentationData: presentationData, style: showSettings ? .blocks : .plain, icon: PresentationResourcesRootController.callListCallIcon(presentationData.theme), title: presentationData.strings.CallList_NewCall, hasSeparator: false, sectionId: 1, height: .generic, noInsets: true, editing: false, action: { nodeInteraction.openNewCall() }) return ListViewUpdateItem(index: entry.index, previousIndex: entry.previousIndex, item: item, directionHint: entry.directionHint) diff --git a/submodules/InviteLinksUI/Sources/InviteLinkInviteController.swift b/submodules/InviteLinksUI/Sources/InviteLinkInviteController.swift index 153bcc6d57..34a52902e2 100644 --- a/submodules/InviteLinksUI/Sources/InviteLinkInviteController.swift +++ b/submodules/InviteLinksUI/Sources/InviteLinkInviteController.swift @@ -494,7 +494,7 @@ public final class InviteLinkInviteController: ViewController { } controller.setItemGroups([ ActionSheetItemGroup(items: [ - ActionSheetTextItem(title: presentationData.strings.VideoChat_RevokeLink), + ActionSheetTextItem(title: presentationData.strings.GroupCall_RevokeLinkText), ActionSheetButtonItem(title: presentationData.strings.GroupInfo_InviteLink_RevokeLink, color: .destructive, action: { [weak self] in dismissAction() diff --git a/submodules/TelegramCallsUI/Sources/PresentationGroupCall.swift b/submodules/TelegramCallsUI/Sources/PresentationGroupCall.swift index bb7957c770..3b8178798e 100644 --- a/submodules/TelegramCallsUI/Sources/PresentationGroupCall.swift +++ b/submodules/TelegramCallsUI/Sources/PresentationGroupCall.swift @@ -2003,7 +2003,11 @@ public final class PresentationGroupCallImpl: PresentationGroupCall { self.updateSessionState(internalState: .established(info: joinCallResult.callInfo, connectionMode: joinCallResult.connectionMode, clientParams: clientParams, localSsrc: ssrc, initialState: joinCallResult.state), audioSessionControl: self.audioSessionControl) - self.e2eContext?.begin() + if let e2eState = joinCallResult.e2eState { + self.e2eContext?.begin(initialState: e2eState) + } else { + self.e2eContext?.begin(initialState: nil) + } }, error: { [weak self] error in guard let self else { return diff --git a/submodules/TelegramCallsUI/Sources/VideoChatEncryptionKeyComponent.swift b/submodules/TelegramCallsUI/Sources/VideoChatEncryptionKeyComponent.swift index 02cfbd82ca..83abd095f9 100644 --- a/submodules/TelegramCallsUI/Sources/VideoChatEncryptionKeyComponent.swift +++ b/submodules/TelegramCallsUI/Sources/VideoChatEncryptionKeyComponent.swift @@ -550,7 +550,7 @@ final class VideoChatEncryptionKeyComponent: Component { self.isUpdating = false } - #if DEBUG && true +#if DEBUG && false if self.component == nil { self.mockStateTimer = Foundation.Timer.scheduledTimer(withTimeInterval: 4.0, repeats: true, block: { [weak self] _ in guard let self else { diff --git a/submodules/TelegramCore/Sources/State/ConferenceCallE2EContext.swift b/submodules/TelegramCore/Sources/State/ConferenceCallE2EContext.swift index 07471dfedb..5914833d9b 100644 --- a/submodules/TelegramCore/Sources/State/ConferenceCallE2EContext.swift +++ b/submodules/TelegramCore/Sources/State/ConferenceCallE2EContext.swift @@ -79,7 +79,7 @@ public final class ConferenceCallE2EContext { self.synchronizeRemovedParticipantsTimer?.invalidate() } - func begin() { + func begin(initialState: JoinGroupCallResult.E2EState?) { self.scheduledSynchronizeRemovedParticipantsAfterPoll = true self.synchronizeRemovedParticipantsTimer = Foundation.Timer.scheduledTimer(withTimeInterval: 10.0, repeats: true, block: { [weak self] _ in guard let self else { @@ -88,6 +88,13 @@ public final class ConferenceCallE2EContext { self.synchronizeRemovedParticipants() }) + if let initialState { + self.e2ePoll0Offset = initialState.subChain0.offset + self.e2ePoll1Offset = initialState.subChain1.offset + self.addE2EBlocks(blocks: initialState.subChain0.blocks, subChainId: 0) + self.addE2EBlocks(blocks: initialState.subChain1.blocks, subChainId: 1) + } + self.e2ePoll(subChainId: 0) self.e2ePoll(subChainId: 1) } @@ -424,9 +431,9 @@ public final class ConferenceCallE2EContext { }) } - public func begin() { + public func begin(initialState: JoinGroupCallResult.E2EState?) { self.impl.with { impl in - impl.begin() + impl.begin(initialState: initialState) } } diff --git a/submodules/TelegramCore/Sources/TelegramEngine/Calls/GroupCalls.swift b/submodules/TelegramCore/Sources/TelegramEngine/Calls/GroupCalls.swift index 46b0773315..755d84711b 100644 --- a/submodules/TelegramCore/Sources/TelegramEngine/Calls/GroupCalls.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Calls/GroupCalls.swift @@ -587,11 +587,22 @@ public struct JoinGroupCallResult { case rtc case broadcast(isExternalStream: Bool) } + + public struct E2EState { + public let subChain0: (offset: Int, blocks: [Data]) + public let subChain1: (offset: Int, blocks: [Data]) + + public init(subChain0: (offset: Int, blocks: [Data]), subChain1: (offset: Int, blocks: [Data])) { + self.subChain0 = subChain0 + self.subChain1 = subChain1 + } + } public var callInfo: GroupCallInfo public var state: GroupCallParticipantsContext.State public var connectionMode: ConnectionMode public var jsonParams: String + public var e2eState: E2EState? } public class JoinGroupCallE2E { @@ -791,7 +802,7 @@ func _internal_joinGroupCall(account: Account, peerId: PeerId?, joinAs: PeerId?, connectionMode = .broadcast(isExternalStream: false) } - return account.postbox.transaction { transaction -> JoinGroupCallResult in + return account.postbox.transaction { transaction -> Signal in if let peerId { transaction.updatePeerCachedData(peerIds: Set([peerId]), update: { _, cachedData -> CachedPeerData? in if let cachedData = cachedData as? CachedChannelData { @@ -806,6 +817,9 @@ func _internal_joinGroupCall(account: Account, peerId: PeerId?, joinAs: PeerId?, var state = state + var e2eSubChain1State: (offset: Int, blocks: [Data])? + var e2eSubChain0State: (offset: Int, blocks: [Data])? + for update in updates.allUpdates { switch update { case let .updateGroupCallParticipants(_, participants, _): @@ -852,21 +866,41 @@ func _internal_joinGroupCall(account: Account, peerId: PeerId?, joinAs: PeerId?, } } } + case let .updateGroupCallChainBlocks(_, subChainId, blocks, nextOffset): + if subChainId == 0 { + e2eSubChain0State = (offset: Int(nextOffset), blocks: blocks.map { $0.makeData() }) + } else { + e2eSubChain1State = (offset: Int(nextOffset), blocks: blocks.map { $0.makeData() }) + } default: break } } + + var e2eState: JoinGroupCallResult.E2EState? + if let e2eSubChain0State, let e2eSubChain1State { + e2eState = JoinGroupCallResult.E2EState( + subChain0: e2eSubChain0State, + subChain1: e2eSubChain1State + ) + } + + if generateE2E != nil && e2eState == nil { + return .fail(.error(.generic)) + } state.participants.sort(by: { GroupCallParticipantsContext.Participant.compare(lhs: $0, rhs: $1, sortAscending: state.sortAscending) }) - return JoinGroupCallResult( + return .single(JoinGroupCallResult( callInfo: parsedCall, state: state, connectionMode: connectionMode, - jsonParams: parsedClientParams - ) + jsonParams: parsedClientParams, + e2eState: e2eState + )) } |> castError(InternalJoinError.self) + |> switchToLatest } } } diff --git a/submodules/TelegramPresentationData/Sources/Resources/PresentationResourceKey.swift b/submodules/TelegramPresentationData/Sources/Resources/PresentationResourceKey.swift index 6afe54e1d7..2dea72f9a3 100644 --- a/submodules/TelegramPresentationData/Sources/Resources/PresentationResourceKey.swift +++ b/submodules/TelegramPresentationData/Sources/Resources/PresentationResourceKey.swift @@ -336,6 +336,8 @@ public enum PresentationResourceKey: Int32 { case peerStatusLockedImage case expandDownArrowImage case expandSmallDownArrowImage + + case callListCallIcon } public enum ChatExpiredStoryIndicatorType: Hashable { diff --git a/submodules/TelegramPresentationData/Sources/Resources/PresentationResourcesRootController.swift b/submodules/TelegramPresentationData/Sources/Resources/PresentationResourcesRootController.swift index 0e4915686b..d486af773d 100644 --- a/submodules/TelegramPresentationData/Sources/Resources/PresentationResourcesRootController.swift +++ b/submodules/TelegramPresentationData/Sources/Resources/PresentationResourcesRootController.swift @@ -199,4 +199,10 @@ public struct PresentationResourcesRootController { return generateTintedImage(image: UIImage(bundleImageName: "Peer Info/SortIcon"), color: .white) }) } + + public static func callListCallIcon(_ theme: PresentationTheme) -> UIImage? { + return theme.image(PresentationResourceKey.callListCallIcon.rawValue, { theme in + return generateTintedImage(image: UIImage(bundleImageName: "Call List/NewCallListIcon"), color: theme.rootController.navigationBar.accentTextColor) + }) + } } diff --git a/submodules/TelegramUI/Images.xcassets/Call List/NewCallListIcon.imageset/Contents.json b/submodules/TelegramUI/Images.xcassets/Call List/NewCallListIcon.imageset/Contents.json new file mode 100644 index 0000000000..91489efbe6 --- /dev/null +++ b/submodules/TelegramUI/Images.xcassets/Call List/NewCallListIcon.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "filename" : "newcall_30.pdf", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/submodules/TelegramUI/Images.xcassets/Call List/NewCallListIcon.imageset/newcall_30.pdf b/submodules/TelegramUI/Images.xcassets/Call List/NewCallListIcon.imageset/newcall_30.pdf new file mode 100644 index 0000000000000000000000000000000000000000..4a915649db0efeb51e765796c4158a3cb242e125 GIT binary patch literal 4933 zcmai2c{J4T_cz%Gku_^0yD$bbj3oP(Wh}|gFe4+3WroSVl|-^+-^r3l*6i70L|IDN zBb2@DlK9c5`h5F+f9L$3Ki=}W3?LE0gFQa(&(byuH&3QQc#%e zFGL?CeJm*|0=;maXrwEUkWrI_K`@Q7c4K{Z?ui2c=It%F^^!;`Z;R)I2D{`j#*-ka z85mow&lrZBQCB0gQle1ja>tpW7|s|@P>_?GScTF8U&_hdDB`5O-MneuXy1KKugOW6=K)!yff*f-Jo8 zjNo;hJuPlSSTeV{y}6=@N>Ya&Q;!@wlG5!IWe@K#$VKtPQ3e$|k;JvM)b*$%>*z+$ zYgE?O{ZpW98l_F~Cu$Gi=Tv*$&MK+tM^n5FW*s2y3I@0Yle$x^wQ}x-DKP-gw>h_x zQ-jFwD6x)^)P^b`NOppMzLGRutDdil!a+&ij+{1Q&e0 zLf{}r@IL_RP`*%t7>b#IM1d?3jJdGf4a0(BXA{yAy5X>fu=qSd!*hdXGAw$U(gUxZ zE^h&4*fL|L!X?y_^9^#+2PYRUE}Yq7-oJ1=bg(rAnIY+-OD4#ZaI2@|fxRG9@s zPL<(J>HZlL+ARiws<{YSk+lcHcT+0UjWp}kZt8vmX(m?1I`pp3!FsO}p}pI^&GAA+ zPNE;NJjqtbRy4@;FzMjoDdjdqNI|RN$U{V~yFOA2X%ScARCcyFCC{vwV6>k0v5rx{ z2hn30S@hsBPIobWNSH-^IKQ&kY6<2{w=IQ_zFojRI8v=<0az8X0K4j#Ymb`3b>Wuv zD&LwaO~?!Ei`z}LO+}30`BKFjn2=AW?vo#oH?qozE!cjw!RMAVirPYLYYg#9+X)=j zuPnv2UCS+^#`y5n4UhIcx5c(QmXe2s*oIi;!E+LQwgkr+QaZB^6FxJC<}S#+bdEP^ z7HKVMm^4Z#7^Cm}$f^E@fODb~-bv5NxW>AMd`w`Bt=e`Vagk>W<;&iju2_(tJ6psz z_-JTxICT&@WSyIyKVJM@>wa7H)R zjYHPWobF)l@Zh`3S34-5@0%ad#q1zEi<@GRmO)Tx_a#(YckST|qvyWxxiPqJ)A0#iGk&s~^e;*99 z=(Dw|BD__9e{0rg{ye^*v8#>;pV+Wi=P^+-nbojdzd3PZGTSeO!0(%}L72zPi)^@T z`1gC-yQ1*ExlR7f8_mAWiA~oC$$po22Dc-3AMK`Y)NERR8DET8r};X*EZg}G;cnus6AI_36r4j58xj2jc>^;nT^IN-G_=oky;)Tqdrl+yJ*r)`15AIbd@gSBZ2@kV`Sf&Jcl`W20-^ecCG~b=|-SS=A ze?lkES?hLobfKccnW^Q-#w?%F*!ctv6z6tj$lo5EkfvCnQ{Z}blLO~zkr znDp@r$g;{3#yUl8#_(Mnyhwi0&qsU=@BaS1zs=$HsmGy1q5Zce+Ltez9U*o)R@Uk! zo7H#JBX;d}sdj1C@Z)}YW)%eM^@Wy#?`c;S1ilGicgshE%HGy)5dj|oJpjyTeC4~a zeac;~1FI~AB4WmT(Cm?6{o{=vyi>V{9cvMsF-|-pavO`q(+ka_A4)zscPtG#j5wrr zXAOrBZygX1DxR1&*XHc>ddzq%Mou$L;!or8LQs9y;g0S2{Yc}%BDbTtZQ~oH`MD*A z1r^gWa^mnGA3vvLQ}&Z(EXwyPjDL-411IXeEj(~6zUjJYaz!Po8d_QNCF7|63G8!i zp{;n}rKu-xY&>kf`5RJJ@I7Xu;lZnYpV4DTUc$Y15v@m-ty6tYPP4xnj%Wc-{ zJs)-Fe{R2;{CM?!#*@s(*G*HN9fum5dX4FN&qsf}dwb)9TA0xNAVvclrIv zeel$JgV(&o_qBT=XwrbN3lv}I)akXqtgqesV9;{3uly-2bw->XLce)VL_sv5biHmr zvL`{~QS;Wpo%h67MZ5+Pn)UhMp#Hrdn`Ud$FRO+=kM%Eixps{U`3t%|H~VJ4f*$Kl z?PEVg`i%G+g~u`$nU0>+`-GC%gLUpA)hemnP8F=LN- zFtRCf@Mbf$w7;$&ZL8Z-9YD9Y?+!zI?_8v}Z`*MkTrJ~XU1f*S-e_RE9K)y0`Ud?v zCNV8T^vs~@kerobrgCy>;!(Om3BbT)a=HJ`KfD4QGI z&&-^mBz+hXgr5}Ix);RMUHC^MTr%{VhyNMdJ1$V&)_z8+*|;AxH&0c7u4=JSEe3JE zIcnK_zHFKOp{XJzTRdx78tPi6#gGjuth#02qD73ucWP%{U>JR<=Ngsd1(tlt}5LjDPRR!sVMuASasu9Tg#LZ7*nLoQuxT`AG1?y?-j&wl( zq_V0I(1{nLV;XwGM1R{r|FZdiNiFQe#ot^O;F_cy!zW9tzKaKzld7E&iF@$QD-@(D z$$%P^R+8MM+#q^3mO$1Ehd-SErX6T>IGe7}@&kX+mi@VZ_JgWLd4GNoPhe2?)Q4A} zTAnT834xcV-UnVf@IRF69G`mEe7X7=q~XrxmLT2(nKOTG6 z#x99vHsB|>NmKhpp-WSc1Jp`oU@jrZJcujrW`3i;`g}A_vu)_G=^OiE%*v!2s6>>MTSdP++bJ;NyUqY>SSVY#$Ag}%Ut6K)PROj0^9`HnI zdQy@Wk6>45`sD?5=9e-SFo|)BF+r!Xj9z#@qFZfV6t87#^L~zeu$KXJjpAX1xSOEJ zb{w6EWN09>oJ=!o-Kot}FA`dv-Ha2{--(IczGSMwrFc#%y^p*4f`yATH$A&vgM^u4 zt^>_w`mMw7I(i*tJV*KYzU>X(itI>~peHuj)*j;d%EiBvCMmt=1*WtaV{_ z#BNHDnuQs>V2-WWUjp{lpe|eupEpw#ik$&C;@D%yMzt6qtD93(DwH9*e0b&8u~k}5 z@_0GD#p0EX>t6AS`y>;e&?^BV!vLT({qT5Yi&rOzUI^;}EgQ@!aZU<%;8S zOoiTeX^rWX!>X#&-}%&Tgmg_~{g}+3=5Xwh%EZ4sq-G3Rp?*?e!X4WHp@lkk_-Zog za)_qXkY_4(qe8G8p`L58&e!=P{X_Ca;8$!=DIf`c~Sr-DrqXStUXB4$A+>) zA6X<(Z|d2~-bgs(6ls|-MxlyLUufEK10(Z&eVnLQ#L}f1*Dt(E&3c+`8C3ToJs z1Fk-R8%pCJ0(IWImsB8H2G`GSJ?LN_PZhS^dE^3nlFm*&+ZqtfDEumqD||3gRMa!v zc}H+@z%-3om6YXdd#Zu{f(k^k3ABNp9KitFib3U|a8H}JFa0-i$5QW{QAHJKW@#T^6A9`p&$A3p`fGrQe5#T5g*FO>e zh2*Xg3y-)u z`>bL!Do?AAO24^QM5#bQk;rAq%r>`)x`w)JPO!Q@8N0WLgzy&`>tw{~zi8%F5zLn? zT%{BI(k9=nO=En$2OUUDldhRw#VtZ#*yzz*MYllWmzqo>oC(T{yQ<_Wy8yHH8BpQR zUn_jreb8S^VSM}P$itOOVx@R=-~~~7R1P!m(F@}cl9WJIR(S>o8JleFbEEQo0D2V_ zv6KuI6ZQn_2$9I#;;o20d78J>_8Mny)QdDkzbL=RRizi6grKd3UACajyD6OumwkK~ z`c+6z`%cXvMMy)=Y8JyS^f`zY^Q0!Zoy@hG?D_#-6jE47UcfARjTm`rJ!eE8HsEgM zK2okv)+cLH7gH*0S)A247Dg3uU1T}Ye%H>Dky1V^`N1?TC-%ZXC~ROenE#aid~14l ztWReO)G@;krFqV2f;(+xHco8~)T^)yo!WB^(Rp0>+m5n#w^qokUlbii*wC%}>i=L@+@U`tF~Zv!e>q_^b5 zq~^AjT!jIy0^x#>*coQi$7e%54dgAk!E8i_?(tiPA--F$`i}ZF2$jNzhpT%Y2R9EW zi`$%6|Budc@^b$(*nr4L!T-GfvVY*8^A0yREY1sLY5i+(VRF;`c=UllUjIGY&_kmz zNEIvrWC@a#ko>v+6{P<_|4P3-8KJ$fcuxnk7wDu*owSgXA&M&24Tp9+KJlat{RR<8 z&tnWE_Y3-uW_1GnJDje?mpXB{>kcITb{j7ux3@QZ_5KuSJ_#fB| Brvm^0 literal 0 HcmV?d00001 From dcde323740f411e72b6d95521d528adef512c90f Mon Sep 17 00:00:00 2001 From: Isaac <> Date: Fri, 11 Apr 2025 17:16:36 +0400 Subject: [PATCH 04/10] Conference --- .../Sources/ContactSelectionController.swift | 10 ++++++++-- .../CallListUI/Sources/CallListControllerNode.swift | 2 +- .../TelegramCallsUI/Sources/CallController.swift | 1 + .../TelegramCallsUI/Sources/VideoChatScreen.swift | 9 +++++++++ .../StoryItemSetContainerViewSendMessage.swift | 2 +- submodules/TelegramUI/Sources/ChatController.swift | 2 +- .../Sources/ChatControllerOpenAttachmentMenu.swift | 4 ++-- .../Sources/ContactSelectionController.swift | 12 +++++++----- submodules/TelegramUI/Sources/OpenResolvedUrl.swift | 5 +++++ 9 files changed, 35 insertions(+), 12 deletions(-) diff --git a/submodules/AccountContext/Sources/ContactSelectionController.swift b/submodules/AccountContext/Sources/ContactSelectionController.swift index 191e464c78..4b1ae89cca 100644 --- a/submodules/AccountContext/Sources/ContactSelectionController.swift +++ b/submodules/AccountContext/Sources/ContactSelectionController.swift @@ -99,6 +99,12 @@ public enum ContactListPeer: Equatable { } public final class ContactSelectionControllerParams { + public enum MultipleSelectionMode { + case disabled + case possible + case always + } + public let context: AccountContext public let updatedPresentationData: (initial: PresentationData, signal: Signal)? public let mode: ContactSelectionControllerMode @@ -107,7 +113,7 @@ public final class ContactSelectionControllerParams { public let options: Signal<[ContactListAdditionalOption], NoError> public let displayDeviceContacts: Bool public let displayCallIcons: Bool - public let multipleSelection: Bool + public let multipleSelection: MultipleSelectionMode public let requirePhoneNumbers: Bool public let allowChannelsInSearch: Bool public let confirmation: (ContactListPeer) -> Signal @@ -124,7 +130,7 @@ public final class ContactSelectionControllerParams { options: Signal<[ContactListAdditionalOption], NoError> = .single([]), displayDeviceContacts: Bool = false, displayCallIcons: Bool = false, - multipleSelection: Bool = false, + multipleSelection: MultipleSelectionMode = .disabled, requirePhoneNumbers: Bool = false, allowChannelsInSearch: Bool = false, confirmation: @escaping (ContactListPeer) -> Signal = { _ in .single(true) }, diff --git a/submodules/CallListUI/Sources/CallListControllerNode.swift b/submodules/CallListUI/Sources/CallListControllerNode.swift index dfb1a324e2..cd9c6c87be 100644 --- a/submodules/CallListUI/Sources/CallListControllerNode.swift +++ b/submodules/CallListUI/Sources/CallListControllerNode.swift @@ -525,7 +525,7 @@ final class CallListControllerNode: ASDisplayNode { |> mapToQueue { (updateAndType, state, groupCalls, showCallsTab, currentGroupCallPeerId) -> Signal in let (update, type) = updateAndType - let processedView = CallListNodeView(originalView: update.view, filteredEntries: callListNodeEntriesForView(view: update.view, displayOpenNewCall: mode == .tab, groupCalls: groupCalls, state: state, showSettings: showSettings, showCallsTab: showCallsTab, isRecentCalls: type == .all, currentGroupCallPeerId: currentGroupCallPeerId), presentationData: state.presentationData) + let processedView = CallListNodeView(originalView: update.view, filteredEntries: callListNodeEntriesForView(view: update.view, displayOpenNewCall: mode == .tab && type == .all, groupCalls: groupCalls, state: state, showSettings: showSettings, showCallsTab: showCallsTab, isRecentCalls: type == .all, currentGroupCallPeerId: currentGroupCallPeerId), presentationData: state.presentationData) let previous = previousView.swap(processedView) let previousType = previousType.swap(type) diff --git a/submodules/TelegramCallsUI/Sources/CallController.swift b/submodules/TelegramCallsUI/Sources/CallController.swift index 37fa2064c5..c7dd71d3fc 100644 --- a/submodules/TelegramCallsUI/Sources/CallController.swift +++ b/submodules/TelegramCallsUI/Sources/CallController.swift @@ -517,6 +517,7 @@ public final class CallController: ViewController { }, options: .single(options), displayCallIcons: true, + multipleSelection: .disabled, confirmation: { peer in switch peer { case let .peer(peer, _, _): diff --git a/submodules/TelegramCallsUI/Sources/VideoChatScreen.swift b/submodules/TelegramCallsUI/Sources/VideoChatScreen.swift index cc82d746a5..906d5277ad 100644 --- a/submodules/TelegramCallsUI/Sources/VideoChatScreen.swift +++ b/submodules/TelegramCallsUI/Sources/VideoChatScreen.swift @@ -2706,6 +2706,15 @@ final class VideoChatScreenComponent: Component { } else if let expandedParticipantsVideoState = self.expandedParticipantsVideoState, !expandedParticipantsVideoState.isUIHidden { displayVideoControlButton = false } + if case .audio = videoControlButtonContent { + if let (availableOutputs, _) = self.audioOutputState { + if availableOutputs.count <= 0 { + displayVideoControlButton = false + } + } else { + displayVideoControlButton = false + } + } let videoControlButtonSize = self.videoControlButton.update( transition: transition, diff --git a/submodules/TelegramUI/Components/Stories/StoryContainerScreen/Sources/StoryItemSetContainerViewSendMessage.swift b/submodules/TelegramUI/Components/Stories/StoryContainerScreen/Sources/StoryItemSetContainerViewSendMessage.swift index 3f256ea534..2979941dea 100644 --- a/submodules/TelegramUI/Components/Stories/StoryContainerScreen/Sources/StoryItemSetContainerViewSendMessage.swift +++ b/submodules/TelegramUI/Components/Stories/StoryContainerScreen/Sources/StoryItemSetContainerViewSendMessage.swift @@ -1722,7 +1722,7 @@ final class StoryItemSetContainerSendMessage { case .contact: let theme = component.theme let updatedPresentationData: (initial: PresentationData, signal: Signal) = (component.context.sharedContext.currentPresentationData.with({ $0 }).withUpdated(theme: theme), component.context.sharedContext.presentationData |> map { $0.withUpdated(theme: theme) }) - let contactsController = component.context.sharedContext.makeContactSelectionController(ContactSelectionControllerParams(context: component.context, updatedPresentationData: updatedPresentationData, title: { $0.Contacts_Title }, displayDeviceContacts: true, multipleSelection: true)) + let contactsController = component.context.sharedContext.makeContactSelectionController(ContactSelectionControllerParams(context: component.context, updatedPresentationData: updatedPresentationData, title: { $0.Contacts_Title }, displayDeviceContacts: true, multipleSelection: .always)) contactsController.presentScheduleTimePicker = { [weak self, weak view] completion in guard let self, let view else { return diff --git a/submodules/TelegramUI/Sources/ChatController.swift b/submodules/TelegramUI/Sources/ChatController.swift index c89712de75..41f9fae58f 100644 --- a/submodules/TelegramUI/Sources/ChatController.swift +++ b/submodules/TelegramUI/Sources/ChatController.swift @@ -2898,7 +2898,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G return } - if let currentGroupCallController = self.context.sharedContext as? VoiceChatController, case let .group(groupCall) = currentGroupCallController.call, let currentCallId = groupCall.callId, currentCallId == conferenceCall.callId { + if let currentGroupCallController = self.context.sharedContext.currentGroupCallController as? VoiceChatController, case let .group(groupCall) = currentGroupCallController.call, let currentCallId = groupCall.callId, currentCallId == conferenceCall.callId { self.context.sharedContext.navigateToCurrentCall() return } diff --git a/submodules/TelegramUI/Sources/ChatControllerOpenAttachmentMenu.swift b/submodules/TelegramUI/Sources/ChatControllerOpenAttachmentMenu.swift index 7f6a694b9b..94670977dc 100644 --- a/submodules/TelegramUI/Sources/ChatControllerOpenAttachmentMenu.swift +++ b/submodules/TelegramUI/Sources/ChatControllerOpenAttachmentMenu.swift @@ -424,7 +424,7 @@ extension ChatControllerImpl { let _ = currentLocationController.swap(controller) }) case .contact: - let contactsController = ContactSelectionControllerImpl(ContactSelectionControllerParams(context: strongSelf.context, updatedPresentationData: strongSelf.updatedPresentationData, title: { $0.Contacts_Title }, displayDeviceContacts: true, multipleSelection: true, requirePhoneNumbers: true)) + let contactsController = ContactSelectionControllerImpl(ContactSelectionControllerParams(context: strongSelf.context, updatedPresentationData: strongSelf.updatedPresentationData, title: { $0.Contacts_Title }, displayDeviceContacts: true, multipleSelection: .always, requirePhoneNumbers: true)) contactsController.presentScheduleTimePicker = { [weak self] completion in if let strongSelf = self { strongSelf.presentScheduleTimePicker(completion: completion) @@ -1620,7 +1620,7 @@ extension ChatControllerImpl { } func presentContactPicker() { - let contactsController = ContactSelectionControllerImpl(ContactSelectionControllerParams(context: self.context, updatedPresentationData: self.updatedPresentationData, title: { $0.Contacts_Title }, displayDeviceContacts: true, multipleSelection: true)) + let contactsController = ContactSelectionControllerImpl(ContactSelectionControllerParams(context: self.context, updatedPresentationData: self.updatedPresentationData, title: { $0.Contacts_Title }, displayDeviceContacts: true, multipleSelection: .always)) contactsController.navigationPresentation = .modal self.chatDisplayNode.dismissInput() self.effectiveNavigationController?.pushViewController(contactsController) diff --git a/submodules/TelegramUI/Sources/ContactSelectionController.swift b/submodules/TelegramUI/Sources/ContactSelectionController.swift index e8b191c343..a0946cb004 100644 --- a/submodules/TelegramUI/Sources/ContactSelectionController.swift +++ b/submodules/TelegramUI/Sources/ContactSelectionController.swift @@ -40,7 +40,7 @@ class ContactSelectionControllerImpl: ViewController, ContactSelectionController private let options: Signal<[ContactListAdditionalOption], NoError> private let displayDeviceContacts: Bool private let displayCallIcons: Bool - private let multipleSelection: Bool + private let multipleSelection: ContactSelectionControllerParams.MultipleSelectionMode private let requirePhoneNumbers: Bool private let allowChannelsInSearch: Bool @@ -153,15 +153,17 @@ class ContactSelectionControllerImpl: ViewController, ContactSelectionController } }) - if !params.multipleSelection { + if self.multipleSelection != .always { self.searchContentNode = NavigationBarSearchContentNode(theme: self.presentationData.theme, placeholder: self.presentationData.strings.Common_Search, activate: { [weak self] in self?.activateSearch() }) self.navigationBar?.setContentNode(self.searchContentNode, animated: false) } - if params.multipleSelection { + if self.multipleSelection == .always { self.navigationItem.rightBarButtonItem = UIBarButtonItem(image: PresentationResourcesRootController.navigationCompactSearchIcon(self.presentationData.theme), style: .plain, target: self, action: #selector(self.beginSearch)) + } else if self.multipleSelection == .possible { + self.navigationItem.rightBarButtonItem = UIBarButtonItem(title: self.presentationData.strings.Common_Select, style: .plain, target: self, action: #selector(self.beginSelection)) } self.getCurrentSendMessageContextMediaPreview = { [weak self] in @@ -220,7 +222,7 @@ class ContactSelectionControllerImpl: ViewController, ContactSelectionController } override func loadDisplayNode() { - self.displayNode = ContactSelectionControllerNode(context: self.context, mode: self.mode, presentationData: self.presentationData, options: self.options, displayDeviceContacts: self.displayDeviceContacts, displayCallIcons: self.displayCallIcons, multipleSelection: self.multipleSelection, requirePhoneNumbers: self.requirePhoneNumbers, allowChannelsInSearch: self.allowChannelsInSearch, isPeerEnabled: self.isPeerEnabled) + self.displayNode = ContactSelectionControllerNode(context: self.context, mode: self.mode, presentationData: self.presentationData, options: self.options, displayDeviceContacts: self.displayDeviceContacts, displayCallIcons: self.displayCallIcons, multipleSelection: self.multipleSelection == .always, requirePhoneNumbers: self.requirePhoneNumbers, allowChannelsInSearch: self.allowChannelsInSearch, isPeerEnabled: self.isPeerEnabled) self._ready.set(self.contactsNode.contactListNode.ready) self.contactsNode.navigationBar = self.navigationBar @@ -335,7 +337,7 @@ class ContactSelectionControllerImpl: ViewController, ContactSelectionController if let searchContentNode = self.searchContentNode as? NavigationBarSearchContentNode { self.contactsNode.activateSearch(placeholderNode: searchContentNode.placeholderNode) self.setDisplayNavigationBar(false, transition: .animated(duration: 0.5, curve: .spring)) - } else if self.multipleSelection { + } else if self.multipleSelection == .always { let contentNode = ContactsSearchNavigationContentNode(presentationData: self.presentationData, dismissSearch: { [weak self] in if let strongSelf = self, let navigationBar = strongSelf.navigationBar, let searchContentNode = strongSelf.searchContentNode as? ContactsSearchNavigationContentNode { searchContentNode.deactivate() diff --git a/submodules/TelegramUI/Sources/OpenResolvedUrl.swift b/submodules/TelegramUI/Sources/OpenResolvedUrl.swift index b313960db0..10a241d5ee 100644 --- a/submodules/TelegramUI/Sources/OpenResolvedUrl.swift +++ b/submodules/TelegramUI/Sources/OpenResolvedUrl.swift @@ -394,6 +394,11 @@ func openResolvedUrlImpl( let _ = (signal |> deliverOnMainQueue).startStandalone(next: { [weak navigationController] resolvedCallLink in + if let currentGroupCallController = context.sharedContext.currentGroupCallController as? VoiceChatController, case let .group(groupCall) = currentGroupCallController.call, let currentCallId = groupCall.callId, currentCallId == resolvedCallLink.id { + context.sharedContext.navigateToCurrentCall() + return + } + navigationController?.pushViewController(context.sharedContext.makeJoinSubjectScreen(context: context, mode: JoinSubjectScreenMode.groupCall(JoinSubjectScreenMode.GroupCall( id: resolvedCallLink.id, accessHash: resolvedCallLink.accessHash, From 6ee705e7867c27c7f86c5173f65e1b3f5e1453fb Mon Sep 17 00:00:00 2001 From: Isaac <> Date: Fri, 11 Apr 2025 17:53:56 +0400 Subject: [PATCH 05/10] Support Muted by admin in conference --- .../VideoChatActionButtonComponent.swift | 4 +-- .../Sources/VideoChatMicButtonComponent.swift | 27 +++++++++++++------ .../Sources/VideoChatScreen.swift | 7 +++-- 3 files changed, 26 insertions(+), 12 deletions(-) diff --git a/submodules/TelegramCallsUI/Sources/VideoChatActionButtonComponent.swift b/submodules/TelegramCallsUI/Sources/VideoChatActionButtonComponent.swift index 5a68054ee1..5879d044a0 100644 --- a/submodules/TelegramCallsUI/Sources/VideoChatActionButtonComponent.swift +++ b/submodules/TelegramCallsUI/Sources/VideoChatActionButtonComponent.swift @@ -65,9 +65,9 @@ final class VideoChatActionButtonComponent: Component { } } - enum MicrophoneState { + enum MicrophoneState: Equatable { case connecting - case muted + case muted(forced: Bool) case unmuted case raiseHand case scheduled diff --git a/submodules/TelegramCallsUI/Sources/VideoChatMicButtonComponent.swift b/submodules/TelegramCallsUI/Sources/VideoChatMicButtonComponent.swift index 80c340ef08..4a057d4354 100644 --- a/submodules/TelegramCallsUI/Sources/VideoChatMicButtonComponent.swift +++ b/submodules/TelegramCallsUI/Sources/VideoChatMicButtonComponent.swift @@ -182,7 +182,7 @@ final class VideoChatMicButtonComponent: Component { enum Content: Equatable { case connecting - case muted + case muted(forced: Bool) case unmuted(pushToTalk: Bool) case raiseHand(isRaised: Bool) case scheduled(state: ScheduledState) @@ -263,9 +263,13 @@ final class VideoChatMicButtonComponent: Component { switch component.content { case .connecting, .unmuted, .raiseHand, .scheduled: self.beginTrackingWasPushToTalk = false - case .muted: - self.beginTrackingWasPushToTalk = true - component.updateUnmutedStateIsPushToTalk(true) + case let .muted(forced): + if forced { + self.beginTrackingWasPushToTalk = false + } else { + self.beginTrackingWasPushToTalk = true + component.updateUnmutedStateIsPushToTalk(true) + } } } @@ -291,8 +295,11 @@ final class VideoChatMicButtonComponent: Component { switch component.content { case .connecting: break - case .muted: - component.updateUnmutedStateIsPushToTalk(false) + case let .muted(forced): + if forced { + } else { + component.updateUnmutedStateIsPushToTalk(false) + } case .unmuted: if self.beginTrackingWasPushToTalk { if timestamp < self.beginTrackingTimestamp + 0.15 { @@ -340,8 +347,12 @@ final class VideoChatMicButtonComponent: Component { case .connecting: titleText = component.strings.VoiceChat_Connecting isEnabled = false - case .muted: - titleText = component.strings.VoiceChat_Unmute + case let .muted(forced): + if forced { + titleText = component.strings.VoiceChat_MutedByAdmin + } else { + titleText = component.strings.VoiceChat_Unmute + } case let .unmuted(isPushToTalk): titleText = isPushToTalk ? component.strings.VoiceChat_Live : component.strings.VoiceChat_Mute case let .raiseHand(isRaised): diff --git a/submodules/TelegramCallsUI/Sources/VideoChatScreen.swift b/submodules/TelegramCallsUI/Sources/VideoChatScreen.swift index 906d5277ad..dab1867904 100644 --- a/submodules/TelegramCallsUI/Sources/VideoChatScreen.swift +++ b/submodules/TelegramCallsUI/Sources/VideoChatScreen.swift @@ -2553,9 +2553,12 @@ final class VideoChatScreenComponent: Component { micButtonContent = .unmuted(pushToTalk: self.isPushToTalkActive) actionButtonMicrophoneState = .unmuted } else { - micButtonContent = .muted - actionButtonMicrophoneState = .muted + micButtonContent = .muted(forced: false) + actionButtonMicrophoneState = .muted(forced: false) } + } else if isConference { + micButtonContent = .muted(forced: true) + actionButtonMicrophoneState = .muted(forced: true) } else { micButtonContent = .raiseHand(isRaised: callState.raisedHand) actionButtonMicrophoneState = .raiseHand From c6ff9717d4fc344f81c658031b6f45e6c167a682 Mon Sep 17 00:00:00 2001 From: Isaac <> Date: Fri, 11 Apr 2025 20:08:27 +0400 Subject: [PATCH 06/10] Conference --- .../Telegram-iOS/en.lproj/Localizable.strings | 4 ++-- .../Sources/VideoChatMicButtonComponent.swift | 12 +++++++++--- .../Sources/VideoChatScreen.swift | 3 +++ .../ChatMessageCallBubbleContentNode.swift | 2 +- submodules/TelegramUI/Sources/AppDelegate.swift | 16 ++++++++++++++++ .../ContactMultiselectionController.swift | 4 ++++ 6 files changed, 35 insertions(+), 6 deletions(-) diff --git a/Telegram/Telegram-iOS/en.lproj/Localizable.strings b/Telegram/Telegram-iOS/en.lproj/Localizable.strings index ab0406233a..3c508b2d67 100644 --- a/Telegram/Telegram-iOS/en.lproj/Localizable.strings +++ b/Telegram/Telegram-iOS/en.lproj/Localizable.strings @@ -14118,8 +14118,8 @@ Sorry for the inconvenience."; "CallList.ToastCallLinkCopied.Text" = "Call link copied"; "CallList.ToastCallLinkCopied.Action" = "View Call"; -"CallList.NewCall" = "New Call"; -"CallList.NewCallLink" = "New Call Link"; +"CallList.NewCall" = "Start New Call"; +"CallList.NewCallLink" = "Create Call Link"; "Chat.SendStarsToBecomeTopInfo" = "Send %@ or more to highlight your profile"; diff --git a/submodules/TelegramCallsUI/Sources/VideoChatMicButtonComponent.swift b/submodules/TelegramCallsUI/Sources/VideoChatMicButtonComponent.swift index 4a057d4354..6156b426d7 100644 --- a/submodules/TelegramCallsUI/Sources/VideoChatMicButtonComponent.swift +++ b/submodules/TelegramCallsUI/Sources/VideoChatMicButtonComponent.swift @@ -444,7 +444,9 @@ final class VideoChatMicButtonComponent: Component { context.fill(CGRect(origin: CGPoint(), size: size)) case .muted, .unmuted, .raiseHand, .scheduled: let colors: [UIColor] - if case .muted = component.content { + if case .muted(forced: true) = component.content { + colors = [UIColor(rgb: 0x3252EF), UIColor(rgb: 0xC64688)] + } else if case .muted(forced: false) = component.content { colors = [UIColor(rgb: 0x0080FF), UIColor(rgb: 0x00A1FE)] } else if case .raiseHand = component.content { colors = [UIColor(rgb: 0x3252EF), UIColor(rgb: 0xC64688)] @@ -617,7 +619,9 @@ final class VideoChatMicButtonComponent: Component { transition.setScale(view: blobView, scale: availableSize.width / 116.0) let blobsColor: UIColor - if case .muted = component.content { + if case .muted(forced: true) = component.content { + blobsColor = UIColor(rgb: 0x914BAD) + } else if case .muted(forced: false) = component.content { blobsColor = UIColor(rgb: 0x0086FF) } else if case .raiseHand = component.content { blobsColor = UIColor(rgb: 0x914BAD) @@ -668,7 +672,9 @@ final class VideoChatMicButtonComponent: Component { } let glowColor: UIColor - if case .muted = component.content { + if case .muted(forced: true) = component.content { + glowColor = UIColor(rgb: 0x3252EF) + } else if case .muted(forced: false) = component.content { glowColor = UIColor(rgb: 0x0086FF) } else if case .raiseHand = component.content { glowColor = UIColor(rgb: 0x3252EF) diff --git a/submodules/TelegramCallsUI/Sources/VideoChatScreen.swift b/submodules/TelegramCallsUI/Sources/VideoChatScreen.swift index dab1867904..249521f415 100644 --- a/submodules/TelegramCallsUI/Sources/VideoChatScreen.swift +++ b/submodules/TelegramCallsUI/Sources/VideoChatScreen.swift @@ -2718,6 +2718,9 @@ final class VideoChatScreenComponent: Component { displayVideoControlButton = false } } + if videoControlButtonContent == videoButtonContent { + displayVideoControlButton = false + } let videoControlButtonSize = self.videoControlButton.update( transition: transition, diff --git a/submodules/TelegramUI/Components/Chat/ChatMessageCallBubbleContentNode/Sources/ChatMessageCallBubbleContentNode.swift b/submodules/TelegramUI/Components/Chat/ChatMessageCallBubbleContentNode/Sources/ChatMessageCallBubbleContentNode.swift index 2bebc550ab..29f242f634 100644 --- a/submodules/TelegramUI/Components/Chat/ChatMessageCallBubbleContentNode/Sources/ChatMessageCallBubbleContentNode.swift +++ b/submodules/TelegramUI/Components/Chat/ChatMessageCallBubbleContentNode/Sources/ChatMessageCallBubbleContentNode.swift @@ -278,7 +278,7 @@ public class ChatMessageCallBubbleContentNode: ChatMessageBubbleContentNode { var avatarsWidth: CGFloat = 0.0 if !peopleAvatars.isEmpty { avatarsWidth += avatarsLeftInset - avatarsWidth += 1.0 * peopleAvatarSize + CGFloat(peopleAvatars.count - 1) * peopleAvatarSpacing + avatarsWidth += 1.0 * peopleAvatarSize + CGFloat(min(3, peopleAvatars.count) - 1) * peopleAvatarSpacing avatarsWidth += avatarsRightInset labelsWidth += avatarsWidth } diff --git a/submodules/TelegramUI/Sources/AppDelegate.swift b/submodules/TelegramUI/Sources/AppDelegate.swift index 75b293b704..299138d62f 100644 --- a/submodules/TelegramUI/Sources/AppDelegate.swift +++ b/submodules/TelegramUI/Sources/AppDelegate.swift @@ -1977,6 +1977,22 @@ private func extractAccountManagerState(records: AccountRecordsView Date: Fri, 11 Apr 2025 20:08:41 +0400 Subject: [PATCH 07/10] Remove embedded td --- third-party/td/td/.clang-format | 194 - third-party/td/td/.gitattributes | 39 - third-party/td/td/.gitignore | 8 - third-party/td/td/CHANGELOG.md | 1520 - .../td/td/CMake/AddCXXCompilerFlag.cmake | 74 - third-party/td/td/CMake/FindAtomics.cmake | 62 - third-party/td/td/CMake/FindReadline.cmake | 25 - .../td/td/CMake/GeneratePkgConfig.cmake | 99 - .../td/CMake/GetGitRevisionDescription.cmake | 127 - .../CMake/GetGitRevisionDescription.cmake.in | 43 - .../td/td/CMake/PreventInSourceBuild.cmake | 14 - third-party/td/td/CMake/TdSetUpCompiler.cmake | 185 - third-party/td/td/CMake/iOS.cmake | 278 - third-party/td/td/CMake/illumos.cmake | 10 - third-party/td/td/CMakeLists.txt | 1449 - third-party/td/td/Doxyfile | 2473 - third-party/td/td/LICENSE_1_0.txt | 23 - third-party/td/td/README.md | 145 - third-party/td/td/SplitSource.php | 511 - third-party/td/td/TdConfig.cmake | 8 - third-party/td/td/benchmark/CMakeLists.txt | 93 - third-party/td/td/benchmark/bench_actor.cpp | 349 - third-party/td/td/benchmark/bench_crypto.cpp | 528 - third-party/td/td/benchmark/bench_db.cpp | 244 - third-party/td/td/benchmark/bench_empty.cpp | 8 - .../td/td/benchmark/bench_handshake.cpp | 72 - third-party/td/td/benchmark/bench_http.cpp | 77 - .../td/td/benchmark/bench_http_reader.cpp | 119 - .../td/td/benchmark/bench_http_server.cpp | 84 - .../td/benchmark/bench_http_server_cheat.cpp | 132 - .../td/benchmark/bench_http_server_fast.cpp | 116 - third-party/td/td/benchmark/bench_log.cpp | 160 - third-party/td/td/benchmark/bench_misc.cpp | 841 - third-party/td/td/benchmark/bench_queue.cpp | 932 - third-party/td/td/benchmark/bench_tddb.cpp | 113 - third-party/td/td/benchmark/check_proxy.cpp | 193 - third-party/td/td/benchmark/check_tls.cpp | 336 - third-party/td/td/benchmark/hashmap_build.cpp | 545 - .../td/td/benchmark/hashset_memory.cpp | 193 - third-party/td/td/benchmark/rmdir.cpp | 45 - third-party/td/td/benchmark/wget.cpp | 43 - third-party/td/td/build.html | 1139 - third-party/td/td/example/README.md | 321 - third-party/td/td/example/android/.gitignore | 3 - .../td/td/example/android/AddIntDef.php | 51 - .../td/td/example/android/CMakeLists.txt | 72 - third-party/td/td/example/android/Dockerfile | 28 - third-party/td/td/example/android/README.md | 32 - .../td/td/example/android/build-openssl.sh | 93 - .../td/td/example/android/build-tdlib.sh | 117 - .../td/example/android/check-environment.sh | 51 - .../td/td/example/android/fetch-sdk.sh | 30 - third-party/td/td/example/cpp/.gitignore | 1 - third-party/td/td/example/cpp/CMakeLists.txt | 13 - third-party/td/td/example/cpp/README.md | 24 - third-party/td/td/example/cpp/td_example.cpp | 337 - .../td/td/example/cpp/tdjson_example.cpp | 55 - third-party/td/td/example/csharp/.gitignore | 5 - third-party/td/td/example/csharp/README.md | 40 - third-party/td/td/example/csharp/TdExample.cs | 293 - .../td/td/example/csharp/TdExample.csproj | 119 - .../td/td/example/csharp/TdExample.sln | 31 - .../td/example/ios/Python-Apple-support.patch | 118 - third-party/td/td/example/ios/README.md | 46 - .../td/td/example/ios/build-openssl.sh | 37 - third-party/td/td/example/ios/build.sh | 92 - third-party/td/td/example/java/.gitignore | 5 - third-party/td/td/example/java/CMakeLists.txt | 141 - third-party/td/td/example/java/README.md | 47 - .../java/org/drinkless/tdlib/Client.java | 259 - .../java/org/drinkless/tdlib/JsonClient.java | 79 - .../org/drinkless/tdlib/example/Example.java | 780 - .../drinkless/tdlib/example/JsonExample.java | 47 - third-party/td/td/example/java/td_jni.cpp | 241 - third-party/td/td/example/python/.gitignore | 3 - third-party/td/td/example/python/README.md | 11 - .../td/td/example/python/tdjson_example.py | 145 - third-party/td/td/example/swift/.gitignore | 3 - third-party/td/td/example/swift/README.md | 15 - .../td/td/example/swift/src/main.swift | 189 - .../td/example/swift/src/td-Bridging-Header.h | 9 - third-party/td/td/example/uwp/LICENSE_1_0.txt | 23 - third-party/td/td/example/uwp/README.md | 33 - third-party/td/td/example/uwp/SDKManifest.xml | 12 - .../td/td/example/uwp/Telegram.Td.UWP.nuspec | 19 - .../td/td/example/uwp/Telegram.Td.UWP.targets | 21 - .../td/td/example/uwp/[Content_Types].xml | 14 - third-party/td/td/example/uwp/app/.gitignore | 5 - third-party/td/td/example/uwp/app/App.xaml | 7 - third-party/td/td/example/uwp/app/App.xaml.cs | 104 - .../uwp/app/ApplicationInsights.config | 3 - .../app/Assets/LockScreenLogo.scale-200.png | Bin 1430 -> 0 bytes .../uwp/app/Assets/SplashScreen.scale-200.png | Bin 7700 -> 0 bytes .../Assets/Square150x150Logo.scale-200.png | Bin 2937 -> 0 bytes .../app/Assets/Square44x44Logo.scale-200.png | Bin 1647 -> 0 bytes ...x44Logo.targetsize-24_altform-unplated.png | Bin 1255 -> 0 bytes .../td/example/uwp/app/Assets/StoreLogo.png | Bin 1451 -> 0 bytes .../app/Assets/Wide310x150Logo.scale-200.png | Bin 3204 -> 0 bytes .../td/td/example/uwp/app/MainPage.xaml | 29 - .../td/td/example/uwp/app/MainPage.xaml.cs | 186 - .../td/example/uwp/app/Package.appxmanifest | 28 - .../uwp/app/Properties/AssemblyInfo.cs | 29 - .../example/uwp/app/Properties/Default.rd.xml | 31 - .../td/td/example/uwp/app/TdApp.csproj | 151 - third-party/td/td/example/uwp/app/TdApp.sln | 40 - .../td/example/uwp/app/TdApp_TemporaryKey.pfx | Bin 2456 -> 0 bytes .../td/td/example/uwp/app/project.json | 19 - third-party/td/td/example/uwp/build.ps1 | 173 - .../td/td/example/uwp/extension.vsixmanifest | 17 - third-party/td/td/example/web/.gitignore | 5 - third-party/td/td/example/web/README.md | 29 - .../td/td/example/web/build-openssl.sh | 29 - third-party/td/td/example/web/build-tdlib.sh | 38 - third-party/td/td/example/web/build-tdweb.sh | 7 - third-party/td/td/example/web/copy-tdlib.sh | 6 - third-party/td/td/example/web/tdweb/README.md | 29 - .../td/td/example/web/tdweb/package-lock.json | 9401 - .../td/td/example/web/tdweb/package.json | 102 - .../td/td/example/web/tdweb/src/index.js | 679 - .../td/td/example/web/tdweb/src/logger.js | 47 - .../td/td/example/web/tdweb/src/wasm-utils.js | 136 - .../td/td/example/web/tdweb/src/worker.js | 996 - .../td/td/example/web/tdweb/webpack.config.js | 85 - third-party/td/td/format.ps1 | 3 - third-party/td/td/format.sh | 3 - third-party/td/td/memprof/memprof.cpp | 331 - third-party/td/td/memprof/memprof.h | 27 - third-party/td/td/memprof/memprof_stat.cpp | 169 - third-party/td/td/memprof/memprof_stat.h | 13 - third-party/td/td/post.js | 1 - third-party/td/td/sqlite/CMakeLists.txt | 80 - third-party/td/td/sqlite/sqlite/LICENSE | 24 - third-party/td/td/sqlite/sqlite/sqlite3.c | 232086 --------------- third-party/td/td/sqlite/sqlite/sqlite3.h | 12100 - third-party/td/td/sqlite/sqlite/sqlite3ext.h | 650 - .../td/td/sqlite/sqlite/sqlite3session.h | 1659 - third-party/td/td/src.ps1 | 1 - third-party/td/td/src.sh | 2 - third-party/td/td/td/generate/CMakeLists.txt | 228 - .../DotnetTlDocumentationGenerator.php | 237 - .../DoxygenTlDocumentationGenerator.php | 447 - .../JavadocTlDocumentationGenerator.php | 294 - .../td/generate/TlDocumentationGenerator.php | 366 - third-party/td/td/td/generate/generate_c.cpp | 17 - .../td/td/td/generate/generate_common.cpp | 51 - .../td/td/td/generate/generate_dotnet.cpp | 22 - .../td/td/td/generate/generate_java.cpp | 29 - .../td/td/td/generate/generate_json.cpp | 15 - .../td/td/td/generate/generate_mtproto.cpp | 27 - .../td/td/generate/remove_documentation.cpp | 23 - .../td/td/td/generate/scheme/e2e_api.tl | 86 - .../td/td/td/generate/scheme/mtproto_api.tl | 87 - .../td/td/td/generate/scheme/secret_api.tl | 131 - .../td/td/td/generate/scheme/td_api.tl | 12826 - .../td/td/td/generate/scheme/telegram_api.tl | 2705 - .../td/td/generate/tl-parser/CMakeLists.txt | 19 - .../td/td/td/generate/tl-parser/LICENSE | 339 - .../td/td/td/generate/tl-parser/crc32.c | 345 - .../td/td/td/generate/tl-parser/crc32.h | 37 - .../td/generate/tl-parser/portable_endian.h | 88 - .../td/td/generate/tl-parser/tl-parser-tree.h | 178 - .../td/td/td/generate/tl-parser/tl-parser.c | 3078 - .../td/td/td/generate/tl-parser/tl-parser.h | 223 - .../td/td/td/generate/tl-parser/tl-tl.h | 55 - third-party/td/td/td/generate/tl-parser/tlc.c | 165 - .../td/td/td/generate/tl-parser/wgetopt.c | 1274 - .../td/td/td/generate/tl-parser/wgetopt.h | 193 - .../td/td/td/generate/tl_json_converter.cpp | 297 - .../td/td/td/generate/tl_json_converter.h | 18 - third-party/td/td/td/generate/tl_writer_c.h | 1378 - .../td/td/td/generate/tl_writer_cpp.cpp | 733 - third-party/td/td/td/generate/tl_writer_cpp.h | 107 - .../td/td/td/generate/tl_writer_dotnet.h | 582 - third-party/td/td/td/generate/tl_writer_h.cpp | 420 - third-party/td/td/td/generate/tl_writer_h.h | 95 - .../td/td/td/generate/tl_writer_hpp.cpp | 274 - third-party/td/td/td/generate/tl_writer_hpp.h | 108 - .../td/td/td/generate/tl_writer_java.cpp | 500 - .../td/td/td/generate/tl_writer_java.h | 124 - .../td/td/td/generate/tl_writer_jni_cpp.cpp | 675 - .../td/td/td/generate/tl_writer_jni_cpp.h | 109 - .../td/td/td/generate/tl_writer_jni_h.cpp | 170 - .../td/td/td/generate/tl_writer_jni_h.h | 57 - .../td/td/td/generate/tl_writer_td.cpp | 297 - third-party/td/td/td/generate/tl_writer_td.h | 67 - third-party/td/td/td/mtproto/AuthData.cpp | 178 - third-party/td/td/td/mtproto/AuthData.h | 295 - third-party/td/td/td/mtproto/AuthKey.h | 134 - .../td/td/td/mtproto/ConnectionManager.cpp | 37 - .../td/td/td/mtproto/ConnectionManager.h | 70 - third-party/td/td/td/mtproto/CryptoStorer.h | 371 - third-party/td/td/td/mtproto/DhCallback.h | 29 - third-party/td/td/td/mtproto/DhHandshake.cpp | 232 - third-party/td/td/td/mtproto/DhHandshake.h | 124 - third-party/td/td/td/mtproto/Handshake.cpp | 366 - third-party/td/td/td/mtproto/Handshake.h | 109 - .../td/td/td/mtproto/HandshakeActor.cpp | 113 - third-party/td/td/td/mtproto/HandshakeActor.h | 56 - .../td/td/td/mtproto/HandshakeConnection.h | 86 - .../td/td/td/mtproto/HttpTransport.cpp | 108 - third-party/td/td/td/mtproto/HttpTransport.h | 59 - .../td/td/td/mtproto/IStreamTransport.cpp | 28 - .../td/td/td/mtproto/IStreamTransport.h | 40 - third-party/td/td/td/mtproto/KDF.cpp | 107 - third-party/td/td/td/mtproto/KDF.h | 22 - third-party/td/td/td/mtproto/MessageId.h | 70 - third-party/td/td/td/mtproto/MtprotoQuery.h | 27 - third-party/td/td/td/mtproto/NoCryptoStorer.h | 43 - third-party/td/td/td/mtproto/PacketInfo.h | 33 - third-party/td/td/td/mtproto/PacketStorer.h | 44 - third-party/td/td/td/mtproto/Ping.cpp | 104 - third-party/td/td/td/mtproto/Ping.h | 25 - .../td/td/td/mtproto/PingConnection.cpp | 217 - third-party/td/td/td/mtproto/PingConnection.h | 34 - third-party/td/td/td/mtproto/ProxySecret.cpp | 56 - third-party/td/td/td/mtproto/ProxySecret.h | 69 - third-party/td/td/td/mtproto/RSA.cpp | 158 - third-party/td/td/td/mtproto/RSA.h | 49 - .../td/td/td/mtproto/RawConnection.cpp | 493 - third-party/td/td/td/mtproto/RawConnection.h | 92 - .../td/td/td/mtproto/SessionConnection.cpp | 1156 - .../td/td/td/mtproto/SessionConnection.h | 288 - third-party/td/td/td/mtproto/TcpTransport.cpp | 221 - third-party/td/td/td/mtproto/TcpTransport.h | 181 - third-party/td/td/td/mtproto/TlsInit.cpp | 558 - third-party/td/td/td/mtproto/TlsInit.h | 51 - .../td/td/td/mtproto/TlsReaderByteFlow.cpp | 40 - .../td/td/td/mtproto/TlsReaderByteFlow.h | 20 - third-party/td/td/td/mtproto/Transport.cpp | 464 - third-party/td/td/td/mtproto/Transport.h | 139 - third-party/td/td/td/mtproto/TransportType.h | 27 - third-party/td/td/td/mtproto/utils.cpp | 19 - third-party/td/td/td/mtproto/utils.h | 55 - third-party/td/td/td/telegram/AccentColorId.h | 82 - third-party/td/td/td/telegram/AccessRights.h | 15 - .../td/td/td/telegram/AccountManager.cpp | 1344 - .../td/td/td/telegram/AccountManager.h | 136 - .../td/td/td/telegram/AffectedHistory.h | 33 - .../td/td/td/telegram/AffiliateType.cpp | 76 - third-party/td/td/td/telegram/AffiliateType.h | 43 - .../td/td/td/telegram/AlarmManager.cpp | 58 - third-party/td/td/td/telegram/AlarmManager.h | 38 - .../td/td/td/telegram/AnimationsManager.cpp | 851 - .../td/td/td/telegram/AnimationsManager.h | 166 - .../td/td/td/telegram/AnimationsManager.hpp | 77 - third-party/td/td/td/telegram/Application.cpp | 144 - third-party/td/td/td/telegram/Application.h | 28 - .../td/td/td/telegram/AttachMenuManager.cpp | 875 - .../td/td/td/telegram/AttachMenuManager.h | 140 - .../td/td/td/telegram/AudiosManager.cpp | 295 - third-party/td/td/td/telegram/AudiosManager.h | 90 - .../td/td/td/telegram/AudiosManager.hpp | 132 - third-party/td/td/td/telegram/AuthManager.cpp | 1493 - third-party/td/td/td/telegram/AuthManager.h | 233 - third-party/td/td/td/telegram/AuthManager.hpp | 45 - .../td/td/telegram/AutoDownloadSettings.cpp | 122 - .../td/td/td/telegram/AutoDownloadSettings.h | 39 - .../td/td/td/telegram/AutosaveManager.cpp | 538 - .../td/td/td/telegram/AutosaveManager.h | 117 - third-party/td/td/td/telegram/BackgroundId.h | 70 - .../td/td/td/telegram/BackgroundInfo.cpp | 34 - .../td/td/td/telegram/BackgroundInfo.h | 61 - .../td/td/td/telegram/BackgroundInfo.hpp | 30 - .../td/td/td/telegram/BackgroundManager.cpp | 1501 - .../td/td/td/telegram/BackgroundManager.h | 243 - .../td/td/td/telegram/BackgroundType.cpp | 501 - .../td/td/td/telegram/BackgroundType.h | 159 - .../td/td/td/telegram/BackgroundType.hpp | 94 - third-party/td/td/td/telegram/BaseTheme.cpp | 45 - third-party/td/td/td/telegram/BaseTheme.h | 22 - third-party/td/td/td/telegram/Birthdate.cpp | 69 - third-party/td/td/td/telegram/Birthdate.h | 69 - third-party/td/td/td/telegram/Birthdate.hpp | 25 - third-party/td/td/td/telegram/BlockListId.h | 99 - .../td/td/td/telegram/BoostManager.cpp | 520 - third-party/td/td/td/telegram/BoostManager.h | 65 - third-party/td/td/td/telegram/BotCommand.cpp | 230 - third-party/td/td/td/telegram/BotCommand.h | 103 - .../td/td/td/telegram/BotCommandScope.cpp | 122 - .../td/td/td/telegram/BotCommandScope.h | 43 - .../td/td/td/telegram/BotInfoManager.cpp | 1076 - .../td/td/td/telegram/BotInfoManager.h | 207 - .../td/td/td/telegram/BotMenuButton.cpp | 165 - third-party/td/td/td/telegram/BotMenuButton.h | 83 - third-party/td/td/td/telegram/BotQueries.cpp | 116 - third-party/td/td/td/telegram/BotQueries.h | 25 - .../td/telegram/BotRecommendationManager.cpp | 366 - .../td/td/telegram/BotRecommendationManager.h | 81 - .../td/td/td/telegram/BotVerification.cpp | 65 - .../td/td/td/telegram/BotVerification.h | 59 - .../td/td/td/telegram/BotVerification.hpp | 33 - .../td/td/td/telegram/BotVerifierSettings.cpp | 66 - .../td/td/td/telegram/BotVerifierSettings.h | 56 - .../td/td/td/telegram/BotVerifierSettings.hpp | 43 - .../td/td/td/telegram/BusinessAwayMessage.cpp | 64 - .../td/td/td/telegram/BusinessAwayMessage.h | 70 - .../td/td/td/telegram/BusinessAwayMessage.hpp | 38 - .../telegram/BusinessAwayMessageSchedule.cpp | 105 - .../td/telegram/BusinessAwayMessageSchedule.h | 54 - .../telegram/BusinessAwayMessageSchedule.hpp | 50 - .../td/td/telegram/BusinessBotManageBar.cpp | 88 - .../td/td/td/telegram/BusinessBotManageBar.h | 86 - .../td/td/td/telegram/BusinessBotRights.cpp | 130 - .../td/td/td/telegram/BusinessBotRights.h | 66 - .../td/td/td/telegram/BusinessBotRights.hpp | 56 - .../td/td/td/telegram/BusinessChatLink.cpp | 56 - .../td/td/td/telegram/BusinessChatLink.h | 54 - .../td/td/telegram/BusinessConnectedBot.cpp | 46 - .../td/td/td/telegram/BusinessConnectedBot.h | 72 - .../td/td/telegram/BusinessConnectedBot.hpp | 49 - .../td/td/td/telegram/BusinessConnectionId.h | 79 - .../td/telegram/BusinessConnectionManager.cpp | 2019 - .../td/telegram/BusinessConnectionManager.h | 265 - .../td/telegram/BusinessGreetingMessage.cpp | 68 - .../td/td/telegram/BusinessGreetingMessage.h | 70 - .../td/telegram/BusinessGreetingMessage.hpp | 35 - .../td/td/td/telegram/BusinessInfo.cpp | 116 - third-party/td/td/td/telegram/BusinessInfo.h | 60 - .../td/td/td/telegram/BusinessInfo.hpp | 83 - .../td/td/td/telegram/BusinessIntro.cpp | 97 - third-party/td/td/td/telegram/BusinessIntro.h | 62 - .../td/td/td/telegram/BusinessIntro.hpp | 63 - .../td/td/td/telegram/BusinessManager.cpp | 625 - .../td/td/td/telegram/BusinessManager.h | 71 - .../td/td/td/telegram/BusinessRecipients.cpp | 156 - .../td/td/td/telegram/BusinessRecipients.h | 67 - .../td/td/td/telegram/BusinessRecipients.hpp | 58 - .../td/td/td/telegram/BusinessWorkHours.cpp | 251 - .../td/td/td/telegram/BusinessWorkHours.h | 91 - .../td/td/td/telegram/BusinessWorkHours.hpp | 43 - third-party/td/td/td/telegram/CallActor.cpp | 1137 - third-party/td/td/td/telegram/CallActor.h | 249 - .../td/td/td/telegram/CallDiscardReason.cpp | 97 - .../td/td/td/telegram/CallDiscardReason.h | 35 - third-party/td/td/td/telegram/CallId.h | 59 - third-party/td/td/td/telegram/CallManager.cpp | 237 - third-party/td/td/td/telegram/CallManager.h | 80 - .../td/td/telegram/CallbackQueriesManager.cpp | 315 - .../td/td/telegram/CallbackQueriesManager.h | 57 - third-party/td/td/td/telegram/ChainId.h | 66 - third-party/td/td/td/telegram/ChannelId.h | 74 - .../td/telegram/ChannelParticipantFilter.cpp | 116 - .../td/td/telegram/ChannelParticipantFilter.h | 62 - .../telegram/ChannelRecommendationManager.cpp | 541 - .../telegram/ChannelRecommendationManager.h | 108 - third-party/td/td/td/telegram/ChannelType.h | 15 - third-party/td/td/td/telegram/ChatId.h | 73 - third-party/td/td/td/telegram/ChatManager.cpp | 9103 - third-party/td/td/td/telegram/ChatManager.h | 929 - .../td/td/td/telegram/ChatReactions.cpp | 160 - third-party/td/td/td/telegram/ChatReactions.h | 79 - .../td/td/td/telegram/ChatReactions.hpp | 55 - third-party/td/td/td/telegram/Client.cpp | 725 - third-party/td/td/td/telegram/Client.h | 289 - third-party/td/td/td/telegram/ClientActor.cpp | 50 - third-party/td/td/td/telegram/ClientActor.h | 108 - .../td/td/td/telegram/ClientDotNet.cpp | 175 - third-party/td/td/td/telegram/ClientJson.cpp | 162 - third-party/td/td/td/telegram/ClientJson.h | 45 - .../td/td/td/telegram/CommonDialogManager.cpp | 225 - .../td/td/td/telegram/CommonDialogManager.h | 59 - .../td/td/td/telegram/ConfigManager.cpp | 2283 - third-party/td/td/td/telegram/ConfigManager.h | 140 - .../td/td/td/telegram/ConnectionState.cpp | 38 - .../td/td/td/telegram/ConnectionState.h | 19 - .../td/td/telegram/ConnectionStateManager.cpp | 61 - .../td/td/telegram/ConnectionStateManager.h | 39 - third-party/td/td/td/telegram/Contact.cpp | 127 - third-party/td/td/td/telegram/Contact.h | 151 - .../td/td/td/telegram/CountryInfoManager.cpp | 613 - .../td/td/td/telegram/CountryInfoManager.h | 96 - third-party/td/td/td/telegram/CustomEmojiId.h | 74 - .../td/td/td/telegram/DelayDispatcher.cpp | 66 - .../td/td/td/telegram/DelayDispatcher.h | 45 - .../td/td/td/telegram/Dependencies.cpp | 153 - third-party/td/td/td/telegram/Dependencies.h | 58 - .../td/td/td/telegram/DeviceTokenManager.cpp | 471 - .../td/td/td/telegram/DeviceTokenManager.h | 91 - third-party/td/td/td/telegram/DhCache.cpp | 55 - third-party/td/td/td/telegram/DhCache.h | 26 - third-party/td/td/td/telegram/DhConfig.h | 38 - .../td/td/td/telegram/DialogAction.cpp | 556 - third-party/td/td/td/telegram/DialogAction.h | 101 - .../td/td/td/telegram/DialogActionBar.cpp | 398 - .../td/td/td/telegram/DialogActionBar.h | 172 - .../td/td/td/telegram/DialogActionManager.cpp | 427 - .../td/td/td/telegram/DialogActionManager.h | 80 - .../td/td/td/telegram/DialogAdministrator.cpp | 26 - .../td/td/td/telegram/DialogAdministrator.h | 88 - .../td/td/td/telegram/DialogBoostLinkInfo.h | 21 - third-party/td/td/td/telegram/DialogDate.h | 73 - third-party/td/td/td/telegram/DialogDb.cpp | 489 - third-party/td/td/td/telegram/DialogDb.h | 110 - .../td/td/td/telegram/DialogEventLog.cpp | 635 - .../td/td/td/telegram/DialogEventLog.h | 24 - .../td/td/td/telegram/DialogFilter.cpp | 943 - third-party/td/td/td/telegram/DialogFilter.h | 172 - .../td/td/td/telegram/DialogFilter.hpp | 111 - .../td/td/telegram/DialogFilterDialogInfo.h | 24 - .../td/td/td/telegram/DialogFilterId.h | 79 - .../td/td/telegram/DialogFilterInviteLink.cpp | 55 - .../td/td/telegram/DialogFilterInviteLink.h | 50 - .../td/td/td/telegram/DialogFilterManager.cpp | 2210 - .../td/td/td/telegram/DialogFilterManager.h | 253 - third-party/td/td/td/telegram/DialogId.cpp | 187 - third-party/td/td/td/telegram/DialogId.h | 98 - .../td/td/td/telegram/DialogInviteLink.cpp | 142 - .../td/td/td/telegram/DialogInviteLink.h | 81 - .../td/td/td/telegram/DialogInviteLink.hpp | 126 - .../td/telegram/DialogInviteLinkManager.cpp | 1121 - .../td/td/telegram/DialogInviteLinkManager.h | 146 - third-party/td/td/td/telegram/DialogListId.h | 140 - .../td/td/td/telegram/DialogLocation.cpp | 87 - .../td/td/td/telegram/DialogLocation.h | 71 - .../td/td/td/telegram/DialogManager.cpp | 3651 - third-party/td/td/td/telegram/DialogManager.h | 395 - .../telegram/DialogNotificationSettings.cpp | 221 - .../td/telegram/DialogNotificationSettings.h | 98 - .../telegram/DialogNotificationSettings.hpp | 113 - .../td/td/td/telegram/DialogParticipant.cpp | 742 - .../td/td/td/telegram/DialogParticipant.h | 703 - .../td/telegram/DialogParticipantFilter.cpp | 142 - .../td/td/telegram/DialogParticipantFilter.h | 39 - .../td/telegram/DialogParticipantManager.cpp | 3051 - .../td/td/telegram/DialogParticipantManager.h | 322 - .../td/td/td/telegram/DialogSource.cpp | 98 - third-party/td/td/td/telegram/DialogSource.h | 48 - third-party/td/td/td/telegram/Dimensions.cpp | 51 - third-party/td/td/td/telegram/Dimensions.h | 28 - third-party/td/td/td/telegram/Dimensions.hpp | 28 - .../td/telegram/DisallowedGiftsSettings.cpp | 68 - .../td/td/telegram/DisallowedGiftsSettings.h | 58 - .../td/telegram/DisallowedGiftsSettings.hpp | 36 - third-party/td/td/td/telegram/Document.cpp | 113 - third-party/td/td/td/telegram/Document.h | 46 - third-party/td/td/td/telegram/Document.hpp | 107 - .../td/td/td/telegram/DocumentsManager.cpp | 767 - .../td/td/td/telegram/DocumentsManager.h | 142 - .../td/td/td/telegram/DocumentsManager.hpp | 87 - .../td/td/td/telegram/DownloadManager.cpp | 838 - .../td/td/td/telegram/DownloadManager.h | 113 - .../td/telegram/DownloadManagerCallback.cpp | 126 - .../td/td/telegram/DownloadManagerCallback.h | 70 - .../td/td/td/telegram/DraftMessage.cpp | 563 - third-party/td/td/td/telegram/DraftMessage.h | 115 - .../td/td/td/telegram/DraftMessage.hpp | 86 - .../td/td/td/telegram/EmailVerification.cpp | 53 - .../td/td/td/telegram/EmailVerification.h | 37 - third-party/td/td/td/telegram/EmojiGroup.cpp | 97 - third-party/td/td/td/telegram/EmojiGroup.h | 79 - third-party/td/td/td/telegram/EmojiGroup.hpp | 64 - .../td/td/td/telegram/EmojiGroupType.cpp | 46 - .../td/td/td/telegram/EmojiGroupType.h | 24 - third-party/td/td/td/telegram/EmojiStatus.cpp | 639 - third-party/td/td/td/telegram/EmojiStatus.h | 194 - third-party/td/td/td/telegram/EncryptedFile.h | 91 - third-party/td/td/td/telegram/FactCheck.cpp | 56 - third-party/td/td/td/telegram/FactCheck.h | 64 - third-party/td/td/td/telegram/FactCheck.hpp | 55 - .../td/td/telegram/FileReferenceManager.cpp | 559 - .../td/td/td/telegram/FileReferenceManager.h | 234 - .../td/td/telegram/FileReferenceManager.hpp | 201 - third-party/td/td/td/telegram/FolderId.h | 74 - third-party/td/td/td/telegram/ForumTopic.cpp | 80 - third-party/td/td/td/telegram/ForumTopic.h | 75 - third-party/td/td/td/telegram/ForumTopic.hpp | 106 - .../td/td/telegram/ForumTopicEditedData.cpp | 49 - .../td/td/td/telegram/ForumTopicEditedData.h | 68 - .../td/td/telegram/ForumTopicEditedData.hpp | 56 - .../td/td/td/telegram/ForumTopicIcon.cpp | 43 - .../td/td/td/telegram/ForumTopicIcon.h | 45 - .../td/td/td/telegram/ForumTopicIcon.hpp | 40 - .../td/td/td/telegram/ForumTopicInfo.cpp | 91 - .../td/td/td/telegram/ForumTopicInfo.h | 95 - .../td/td/td/telegram/ForumTopicInfo.hpp | 45 - .../td/td/td/telegram/ForumTopicManager.cpp | 1231 - .../td/td/td/telegram/ForumTopicManager.h | 195 - third-party/td/td/td/telegram/Game.cpp | 139 - third-party/td/td/td/telegram/Game.h | 86 - third-party/td/td/td/telegram/Game.hpp | 63 - third-party/td/td/td/telegram/GameManager.cpp | 196 - third-party/td/td/td/telegram/GameManager.h | 50 - .../td/td/td/telegram/GitCommitHash.cpp.in | 15 - third-party/td/td/td/telegram/GitCommitHash.h | 13 - .../td/td/td/telegram/GiveawayParameters.cpp | 191 - .../td/td/td/telegram/GiveawayParameters.h | 94 - .../td/td/td/telegram/GiveawayParameters.hpp | 65 - third-party/td/td/td/telegram/Global.cpp | 356 - third-party/td/td/td/telegram/Global.h | 830 - .../td/td/telegram/GlobalPrivacySettings.cpp | 200 - .../td/td/td/telegram/GlobalPrivacySettings.h | 57 - third-party/td/td/td/telegram/GroupCallId.h | 53 - .../td/td/td/telegram/GroupCallManager.cpp | 4914 - .../td/td/td/telegram/GroupCallManager.h | 437 - .../td/td/telegram/GroupCallParticipant.cpp | 322 - .../td/td/td/telegram/GroupCallParticipant.h | 112 - .../td/telegram/GroupCallParticipantOrder.cpp | 73 - .../td/telegram/GroupCallParticipantOrder.h | 64 - .../td/td/telegram/GroupCallVideoPayload.cpp | 63 - .../td/td/td/telegram/GroupCallVideoPayload.h | 40 - .../td/td/td/telegram/HashtagHints.cpp | 127 - third-party/td/td/td/telegram/HashtagHints.h | 48 - .../td/td/telegram/InlineMessageManager.cpp | 384 - .../td/td/td/telegram/InlineMessageManager.h | 61 - .../td/td/telegram/InlineQueriesManager.cpp | 2376 - .../td/td/td/telegram/InlineQueriesManager.h | 192 - .../td/td/telegram/InputBusinessChatLink.cpp | 50 - .../td/td/td/telegram/InputBusinessChatLink.h | 36 - .../td/td/td/telegram/InputDialogId.cpp | 157 - third-party/td/td/td/telegram/InputDialogId.h | 82 - .../td/td/td/telegram/InputGroupCallId.cpp | 23 - .../td/td/td/telegram/InputGroupCallId.h | 72 - .../td/td/td/telegram/InputInvoice.cpp | 429 - third-party/td/td/td/telegram/InputInvoice.h | 135 - .../td/td/td/telegram/InputInvoice.hpp | 226 - .../td/td/td/telegram/InputMessageText.cpp | 96 - .../td/td/td/telegram/InputMessageText.h | 65 - .../td/td/td/telegram/InputMessageText.hpp | 57 - third-party/td/td/td/telegram/JsonValue.cpp | 247 - third-party/td/td/td/telegram/JsonValue.h | 39 - .../td/td/td/telegram/LabeledPricePart.h | 47 - .../td/td/td/telegram/LanguagePackManager.cpp | 1889 - .../td/td/td/telegram/LanguagePackManager.h | 201 - third-party/td/td/td/telegram/LinkManager.cpp | 3478 - third-party/td/td/td/telegram/LinkManager.h | 204 - third-party/td/td/td/telegram/Location.cpp | 183 - third-party/td/td/td/telegram/Location.h | 144 - third-party/td/td/td/telegram/Log.cpp | 72 - third-party/td/td/td/telegram/Log.h | 86 - third-party/td/td/td/telegram/LogDotNet.cpp | 64 - third-party/td/td/td/telegram/Logging.cpp | 163 - third-party/td/td/td/telegram/Logging.h | 36 - third-party/td/td/td/telegram/MediaArea.cpp | 406 - third-party/td/td/td/telegram/MediaArea.h | 103 - third-party/td/td/td/telegram/MediaArea.hpp | 168 - .../td/td/telegram/MediaAreaCoordinates.cpp | 84 - .../td/td/td/telegram/MediaAreaCoordinates.h | 59 - .../td/td/telegram/MediaAreaCoordinates.hpp | 56 - .../td/td/td/telegram/MessageContent.cpp | 10034 - .../td/td/td/telegram/MessageContent.h | 358 - .../td/td/td/telegram/MessageContentType.cpp | 949 - .../td/td/td/telegram/MessageContentType.h | 131 - .../td/td/td/telegram/MessageCopyOptions.h | 64 - third-party/td/td/td/telegram/MessageDb.cpp | 1237 - third-party/td/td/td/telegram/MessageDb.h | 205 - .../td/td/td/telegram/MessageEffectId.h | 65 - .../td/td/td/telegram/MessageEntity.cpp | 4799 - third-party/td/td/td/telegram/MessageEntity.h | 258 - .../td/td/td/telegram/MessageEntity.hpp | 68 - .../td/td/telegram/MessageExtendedMedia.cpp | 459 - .../td/td/td/telegram/MessageExtendedMedia.h | 134 - .../td/td/telegram/MessageExtendedMedia.hpp | 132 - .../td/td/td/telegram/MessageForwardInfo.cpp | 266 - .../td/td/td/telegram/MessageForwardInfo.h | 175 - .../td/td/td/telegram/MessageForwardInfo.hpp | 105 - third-party/td/td/td/telegram/MessageFullId.h | 79 - third-party/td/td/td/telegram/MessageId.cpp | 217 - third-party/td/td/td/telegram/MessageId.h | 203 - .../td/td/telegram/MessageImportManager.cpp | 551 - .../td/td/td/telegram/MessageImportManager.h | 116 - .../td/td/td/telegram/MessageInputReplyTo.cpp | 174 - .../td/td/td/telegram/MessageInputReplyTo.h | 114 - .../td/td/td/telegram/MessageInputReplyTo.hpp | 87 - .../td/td/td/telegram/MessageLinkInfo.h | 33 - .../td/td/td/telegram/MessageOrigin.cpp | 172 - third-party/td/td/td/telegram/MessageOrigin.h | 101 - .../td/td/td/telegram/MessageOrigin.hpp | 79 - .../td/td/td/telegram/MessageQueryManager.cpp | 3163 - .../td/td/td/telegram/MessageQueryManager.h | 292 - .../td/td/td/telegram/MessageQuote.cpp | 238 - third-party/td/td/td/telegram/MessageQuote.h | 85 - .../td/td/td/telegram/MessageQuote.hpp | 50 - .../td/td/td/telegram/MessageReaction.cpp | 1231 - .../td/td/td/telegram/MessageReaction.h | 257 - .../td/td/td/telegram/MessageReaction.hpp | 160 - .../td/td/td/telegram/MessageReactor.cpp | 130 - .../td/td/td/telegram/MessageReactor.h | 100 - .../td/td/td/telegram/MessageReactor.hpp | 57 - .../td/td/td/telegram/MessageReplyHeader.cpp | 65 - .../td/td/td/telegram/MessageReplyHeader.h | 37 - .../td/td/td/telegram/MessageReplyInfo.cpp | 235 - .../td/td/td/telegram/MessageReplyInfo.h | 74 - .../td/td/td/telegram/MessageReplyInfo.hpp | 104 - .../td/td/td/telegram/MessageSearchFilter.cpp | 147 - .../td/td/td/telegram/MessageSearchFilter.h | 68 - .../td/td/td/telegram/MessageSearchOffset.cpp | 69 - .../td/td/td/telegram/MessageSearchOffset.h | 30 - .../td/telegram/MessageSelfDestructType.cpp | 90 - .../td/td/telegram/MessageSelfDestructType.h | 74 - .../td/td/td/telegram/MessageSender.cpp | 173 - third-party/td/td/td/telegram/MessageSender.h | 44 - .../td/td/td/telegram/MessageSource.cpp | 71 - third-party/td/td/td/telegram/MessageSource.h | 34 - .../td/td/td/telegram/MessageThreadDb.cpp | 343 - .../td/td/td/telegram/MessageThreadDb.h | 98 - .../td/td/td/telegram/MessageThreadInfo.h | 22 - third-party/td/td/td/telegram/MessageTtl.cpp | 31 - third-party/td/td/td/telegram/MessageTtl.h | 58 - .../td/td/td/telegram/MessageViewer.cpp | 55 - third-party/td/td/td/telegram/MessageViewer.h | 62 - .../td/td/td/telegram/MessagesInfo.cpp | 78 - third-party/td/td/td/telegram/MessagesInfo.h | 29 - .../td/td/td/telegram/MessagesManager.cpp | 35321 --- .../td/td/td/telegram/MessagesManager.h | 3409 - third-party/td/td/td/telegram/MinChannel.h | 23 - third-party/td/td/td/telegram/MinChannel.hpp | 61 - .../td/td/td/telegram/MissingInvitee.cpp | 57 - .../td/td/td/telegram/MissingInvitee.h | 54 - .../td/td/td/telegram/NewPasswordState.cpp | 58 - .../td/td/td/telegram/NewPasswordState.h | 27 - third-party/td/td/td/telegram/Notification.h | 47 - .../telegram/NotificationGroupFromDatabase.h | 24 - .../td/td/td/telegram/NotificationGroupId.h | 67 - .../td/td/telegram/NotificationGroupInfo.cpp | 133 - .../td/td/td/telegram/NotificationGroupInfo.h | 87 - .../td/td/telegram/NotificationGroupInfo.hpp | 39 - .../td/td/td/telegram/NotificationGroupKey.h | 43 - .../td/td/telegram/NotificationGroupType.cpp | 88 - .../td/td/td/telegram/NotificationGroupType.h | 28 - .../td/td/td/telegram/NotificationId.h | 72 - .../td/td/td/telegram/NotificationManager.cpp | 4239 - .../td/td/td/telegram/NotificationManager.h | 423 - .../td/td/telegram/NotificationObjectFullId.h | 60 - .../td/td/td/telegram/NotificationObjectId.h | 83 - .../telegram/NotificationSettingsManager.cpp | 1778 - .../td/telegram/NotificationSettingsManager.h | 259 - .../td/telegram/NotificationSettingsScope.cpp | 69 - .../td/telegram/NotificationSettingsScope.h | 29 - .../td/td/td/telegram/NotificationSound.cpp | 316 - .../td/td/td/telegram/NotificationSound.h | 69 - .../td/td/td/telegram/NotificationSoundType.h | 15 - .../td/td/td/telegram/NotificationType.cpp | 485 - .../td/td/td/telegram/NotificationType.h | 69 - .../td/td/td/telegram/OnlineManager.cpp | 164 - third-party/td/td/td/telegram/OnlineManager.h | 60 - .../td/td/td/telegram/OptionManager.cpp | 1076 - third-party/td/td/td/telegram/OptionManager.h | 98 - third-party/td/td/td/telegram/OrderInfo.cpp | 190 - third-party/td/td/td/telegram/OrderInfo.h | 82 - third-party/td/td/td/telegram/OrderInfo.hpp | 87 - .../td/td/td/telegram/OrderedMessage.cpp | 420 - .../td/td/td/telegram/OrderedMessage.h | 228 - third-party/td/td/td/telegram/Outline.cpp | 254 - third-party/td/td/td/telegram/Outline.h | 17 - .../td/td/td/telegram/PaidReactionType.cpp | 164 - .../td/td/td/telegram/PaidReactionType.h | 70 - .../td/td/td/telegram/PaidReactionType.hpp | 40 - .../td/td/td/telegram/PasswordManager.cpp | 871 - .../td/td/td/telegram/PasswordManager.h | 212 - third-party/td/td/td/telegram/Payments.cpp | 1248 - third-party/td/td/td/telegram/Payments.h | 59 - third-party/td/td/td/telegram/PeerColor.cpp | 33 - third-party/td/td/td/telegram/PeerColor.h | 22 - .../td/td/td/telegram/PeopleNearbyManager.cpp | 27 - .../td/td/td/telegram/PeopleNearbyManager.h | 28 - .../td/td/td/telegram/PhoneNumberManager.cpp | 346 - .../td/td/td/telegram/PhoneNumberManager.h | 64 - third-party/td/td/td/telegram/Photo.cpp | 793 - third-party/td/td/td/telegram/Photo.h | 161 - third-party/td/td/td/telegram/Photo.hpp | 129 - third-party/td/td/td/telegram/PhotoFormat.h | 15 - third-party/td/td/td/telegram/PhotoSize.cpp | 548 - third-party/td/td/td/telegram/PhotoSize.h | 90 - third-party/td/td/td/telegram/PhotoSize.hpp | 57 - .../td/td/td/telegram/PhotoSizeSource.cpp | 317 - .../td/td/td/telegram/PhotoSizeSource.h | 279 - .../td/td/td/telegram/PhotoSizeSource.hpp | 201 - third-party/td/td/td/telegram/PhotoSizeType.h | 55 - .../td/td/td/telegram/PhotoSizeType.hpp | 28 - third-party/td/td/td/telegram/PollId.h | 55 - third-party/td/td/td/telegram/PollId.hpp | 27 - third-party/td/td/td/telegram/PollManager.cpp | 1972 - third-party/td/td/td/telegram/PollManager.h | 270 - third-party/td/td/td/telegram/PollManager.hpp | 296 - third-party/td/td/td/telegram/Premium.cpp | 1413 - third-party/td/td/td/telegram/Premium.h | 77 - .../td/td/td/telegram/PremiumGiftOption.cpp | 102 - .../td/td/td/telegram/PremiumGiftOption.h | 61 - .../td/td/td/telegram/PremiumGiftOption.hpp | 91 - .../td/td/td/telegram/PrivacyManager.cpp | 281 - .../td/td/td/telegram/PrivacyManager.h | 75 - .../td/td/td/telegram/PromoDataManager.cpp | 195 - .../td/td/td/telegram/PromoDataManager.h | 52 - third-party/td/td/td/telegram/PtsManager.h | 58 - .../td/td/td/telegram/PublicDialogType.h | 22 - .../td/td/td/telegram/QueryCombiner.cpp | 109 - third-party/td/td/td/telegram/QueryCombiner.h | 51 - third-party/td/td/td/telegram/QueryMerger.cpp | 81 - third-party/td/td/td/telegram/QueryMerger.h | 54 - .../td/td/td/telegram/QuickReplyManager.cpp | 3864 - .../td/td/td/telegram/QuickReplyManager.h | 484 - .../td/td/telegram/QuickReplyMessageFullId.h | 79 - .../td/td/td/telegram/QuickReplyShortcutId.h | 94 - .../td/td/td/telegram/ReactionListType.cpp | 39 - .../td/td/td/telegram/ReactionListType.h | 22 - .../td/td/td/telegram/ReactionManager.cpp | 1541 - .../td/td/td/telegram/ReactionManager.h | 352 - .../td/td/td/telegram/ReactionManager.hpp | 220 - .../telegram/ReactionNotificationSettings.cpp | 75 - .../telegram/ReactionNotificationSettings.h | 60 - .../telegram/ReactionNotificationSettings.hpp | 45 - .../td/telegram/ReactionNotificationsFrom.cpp | 98 - .../td/telegram/ReactionNotificationsFrom.h | 52 - .../td/telegram/ReactionNotificationsFrom.hpp | 29 - .../td/td/td/telegram/ReactionType.cpp | 236 - third-party/td/td/td/telegram/ReactionType.h | 101 - .../td/td/td/telegram/ReactionType.hpp | 27 - .../telegram/ReactionUnavailabilityReason.h | 15 - .../td/td/td/telegram/RecentDialogList.cpp | 264 - .../td/td/td/telegram/RecentDialogList.h | 58 - .../td/td/td/telegram/ReferralProgramInfo.cpp | 45 - .../td/td/td/telegram/ReferralProgramInfo.h | 58 - .../td/td/td/telegram/ReferralProgramInfo.hpp | 56 - .../td/td/telegram/ReferralProgramManager.cpp | 497 - .../td/td/telegram/ReferralProgramManager.h | 103 - .../td/telegram/ReferralProgramParameters.cpp | 44 - .../td/telegram/ReferralProgramParameters.h | 60 - .../td/telegram/ReferralProgramParameters.hpp | 43 - .../td/telegram/ReferralProgramSortOrder.cpp | 29 - .../td/td/telegram/ReferralProgramSortOrder.h | 21 - .../td/td/td/telegram/RepliedMessageInfo.cpp | 391 - .../td/td/td/telegram/RepliedMessageInfo.h | 121 - .../td/td/td/telegram/RepliedMessageInfo.hpp | 110 - third-party/td/td/td/telegram/ReplyMarkup.cpp | 1179 - third-party/td/td/td/telegram/ReplyMarkup.h | 118 - third-party/td/td/td/telegram/ReplyMarkup.hpp | 181 - .../td/td/td/telegram/ReportReason.cpp | 109 - third-party/td/td/td/telegram/ReportReason.h | 61 - third-party/td/td/td/telegram/RequestActor.h | 160 - .../td/td/td/telegram/RequestedDialogType.cpp | 289 - .../td/td/td/telegram/RequestedDialogType.h | 76 - .../td/td/td/telegram/RequestedDialogType.hpp | 79 - third-party/td/td/td/telegram/Requests.cpp | 8182 - third-party/td/td/td/telegram/Requests.h | 1789 - .../td/td/td/telegram/RestrictionReason.cpp | 116 - .../td/td/td/telegram/RestrictionReason.h | 79 - .../td/td/telegram/SavedMessagesManager.cpp | 1056 - .../td/td/td/telegram/SavedMessagesManager.h | 204 - .../td/td/telegram/SavedMessagesTopicId.cpp | 127 - .../td/td/td/telegram/SavedMessagesTopicId.h | 92 - .../td/td/telegram/ScheduledServerMessageId.h | 65 - .../td/telegram/ScopeNotificationSettings.cpp | 109 - .../td/telegram/ScopeNotificationSettings.h | 67 - .../td/telegram/ScopeNotificationSettings.hpp | 90 - .../td/td/td/telegram/SecretChatActor.cpp | 2255 - .../td/td/td/telegram/SecretChatActor.h | 716 - .../td/td/td/telegram/SecretChatDb.cpp | 15 - third-party/td/td/td/telegram/SecretChatDb.h | 49 - third-party/td/td/td/telegram/SecretChatId.h | 67 - .../td/td/td/telegram/SecretChatLayer.h | 21 - .../td/td/td/telegram/SecretChatsManager.cpp | 496 - .../td/td/td/telegram/SecretChatsManager.h | 88 - .../td/td/td/telegram/SecretInputMedia.cpp | 41 - .../td/td/td/telegram/SecretInputMedia.h | 41 - .../td/td/td/telegram/SecureManager.cpp | 1333 - third-party/td/td/td/telegram/SecureManager.h | 99 - .../td/td/td/telegram/SecureStorage.cpp | 408 - third-party/td/td/td/telegram/SecureStorage.h | 195 - third-party/td/td/td/telegram/SecureValue.cpp | 1470 - third-party/td/td/td/telegram/SecureValue.h | 235 - third-party/td/td/td/telegram/SecureValue.hpp | 159 - .../td/td/td/telegram/SendCodeHelper.cpp | 305 - .../td/td/td/telegram/SendCodeHelper.h | 118 - .../td/td/td/telegram/SendCodeHelper.hpp | 59 - .../td/td/td/telegram/SentEmailCode.cpp | 29 - third-party/td/td/td/telegram/SentEmailCode.h | 50 - .../td/td/td/telegram/SequenceDispatcher.cpp | 462 - .../td/td/td/telegram/SequenceDispatcher.h | 100 - .../td/td/td/telegram/ServerMessageId.h | 43 - .../td/td/td/telegram/SetWithPosition.h | 228 - .../td/td/td/telegram/SharedDialog.cpp | 83 - third-party/td/td/td/telegram/SharedDialog.h | 71 - .../td/td/td/telegram/SharedDialog.hpp | 70 - .../td/td/telegram/SpecialStickerSetType.cpp | 121 - .../td/td/td/telegram/SpecialStickerSetType.h | 68 - .../td/telegram/SponsoredMessageManager.cpp | 690 - .../td/td/telegram/SponsoredMessageManager.h | 111 - third-party/td/td/td/telegram/StarAmount.cpp | 49 - third-party/td/td/td/telegram/StarAmount.h | 57 - third-party/td/td/td/telegram/StarAmount.hpp | 28 - third-party/td/td/td/telegram/StarGift.cpp | 185 - third-party/td/td/td/telegram/StarGift.h | 106 - third-party/td/td/td/telegram/StarGift.hpp | 191 - .../td/td/td/telegram/StarGiftAttribute.cpp | 114 - .../td/td/td/telegram/StarGiftAttribute.h | 133 - .../td/td/td/telegram/StarGiftAttribute.hpp | 127 - third-party/td/td/td/telegram/StarGiftId.cpp | 127 - third-party/td/td/td/telegram/StarGiftId.h | 71 - third-party/td/td/td/telegram/StarGiftId.hpp | 61 - .../td/td/td/telegram/StarGiftManager.cpp | 1334 - .../td/td/td/telegram/StarGiftManager.h | 112 - .../td/td/td/telegram/StarGiftSettings.cpp | 39 - .../td/td/td/telegram/StarGiftSettings.h | 63 - .../td/td/td/telegram/StarGiftSettings.hpp | 41 - third-party/td/td/td/telegram/StarManager.cpp | 1377 - third-party/td/td/td/telegram/StarManager.h | 117 - .../td/td/td/telegram/StarSubscription.cpp | 67 - .../td/td/td/telegram/StarSubscription.h | 52 - .../td/telegram/StarSubscriptionPricing.cpp | 58 - .../td/td/telegram/StarSubscriptionPricing.h | 55 - .../td/telegram/StarSubscriptionPricing.hpp | 32 - .../td/td/td/telegram/StateManager.cpp | 177 - third-party/td/td/td/telegram/StateManager.h | 102 - .../td/td/td/telegram/StatisticsManager.cpp | 969 - .../td/td/td/telegram/StatisticsManager.h | 98 - .../td/td/td/telegram/StickerFormat.cpp | 183 - third-party/td/td/td/telegram/StickerFormat.h | 44 - .../td/td/td/telegram/StickerListType.cpp | 43 - .../td/td/td/telegram/StickerListType.h | 22 - .../td/td/td/telegram/StickerMaskPosition.cpp | 96 - .../td/td/td/telegram/StickerMaskPosition.h | 50 - .../td/td/td/telegram/StickerMaskPosition.hpp | 31 - .../td/td/td/telegram/StickerPhotoSize.cpp | 186 - .../td/td/td/telegram/StickerPhotoSize.h | 57 - .../td/td/td/telegram/StickerPhotoSize.hpp | 53 - .../td/td/td/telegram/StickerSetId.cpp | 27 - third-party/td/td/td/telegram/StickerSetId.h | 63 - third-party/td/td/td/telegram/StickerType.cpp | 66 - third-party/td/td/td/telegram/StickerType.h | 29 - .../td/td/td/telegram/StickersManager.cpp | 10261 - .../td/td/td/telegram/StickersManager.h | 1198 - .../td/td/td/telegram/StickersManager.hpp | 488 - .../td/td/td/telegram/StorageManager.cpp | 366 - .../td/td/td/telegram/StorageManager.h | 105 - .../td/td/td/telegram/StoryContent.cpp | 507 - third-party/td/td/td/telegram/StoryContent.h | 73 - .../td/td/td/telegram/StoryContentType.cpp | 24 - .../td/td/td/telegram/StoryContentType.h | 26 - third-party/td/td/td/telegram/StoryDb.cpp | 569 - third-party/td/td/td/telegram/StoryDb.h | 133 - .../td/td/td/telegram/StoryForwardInfo.cpp | 65 - .../td/td/td/telegram/StoryForwardInfo.h | 56 - .../td/td/td/telegram/StoryForwardInfo.hpp | 62 - third-party/td/td/td/telegram/StoryFullId.h | 77 - third-party/td/td/td/telegram/StoryId.h | 90 - .../td/td/telegram/StoryInteractionInfo.cpp | 154 - .../td/td/td/telegram/StoryInteractionInfo.h | 97 - .../td/td/telegram/StoryInteractionInfo.hpp | 82 - third-party/td/td/td/telegram/StoryListId.h | 95 - .../td/td/td/telegram/StoryManager.cpp | 6168 - third-party/td/td/td/telegram/StoryManager.h | 775 - .../td/telegram/StoryNotificationSettings.h | 31 - .../td/td/td/telegram/StoryStealthMode.cpp | 63 - .../td/td/td/telegram/StoryStealthMode.h | 55 - .../td/td/td/telegram/StoryStealthMode.hpp | 50 - third-party/td/td/td/telegram/StoryViewer.cpp | 229 - third-party/td/td/td/telegram/StoryViewer.h | 84 - .../td/td/td/telegram/SuggestedAction.cpp | 291 - .../td/td/td/telegram/SuggestedAction.h | 101 - .../td/td/td/telegram/SuggestedAction.hpp | 50 - .../td/td/telegram/SuggestedActionManager.cpp | 236 - .../td/td/telegram/SuggestedActionManager.h | 61 - third-party/td/td/td/telegram/Support.cpp | 142 - third-party/td/td/td/telegram/Support.h | 26 - .../td/td/td/telegram/SynchronousRequests.cpp | 397 - .../td/td/td/telegram/SynchronousRequests.h | 89 - .../td/td/td/telegram/TargetDialogTypes.cpp | 104 - .../td/td/td/telegram/TargetDialogTypes.h | 57 - third-party/td/td/td/telegram/Td.cpp | 1459 - third-party/td/td/td/telegram/Td.h | 466 - third-party/td/td/td/telegram/TdCallback.h | 42 - third-party/td/td/td/telegram/TdDb.cpp | 767 - third-party/td/td/td/telegram/TdDb.h | 199 - .../td/td/td/telegram/TermsOfService.cpp | 35 - .../td/td/td/telegram/TermsOfService.h | 40 - .../td/td/td/telegram/TermsOfService.hpp | 40 - .../td/td/telegram/TermsOfServiceManager.cpp | 201 - .../td/td/td/telegram/TermsOfServiceManager.h | 59 - .../td/td/td/telegram/ThemeManager.cpp | 986 - third-party/td/td/td/telegram/ThemeManager.h | 200 - .../td/td/td/telegram/ThemeSettings.cpp | 46 - third-party/td/td/td/telegram/ThemeSettings.h | 58 - .../td/td/td/telegram/ThemeSettings.hpp | 59 - .../td/td/td/telegram/TimeZoneManager.cpp | 206 - .../td/td/td/telegram/TimeZoneManager.h | 91 - .../td/td/td/telegram/TopDialogCategory.cpp | 117 - .../td/td/td/telegram/TopDialogCategory.h | 38 - .../td/td/td/telegram/TopDialogManager.cpp | 673 - .../td/td/td/telegram/TopDialogManager.h | 131 - .../td/td/td/telegram/TranscriptionInfo.cpp | 202 - .../td/td/td/telegram/TranscriptionInfo.h | 62 - .../td/td/td/telegram/TranscriptionInfo.hpp | 31 - .../td/td/telegram/TranscriptionManager.cpp | 444 - .../td/td/td/telegram/TranscriptionManager.h | 135 - .../td/td/td/telegram/TranslationManager.cpp | 136 - .../td/td/td/telegram/TranslationManager.h | 43 - third-party/td/td/td/telegram/UniqueId.h | 38 - .../td/td/td/telegram/UpdatesManager.cpp | 4669 - .../td/td/td/telegram/UpdatesManager.h | 711 - third-party/td/td/td/telegram/UserId.h | 94 - third-party/td/td/td/telegram/UserManager.cpp | 8783 - third-party/td/td/td/telegram/UserManager.h | 1193 - .../td/td/td/telegram/UserPrivacySetting.cpp | 180 - .../td/td/td/telegram/UserPrivacySetting.h | 54 - .../td/td/telegram/UserPrivacySettingRule.cpp | 424 - .../td/td/telegram/UserPrivacySettingRule.h | 157 - .../td/td/td/telegram/UserStarGift.cpp | 74 - third-party/td/td/td/telegram/UserStarGift.h | 49 - third-party/td/td/td/telegram/Usernames.cpp | 222 - third-party/td/td/td/telegram/Usernames.h | 142 - third-party/td/td/td/telegram/Venue.cpp | 132 - third-party/td/td/td/telegram/Venue.h | 101 - .../td/td/td/telegram/VerificationStatus.cpp | 20 - .../td/td/td/telegram/VerificationStatus.h | 19 - third-party/td/td/td/telegram/Version.h | 94 - .../td/td/td/telegram/VideoNotesManager.cpp | 252 - .../td/td/td/telegram/VideoNotesManager.h | 94 - .../td/td/td/telegram/VideoNotesManager.hpp | 101 - .../td/td/td/telegram/VideosManager.cpp | 403 - third-party/td/td/td/telegram/VideosManager.h | 110 - .../td/td/td/telegram/VideosManager.hpp | 119 - .../td/td/td/telegram/VoiceNotesManager.cpp | 223 - .../td/td/td/telegram/VoiceNotesManager.h | 84 - .../td/td/td/telegram/VoiceNotesManager.hpp | 88 - third-party/td/td/td/telegram/WebApp.cpp | 81 - third-party/td/td/td/telegram/WebApp.h | 60 - third-party/td/td/td/telegram/WebApp.hpp | 58 - .../td/td/td/telegram/WebAppManager.cpp | 670 - third-party/td/td/td/telegram/WebAppManager.h | 103 - .../td/td/telegram/WebAppOpenParameters.cpp | 46 - .../td/td/td/telegram/WebAppOpenParameters.h | 40 - .../td/td/td/telegram/WebPageBlock.cpp | 2494 - third-party/td/td/td/telegram/WebPageBlock.h | 109 - third-party/td/td/td/telegram/WebPageId.h | 66 - .../td/td/td/telegram/WebPagesManager.cpp | 2552 - .../td/td/td/telegram/WebPagesManager.h | 238 - third-party/td/td/td/telegram/cli.cpp | 7887 - .../td/td/td/telegram/files/FileBitmask.cpp | 172 - .../td/td/td/telegram/files/FileBitmask.h | 41 - .../td/td/td/telegram/files/FileData.h | 60 - .../td/td/td/telegram/files/FileData.hpp | 137 - .../td/td/td/telegram/files/FileDb.cpp | 302 - third-party/td/td/td/telegram/files/FileDb.h | 91 - .../td/td/td/telegram/files/FileDbId.h | 58 - .../td/telegram/files/FileDownloadManager.cpp | 205 - .../td/telegram/files/FileDownloadManager.h | 128 - .../td/td/telegram/files/FileDownloader.cpp | 742 - .../td/td/td/telegram/files/FileDownloader.h | 156 - .../td/telegram/files/FileEncryptionKey.cpp | 101 - .../td/td/telegram/files/FileEncryptionKey.h | 104 - .../td/td/td/telegram/files/FileFromBytes.cpp | 30 - .../td/td/td/telegram/files/FileFromBytes.h | 43 - .../td/td/telegram/files/FileGcParameters.cpp | 46 - .../td/td/telegram/files/FileGcParameters.h | 37 - .../td/td/td/telegram/files/FileGcWorker.cpp | 199 - .../td/td/td/telegram/files/FileGcWorker.h | 41 - .../td/telegram/files/FileGenerateManager.cpp | 519 - .../td/telegram/files/FileGenerateManager.h | 74 - .../td/td/telegram/files/FileHashUploader.cpp | 149 - .../td/td/telegram/files/FileHashUploader.h | 86 - third-party/td/td/td/telegram/files/FileId.h | 68 - .../td/td/td/telegram/files/FileId.hpp | 27 - .../td/td/telegram/files/FileLoadManager.cpp | 41 - .../td/td/td/telegram/files/FileLoadManager.h | 34 - .../td/td/td/telegram/files/FileLoaderActor.h | 25 - .../td/td/telegram/files/FileLoaderUtils.cpp | 364 - .../td/td/td/telegram/files/FileLoaderUtils.h | 55 - .../td/td/td/telegram/files/FileLocation.h | 939 - .../td/td/td/telegram/files/FileLocation.hpp | 434 - .../td/td/td/telegram/files/FileManager.cpp | 5242 - .../td/td/td/telegram/files/FileManager.h | 982 - .../td/td/td/telegram/files/FileManager.hpp | 275 - .../td/td/td/telegram/files/FileSourceId.h | 59 - .../td/td/td/telegram/files/FileSourceId.hpp | 28 - .../td/td/td/telegram/files/FileStats.cpp | 256 - .../td/td/td/telegram/files/FileStats.h | 114 - .../td/td/telegram/files/FileStatsWorker.cpp | 225 - .../td/td/td/telegram/files/FileStatsWorker.h | 30 - .../td/td/td/telegram/files/FileType.cpp | 403 - .../td/td/td/telegram/files/FileType.h | 78 - .../td/td/td/telegram/files/FileUploadId.h | 58 - .../td/telegram/files/FileUploadManager.cpp | 201 - .../td/td/telegram/files/FileUploadManager.h | 123 - .../td/td/td/telegram/files/FileUploader.cpp | 487 - .../td/td/td/telegram/files/FileUploader.h | 124 - .../td/td/td/telegram/files/PartsManager.cpp | 594 - .../td/td/td/telegram/files/PartsManager.h | 114 - .../td/td/telegram/files/ResourceManager.cpp | 187 - .../td/td/td/telegram/files/ResourceManager.h | 72 - .../td/td/td/telegram/files/ResourceState.cpp | 90 - .../td/td/td/telegram/files/ResourceState.h | 62 - .../td/td/td/telegram/logevent/LogEvent.h | 254 - .../td/telegram/logevent/LogEventHelper.cpp | 56 - .../td/td/telegram/logevent/LogEventHelper.h | 57 - .../td/td/telegram/logevent/SecretChatEvent.h | 521 - third-party/td/td/td/telegram/misc.cpp | 406 - third-party/td/td/td/telegram/misc.h | 61 - .../td/td/td/telegram/net/AuthDataShared.cpp | 133 - .../td/td/td/telegram/net/AuthDataShared.h | 53 - .../td/td/td/telegram/net/AuthKeyState.h | 41 - .../td/td/telegram/net/ConnectionCreator.cpp | 1478 - .../td/td/td/telegram/net/ConnectionCreator.h | 281 - .../td/td/td/telegram/net/DcAuthManager.cpp | 250 - .../td/td/td/telegram/net/DcAuthManager.h | 71 - third-party/td/td/td/telegram/net/DcId.h | 118 - third-party/td/td/td/telegram/net/DcOptions.h | 252 - .../td/td/td/telegram/net/DcOptionsSet.cpp | 206 - .../td/td/td/telegram/net/DcOptionsSet.h | 115 - .../td/td/td/telegram/net/MtprotoHeader.cpp | 115 - .../td/td/td/telegram/net/MtprotoHeader.h | 122 - .../td/td/td/telegram/net/NetActor.cpp | 36 - third-party/td/td/td/telegram/net/NetActor.h | 47 - .../td/td/td/telegram/net/NetQuery.cpp | 185 - third-party/td/td/td/telegram/net/NetQuery.h | 370 - .../td/td/td/telegram/net/NetQueryCounter.h | 40 - .../td/td/td/telegram/net/NetQueryCreator.cpp | 110 - .../td/td/td/telegram/net/NetQueryCreator.h | 55 - .../td/td/td/telegram/net/NetQueryDelayer.cpp | 146 - .../td/td/td/telegram/net/NetQueryDelayer.h | 38 - .../td/td/telegram/net/NetQueryDispatcher.cpp | 452 - .../td/td/telegram/net/NetQueryDispatcher.h | 101 - .../td/td/td/telegram/net/NetQueryStats.cpp | 56 - .../td/td/td/telegram/net/NetQueryStats.h | 49 - .../td/td/telegram/net/NetQueryVerifier.cpp | 134 - .../td/td/td/telegram/net/NetQueryVerifier.h | 48 - .../td/td/td/telegram/net/NetStatsManager.cpp | 344 - .../td/td/td/telegram/net/NetStatsManager.h | 209 - third-party/td/td/td/telegram/net/NetType.h | 53 - third-party/td/td/td/telegram/net/Proxy.cpp | 70 - third-party/td/td/td/telegram/net/Proxy.h | 163 - .../td/telegram/net/PublicRsaKeySharedCdn.cpp | 74 - .../td/telegram/net/PublicRsaKeySharedCdn.h | 59 - .../telegram/net/PublicRsaKeySharedMain.cpp | 69 - .../td/telegram/net/PublicRsaKeySharedMain.h | 33 - .../td/telegram/net/PublicRsaKeyWatchdog.cpp | 139 - .../td/td/telegram/net/PublicRsaKeyWatchdog.h | 48 - third-party/td/td/td/telegram/net/Session.cpp | 1581 - third-party/td/td/td/telegram/net/Session.h | 289 - .../td/td/telegram/net/SessionMultiProxy.cpp | 179 - .../td/td/td/telegram/net/SessionMultiProxy.h | 63 - .../td/td/td/telegram/net/SessionProxy.cpp | 281 - .../td/td/td/telegram/net/SessionProxy.h | 80 - .../td/td/telegram/net/TempAuthKeyWatchdog.h | 150 - third-party/td/td/td/telegram/td_c_client.cpp | 73 - third-party/td/td/td/telegram/td_c_client.h | 41 - .../td/td/td/telegram/td_emscripten.cpp | 39 - .../td/td/td/telegram/td_json_client.cpp | 52 - .../td/td/td/telegram/td_json_client.h | 187 - third-party/td/td/td/telegram/td_log.cpp | 27 - third-party/td/td/td/telegram/td_log.h | 82 - third-party/td/td/td/tl/TlObject.h | 263 - third-party/td/td/td/tl/tl_dotnet_object.h | 205 - third-party/td/td/td/tl/tl_jni_object.cpp | 383 - third-party/td/td/td/tl/tl_jni_object.h | 268 - third-party/td/td/td/tl/tl_json.h | 218 - third-party/td/td/td/tl/tl_object_parse.h | 147 - third-party/td/td/td/tl/tl_object_store.h | 86 - third-party/td/td/tdactor/CMakeLists.txt | 61 - third-party/td/td/tdactor/example/example.cpp | 49 - .../tdactor/td/actor/ConcurrentScheduler.cpp | 205 - .../td/tdactor/td/actor/ConcurrentScheduler.h | 116 - .../td/td/tdactor/td/actor/MultiPromise.cpp | 105 - .../td/td/tdactor/td/actor/MultiPromise.h | 120 - .../td/td/tdactor/td/actor/MultiTimeout.cpp | 119 - .../td/td/tdactor/td/actor/MultiTimeout.h | 81 - .../td/td/tdactor/td/actor/PromiseFuture.h | 324 - .../tdactor/td/actor/SchedulerLocalStorage.h | 81 - .../td/td/tdactor/td/actor/SignalSlot.h | 112 - .../td/td/tdactor/td/actor/SleepActor.h | 41 - third-party/td/td/tdactor/td/actor/Timeout.h | 68 - third-party/td/td/tdactor/td/actor/actor.h | 13 - .../td/td/tdactor/td/actor/impl/Actor-decl.h | 121 - .../td/td/tdactor/td/actor/impl/Actor.h | 167 - .../td/tdactor/td/actor/impl/ActorId-decl.h | 159 - .../td/td/tdactor/td/actor/impl/ActorId.h | 195 - .../td/tdactor/td/actor/impl/ActorInfo-decl.h | 128 - .../td/td/tdactor/td/actor/impl/ActorInfo.h | 209 - .../td/td/tdactor/td/actor/impl/Event.h | 247 - .../td/tdactor/td/actor/impl/EventFull-decl.h | 87 - .../td/td/tdactor/td/actor/impl/EventFull.h | 38 - .../td/tdactor/td/actor/impl/Scheduler-decl.h | 314 - .../td/td/tdactor/td/actor/impl/Scheduler.cpp | 611 - .../td/td/tdactor/td/actor/impl/Scheduler.h | 370 - .../td/td/tdactor/test/actors_bugs.cpp | 112 - .../td/td/tdactor/test/actors_main.cpp | 506 - .../td/td/tdactor/test/actors_simple.cpp | 682 - .../td/td/tdactor/test/actors_workers.cpp | 188 - third-party/td/td/tdclientjson_export_list | 14 - third-party/td/td/tddb/CMakeLists.txt | 65 - third-party/td/td/tddb/td/db/BinlogKeyValue.h | 301 - third-party/td/td/tddb/td/db/DbKey.h | 61 - .../td/td/tddb/td/db/KeyValueSyncInterface.h | 56 - third-party/td/td/tddb/td/db/SeqKeyValue.h | 105 - .../td/td/tddb/td/db/SqliteConnectionSafe.cpp | 51 - .../td/td/tddb/td/db/SqliteConnectionSafe.h | 39 - third-party/td/td/tddb/td/db/SqliteDb.cpp | 323 - third-party/td/td/tddb/td/db/SqliteDb.h | 94 - .../td/td/tddb/td/db/SqliteKeyValue.cpp | 130 - third-party/td/td/tddb/td/db/SqliteKeyValue.h | 134 - .../td/td/tddb/td/db/SqliteKeyValueAsync.cpp | 166 - .../td/td/tddb/td/db/SqliteKeyValueAsync.h | 38 - .../td/td/tddb/td/db/SqliteKeyValueSafe.h | 40 - .../td/td/tddb/td/db/SqliteStatement.cpp | 205 - .../td/td/tddb/td/db/SqliteStatement.h | 88 - third-party/td/td/tddb/td/db/TQueue.cpp | 613 - third-party/td/td/tddb/td/db/TQueue.h | 157 - third-party/td/td/tddb/td/db/TsSeqKeyValue.h | 91 - .../td/td/tddb/td/db/binlog/Binlog.cpp | 775 - third-party/td/td/tddb/td/db/binlog/Binlog.h | 183 - .../td/td/tddb/td/db/binlog/BinlogEvent.cpp | 75 - .../td/td/tddb/td/db/binlog/BinlogEvent.h | 115 - .../td/td/tddb/td/db/binlog/BinlogHelper.h | 32 - .../td/td/tddb/td/db/binlog/BinlogInterface.h | 90 - .../td/tddb/td/db/binlog/ConcurrentBinlog.cpp | 231 - .../td/tddb/td/db/binlog/ConcurrentBinlog.h | 72 - .../td/td/tddb/td/db/binlog/binlog_dump.cpp | 158 - .../db/binlog/detail/BinlogEventsBuffer.cpp | 43 - .../td/db/binlog/detail/BinlogEventsBuffer.h | 51 - .../binlog/detail/BinlogEventsProcessor.cpp | 80 - .../db/binlog/detail/BinlogEventsProcessor.h | 61 - .../td/td/tddb/td/db/detail/RawSqliteDb.cpp | 60 - .../td/td/tddb/td/db/detail/RawSqliteDb.h | 78 - third-party/td/td/tde2e/CMakeLists.txt | 86 - third-party/td/td/tde2e/td/e2e/BitString.cpp | 355 - third-party/td/td/tde2e/td/e2e/BitString.h | 62 - third-party/td/td/tde2e/td/e2e/Blockchain.cpp | 823 - third-party/td/td/tde2e/td/e2e/Blockchain.h | 348 - third-party/td/td/tde2e/td/e2e/Blockchain.md | 195 - third-party/td/td/tde2e/td/e2e/Call.cpp | 764 - third-party/td/td/tde2e/td/e2e/Call.h | 228 - .../td/td/tde2e/td/e2e/CheckSharedSecret.cpp | 75 - .../td/td/tde2e/td/e2e/CheckSharedSecret.h | 32 - third-party/td/td/tde2e/td/e2e/Container.h | 255 - .../td/td/tde2e/td/e2e/DecryptedKey.cpp | 40 - third-party/td/td/tde2e/td/e2e/DecryptedKey.h | 52 - .../td/td/tde2e/td/e2e/EncryptedKey.cpp | 38 - third-party/td/td/tde2e/td/e2e/EncryptedKey.h | 29 - .../td/td/tde2e/td/e2e/EncryptedStorage.cpp | 365 - .../td/td/tde2e/td/e2e/EncryptedStorage.h | 410 - third-party/td/td/tde2e/td/e2e/Encryption.md | 178 - third-party/td/td/tde2e/td/e2e/Keys.cpp | 167 - third-party/td/td/tde2e/td/e2e/Keys.h | 104 - .../td/td/tde2e/td/e2e/MessageEncryption.cpp | 168 - .../td/td/tde2e/td/e2e/MessageEncryption.h | 40 - third-party/td/td/tde2e/td/e2e/Mnemonic.cpp | 264 - third-party/td/td/tde2e/td/e2e/Mnemonic.h | 59 - .../td/td/tde2e/td/e2e/QRHandshake.cpp | 223 - third-party/td/td/tde2e/td/e2e/QRHandshake.h | 91 - .../td/td/tde2e/td/e2e/TestBlockchain.cpp | 769 - .../td/td/tde2e/td/e2e/TestBlockchain.h | 232 - third-party/td/td/tde2e/td/e2e/Trie.cpp | 505 - third-party/td/td/tde2e/td/e2e/Trie.h | 97 - third-party/td/td/tde2e/td/e2e/bip39.cpp | 2063 - third-party/td/td/tde2e/td/e2e/bip39.h | 15 - third-party/td/td/tde2e/td/e2e/e2e_api.cpp | 856 - third-party/td/td/tde2e/td/e2e/e2e_api.h | 335 - third-party/td/td/tde2e/td/e2e/e2e_errors.h | 102 - .../td/td/tde2e/td/e2e/encryption_test.py | 279 - third-party/td/td/tde2e/td/e2e/utils.h | 145 - .../td/td/tde2e/test/EncryptionTestVectors.h | 81 - third-party/td/td/tde2e/test/blockchain.cpp | 254 - third-party/td/td/tde2e/test/e2e.cpp | 859 - third-party/td/td/tde2e/test/encryption.cpp | 64 - third-party/td/td/tdnet/CMakeLists.txt | 90 - third-party/td/td/tdnet/td/net/DarwinHttp.h | 21 - third-party/td/td/tdnet/td/net/DarwinHttp.mm | 80 - .../td/td/tdnet/td/net/GetHostByNameActor.cpp | 213 - .../td/td/tdnet/td/net/GetHostByNameActor.h | 76 - .../td/tdnet/td/net/HttpChunkedByteFlow.cpp | 75 - .../td/td/tdnet/td/net/HttpChunkedByteFlow.h | 29 - .../td/td/tdnet/td/net/HttpConnectionBase.cpp | 210 - .../td/td/tdnet/td/net/HttpConnectionBase.h | 77 - .../td/net/HttpContentLengthByteFlow.cpp | 36 - .../tdnet/td/net/HttpContentLengthByteFlow.h | 25 - third-party/td/td/tdnet/td/net/HttpFile.cpp | 25 - third-party/td/td/tdnet/td/net/HttpFile.h | 49 - .../td/td/tdnet/td/net/HttpHeaderCreator.h | 153 - .../td/tdnet/td/net/HttpInboundConnection.cpp | 32 - .../td/tdnet/td/net/HttpInboundConnection.h | 44 - .../tdnet/td/net/HttpOutboundConnection.cpp | 23 - .../td/tdnet/td/net/HttpOutboundConnection.h | 49 - third-party/td/td/tdnet/td/net/HttpProxy.cpp | 111 - third-party/td/td/tdnet/td/net/HttpProxy.h | 28 - third-party/td/td/tdnet/td/net/HttpQuery.cpp | 86 - third-party/td/td/tdnet/td/net/HttpQuery.h | 50 - third-party/td/td/tdnet/td/net/HttpReader.cpp | 882 - third-party/td/td/tdnet/td/net/HttpReader.h | 116 - third-party/td/td/tdnet/td/net/NetStats.h | 144 - third-party/td/td/tdnet/td/net/Socks5.cpp | 190 - third-party/td/td/tdnet/td/net/Socks5.h | 39 - third-party/td/td/tdnet/td/net/SslCtx.cpp | 370 - third-party/td/td/tdnet/td/net/SslCtx.h | 45 - third-party/td/td/tdnet/td/net/SslStream.cpp | 423 - third-party/td/td/tdnet/td/net/SslStream.h | 46 - .../td/td/tdnet/td/net/TcpListener.cpp | 64 - third-party/td/td/tdnet/td/net/TcpListener.h | 38 - .../td/td/tdnet/td/net/TransparentProxy.cpp | 84 - .../td/td/tdnet/td/net/TransparentProxy.h | 57 - third-party/td/td/tdnet/td/net/Wget.cpp | 158 - third-party/td/td/tdnet/td/net/Wget.h | 53 - third-party/td/td/tdtl/CMakeLists.txt | 28 - third-party/td/td/tdtl/td/tl/tl_config.cpp | 364 - third-party/td/td/tdtl/td/tl/tl_config.h | 87 - third-party/td/td/tdtl/td/tl/tl_core.cpp | 21 - third-party/td/td/tdtl/td/tl/tl_core.h | 159 - .../td/td/tdtl/td/tl/tl_file_outputer.cpp | 41 - .../td/td/tdtl/td/tl/tl_file_outputer.h | 33 - .../td/td/tdtl/td/tl/tl_file_utils.cpp | 104 - third-party/td/td/tdtl/td/tl/tl_file_utils.h | 21 - third-party/td/td/tdtl/td/tl/tl_generate.cpp | 1017 - third-party/td/td/tdtl/td/tl/tl_generate.h | 28 - third-party/td/td/tdtl/td/tl/tl_outputer.cpp | 16 - third-party/td/td/tdtl/td/tl/tl_outputer.h | 22 - third-party/td/td/tdtl/td/tl/tl_simple.h | 256 - .../td/td/tdtl/td/tl/tl_simple_parser.h | 107 - .../td/td/tdtl/td/tl/tl_string_outputer.cpp | 32 - .../td/td/tdtl/td/tl/tl_string_outputer.h | 26 - third-party/td/td/tdtl/td/tl/tl_writer.cpp | 239 - third-party/td/td/tdtl/td/tl/tl_writer.h | 169 - third-party/td/td/tdutils/CMakeLists.txt | 430 - .../td/td/tdutils/generate/CMakeLists.txt | 62 - .../generate/generate_mime_types_gperf.cpp | 156 - .../td/td/tdutils/generate/mime_types.txt | 779 - .../td/td/tdutils/td/utils/AesCtrByteFlow.h | 51 - .../td/td/tdutils/td/utils/AsyncFileLog.cpp | 165 - .../td/td/tdutils/td/utils/AsyncFileLog.h | 51 - .../td/td/tdutils/td/utils/AtomicRead.h | 89 - third-party/td/td/tdutils/td/utils/BigNum.cpp | 321 - third-party/td/td/tdutils/td/utils/BigNum.h | 122 - .../td/td/tdutils/td/utils/BufferedFd.h | 231 - .../td/td/tdutils/td/utils/BufferedReader.h | 61 - .../td/td/tdutils/td/utils/BufferedUdp.cpp | 17 - .../td/td/tdutils/td/utils/BufferedUdp.h | 177 - third-party/td/td/tdutils/td/utils/ByteFlow.h | 389 - .../td/tdutils/td/utils/CancellationToken.h | 71 - .../td/td/tdutils/td/utils/ChainScheduler.h | 385 - .../td/td/tdutils/td/utils/ChangesProcessor.h | 61 - third-party/td/td/tdutils/td/utils/Closure.h | 119 - .../td/td/tdutils/td/utils/CombinedLog.h | 86 - .../td/tdutils/td/utils/ConcurrentHashTable.h | 321 - .../td/td/tdutils/td/utils/Container.h | 168 - third-party/td/td/tdutils/td/utils/Context.h | 44 - third-party/td/td/tdutils/td/utils/DecTree.h | 216 - .../td/td/tdutils/td/utils/Destructor.h | 52 - .../td/td/tdutils/td/utils/Ed25519.cpp | 347 - third-party/td/td/tdutils/td/utils/Ed25519.h | 97 - .../td/td/tdutils/td/utils/Enumerator.h | 55 - .../td/utils/EpochBasedMemoryReclamation.h | 201 - .../td/td/tdutils/td/utils/ExitGuard.cpp | 20 - .../td/td/tdutils/td/utils/ExitGuard.h | 30 - .../td/td/tdutils/td/utils/FileLog.cpp | 145 - third-party/td/td/tdutils/td/utils/FileLog.h | 54 - .../td/td/tdutils/td/utils/FlatHashMap.h | 24 - .../td/tdutils/td/utils/FlatHashMapChunks.h | 578 - .../td/td/tdutils/td/utils/FlatHashSet.h | 24 - .../td/td/tdutils/td/utils/FlatHashTable.cpp | 24 - .../td/td/tdutils/td/utils/FlatHashTable.h | 558 - .../td/td/tdutils/td/utils/FloodControlFast.h | 87 - .../tdutils/td/utils/FloodControlGlobal.cpp | 32 - .../td/tdutils/td/utils/FloodControlGlobal.h | 35 - .../td/tdutils/td/utils/FloodControlStrict.h | 97 - third-party/td/td/tdutils/td/utils/Gzip.cpp | 208 - third-party/td/td/tdutils/td/utils/Gzip.h | 106 - .../td/td/tdutils/td/utils/GzipByteFlow.cpp | 64 - .../td/td/tdutils/td/utils/GzipByteFlow.h | 46 - third-party/td/td/tdutils/td/utils/Hash.h | 70 - third-party/td/td/tdutils/td/utils/HashMap.h | 27 - third-party/td/td/tdutils/td/utils/HashSet.h | 27 - .../td/td/tdutils/td/utils/HashTableUtils.h | 76 - .../td/td/tdutils/td/utils/HazardPointers.h | 141 - third-party/td/td/tdutils/td/utils/Heap.h | 171 - third-party/td/td/tdutils/td/utils/Hints.cpp | 206 - third-party/td/td/tdutils/td/utils/Hints.h | 87 - .../td/td/tdutils/td/utils/HttpDate.cpp | 92 - third-party/td/td/tdutils/td/utils/HttpDate.h | 34 - .../td/td/tdutils/td/utils/HttpUrl.cpp | 272 - third-party/td/td/tdutils/td/utils/HttpUrl.h | 64 - .../td/td/tdutils/td/utils/JsonBuilder.cpp | 745 - .../td/td/tdutils/td/utils/JsonBuilder.h | 895 - third-party/td/td/tdutils/td/utils/List.h | 129 - third-party/td/td/tdutils/td/utils/MapNode.h | 166 - .../td/td/tdutils/td/utils/MemoryLog.h | 79 - .../td/td/tdutils/td/utils/MimeType.cpp | 44 - third-party/td/td/tdutils/td/utils/MimeType.h | 20 - .../td/td/tdutils/td/utils/MovableValue.h | 42 - .../td/td/tdutils/td/utils/MpmcQueue.cpp | 15 - .../td/td/tdutils/td/utils/MpmcQueue.h | 460 - .../td/td/tdutils/td/utils/MpmcWaiter.h | 332 - .../td/td/tdutils/td/utils/MpscLinkQueue.h | 173 - .../td/tdutils/td/utils/MpscPollableQueue.h | 159 - third-party/td/td/tdutils/td/utils/Named.h | 27 - third-party/td/td/tdutils/td/utils/NullLog.h | 19 - .../td/td/tdutils/td/utils/ObjectPool.h | 248 - third-party/td/td/tdutils/td/utils/Observer.h | 41 - .../td/td/tdutils/td/utils/OptionParser.cpp | 263 - .../td/td/tdutils/td/utils/OptionParser.h | 81 - .../tdutils/td/utils/OrderedEventsProcessor.h | 99 - third-party/td/td/tdutils/td/utils/Parser.h | 189 - .../td/td/tdutils/td/utils/PathView.cpp | 70 - third-party/td/td/tdutils/td/utils/PathView.h | 81 - third-party/td/td/tdutils/td/utils/Promise.h | 383 - third-party/td/td/tdutils/td/utils/Random.cpp | 203 - third-party/td/td/tdutils/td/utils/Random.h | 68 - .../td/td/tdutils/td/utils/ScopeGuard.h | 77 - third-party/td/td/tdutils/td/utils/SetNode.h | 129 - .../td/td/tdutils/td/utils/SharedObjectPool.h | 288 - .../td/td/tdutils/td/utils/SharedSlice.cpp | 17 - .../td/td/tdutils/td/utils/SharedSlice.h | 382 - .../td/td/tdutils/td/utils/Slice-decl.h | 212 - third-party/td/td/tdutils/td/utils/Slice.cpp | 34 - third-party/td/td/tdutils/td/utils/Slice.h | 323 - .../td/td/tdutils/td/utils/SliceBuilder.h | 57 - third-party/td/td/tdutils/td/utils/Span.h | 159 - third-party/td/td/tdutils/td/utils/SpinLock.h | 60 - .../td/td/tdutils/td/utils/StackAllocator.cpp | 80 - .../td/td/tdutils/td/utils/StackAllocator.h | 61 - third-party/td/td/tdutils/td/utils/Status.cpp | 96 - third-party/td/td/tdutils/td/utils/Status.h | 625 - .../td/td/tdutils/td/utils/StealingQueue.h | 125 - third-party/td/td/tdutils/td/utils/Storer.h | 88 - .../td/td/tdutils/td/utils/StorerBase.h | 25 - .../td/td/tdutils/td/utils/StringBuilder.cpp | 229 - .../td/td/tdutils/td/utils/StringBuilder.h | 203 - .../td/tdutils/td/utils/ThreadLocalStorage.h | 55 - .../td/tdutils/td/utils/ThreadSafeCounter.h | 132 - third-party/td/td/tdutils/td/utils/Time.cpp | 49 - third-party/td/td/tdutils/td/utils/Time.h | 106 - .../td/td/tdutils/td/utils/TimedStat.h | 97 - third-party/td/td/tdutils/td/utils/Timer.cpp | 72 - third-party/td/td/tdutils/td/utils/Timer.h | 50 - .../td/td/tdutils/td/utils/TlDowncastHelper.h | 29 - .../td/td/tdutils/td/utils/TlStorerToString.h | 152 - third-party/td/td/tdutils/td/utils/TsCerr.cpp | 64 - third-party/td/td/tdutils/td/utils/TsCerr.h | 33 - .../td/td/tdutils/td/utils/TsFileLog.cpp | 106 - .../td/td/tdutils/td/utils/TsFileLog.h | 23 - third-party/td/td/tdutils/td/utils/TsList.h | 214 - third-party/td/td/tdutils/td/utils/TsLog.cpp | 21 - third-party/td/td/tdutils/td/utils/TsLog.h | 55 - third-party/td/td/tdutils/td/utils/UInt.h | 92 - third-party/td/td/tdutils/td/utils/Variant.h | 298 - .../td/td/tdutils/td/utils/VectorQueue.h | 94 - .../td/td/tdutils/td/utils/WaitFreeHashMap.h | 190 - .../td/td/tdutils/td/utils/WaitFreeHashSet.h | 142 - .../td/td/tdutils/td/utils/WaitFreeVector.h | 69 - .../td/td/tdutils/td/utils/algorithm.h | 304 - third-party/td/td/tdutils/td/utils/as.h | 81 - third-party/td/td/tdutils/td/utils/base64.cpp | 308 - third-party/td/td/tdutils/td/utils/base64.h | 35 - .../td/td/tdutils/td/utils/benchmark.h | 132 - third-party/td/td/tdutils/td/utils/bits.h | 310 - third-party/td/td/tdutils/td/utils/buffer.cpp | 201 - third-party/td/td/tdutils/td/utils/buffer.h | 836 - third-party/td/td/tdutils/td/utils/check.cpp | 23 - third-party/td/td/tdutils/td/utils/check.h | 34 - third-party/td/td/tdutils/td/utils/common.h | 127 - .../td/td/tdutils/td/utils/config.h.in | 8 - third-party/td/td/tdutils/td/utils/crypto.cpp | 1397 - third-party/td/td/tdutils/td/utils/crypto.h | 184 - third-party/td/td/tdutils/td/utils/emoji.cpp | 234 - third-party/td/td/tdutils/td/utils/emoji.h | 32 - .../td/td/tdutils/td/utils/filesystem.cpp | 191 - .../td/td/tdutils/td/utils/filesystem.h | 35 - .../td/td/tdutils/td/utils/find_boundary.cpp | 51 - .../td/td/tdutils/td/utils/find_boundary.h | 17 - .../td/td/tdutils/td/utils/fixed_vector.h | 79 - third-party/td/td/tdutils/td/utils/format.h | 303 - .../td/td/tdutils/td/utils/int_types.h | 45 - third-party/td/td/tdutils/td/utils/invoke.h | 210 - .../td/td/tdutils/td/utils/logging.cpp | 296 - third-party/td/td/tdutils/td/utils/logging.h | 255 - third-party/td/td/tdutils/td/utils/misc.cpp | 274 - third-party/td/td/tdutils/td/utils/misc.h | 354 - third-party/td/td/tdutils/td/utils/optional.h | 129 - .../td/td/tdutils/td/utils/overloaded.h | 39 - .../td/td/tdutils/td/utils/port/Clocks.cpp | 98 - .../td/td/tdutils/td/utils/port/Clocks.h | 19 - .../td/td/tdutils/td/utils/port/CxCli.h | 162 - .../td/td/tdutils/td/utils/port/EventFd.h | 33 - .../td/td/tdutils/td/utils/port/EventFdBase.h | 32 - .../td/td/tdutils/td/utils/port/FileFd.cpp | 698 - .../td/td/tdutils/td/utils/port/FileFd.h | 80 - .../td/td/tdutils/td/utils/port/FromApp.h | 100 - .../td/td/tdutils/td/utils/port/IPAddress.cpp | 666 - .../td/td/tdutils/td/utils/port/IPAddress.h | 97 - .../td/td/tdutils/td/utils/port/IoSlice.h | 42 - .../tdutils/td/utils/port/MemoryMapping.cpp | 109 - .../td/tdutils/td/utils/port/MemoryMapping.h | 52 - .../td/td/tdutils/td/utils/port/Mutex.h | 30 - .../td/td/tdutils/td/utils/port/Poll.h | 35 - .../td/td/tdutils/td/utils/port/PollBase.h | 28 - .../td/td/tdutils/td/utils/port/PollFlags.cpp | 71 - .../td/td/tdutils/td/utils/port/PollFlags.h | 122 - .../td/td/tdutils/td/utils/port/RwMutex.h | 148 - .../tdutils/td/utils/port/ServerSocketFd.cpp | 380 - .../td/tdutils/td/utils/port/ServerSocketFd.h | 57 - .../td/td/tdutils/td/utils/port/SocketFd.cpp | 728 - .../td/td/tdutils/td/utils/port/SocketFd.h | 73 - .../td/td/tdutils/td/utils/port/Stat.cpp | 416 - .../td/td/tdutils/td/utils/port/Stat.h | 56 - .../td/tdutils/td/utils/port/StdStreams.cpp | 251 - .../td/td/tdutils/td/utils/port/StdStreams.h | 49 - .../td/tdutils/td/utils/port/UdpSocketFd.cpp | 833 - .../td/td/tdutils/td/utils/port/UdpSocketFd.h | 90 - .../td/td/tdutils/td/utils/port/config.h | 59 - .../td/tdutils/td/utils/port/detail/Epoll.cpp | 126 - .../td/tdutils/td/utils/port/detail/Epoll.h | 59 - .../td/utils/port/detail/EventFdBsd.cpp | 110 - .../tdutils/td/utils/port/detail/EventFdBsd.h | 49 - .../td/utils/port/detail/EventFdLinux.cpp | 134 - .../td/utils/port/detail/EventFdLinux.h | 51 - .../td/utils/port/detail/EventFdWindows.cpp | 68 - .../td/utils/port/detail/EventFdWindows.h | 48 - .../td/tdutils/td/utils/port/detail/Iocp.cpp | 110 - .../td/td/tdutils/td/utils/port/detail/Iocp.h | 71 - .../tdutils/td/utils/port/detail/KQueue.cpp | 183 - .../td/tdutils/td/utils/port/detail/KQueue.h | 72 - .../tdutils/td/utils/port/detail/NativeFd.cpp | 302 - .../tdutils/td/utils/port/detail/NativeFd.h | 73 - .../td/tdutils/td/utils/port/detail/Poll.cpp | 104 - .../td/td/tdutils/td/utils/port/detail/Poll.h | 56 - .../tdutils/td/utils/port/detail/PollableFd.h | 230 - .../tdutils/td/utils/port/detail/Select.cpp | 120 - .../td/tdutils/td/utils/port/detail/Select.h | 64 - .../td/utils/port/detail/ThreadIdGuard.cpp | 56 - .../td/utils/port/detail/ThreadIdGuard.h | 26 - .../td/utils/port/detail/ThreadPthread.cpp | 217 - .../td/utils/port/detail/ThreadPthread.h | 113 - .../tdutils/td/utils/port/detail/ThreadStl.h | 153 - .../td/utils/port/detail/WineventPoll.cpp | 43 - .../td/utils/port/detail/WineventPoll.h | 50 - .../tdutils/td/utils/port/detail/skip_eintr.h | 63 - .../td/td/tdutils/td/utils/port/path.cpp | 666 - .../td/td/tdutils/td/utils/port/path.h | 72 - .../td/td/tdutils/td/utils/port/platform.cpp | 25 - .../td/td/tdutils/td/utils/port/platform.h | 121 - .../td/td/tdutils/td/utils/port/rlimit.cpp | 97 - .../td/td/tdutils/td/utils/port/rlimit.h | 20 - .../td/td/tdutils/td/utils/port/signals.cpp | 344 - .../td/td/tdutils/td/utils/port/signals.h | 36 - .../td/td/tdutils/td/utils/port/sleep.cpp | 48 - .../td/td/tdutils/td/utils/port/sleep.h | 15 - .../td/tdutils/td/utils/port/stacktrace.cpp | 139 - .../td/td/tdutils/td/utils/port/stacktrace.h | 23 - .../td/td/tdutils/td/utils/port/thread.h | 31 - .../td/tdutils/td/utils/port/thread_local.cpp | 41 - .../td/tdutils/td/utils/port/thread_local.h | 65 - .../td/td/tdutils/td/utils/port/uname.cpp | 291 - .../td/td/tdutils/td/utils/port/uname.h | 15 - .../td/td/tdutils/td/utils/port/user.cpp | 57 - .../td/td/tdutils/td/utils/port/user.h | 16 - .../tdutils/td/utils/port/wstring_convert.cpp | 114 - .../tdutils/td/utils/port/wstring_convert.h | 31 - third-party/td/td/tdutils/td/utils/queue.h | 472 - .../td/td/tdutils/td/utils/simple_tests.h | 164 - third-party/td/td/tdutils/td/utils/tests.cpp | 279 - third-party/td/td/tdutils/td/utils/tests.h | 220 - .../td/td/tdutils/td/utils/tl_helpers.h | 329 - .../td/td/tdutils/td/utils/tl_parsers.cpp | 78 - .../td/td/tdutils/td/utils/tl_parsers.h | 243 - .../td/td/tdutils/td/utils/tl_storers.h | 160 - .../td/td/tdutils/td/utils/translit.cpp | 115 - third-party/td/td/tdutils/td/utils/translit.h | 16 - .../td/td/tdutils/td/utils/type_traits.h | 46 - third-party/td/td/tdutils/td/utils/uint128.h | 293 - .../td/td/tdutils/td/utils/unicode.cpp | 1361 - third-party/td/td/tdutils/td/utils/unicode.h | 33 - .../td/td/tdutils/td/utils/unique_ptr.h | 122 - .../td/td/tdutils/td/utils/unique_value_ptr.h | 93 - third-party/td/td/tdutils/td/utils/utf8.cpp | 196 - third-party/td/td/tdutils/td/utils/utf8.h | 118 - .../td/td/tdutils/test/ChainScheduler.cpp | 244 - .../td/td/tdutils/test/ConcurrentHashMap.cpp | 250 - third-party/td/td/tdutils/test/Enumerator.cpp | 45 - .../test/EpochBasedMemoryReclamation.cpp | 68 - third-party/td/td/tdutils/test/HashSet.cpp | 452 - .../td/td/tdutils/test/HazardPointers.cpp | 60 - third-party/td/td/tdutils/test/HttpUrl.cpp | 143 - third-party/td/td/tdutils/test/List.cpp | 169 - third-party/td/td/tdutils/test/MpmcQueue.cpp | 207 - third-party/td/td/tdutils/test/MpmcWaiter.cpp | 142 - .../td/td/tdutils/test/MpscLinkQueue.cpp | 115 - .../td/td/tdutils/test/OptionParser.cpp | 82 - .../tdutils/test/OrderedEventsProcessor.cpp | 36 - .../td/td/tdutils/test/SharedObjectPool.cpp | 105 - .../td/td/tdutils/test/SharedSlice.cpp | 91 - .../td/td/tdutils/test/StealingQueue.cpp | 180 - .../td/td/tdutils/test/WaitFreeHashMap.cpp | 95 - .../td/td/tdutils/test/WaitFreeHashSet.cpp | 73 - .../td/td/tdutils/test/WaitFreeVector.cpp | 69 - third-party/td/td/tdutils/test/bitmask.cpp | 248 - third-party/td/td/tdutils/test/buffer.cpp | 56 - third-party/td/td/tdutils/test/crypto.cpp | 471 - third-party/td/td/tdutils/test/emoji.cpp | 148 - third-party/td/td/tdutils/test/filesystem.cpp | 47 - third-party/td/td/tdutils/test/gzip.cpp | 247 - .../td/td/tdutils/test/hashset_benchmark.cpp | 649 - third-party/td/td/tdutils/test/heap.cpp | 178 - third-party/td/td/tdutils/test/json.cpp | 300 - third-party/td/td/tdutils/test/log.cpp | 187 - third-party/td/td/tdutils/test/misc.cpp | 1417 - third-party/td/td/tdutils/test/port.cpp | 326 - third-party/td/td/tdutils/test/pq.cpp | 162 - third-party/td/td/tdutils/test/variant.cpp | 72 - third-party/td/td/test/CMakeLists.txt | 74 - third-party/td/td/test/country_info.cpp | 102 - third-party/td/td/test/crypto.cpp | 304 - third-party/td/td/test/data.cpp | 503 - third-party/td/td/test/data.h | 24 - third-party/td/td/test/db.cpp | 809 - third-party/td/td/test/fuzz_url.cpp | 33 - third-party/td/td/test/http.cpp | 565 - third-party/td/td/test/link.cpp | 1463 - third-party/td/td/test/main.cpp | 66 - third-party/td/td/test/message_entities.cpp | 2030 - third-party/td/td/test/mtproto.cpp | 742 - third-party/td/td/test/online.cpp | 632 - third-party/td/td/test/poll.cpp | 58 - third-party/td/td/test/query_merger.cpp | 99 - third-party/td/td/test/secret.cpp | 1025 - third-party/td/td/test/secure_storage.cpp | 74 - third-party/td/td/test/set_with_position.cpp | 263 - third-party/td/td/test/string_cleaning.cpp | 119 - third-party/td/td/test/tdclient.cpp | 1192 - third-party/td/td/test/tqueue.cpp | 260 - third-party/td/td/update_version.sh | 56 - 1516 files changed, 712076 deletions(-) delete mode 100644 third-party/td/td/.clang-format delete mode 100644 third-party/td/td/.gitattributes delete mode 100644 third-party/td/td/.gitignore delete mode 100644 third-party/td/td/CHANGELOG.md delete mode 100644 third-party/td/td/CMake/AddCXXCompilerFlag.cmake delete mode 100644 third-party/td/td/CMake/FindAtomics.cmake delete mode 100644 third-party/td/td/CMake/FindReadline.cmake delete mode 100644 third-party/td/td/CMake/GeneratePkgConfig.cmake delete mode 100644 third-party/td/td/CMake/GetGitRevisionDescription.cmake delete mode 100644 third-party/td/td/CMake/GetGitRevisionDescription.cmake.in delete mode 100644 third-party/td/td/CMake/PreventInSourceBuild.cmake delete mode 100644 third-party/td/td/CMake/TdSetUpCompiler.cmake delete mode 100644 third-party/td/td/CMake/iOS.cmake delete mode 100644 third-party/td/td/CMake/illumos.cmake delete mode 100644 third-party/td/td/CMakeLists.txt delete mode 100644 third-party/td/td/Doxyfile delete mode 100644 third-party/td/td/LICENSE_1_0.txt delete mode 100644 third-party/td/td/README.md delete mode 100644 third-party/td/td/SplitSource.php delete mode 100644 third-party/td/td/TdConfig.cmake delete mode 100644 third-party/td/td/benchmark/CMakeLists.txt delete mode 100644 third-party/td/td/benchmark/bench_actor.cpp delete mode 100644 third-party/td/td/benchmark/bench_crypto.cpp delete mode 100644 third-party/td/td/benchmark/bench_db.cpp delete mode 100644 third-party/td/td/benchmark/bench_empty.cpp delete mode 100644 third-party/td/td/benchmark/bench_handshake.cpp delete mode 100644 third-party/td/td/benchmark/bench_http.cpp delete mode 100644 third-party/td/td/benchmark/bench_http_reader.cpp delete mode 100644 third-party/td/td/benchmark/bench_http_server.cpp delete mode 100644 third-party/td/td/benchmark/bench_http_server_cheat.cpp delete mode 100644 third-party/td/td/benchmark/bench_http_server_fast.cpp delete mode 100644 third-party/td/td/benchmark/bench_log.cpp delete mode 100644 third-party/td/td/benchmark/bench_misc.cpp delete mode 100644 third-party/td/td/benchmark/bench_queue.cpp delete mode 100644 third-party/td/td/benchmark/bench_tddb.cpp delete mode 100644 third-party/td/td/benchmark/check_proxy.cpp delete mode 100644 third-party/td/td/benchmark/check_tls.cpp delete mode 100644 third-party/td/td/benchmark/hashmap_build.cpp delete mode 100644 third-party/td/td/benchmark/hashset_memory.cpp delete mode 100644 third-party/td/td/benchmark/rmdir.cpp delete mode 100644 third-party/td/td/benchmark/wget.cpp delete mode 100644 third-party/td/td/build.html delete mode 100644 third-party/td/td/example/README.md delete mode 100644 third-party/td/td/example/android/.gitignore delete mode 100644 third-party/td/td/example/android/AddIntDef.php delete mode 100644 third-party/td/td/example/android/CMakeLists.txt delete mode 100644 third-party/td/td/example/android/Dockerfile delete mode 100644 third-party/td/td/example/android/README.md delete mode 100755 third-party/td/td/example/android/build-openssl.sh delete mode 100755 third-party/td/td/example/android/build-tdlib.sh delete mode 100755 third-party/td/td/example/android/check-environment.sh delete mode 100755 third-party/td/td/example/android/fetch-sdk.sh delete mode 100644 third-party/td/td/example/cpp/.gitignore delete mode 100644 third-party/td/td/example/cpp/CMakeLists.txt delete mode 100644 third-party/td/td/example/cpp/README.md delete mode 100644 third-party/td/td/example/cpp/td_example.cpp delete mode 100644 third-party/td/td/example/cpp/tdjson_example.cpp delete mode 100644 third-party/td/td/example/csharp/.gitignore delete mode 100644 third-party/td/td/example/csharp/README.md delete mode 100644 third-party/td/td/example/csharp/TdExample.cs delete mode 100644 third-party/td/td/example/csharp/TdExample.csproj delete mode 100644 third-party/td/td/example/csharp/TdExample.sln delete mode 100644 third-party/td/td/example/ios/Python-Apple-support.patch delete mode 100644 third-party/td/td/example/ios/README.md delete mode 100755 third-party/td/td/example/ios/build-openssl.sh delete mode 100755 third-party/td/td/example/ios/build.sh delete mode 100644 third-party/td/td/example/java/.gitignore delete mode 100644 third-party/td/td/example/java/CMakeLists.txt delete mode 100644 third-party/td/td/example/java/README.md delete mode 100644 third-party/td/td/example/java/org/drinkless/tdlib/Client.java delete mode 100644 third-party/td/td/example/java/org/drinkless/tdlib/JsonClient.java delete mode 100644 third-party/td/td/example/java/org/drinkless/tdlib/example/Example.java delete mode 100644 third-party/td/td/example/java/org/drinkless/tdlib/example/JsonExample.java delete mode 100644 third-party/td/td/example/java/td_jni.cpp delete mode 100644 third-party/td/td/example/python/.gitignore delete mode 100644 third-party/td/td/example/python/README.md delete mode 100644 third-party/td/td/example/python/tdjson_example.py delete mode 100644 third-party/td/td/example/swift/.gitignore delete mode 100644 third-party/td/td/example/swift/README.md delete mode 100644 third-party/td/td/example/swift/src/main.swift delete mode 100644 third-party/td/td/example/swift/src/td-Bridging-Header.h delete mode 100644 third-party/td/td/example/uwp/LICENSE_1_0.txt delete mode 100644 third-party/td/td/example/uwp/README.md delete mode 100644 third-party/td/td/example/uwp/SDKManifest.xml delete mode 100644 third-party/td/td/example/uwp/Telegram.Td.UWP.nuspec delete mode 100644 third-party/td/td/example/uwp/Telegram.Td.UWP.targets delete mode 100644 third-party/td/td/example/uwp/[Content_Types].xml delete mode 100644 third-party/td/td/example/uwp/app/.gitignore delete mode 100644 third-party/td/td/example/uwp/app/App.xaml delete mode 100644 third-party/td/td/example/uwp/app/App.xaml.cs delete mode 100644 third-party/td/td/example/uwp/app/ApplicationInsights.config delete mode 100644 third-party/td/td/example/uwp/app/Assets/LockScreenLogo.scale-200.png delete mode 100644 third-party/td/td/example/uwp/app/Assets/SplashScreen.scale-200.png delete mode 100644 third-party/td/td/example/uwp/app/Assets/Square150x150Logo.scale-200.png delete mode 100644 third-party/td/td/example/uwp/app/Assets/Square44x44Logo.scale-200.png delete mode 100644 third-party/td/td/example/uwp/app/Assets/Square44x44Logo.targetsize-24_altform-unplated.png delete mode 100644 third-party/td/td/example/uwp/app/Assets/StoreLogo.png delete mode 100644 third-party/td/td/example/uwp/app/Assets/Wide310x150Logo.scale-200.png delete mode 100644 third-party/td/td/example/uwp/app/MainPage.xaml delete mode 100644 third-party/td/td/example/uwp/app/MainPage.xaml.cs delete mode 100644 third-party/td/td/example/uwp/app/Package.appxmanifest delete mode 100644 third-party/td/td/example/uwp/app/Properties/AssemblyInfo.cs delete mode 100644 third-party/td/td/example/uwp/app/Properties/Default.rd.xml delete mode 100644 third-party/td/td/example/uwp/app/TdApp.csproj delete mode 100644 third-party/td/td/example/uwp/app/TdApp.sln delete mode 100644 third-party/td/td/example/uwp/app/TdApp_TemporaryKey.pfx delete mode 100644 third-party/td/td/example/uwp/app/project.json delete mode 100644 third-party/td/td/example/uwp/build.ps1 delete mode 100644 third-party/td/td/example/uwp/extension.vsixmanifest delete mode 100644 third-party/td/td/example/web/.gitignore delete mode 100644 third-party/td/td/example/web/README.md delete mode 100755 third-party/td/td/example/web/build-openssl.sh delete mode 100755 third-party/td/td/example/web/build-tdlib.sh delete mode 100755 third-party/td/td/example/web/build-tdweb.sh delete mode 100755 third-party/td/td/example/web/copy-tdlib.sh delete mode 100644 third-party/td/td/example/web/tdweb/README.md delete mode 100644 third-party/td/td/example/web/tdweb/package-lock.json delete mode 100644 third-party/td/td/example/web/tdweb/package.json delete mode 100644 third-party/td/td/example/web/tdweb/src/index.js delete mode 100644 third-party/td/td/example/web/tdweb/src/logger.js delete mode 100644 third-party/td/td/example/web/tdweb/src/wasm-utils.js delete mode 100644 third-party/td/td/example/web/tdweb/src/worker.js delete mode 100644 third-party/td/td/example/web/tdweb/webpack.config.js delete mode 100644 third-party/td/td/format.ps1 delete mode 100755 third-party/td/td/format.sh delete mode 100644 third-party/td/td/memprof/memprof.cpp delete mode 100644 third-party/td/td/memprof/memprof.h delete mode 100644 third-party/td/td/memprof/memprof_stat.cpp delete mode 100644 third-party/td/td/memprof/memprof_stat.h delete mode 100644 third-party/td/td/post.js delete mode 100644 third-party/td/td/sqlite/CMakeLists.txt delete mode 100644 third-party/td/td/sqlite/sqlite/LICENSE delete mode 100644 third-party/td/td/sqlite/sqlite/sqlite3.c delete mode 100644 third-party/td/td/sqlite/sqlite/sqlite3.h delete mode 100644 third-party/td/td/sqlite/sqlite/sqlite3ext.h delete mode 100644 third-party/td/td/sqlite/sqlite/sqlite3session.h delete mode 100644 third-party/td/td/src.ps1 delete mode 100755 third-party/td/td/src.sh delete mode 100644 third-party/td/td/td/generate/CMakeLists.txt delete mode 100644 third-party/td/td/td/generate/DotnetTlDocumentationGenerator.php delete mode 100644 third-party/td/td/td/generate/DoxygenTlDocumentationGenerator.php delete mode 100644 third-party/td/td/td/generate/JavadocTlDocumentationGenerator.php delete mode 100644 third-party/td/td/td/generate/TlDocumentationGenerator.php delete mode 100644 third-party/td/td/td/generate/generate_c.cpp delete mode 100644 third-party/td/td/td/generate/generate_common.cpp delete mode 100644 third-party/td/td/td/generate/generate_dotnet.cpp delete mode 100644 third-party/td/td/td/generate/generate_java.cpp delete mode 100644 third-party/td/td/td/generate/generate_json.cpp delete mode 100644 third-party/td/td/td/generate/generate_mtproto.cpp delete mode 100644 third-party/td/td/td/generate/remove_documentation.cpp delete mode 100644 third-party/td/td/td/generate/scheme/e2e_api.tl delete mode 100644 third-party/td/td/td/generate/scheme/mtproto_api.tl delete mode 100644 third-party/td/td/td/generate/scheme/secret_api.tl delete mode 100644 third-party/td/td/td/generate/scheme/td_api.tl delete mode 100644 third-party/td/td/td/generate/scheme/telegram_api.tl delete mode 100644 third-party/td/td/td/generate/tl-parser/CMakeLists.txt delete mode 100644 third-party/td/td/td/generate/tl-parser/LICENSE delete mode 100644 third-party/td/td/td/generate/tl-parser/crc32.c delete mode 100644 third-party/td/td/td/generate/tl-parser/crc32.h delete mode 100644 third-party/td/td/td/generate/tl-parser/portable_endian.h delete mode 100644 third-party/td/td/td/generate/tl-parser/tl-parser-tree.h delete mode 100644 third-party/td/td/td/generate/tl-parser/tl-parser.c delete mode 100644 third-party/td/td/td/generate/tl-parser/tl-parser.h delete mode 100644 third-party/td/td/td/generate/tl-parser/tl-tl.h delete mode 100644 third-party/td/td/td/generate/tl-parser/tlc.c delete mode 100644 third-party/td/td/td/generate/tl-parser/wgetopt.c delete mode 100644 third-party/td/td/td/generate/tl-parser/wgetopt.h delete mode 100644 third-party/td/td/td/generate/tl_json_converter.cpp delete mode 100644 third-party/td/td/td/generate/tl_json_converter.h delete mode 100644 third-party/td/td/td/generate/tl_writer_c.h delete mode 100644 third-party/td/td/td/generate/tl_writer_cpp.cpp delete mode 100644 third-party/td/td/td/generate/tl_writer_cpp.h delete mode 100644 third-party/td/td/td/generate/tl_writer_dotnet.h delete mode 100644 third-party/td/td/td/generate/tl_writer_h.cpp delete mode 100644 third-party/td/td/td/generate/tl_writer_h.h delete mode 100644 third-party/td/td/td/generate/tl_writer_hpp.cpp delete mode 100644 third-party/td/td/td/generate/tl_writer_hpp.h delete mode 100644 third-party/td/td/td/generate/tl_writer_java.cpp delete mode 100644 third-party/td/td/td/generate/tl_writer_java.h delete mode 100644 third-party/td/td/td/generate/tl_writer_jni_cpp.cpp delete mode 100644 third-party/td/td/td/generate/tl_writer_jni_cpp.h delete mode 100644 third-party/td/td/td/generate/tl_writer_jni_h.cpp delete mode 100644 third-party/td/td/td/generate/tl_writer_jni_h.h delete mode 100644 third-party/td/td/td/generate/tl_writer_td.cpp delete mode 100644 third-party/td/td/td/generate/tl_writer_td.h delete mode 100644 third-party/td/td/td/mtproto/AuthData.cpp delete mode 100644 third-party/td/td/td/mtproto/AuthData.h delete mode 100644 third-party/td/td/td/mtproto/AuthKey.h delete mode 100644 third-party/td/td/td/mtproto/ConnectionManager.cpp delete mode 100644 third-party/td/td/td/mtproto/ConnectionManager.h delete mode 100644 third-party/td/td/td/mtproto/CryptoStorer.h delete mode 100644 third-party/td/td/td/mtproto/DhCallback.h delete mode 100644 third-party/td/td/td/mtproto/DhHandshake.cpp delete mode 100644 third-party/td/td/td/mtproto/DhHandshake.h delete mode 100644 third-party/td/td/td/mtproto/Handshake.cpp delete mode 100644 third-party/td/td/td/mtproto/Handshake.h delete mode 100644 third-party/td/td/td/mtproto/HandshakeActor.cpp delete mode 100644 third-party/td/td/td/mtproto/HandshakeActor.h delete mode 100644 third-party/td/td/td/mtproto/HandshakeConnection.h delete mode 100644 third-party/td/td/td/mtproto/HttpTransport.cpp delete mode 100644 third-party/td/td/td/mtproto/HttpTransport.h delete mode 100644 third-party/td/td/td/mtproto/IStreamTransport.cpp delete mode 100644 third-party/td/td/td/mtproto/IStreamTransport.h delete mode 100644 third-party/td/td/td/mtproto/KDF.cpp delete mode 100644 third-party/td/td/td/mtproto/KDF.h delete mode 100644 third-party/td/td/td/mtproto/MessageId.h delete mode 100644 third-party/td/td/td/mtproto/MtprotoQuery.h delete mode 100644 third-party/td/td/td/mtproto/NoCryptoStorer.h delete mode 100644 third-party/td/td/td/mtproto/PacketInfo.h delete mode 100644 third-party/td/td/td/mtproto/PacketStorer.h delete mode 100644 third-party/td/td/td/mtproto/Ping.cpp delete mode 100644 third-party/td/td/td/mtproto/Ping.h delete mode 100644 third-party/td/td/td/mtproto/PingConnection.cpp delete mode 100644 third-party/td/td/td/mtproto/PingConnection.h delete mode 100644 third-party/td/td/td/mtproto/ProxySecret.cpp delete mode 100644 third-party/td/td/td/mtproto/ProxySecret.h delete mode 100644 third-party/td/td/td/mtproto/RSA.cpp delete mode 100644 third-party/td/td/td/mtproto/RSA.h delete mode 100644 third-party/td/td/td/mtproto/RawConnection.cpp delete mode 100644 third-party/td/td/td/mtproto/RawConnection.h delete mode 100644 third-party/td/td/td/mtproto/SessionConnection.cpp delete mode 100644 third-party/td/td/td/mtproto/SessionConnection.h delete mode 100644 third-party/td/td/td/mtproto/TcpTransport.cpp delete mode 100644 third-party/td/td/td/mtproto/TcpTransport.h delete mode 100644 third-party/td/td/td/mtproto/TlsInit.cpp delete mode 100644 third-party/td/td/td/mtproto/TlsInit.h delete mode 100644 third-party/td/td/td/mtproto/TlsReaderByteFlow.cpp delete mode 100644 third-party/td/td/td/mtproto/TlsReaderByteFlow.h delete mode 100644 third-party/td/td/td/mtproto/Transport.cpp delete mode 100644 third-party/td/td/td/mtproto/Transport.h delete mode 100644 third-party/td/td/td/mtproto/TransportType.h delete mode 100644 third-party/td/td/td/mtproto/utils.cpp delete mode 100644 third-party/td/td/td/mtproto/utils.h delete mode 100644 third-party/td/td/td/telegram/AccentColorId.h delete mode 100644 third-party/td/td/td/telegram/AccessRights.h delete mode 100644 third-party/td/td/td/telegram/AccountManager.cpp delete mode 100644 third-party/td/td/td/telegram/AccountManager.h delete mode 100644 third-party/td/td/td/telegram/AffectedHistory.h delete mode 100644 third-party/td/td/td/telegram/AffiliateType.cpp delete mode 100644 third-party/td/td/td/telegram/AffiliateType.h delete mode 100644 third-party/td/td/td/telegram/AlarmManager.cpp delete mode 100644 third-party/td/td/td/telegram/AlarmManager.h delete mode 100644 third-party/td/td/td/telegram/AnimationsManager.cpp delete mode 100644 third-party/td/td/td/telegram/AnimationsManager.h delete mode 100644 third-party/td/td/td/telegram/AnimationsManager.hpp delete mode 100644 third-party/td/td/td/telegram/Application.cpp delete mode 100644 third-party/td/td/td/telegram/Application.h delete mode 100644 third-party/td/td/td/telegram/AttachMenuManager.cpp delete mode 100644 third-party/td/td/td/telegram/AttachMenuManager.h delete mode 100644 third-party/td/td/td/telegram/AudiosManager.cpp delete mode 100644 third-party/td/td/td/telegram/AudiosManager.h delete mode 100644 third-party/td/td/td/telegram/AudiosManager.hpp delete mode 100644 third-party/td/td/td/telegram/AuthManager.cpp delete mode 100644 third-party/td/td/td/telegram/AuthManager.h delete mode 100644 third-party/td/td/td/telegram/AuthManager.hpp delete mode 100644 third-party/td/td/td/telegram/AutoDownloadSettings.cpp delete mode 100644 third-party/td/td/td/telegram/AutoDownloadSettings.h delete mode 100644 third-party/td/td/td/telegram/AutosaveManager.cpp delete mode 100644 third-party/td/td/td/telegram/AutosaveManager.h delete mode 100644 third-party/td/td/td/telegram/BackgroundId.h delete mode 100644 third-party/td/td/td/telegram/BackgroundInfo.cpp delete mode 100644 third-party/td/td/td/telegram/BackgroundInfo.h delete mode 100644 third-party/td/td/td/telegram/BackgroundInfo.hpp delete mode 100644 third-party/td/td/td/telegram/BackgroundManager.cpp delete mode 100644 third-party/td/td/td/telegram/BackgroundManager.h delete mode 100644 third-party/td/td/td/telegram/BackgroundType.cpp delete mode 100644 third-party/td/td/td/telegram/BackgroundType.h delete mode 100644 third-party/td/td/td/telegram/BackgroundType.hpp delete mode 100644 third-party/td/td/td/telegram/BaseTheme.cpp delete mode 100644 third-party/td/td/td/telegram/BaseTheme.h delete mode 100644 third-party/td/td/td/telegram/Birthdate.cpp delete mode 100644 third-party/td/td/td/telegram/Birthdate.h delete mode 100644 third-party/td/td/td/telegram/Birthdate.hpp delete mode 100644 third-party/td/td/td/telegram/BlockListId.h delete mode 100644 third-party/td/td/td/telegram/BoostManager.cpp delete mode 100644 third-party/td/td/td/telegram/BoostManager.h delete mode 100644 third-party/td/td/td/telegram/BotCommand.cpp delete mode 100644 third-party/td/td/td/telegram/BotCommand.h delete mode 100644 third-party/td/td/td/telegram/BotCommandScope.cpp delete mode 100644 third-party/td/td/td/telegram/BotCommandScope.h delete mode 100644 third-party/td/td/td/telegram/BotInfoManager.cpp delete mode 100644 third-party/td/td/td/telegram/BotInfoManager.h delete mode 100644 third-party/td/td/td/telegram/BotMenuButton.cpp delete mode 100644 third-party/td/td/td/telegram/BotMenuButton.h delete mode 100644 third-party/td/td/td/telegram/BotQueries.cpp delete mode 100644 third-party/td/td/td/telegram/BotQueries.h delete mode 100644 third-party/td/td/td/telegram/BotRecommendationManager.cpp delete mode 100644 third-party/td/td/td/telegram/BotRecommendationManager.h delete mode 100644 third-party/td/td/td/telegram/BotVerification.cpp delete mode 100644 third-party/td/td/td/telegram/BotVerification.h delete mode 100644 third-party/td/td/td/telegram/BotVerification.hpp delete mode 100644 third-party/td/td/td/telegram/BotVerifierSettings.cpp delete mode 100644 third-party/td/td/td/telegram/BotVerifierSettings.h delete mode 100644 third-party/td/td/td/telegram/BotVerifierSettings.hpp delete mode 100644 third-party/td/td/td/telegram/BusinessAwayMessage.cpp delete mode 100644 third-party/td/td/td/telegram/BusinessAwayMessage.h delete mode 100644 third-party/td/td/td/telegram/BusinessAwayMessage.hpp delete mode 100644 third-party/td/td/td/telegram/BusinessAwayMessageSchedule.cpp delete mode 100644 third-party/td/td/td/telegram/BusinessAwayMessageSchedule.h delete mode 100644 third-party/td/td/td/telegram/BusinessAwayMessageSchedule.hpp delete mode 100644 third-party/td/td/td/telegram/BusinessBotManageBar.cpp delete mode 100644 third-party/td/td/td/telegram/BusinessBotManageBar.h delete mode 100644 third-party/td/td/td/telegram/BusinessBotRights.cpp delete mode 100644 third-party/td/td/td/telegram/BusinessBotRights.h delete mode 100644 third-party/td/td/td/telegram/BusinessBotRights.hpp delete mode 100644 third-party/td/td/td/telegram/BusinessChatLink.cpp delete mode 100644 third-party/td/td/td/telegram/BusinessChatLink.h delete mode 100644 third-party/td/td/td/telegram/BusinessConnectedBot.cpp delete mode 100644 third-party/td/td/td/telegram/BusinessConnectedBot.h delete mode 100644 third-party/td/td/td/telegram/BusinessConnectedBot.hpp delete mode 100644 third-party/td/td/td/telegram/BusinessConnectionId.h delete mode 100644 third-party/td/td/td/telegram/BusinessConnectionManager.cpp delete mode 100644 third-party/td/td/td/telegram/BusinessConnectionManager.h delete mode 100644 third-party/td/td/td/telegram/BusinessGreetingMessage.cpp delete mode 100644 third-party/td/td/td/telegram/BusinessGreetingMessage.h delete mode 100644 third-party/td/td/td/telegram/BusinessGreetingMessage.hpp delete mode 100644 third-party/td/td/td/telegram/BusinessInfo.cpp delete mode 100644 third-party/td/td/td/telegram/BusinessInfo.h delete mode 100644 third-party/td/td/td/telegram/BusinessInfo.hpp delete mode 100644 third-party/td/td/td/telegram/BusinessIntro.cpp delete mode 100644 third-party/td/td/td/telegram/BusinessIntro.h delete mode 100644 third-party/td/td/td/telegram/BusinessIntro.hpp delete mode 100644 third-party/td/td/td/telegram/BusinessManager.cpp delete mode 100644 third-party/td/td/td/telegram/BusinessManager.h delete mode 100644 third-party/td/td/td/telegram/BusinessRecipients.cpp delete mode 100644 third-party/td/td/td/telegram/BusinessRecipients.h delete mode 100644 third-party/td/td/td/telegram/BusinessRecipients.hpp delete mode 100644 third-party/td/td/td/telegram/BusinessWorkHours.cpp delete mode 100644 third-party/td/td/td/telegram/BusinessWorkHours.h delete mode 100644 third-party/td/td/td/telegram/BusinessWorkHours.hpp delete mode 100644 third-party/td/td/td/telegram/CallActor.cpp delete mode 100644 third-party/td/td/td/telegram/CallActor.h delete mode 100644 third-party/td/td/td/telegram/CallDiscardReason.cpp delete mode 100644 third-party/td/td/td/telegram/CallDiscardReason.h delete mode 100644 third-party/td/td/td/telegram/CallId.h delete mode 100644 third-party/td/td/td/telegram/CallManager.cpp delete mode 100644 third-party/td/td/td/telegram/CallManager.h delete mode 100644 third-party/td/td/td/telegram/CallbackQueriesManager.cpp delete mode 100644 third-party/td/td/td/telegram/CallbackQueriesManager.h delete mode 100644 third-party/td/td/td/telegram/ChainId.h delete mode 100644 third-party/td/td/td/telegram/ChannelId.h delete mode 100644 third-party/td/td/td/telegram/ChannelParticipantFilter.cpp delete mode 100644 third-party/td/td/td/telegram/ChannelParticipantFilter.h delete mode 100644 third-party/td/td/td/telegram/ChannelRecommendationManager.cpp delete mode 100644 third-party/td/td/td/telegram/ChannelRecommendationManager.h delete mode 100644 third-party/td/td/td/telegram/ChannelType.h delete mode 100644 third-party/td/td/td/telegram/ChatId.h delete mode 100644 third-party/td/td/td/telegram/ChatManager.cpp delete mode 100644 third-party/td/td/td/telegram/ChatManager.h delete mode 100644 third-party/td/td/td/telegram/ChatReactions.cpp delete mode 100644 third-party/td/td/td/telegram/ChatReactions.h delete mode 100644 third-party/td/td/td/telegram/ChatReactions.hpp delete mode 100644 third-party/td/td/td/telegram/Client.cpp delete mode 100644 third-party/td/td/td/telegram/Client.h delete mode 100644 third-party/td/td/td/telegram/ClientActor.cpp delete mode 100644 third-party/td/td/td/telegram/ClientActor.h delete mode 100644 third-party/td/td/td/telegram/ClientDotNet.cpp delete mode 100644 third-party/td/td/td/telegram/ClientJson.cpp delete mode 100644 third-party/td/td/td/telegram/ClientJson.h delete mode 100644 third-party/td/td/td/telegram/CommonDialogManager.cpp delete mode 100644 third-party/td/td/td/telegram/CommonDialogManager.h delete mode 100644 third-party/td/td/td/telegram/ConfigManager.cpp delete mode 100644 third-party/td/td/td/telegram/ConfigManager.h delete mode 100644 third-party/td/td/td/telegram/ConnectionState.cpp delete mode 100644 third-party/td/td/td/telegram/ConnectionState.h delete mode 100644 third-party/td/td/td/telegram/ConnectionStateManager.cpp delete mode 100644 third-party/td/td/td/telegram/ConnectionStateManager.h delete mode 100644 third-party/td/td/td/telegram/Contact.cpp delete mode 100644 third-party/td/td/td/telegram/Contact.h delete mode 100644 third-party/td/td/td/telegram/CountryInfoManager.cpp delete mode 100644 third-party/td/td/td/telegram/CountryInfoManager.h delete mode 100644 third-party/td/td/td/telegram/CustomEmojiId.h delete mode 100644 third-party/td/td/td/telegram/DelayDispatcher.cpp delete mode 100644 third-party/td/td/td/telegram/DelayDispatcher.h delete mode 100644 third-party/td/td/td/telegram/Dependencies.cpp delete mode 100644 third-party/td/td/td/telegram/Dependencies.h delete mode 100644 third-party/td/td/td/telegram/DeviceTokenManager.cpp delete mode 100644 third-party/td/td/td/telegram/DeviceTokenManager.h delete mode 100644 third-party/td/td/td/telegram/DhCache.cpp delete mode 100644 third-party/td/td/td/telegram/DhCache.h delete mode 100644 third-party/td/td/td/telegram/DhConfig.h delete mode 100644 third-party/td/td/td/telegram/DialogAction.cpp delete mode 100644 third-party/td/td/td/telegram/DialogAction.h delete mode 100644 third-party/td/td/td/telegram/DialogActionBar.cpp delete mode 100644 third-party/td/td/td/telegram/DialogActionBar.h delete mode 100644 third-party/td/td/td/telegram/DialogActionManager.cpp delete mode 100644 third-party/td/td/td/telegram/DialogActionManager.h delete mode 100644 third-party/td/td/td/telegram/DialogAdministrator.cpp delete mode 100644 third-party/td/td/td/telegram/DialogAdministrator.h delete mode 100644 third-party/td/td/td/telegram/DialogBoostLinkInfo.h delete mode 100644 third-party/td/td/td/telegram/DialogDate.h delete mode 100644 third-party/td/td/td/telegram/DialogDb.cpp delete mode 100644 third-party/td/td/td/telegram/DialogDb.h delete mode 100644 third-party/td/td/td/telegram/DialogEventLog.cpp delete mode 100644 third-party/td/td/td/telegram/DialogEventLog.h delete mode 100644 third-party/td/td/td/telegram/DialogFilter.cpp delete mode 100644 third-party/td/td/td/telegram/DialogFilter.h delete mode 100644 third-party/td/td/td/telegram/DialogFilter.hpp delete mode 100644 third-party/td/td/td/telegram/DialogFilterDialogInfo.h delete mode 100644 third-party/td/td/td/telegram/DialogFilterId.h delete mode 100644 third-party/td/td/td/telegram/DialogFilterInviteLink.cpp delete mode 100644 third-party/td/td/td/telegram/DialogFilterInviteLink.h delete mode 100644 third-party/td/td/td/telegram/DialogFilterManager.cpp delete mode 100644 third-party/td/td/td/telegram/DialogFilterManager.h delete mode 100644 third-party/td/td/td/telegram/DialogId.cpp delete mode 100644 third-party/td/td/td/telegram/DialogId.h delete mode 100644 third-party/td/td/td/telegram/DialogInviteLink.cpp delete mode 100644 third-party/td/td/td/telegram/DialogInviteLink.h delete mode 100644 third-party/td/td/td/telegram/DialogInviteLink.hpp delete mode 100644 third-party/td/td/td/telegram/DialogInviteLinkManager.cpp delete mode 100644 third-party/td/td/td/telegram/DialogInviteLinkManager.h delete mode 100644 third-party/td/td/td/telegram/DialogListId.h delete mode 100644 third-party/td/td/td/telegram/DialogLocation.cpp delete mode 100644 third-party/td/td/td/telegram/DialogLocation.h delete mode 100644 third-party/td/td/td/telegram/DialogManager.cpp delete mode 100644 third-party/td/td/td/telegram/DialogManager.h delete mode 100644 third-party/td/td/td/telegram/DialogNotificationSettings.cpp delete mode 100644 third-party/td/td/td/telegram/DialogNotificationSettings.h delete mode 100644 third-party/td/td/td/telegram/DialogNotificationSettings.hpp delete mode 100644 third-party/td/td/td/telegram/DialogParticipant.cpp delete mode 100644 third-party/td/td/td/telegram/DialogParticipant.h delete mode 100644 third-party/td/td/td/telegram/DialogParticipantFilter.cpp delete mode 100644 third-party/td/td/td/telegram/DialogParticipantFilter.h delete mode 100644 third-party/td/td/td/telegram/DialogParticipantManager.cpp delete mode 100644 third-party/td/td/td/telegram/DialogParticipantManager.h delete mode 100644 third-party/td/td/td/telegram/DialogSource.cpp delete mode 100644 third-party/td/td/td/telegram/DialogSource.h delete mode 100644 third-party/td/td/td/telegram/Dimensions.cpp delete mode 100644 third-party/td/td/td/telegram/Dimensions.h delete mode 100644 third-party/td/td/td/telegram/Dimensions.hpp delete mode 100644 third-party/td/td/td/telegram/DisallowedGiftsSettings.cpp delete mode 100644 third-party/td/td/td/telegram/DisallowedGiftsSettings.h delete mode 100644 third-party/td/td/td/telegram/DisallowedGiftsSettings.hpp delete mode 100644 third-party/td/td/td/telegram/Document.cpp delete mode 100644 third-party/td/td/td/telegram/Document.h delete mode 100644 third-party/td/td/td/telegram/Document.hpp delete mode 100644 third-party/td/td/td/telegram/DocumentsManager.cpp delete mode 100644 third-party/td/td/td/telegram/DocumentsManager.h delete mode 100644 third-party/td/td/td/telegram/DocumentsManager.hpp delete mode 100644 third-party/td/td/td/telegram/DownloadManager.cpp delete mode 100644 third-party/td/td/td/telegram/DownloadManager.h delete mode 100644 third-party/td/td/td/telegram/DownloadManagerCallback.cpp delete mode 100644 third-party/td/td/td/telegram/DownloadManagerCallback.h delete mode 100644 third-party/td/td/td/telegram/DraftMessage.cpp delete mode 100644 third-party/td/td/td/telegram/DraftMessage.h delete mode 100644 third-party/td/td/td/telegram/DraftMessage.hpp delete mode 100644 third-party/td/td/td/telegram/EmailVerification.cpp delete mode 100644 third-party/td/td/td/telegram/EmailVerification.h delete mode 100644 third-party/td/td/td/telegram/EmojiGroup.cpp delete mode 100644 third-party/td/td/td/telegram/EmojiGroup.h delete mode 100644 third-party/td/td/td/telegram/EmojiGroup.hpp delete mode 100644 third-party/td/td/td/telegram/EmojiGroupType.cpp delete mode 100644 third-party/td/td/td/telegram/EmojiGroupType.h delete mode 100644 third-party/td/td/td/telegram/EmojiStatus.cpp delete mode 100644 third-party/td/td/td/telegram/EmojiStatus.h delete mode 100644 third-party/td/td/td/telegram/EncryptedFile.h delete mode 100644 third-party/td/td/td/telegram/FactCheck.cpp delete mode 100644 third-party/td/td/td/telegram/FactCheck.h delete mode 100644 third-party/td/td/td/telegram/FactCheck.hpp delete mode 100644 third-party/td/td/td/telegram/FileReferenceManager.cpp delete mode 100644 third-party/td/td/td/telegram/FileReferenceManager.h delete mode 100644 third-party/td/td/td/telegram/FileReferenceManager.hpp delete mode 100644 third-party/td/td/td/telegram/FolderId.h delete mode 100644 third-party/td/td/td/telegram/ForumTopic.cpp delete mode 100644 third-party/td/td/td/telegram/ForumTopic.h delete mode 100644 third-party/td/td/td/telegram/ForumTopic.hpp delete mode 100644 third-party/td/td/td/telegram/ForumTopicEditedData.cpp delete mode 100644 third-party/td/td/td/telegram/ForumTopicEditedData.h delete mode 100644 third-party/td/td/td/telegram/ForumTopicEditedData.hpp delete mode 100644 third-party/td/td/td/telegram/ForumTopicIcon.cpp delete mode 100644 third-party/td/td/td/telegram/ForumTopicIcon.h delete mode 100644 third-party/td/td/td/telegram/ForumTopicIcon.hpp delete mode 100644 third-party/td/td/td/telegram/ForumTopicInfo.cpp delete mode 100644 third-party/td/td/td/telegram/ForumTopicInfo.h delete mode 100644 third-party/td/td/td/telegram/ForumTopicInfo.hpp delete mode 100644 third-party/td/td/td/telegram/ForumTopicManager.cpp delete mode 100644 third-party/td/td/td/telegram/ForumTopicManager.h delete mode 100644 third-party/td/td/td/telegram/Game.cpp delete mode 100644 third-party/td/td/td/telegram/Game.h delete mode 100644 third-party/td/td/td/telegram/Game.hpp delete mode 100644 third-party/td/td/td/telegram/GameManager.cpp delete mode 100644 third-party/td/td/td/telegram/GameManager.h delete mode 100644 third-party/td/td/td/telegram/GitCommitHash.cpp.in delete mode 100644 third-party/td/td/td/telegram/GitCommitHash.h delete mode 100644 third-party/td/td/td/telegram/GiveawayParameters.cpp delete mode 100644 third-party/td/td/td/telegram/GiveawayParameters.h delete mode 100644 third-party/td/td/td/telegram/GiveawayParameters.hpp delete mode 100644 third-party/td/td/td/telegram/Global.cpp delete mode 100644 third-party/td/td/td/telegram/Global.h delete mode 100644 third-party/td/td/td/telegram/GlobalPrivacySettings.cpp delete mode 100644 third-party/td/td/td/telegram/GlobalPrivacySettings.h delete mode 100644 third-party/td/td/td/telegram/GroupCallId.h delete mode 100644 third-party/td/td/td/telegram/GroupCallManager.cpp delete mode 100644 third-party/td/td/td/telegram/GroupCallManager.h delete mode 100644 third-party/td/td/td/telegram/GroupCallParticipant.cpp delete mode 100644 third-party/td/td/td/telegram/GroupCallParticipant.h delete mode 100644 third-party/td/td/td/telegram/GroupCallParticipantOrder.cpp delete mode 100644 third-party/td/td/td/telegram/GroupCallParticipantOrder.h delete mode 100644 third-party/td/td/td/telegram/GroupCallVideoPayload.cpp delete mode 100644 third-party/td/td/td/telegram/GroupCallVideoPayload.h delete mode 100644 third-party/td/td/td/telegram/HashtagHints.cpp delete mode 100644 third-party/td/td/td/telegram/HashtagHints.h delete mode 100644 third-party/td/td/td/telegram/InlineMessageManager.cpp delete mode 100644 third-party/td/td/td/telegram/InlineMessageManager.h delete mode 100644 third-party/td/td/td/telegram/InlineQueriesManager.cpp delete mode 100644 third-party/td/td/td/telegram/InlineQueriesManager.h delete mode 100644 third-party/td/td/td/telegram/InputBusinessChatLink.cpp delete mode 100644 third-party/td/td/td/telegram/InputBusinessChatLink.h delete mode 100644 third-party/td/td/td/telegram/InputDialogId.cpp delete mode 100644 third-party/td/td/td/telegram/InputDialogId.h delete mode 100644 third-party/td/td/td/telegram/InputGroupCallId.cpp delete mode 100644 third-party/td/td/td/telegram/InputGroupCallId.h delete mode 100644 third-party/td/td/td/telegram/InputInvoice.cpp delete mode 100644 third-party/td/td/td/telegram/InputInvoice.h delete mode 100644 third-party/td/td/td/telegram/InputInvoice.hpp delete mode 100644 third-party/td/td/td/telegram/InputMessageText.cpp delete mode 100644 third-party/td/td/td/telegram/InputMessageText.h delete mode 100644 third-party/td/td/td/telegram/InputMessageText.hpp delete mode 100644 third-party/td/td/td/telegram/JsonValue.cpp delete mode 100644 third-party/td/td/td/telegram/JsonValue.h delete mode 100644 third-party/td/td/td/telegram/LabeledPricePart.h delete mode 100644 third-party/td/td/td/telegram/LanguagePackManager.cpp delete mode 100644 third-party/td/td/td/telegram/LanguagePackManager.h delete mode 100644 third-party/td/td/td/telegram/LinkManager.cpp delete mode 100644 third-party/td/td/td/telegram/LinkManager.h delete mode 100644 third-party/td/td/td/telegram/Location.cpp delete mode 100644 third-party/td/td/td/telegram/Location.h delete mode 100644 third-party/td/td/td/telegram/Log.cpp delete mode 100644 third-party/td/td/td/telegram/Log.h delete mode 100644 third-party/td/td/td/telegram/LogDotNet.cpp delete mode 100644 third-party/td/td/td/telegram/Logging.cpp delete mode 100644 third-party/td/td/td/telegram/Logging.h delete mode 100644 third-party/td/td/td/telegram/MediaArea.cpp delete mode 100644 third-party/td/td/td/telegram/MediaArea.h delete mode 100644 third-party/td/td/td/telegram/MediaArea.hpp delete mode 100644 third-party/td/td/td/telegram/MediaAreaCoordinates.cpp delete mode 100644 third-party/td/td/td/telegram/MediaAreaCoordinates.h delete mode 100644 third-party/td/td/td/telegram/MediaAreaCoordinates.hpp delete mode 100644 third-party/td/td/td/telegram/MessageContent.cpp delete mode 100644 third-party/td/td/td/telegram/MessageContent.h delete mode 100644 third-party/td/td/td/telegram/MessageContentType.cpp delete mode 100644 third-party/td/td/td/telegram/MessageContentType.h delete mode 100644 third-party/td/td/td/telegram/MessageCopyOptions.h delete mode 100644 third-party/td/td/td/telegram/MessageDb.cpp delete mode 100644 third-party/td/td/td/telegram/MessageDb.h delete mode 100644 third-party/td/td/td/telegram/MessageEffectId.h delete mode 100644 third-party/td/td/td/telegram/MessageEntity.cpp delete mode 100644 third-party/td/td/td/telegram/MessageEntity.h delete mode 100644 third-party/td/td/td/telegram/MessageEntity.hpp delete mode 100644 third-party/td/td/td/telegram/MessageExtendedMedia.cpp delete mode 100644 third-party/td/td/td/telegram/MessageExtendedMedia.h delete mode 100644 third-party/td/td/td/telegram/MessageExtendedMedia.hpp delete mode 100644 third-party/td/td/td/telegram/MessageForwardInfo.cpp delete mode 100644 third-party/td/td/td/telegram/MessageForwardInfo.h delete mode 100644 third-party/td/td/td/telegram/MessageForwardInfo.hpp delete mode 100644 third-party/td/td/td/telegram/MessageFullId.h delete mode 100644 third-party/td/td/td/telegram/MessageId.cpp delete mode 100644 third-party/td/td/td/telegram/MessageId.h delete mode 100644 third-party/td/td/td/telegram/MessageImportManager.cpp delete mode 100644 third-party/td/td/td/telegram/MessageImportManager.h delete mode 100644 third-party/td/td/td/telegram/MessageInputReplyTo.cpp delete mode 100644 third-party/td/td/td/telegram/MessageInputReplyTo.h delete mode 100644 third-party/td/td/td/telegram/MessageInputReplyTo.hpp delete mode 100644 third-party/td/td/td/telegram/MessageLinkInfo.h delete mode 100644 third-party/td/td/td/telegram/MessageOrigin.cpp delete mode 100644 third-party/td/td/td/telegram/MessageOrigin.h delete mode 100644 third-party/td/td/td/telegram/MessageOrigin.hpp delete mode 100644 third-party/td/td/td/telegram/MessageQueryManager.cpp delete mode 100644 third-party/td/td/td/telegram/MessageQueryManager.h delete mode 100644 third-party/td/td/td/telegram/MessageQuote.cpp delete mode 100644 third-party/td/td/td/telegram/MessageQuote.h delete mode 100644 third-party/td/td/td/telegram/MessageQuote.hpp delete mode 100644 third-party/td/td/td/telegram/MessageReaction.cpp delete mode 100644 third-party/td/td/td/telegram/MessageReaction.h delete mode 100644 third-party/td/td/td/telegram/MessageReaction.hpp delete mode 100644 third-party/td/td/td/telegram/MessageReactor.cpp delete mode 100644 third-party/td/td/td/telegram/MessageReactor.h delete mode 100644 third-party/td/td/td/telegram/MessageReactor.hpp delete mode 100644 third-party/td/td/td/telegram/MessageReplyHeader.cpp delete mode 100644 third-party/td/td/td/telegram/MessageReplyHeader.h delete mode 100644 third-party/td/td/td/telegram/MessageReplyInfo.cpp delete mode 100644 third-party/td/td/td/telegram/MessageReplyInfo.h delete mode 100644 third-party/td/td/td/telegram/MessageReplyInfo.hpp delete mode 100644 third-party/td/td/td/telegram/MessageSearchFilter.cpp delete mode 100644 third-party/td/td/td/telegram/MessageSearchFilter.h delete mode 100644 third-party/td/td/td/telegram/MessageSearchOffset.cpp delete mode 100644 third-party/td/td/td/telegram/MessageSearchOffset.h delete mode 100644 third-party/td/td/td/telegram/MessageSelfDestructType.cpp delete mode 100644 third-party/td/td/td/telegram/MessageSelfDestructType.h delete mode 100644 third-party/td/td/td/telegram/MessageSender.cpp delete mode 100644 third-party/td/td/td/telegram/MessageSender.h delete mode 100644 third-party/td/td/td/telegram/MessageSource.cpp delete mode 100644 third-party/td/td/td/telegram/MessageSource.h delete mode 100644 third-party/td/td/td/telegram/MessageThreadDb.cpp delete mode 100644 third-party/td/td/td/telegram/MessageThreadDb.h delete mode 100644 third-party/td/td/td/telegram/MessageThreadInfo.h delete mode 100644 third-party/td/td/td/telegram/MessageTtl.cpp delete mode 100644 third-party/td/td/td/telegram/MessageTtl.h delete mode 100644 third-party/td/td/td/telegram/MessageViewer.cpp delete mode 100644 third-party/td/td/td/telegram/MessageViewer.h delete mode 100644 third-party/td/td/td/telegram/MessagesInfo.cpp delete mode 100644 third-party/td/td/td/telegram/MessagesInfo.h delete mode 100644 third-party/td/td/td/telegram/MessagesManager.cpp delete mode 100644 third-party/td/td/td/telegram/MessagesManager.h delete mode 100644 third-party/td/td/td/telegram/MinChannel.h delete mode 100644 third-party/td/td/td/telegram/MinChannel.hpp delete mode 100644 third-party/td/td/td/telegram/MissingInvitee.cpp delete mode 100644 third-party/td/td/td/telegram/MissingInvitee.h delete mode 100644 third-party/td/td/td/telegram/NewPasswordState.cpp delete mode 100644 third-party/td/td/td/telegram/NewPasswordState.h delete mode 100644 third-party/td/td/td/telegram/Notification.h delete mode 100644 third-party/td/td/td/telegram/NotificationGroupFromDatabase.h delete mode 100644 third-party/td/td/td/telegram/NotificationGroupId.h delete mode 100644 third-party/td/td/td/telegram/NotificationGroupInfo.cpp delete mode 100644 third-party/td/td/td/telegram/NotificationGroupInfo.h delete mode 100644 third-party/td/td/td/telegram/NotificationGroupInfo.hpp delete mode 100644 third-party/td/td/td/telegram/NotificationGroupKey.h delete mode 100644 third-party/td/td/td/telegram/NotificationGroupType.cpp delete mode 100644 third-party/td/td/td/telegram/NotificationGroupType.h delete mode 100644 third-party/td/td/td/telegram/NotificationId.h delete mode 100644 third-party/td/td/td/telegram/NotificationManager.cpp delete mode 100644 third-party/td/td/td/telegram/NotificationManager.h delete mode 100644 third-party/td/td/td/telegram/NotificationObjectFullId.h delete mode 100644 third-party/td/td/td/telegram/NotificationObjectId.h delete mode 100644 third-party/td/td/td/telegram/NotificationSettingsManager.cpp delete mode 100644 third-party/td/td/td/telegram/NotificationSettingsManager.h delete mode 100644 third-party/td/td/td/telegram/NotificationSettingsScope.cpp delete mode 100644 third-party/td/td/td/telegram/NotificationSettingsScope.h delete mode 100644 third-party/td/td/td/telegram/NotificationSound.cpp delete mode 100644 third-party/td/td/td/telegram/NotificationSound.h delete mode 100644 third-party/td/td/td/telegram/NotificationSoundType.h delete mode 100644 third-party/td/td/td/telegram/NotificationType.cpp delete mode 100644 third-party/td/td/td/telegram/NotificationType.h delete mode 100644 third-party/td/td/td/telegram/OnlineManager.cpp delete mode 100644 third-party/td/td/td/telegram/OnlineManager.h delete mode 100644 third-party/td/td/td/telegram/OptionManager.cpp delete mode 100644 third-party/td/td/td/telegram/OptionManager.h delete mode 100644 third-party/td/td/td/telegram/OrderInfo.cpp delete mode 100644 third-party/td/td/td/telegram/OrderInfo.h delete mode 100644 third-party/td/td/td/telegram/OrderInfo.hpp delete mode 100644 third-party/td/td/td/telegram/OrderedMessage.cpp delete mode 100644 third-party/td/td/td/telegram/OrderedMessage.h delete mode 100644 third-party/td/td/td/telegram/Outline.cpp delete mode 100644 third-party/td/td/td/telegram/Outline.h delete mode 100644 third-party/td/td/td/telegram/PaidReactionType.cpp delete mode 100644 third-party/td/td/td/telegram/PaidReactionType.h delete mode 100644 third-party/td/td/td/telegram/PaidReactionType.hpp delete mode 100644 third-party/td/td/td/telegram/PasswordManager.cpp delete mode 100644 third-party/td/td/td/telegram/PasswordManager.h delete mode 100644 third-party/td/td/td/telegram/Payments.cpp delete mode 100644 third-party/td/td/td/telegram/Payments.h delete mode 100644 third-party/td/td/td/telegram/PeerColor.cpp delete mode 100644 third-party/td/td/td/telegram/PeerColor.h delete mode 100644 third-party/td/td/td/telegram/PeopleNearbyManager.cpp delete mode 100644 third-party/td/td/td/telegram/PeopleNearbyManager.h delete mode 100644 third-party/td/td/td/telegram/PhoneNumberManager.cpp delete mode 100644 third-party/td/td/td/telegram/PhoneNumberManager.h delete mode 100644 third-party/td/td/td/telegram/Photo.cpp delete mode 100644 third-party/td/td/td/telegram/Photo.h delete mode 100644 third-party/td/td/td/telegram/Photo.hpp delete mode 100644 third-party/td/td/td/telegram/PhotoFormat.h delete mode 100644 third-party/td/td/td/telegram/PhotoSize.cpp delete mode 100644 third-party/td/td/td/telegram/PhotoSize.h delete mode 100644 third-party/td/td/td/telegram/PhotoSize.hpp delete mode 100644 third-party/td/td/td/telegram/PhotoSizeSource.cpp delete mode 100644 third-party/td/td/td/telegram/PhotoSizeSource.h delete mode 100644 third-party/td/td/td/telegram/PhotoSizeSource.hpp delete mode 100644 third-party/td/td/td/telegram/PhotoSizeType.h delete mode 100644 third-party/td/td/td/telegram/PhotoSizeType.hpp delete mode 100644 third-party/td/td/td/telegram/PollId.h delete mode 100644 third-party/td/td/td/telegram/PollId.hpp delete mode 100644 third-party/td/td/td/telegram/PollManager.cpp delete mode 100644 third-party/td/td/td/telegram/PollManager.h delete mode 100644 third-party/td/td/td/telegram/PollManager.hpp delete mode 100644 third-party/td/td/td/telegram/Premium.cpp delete mode 100644 third-party/td/td/td/telegram/Premium.h delete mode 100644 third-party/td/td/td/telegram/PremiumGiftOption.cpp delete mode 100644 third-party/td/td/td/telegram/PremiumGiftOption.h delete mode 100644 third-party/td/td/td/telegram/PremiumGiftOption.hpp delete mode 100644 third-party/td/td/td/telegram/PrivacyManager.cpp delete mode 100644 third-party/td/td/td/telegram/PrivacyManager.h delete mode 100644 third-party/td/td/td/telegram/PromoDataManager.cpp delete mode 100644 third-party/td/td/td/telegram/PromoDataManager.h delete mode 100644 third-party/td/td/td/telegram/PtsManager.h delete mode 100644 third-party/td/td/td/telegram/PublicDialogType.h delete mode 100644 third-party/td/td/td/telegram/QueryCombiner.cpp delete mode 100644 third-party/td/td/td/telegram/QueryCombiner.h delete mode 100644 third-party/td/td/td/telegram/QueryMerger.cpp delete mode 100644 third-party/td/td/td/telegram/QueryMerger.h delete mode 100644 third-party/td/td/td/telegram/QuickReplyManager.cpp delete mode 100644 third-party/td/td/td/telegram/QuickReplyManager.h delete mode 100644 third-party/td/td/td/telegram/QuickReplyMessageFullId.h delete mode 100644 third-party/td/td/td/telegram/QuickReplyShortcutId.h delete mode 100644 third-party/td/td/td/telegram/ReactionListType.cpp delete mode 100644 third-party/td/td/td/telegram/ReactionListType.h delete mode 100644 third-party/td/td/td/telegram/ReactionManager.cpp delete mode 100644 third-party/td/td/td/telegram/ReactionManager.h delete mode 100644 third-party/td/td/td/telegram/ReactionManager.hpp delete mode 100644 third-party/td/td/td/telegram/ReactionNotificationSettings.cpp delete mode 100644 third-party/td/td/td/telegram/ReactionNotificationSettings.h delete mode 100644 third-party/td/td/td/telegram/ReactionNotificationSettings.hpp delete mode 100644 third-party/td/td/td/telegram/ReactionNotificationsFrom.cpp delete mode 100644 third-party/td/td/td/telegram/ReactionNotificationsFrom.h delete mode 100644 third-party/td/td/td/telegram/ReactionNotificationsFrom.hpp delete mode 100644 third-party/td/td/td/telegram/ReactionType.cpp delete mode 100644 third-party/td/td/td/telegram/ReactionType.h delete mode 100644 third-party/td/td/td/telegram/ReactionType.hpp delete mode 100644 third-party/td/td/td/telegram/ReactionUnavailabilityReason.h delete mode 100644 third-party/td/td/td/telegram/RecentDialogList.cpp delete mode 100644 third-party/td/td/td/telegram/RecentDialogList.h delete mode 100644 third-party/td/td/td/telegram/ReferralProgramInfo.cpp delete mode 100644 third-party/td/td/td/telegram/ReferralProgramInfo.h delete mode 100644 third-party/td/td/td/telegram/ReferralProgramInfo.hpp delete mode 100644 third-party/td/td/td/telegram/ReferralProgramManager.cpp delete mode 100644 third-party/td/td/td/telegram/ReferralProgramManager.h delete mode 100644 third-party/td/td/td/telegram/ReferralProgramParameters.cpp delete mode 100644 third-party/td/td/td/telegram/ReferralProgramParameters.h delete mode 100644 third-party/td/td/td/telegram/ReferralProgramParameters.hpp delete mode 100644 third-party/td/td/td/telegram/ReferralProgramSortOrder.cpp delete mode 100644 third-party/td/td/td/telegram/ReferralProgramSortOrder.h delete mode 100644 third-party/td/td/td/telegram/RepliedMessageInfo.cpp delete mode 100644 third-party/td/td/td/telegram/RepliedMessageInfo.h delete mode 100644 third-party/td/td/td/telegram/RepliedMessageInfo.hpp delete mode 100644 third-party/td/td/td/telegram/ReplyMarkup.cpp delete mode 100644 third-party/td/td/td/telegram/ReplyMarkup.h delete mode 100644 third-party/td/td/td/telegram/ReplyMarkup.hpp delete mode 100644 third-party/td/td/td/telegram/ReportReason.cpp delete mode 100644 third-party/td/td/td/telegram/ReportReason.h delete mode 100644 third-party/td/td/td/telegram/RequestActor.h delete mode 100644 third-party/td/td/td/telegram/RequestedDialogType.cpp delete mode 100644 third-party/td/td/td/telegram/RequestedDialogType.h delete mode 100644 third-party/td/td/td/telegram/RequestedDialogType.hpp delete mode 100644 third-party/td/td/td/telegram/Requests.cpp delete mode 100644 third-party/td/td/td/telegram/Requests.h delete mode 100644 third-party/td/td/td/telegram/RestrictionReason.cpp delete mode 100644 third-party/td/td/td/telegram/RestrictionReason.h delete mode 100644 third-party/td/td/td/telegram/SavedMessagesManager.cpp delete mode 100644 third-party/td/td/td/telegram/SavedMessagesManager.h delete mode 100644 third-party/td/td/td/telegram/SavedMessagesTopicId.cpp delete mode 100644 third-party/td/td/td/telegram/SavedMessagesTopicId.h delete mode 100644 third-party/td/td/td/telegram/ScheduledServerMessageId.h delete mode 100644 third-party/td/td/td/telegram/ScopeNotificationSettings.cpp delete mode 100644 third-party/td/td/td/telegram/ScopeNotificationSettings.h delete mode 100644 third-party/td/td/td/telegram/ScopeNotificationSettings.hpp delete mode 100644 third-party/td/td/td/telegram/SecretChatActor.cpp delete mode 100644 third-party/td/td/td/telegram/SecretChatActor.h delete mode 100644 third-party/td/td/td/telegram/SecretChatDb.cpp delete mode 100644 third-party/td/td/td/telegram/SecretChatDb.h delete mode 100644 third-party/td/td/td/telegram/SecretChatId.h delete mode 100644 third-party/td/td/td/telegram/SecretChatLayer.h delete mode 100644 third-party/td/td/td/telegram/SecretChatsManager.cpp delete mode 100644 third-party/td/td/td/telegram/SecretChatsManager.h delete mode 100644 third-party/td/td/td/telegram/SecretInputMedia.cpp delete mode 100644 third-party/td/td/td/telegram/SecretInputMedia.h delete mode 100644 third-party/td/td/td/telegram/SecureManager.cpp delete mode 100644 third-party/td/td/td/telegram/SecureManager.h delete mode 100644 third-party/td/td/td/telegram/SecureStorage.cpp delete mode 100644 third-party/td/td/td/telegram/SecureStorage.h delete mode 100644 third-party/td/td/td/telegram/SecureValue.cpp delete mode 100644 third-party/td/td/td/telegram/SecureValue.h delete mode 100644 third-party/td/td/td/telegram/SecureValue.hpp delete mode 100644 third-party/td/td/td/telegram/SendCodeHelper.cpp delete mode 100644 third-party/td/td/td/telegram/SendCodeHelper.h delete mode 100644 third-party/td/td/td/telegram/SendCodeHelper.hpp delete mode 100644 third-party/td/td/td/telegram/SentEmailCode.cpp delete mode 100644 third-party/td/td/td/telegram/SentEmailCode.h delete mode 100644 third-party/td/td/td/telegram/SequenceDispatcher.cpp delete mode 100644 third-party/td/td/td/telegram/SequenceDispatcher.h delete mode 100644 third-party/td/td/td/telegram/ServerMessageId.h delete mode 100644 third-party/td/td/td/telegram/SetWithPosition.h delete mode 100644 third-party/td/td/td/telegram/SharedDialog.cpp delete mode 100644 third-party/td/td/td/telegram/SharedDialog.h delete mode 100644 third-party/td/td/td/telegram/SharedDialog.hpp delete mode 100644 third-party/td/td/td/telegram/SpecialStickerSetType.cpp delete mode 100644 third-party/td/td/td/telegram/SpecialStickerSetType.h delete mode 100644 third-party/td/td/td/telegram/SponsoredMessageManager.cpp delete mode 100644 third-party/td/td/td/telegram/SponsoredMessageManager.h delete mode 100644 third-party/td/td/td/telegram/StarAmount.cpp delete mode 100644 third-party/td/td/td/telegram/StarAmount.h delete mode 100644 third-party/td/td/td/telegram/StarAmount.hpp delete mode 100644 third-party/td/td/td/telegram/StarGift.cpp delete mode 100644 third-party/td/td/td/telegram/StarGift.h delete mode 100644 third-party/td/td/td/telegram/StarGift.hpp delete mode 100644 third-party/td/td/td/telegram/StarGiftAttribute.cpp delete mode 100644 third-party/td/td/td/telegram/StarGiftAttribute.h delete mode 100644 third-party/td/td/td/telegram/StarGiftAttribute.hpp delete mode 100644 third-party/td/td/td/telegram/StarGiftId.cpp delete mode 100644 third-party/td/td/td/telegram/StarGiftId.h delete mode 100644 third-party/td/td/td/telegram/StarGiftId.hpp delete mode 100644 third-party/td/td/td/telegram/StarGiftManager.cpp delete mode 100644 third-party/td/td/td/telegram/StarGiftManager.h delete mode 100644 third-party/td/td/td/telegram/StarGiftSettings.cpp delete mode 100644 third-party/td/td/td/telegram/StarGiftSettings.h delete mode 100644 third-party/td/td/td/telegram/StarGiftSettings.hpp delete mode 100644 third-party/td/td/td/telegram/StarManager.cpp delete mode 100644 third-party/td/td/td/telegram/StarManager.h delete mode 100644 third-party/td/td/td/telegram/StarSubscription.cpp delete mode 100644 third-party/td/td/td/telegram/StarSubscription.h delete mode 100644 third-party/td/td/td/telegram/StarSubscriptionPricing.cpp delete mode 100644 third-party/td/td/td/telegram/StarSubscriptionPricing.h delete mode 100644 third-party/td/td/td/telegram/StarSubscriptionPricing.hpp delete mode 100644 third-party/td/td/td/telegram/StateManager.cpp delete mode 100644 third-party/td/td/td/telegram/StateManager.h delete mode 100644 third-party/td/td/td/telegram/StatisticsManager.cpp delete mode 100644 third-party/td/td/td/telegram/StatisticsManager.h delete mode 100644 third-party/td/td/td/telegram/StickerFormat.cpp delete mode 100644 third-party/td/td/td/telegram/StickerFormat.h delete mode 100644 third-party/td/td/td/telegram/StickerListType.cpp delete mode 100644 third-party/td/td/td/telegram/StickerListType.h delete mode 100644 third-party/td/td/td/telegram/StickerMaskPosition.cpp delete mode 100644 third-party/td/td/td/telegram/StickerMaskPosition.h delete mode 100644 third-party/td/td/td/telegram/StickerMaskPosition.hpp delete mode 100644 third-party/td/td/td/telegram/StickerPhotoSize.cpp delete mode 100644 third-party/td/td/td/telegram/StickerPhotoSize.h delete mode 100644 third-party/td/td/td/telegram/StickerPhotoSize.hpp delete mode 100644 third-party/td/td/td/telegram/StickerSetId.cpp delete mode 100644 third-party/td/td/td/telegram/StickerSetId.h delete mode 100644 third-party/td/td/td/telegram/StickerType.cpp delete mode 100644 third-party/td/td/td/telegram/StickerType.h delete mode 100644 third-party/td/td/td/telegram/StickersManager.cpp delete mode 100644 third-party/td/td/td/telegram/StickersManager.h delete mode 100644 third-party/td/td/td/telegram/StickersManager.hpp delete mode 100644 third-party/td/td/td/telegram/StorageManager.cpp delete mode 100644 third-party/td/td/td/telegram/StorageManager.h delete mode 100644 third-party/td/td/td/telegram/StoryContent.cpp delete mode 100644 third-party/td/td/td/telegram/StoryContent.h delete mode 100644 third-party/td/td/td/telegram/StoryContentType.cpp delete mode 100644 third-party/td/td/td/telegram/StoryContentType.h delete mode 100644 third-party/td/td/td/telegram/StoryDb.cpp delete mode 100644 third-party/td/td/td/telegram/StoryDb.h delete mode 100644 third-party/td/td/td/telegram/StoryForwardInfo.cpp delete mode 100644 third-party/td/td/td/telegram/StoryForwardInfo.h delete mode 100644 third-party/td/td/td/telegram/StoryForwardInfo.hpp delete mode 100644 third-party/td/td/td/telegram/StoryFullId.h delete mode 100644 third-party/td/td/td/telegram/StoryId.h delete mode 100644 third-party/td/td/td/telegram/StoryInteractionInfo.cpp delete mode 100644 third-party/td/td/td/telegram/StoryInteractionInfo.h delete mode 100644 third-party/td/td/td/telegram/StoryInteractionInfo.hpp delete mode 100644 third-party/td/td/td/telegram/StoryListId.h delete mode 100644 third-party/td/td/td/telegram/StoryManager.cpp delete mode 100644 third-party/td/td/td/telegram/StoryManager.h delete mode 100644 third-party/td/td/td/telegram/StoryNotificationSettings.h delete mode 100644 third-party/td/td/td/telegram/StoryStealthMode.cpp delete mode 100644 third-party/td/td/td/telegram/StoryStealthMode.h delete mode 100644 third-party/td/td/td/telegram/StoryStealthMode.hpp delete mode 100644 third-party/td/td/td/telegram/StoryViewer.cpp delete mode 100644 third-party/td/td/td/telegram/StoryViewer.h delete mode 100644 third-party/td/td/td/telegram/SuggestedAction.cpp delete mode 100644 third-party/td/td/td/telegram/SuggestedAction.h delete mode 100644 third-party/td/td/td/telegram/SuggestedAction.hpp delete mode 100644 third-party/td/td/td/telegram/SuggestedActionManager.cpp delete mode 100644 third-party/td/td/td/telegram/SuggestedActionManager.h delete mode 100644 third-party/td/td/td/telegram/Support.cpp delete mode 100644 third-party/td/td/td/telegram/Support.h delete mode 100644 third-party/td/td/td/telegram/SynchronousRequests.cpp delete mode 100644 third-party/td/td/td/telegram/SynchronousRequests.h delete mode 100644 third-party/td/td/td/telegram/TargetDialogTypes.cpp delete mode 100644 third-party/td/td/td/telegram/TargetDialogTypes.h delete mode 100644 third-party/td/td/td/telegram/Td.cpp delete mode 100644 third-party/td/td/td/telegram/Td.h delete mode 100644 third-party/td/td/td/telegram/TdCallback.h delete mode 100644 third-party/td/td/td/telegram/TdDb.cpp delete mode 100644 third-party/td/td/td/telegram/TdDb.h delete mode 100644 third-party/td/td/td/telegram/TermsOfService.cpp delete mode 100644 third-party/td/td/td/telegram/TermsOfService.h delete mode 100644 third-party/td/td/td/telegram/TermsOfService.hpp delete mode 100644 third-party/td/td/td/telegram/TermsOfServiceManager.cpp delete mode 100644 third-party/td/td/td/telegram/TermsOfServiceManager.h delete mode 100644 third-party/td/td/td/telegram/ThemeManager.cpp delete mode 100644 third-party/td/td/td/telegram/ThemeManager.h delete mode 100644 third-party/td/td/td/telegram/ThemeSettings.cpp delete mode 100644 third-party/td/td/td/telegram/ThemeSettings.h delete mode 100644 third-party/td/td/td/telegram/ThemeSettings.hpp delete mode 100644 third-party/td/td/td/telegram/TimeZoneManager.cpp delete mode 100644 third-party/td/td/td/telegram/TimeZoneManager.h delete mode 100644 third-party/td/td/td/telegram/TopDialogCategory.cpp delete mode 100644 third-party/td/td/td/telegram/TopDialogCategory.h delete mode 100644 third-party/td/td/td/telegram/TopDialogManager.cpp delete mode 100644 third-party/td/td/td/telegram/TopDialogManager.h delete mode 100644 third-party/td/td/td/telegram/TranscriptionInfo.cpp delete mode 100644 third-party/td/td/td/telegram/TranscriptionInfo.h delete mode 100644 third-party/td/td/td/telegram/TranscriptionInfo.hpp delete mode 100644 third-party/td/td/td/telegram/TranscriptionManager.cpp delete mode 100644 third-party/td/td/td/telegram/TranscriptionManager.h delete mode 100644 third-party/td/td/td/telegram/TranslationManager.cpp delete mode 100644 third-party/td/td/td/telegram/TranslationManager.h delete mode 100644 third-party/td/td/td/telegram/UniqueId.h delete mode 100644 third-party/td/td/td/telegram/UpdatesManager.cpp delete mode 100644 third-party/td/td/td/telegram/UpdatesManager.h delete mode 100644 third-party/td/td/td/telegram/UserId.h delete mode 100644 third-party/td/td/td/telegram/UserManager.cpp delete mode 100644 third-party/td/td/td/telegram/UserManager.h delete mode 100644 third-party/td/td/td/telegram/UserPrivacySetting.cpp delete mode 100644 third-party/td/td/td/telegram/UserPrivacySetting.h delete mode 100644 third-party/td/td/td/telegram/UserPrivacySettingRule.cpp delete mode 100644 third-party/td/td/td/telegram/UserPrivacySettingRule.h delete mode 100644 third-party/td/td/td/telegram/UserStarGift.cpp delete mode 100644 third-party/td/td/td/telegram/UserStarGift.h delete mode 100644 third-party/td/td/td/telegram/Usernames.cpp delete mode 100644 third-party/td/td/td/telegram/Usernames.h delete mode 100644 third-party/td/td/td/telegram/Venue.cpp delete mode 100644 third-party/td/td/td/telegram/Venue.h delete mode 100644 third-party/td/td/td/telegram/VerificationStatus.cpp delete mode 100644 third-party/td/td/td/telegram/VerificationStatus.h delete mode 100644 third-party/td/td/td/telegram/Version.h delete mode 100644 third-party/td/td/td/telegram/VideoNotesManager.cpp delete mode 100644 third-party/td/td/td/telegram/VideoNotesManager.h delete mode 100644 third-party/td/td/td/telegram/VideoNotesManager.hpp delete mode 100644 third-party/td/td/td/telegram/VideosManager.cpp delete mode 100644 third-party/td/td/td/telegram/VideosManager.h delete mode 100644 third-party/td/td/td/telegram/VideosManager.hpp delete mode 100644 third-party/td/td/td/telegram/VoiceNotesManager.cpp delete mode 100644 third-party/td/td/td/telegram/VoiceNotesManager.h delete mode 100644 third-party/td/td/td/telegram/VoiceNotesManager.hpp delete mode 100644 third-party/td/td/td/telegram/WebApp.cpp delete mode 100644 third-party/td/td/td/telegram/WebApp.h delete mode 100644 third-party/td/td/td/telegram/WebApp.hpp delete mode 100644 third-party/td/td/td/telegram/WebAppManager.cpp delete mode 100644 third-party/td/td/td/telegram/WebAppManager.h delete mode 100644 third-party/td/td/td/telegram/WebAppOpenParameters.cpp delete mode 100644 third-party/td/td/td/telegram/WebAppOpenParameters.h delete mode 100644 third-party/td/td/td/telegram/WebPageBlock.cpp delete mode 100644 third-party/td/td/td/telegram/WebPageBlock.h delete mode 100644 third-party/td/td/td/telegram/WebPageId.h delete mode 100644 third-party/td/td/td/telegram/WebPagesManager.cpp delete mode 100644 third-party/td/td/td/telegram/WebPagesManager.h delete mode 100644 third-party/td/td/td/telegram/cli.cpp delete mode 100644 third-party/td/td/td/telegram/files/FileBitmask.cpp delete mode 100644 third-party/td/td/td/telegram/files/FileBitmask.h delete mode 100644 third-party/td/td/td/telegram/files/FileData.h delete mode 100644 third-party/td/td/td/telegram/files/FileData.hpp delete mode 100644 third-party/td/td/td/telegram/files/FileDb.cpp delete mode 100644 third-party/td/td/td/telegram/files/FileDb.h delete mode 100644 third-party/td/td/td/telegram/files/FileDbId.h delete mode 100644 third-party/td/td/td/telegram/files/FileDownloadManager.cpp delete mode 100644 third-party/td/td/td/telegram/files/FileDownloadManager.h delete mode 100644 third-party/td/td/td/telegram/files/FileDownloader.cpp delete mode 100644 third-party/td/td/td/telegram/files/FileDownloader.h delete mode 100644 third-party/td/td/td/telegram/files/FileEncryptionKey.cpp delete mode 100644 third-party/td/td/td/telegram/files/FileEncryptionKey.h delete mode 100644 third-party/td/td/td/telegram/files/FileFromBytes.cpp delete mode 100644 third-party/td/td/td/telegram/files/FileFromBytes.h delete mode 100644 third-party/td/td/td/telegram/files/FileGcParameters.cpp delete mode 100644 third-party/td/td/td/telegram/files/FileGcParameters.h delete mode 100644 third-party/td/td/td/telegram/files/FileGcWorker.cpp delete mode 100644 third-party/td/td/td/telegram/files/FileGcWorker.h delete mode 100644 third-party/td/td/td/telegram/files/FileGenerateManager.cpp delete mode 100644 third-party/td/td/td/telegram/files/FileGenerateManager.h delete mode 100644 third-party/td/td/td/telegram/files/FileHashUploader.cpp delete mode 100644 third-party/td/td/td/telegram/files/FileHashUploader.h delete mode 100644 third-party/td/td/td/telegram/files/FileId.h delete mode 100644 third-party/td/td/td/telegram/files/FileId.hpp delete mode 100644 third-party/td/td/td/telegram/files/FileLoadManager.cpp delete mode 100644 third-party/td/td/td/telegram/files/FileLoadManager.h delete mode 100644 third-party/td/td/td/telegram/files/FileLoaderActor.h delete mode 100644 third-party/td/td/td/telegram/files/FileLoaderUtils.cpp delete mode 100644 third-party/td/td/td/telegram/files/FileLoaderUtils.h delete mode 100644 third-party/td/td/td/telegram/files/FileLocation.h delete mode 100644 third-party/td/td/td/telegram/files/FileLocation.hpp delete mode 100644 third-party/td/td/td/telegram/files/FileManager.cpp delete mode 100644 third-party/td/td/td/telegram/files/FileManager.h delete mode 100644 third-party/td/td/td/telegram/files/FileManager.hpp delete mode 100644 third-party/td/td/td/telegram/files/FileSourceId.h delete mode 100644 third-party/td/td/td/telegram/files/FileSourceId.hpp delete mode 100644 third-party/td/td/td/telegram/files/FileStats.cpp delete mode 100644 third-party/td/td/td/telegram/files/FileStats.h delete mode 100644 third-party/td/td/td/telegram/files/FileStatsWorker.cpp delete mode 100644 third-party/td/td/td/telegram/files/FileStatsWorker.h delete mode 100644 third-party/td/td/td/telegram/files/FileType.cpp delete mode 100644 third-party/td/td/td/telegram/files/FileType.h delete mode 100644 third-party/td/td/td/telegram/files/FileUploadId.h delete mode 100644 third-party/td/td/td/telegram/files/FileUploadManager.cpp delete mode 100644 third-party/td/td/td/telegram/files/FileUploadManager.h delete mode 100644 third-party/td/td/td/telegram/files/FileUploader.cpp delete mode 100644 third-party/td/td/td/telegram/files/FileUploader.h delete mode 100644 third-party/td/td/td/telegram/files/PartsManager.cpp delete mode 100644 third-party/td/td/td/telegram/files/PartsManager.h delete mode 100644 third-party/td/td/td/telegram/files/ResourceManager.cpp delete mode 100644 third-party/td/td/td/telegram/files/ResourceManager.h delete mode 100644 third-party/td/td/td/telegram/files/ResourceState.cpp delete mode 100644 third-party/td/td/td/telegram/files/ResourceState.h delete mode 100644 third-party/td/td/td/telegram/logevent/LogEvent.h delete mode 100644 third-party/td/td/td/telegram/logevent/LogEventHelper.cpp delete mode 100644 third-party/td/td/td/telegram/logevent/LogEventHelper.h delete mode 100644 third-party/td/td/td/telegram/logevent/SecretChatEvent.h delete mode 100644 third-party/td/td/td/telegram/misc.cpp delete mode 100644 third-party/td/td/td/telegram/misc.h delete mode 100644 third-party/td/td/td/telegram/net/AuthDataShared.cpp delete mode 100644 third-party/td/td/td/telegram/net/AuthDataShared.h delete mode 100644 third-party/td/td/td/telegram/net/AuthKeyState.h delete mode 100644 third-party/td/td/td/telegram/net/ConnectionCreator.cpp delete mode 100644 third-party/td/td/td/telegram/net/ConnectionCreator.h delete mode 100644 third-party/td/td/td/telegram/net/DcAuthManager.cpp delete mode 100644 third-party/td/td/td/telegram/net/DcAuthManager.h delete mode 100644 third-party/td/td/td/telegram/net/DcId.h delete mode 100644 third-party/td/td/td/telegram/net/DcOptions.h delete mode 100644 third-party/td/td/td/telegram/net/DcOptionsSet.cpp delete mode 100644 third-party/td/td/td/telegram/net/DcOptionsSet.h delete mode 100644 third-party/td/td/td/telegram/net/MtprotoHeader.cpp delete mode 100644 third-party/td/td/td/telegram/net/MtprotoHeader.h delete mode 100644 third-party/td/td/td/telegram/net/NetActor.cpp delete mode 100644 third-party/td/td/td/telegram/net/NetActor.h delete mode 100644 third-party/td/td/td/telegram/net/NetQuery.cpp delete mode 100644 third-party/td/td/td/telegram/net/NetQuery.h delete mode 100644 third-party/td/td/td/telegram/net/NetQueryCounter.h delete mode 100644 third-party/td/td/td/telegram/net/NetQueryCreator.cpp delete mode 100644 third-party/td/td/td/telegram/net/NetQueryCreator.h delete mode 100644 third-party/td/td/td/telegram/net/NetQueryDelayer.cpp delete mode 100644 third-party/td/td/td/telegram/net/NetQueryDelayer.h delete mode 100644 third-party/td/td/td/telegram/net/NetQueryDispatcher.cpp delete mode 100644 third-party/td/td/td/telegram/net/NetQueryDispatcher.h delete mode 100644 third-party/td/td/td/telegram/net/NetQueryStats.cpp delete mode 100644 third-party/td/td/td/telegram/net/NetQueryStats.h delete mode 100644 third-party/td/td/td/telegram/net/NetQueryVerifier.cpp delete mode 100644 third-party/td/td/td/telegram/net/NetQueryVerifier.h delete mode 100644 third-party/td/td/td/telegram/net/NetStatsManager.cpp delete mode 100644 third-party/td/td/td/telegram/net/NetStatsManager.h delete mode 100644 third-party/td/td/td/telegram/net/NetType.h delete mode 100644 third-party/td/td/td/telegram/net/Proxy.cpp delete mode 100644 third-party/td/td/td/telegram/net/Proxy.h delete mode 100644 third-party/td/td/td/telegram/net/PublicRsaKeySharedCdn.cpp delete mode 100644 third-party/td/td/td/telegram/net/PublicRsaKeySharedCdn.h delete mode 100644 third-party/td/td/td/telegram/net/PublicRsaKeySharedMain.cpp delete mode 100644 third-party/td/td/td/telegram/net/PublicRsaKeySharedMain.h delete mode 100644 third-party/td/td/td/telegram/net/PublicRsaKeyWatchdog.cpp delete mode 100644 third-party/td/td/td/telegram/net/PublicRsaKeyWatchdog.h delete mode 100644 third-party/td/td/td/telegram/net/Session.cpp delete mode 100644 third-party/td/td/td/telegram/net/Session.h delete mode 100644 third-party/td/td/td/telegram/net/SessionMultiProxy.cpp delete mode 100644 third-party/td/td/td/telegram/net/SessionMultiProxy.h delete mode 100644 third-party/td/td/td/telegram/net/SessionProxy.cpp delete mode 100644 third-party/td/td/td/telegram/net/SessionProxy.h delete mode 100644 third-party/td/td/td/telegram/net/TempAuthKeyWatchdog.h delete mode 100644 third-party/td/td/td/telegram/td_c_client.cpp delete mode 100644 third-party/td/td/td/telegram/td_c_client.h delete mode 100644 third-party/td/td/td/telegram/td_emscripten.cpp delete mode 100644 third-party/td/td/td/telegram/td_json_client.cpp delete mode 100644 third-party/td/td/td/telegram/td_json_client.h delete mode 100644 third-party/td/td/td/telegram/td_log.cpp delete mode 100644 third-party/td/td/td/telegram/td_log.h delete mode 100644 third-party/td/td/td/tl/TlObject.h delete mode 100644 third-party/td/td/td/tl/tl_dotnet_object.h delete mode 100644 third-party/td/td/td/tl/tl_jni_object.cpp delete mode 100644 third-party/td/td/td/tl/tl_jni_object.h delete mode 100644 third-party/td/td/td/tl/tl_json.h delete mode 100644 third-party/td/td/td/tl/tl_object_parse.h delete mode 100644 third-party/td/td/td/tl/tl_object_store.h delete mode 100644 third-party/td/td/tdactor/CMakeLists.txt delete mode 100644 third-party/td/td/tdactor/example/example.cpp delete mode 100644 third-party/td/td/tdactor/td/actor/ConcurrentScheduler.cpp delete mode 100644 third-party/td/td/tdactor/td/actor/ConcurrentScheduler.h delete mode 100644 third-party/td/td/tdactor/td/actor/MultiPromise.cpp delete mode 100644 third-party/td/td/tdactor/td/actor/MultiPromise.h delete mode 100644 third-party/td/td/tdactor/td/actor/MultiTimeout.cpp delete mode 100644 third-party/td/td/tdactor/td/actor/MultiTimeout.h delete mode 100644 third-party/td/td/tdactor/td/actor/PromiseFuture.h delete mode 100644 third-party/td/td/tdactor/td/actor/SchedulerLocalStorage.h delete mode 100644 third-party/td/td/tdactor/td/actor/SignalSlot.h delete mode 100644 third-party/td/td/tdactor/td/actor/SleepActor.h delete mode 100644 third-party/td/td/tdactor/td/actor/Timeout.h delete mode 100644 third-party/td/td/tdactor/td/actor/actor.h delete mode 100644 third-party/td/td/tdactor/td/actor/impl/Actor-decl.h delete mode 100644 third-party/td/td/tdactor/td/actor/impl/Actor.h delete mode 100644 third-party/td/td/tdactor/td/actor/impl/ActorId-decl.h delete mode 100644 third-party/td/td/tdactor/td/actor/impl/ActorId.h delete mode 100644 third-party/td/td/tdactor/td/actor/impl/ActorInfo-decl.h delete mode 100644 third-party/td/td/tdactor/td/actor/impl/ActorInfo.h delete mode 100644 third-party/td/td/tdactor/td/actor/impl/Event.h delete mode 100644 third-party/td/td/tdactor/td/actor/impl/EventFull-decl.h delete mode 100644 third-party/td/td/tdactor/td/actor/impl/EventFull.h delete mode 100644 third-party/td/td/tdactor/td/actor/impl/Scheduler-decl.h delete mode 100644 third-party/td/td/tdactor/td/actor/impl/Scheduler.cpp delete mode 100644 third-party/td/td/tdactor/td/actor/impl/Scheduler.h delete mode 100644 third-party/td/td/tdactor/test/actors_bugs.cpp delete mode 100644 third-party/td/td/tdactor/test/actors_main.cpp delete mode 100644 third-party/td/td/tdactor/test/actors_simple.cpp delete mode 100644 third-party/td/td/tdactor/test/actors_workers.cpp delete mode 100644 third-party/td/td/tdclientjson_export_list delete mode 100644 third-party/td/td/tddb/CMakeLists.txt delete mode 100644 third-party/td/td/tddb/td/db/BinlogKeyValue.h delete mode 100644 third-party/td/td/tddb/td/db/DbKey.h delete mode 100644 third-party/td/td/tddb/td/db/KeyValueSyncInterface.h delete mode 100644 third-party/td/td/tddb/td/db/SeqKeyValue.h delete mode 100644 third-party/td/td/tddb/td/db/SqliteConnectionSafe.cpp delete mode 100644 third-party/td/td/tddb/td/db/SqliteConnectionSafe.h delete mode 100644 third-party/td/td/tddb/td/db/SqliteDb.cpp delete mode 100644 third-party/td/td/tddb/td/db/SqliteDb.h delete mode 100644 third-party/td/td/tddb/td/db/SqliteKeyValue.cpp delete mode 100644 third-party/td/td/tddb/td/db/SqliteKeyValue.h delete mode 100644 third-party/td/td/tddb/td/db/SqliteKeyValueAsync.cpp delete mode 100644 third-party/td/td/tddb/td/db/SqliteKeyValueAsync.h delete mode 100644 third-party/td/td/tddb/td/db/SqliteKeyValueSafe.h delete mode 100644 third-party/td/td/tddb/td/db/SqliteStatement.cpp delete mode 100644 third-party/td/td/tddb/td/db/SqliteStatement.h delete mode 100644 third-party/td/td/tddb/td/db/TQueue.cpp delete mode 100644 third-party/td/td/tddb/td/db/TQueue.h delete mode 100644 third-party/td/td/tddb/td/db/TsSeqKeyValue.h delete mode 100644 third-party/td/td/tddb/td/db/binlog/Binlog.cpp delete mode 100644 third-party/td/td/tddb/td/db/binlog/Binlog.h delete mode 100644 third-party/td/td/tddb/td/db/binlog/BinlogEvent.cpp delete mode 100644 third-party/td/td/tddb/td/db/binlog/BinlogEvent.h delete mode 100644 third-party/td/td/tddb/td/db/binlog/BinlogHelper.h delete mode 100644 third-party/td/td/tddb/td/db/binlog/BinlogInterface.h delete mode 100644 third-party/td/td/tddb/td/db/binlog/ConcurrentBinlog.cpp delete mode 100644 third-party/td/td/tddb/td/db/binlog/ConcurrentBinlog.h delete mode 100644 third-party/td/td/tddb/td/db/binlog/binlog_dump.cpp delete mode 100644 third-party/td/td/tddb/td/db/binlog/detail/BinlogEventsBuffer.cpp delete mode 100644 third-party/td/td/tddb/td/db/binlog/detail/BinlogEventsBuffer.h delete mode 100644 third-party/td/td/tddb/td/db/binlog/detail/BinlogEventsProcessor.cpp delete mode 100644 third-party/td/td/tddb/td/db/binlog/detail/BinlogEventsProcessor.h delete mode 100644 third-party/td/td/tddb/td/db/detail/RawSqliteDb.cpp delete mode 100644 third-party/td/td/tddb/td/db/detail/RawSqliteDb.h delete mode 100644 third-party/td/td/tde2e/CMakeLists.txt delete mode 100644 third-party/td/td/tde2e/td/e2e/BitString.cpp delete mode 100644 third-party/td/td/tde2e/td/e2e/BitString.h delete mode 100644 third-party/td/td/tde2e/td/e2e/Blockchain.cpp delete mode 100644 third-party/td/td/tde2e/td/e2e/Blockchain.h delete mode 100644 third-party/td/td/tde2e/td/e2e/Blockchain.md delete mode 100644 third-party/td/td/tde2e/td/e2e/Call.cpp delete mode 100644 third-party/td/td/tde2e/td/e2e/Call.h delete mode 100644 third-party/td/td/tde2e/td/e2e/CheckSharedSecret.cpp delete mode 100644 third-party/td/td/tde2e/td/e2e/CheckSharedSecret.h delete mode 100644 third-party/td/td/tde2e/td/e2e/Container.h delete mode 100644 third-party/td/td/tde2e/td/e2e/DecryptedKey.cpp delete mode 100644 third-party/td/td/tde2e/td/e2e/DecryptedKey.h delete mode 100644 third-party/td/td/tde2e/td/e2e/EncryptedKey.cpp delete mode 100644 third-party/td/td/tde2e/td/e2e/EncryptedKey.h delete mode 100644 third-party/td/td/tde2e/td/e2e/EncryptedStorage.cpp delete mode 100644 third-party/td/td/tde2e/td/e2e/EncryptedStorage.h delete mode 100644 third-party/td/td/tde2e/td/e2e/Encryption.md delete mode 100644 third-party/td/td/tde2e/td/e2e/Keys.cpp delete mode 100644 third-party/td/td/tde2e/td/e2e/Keys.h delete mode 100644 third-party/td/td/tde2e/td/e2e/MessageEncryption.cpp delete mode 100644 third-party/td/td/tde2e/td/e2e/MessageEncryption.h delete mode 100644 third-party/td/td/tde2e/td/e2e/Mnemonic.cpp delete mode 100644 third-party/td/td/tde2e/td/e2e/Mnemonic.h delete mode 100644 third-party/td/td/tde2e/td/e2e/QRHandshake.cpp delete mode 100644 third-party/td/td/tde2e/td/e2e/QRHandshake.h delete mode 100644 third-party/td/td/tde2e/td/e2e/TestBlockchain.cpp delete mode 100644 third-party/td/td/tde2e/td/e2e/TestBlockchain.h delete mode 100644 third-party/td/td/tde2e/td/e2e/Trie.cpp delete mode 100644 third-party/td/td/tde2e/td/e2e/Trie.h delete mode 100644 third-party/td/td/tde2e/td/e2e/bip39.cpp delete mode 100644 third-party/td/td/tde2e/td/e2e/bip39.h delete mode 100644 third-party/td/td/tde2e/td/e2e/e2e_api.cpp delete mode 100644 third-party/td/td/tde2e/td/e2e/e2e_api.h delete mode 100644 third-party/td/td/tde2e/td/e2e/e2e_errors.h delete mode 100644 third-party/td/td/tde2e/td/e2e/encryption_test.py delete mode 100644 third-party/td/td/tde2e/td/e2e/utils.h delete mode 100644 third-party/td/td/tde2e/test/EncryptionTestVectors.h delete mode 100644 third-party/td/td/tde2e/test/blockchain.cpp delete mode 100644 third-party/td/td/tde2e/test/e2e.cpp delete mode 100644 third-party/td/td/tde2e/test/encryption.cpp delete mode 100644 third-party/td/td/tdnet/CMakeLists.txt delete mode 100644 third-party/td/td/tdnet/td/net/DarwinHttp.h delete mode 100644 third-party/td/td/tdnet/td/net/DarwinHttp.mm delete mode 100644 third-party/td/td/tdnet/td/net/GetHostByNameActor.cpp delete mode 100644 third-party/td/td/tdnet/td/net/GetHostByNameActor.h delete mode 100644 third-party/td/td/tdnet/td/net/HttpChunkedByteFlow.cpp delete mode 100644 third-party/td/td/tdnet/td/net/HttpChunkedByteFlow.h delete mode 100644 third-party/td/td/tdnet/td/net/HttpConnectionBase.cpp delete mode 100644 third-party/td/td/tdnet/td/net/HttpConnectionBase.h delete mode 100644 third-party/td/td/tdnet/td/net/HttpContentLengthByteFlow.cpp delete mode 100644 third-party/td/td/tdnet/td/net/HttpContentLengthByteFlow.h delete mode 100644 third-party/td/td/tdnet/td/net/HttpFile.cpp delete mode 100644 third-party/td/td/tdnet/td/net/HttpFile.h delete mode 100644 third-party/td/td/tdnet/td/net/HttpHeaderCreator.h delete mode 100644 third-party/td/td/tdnet/td/net/HttpInboundConnection.cpp delete mode 100644 third-party/td/td/tdnet/td/net/HttpInboundConnection.h delete mode 100644 third-party/td/td/tdnet/td/net/HttpOutboundConnection.cpp delete mode 100644 third-party/td/td/tdnet/td/net/HttpOutboundConnection.h delete mode 100644 third-party/td/td/tdnet/td/net/HttpProxy.cpp delete mode 100644 third-party/td/td/tdnet/td/net/HttpProxy.h delete mode 100644 third-party/td/td/tdnet/td/net/HttpQuery.cpp delete mode 100644 third-party/td/td/tdnet/td/net/HttpQuery.h delete mode 100644 third-party/td/td/tdnet/td/net/HttpReader.cpp delete mode 100644 third-party/td/td/tdnet/td/net/HttpReader.h delete mode 100644 third-party/td/td/tdnet/td/net/NetStats.h delete mode 100644 third-party/td/td/tdnet/td/net/Socks5.cpp delete mode 100644 third-party/td/td/tdnet/td/net/Socks5.h delete mode 100644 third-party/td/td/tdnet/td/net/SslCtx.cpp delete mode 100644 third-party/td/td/tdnet/td/net/SslCtx.h delete mode 100644 third-party/td/td/tdnet/td/net/SslStream.cpp delete mode 100644 third-party/td/td/tdnet/td/net/SslStream.h delete mode 100644 third-party/td/td/tdnet/td/net/TcpListener.cpp delete mode 100644 third-party/td/td/tdnet/td/net/TcpListener.h delete mode 100644 third-party/td/td/tdnet/td/net/TransparentProxy.cpp delete mode 100644 third-party/td/td/tdnet/td/net/TransparentProxy.h delete mode 100644 third-party/td/td/tdnet/td/net/Wget.cpp delete mode 100644 third-party/td/td/tdnet/td/net/Wget.h delete mode 100644 third-party/td/td/tdtl/CMakeLists.txt delete mode 100644 third-party/td/td/tdtl/td/tl/tl_config.cpp delete mode 100644 third-party/td/td/tdtl/td/tl/tl_config.h delete mode 100644 third-party/td/td/tdtl/td/tl/tl_core.cpp delete mode 100644 third-party/td/td/tdtl/td/tl/tl_core.h delete mode 100644 third-party/td/td/tdtl/td/tl/tl_file_outputer.cpp delete mode 100644 third-party/td/td/tdtl/td/tl/tl_file_outputer.h delete mode 100644 third-party/td/td/tdtl/td/tl/tl_file_utils.cpp delete mode 100644 third-party/td/td/tdtl/td/tl/tl_file_utils.h delete mode 100644 third-party/td/td/tdtl/td/tl/tl_generate.cpp delete mode 100644 third-party/td/td/tdtl/td/tl/tl_generate.h delete mode 100644 third-party/td/td/tdtl/td/tl/tl_outputer.cpp delete mode 100644 third-party/td/td/tdtl/td/tl/tl_outputer.h delete mode 100644 third-party/td/td/tdtl/td/tl/tl_simple.h delete mode 100644 third-party/td/td/tdtl/td/tl/tl_simple_parser.h delete mode 100644 third-party/td/td/tdtl/td/tl/tl_string_outputer.cpp delete mode 100644 third-party/td/td/tdtl/td/tl/tl_string_outputer.h delete mode 100644 third-party/td/td/tdtl/td/tl/tl_writer.cpp delete mode 100644 third-party/td/td/tdtl/td/tl/tl_writer.h delete mode 100644 third-party/td/td/tdutils/CMakeLists.txt delete mode 100644 third-party/td/td/tdutils/generate/CMakeLists.txt delete mode 100644 third-party/td/td/tdutils/generate/generate_mime_types_gperf.cpp delete mode 100644 third-party/td/td/tdutils/generate/mime_types.txt delete mode 100644 third-party/td/td/tdutils/td/utils/AesCtrByteFlow.h delete mode 100644 third-party/td/td/tdutils/td/utils/AsyncFileLog.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/AsyncFileLog.h delete mode 100644 third-party/td/td/tdutils/td/utils/AtomicRead.h delete mode 100644 third-party/td/td/tdutils/td/utils/BigNum.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/BigNum.h delete mode 100644 third-party/td/td/tdutils/td/utils/BufferedFd.h delete mode 100644 third-party/td/td/tdutils/td/utils/BufferedReader.h delete mode 100644 third-party/td/td/tdutils/td/utils/BufferedUdp.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/BufferedUdp.h delete mode 100644 third-party/td/td/tdutils/td/utils/ByteFlow.h delete mode 100644 third-party/td/td/tdutils/td/utils/CancellationToken.h delete mode 100644 third-party/td/td/tdutils/td/utils/ChainScheduler.h delete mode 100644 third-party/td/td/tdutils/td/utils/ChangesProcessor.h delete mode 100644 third-party/td/td/tdutils/td/utils/Closure.h delete mode 100644 third-party/td/td/tdutils/td/utils/CombinedLog.h delete mode 100644 third-party/td/td/tdutils/td/utils/ConcurrentHashTable.h delete mode 100644 third-party/td/td/tdutils/td/utils/Container.h delete mode 100644 third-party/td/td/tdutils/td/utils/Context.h delete mode 100644 third-party/td/td/tdutils/td/utils/DecTree.h delete mode 100644 third-party/td/td/tdutils/td/utils/Destructor.h delete mode 100644 third-party/td/td/tdutils/td/utils/Ed25519.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/Ed25519.h delete mode 100644 third-party/td/td/tdutils/td/utils/Enumerator.h delete mode 100644 third-party/td/td/tdutils/td/utils/EpochBasedMemoryReclamation.h delete mode 100644 third-party/td/td/tdutils/td/utils/ExitGuard.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/ExitGuard.h delete mode 100644 third-party/td/td/tdutils/td/utils/FileLog.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/FileLog.h delete mode 100644 third-party/td/td/tdutils/td/utils/FlatHashMap.h delete mode 100644 third-party/td/td/tdutils/td/utils/FlatHashMapChunks.h delete mode 100644 third-party/td/td/tdutils/td/utils/FlatHashSet.h delete mode 100644 third-party/td/td/tdutils/td/utils/FlatHashTable.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/FlatHashTable.h delete mode 100644 third-party/td/td/tdutils/td/utils/FloodControlFast.h delete mode 100644 third-party/td/td/tdutils/td/utils/FloodControlGlobal.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/FloodControlGlobal.h delete mode 100644 third-party/td/td/tdutils/td/utils/FloodControlStrict.h delete mode 100644 third-party/td/td/tdutils/td/utils/Gzip.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/Gzip.h delete mode 100644 third-party/td/td/tdutils/td/utils/GzipByteFlow.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/GzipByteFlow.h delete mode 100644 third-party/td/td/tdutils/td/utils/Hash.h delete mode 100644 third-party/td/td/tdutils/td/utils/HashMap.h delete mode 100644 third-party/td/td/tdutils/td/utils/HashSet.h delete mode 100644 third-party/td/td/tdutils/td/utils/HashTableUtils.h delete mode 100644 third-party/td/td/tdutils/td/utils/HazardPointers.h delete mode 100644 third-party/td/td/tdutils/td/utils/Heap.h delete mode 100644 third-party/td/td/tdutils/td/utils/Hints.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/Hints.h delete mode 100644 third-party/td/td/tdutils/td/utils/HttpDate.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/HttpDate.h delete mode 100644 third-party/td/td/tdutils/td/utils/HttpUrl.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/HttpUrl.h delete mode 100644 third-party/td/td/tdutils/td/utils/JsonBuilder.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/JsonBuilder.h delete mode 100644 third-party/td/td/tdutils/td/utils/List.h delete mode 100644 third-party/td/td/tdutils/td/utils/MapNode.h delete mode 100644 third-party/td/td/tdutils/td/utils/MemoryLog.h delete mode 100644 third-party/td/td/tdutils/td/utils/MimeType.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/MimeType.h delete mode 100644 third-party/td/td/tdutils/td/utils/MovableValue.h delete mode 100644 third-party/td/td/tdutils/td/utils/MpmcQueue.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/MpmcQueue.h delete mode 100644 third-party/td/td/tdutils/td/utils/MpmcWaiter.h delete mode 100644 third-party/td/td/tdutils/td/utils/MpscLinkQueue.h delete mode 100644 third-party/td/td/tdutils/td/utils/MpscPollableQueue.h delete mode 100644 third-party/td/td/tdutils/td/utils/Named.h delete mode 100644 third-party/td/td/tdutils/td/utils/NullLog.h delete mode 100644 third-party/td/td/tdutils/td/utils/ObjectPool.h delete mode 100644 third-party/td/td/tdutils/td/utils/Observer.h delete mode 100644 third-party/td/td/tdutils/td/utils/OptionParser.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/OptionParser.h delete mode 100644 third-party/td/td/tdutils/td/utils/OrderedEventsProcessor.h delete mode 100644 third-party/td/td/tdutils/td/utils/Parser.h delete mode 100644 third-party/td/td/tdutils/td/utils/PathView.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/PathView.h delete mode 100644 third-party/td/td/tdutils/td/utils/Promise.h delete mode 100644 third-party/td/td/tdutils/td/utils/Random.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/Random.h delete mode 100644 third-party/td/td/tdutils/td/utils/ScopeGuard.h delete mode 100644 third-party/td/td/tdutils/td/utils/SetNode.h delete mode 100644 third-party/td/td/tdutils/td/utils/SharedObjectPool.h delete mode 100644 third-party/td/td/tdutils/td/utils/SharedSlice.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/SharedSlice.h delete mode 100644 third-party/td/td/tdutils/td/utils/Slice-decl.h delete mode 100644 third-party/td/td/tdutils/td/utils/Slice.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/Slice.h delete mode 100644 third-party/td/td/tdutils/td/utils/SliceBuilder.h delete mode 100644 third-party/td/td/tdutils/td/utils/Span.h delete mode 100644 third-party/td/td/tdutils/td/utils/SpinLock.h delete mode 100644 third-party/td/td/tdutils/td/utils/StackAllocator.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/StackAllocator.h delete mode 100644 third-party/td/td/tdutils/td/utils/Status.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/Status.h delete mode 100644 third-party/td/td/tdutils/td/utils/StealingQueue.h delete mode 100644 third-party/td/td/tdutils/td/utils/Storer.h delete mode 100644 third-party/td/td/tdutils/td/utils/StorerBase.h delete mode 100644 third-party/td/td/tdutils/td/utils/StringBuilder.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/StringBuilder.h delete mode 100644 third-party/td/td/tdutils/td/utils/ThreadLocalStorage.h delete mode 100644 third-party/td/td/tdutils/td/utils/ThreadSafeCounter.h delete mode 100644 third-party/td/td/tdutils/td/utils/Time.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/Time.h delete mode 100644 third-party/td/td/tdutils/td/utils/TimedStat.h delete mode 100644 third-party/td/td/tdutils/td/utils/Timer.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/Timer.h delete mode 100644 third-party/td/td/tdutils/td/utils/TlDowncastHelper.h delete mode 100644 third-party/td/td/tdutils/td/utils/TlStorerToString.h delete mode 100644 third-party/td/td/tdutils/td/utils/TsCerr.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/TsCerr.h delete mode 100644 third-party/td/td/tdutils/td/utils/TsFileLog.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/TsFileLog.h delete mode 100644 third-party/td/td/tdutils/td/utils/TsList.h delete mode 100644 third-party/td/td/tdutils/td/utils/TsLog.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/TsLog.h delete mode 100644 third-party/td/td/tdutils/td/utils/UInt.h delete mode 100644 third-party/td/td/tdutils/td/utils/Variant.h delete mode 100644 third-party/td/td/tdutils/td/utils/VectorQueue.h delete mode 100644 third-party/td/td/tdutils/td/utils/WaitFreeHashMap.h delete mode 100644 third-party/td/td/tdutils/td/utils/WaitFreeHashSet.h delete mode 100644 third-party/td/td/tdutils/td/utils/WaitFreeVector.h delete mode 100644 third-party/td/td/tdutils/td/utils/algorithm.h delete mode 100644 third-party/td/td/tdutils/td/utils/as.h delete mode 100644 third-party/td/td/tdutils/td/utils/base64.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/base64.h delete mode 100644 third-party/td/td/tdutils/td/utils/benchmark.h delete mode 100644 third-party/td/td/tdutils/td/utils/bits.h delete mode 100644 third-party/td/td/tdutils/td/utils/buffer.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/buffer.h delete mode 100644 third-party/td/td/tdutils/td/utils/check.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/check.h delete mode 100644 third-party/td/td/tdutils/td/utils/common.h delete mode 100644 third-party/td/td/tdutils/td/utils/config.h.in delete mode 100644 third-party/td/td/tdutils/td/utils/crypto.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/crypto.h delete mode 100644 third-party/td/td/tdutils/td/utils/emoji.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/emoji.h delete mode 100644 third-party/td/td/tdutils/td/utils/filesystem.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/filesystem.h delete mode 100644 third-party/td/td/tdutils/td/utils/find_boundary.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/find_boundary.h delete mode 100644 third-party/td/td/tdutils/td/utils/fixed_vector.h delete mode 100644 third-party/td/td/tdutils/td/utils/format.h delete mode 100644 third-party/td/td/tdutils/td/utils/int_types.h delete mode 100644 third-party/td/td/tdutils/td/utils/invoke.h delete mode 100644 third-party/td/td/tdutils/td/utils/logging.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/logging.h delete mode 100644 third-party/td/td/tdutils/td/utils/misc.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/misc.h delete mode 100644 third-party/td/td/tdutils/td/utils/optional.h delete mode 100644 third-party/td/td/tdutils/td/utils/overloaded.h delete mode 100644 third-party/td/td/tdutils/td/utils/port/Clocks.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/port/Clocks.h delete mode 100644 third-party/td/td/tdutils/td/utils/port/CxCli.h delete mode 100644 third-party/td/td/tdutils/td/utils/port/EventFd.h delete mode 100644 third-party/td/td/tdutils/td/utils/port/EventFdBase.h delete mode 100644 third-party/td/td/tdutils/td/utils/port/FileFd.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/port/FileFd.h delete mode 100644 third-party/td/td/tdutils/td/utils/port/FromApp.h delete mode 100644 third-party/td/td/tdutils/td/utils/port/IPAddress.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/port/IPAddress.h delete mode 100644 third-party/td/td/tdutils/td/utils/port/IoSlice.h delete mode 100644 third-party/td/td/tdutils/td/utils/port/MemoryMapping.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/port/MemoryMapping.h delete mode 100644 third-party/td/td/tdutils/td/utils/port/Mutex.h delete mode 100644 third-party/td/td/tdutils/td/utils/port/Poll.h delete mode 100644 third-party/td/td/tdutils/td/utils/port/PollBase.h delete mode 100644 third-party/td/td/tdutils/td/utils/port/PollFlags.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/port/PollFlags.h delete mode 100644 third-party/td/td/tdutils/td/utils/port/RwMutex.h delete mode 100644 third-party/td/td/tdutils/td/utils/port/ServerSocketFd.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/port/ServerSocketFd.h delete mode 100644 third-party/td/td/tdutils/td/utils/port/SocketFd.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/port/SocketFd.h delete mode 100644 third-party/td/td/tdutils/td/utils/port/Stat.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/port/Stat.h delete mode 100644 third-party/td/td/tdutils/td/utils/port/StdStreams.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/port/StdStreams.h delete mode 100644 third-party/td/td/tdutils/td/utils/port/UdpSocketFd.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/port/UdpSocketFd.h delete mode 100644 third-party/td/td/tdutils/td/utils/port/config.h delete mode 100644 third-party/td/td/tdutils/td/utils/port/detail/Epoll.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/port/detail/Epoll.h delete mode 100644 third-party/td/td/tdutils/td/utils/port/detail/EventFdBsd.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/port/detail/EventFdBsd.h delete mode 100644 third-party/td/td/tdutils/td/utils/port/detail/EventFdLinux.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/port/detail/EventFdLinux.h delete mode 100644 third-party/td/td/tdutils/td/utils/port/detail/EventFdWindows.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/port/detail/EventFdWindows.h delete mode 100644 third-party/td/td/tdutils/td/utils/port/detail/Iocp.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/port/detail/Iocp.h delete mode 100644 third-party/td/td/tdutils/td/utils/port/detail/KQueue.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/port/detail/KQueue.h delete mode 100644 third-party/td/td/tdutils/td/utils/port/detail/NativeFd.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/port/detail/NativeFd.h delete mode 100644 third-party/td/td/tdutils/td/utils/port/detail/Poll.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/port/detail/Poll.h delete mode 100644 third-party/td/td/tdutils/td/utils/port/detail/PollableFd.h delete mode 100644 third-party/td/td/tdutils/td/utils/port/detail/Select.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/port/detail/Select.h delete mode 100644 third-party/td/td/tdutils/td/utils/port/detail/ThreadIdGuard.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/port/detail/ThreadIdGuard.h delete mode 100644 third-party/td/td/tdutils/td/utils/port/detail/ThreadPthread.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/port/detail/ThreadPthread.h delete mode 100644 third-party/td/td/tdutils/td/utils/port/detail/ThreadStl.h delete mode 100644 third-party/td/td/tdutils/td/utils/port/detail/WineventPoll.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/port/detail/WineventPoll.h delete mode 100644 third-party/td/td/tdutils/td/utils/port/detail/skip_eintr.h delete mode 100644 third-party/td/td/tdutils/td/utils/port/path.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/port/path.h delete mode 100644 third-party/td/td/tdutils/td/utils/port/platform.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/port/platform.h delete mode 100644 third-party/td/td/tdutils/td/utils/port/rlimit.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/port/rlimit.h delete mode 100644 third-party/td/td/tdutils/td/utils/port/signals.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/port/signals.h delete mode 100644 third-party/td/td/tdutils/td/utils/port/sleep.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/port/sleep.h delete mode 100644 third-party/td/td/tdutils/td/utils/port/stacktrace.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/port/stacktrace.h delete mode 100644 third-party/td/td/tdutils/td/utils/port/thread.h delete mode 100644 third-party/td/td/tdutils/td/utils/port/thread_local.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/port/thread_local.h delete mode 100644 third-party/td/td/tdutils/td/utils/port/uname.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/port/uname.h delete mode 100644 third-party/td/td/tdutils/td/utils/port/user.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/port/user.h delete mode 100644 third-party/td/td/tdutils/td/utils/port/wstring_convert.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/port/wstring_convert.h delete mode 100644 third-party/td/td/tdutils/td/utils/queue.h delete mode 100644 third-party/td/td/tdutils/td/utils/simple_tests.h delete mode 100644 third-party/td/td/tdutils/td/utils/tests.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/tests.h delete mode 100644 third-party/td/td/tdutils/td/utils/tl_helpers.h delete mode 100644 third-party/td/td/tdutils/td/utils/tl_parsers.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/tl_parsers.h delete mode 100644 third-party/td/td/tdutils/td/utils/tl_storers.h delete mode 100644 third-party/td/td/tdutils/td/utils/translit.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/translit.h delete mode 100644 third-party/td/td/tdutils/td/utils/type_traits.h delete mode 100644 third-party/td/td/tdutils/td/utils/uint128.h delete mode 100644 third-party/td/td/tdutils/td/utils/unicode.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/unicode.h delete mode 100644 third-party/td/td/tdutils/td/utils/unique_ptr.h delete mode 100644 third-party/td/td/tdutils/td/utils/unique_value_ptr.h delete mode 100644 third-party/td/td/tdutils/td/utils/utf8.cpp delete mode 100644 third-party/td/td/tdutils/td/utils/utf8.h delete mode 100644 third-party/td/td/tdutils/test/ChainScheduler.cpp delete mode 100644 third-party/td/td/tdutils/test/ConcurrentHashMap.cpp delete mode 100644 third-party/td/td/tdutils/test/Enumerator.cpp delete mode 100644 third-party/td/td/tdutils/test/EpochBasedMemoryReclamation.cpp delete mode 100644 third-party/td/td/tdutils/test/HashSet.cpp delete mode 100644 third-party/td/td/tdutils/test/HazardPointers.cpp delete mode 100644 third-party/td/td/tdutils/test/HttpUrl.cpp delete mode 100644 third-party/td/td/tdutils/test/List.cpp delete mode 100644 third-party/td/td/tdutils/test/MpmcQueue.cpp delete mode 100644 third-party/td/td/tdutils/test/MpmcWaiter.cpp delete mode 100644 third-party/td/td/tdutils/test/MpscLinkQueue.cpp delete mode 100644 third-party/td/td/tdutils/test/OptionParser.cpp delete mode 100644 third-party/td/td/tdutils/test/OrderedEventsProcessor.cpp delete mode 100644 third-party/td/td/tdutils/test/SharedObjectPool.cpp delete mode 100644 third-party/td/td/tdutils/test/SharedSlice.cpp delete mode 100644 third-party/td/td/tdutils/test/StealingQueue.cpp delete mode 100644 third-party/td/td/tdutils/test/WaitFreeHashMap.cpp delete mode 100644 third-party/td/td/tdutils/test/WaitFreeHashSet.cpp delete mode 100644 third-party/td/td/tdutils/test/WaitFreeVector.cpp delete mode 100644 third-party/td/td/tdutils/test/bitmask.cpp delete mode 100644 third-party/td/td/tdutils/test/buffer.cpp delete mode 100644 third-party/td/td/tdutils/test/crypto.cpp delete mode 100644 third-party/td/td/tdutils/test/emoji.cpp delete mode 100644 third-party/td/td/tdutils/test/filesystem.cpp delete mode 100644 third-party/td/td/tdutils/test/gzip.cpp delete mode 100644 third-party/td/td/tdutils/test/hashset_benchmark.cpp delete mode 100644 third-party/td/td/tdutils/test/heap.cpp delete mode 100644 third-party/td/td/tdutils/test/json.cpp delete mode 100644 third-party/td/td/tdutils/test/log.cpp delete mode 100644 third-party/td/td/tdutils/test/misc.cpp delete mode 100644 third-party/td/td/tdutils/test/port.cpp delete mode 100644 third-party/td/td/tdutils/test/pq.cpp delete mode 100644 third-party/td/td/tdutils/test/variant.cpp delete mode 100644 third-party/td/td/test/CMakeLists.txt delete mode 100644 third-party/td/td/test/country_info.cpp delete mode 100644 third-party/td/td/test/crypto.cpp delete mode 100644 third-party/td/td/test/data.cpp delete mode 100644 third-party/td/td/test/data.h delete mode 100644 third-party/td/td/test/db.cpp delete mode 100644 third-party/td/td/test/fuzz_url.cpp delete mode 100644 third-party/td/td/test/http.cpp delete mode 100644 third-party/td/td/test/link.cpp delete mode 100644 third-party/td/td/test/main.cpp delete mode 100644 third-party/td/td/test/message_entities.cpp delete mode 100644 third-party/td/td/test/mtproto.cpp delete mode 100644 third-party/td/td/test/online.cpp delete mode 100644 third-party/td/td/test/poll.cpp delete mode 100644 third-party/td/td/test/query_merger.cpp delete mode 100644 third-party/td/td/test/secret.cpp delete mode 100644 third-party/td/td/test/secure_storage.cpp delete mode 100644 third-party/td/td/test/set_with_position.cpp delete mode 100644 third-party/td/td/test/string_cleaning.cpp delete mode 100644 third-party/td/td/test/tdclient.cpp delete mode 100644 third-party/td/td/test/tqueue.cpp delete mode 100755 third-party/td/td/update_version.sh diff --git a/third-party/td/td/.clang-format b/third-party/td/td/.clang-format deleted file mode 100644 index 8f0a588366..0000000000 --- a/third-party/td/td/.clang-format +++ /dev/null @@ -1,194 +0,0 @@ ---- -Language: Cpp -# BasedOnStyle: Google -AccessModifierOffset: -1 -AlignAfterOpenBracket: Align -AlignArrayOfStructures: None -AlignConsecutiveAssignments: - Enabled: false - AcrossEmptyLines: false - AcrossComments: false - AlignCompound: false - PadOperators: true -AlignConsecutiveBitFields: - Enabled: false - AcrossEmptyLines: false - AcrossComments: false - AlignCompound: false - PadOperators: false -AlignConsecutiveDeclarations: - Enabled: false - AcrossEmptyLines: false - AcrossComments: false - AlignCompound: false - PadOperators: false -AlignConsecutiveMacros: - Enabled: false - AcrossEmptyLines: false - AcrossComments: false - AlignCompound: false - PadOperators: false -AlignEscapedNewlines: Left -AlignOperands: Align -AlignTrailingComments: - Kind: Always - OverEmptyLines: 0 -AllowAllArgumentsOnNextLine: true -AllowAllParametersOfDeclarationOnNextLine: true -AllowShortBlocksOnASingleLine: Never -AllowShortCaseLabelsOnASingleLine: false -AllowShortEnumsOnASingleLine: true -AllowShortFunctionsOnASingleLine: None # All -AllowShortIfStatementsOnASingleLine: Never # WithoutElse -AllowShortLambdasOnASingleLine: Inline # All -AllowShortLoopsOnASingleLine: false # true -AlwaysBreakAfterDefinitionReturnType: None -AlwaysBreakAfterReturnType: None -AlwaysBreakBeforeMultilineStrings: true -AlwaysBreakTemplateDeclarations: Yes -# AttributeMacros: -# - __capability -BinPackArguments: true -BinPackParameters: true -BitFieldColonSpacing: Both -BraceWrapping: - AfterCaseLabel: false - AfterClass: false - AfterControlStatement: Never - AfterEnum: false - AfterExternBlock: false - AfterFunction: false - AfterNamespace: false - AfterObjCDeclaration: false - AfterStruct: false - AfterUnion: false - BeforeCatch: false - BeforeElse: false - BeforeLambdaBody: false - BeforeWhile: false - IndentBraces: false - SplitEmptyFunction: true - SplitEmptyRecord: true - SplitEmptyNamespace: true -BreakAfterAttributes: Never -# BreakAfterJavaFieldAnnotations: false -BreakArrays: true -BreakBeforeBinaryOperators: None -BreakBeforeBraces: Attach -BreakBeforeConceptDeclarations: Always -BreakBeforeInlineASMColon: OnlyMultiline -BreakBeforeTernaryOperators: true -BreakConstructorInitializers: BeforeComma # BeforeColon -BreakInheritanceList: BeforeComma # BeforeColon -BreakStringLiterals: true -ColumnLimit: 120 # 80 -CommentPragmas: '^ IWYU pragma:' -CompactNamespaces: false -ConstructorInitializerIndentWidth: 4 -ContinuationIndentWidth: 4 -Cpp11BracedListStyle: true -DerivePointerAlignment: true -DisableFormat: false -EmptyLineAfterAccessModifier: Never -EmptyLineBeforeAccessModifier: LogicalBlock -ExperimentalAutoDetectBinPacking: false -FixNamespaceComments: true -ForEachMacros: - - Q_FOREACH_THIS_LIST_MUST_BE_NON_EMPTY -IncludeBlocks: Preserve -IncludeCategories: - - Regex: '.*' - Priority: 0 -IndentAccessModifiers: false -IndentCaseBlocks: false -IndentCaseLabels: true -IndentExternBlock: AfterExternBlock -IndentGotoLabels: true -IndentPPDirectives: None -IndentRequiresClause: true -IndentWidth: 2 -IndentWrappedFunctionNames: false -InsertBraces: false -InsertNewlineAtEOF: false -# InsertTrailingCommas: None -IntegerLiteralSeparator: - Binary: 0 - Decimal: 0 - Hex: 0 -# JavaScriptQuotes: Leave -# JavaScriptWrapImports: true -KeepEmptyLinesAtTheStartOfBlocks: false -LambdaBodyIndentation: Signature -LineEnding: DeriveLF -MacroBlockBegin: '' -MacroBlockEnd: '' -MaxEmptyLinesToKeep: 1 -NamespaceIndentation: None -# ObjCBinPackProtocolList: Never -# ObjCBlockIndentWidth: 2 -# ObjCBreakBeforeNestedBlockParam: true -# ObjCSpaceAfterProperty: false -# ObjCSpaceBeforeProtocolList: true -PackConstructorInitializers: NextLine -PenaltyBreakAssignment: 2 -PenaltyBreakBeforeFirstCallParameter: 1 -PenaltyBreakComment: 300 -PenaltyBreakFirstLessLess: 120 -PenaltyBreakOpenParenthesis: 0 -PenaltyBreakString: 1000 -PenaltyBreakTemplateDeclaration: 10 -PenaltyExcessCharacter: 1000000 -PenaltyIndentedWhitespace: 0 -PenaltyReturnTypeOnItsOwnLine: 200 -PointerAlignment: Right # Left -PPIndentWidth: -1 -QualifierAlignment: Leave -ReferenceAlignment: Pointer -ReflowComments: false # true -RemoveBracesLLVM: false -RemoveSemicolon: false -RequiresClausePosition: OwnLine -RequiresExpressionIndentation: OuterScope -SeparateDefinitionBlocks: Leave -ShortNamespaceLines: 0 # 1 -SortIncludes: CaseInsensitive # CaseSensitive -# SortJavaStaticImport: Before -SortUsingDeclarations: Lexicographic # LexicographicNumeric -SpaceAfterCStyleCast: false -SpaceAfterLogicalNot: false -SpaceAfterTemplateKeyword: true -SpaceAroundPointerQualifiers: Default -SpaceBeforeAssignmentOperators: true -SpaceBeforeCaseColon: false -SpaceBeforeCpp11BracedList: false -SpaceBeforeCtorInitializerColon: true -SpaceBeforeInheritanceColon: true -SpaceBeforeParens: ControlStatements -SpaceBeforeParensOptions: - AfterControlStatements: true - AfterForeachMacros: true - AfterFunctionDefinitionName: false - AfterFunctionDeclarationName: false - AfterIfMacros: true - AfterOverloadedOperator: false - AfterRequiresInClause: false - AfterRequiresInExpression: false - BeforeNonEmptyParentheses: false -SpaceBeforeRangeBasedForLoopColon: true -SpaceBeforeSquareBrackets: false -SpaceInEmptyBlock: false -SpaceInEmptyParentheses: false -SpacesBeforeTrailingComments: 2 -SpacesInAngles: Never -SpacesInConditionalStatement: false -SpacesInContainerLiterals: true -SpacesInCStyleCastParentheses: false -SpacesInLineCommentPrefix: - Minimum: 1 - Maximum: 1 # -1 -SpacesInParentheses: false -SpacesInSquareBrackets: false -Standard: Auto -TabWidth: 100 # 8 -UseTab: Never -... diff --git a/third-party/td/td/.gitattributes b/third-party/td/td/.gitattributes deleted file mode 100644 index 8a58f71824..0000000000 --- a/third-party/td/td/.gitattributes +++ /dev/null @@ -1,39 +0,0 @@ -* text=auto - -*.cpp text whitespace=blank-at-eol,space-before-tab,blank-at-eof,tab-in-indent -*.hpp text whitespace=blank-at-eol,space-before-tab,blank-at-eof,tab-in-indent -*.h text whitespace=blank-at-eol,space-before-tab,blank-at-eof,tab-in-indent -*.c text whitespace=blank-at-eol,space-before-tab,blank-at-eof,tab-in-indent -*.tl text whitespace=blank-at-eol,space-before-tab,blank-at-eof,tab-in-indent -*.mm text whitespace=blank-at-eol,space-before-tab,blank-at-eof,tab-in-indent -*.txt text whitespace=blank-at-eol,space-before-tab,blank-at-eof,tab-in-indent -*.sh text whitespace=blank-at-eol,space-before-tab,blank-at-eof,tab-in-indent eol=lf -*.php text whitespace=blank-at-eol,space-before-tab,blank-at-eof,tab-in-indent -*.ps1 text whitespace=blank-at-eol,space-before-tab,blank-at-eof,tab-in-indent eol=crlf -*.cmake text whitespace=blank-at-eol,space-before-tab,blank-at-eof,tab-in-indent -*.md text whitespace=blank-at-eol,space-before-tab,blank-at-eof,tab-in-indent -*.in text whitespace=blank-at-eol,space-before-tab,blank-at-eof,tab-in-indent -*.html text whitespace=blank-at-eol,space-before-tab,blank-at-eof,tab-in-indent - -*.java text whitespace=blank-at-eol,space-before-tab,blank-at-eof,tab-in-indent -*.py text whitespace=blank-at-eol,space-before-tab,blank-at-eof,tab-in-indent -*.js text whitespace=blank-at-eol,space-before-tab,blank-at-eof,tab-in-indent -*.patch text whitespace=blank-at-eol,space-before-tab,blank-at-eof,tab-in-indent -*.swift text whitespace=blank-at-eol,space-before-tab,blank-at-eof,tab-in-indent -*.pbxproj text whitespace=blank-at-eol,space-before-tab,blank-at-eof,tab-in-indent -*.cs text whitespace=blank-at-eol,space-before-tab,blank-at-eof,tab-in-indent -*.xaml text whitespace=blank-at-eol,space-before-tab,blank-at-eof,tab-in-indent -*.appxmanifest text whitespace=blank-at-eol,space-before-tab,blank-at-eof,tab-in-indent -*.vsixmanifest text whitespace=blank-at-eol,space-before-tab,blank-at-eof,tab-in-indent -*.nuspec text whitespace=blank-at-eol,space-before-tab,blank-at-eof,tab-in-indent -*.targets text whitespace=blank-at-eol,space-before-tab,blank-at-eof,tab-in-indent -*.json text whitespace=blank-at-eol,space-before-tab,blank-at-eof,tab-in-indent -*.csproj text whitespace=blank-at-eol,space-before-tab,blank-at-eof,tab-in-indent -*.sln text whitespace=blank-at-eol,space-before-tab,blank-at-eof,tab-in-indent -*.xml text whitespace=blank-at-eol,space-before-tab,blank-at-eof,tab-in-indent -*.config text whitespace=blank-at-eol,space-before-tab,blank-at-eof,tab-in-indent - -sqlite/sqlite/* linguist-vendored - -*.pfx binary -*.png binary diff --git a/third-party/td/td/.gitignore b/third-party/td/td/.gitignore deleted file mode 100644 index 9ce887b5f1..0000000000 --- a/third-party/td/td/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -**/*build*/ -**/.*.swp -**/.DS_Store -**/auto/ -docs/ -/tdlib/ -vcpkg/ -.clang-tidy diff --git a/third-party/td/td/CHANGELOG.md b/third-party/td/td/CHANGELOG.md deleted file mode 100644 index f590b3ef62..0000000000 --- a/third-party/td/td/CHANGELOG.md +++ /dev/null @@ -1,1520 +0,0 @@ -Changes in 1.8.0 (29 Dec 2021): - -* Changed the type of user, basic group and supergroup identifiers from `int32` to `int53`. -* Simplified chat list loading and removed the ability to misuse the method `getChats`: - - Renamed the method `getChats` to `loadChats`. - - Removed the parameters `offset_order` and `offset_chat_id` from the method `loadChats`. Chats are now always loaded - from the last known chat in the list. - - Changed the type of the result in the method `loadChats` to `ok`. If no chats were loaded, a 404 error is returned. - The order of chats in the list must be maintained using the updates `updateChatPosition`, `updateChatLastMessage`, - and `updateChatDraftMessage`. - - Added the convenience method `getChats`, which returns the requested number of chats from the beginning of a chat - list and can be used if the list of chats doesn't need to be maintained in a consistent state. -* Added the ability to hook TDLib log messages: - - Added the function `td_set_log_message_callback` to JSON interface. - - Added the function `set_log_message_callback` to the class `ClientManager`. - - Added the function `SetLogMessageCallback` to the UWP native wrapper through C++/CX. - - Deprecated the function `td_set_log_fatal_error_callback` in JSON interface in favor of - the function `td_set_log_message_callback`. - - Deprecated the function `Log::set_fatal_error_callback` in favor of - the function `ClientManager::set_log_message_callback`. -* Added support for sending messages on behalf of public channels owned by the user: - - Added the field `message_sender_id` to the class `chat`, containing the identifier of the currently selected - message sender. - - Added the update `updateChatMessageSender`. - - Added the method `getChatAvailableMessageSenders`, returning the list of available message senders for the chat. - - Added the method `setChatMessageSender`, changing the currently selected message sender. - - Added the field `need_another_sender` to the class `messageSendingStateFailed`. If it is true, an alert needs - to be shown to the user that the message will be re-sent on behalf of another sender. - - Replaced the method `deleteChatMessagesFromUser` with the method `deleteChatMessagesBySender`, expecting - a `MessageSender` instead of a user identifier. - - Replaced the update `updateUserChatAction` with the update `updateChatAction`, containing a `MessageSender` - instead of a user identifier as a source of the chat action. -* Added the ability to ban supergroups and channels in other supergroups and channels: - - Replaced the fields `user_id` with the fields `member_id` in the classes `chatMember` and - `chatEventMemberRestricted`. - - Replaced the parameters `user_id` with the parameters `member_id` in the methods `setChatMemberStatus` and - `getChatMember`. -* Improved support for animated emoji: - - Added the class `animatedEmoji`, containing information about an animated emoji. - - Added the class `messageAnimatedEmoji` to the types of message content. - - Added the method `clickAnimatedEmojiMessage` to be called when an animated emoji is clicked. - - Added the update `updateAnimatedEmojiMessageClicked`, received when a big animated sticker must be played. - - Added the class `chatActionWatchingAnimations` to the types of chat action. - - Added the method `getAnimatedEmoji`, returning an animated emoji corresponding to a given emoji. - - Added the writable option "disable_animated_emoji". - - Removed the option "animated_emoji_sticker_set_name". -* Added support for automatic message deletion in all chat types: - - Added the field `message_ttl` to the class `chat`. - - Added the update `updateChatMessageTtl`. - - Added the method `setChatMessageTtl`. - - Added the class `chatEventMessageTtlChanged`, representing change of the field `message_ttl` in the chat event log. - - Removed the field `ttl` from the class `secretChat` in favor of the field `message_ttl` in the class `chat`. - - Removed the method `sendChatSetTtlMessage` in favor of the method `setChatMessageTtl`. -* Improved names of the fields of the type `MessageSender`: - - Renamed the fields `sender` to `sender_id` in the classes `message` and `notificationTypeNewPushMessage`. - - Renamed the parameter `sender` to `sender_id` in the methods `searchChatMessages`, `addLocalMessage`, and - `toggleMessageSenderIsBlocked`. - - Renamed the field `recent_repliers` to `recent_replier_ids` in the class `messageReplyInfo`. - - Renamed the field `traveler` to `traveler_id` in the class `messageProximityAlertTriggered`. - - Renamed the field `watcher` to `watcher_id` in the class `messageProximityAlertTriggered`. -* The field `formatted_phone_number` in the class `phoneNumberInfo` now contains the character '-' at the places of - expected digits. -* Added the synchronous method `getPhoneNumberInfoSync` that can be used instead of the method `getPhoneNumberInfo` - to synchronously receive information about a phone number by its prefix. -* Replaced the field `user_id` in the class `chatEvent` with the field `member_id` of the type `MessageSender`. -* Improved support for bot payments: - - Allowed sending invoices as results of inline queries by allowing bots to use the class `inputMessageInvoice` as - the value of the field `input_message_content` in the classes `inputInlineQueryResultAnimation`, - `inputInlineQueryResultArticle`, `inputInlineQueryResultAudio`, `inputInlineQueryResultContact`, - `inputInlineQueryResultDocument`, `inputInlineQueryResultLocation`, `inputInlineQueryResultPhoto`, - `inputInlineQueryResultSticker`, `inputInlineQueryResultVenue`, `inputInlineQueryResultVideo`, and - `inputInlineQueryResultVoiceNote`. - - Allowed sending invoice messages to basic group, supergroup and channel chats. - - Allowed bots to send forwardable invoices by specifying an empty field `start_parameter` in - the class `inputMessageInvoice`. - - Added the field `invoice_chat_id` to the class `messagePaymentSuccessful`. - - Added the field `id` to the class `paymentForm`, containing a unique payment form identifier. - - Added the parameter `payment_form_id` to the method `sendPaymentForm`. - - Added the field `seller_bot_user_id` to the class `paymentForm`, containing the user identifier of the seller bot. - - Added the field `payments_provider_user_id` to the class `paymentForm`, containing the user identifier of - the payment provider bot. - - Added the fields `title`, `description`, `photo`, and `seller_bot_user_id` to the class `paymentReceipt`. - - Added the fields `max_tip_amount` and `suggested_tip_amounts` to the class `invoice`. - - Added the parameter `tip_amount` to the method `sendPaymentForm`. - - Added the field `tip_amount` to the class `paymentReceipt`. - - Renamed the class `inputCredentialsAndroidPay` to `inputCredentialsGooglePay`. - - Added the class `paymentFormTheme`, containing the desired colors for a payment form. - - Added the parameter `theme` to the method `getPaymentForm`. - - Removed the field `invoice_message_id` from the class `messagePaymentSuccessfulBot`. -* Added the method `deleteChat`, which can be used to completely delete a chat along with all messages. -* Removed the method `deleteSupergroup` in favor of the method `deleteChat`. -* Changed the type of the result in the method `getProxyLink` to the class `httpUrl` instead of the class `text`. -* Removed support for secret chat layers before 73. -* Added support for sponsored messages: - - Added the class `sponsoredMessage`. - - Added the method `getChatSponsoredMessage`. - - Added the ability to pass identifiers of sponsored messages to `viewMessages`. The method must be called when - the entire text of the sponsored message is shown on the screen (excluding the button). -* Added support for video chats: - - Added the class `groupCall`, representing a group call. - - Added the method `getGroupCall` for fetching information about a group call. - - Added the update `updateGroupCall`. - - Added the class `videoChat`, representing a video chat, i.e. group call bound to a chat. - - Added the field `video_chat` to the class `chat`. - - Added the update `updateChatVideoChat`. - - Added the classes `messageVideoChatScheduled`, `messageVideoChatStarted`, and `messageVideoChatEnded` to - the types of message content. - - Added the class `messageInviteVideoChatParticipants` to the types of message content. - - Added the field `can_manage_video_chats` to the class `chatMemberStatusAdministrator`. - - Added the class `groupCallId`. - - Added the method `createVideoChat` for video chat creation. - - Added the method `startScheduledGroupCall`. - - Added the method `toggleGroupCallEnabledStartNotification`. - - Added the method `joinGroupCall`. - - Added the method `leaveGroupCall`. - - Added the method `endGroupCall`. - - Added the method `toggleGroupCallIsMyVideoEnabled`. - - Added the method `toggleGroupCallIsMyVideoPaused`. - - Added the methods `startGroupCallScreenSharing`, `toggleGroupCallScreenSharingIsPaused`, - `endGroupCallScreenSharing` for managing screen sharing during group calls. - - Added the method `setGroupCallTitle`. - - Added the method `toggleGroupCallMuteNewParticipants`. - - Added the classes `groupCallVideoSourceGroup` and `groupCallParticipantVideoInfo`, describing available - video streams. - - Added the class `groupCallParticipant`. - - Added the update `updateGroupCallParticipant`. - - Added the method `loadGroupCallParticipants`. - - Added the method `toggleGroupCallParticipantIsHandRaised`. - - Added the method `setGroupCallParticipantIsSpeaking`. - - Added the methods `toggleGroupCallParticipantIsMuted` and `setGroupCallParticipantVolumeLevel` for managing - the volume level of group call participants. - - Added the method `inviteGroupCallParticipants`. - - Added the method `getGroupCallInviteLink` and `revokeGroupCallInviteLink` for managing group call invite links. - - Added the methods `startGroupCallRecording` and `endGroupCallRecording` for managing group call recordings. - - Added the method `getVideoChatAvailableParticipants`, returning the list of participants, on whose behalf - a video chat in the chat can be joined. - - Added the method `setVideoChatDefaultParticipant` for changing the default participant on whose behalf a video chat - will be joined. - - Added the class `GroupCallVideoQuality` and the method `getGroupCallStreamSegment` for downloading segments of - live streams. - - Added the class `groupCallRecentSpeaker`, representing a group call participant that was recently speaking. - - Added the field `video_chat_changes` to the class `chatEventLogFilters`. - - Added the class `chatEventVideoChatCreated`, representing a video chat being created in the chat event log. - - Added the class `chatEventVideoChatEnded`, representing a video chat being ended in the chat event log. - - Added the class `chatEventVideoChatMuteNewParticipantsToggled`, representing changes of - the setting `mute_new_participants` of a video chat in the chat event log. - - Added the class `chatEventVideoChatParticipantIsMutedToggled`, representing a video chat participant being muted or - unmuted in the chat event log. - - Added the class `chatEventVideoChatParticipantVolumeLevelChanged`, representing a video chat participant's - volume level being changed in the chat event log. -* Added "; pass null" documentation for all TDLib method parameters, for which null is an expected value. -* Added support for link processing: - - Added the method `getInternalLinkType`, which can parse internal links and return the exact link type and actions - to be done when the link is clicked. - - Added the classes `internalLinkTypeActiveSessions`, `internalLinkTypeAuthenticationCode`, - `internalLinkTypeBackground`, `internalLinkTypeBotStart`, `internalLinkTypeBotStartInGroup`, - `internalLinkTypeChangePhoneNumber`, `internalLinkTypeChatInvite`, `internalLinkTypeFilterSettings`, - `internalLinkTypeGame`, `internalLinkTypeLanguagePack`, `internalLinkTypeMessage`, `internalLinkTypeMessageDraft`, - `internalLinkTypePassportDataRequest`, `internalLinkTypePhoneNumberConfirmation`, `internalLinkTypeProxy`, - `internalLinkTypePublicChat`, `internalLinkTypeQrCodeAuthentication`, `internalLinkTypeSettings`, - `internalLinkTypeStickerSet`, `internalLinkTypeTheme`, `internalLinkTypeThemeSettings`, - `internalLinkTypeUnknownDeepLink`, `internalLinkTypeUnsupportedProxy`, and `internalLinkTypeVideoChat` to represent - different types of internal links. - - Added the method `getExternalLinkInfo`, which needs to be called if the clicked link wasn't recognized as - an internal link. - - Added the method `getExternalLink`, which needs to be called after the method `getExternalLinkInfo` if the user - confirms automatic authorization on the website. -* Added support for expiring chat invite links: - - Added the field `is_primary` to the class `chatInviteLink`. The primary invite link can't have a name, - expiration date, or usage limit. There is exactly one primary invite link for each administrator with - the can_invite_users right at any given time. - - Added the field `name` to the class `chatInviteLink`. - - Added the field `creator_user_id` to the class `chatInviteLink`. - - Added the field `date` to the class `chatInviteLink`, containing the link creation date. - - Added the field `edit_date` to the class `chatInviteLink`, containing the date the link was last edited. - - Added the fields `expiration_date` and `member_limit` to the class `chatInviteLink`, limiting link usage. - - Added the field `member_count` to the class `chatInviteLink`. - - Added the field `is_revoked` to the class `chatInviteLink`. - - Changed the type of the fields `invite_link` in the classes `basicGroupFullInfo` and `supergroupFullInfo` to - `chatInviteLink`. - - Added the field `description` to the class `chatInviteLinkInfo`, containing the description of the chat. - - Replaced the method `generateChatInviteLink` with the method `replacePrimaryChatInviteLink`. - - Added the method `createChatInviteLink` for creating new invite links. - - Added the method `editChatInviteLink` for editing non-primary invite links. - - Added the method `revokeChatInviteLink`. - - Added the method `deleteRevokedChatInviteLink`. - - Added the method `deleteAllRevokedChatInviteLink`. - - Added the method `getChatInviteLink`. - - Added the class `chatInviteLinks`, containing a list of chat invite links. - - Added the method `getChatInviteLinks`. - - Added the classes `chatInviteLinkCount` and `chatInviteLinkCounts`. - - Added the method `getChatInviteLinkCounts`, returning the number of invite links created by chat administrators. - - Added the classes `chatInviteLinkMember` and `chatInviteLinkMembers`. - - Added the method `getChatInviteLinkMembers`. - - Added the field `invite_link_changes` to the class `chatEventLogFilters`. - - Added the class `chatEventMemberJoinedByInviteLink`, representing a user joining the chat via invite link in - the chat event log. - - Added the class `chatEventInviteLinkEdited` to the types of chat event. - - Added the class `chatEventInviteLinkRevoked` to the types of chat event. - - Added the class `chatEventInviteLinkDeleted` to the types of chat event. - - Added the class `chatActionBarInviteMembers` to the types of chat action bar. -* Added support for chat invite links that create join requests: - - Added the class `messageChatJoinByRequest` to the types of message content. - - Added the class `pushMessageContentChatJoinByRequest` to the types of push message content. - - Added the field `pending_join_requests` to the class `chat`. - - Added the class `chatJoinRequestsInfo`, containing basic information about pending join requests for the chat. - - Added the update `updateChatPendingJoinRequests`. - - Added the fields `creates_join_request` to the classes `chatInviteLink` and `chatInviteLinkInfo`. - - Added the field `pending_join_request_count` to the class `chatInviteLink`. - - Added the class `chatJoinRequest`, describing a user that sent a join request. - - Added the class `chatJoinRequests`, containing a list of requests to join the chat. - - Added the method `getChatJoinRequests`. - - Added the method `processChatJoinRequest` for processing a request to join the chat. - - Added the method `processChatJoinRequests` for processing all requests to join the chat. - - Added the class `chatActionBarJoinRequest` to the types of chat action bar. - - Added the class `chatEventMemberJoinedByRequest`, representing a user approved to join the chat after - a join request in the chat event log. - - Added the update `updateNewChatJoinRequest` for bots. -* Added the ability to see viewers of outgoing messages in small group chats: - - Added the method `getMessageViewers`. - - Added the field `can_get_viewers` to the class `message`. -* Added the parameter `only_preview` to the method `forwardMessages`, which can be used to receive a preview of - forwarded messages. -* Added the method `getRecentlyOpenedChats`, returning the list of recently opened chats. -* Increased number of recently found chats that are stored to 50. -* Added the ability to get information about chat messages, which are split by days: - - Added the class `messageCalendarDay`, representing found messages, sent on a specific day. - - Added the class `messageCalendar`, representing found messages, split by days. - - Added the writable option "utc_time_offset", which contains a UTC time offset used for splitting messages by days. - The option is reset automatically on each TDLib instance launch, so it needs to be set manually only if - the time offset is changed during execution. - - Added the method `getChatMessageCalendar`, returning information about chat messages, which are split by days. -* Added the ability to get messages of the specified type in sparse positions for hyper-speed scrolling implementation: - - Added the class `messagePosition`, containing an identifier and send date of a message in - a specific chat history position. - - Added the class `messagePositions`, containing a list of message positions. - - Added the method `getChatSparseMessagePositions`. -* Added the field `can_manage_chat` to the class `chatMemberStatusAdministrator` to allow promoting chat administrators - without additional rights. -* Improved support for bot commands: - - Bot command entities in chats without bots are now automatically hidden. - - Added the class `botCommands`, representing a list of bot commands. - - Added the field `commands` to the class `userFullInfo`, containing the list of commands to be used in - the private chat with the bot. - - Added the fields `bot_commands` to the classes `basicGroupFullInfo` and `supergroupFullInfo`. - - Removed the class `botInfo`. - - Removed the fields `bot_info` from the classes `userFullInfo` and `chatMember`. - - Added the class `BotCommandScope`. - - Added the methods `setCommands`, `deleteCommands`, `getCommands` for bots. -* Added the read-only options "suggested_video_note_length", "suggested_video_note_video_bitrate", and - "suggested_video_note_audio_bitrate", containing suggested video note encoding parameters. -* Added the read-only option "channel_bot_user_id", containing the identifier of the bot which is shown in - outdated clients as the sender of messages sent on behalf of channels. -* Added the ability to fetch the actual value of the option "is_location_visible" using the method `getOption` in case - the value of the option was changed from another device. -* Added the field `minithumbnail` to the class `profilePhoto`, representing a profile photo minithumbnail. -* Added the field `minithumbnail` to the class `chatPhotoInfo`, representing a chat photo minithumbnail. -* Added support for sticker outlines: - - Added the field `outline` to the class `sticker`. - - Added the fields `thumbnail_outline` to the classes `stickerSet` and `stickerSetInfo`. - - Added the class `closedVectorPath`, representing a closed vector path. - - Added the class `VectorPathCommand`, representing one edge of a closed vector path. - - Added the class `point`, representing a point on a Cartesian plane. -* Added support for chats and messages with protected content: - - Added the field `has_protected_content` to the class `chat`. - - Added the update `updateChatHasProtectedContent`. - - Added the method `toggleChatHasProtectedContent`. - - Added the class `chatEventHasProtectedContentToggled`, representing a change of the setting `has_protected_content` - in the chat event log. - - Added the field `can_be_saved` to the class `message`. -* Added support for broadcast groups, i.e. supergroups without a limit on the number of members in which - only administrators can send messages: - - Added the field `is_broadcast_group` to the class `supergroup`. - - Added the method `toggleSupergroupIsBroadcastGroup`. Conversion of a supergroup to a broadcast group - can't be undone. - - Added the class `suggestedActionConvertToBroadcastGroup`, representing a suggestion to convert a supergroup to - a broadcast group. -* Improved chat reports: - - Added the parameter `text` to the method `reportChat`, allowing to add additional details to all - chat reporting reasons. - - Removed the field `text` from the class `chatReportReasonCustom`. - - Added the method `reportChatPhoto` for reporting chat photos. -* Added support for users and chats reported as fake: - - Added the field `is_fake` to the class `user`. - - Added the field `is_fake` to the class `supergroup`. - - Added the class `chatReportReasonFake` to the types of chat reporting reasons. -* Added the class `inlineKeyboardButtonTypeUser` to the types of inline keyboard buttons. -* Added the field `input_field_placeholder` to the classes `replyMarkupForceReply` and `replyMarkupShowKeyboard`. -* Added support for media timestamp entities in messages: - - Added the class `textEntityTypeMediaTimestamp` to the types of text entities. - - Added the field `has_timestamped_media` to the class `message`, describing whether media timestamp entities refer - to the message itself or to the replied message. - - Added the parameter `media_timestamp` to the method `getMessageLink` to support creating message links with - a given media timestamp. - - Added the field `can_get_media_timestamp_links` to the class `message`. - - Added the field `media_timestamp` to the class `messageLinkInfo` for handling of message links with - a specified media timestamp. -* Added the ability to change properties of active sessions: - - Added the field `can_accept_secret_chats` to the class `session`. - - Added the method `toggleSessionCanAcceptSecretChats`. - - Added the field `can_accept_calls` to the class `session`. - - Added the method `toggleSessionCanAcceptCalls`. - - Added the field `inactive_session_ttl_days` to the class `sessions`. - - Added the method `setInactiveSessionTtl`. -* Added new ways for phone number verification: - - Added the class `authenticationCodeTypeMissedCall`, describing an authentication code delivered by - a canceled phone call to the given number. The last digits of the phone number that calls are the code that - must be entered manually by the user. - - Added the field `allow_missed_call` to the class `phoneNumberAuthenticationSettings`. - - Added the read-only option "authentication_token", which can be received when logging out and contains - an authentication token to be used on subsequent authorizations. - - Added the field `authentication_tokens` to the class `phoneNumberAuthenticationSettings`. -* Added support for resetting the password from an active session: - - Added the class `ResetPasswordResult` and the method `resetPassword`. - - Added the method `cancelPasswordReset`, which can be used to cancel a pending password reset. - - Added the field `pending_reset_date` to the class `passwordState`. -* Added the ability to set a new 2-step verification password after recovering a lost password using - a recovery email address: - - Added the parameters `new_password` and `new_hint` to the methods `recoverAuthenticationPassword` and - `recoverPassword`. - - Added the method `checkAuthenticationPasswordRecoveryCode`. - - Added the method `checkPasswordRecoveryCode`. -* Added the class `chatActionChoosingSticker` to the types of chat action. -* Added the class `backgroundFillFreeformGradient` to the types of background fill. -* Added the field `is_inverted` to the class `backgroundTypePattern` for inverted patterns for dark themes. -* Added support for chat themes: - - Added the field `theme_name` to the class `chat`. - - Added the method `setChatTheme`. - - Added the update `updateChatTheme`, received when a theme was changed in a chat. - - Added the class `messageChatSetTheme` to the types of message content. - - Added the class `pushMessageContentChatSetTheme` to the types of push message content. - - Added the class `themeSettings`, representing basic theme settings. - - Added the class `chatTheme`, representing a chat theme. - - Added the update `updateChatThemes`, received when the list of available chat themes changes. -* Added the ability for regular users to create sticker sets: - - Allowed to use the methods `uploadStickerFile` and `createNewStickerSet` as regular users. - - Replaced the parameter `png_sticker` in the method `uploadStickerFile` with the parameter `sticker` of - the type `InputSticker`. - - Added the parameter `source` to the method `createNewStickerSet`. - - Added the method `getSuggestedStickerSetName`. - - Added the class `CheckStickerSetNameResult` and the method `checkStickerSetName` for checking a sticker set name - before creating a sticker set. -* Added support for importing chat history from an external source: - - Added the method `importMessages`. - - Added the method `getMessageImportConfirmationText`. - - Added the class `MessageFileType` and the method `getMessageFileType`, which can be used to check whether - the format of a file with exported message history is supported. - - Added the class `messageForwardOriginMessageImport` to the types of forwarded message origins for - imported messages. - - Added the parameter `for_import` to the method `createNewSupergroupChat`, which needs to be set to true whenever - the chat is created for a subsequent message history import. -* Added new types of suggested actions: - - Added the class `suggestedActionSetPassword`, suggesting the user to set a 2-step verification password to be able - to log in again before the specified number of days pass. - - Added the class `suggestedActionCheckPassword`, suggesting the user to check whether they still remember - their 2-step verification password. - - Added the class `suggestedActionViewChecksHint`, suggesting the user to see a hint about the meaning of - one and two check marks on sent messages. -* Added the method `getSuggestedFileName`, which returns a suggested name for saving a file in a given directory. -* Added the method `deleteAllCallMessages`. -* Added the method `deleteChatMessagesByDate`, which can be used to delete all messages between the specified dates in - a chat. -* Added the field `unread_message_count` to the class `messageThreadInfo`. -* Added the field `has_private_forwards` to the class `userFullInfo`. -* Added the field `description` to the class `userFullInfo`, containing description of the bot. -* Added the field `emoji` to the class `inputMessageSticker`, allowing to specify the emoji that was used to choose - the sent sticker. -* Added the method `banChatMember` that can be used to ban chat members instead of the method `setChatMemberStatus` and - allows to revoke messages from the banned user in basic groups. -* Allowed to use the method `setChatMemberStatus` for adding chat members. -* Removed the parameter `user_id` from the method `reportSupergroupSpam`. Messages from different senders can now - be reported simultaneously. -* Added the field `feedback_link` to the class `webPageInstantView`. -* Added the method `getApplicationDownloadLink`, returning the link for downloading official Telegram applications. -* Removed unusable search message filters `searchMessagesFilterCall` and `searchMessagesFilterMissedCall`. -* Removed the method `getChatStatisticsUrl`. -* Removed the method `getInviteText` in favor of the method `getApplicationDownloadLink`. -* Added the field `chat_type` to the update `updateNewInlineQuery` for bots. -* Added the update `updateChatMember` for bots. -* Improved the appearance of the [TDLib build instructions generator](https://tdlib.github.io/td/build.html). -* Added support for the illumos operating system. -* Added support for network access on real watchOS devices. -* Added support for OpenSSL 3.0. -* Improved the iOS/watchOS/tvOS build example to generate a universal XCFramework. -* Added support for ARM64 simulators in the iOS/watchOS/tvOS build example. -* Added the option `-release_only` to the build script for Universal Windows Platform, allowing to build - TDLib SDK for Universal Windows Platform in release-only mode. -* Rewritten the native .NET binding using the new `ClientManager` interface: - - Replaced the method `Client.send` with a static method that must be called exactly once in a dedicated thread. - The callbacks `ClientResultHandler` will be called in this thread for all clients. - - Removed the function `Client.Dispose()` from the C++/CLI native binding. The objects of the type `Client` - don't need to be explicitly disposed anymore. -* Rewritten the C binding using the new `ClientManager` interface: - - Renamed the fields `id` in the structs `TdRequest` and `TdResponse` to `request_id`. - - Added the field `client_id` to the struct `TdResponse`. - - Replaced the method `TdCClientCreate` with the method `TdCClientCreateId`. - - Replaced the parameter `instance` with the parameter `client_id` in the function `TdCClientSend`. - - Added the methods `TdCClientReceive` and `TdCClientExecute`. - - Removed the methods `TdCClientSendCommandSync`, `TdCClientDestroy`, and `TdCClientSetVerbosity`. - ------------------------------------------------------------------------------------------------------------------------ - -Changes in 1.7.0 (28 Nov 2020): - -* Added a new simplified JSON interface in which updates and responses to requests from all TDLib instances - are received in the same thread: - - The TDLib instance is identified by the unique `client_id` identifier, which is returned by the method - `td_create_client_id`. - - Use the method `td_send` to send a request to a specified client. The TDLib instance is created on the first - request sent to it. - - Use the method `td_receive` to receive updates and request responses from TDLib. The response will contain - the identifier of the client from which the event was received in the field "@client_id". - - Use the method `td_execute` to synchronously execute suitable TDLib methods. -* Added support for adding chats to more than one chat list: - - Added the class `chatPosition`, describing the position of the chat within a chat list. - - Replaced the fields `chat_list`, `order`, `is_sponsored` and `is_pinned` in the class `chat` with - the field `positions`, containing a list of the chat positions in various chat list. - - Replaced the field `order` with the field `positions` in the updates `updateChatLastMessage` and - `updateChatDraftMessage`. - - Added the update `updateChatPosition`. - - Removed the superfluous updates `updateChatChatList`, `updateChatIsSponsored`, `updateChatOrder` and - `updateChatIsPinned`. - - Added the parameter `chat_list` to the method `toggleChatIsPinned`. - - Added the class `chatLists`, containing a list of chat lists. - - Added the method `getChatListsToAddChat`, returning all chat lists to which a chat can be added. - - Added the method `addChatToList`, which can be used to add a chat to a chat list. - - Remove the method `setChatChatList`. -* Added support for chat filters: - - Added the new chat list type `chatListFilter`. - - Added the classes `chatFilterInfo` and `chatFilter`, describing a filter of user chats. - - Added the update `updateChatFilters`, which is sent when the list of chat filters is changed. - - Added the methods `createChatFilter`, `editChatFilter` and `deleteChatFilter` for managing chat filters. - - Added the method `reorderChatFilters` for changing the order of chat filters. - - Added the method `getChatFilter`, returning full information about a chat filter. - - Added the synchronous method `getChatFilterDefaultIconName`. - - Added the classes `recommendedChatFilter` and `recommendedChatFilters`. - - Added the method `getRecommendedChatFilters`, returning a list of recommended chat filters. -* Added support for messages sent on behalf of chats instead of users: - - Added the class `MessageSender`, representing a user or a chat which sent a message. - - Added the class `MessageSenders`, representing a list of message senders. - - Replaced the field `sender_user_id` with the field `sender` of the type `MessageSender` in the classes `message` - and `notificationTypeNewPushMessage`. - - Added the class `messageForwardOriginChat`, which describe a chat as the original sender of a message. - - Added the ability to search messages sent by a chat by replacing the parameter `sender_user_id` with - the parameter `sender` of the type `MessageSender` in the method `searchChatMessages`. - - Added the ability to specify a chat as a local message sender by replacing the parameter `sender_user_id` with - the parameter `sender` of the type `MessageSender` in the method `addLocalMessage`. -* Added support for video calls: - - Added the class `callServer`, describing a server for relaying call data. - - Added the classes `callServerTypeTelegramReflector` and `callServerTypeWebrtc`, representing different types of - supported call servers. - - Replaced the field `connections` with the field `servers` in the class `callStateReady`. - - Removed the class `callConnection`. - - Added the update `updateNewCallSignalingData`. - - Added the method `sendCallSignalingData`. - - Added the field `supports_video_calls` to the class `userFullInfo`. - - Added the field `is_video` to the class `messageCall`. - - Added the field `is_video` to the class `call`. - - Added the parameter `is_video` to the method `createCall`. - - Added the parameter `is_video` to the method `discardCall`. - - Added two new types of call problems `callProblemDistortedVideo` and `callProblemPixelatedVideo`. - - Added the field `library_versions` to the class `callProtocol`, which must be used to specify all supported - call library versions. -* Added support for multiple pinned messages and the ability to pin messages in private chats: - - Added the ability to pin messages in all private chats. - - Added the ability to pin mutiple messages in all chats. - - Added the field `is_pinned` to the class `message`. - - Added the update `updateMessageIsPinned`. - - Added the parameter `only_for_self` to the method `pinChatMessage`, allowing to pin messages in private chats for - one side only. - - Added the ability to find pinned messages in a chat using the filter `searchMessagesFilterPinned`. - - Added the parameter `message_id` to the method `unpinChatMessage`. - - Added the field `message` to the class `chatEventMessageUnpinned`. - - Added the method `unpinAllChatMessages`, which can be used to simultaneously unpin all pinned messages in a chat. - - Documented that notifications about new pinned messages are always silent in channels and private chats. - - The method `getChatPinnedMessage` now returns the newest pinned message in the chat. - - Removed the field `pinned_message_id` from the class `chat`. - - Removed the update `updateChatPinnedMessage`. -* Improved thumbnail representation and added support for animated MPEG4 thumbnails: - - Added the class `ThumbnailFormat`, representing the various supported thumbnail formats. - - Added the class `thumbnail`, containing information about a thumbnail. - - Changed the type of all thumbnail fields from `photoSize` to `thumbnail`. - - Added support for thumbnails in the format `thumbnailFormatMpeg4` for some animations and videos. - - Replaced the classes `inputInlineQueryResultAnimatedGif` and `inputInlineQueryResultAnimatedMpeg4` with - the generic class `inputInlineQueryResultAnimation`. - - Added support for animated thumbnails in the class `inputInlineQueryResultAnimation`. - - The class `photoSize` is now only used for JPEG images. -* Improved support for user profile photos and chat photos: - - Added the field `photo` to the class `userFullInfo`, containing full information about the user photo. - - Added the field `photo` to the class `basicGroupFullInfo`, containing full information about the group photo. - - Added the field `photo` to the class `supergroupFullInfo`, containing full information about the group photo. - - Renamed the class `chatPhoto` to `chatPhotoInfo`. - - Added the field `has_animation` to the classes `profilePhoto` and `chatPhotoInfo`, which is set to true for - animated chat photos. - - Added the classes `chatPhoto` and `chatPhotos`. - - Added minithumbnail support via the field `minithumbnail` in the class `chatPhoto`. - - Added the class `animatedChatPhoto`. - - Added animated chat photo support via the field `animation` in the class `chatPhoto`. - - Removed the classes `userProfilePhoto` and `userProfilePhotos`. - - Changed the type of the field `photo` in the class `messageChatChangePhoto` to `chatPhoto`. - - Changed the type of the fields `old_photo` and `new_photo` in the class `chatEventPhotoChanged` to `chatPhoto`. - - Changed the return type of the method `getUserProfilePhotos` to `chatPhotos`. - - Added the class `InputChatPhoto`, representing a chat or a profile photo to set. - - Changed the type of the parameter `photo` in the methods `setProfilePhoto` and `setChatPhoto` to - the `InputChatPhoto`. - - Added the ability to explicitly re-use previously set profile photos using the class `inputChatPhotoPrevious`. - - Added the ability to set animated chat photos using the class `inputChatPhotoAnimated`. -* Added support for message threads in supergroups and channel comments: - - Added the field `message_thread_id` to the class `message`. - - Added the class `messageThreadInfo`, containing information about a message thread. - - Added the class `messageReplyInfo`, containing information about replies to a message. - - Added the field `reply_info` to the class `messageInteractionInfo`, containing information about message replies. - - Added the field `can_get_message_thread` to the class `message`. - - Added the method `getMessageThread`, returning information about the message thread to which a message belongs. - - Added the method `getMessageThreadHistory`, returning messages belonging to a message thread. - - Added the parameter `message_thread_id` to the methods `sendMessage`, `sendMessageAlbum` and - `sendInlineQueryResultMessage` for sending messages within a thread. - - Added the parameter `message_thread_id` to the method `searchChatMessages` to search messages within a thread. - - Added the parameter `message_thread_id` to the method `viewMessages`. - - Added the parameter `message_thread_id` to the method `setChatDraftMessage`. - - Added the parameter `message_thread_id` to the method `sendChatAction` to send chat actions to a thread. - - Added the field `message_thread_id` to the update `updateUserChatAction`. -* Improved support for message albums: - - Added support for sending and receiving messages of the types `messageAudio` and `messageDocument` as albums. - - Added automatic grouping into audio or document albums in the method `forwardMessages` if all forwarded or - copied messages are of the same type. - - Removed the parameter `as_album` from the method `forwardMessages`. Forwarded message albums are now determined - automatically. -* Simplified usage of methods generating an HTTP link to a message: - - Added the class `messageLink`, representing an HTTP link to a message. - - Combined the methods `getPublicMessageLink` and `getMessageLink` into the method `getMessageLink`, which - now returns a public link to the message if possible and a private link otherwise. The combined method is - an offline method now. - - Added the parameter `for_comment` to the method `getMessageLink`, which allows to get a message link to the message - that opens it in a thread. - - Removed the class `publicMessageLink`. - - Added the field `for_comment` to the class `messageLinkInfo`. - - Added the separate method `getMessageEmbeddingCode`, returning an HTML code for embedding a message. -* Added the ability to block private messages sent via the @replies bot from chats: - - Added the field `is_blocked` to the class `chat`. - - Added the update `updateChatIsBlocked`. - - Added the method `blockMessageSenderFromReplies`. - - Replaced the methods `blockUser` and `unblockUser` with the method `toggleMessageSenderIsBlocked`. - - Replaced the method `getBlockedUsers` with the method `getBlockedMessageSenders`. -* Added support for incoming messages which are replies to messages in different chats: - - Added the field `reply_in_chat_id` to the class `message`. - - The method `getRepliedMessage` can now return the replied message in a different chat. -* Renamed the class `sendMessageOptions` to `messageSendOptions`. -* Added the new `tdapi` static library, which needs to be additionally linked in when static linking is used. -* Changed the type of the field `value` in the class `optionValueInteger` from `int32` to `int64`. -* Changed the type of the field `description` in the class `webPage` from `string` to `formattedText`. -* Improved Instant View support: - - Added the field `view_count` to the class `webPageInstantView`. - - Added the class `richTextAnchorLink`, containing a link to an anchor on the same page. - - Added the class `richTextReference`, containing a reference to a text on the same page. - - Removed the field `text` from the class `richTextAnchor`. - - Removed the field `url` which is no longer needed from the class `webPageInstantView`. -* Allowed the update `updateServiceNotification` to be sent before authorization is completed. -* Disallowed to pass messages in non-strictly increasing order to the method `forwardMessages`. -* Improved sending copies of messages: - - Added the class `messageCopyOptions` and the field `copy_options` to the class `inputMessageForwarded`. - - Removed the fields `send_copy` and `remove_caption` from the class `inputMessageForwarded`. - - Allowed to replace captions in copied messages using the fields `replace_caption` and `new_caption` in - the class `messageCopyOptions`. - - Allowed to specify `reply_to_message_id` when sending a copy of a message. - - Allowed to specify `reply_markup` when sending a copy of a message. -* Allowed passing multiple input language codes to `searchEmojis` by replacing the parameter `input_language_code` with - the parameter `input_language_codes`. -* Added support for public service announcements: - - Added the class `ChatSource` and the field `source` to the class `chatPosition`. - - Added the new type of chat source `chatSourcePublicServiceAnnouncement`. - - Added the field `public_service_announcement_type` to the class `messageForwardInfo`. -* Added support for previewing of private supergroups and channels by their invite link. - - The field `chat_id` in the class `chatInviteLinkInfo` is now non-zero for private supergroups and channels to which - the temporary read access is granted. - - Added the field `accessible_for` to the class `chatInviteLinkInfo`, containing the amount of time for which - read access to the chat will remain available. -* Improved methods for message search: - - Replaced the field `next_from_search_id` with a string field `next_offset` in the class `foundMessages`. - - Added the field `total_count` to the class `foundMessages`; can be -1 if the total count of matching messages is - unknown. - - Replaced the parameter `from_search_id` with the parameter `offset` in the method `searchSecretMessages`. - - Added the parameter `filter` to the method `searchMessages`. - - Added the parameters `min_date` and `max_date` to the method `searchMessages` to search messages sent only within - a particular timeframe. -* Added pkg-config file generation for all installed libraries. -* Added automatic operating system version detection. Use an empty field `system_version` in - the class `tdlibParameters` for the automatic detection. -* Increased maximum file size from 1500 MB to 2000 MB. -* Added support for human-friendly Markdown formatting: - - Added the synchronous method `parseMarkdown` for human-friendly parsing of text entities. - - Added the synchronous method `getMarkdownText` for replacing text entities with a human-friendly - Markdown formatting. - - Added the writable option "always_parse_markdown" which enables automatic parsing of text entities in - all `inputMessageText` objects. -* Added support for dice with random values in messages: - - Added the class `messageDice` to the types of message content; contains a dice. - - Added the class `DiceStickers`, containing animated stickers needed to show the dice. - - Added the class `inputMessageDice` to the types of new input message content; can be used to send a dice. - - Added the update `updateDiceEmojis`, containing information about supported dice emojis. -* Added support for chat statistics in channels and supergroups: - - Added the field `can_get_statistics` to the class `supergroupFullInfo`. - - Added the class `ChatStatistics`, which represents a supergroup or a channel statistics. - - Added the method `getChatStatistics` returning detailed statistics about a chat. - - Added the classes `chatStatisticsMessageInteractionInfo`, `chatStatisticsAdministratorActionsInfo`, - `chatStatisticsMessageSenderInfo` and `chatStatisticsInviterInfo` representing various parts of chat statistics. - - Added the class `statisticalValue` describing recent changes of a statistical value. - - Added the class `StatisticalGraph` describing a statistical graph. - - Added the method `getStatisticalGraph`, which can be used for loading asynchronous or zoomed in statistical graphs. - - Added the class `dateRange` representing a date range for which statistics are available. - - Removed the field `can_view_statistics` from the class `supergroupFullInfo` and marked - the method `getChatStatisticsUrl` as disabled and not working. -* Added support for detailed statistics about interactions with messages: - - Added the class `messageInteractionInfo`, containing information about message views, forwards and replies. - - Added the field `interaction_info` to the class `message`. - - Added the update `updateMessageInteractionInfo`. - - Added the field `can_get_statistics` to the class `message`. - - Added the class `messageStatistics`. - - Added the method `getMessageStatistics`. - - Added the method `getMessagePublicForwards`, returning all forwards of a message to public channels. - - Removed the now superfluous field `views` from the class `message`. - - Removed the now superfluous update `updateMessageViews`. -* Improved support for native polls: - - Added the field `explanation` to the class `pollTypeQuiz`. - - Added the fields `close_date` and `open_period` to the class `poll`. - - Added the fields `close_date` and `open_period` to the class `inputMessagePoll`; for bots only. - - Increased maximum poll question length to 300 characters for bots. -* Added support for anonymous administrators in supergroups: - - Added the field `is_anonymous` to the classes `chatMemberStatusCreator` and `chatMemberStatusAdministrator`. - - The field `author_signature` in the class `message` can now contain a custom title of the anonymous administrator - that sent the message. -* Added support for a new type of inline keyboard buttons, requiring user password entry: - - Added the class `inlineKeyboardButtonTypeCallbackWithPassword`, representing a button requiring password entry from - a user. - - Added the class `callbackQueryPayloadDataWithPassword`, representing new type of callback button payload, - which must be used for the buttons of the type `inlineKeyboardButtonTypeCallbackWithPassword`. -* Added support for making the location of the user public: - - Added the writable option "is_location_visible" to allow other users see location of the current user. - - Added the method `setLocation`, which should be called if `getOption("is_location_visible")` is true and location - changes by more than 1 kilometer. -* Improved Notification API: - - Added the field `sender_name` to the class `notificationTypeNewPushMessage`. - - Added the writable option "disable_sent_scheduled_message_notifications" for disabling notifications about - outgoing scheduled messages that were sent. - - Added the field `is_outgoing` to the class `notificationTypeNewPushMessage` for recognizing - outgoing scheduled messages that were sent. - - Added the fields `has_audios` and `has_documents` to the class `pushMessageContentMediaAlbum`. -* Added the field `date` to the class `draftMessage`. -* Added the update `updateStickerSet`, which is sent after a sticker set is changed. -* Added support for pagination in trending sticker sets: - - Added the parameters `offset` and `limit` to the method `getTrendingStickerSets`. - - Changed the field `sticker_sets` in the update `updateTrendingStickerSets` to contain only the prefix of - trending sticker sets. -* Messages that failed to send can now be found using the filter `searchMessagesFilterFailedToSend`. -* Added the ability to disable automatic server-side file type detection using the new field - `disable_content_type_detection` of the class `inputMessageDocument`. -* Improved chat action bar: - - Added the field `can_unarchive` to the classes `chatActionBarReportSpam` and `chatActionBarReportAddBlock`, - which is true whenever the chat was automatically archived. - - Added the field `distance` to the class `chatActionBarReportAddBlock`, - which denotes the distance between the users. -* Added support for actions suggested to the user by the server: - - Added the class `SuggestedAction`, representing possible actions suggested by the server. - - Added the update `updateSuggestedActions`. - - Added the method `hideSuggestedAction`, which can be used to dismiss a suggested action. -* Supported attaching stickers to animations: - - Added the field `has_stickers` to the class `animation`. - - Added the field `added_sticker_file_ids` to the class `inputMessageAnimation`. -* Added methods for phone number formatting: - - Added the class `countryInfo`, describing a country. - - Added the class `countries`, containing a list of countries. - - Added the method `getCountries`, returning a list of all existing countries. - - Added the class `phonenumberinfo` and the method `getPhoneNumberInfo`, which can be used to format a phone number - according to local rules. -* Improved location support: - - Added the field `horizontal_accuracy` to the class `location`. - - Added the field `heading` to the classes `messageLocation` and `inputMessageLocation` for live locations. - - Added the parameter `heading` to the methods `editMessageLiveLocation` and `editInlineMessageLiveLocation`. -* Added support for proximity alerts in live locations: - - Added the field `proximity_alert_radius` to the classes `messageLocation` and `inputMessageLocation`. - - Added the parameter `proximity_alert_radius` to the methods `editMessageLiveLocation` and - `editInlineMessageLiveLocation`. - - Added the new message content `messageProximityAlertTriggered`, received whenever a proximity alert is triggered. -* Added `CentOS 7` and `CentOS 8` operating systems to the - [TDLib build instructions generator](https://tdlib.github.io/td/build.html). -* Added the CMake configuration option TD_ENABLE_MULTI_PROCESSOR_COMPILATION, which can be used to enable parallel - build with MSVC. -* Added support for sending and receiving messages in secret chats with silent notifications. -* Added the field `progressive_sizes` to the class `photo` to allow partial progressive JPEG photo download. -* Added the field `redirect_stderr` to the class `logStreamFile` to allow explicit control over stderr redirection to - the log file. -* Added the read-only option "can_archive_and_mute_new_chats_from_unknown_users", which can be used to check, whether - the option "archive_and_mute_new_chats_from_unknown_users" can be changed. -* Added the writable option "archive_and_mute_new_chats_from_unknown_users", which can be used to automatically archive - and mute new chats from non-contacts. The option can be set only if the option - "can_archive_and_mute_new_chats_from_unknown_users" is true. -* Added the writable option "message_unload_delay", which can be used to change the minimum delay before messages are - unloaded from the memory. -* Added the writable option "disable_persistent_network_statistics", which can be used to disable persistent - network usage statistics, significantly reducing disk usage. -* Added the writable option "disable_time_adjustment_protection", which can be used to disable protection from - external time adjustment, significantly reducing disk usage. -* Added the writable option "ignore_default_disable_notification" to allow the application to manually specify the - `disable_notification` option each time when sending messages instead of following the default per-chat settings. -* Added the read-only option "telegram_service_notifications_chat_id", containing the identifier of - the Telegram service notifications chat. -* Added the read-only option "replies_bot_chat_id", containing the identifier of the @replies bot. -* Added the read-only option "group_anonymous_bot_user_id", containing the identifier of the bot which is shown as - the sender of anonymous group messages when viewed from an outdated client. -* Added the new venue provider value "gplaces" for Google Places. -* Added the parameter `return_deleted_file_statistics` to the method `optimizeStorage` to return information about - the files that were deleted instead of the ones that were not. -* Added the ability to search for supergroup members to mention by their name and username: - - Added the new filter `supergroupMembersFilterMention` for the method `getSupergroupMembers`. - - Added the new filter `chatMembersFilterMention` for the method `searchChatMembers`. -* Added support for highlighting bank card numbers: - - Added the new text entity `textEntityTypeBankCardNumber`. - - Added the classes `bankCardInfo` and `bankCardActionOpenUrl`, containing information about a bank card. - - Added the method `getBankCardInfo`, returning information about a bank card. -* Improved methods for managing sticker sets by bots: - - Added the method `setStickerSetThumbnail`. - - Added the ability to create new animated sticker sets and add new stickers to them by adding - the class `inputStickerAnimated`. - - Renamed the class `inputSticker` to `inputStickerStatic`. - - Renamed the field `png_sticker` to `sticker` in the class `inputStickerStatic`. -* Added the method `setCommands` for bots. -* Added the method `getCallbackQueryMessage` for bots. -* Added support for starting bots in private chats through `sendBotStartMessage`. -* Added the field `total_count` to the class `chats`. The field should have a precise value for the responses of - the methods `getChats`, `searchChats` and `getGroupsInCommon`. -* Added the update `updateAnimationSearchParameters`, containing information about animation search parameters. -* Documented that `getRepliedMessage` can be used to get a pinned message, a game message, or an invoice message for - messages of the types `messagePinMessage`, `messageGameScore`, and `messagePaymentSuccessful` respectively. -* Added guarantees that the field `member_count` in the class `supergroup` is known if the supergroup was received from - the methods `searchChatsNearby`, `getInactiveSupergroupChats`, `getSuitableDiscussionChats`, `getGroupsInCommon`, or - `getUserPrivacySettingRules`. -* Updated SQLCipher to 4.4.0. -* Updated dependencies in the prebuilt TDLib for Android: - - Updated SDK to SDK 30. - - Updated NDK to r21d, which dropped support for 32-bit ARM devices without Neon support. -* Updated recommended `emsdk` version for `tdweb` building to the 2.0.6. -* Removed the ability to change the update handler after client creation in native .NET binding, Java example and - prebuilt library for Android. -* Removed the ability to change the default exception handler after client creation in Java example and - prebuilt library for Android. -* Removed the ability to close Client using close() method in Java example and prebuilt library for Android. - Use the method TdApi.close() instead. -* Changed license of source code in prebuilt library for Android to Boost Software License, Version 1.0. - ------------------------------------------------------------------------------------------------------------------------ - -Changes in 1.6.0 (31 Jan 2020): - -* Added support for multiple chat lists. Currently, only two chat lists Main and Archive are supported: - - Added the class `ChatList`, which represents a chat list and could be `chatListMain` or `chatListArchive`. - - Added the field `chat_list` to the class `chat`, denoting the chat list to which the chat belongs. - - Added the parameter `chat_list` to the methods `getChats`, `searchMessages` and `setPinnedChats`. - - Added the field `chat_list` to the updates `updateUnreadMessageCount` and `updateUnreadChatCount`. - - Added the field `total_count` to the update `updateUnreadChatCount`, containing the total number of chats in - the list. - - Added the update `updateChatChatList`, which is sent after a chat is moved to or from a chat list. - - Added the method `setChatChatList`, which can be used to move a chat between chat lists. - - Added the option `pinned_archived_chat_count_max` for the maximum number of pinned chats in the Archive chat list. -* Added support for scheduled messages: - - Added the classes `messageSchedulingStateSendAtDate` and `messageSchedulingStateSendWhenOnline`, - representing the scheduling state of a message. - - Added the field `scheduling_state` to the class `message`, which allows to distinguish between scheduled and - ordinary messages. - - The update `updateNewMessage` can now contain a scheduled message and must be handled appropriately. - - The updates `updateMessageContent`, `updateDeleteMessages`, `updateMessageViews`, `updateMessageSendSucceeded`, - `updateMessageSendFailed`, and `updateMessageSendAcknowledged` can now contain identifiers of scheduled messages. - - Added the class `sendMessageOptions`, which contains options for sending messages, - including the scheduling state of the messages. - - Replaced the parameters `disable_notification` and `from_background` in the methods `sendMessage`, - `sendMessageAlbum`, `sendInlineQueryResultMessage`, and `forwardMessages` with the new field `options` of - the type `sendMessageOptions`. - - Added the method `editMessageSchedulingState`, which can be used to reschedule a message or send it immediately. - - Added the method `getChatScheduledMessages`, which returns all scheduled messages in a chat. - - Added the field `has_scheduled_messages` to the class `chat`. - - Added the update `updateChatHasScheduledMessages`, which is sent whenever the field `has_scheduled_messages` - changes in a chat. - - Added support for reminders in Saved Messages and notifications about other sent scheduled messages in - the [Notification API](https://core.telegram.org/tdlib/notification-api/). -* Added support for adding users without a known phone number to the list of contacts: - - Added the method `addContact` for adding or renaming contacts without a known phone number. - - Added the field `need_phone_number_privacy_exception` to the class `userFullInfo`, containing the default value for - the second parameter of the method `addContact`. - - Added the fields `is_contact` and `is_mutual_contact` to the class `user`. - - Removed the class `LinkState` and the fields `outgoing_link` and `incoming_link` from the class `user`. -* Improved support for the top chat action bar: - - Added the class `ChatActionBar`, representing all possible types of the action bar. - - Added the field `action_bar` to the class `chat`. - - Removed the legacy class `chatReportSpamState`. - - Removed the legacy methods `getChatReportSpamState` and `changeChatReportSpamState`. - - Added the update `updateChatActionBar`. - - Added the method `removeChatActionBar`, which allows to dismiss the action bar. - - Added the method `sharePhoneNumber`, allowing to share the phone number of the current user with a mutual contact. - - Added the new reason `chatReportReasonUnrelatedLocation` for reporting location-based groups unrelated to - their stated location. -* Improved support for text entities: - - Added the new types of text entities `textEntityTypeUnderline` and `textEntityTypeStrikethrough`. - - Added support for nested entities. Entities can be nested, but must not mutually intersect with each other. - Pre, Code and PreCode entities can't contain other entities. Bold, Italic, Underline and Strikethrough entities can - contain and be contained in all other entities. All other entities can't contain each other. - - Added the field `version` to the method `textParseModeMarkdown`. Versions 0 and 1 correspond to Bot API Markdown - parse mode, version 2 to Bot API MarkdownV2 parse mode with underline, strikethrough and nested entities support. - - The new entity types and nested entities are supported in secret chats also if its layer is at least 101. -* Added support for native non-anonymous, multiple answer, and quiz-style polls: - - Added support for quiz-style polls, which has exactly one correct answer option and can be answered only once. - - Added support for regular polls, which allows multiple answers. - - Added the classes `pollTypeRegular` and `pollTypeQuiz`, representing the possible types of a poll. - - Added the field `type` to the classes `poll` and `inputMessagePoll`. - - Added support for non-anonymous polls with visible votes by adding the field `is_anonymous` to the classes `poll` - and `inputMessagePoll`. - - Added the method `getPollVoters` returning users that voted for the specified option in a non-anonymous poll. - - Added the new reply markup keyboard button `keyboardButtonTypeRequestPoll`. - - Added the field `is_regular` to the class `pushMessageContentPoll`. - - Added the update `updatePollAnswer` for bots only. - - Added the field `is_closed` to the class `inputMessagePoll`, which can be used by bots to send a closed poll. -* Clarified in the documentation that file remote ID is guaranteed to be usable only if the corresponding file is - still accessible to the user and is known to TDLib. For example, if the file is from a message, then the message - must be not deleted and accessible to the user. If the file database is disabled, then the corresponding object with - the file must be preloaded by the client. -* Added support for administrator custom titles: - - Added the field `custom_title` to `chatMemberStatusCreator` and `chatMemberStatusAdministrator` classes. - - Added the classes `chatAdministrator` and `chatAdministrators`, containing user identifiers along with - their custom administrator title and owner status. - - Replaced the result type of the method `getChatAdministrators` with `chatAdministrators`. -* Improved Instant View support: - - Added the new web page block `pageBlockVoiceNote`. - - Changed value of invisible cells in `pageBlockTableCell` to null. - - Added the field `is_cached` to the class `richTextUrl`. -* Improved support for chat backgrounds: - - Added the classes `backgroundFillSolid` for solid color backgrounds and `backgroundFillGradient` for - gradient backgrounds. - - Added support for TGV (gzipped subset of SVG with MIME type "application/x-tgwallpattern") background patterns - in addition to PNG patterns. Background pattern thumbnails are still always in PNG format. - - Replaced the field `color` in the class `backgroundTypePattern` with the field `fill` of type `BackgroundFill`. - - Replaced the class `backgroundTypeSolid` with the class `backgroundTypeFill`. -* Added support for discussion groups for channel chats: - - Added the field `linked_chat_id` to the class `supergroupFullInfo` containing the identifier of a discussion - supergroup for the channel, or a channel, for which the supergroup is the designated discussion supergroup. - - Added the field `has_linked_chat` to the class `supergroup`. - - Added the method `getSuitableDiscussionChats`, which returns a list of chats which can be assigned as - a discussion group for a channel by the current user. - - Added the method `setChatDiscussionGroup`, which can be used to add or remove a discussion group from a channel. - - Added the class `chatEventLinkedChatChanged` representing a change of the linked chat in the chat event log. -* Added support for slow mode in supergroups: - - Added the field `is_slow_mode_enabled` to the class `supergroup`. - - Added the field `slow_mode_delay` to the class `supergroupFullInfo`. - - Added the method `setChatSlowModeDelay`, which can be used to change the slow mode delay setting in a supergroup. - - Added the class `chatEventSlowModeDelayChanged` representing a change of the slow mode delay setting in - the chat event log. -* Improved privacy settings support: - - Added the classes `userPrivacySettingRuleAllowChatMembers` and `userPrivacySettingRuleRestrictChatMembers` - to include or exclude all group members in a privacy setting rule. - - Added the class `userPrivacySettingShowPhoneNumber` for managing the visibility of the user's phone number. - - Added the class `userPrivacySettingAllowFindingByPhoneNumber` for managing whether the user can be found by - their phone number. -* Added the method `checkCreatedPublicChatsLimit` for checking whether the maximum number of owned public chats - has been reached. -* Added support for transferring ownership of supergroup and channel chats: - - Added the method `transferChatOwnership`. - - Added the class `CanTransferOwnershipResult` and the method `canTransferOwnership` for checking - whether chat ownership can be transferred from the current session. -* Added support for location-based supergroups: - - Added the class `chatLocation`, which contains the location to which the supergroup is connected. - - Added the field `has_location` to the class `supergroup`. - - Added the field `location` to the class `supergroupFullInfo`. - - Added the ability to create location-based supergroups via the new field `location` in - the method `createNewSupergroupChat`. - - Added the method `setChatLocation`, which allows to change location of location-based supergroups. - - Added the field `can_set_location` to the class `supergroupFullInfo`. - - Added the class `PublicChatType`, which can be one of `publicChatTypeHasUsername` or - `publicChatTypeIsLocationBased`. - - Added the parameter `type` to the method `getCreatedPublicChats`, which allows to get location-based supergroups - owned by the user. - - Supported location-based supergroups as public chats where appropriate. - - Added the class `chatEventLocationChanged` representing a change of the location of a chat in the chat event log. -* Added support for searching chats and users nearby: - - Added the classes `chatNearby` and `chatsNearby`, containing information about chats along with - the distance to them. - - Added the method `searchChatsNearby`, which returns chats and users nearby. - - Added the update `updateUsersNearby`, which is sent 60 seconds after a successful `searchChatsNearby` request. -* Improved support for inline keyboard buttons of the type `inlineKeyboardButtonTypeLoginUrl`: - - Added the class `LoginUrlInfo` and the method `getLoginUrlInfo`, which allows to get information about - an inline button of the type `inlineKeyboardButtonTypeLoginUrl`. - - Added the method `getLoginUrl` for automatic authorization on the target website. -* Improved support for content restrictions: - - The field `restriction_reason` in the classes `user` and `channel` now contains only a human-readable description - why access must be restricted. It is non-empty if and only if access to the chat needs to be restricted. - - Added the field `restriction_reason` to the class `message`. It is non-empty if and only if access to the message - needs to be restricted. - - Added the writable option `ignore_platform_restrictions`, which can be set in non-store apps to ignore restrictions - specific to the currently used operating system. - - Added the writable option `ignore_sensitive_content_restrictions`, which can be set to show sensitive content on - all user devices. `getOption("ignore_sensitive_content_restrictions")` can be used to fetch the actual value of - the option, the option will not be immediately updated after a change from another device. - - Added the read-only option `can_ignore_sensitive_content_restrictions`, which can be used to check, whether - the option `ignore_sensitive_content_restrictions` can be changed. -* Added support for QR code authentication for already registered users: - - Added the authorization state `authorizationStateWaitOtherDeviceConfirmation`. - - Added the method `requestQrCodeAuthentication`, which can be used in the `authorizationStateWaitPhoneNumber` state - instead of the method `setAuthenticationPhoneNumber` to request QR code authentication. - - Added the method `confirmQrCodeAuthentication` for authentication confirmation from another device. -* Added the update `updateMessageLiveLocationViewed`, which is supposed to trigger an edit of the corresponding - live location. -* Added the parameter `input_language_code` to the method `searchEmojis`. -* Added the method `getInactiveSupergroupChats`, to be used when the user receives a CHANNELS_TOO_MUCH error after - reaching the limit on the number of joined supergroup and channel chats. -* Added the field `unique_id` to the class `remoteFile`, which can be used to identify the same file for - different users. -* Added the new category of top chat list `topChatCategoryForwardChats`. -* Added the read-only option `animated_emoji_sticker_set_name`, containing name of a sticker set with animated emojis. -* Added the read-only option `unix_time`, containing an estimation of the current Unix timestamp. - The option will not be updated automatically unless the difference between the previous estimation and - the locally available monotonic clocks changes significantly. -* Added the field `is_silent` to the class `notification`, so silent notifications can be shown with - the appropriate mark. -* Added the field `video_upload_bitrate` to the class `autoDownloadSettings`. -* Disallowed to call `setChatNotificationSettings` method on the chat with self, which never worked. -* Added support for `ton://` URLs in messages and inline keyboard buttons. - ------------------------------------------------------------------------------------------------------------------------ - -Changes in 1.5.0 (9 Sep 2019): - -* Changed authorization workflow: - - Added the state `authorizationStateWaitRegistration`, which will be received after `authorizationStateWaitCode` for - users who are not registered yet. - - Added the method `registerUser`, which must be used in the `authorizationStateWaitRegistration` state to finish - registration of the user. - - Removed the fields `is_registered` and `terms_of_service` from the class `authorizationStateWaitCode`. - - Removed the parameters `first_name` and `last_name` from the method `checkAuthenticationCode`. -* Added support for messages with an unknown sender (zero `sender_user_id`) in private chats, basic groups and - supergroups. Currently, the sender is unknown for posts in channels and for channel posts automatically forwarded to - the discussion group. -* Added support for the new permission system for non-administrator users in groups: - - Added the class `chatPermissions` containing all supported permissions, including new permissions `can_send_polls`, - `can_change_info`, `can_invite_users` and `can_pin_messages`. - - Added the field `permissions` to the class `chat`, describing actions that non-administrator chat members are - allowed to take in the chat. - - Added the update `updateChatPermissions`. - - Added the method `setChatPermissions` for changing chat permissions. - - Added the class `chatEventPermissionsChanged` representing a change of chat permissions in the chat event log. - - Replaced the fields `can_send_messages`, `can_send_media_messages`, `can_send_other_messages`, - `can_add_web_page_previews` in the class `chatMemberStatusRestricted` with the field `permissions` of - the type `chatPermissions`. - - Removed the field `everyone_is_administrator` from the `basicGroup` class in favor of the field `permissions` of - the class `chat`. - - Removed the field `anyone_can_invite` from the `supergroup` class in favor of the field `permissions` of - the class `chat`. - - Removed the method `toggleBasicGroupAdministrators` in favor of `setChatPermissions`. - - Removed the method `toggleSupergroupInvites` in favor of `setChatPermissions`. - - Renamed the field `anyone_can_invite` to `can_invite_users` in the class `chatEventInvitesToggled`. - - The permissions `can_send_other_messages` and `can_add_web_page_previews` now imply only `can_send_messages` - instead of `can_send_media_messages`. - - Allowed administrators in basic groups to use the method `generateChatInviteLink`. -* Added out of the box `OpenBSD` and `NetBSD` operating systems support. -* Added possibility to use `LibreSSL` >= 2.7.0 instead of `OpenSSL` to build TDLib. -* Added instructions for building TDLib on `Debian 10`, `OpenBSD` and `NetBSD` to - the [TDLib build instructions generator](https://tdlib.github.io/td/build.html). -* Added support for Backgrounds 2.0: - - Added the classes `BackgroundType`, `background`, `backgrounds` and `InputBackground`. - - Added the method `getBackground` returning the list of backgrounds installed by the user. - - Added the method `setBackground` for changing the background selected by the user. - - Added the update `updateSelectedBackground`, which is sent right after a successful initialization and whenever - the selected background changes. - - Added the method `removeBackground` for removing a background from the list of installed backgrounds. - - Added the method `resetBackgrounds` for restoring the default list of installed backgrounds. - - Added the method `searchBackground` returning a background by its name. - - Added the method `getBackgroundUrl` returning a persistent URL for a background. - - Removed the `getWallpapers` method. - - Removed the `wallpaper` and the `wallpapers` classes. - - The class `fileTypeWallpaper` can be used for remote file identifiers of both old wallpapers and new backgrounds. -* Added support for descriptions in basic groups: - - Added the field `description` to the class `basicGroupFullInfo`. - - Replaced the method `setSupergroupDescription` with `setChatDescription` which can be used for any chat type. -* Added support for emoji suggestions: - - Added the method `searchEmojis` for searching emojis by keywords. - - Added the method `getEmojiSuggestionsUrl`, which can be used to automatically log in to the translation platform - and suggest new emoji replacements. - - Renamed the class `stickerEmojis` to `emojis`. -* Changed type of the fields `old_photo` and `new_photo` in the class `chatEventPhotoChanged` from `chatPhoto` to - `photo`. -* Changed recommended size for `inputThumbnail` from 90x90 to 320x320. -* Combined all supported settings for phone number authentication: - - Added the class `phoneNumberAuthenticationSettings` which contains all the settings. - - Replaced the parameters `is_current_phone_number` and `allow_flash_call` in the methods - `setAuthenticationPhoneNumber`, `sendPhoneNumberConfirmationCode`, `sendPhoneNumberVerificationCode` and - `changePhoneNumber` with the parameter `settings` of the type `phoneNumberAuthenticationSettings`. - - Added support for automatic SMS code verification for official applications via the new field `allow_app_hash` in - the class `phoneNumberAuthenticationSettings`. -* Added support for auto-download settings presets. - - Added the classes `autoDownloadSettings` and `autoDownloadSettingsPresets`. - - Added the method `getAutoDownloadSettingsPresets` for getting the settings. - - Added the method `setAutoDownloadSettings`, which needs to be called whenever the user changes the settings. -* Added support for minithumbnails - thumbnail images of a very poor quality and low resolution: - - Added the class `minithumbnail`. - - Added the field `minithumbnail` to `animation`, `document`, `photo`, `video` and `videoNote` classes. - - Added the field `audio_cover_minithumbnail` to the class `audio`. -* Added support for resending messages which failed to send: - - Added the fields `error_code`, `error_message`, `can_retry` and `retry_after` to - the class `messageSendingStateFailed`. - - Added the method `resendMessages`. -* Added the field `is_animated` to the `sticker`, `stickerSet` and `stickerSetInfo` classes. - Animated stickers can be received anywhere where non-animated stickers can appear. -* Added the parameters `send_copy` and `remove_caption` to the `forwardMessages` method to allow forwarding of - messages without links to the originals. -* Added the fields `send_copy` and `remove_caption` to `inputMessageForwarded` method to allow forwarding of - a message without link to the original message. -* Added the method `getMessageLinkInfo` for getting information about a link to a message in a chat. -* Added the class `userPrivacySettingShowProfilePhoto` for managing visibility of the user's profile photo. -* Added the class `userPrivacySettingShowLinkInForwardedMessages` for managing whether a link to the user's account is - included with forwarded messages. -* Added the field `thumbnail` to the classes `stickerSet` and `stickerSetInfo`, containing a thumbnail for - the sticker set. -* Added the field `is_scam` to the classes `user` and `supergroup`. -* Added a new kind of inline keyboard button `inlineKeyboardButtonTypeLoginUrl`, which for the moment must be processed - in the same way as an `inlineKeyboardButtonTypeUrl`. -* Added the new class `supergroupMembersFilterContacts`, allowing to only search for contacts - in `getSupergroupMembers`. -* Added the new class `chatMembersFilterContacts`, allowing to only search for contacts in `searchChatMembers`. -* Added the class `chatEventPollStopped` representing the closing of a poll in a message in the chat event log. -* Added ability to specify the exact types of problems with a call in the method `sendCallRating` and - the new class `CallProblem`. -* Changes in [tdweb](https://github.com/tdlib/td/blob/master/example/web/): - - Supported non-zero `offset` and `limit` in `readFilePart`. - ------------------------------------------------------------------------------------------------------------------------ - -Changes in 1.4.0 (1 May 2019): - -* Added a [TDLib build instructions generator](https://tdlib.github.io/td/build.html), covering in details - TDLib building on the most popular operating systems. -* Added an example of TDLib building and usage from a browser. - See https://github.com/tdlib/td/blob/master/example/web/ for more details. -* Allowed to pass NULL pointer to `td_json_client_execute` instead of a previously created JSON client. - Now you can use synchronous TDLib methods through a JSON interface before creating a TDLib JSON client. -* Added support for media streaming by allowing to download any part of a file: - - Added the `offset` parameter to `downloadFile` which specifies the starting position - from which the file should be downloaded. - - Added the `limit` parameter to `downloadFile` which specifies how many bytes should be downloaded starting from - the `offset` position. - - Added the field `download_offset` to the class `localFile` which contains the current download offset. - - The field `downloaded_prefix_size` of the `localFile` class now contains the number of available bytes - from the position `download_offset` instead of from the beginning of the file. - - Added the method `getFileDownloadedPrefixSize` which can be used to get the number of locally available file bytes - from a given offset without actually changing the download offset. -* Added the parameter `synchronous` to `downloadFile` which causes the request to return the result only after - the download is completed. -* Added support for native polls in messages: - - Added `messagePoll` to the types of message content; contains a poll. - - Added the classes `poll` and `pollOption` describing a poll and a poll answer option respectively. - - Added `inputMessagePoll` to the types of new input message content; can be used to send a poll. - - Added the method `setPollAnswer` which can be used for voting in polls. - - Added the method `stopPoll` which can be used to stop polls. Use the `Message.can_be_edited` field to check whether - this method can be called on a message. - - Added the update `updatePoll` for bots only. Ordinary users receive poll updates through `updateMessageContent`. -* Added a Notification API. See article https://core.telegram.org/tdlib/notification-api for a detailed description. - - Added the class `pushReceiverId` which contains a globally unique identifier of the push notification subscription. - - Changed the return type of the method `registerDevice` to `pushReceiverId` to allow matching of push notifications - with TDLib instances. - - Removed the fields `disable_notification` and `contains_mention` from `updateNewMessage`. - - Renamed the class `deviceTokenGoogleCloudMessaging` to `deviceTokenFirebaseCloudMessaging`. - - Added the field `encrypt` to classes `deviceTokenApplePushVoIP` and `deviceTokenFirebaseCloudMessaging` - which allows to subscribe for end-to-end encrypted push notifications. - - Added the option `notification_group_count_max` which can be used to enable the Notification API and set - the maximum number of notification groups to be shown simultaneously. - - Added the option `notification_group_size_max` which can be used to set the maximum number of simultaneously shown - notifications in a group. - - Added the synchronous method `getPushReceiverId` for matching a push notification with a TDLib instance. - - Added the method `processPushNotification` for handling of push notifications. - - Removed the method `processDcUpdate` in favor of the general `processPushNotification` method. - - Added the update `updateNotificationGroup`, sent whenever a notification group changes. - - Added the update `updateNotification`, sent whenever a notification changes. - - Added the update `updateActiveNotifications` for syncing the list of active notifications on startup. - - Added the update `updateHavePendingNotifications` which can be used to improve lifetime handling of - the TDLib instance. - - Added the possibility to disable special handling of notifications about pinned messages via the new settings - `use_default_disable_pinned_message_notifications`, `disable_pinned_message_notifications` in - the class `chatNotificationSettings` and the new setting `disable_pinned_message_notifications` in - the class `scopeNotificationSettings`. - - Added the possibility to disable special handling of notifications about mentions and replies via the new settings - `use_default_disable_mention_notifications`, `disable_mention_notifications` in - the class `chatNotificationSettings` and the new setting `disable_mention_notifications` in - the class `scopeNotificationSettings`. - - Added the class `PushMessageContent` describing the content of a notification, received through - a push notification. - - Added the class `NotificationType` describing a type of notification. - - Added the class `notification` containing information about a notification. - - Added the class `NotificationGroupType` describing a type of notification group. - - Added the class `notificationGroup` describing a state of a notification group. - - Added the methods `removeNotification` and `removeNotificationGroup` for handling notifications removal - by the user. - - Added the separate notification scope `notificationSettingsScopeChannelChats` for channel chats. -* Added support for pinned notifications in basic groups and Saved Messages: - - Added the field `pinned_message_id` to the class `chat`. - - Removed the field `pinned_message_id` from the class `supergroupFullInfo` in favor of `chat.pinned_message_id`. - - Added the update `updateChatPinnedMessage`. - - The right `can_pin_messages` is now applicable to both basic groups and supergroups. - - Replaced the method `pinSupergroupMessage` with `pinChatMessage` which can be used for any chat type. - - Replaced the method `unpinSupergroupMessage` with `unpinChatMessage` which can be used for any chat type. -* Added new synchronous methods for managing TDLib internal logging. The old functions are deprecated and - will be removed in TDLib 2.0.0. - - Added the synchronous method `setLogStream` for changing the stream to which the TDLib internal log is written. - - Added the synchronous method `getLogStream` for getting information about the currently used log stream. - - Added the classes `logStreamDefault`, `logStreamFile` and `logStreamEmpty` describing different supported kinds of - log streams. - - Added the class `logVerbosityLevel` containing the verbosity level of the TDLib internal log. - - Added the class `logTags` containing a list of available TDLib internal log tags. - - Added the synchronous method `setLogVerbosityLevel` for changing verbosity level of logging. - - Added the synchronous method `getLogVerbosityLevel` for getting the current verbosity level of logging. - - Added the synchronous method `getLogTags` returning all currently supported log tags. - - Added the synchronous method `setLogTagVerbosityLevel` for changing the verbosity level of logging for - some specific part of the code. - - Added the synchronous method `getLogTagVerbosityLevel` for getting the current verbosity level for a specific part - of the code. - - Added the synchronous method `addLogMessage` for using the TDLib internal log by the application. -* Added support for Instant View 2.0: - - Replaced the field `has_instant_view` in class `webPage` with the `instant_view_version` field. - - Added the field `version` to the class `webPageInstantView`. - - Added the class `pageBlockCaption`. - - Changed the type of `caption` fields in `pageBlockAnimation`, `pageBlockAudio`, `pageBlockPhoto`, `pageBlockVideo`, - `pageBlockEmbedded`, `pageBlockEmbeddedPost`, `pageBlockCollage` and `pageBlockSlideshow` from - `RichText` to `pageBlockCaption`. - - Added the class `pageBlockListItem` and replaced the content of the `pageBlockList` class with a list of - `pageBlockListItem`. - - Added 6 new kinds of `RichText`: `richTextSubscript`, `richTextSuperscript`, `richTextMarked`, - `richTextPhoneNumber`, `richTextIcon` and `richTextAnchor`. - - Added new classes `pageBlockRelatedArticle`, `PageBlockHorizontalAlignment`, `PageBlockVerticalAlignment` and - `pageBlockTableCell`. - - Added new block types `pageBlockKicker`, `pageBlockRelatedArticles`, `pageBlockTable`, `pageBlockDetails` and - `pageBlockMap`. - - Added the flag `is_rtl` to the class `webPageInstantView`. - - Renamed the field `caption` in classes `pageBlockBlockQuote` and `pageBlockPullQuote` to `credit`. - - Dimensions in `pageBlockEmbedded` can now be unknown. - - Added the field `url` to `pageBlockPhoto` which contains a URL that needs to be opened when the photo is clicked. - - Added the field `url` to `webPageInstantView` which must be used for the correct handling of anchors. -* Added methods for confirmation of the 2-step verification recovery email address: - - Added the method `checkRecoveryEmailAddressCode` for checking the verification code. - - Added the method `resendRecoveryEmailAddressCode` for resending the verification code. - - Replaced the field `unconfirmed_recovery_email_address_pattern` in the class `passwordState` with - the `recovery_email_address_code_info` field containing full information about the code. - - The necessity of recovery email address confirmation in `setPassword` and `setRecoveryEmailAddress` methods - is now returned by the corresponding `passwordState` and not by the error `EMAIL_UNCONFIRMED`. -* Improved the `MessageForwardInfo` class and added support for hidden original senders: - - Removed the old `messageForwardedPost` and `messageForwardedFromUser` classes. - - Added the class `messageForwardInfo` which contains information about the origin of the message, original sending - date and identifies the place from which the message was forwarded the last time for messages forwarded to - Saved Messages. - - Added the classes `messageForwardOriginUser`, `messageForwardOriginHiddenUser` and `messageForwardOriginChannel` - which describe the exact origins of a message. -* Improved getting the list of user profile photos: - - Added the class `userProfilePhoto`, containing `id`, `added_date` and `sizes` of a profile photo. - - Changed the type of the field `photos` in `userProfilePhotos` to a list of `userProfilePhoto` instead of - a list of `photo`. `getUserProfilePhotos` now returns a date for each profile photo. - - Removed the field `id` from the class `photo` (this field was only needed in the result of `getUserProfilePhotos`). -* Added the possibility to get a Telegram Passport authorization form before asking the user for a password: - - Removed the parameter `password` from the method `getPassportAuthorizationForm`. - - Moved the fields `elements` and `errors` from the class `passportAuthorizationForm` to - the new class `passportElementsWithErrors`. - - Added the method `getPassportAuthorizationFormAvailableElements` that takes the user's password and - returns previously uploaded Telegram Passport elements and errors in them. -* Added the field `file_index` to the classes `passportElementErrorSourceFile` and - `passportElementErrorSourceTranslationFile`. -* Added the method `getCurrentState` returning all updates describing the current `TDLib` state. It can be used to - restore the correct state after connecting to a running TDLib instance. -* Added the class `updates` which contains a list of updates and is returned by the `getCurrentState` method. -* Added the update `updateChatOnlineMemberCount` which is automatically sent for open group chats if the number of - online members in a group changes. -* Added support for custom language packs downloaded from the server: - - Added the fields `base_language_pack_id`` to the class `languagePackInfo`. Strings from the base language pack - must be used for untranslated keys from the chosen language pack. - - Added the fields `plural_code`, `is_official`, `is_rtl`, `is_beta`, `is_installed`, `total_string_count`, - `translated_string_count`, `translation_url` to the class `languagePackInfo`. - - Added the method `addCustomServerLanguagePack` which adds a custom server language pack to the list of - installed language packs. - - Added the method `getLanguagePackInfo` which can be used for handling `https://t.me/setlanguage/...` links. - - Added the method `synchronizeLanguagePack` which can be used to fetch the latest versions of all strings from - a language pack. - The method doesn't need to be called explicitly for the current used/base language packs. - - The method `deleteLanguagePack` now also removes the language pack from the list of installed language packs. -* Added the method `getChatNotificationSettingsExceptions` which can be used to get chats with - non-default notification settings. -* Added the parameter `hide_via_bot` to `sendInlineQueryResultMessage` which can be used for - `getOption("animation_search_bot_username")`, `getOption("photo_search_bot_username")` and - `getOption("venue_search_bot_username")` bots to hide that the message was sent via the bot. -* Added the class `chatReportReasonChildAbuse` which can be used to report a chat for child abuse. -* Added the method `getMessageLocally` which returns a message only if it is available locally without - a network request. -* Added the method `writeGeneratedFilePart` which can be used to write a generated file if there is no direct access to - TDLib's file system. -* Added the method `readFilePart` which can be used to read a file from the TDLib file cache. -* Added the class `filePart` to represent the result of the new `readFilePart` method. -* Added the field `log_size` to the `storageStatisticsFast` class which contains the size of the TDLib internal log. - Previously the size was included into the value of the `database_size` field. -* Added the field `language_pack_database_size` to the `storageStatisticsFast` class which contains the size of the - language pack database. -* Added the field `is_support` to the class `user` which can be used to identify Telegram Support accounts. -* Added the class `HttpUrl` encapsulating an HTTP URL. -* Added the method `getMessageLink` which can be used to create a private link (which works only for members) to - a message in a supergroup or channel. -* Added support for channel statistics (coming soon): - - Added the field `can_view_statistics` to the `supergroupFullInfo` class. - - Added the method `getChatStatisticsUrl` which returns a URL with the chat statistics. -* Added support for server-side peer-to-peer calls privacy: - - Added the class `userPrivacySettingAllowPeerToPeerCalls` for managing privacy. - - Added the field `allow_p2p` to `callStateReady` class which must be used to determine whether - a peer-to-peer connection can be used. -* Added the option `ignore_background_updates` which allows to skip all updates received while the TDLib instance was - not running. The option does nothing if the database or secret chats are used. -* Added the read-only option `expect_blocking`, suggesting whether Telegram is blocked for the user. -* Added the read-only option `enabled_proxy_id`, containing the ID of the enabled proxy. -* Added the ability to identify password pending sessions (where the code was entered but not - the two-step verification password) via the flag `is_password_pending` in the `session` class. - TDLib guarantees that the sessions will be returned by the `getActiveSessions` method in the correct order. -* Added the classes `JsonValue` and `jsonObjectMember` which represent a JSON value and - a member of a JSON object respectively as TDLib API objects. -* Added the synchronous methods `getJsonValue` and `getJsonString` for simple conversion between - a JSON-encoded string and `JsonValue` TDLib API class. -* Added the methods `getApplicationConfig` and `saveApplicationLogEvent` to be used for testing purposes. -* Added the temporarily class `databaseStatistics` and the method `getDatabaseStatistics` for rough estimations of - database tables size in a human-readable format. -* Made the method `Client.Execute` static in .NET interface. -* Removed the `on_closed` callback virtual method from low-level C++ ClientActor interface. - Callback destructor can be used instead. -* Updated dependencies in the prebuilt TDLib for Android: - - Updated SDK to SDK 28 in which helper classes were moved from `android.support.` to `androidx.` package. - - Updated NDK to r19c, which dropped support for Android versions up to 4.0.4, so the minimum supported version is - Android 4.1. - - Updated OpenSSL to version 1.1.1. - - Added x86_64 libraries. -* Added out of the box `FreeBSD` support. -* Significantly improved TDLib compilation time and decreased compiler RAM usage: - - In native C++ interface `td_api::object_ptr` is now a simple homebrew const-propagating class instead of - `std::unique_ptr`. - - Added the script `SplitSource.php`, which can be used to split some source code files before building - the library to reduce maximum RAM usage per file at the expense of increased build time. -* The update `updateOption` with the `version` option is now guaranteed to come before all other updates. - It can now be used to dynamically discover available methods. -* Added the ability to delete incoming messages in private chats and revoke messages without a time limit: - - Added the parameter `revoke` to the method `deleteChatHistory`; use it to delete chat history for all chat members. - - Added the fields `can_be_deleted_only_for_self` and `can_be_deleted_for_all_users` to the class `chat` - which can be used to determine for whom the chat can be deleted through the `deleteChatHistory` method. - - The fields `Message.can_be_deleted_only_for_self` and `Message.can_be_deleted_for_all_users` can still be used - to determine for whom the message can be deleted through the `deleteMessages` method. -* Added support for server-generated notifications about newly registered contacts: - - Setting the option `disable_contact_registered_notifications` now affects all user sessions. - When the option is enabled, the client will still receive `messageContactRegistered` message in the private chat, - but there will be no notification about the message. - - `getOption("disable_contact_registered_notifications")` can be used to fetch the actual value of the option, - the option will not be updated automatically after a change from another device. -* Decreased the maximum allowed first name and last name length to 64, chat title length to 128, - matching the new server-side limits. -* Decreased the maximum allowed value of the `forward_limit` parameter of the `addChatMember` method from 300 to 100, - matching the new server-side limit. -* Added protection from opening two TDLib instances with the same database directory from one process. -* Added copying of notification settings of new secret chats from notification settings of - the corresponding private chat. -* Excluded the sponsored chat (when using sponsored proxies) from unread counters. -* Allowed to pass decreased local_size in `setFileGenerationProgress` to restart the generation from the beginning. -* Added a check for modification time of original file in `inputFileGenerated` whenever possible. - If the original file was changed, then TDLib will restart the generation. -* Added the destruction of MTProto keys on the server during log out. -* Added support for hexadecimal-encoded and decimal-encoded IPv4 proxy server addresses. -* Improved the behavior of `changeImportedContacts` which now also deletes contacts of users without Telegram accounts - from the server. -* Added the ability to call `getStorageStatistics` before authorization. -* Allowed to pass `limit` = -`offset` for negative offset in the `getChatHistory` method. -* Changed the recommended `inputThumbnail` size to be at most 320x320 instead of the previous 90x90. -* Disabled building by default of the native C interface. Use `cmake --build . --target tdc` to build it. -* Numerous optimizations and bug fixes: - - Network implementation for Windows was completely rewritten to allow a literally unlimited number of - simultaneously used TDLib instances. - - TDLib instances can now share working threads with each other. Only a limited number of threads will be created - even if there are thousands of TDLib instances in a single process. - - Removed the restriction on the size of update or response result in JSON interface. - - Fixed pinning of the 5th chat when there is a sponsored chat. - - Fixed IPv6 on Windows. - - Improved network connections balancing, aliveness checks and overall stability. - - Various autogenerated documentation fixes and improvements. - ------------------------------------------------------------------------------------------------------------------------ - -Changes in 1.3.0 (5 Sep 2018): - -* Added a review of existing TDLib based [frameworks](https://github.com/tdlib/td/blob/master/example/README.md) - in different programming languages. -* Added a [Getting started](https://core.telegram.org/tdlib/getting-started) guide describing the main TDLib concepts - and basic principles required for library usage. -* When a chat is opened, only those messages that have been viewed are marked as read. -* Improved the proxy settings API: - - A list of proxies is stored instead of just one proxy. - - New methods `addProxy`, `editProxy`, `enableProxy`, `disableProxy`, `removeProxy` and `getProxies` were added - instead of `setProxy` and `getProxy`. - - Added the method `pingProxy` which can be used to compute time needed to receive a response from a Telegram server - through a proxy or directly. - - Added support for MTProto proxy via class `proxyTypeMtproto`. - - Added support for HTTP proxy via class `proxyTypeHttp`. - - For each proxy last time it was used is remembered. - - Added the method `getProxyLink` which returns an HTTPS link that can be used to share a proxy with others. -* Improved the notification settings API. Scope notification settings are now properly synchronized between all devices - and chat notification settings can be reset to their default values: - - The `notificationSettings` class was split into `chatNotificationSettings` and `scopeNotificationSettings`. - - Only two notification settings scopes are left: `notificationSettingsScopePrivateChats` which is responsible for - default notification settings for private and secret chats and `notificationSettingsScopeGroupChats` for all other - chats. - - `updateNotificationSettings` was split into `updateChatNotificationSettings` and `updateScopeNotificationSettings`. - - `setNotificationSettings` was split into `setChatNotificationSettings` and `setScopeNotificationSettings`. - - `getNotificationSettings` was replaced with `getScopeNotificationSettings`. -* Added the field `filter` to the `searchChatMembers` method to support searching among administrators, bots, - restricted and banned members. -* Added the ability to use synchronous requests and `setAlarm` before the library is initialized. -* Added the ability to send requests that don't need authentication before the library is initialized. These requests - will be postponed and executed at the earliest opportunity. For example, `setNetworkType` can be used to disable the - network for TDLib before the library tries to use it; `addProxy` can be used to add a proxy before any network - activity; or `setOption("use_pfs")` can be used to guarantee that PFS is used for all requests. -* Added support for tg:// links in `inlineKeyboardButtonTypeUrl` and `textEntityTypeTextUrl`. -* Added the ability to call `deleteAccount` in the `authorizationStateWaitPassword` authorization state. -* Added the ability to call `checkAuthenticationCode` with an empty `first_name` for unregistered users to check the - code validity. -* Added the methods `editMessageMedia` and `editInlineMessageMedia` for editing media messages content. -* Renamed the class `shippingAddress` to `address`. -* Changed the return value of the `requestPasswordRecovery` method from `passwordRecoveryInfo` to - `emailAddressAuthenticationCodeInfo`. -* Added support for sponsored channels promoted by MTProto-proxies: - - Added the field `is_sponsored` to the `chat` class. - - Added `updateChatIsSponsored`, sent when this field changes. -* Added support for marking chats as unread: - - Added the field `is_marked_as_unread` to `chat`. - - Added the update `updateChatIsMarkedAsUnread`. - - Added the method `toggleChatIsMarkedAsUnread`. -* Added support for a default value of `disable_notification`, used when a message is sent to the chat: - - Added the field `default_disable_notification` to `chat` class. - - Added the update `updateChatDefaultDisableNotification`. - - Added the method `toggleChatDefaultDisableNotification`. -* Added the field `vcard` to the `contact` class. -* Added the field `type` to `venue`, which contains a provider-specific type of the venue, -* Added the update `updateUnreadChatCount`, enabled when the message database is used and sent when - the number of unread chats has changed. -* Added the method `addLocalMessage` for adding a local message to a chat. -* Added the method `getDeepLinkInfo`, which can return information about `tg://` links that are not supported by - the client. -* Added support for language packs: - - Added the writable option `language_pack_database_path` which can be used to specify a path to a database - for storing language pack strings, so that this database can be shared between different accounts. - If not specified, language pack strings will be stored only in memory. - Changes to the option are applied only on the next TDLib launch. - - Added the writable option `localization_target` for setting up a name for the current localization target - (currently supported: "android", "android_x", "ios", "macos" and "tdesktop"). - - Added the writable option `language_pack_id` for setting up an identifier of the currently used language pack from - the current localization target (a "language pack" represents the collection of strings that can be used to display - the interface of a particular application in a particular language). - - Added the class `LanguagePackStringValue` describing the possible values of a string from a language pack. - - Added the class `languagePackString` describing a string from a language pack. - - Added the class `languagePackStrings` containing a list of language pack strings. - - Added the class `languagePackInfo` containing information about a language pack from a localization target. - - Added the class `localizationTargetInfo` containing information about a localization target. - - Added the update `updateLanguagePackStrings` which is sent when some strings in a language pack have changed. - - Added the synchronous method `getLanguagePackString` which can be used to get a language pack string from - the local database. - - Added the method `getLocalizationTargetInfo` which returns information about the current localization target. - - Added the method `getLanguagePackStrings` which returns some or all strings from a language pack, possibly fetching - them from the server. - - Added the method `setCustomLanguagePack` for adding or editing a custom language pack. - - Added the method `editCustomLanguagePackInfo` for editing information about a custom language pack. - - Added the method `setCustomLanguagePackString` for adding, editing or deleting a string in a custom language pack. - - Added the method `deleteLanguagePack` for deleting a language pack from the database. - - Added the read-only option `suggested_language_pack_id` containing the identifier of the language pack, - suggested for the user by the server. -* Added support for Telegram Passport: - - Added two new message contents `messagePassportDataSent` for ordinary users and `messagePassportDataReceived` - for bots containing information about Telegram Passport data shared with a bot. - - Added the new file type `fileTypeSecure`. - - Added the class `datedFile` containing information about a file along with the date it was uploaded. - - Added the helper classes `date`, `personalDetails`, `identityDocument`, `inputIdentityDocument`, - `personalDocument`, `inputPersonalDocument`, `passportElements`. - - Added the class `PassportElementType` describing all supported types of Telegram Passport elements. - - Added the class `PassportElement` containing information about a Telegram Passport element. - - Added the class `InputPassportElement` containing information about a Telegram Passport element to save. - - Added the classes `passportElementError` and `PassportElementErrorSource` describing an error in - a Telegram Passport element. - - Added the field `has_passport_data` to the `passwordState` class. - - Added the methods `getPassportElement`, `getAllPassportElements`, `setPassportElement`, `deletePassportElement` - for managing Telegram Passport elements. - - Added the methods `getPassportAuthorizationForm` and `sendPassportAuthorizationForm` used for sharing - Telegram Passport data with a service via a bot. - - Added the methods `sendPhoneNumberVerificationCode`, `resendPhoneNumberVerificationCode` and - `checkPhoneNumberVerificationCode` for verification of a phone number used for Telegram Passport. - - Added the methods `sendEmailAddressVerificationCode`, `resendEmailAddressVerificationCode` and - `checkEmailAddressVerificationCode` for verification of an email address used for Telegram Passport. - - Added the method `getPreferredCountryLanguage` returning a most popular language in a country. - - Added the classes `inputPassportElementError` and `InputPassportElementErrorSource` for bots describing an error in - a Telegram Passport element. - - Added the method `setPassportElementErrors` for bots. - - Added the class `encryptedPassportElement` and `encryptedCredentials` for bots describing - an encrypted Telegram Passport element. -* Improved support for Telegram terms of service: - - Added the class `termsOfService`, containing information about the Telegram terms of service. - - Added the field `terms_of_service` to `authorizationStateWaitCode`. - - Added the update `updateTermsOfService` coming when new terms of service need to be accepted by the user. - - Added the method `acceptTermsOfService` for accepting terms of service. - - Removed the method `getTermsOfService`. -* Added the method `getMapThumbnailFile` which can be used to register and download a map thumbnail file. -* Added the methods `sendPhoneNumberConfirmationCode`, `resendPhoneNumberConfirmationCode` and - `checkPhoneNumberConfirmationCode` which can be used to prevent an account from being deleted. -* Added the convenience methods `joinChat` and `leaveChat` which can be used instead of `setChatMemberStatus` to manage - the current user's membership in a chat. -* Added the convenience method `getContacts` which can be used instead of `searchContacts` to get all contacts. -* Added the synchronous method `cleanFileName` which removes potentially dangerous characters from a file name. -* Added the method `getChatMessageCount` which can be used to get the number of shared media. -* Added the writable option `ignore_inline_thumbnails` which can be used to prevent file thumbnails sent - by the server along with messages from being saved on the disk. -* Added the writable option `prefer_ipv6` which can be used to prefer IPv6 connections over IPv4. -* Added the writable option `disable_top_chats` which can be used to disable support for top chats. -* Added the class `chatReportReasonCopyright` for reporting chats containing infringing content. -* Added the method `clearAllDraftMessages` which can be used to delete all cloud drafts. -* Added the read-only options `message_text_length_max` and `message_caption_length_max`. -* Added the read-only options `animation_search_bot_username`, `photo_search_bot_username` and - `venue_search_bot_username` containing usernames of bots which can be used in inline mode for animations, photos and - venues search respectively. -* Numerous optimizations and bug fixes: - - Fixed string encoding for .NET binding. - - Fixed building TDLib SDK for Universal Windows Platform for ARM with MSVC 2017. - - Fixed the Swift example project. - - Fixed the syntax error in the Python example. - - Sticker thumbnails can now have `webp` extensions if they are more likely to be in WEBP format. - ------------------------------------------------------------------------------------------------------------------------ - -Changes in 1.2.0 (20 Mar 2018): - -* Added support for native .NET bindings through `C++/CLI` and `C++/CX`. - See [using in .NET projects](README.md#using-dotnet) for more details. -* Added a C# example. See [README](example/csharp/README.md) for build and usage instructions. -* Added a build and usage example of TDLib SDK for Universal Windows Platform. See [README](example/uwp/README.md) - for detailed build and usage instructions. Also, see [Unigram](https://github.com/UnigramDev/Unigram), which is - a full-featured client rewritten from scratch using TDLib SDK for Universal Windows Platform in less than 2 months. -* Added a Swift example. See [README](example/swift/README.md) for build and usage instructions. -* Added an example of building TDLib for iOS, watchOS, tvOS, and also macOS. See [README](example/ios/README.md) for - detailed build instructions. -* Added README to [C++](example/cpp/README.md) and [python](example/python/README.md) examples. -* Link Time Optimization is disabled by default. Use `-DTD_ENABLE_LTO=ON` CMake option and CMake >= 3.9 to enable it. -* `updateNotificationSettings` is now automatically sent when the mute time expires for a chat. -* Added automatic sending of a corresponding `chatAction` when a file is being uploaded. -* `updateUserChatAction` with `chatActionCancel` is now automatically sent when the timeout expires for an action. -* Authorization states `authorizationStateWaitCode` and `authorizationStateWaitPassword` are now saved between - library restarts for 5 minutes. -* Added new message content type `messageWebsiteConnected`. -* Added new text entity types `textEntityTypeCashtag` and `textEntityTypePhoneNumber`. -* Added new update `updateUnreadMessageCount`, enabled when message database is used. -* Method `joinChatByInviteLink` now returns the joined `chat`. -* Method `getWebPagePreview` now accepts `formattedText` instead of plain `string`. -* Added field `phone_number` to `authenticationCodeInfo`, which contains a phone number that is being authenticated. -* Added field `is_secret` to `messageAnimation`, `messagePhoto`, `messageVideo` and `messageVideoNote` classes, - which denotes whether the thumbnail for the content must be blurred and the content must be shown only while tapped. -* Added field `expires_in` to `messageLocation` for live locations. -* Added flag `can_be_reported` to `chat` class. -* Added flag `supports_streaming` to classes `video` and `inputMessageVideo`. -* Added parameter `message_ids` to `reportChat`, which can be used to report specific messages. -* Added method `checkChatUsername` for checking whether a username can be set for a chat. -* Added method `getRepliedMessage`, which returns a message that is replied by a given message. -* Added method `getChatPinnedMessage`, which returns the pinned message from a chat. -* Added method `searchStickers` to search by emoji for popular stickers suggested by the server. -* Added method `searchStickerSets` to search by title and name for popular sticker sets suggested by the server. -* Added method `searchInstalledStickerSets` to search by title and name for installed sticker sets. -* Added methods for handling connected websites: `getConnectedWebsites`, `disconnectWebsite` and - `disconnectAllWebsites`. -* Added method `getCountryCode`, which uses current user IP address to identify their country. -* Added option `t_me_url`. -* Fixed `BlackBerry` spelling in `deviceTokenBlackBerryPush`. -* Fixed return type of `getChatMessageByDate` method, which is `Message` and not `Messages`. -* Ensured that updateOption("my_id") comes before `updateAuthorizationState` with `authorizationStateReady`. -* Numerous optimizations and bug fixes. - ------------------------------------------------------------------------------------------------------------------------ - -Changes in 1.1.1 (4 Feb 2018): -* Fixed C JSON bindings compilation error. -* Fixed locale-dependent JSON generation. - ------------------------------------------------------------------------------------------------------------------------ - -Changes in 1.1.0 (31 Jan 2018): - -* Methods `td::Log::set_file_path` and `td_set_log_file_path` now return whether they succeeded. -* Added methods `td::Log::set_max_file_size` and `td_set_log_max_file_size` for restricting maximum TDLib log size. -* Added methods `td::Log::set_fatal_error_callback` and `td_set_log_fatal_error_callback` for providing callbacks - on fatal errors. -* JNI-bindings are now package-agnostic. Use CMake option `TD_ENABLE_JNI` to enable JNI-bindings. -* Added a Java example. See [README](example/java/README.md) for build and usage instructions. -* Added support for text entities in media captions. - - Added new type `formattedText` containing a text with entities. - - Replaced all string fields `caption` with fields of type `formattedText`. - - Replaced fields `text` and `entities` with the field `text` of type `formattedText` in class `messageText`. - - Replaced fields `text` and `entities` with the field `text` of type `formattedText` in class `inputMessageText`. - - Replaced fields `text` and `text_entities` with the field `text` of type `formattedText` in class `game`. - - Removed field `parse_mode` from class `inputMessageText`. - - Added synchronous method `parseTextEntities`. -* updateNewMessage is now sent for all sent messages. -* updateChatLastMessage is now sent when any field of the last message in a chat changes. -* Reworked the `registerDevice` method: - - Added parameter `other_user_ids` to method `registerDevice` to support multiple accounts. - - It is now possible to specify tokens for VoIP pushes, WNS, web Push API, Tizen Push Service as `DeviceToken`. - - Added support for Apple Push Notification Service inside App Sandbox. -* Added method `searchChatsOnServer` analogous to `searchChats`, but using server search. -* Results from the `searchChatsOnServer` method are now excluded from `searchPublicChats` results, - so `searchChatsOnServer` (along with `searchContacts`) should be called whenever `searchPublicChats` is called - to ensure that no results were omitted. -* Added parameter `as_album` to method `getPublicMessageLink` to enable getting public links for media albums. -* Added field `html` to class `publicMessageLink`, containing HTML-code for message/message album embedding. -* Added parameter `only_if_pending` to method `cancelDownloadFile` to allow keeping already started downloads. -* Methods `createPrivateChat`, `createBasicGroupChat`, `createSupergroupChat` and `createSecretChat` - can now be called without a prior call to `getUser`/`getBasicGroup`/`getSupergroup`/`getSecretChat`. -* Added parameter `force` to methods `createPrivateChat`, `createBasicGroupChat` and `createSupergroupChat` to allow - creating a chat without network requests. -* Numerous optimizations and bug fixes. - ------------------------------------------------------------------------------------------------------------------------ diff --git a/third-party/td/td/CMake/AddCXXCompilerFlag.cmake b/third-party/td/td/CMake/AddCXXCompilerFlag.cmake deleted file mode 100644 index 6fb615a1f7..0000000000 --- a/third-party/td/td/CMake/AddCXXCompilerFlag.cmake +++ /dev/null @@ -1,74 +0,0 @@ -# - Adds a compiler flag if it is supported by the compiler -# -# This function checks that the supplied compiler flag is supported and then -# adds it to the corresponding compiler flags -# -# add_cxx_compiler_flag( []) -# -# - Example -# -# include(AddCXXCompilerFlag) -# add_cxx_compiler_flag(-Wall) -# add_cxx_compiler_flag(-no-strict-aliasing RELEASE) -# Requires CMake 2.6+ - -if (__add_cxx_compiler_flag) - return() -endif() -set(__add_cxx_compiler_flag INCLUDED) - -include(CheckCXXCompilerFlag) - -function(mangle_compiler_flag FLAG OUTPUT) - string(TOUPPER "HAVE_CXX_FLAG_${FLAG}" SANITIZED_FLAG) - string(REPLACE "+" "X" SANITIZED_FLAG ${SANITIZED_FLAG}) - string(REGEX REPLACE "[^A-Za-z_0-9]" "_" SANITIZED_FLAG ${SANITIZED_FLAG}) - string(REGEX REPLACE "_+" "_" SANITIZED_FLAG ${SANITIZED_FLAG}) - set(${OUTPUT} "${SANITIZED_FLAG}" PARENT_SCOPE) -endfunction(mangle_compiler_flag) - -function(add_cxx_compiler_flag FLAG) - string(REPLACE "-Wno-" "-W" MAIN_FLAG ${FLAG}) - mangle_compiler_flag("${MAIN_FLAG}" MANGLED_FLAG_NAME) - if (DEFINED CMAKE_REQUIRED_FLAGS) - set(OLD_CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS}") - set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} ${FLAG}") - else() - set(CMAKE_REQUIRED_FLAGS "${FLAG}") - endif() - check_cxx_compiler_flag("${MAIN_FLAG}" ${MANGLED_FLAG_NAME}) - if (DEFINED OLD_CMAKE_REQUIRED_FLAGS) - set(CMAKE_REQUIRED_FLAGS "${OLD_CMAKE_REQUIRED_FLAGS}") - else() - unset(CMAKE_REQUIRED_FLAGS) - endif() - if (${MANGLED_FLAG_NAME}) - set(VARIANT ${ARGV1}) - if (ARGV1) - string(TOUPPER "_${VARIANT}" VARIANT) - endif() - set(CMAKE_CXX_FLAGS${VARIANT} "${CMAKE_CXX_FLAGS${VARIANT}} ${FLAG}" PARENT_SCOPE) - endif() -endfunction() - -function(add_required_cxx_compiler_flag FLAG) - string(REPLACE "-Wno-" "-W" MAIN_FLAG ${FLAG}) - mangle_compiler_flag("${MAIN_FLAG}" MANGLED_FLAG_NAME) - set(OLD_CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS}") - set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} ${FLAG}") - check_cxx_compiler_flag("${MAIN_FLAG}" ${MANGLED_FLAG_NAME}) - set(CMAKE_REQUIRED_FLAGS "${OLD_CMAKE_REQUIRED_FLAGS}") - if (${MANGLED_FLAG_NAME}) - set(VARIANT ${ARGV1}) - if (ARGV1) - string(TOUPPER "_${VARIANT}" VARIANT) - endif() - set(CMAKE_CXX_FLAGS${VARIANT} "${CMAKE_CXX_FLAGS${VARIANT}} ${FLAG}" PARENT_SCOPE) - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${FLAG}" PARENT_SCOPE) - set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${FLAG}" PARENT_SCOPE) - set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${FLAG}" PARENT_SCOPE) - set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} ${FLAG}" PARENT_SCOPE) - else() - message(FATAL_ERROR "Required flag '${FLAG}' is not supported by the compiler") - endif() -endfunction() diff --git a/third-party/td/td/CMake/FindAtomics.cmake b/third-party/td/td/CMake/FindAtomics.cmake deleted file mode 100644 index a855132581..0000000000 --- a/third-party/td/td/CMake/FindAtomics.cmake +++ /dev/null @@ -1,62 +0,0 @@ -# Original issue: -# * https://gitlab.kitware.com/cmake/cmake/-/issues/23021#note_1098733 -# -# For reference: -# * https://gcc.gnu.org/wiki/Atomic/GCCMM -# -# riscv64 specific: -# * https://lists.debian.org/debian-riscv/2022/01/msg00009.html -# -# ATOMICS_FOUND - system has C++ atomics -# ATOMICS_LIBRARIES - libraries needed to use C++ atomics - -if (ATOMICS_FOUND) - return() -endif() - -include(CheckCXXSourceCompiles) - -# RISC-V only has 32-bit and 64-bit atomic instructions. GCC is supposed -# to convert smaller atomics to those larger ones via masking and -# shifting like LLVM, but it's a known bug that it does not. This means -# anything that wants to use atomics on 1-byte or 2-byte types needs -# to link atomic library, but not 4-byte or 8-byte (though it does no harm). -set(ATOMIC_CODE - " - #include - #include - std::atomic n8{0}; // riscv64 - std::atomic n64{0}; // armel, mipsel, powerpc - int main() { - ++n8; - ++n64; - }") - -set(ATOMICS_LIBS " " "-latomic") -if (CMAKE_SYSTEM_NAME MATCHES "NetBSD") - set(ATOMICS_LIBS "${ATOMICS_LIBS}" /usr/pkg/gcc12/x86_64--netbsd/lib/libatomic.so /usr/pkg/gcc12/i486--netbsdelf/lib/libatomic.so) -endif() - -foreach (ATOMICS_LIBRARY ${ATOMICS_LIBS}) - unset(ATOMICS_FOUND CACHE) - set(CMAKE_REQUIRED_LIBRARIES "${ATOMICS_LIBRARY}") - check_cxx_source_compiles("${ATOMIC_CODE}" ATOMICS_FOUND) - unset(CMAKE_REQUIRED_LIBRARIES) - if (ATOMICS_FOUND) - if (NOT ATOMICS_LIBRARY STREQUAL " ") - include(FindPackageHandleStandardArgs) - find_package_handle_standard_args(Atomics DEFAULT_MSG ATOMICS_LIBRARY) - set(ATOMICS_LIBRARIES "${ATOMICS_LIBRARY}" CACHE STRING "Atomic library" FORCE) - else() - set(ATOMICS_LIBRARIES "" CACHE STRING "Atomic operations library" FORCE) - endif() - break() - endif() -endforeach() -if (Atomics_FIND_REQUIRED AND NOT ATOMICS_FOUND) - message(FATAL_ERROR "Atomic operations library isn't found.") -endif() - -unset(ATOMICS_LIBRARY) -unset(ATOMICS_LIBS) -unset(ATOMIC_CODE) diff --git a/third-party/td/td/CMake/FindReadline.cmake b/third-party/td/td/CMake/FindReadline.cmake deleted file mode 100644 index 94b92ef558..0000000000 --- a/third-party/td/td/CMake/FindReadline.cmake +++ /dev/null @@ -1,25 +0,0 @@ -if (APPLE) - find_path(READLINE_INCLUDE_DIR readline/readline.h /opt/homebrew/opt/readline/include /usr/local/opt/readline/include /opt/local/include /opt/include /usr/local/include /usr/include NO_DEFAULT_PATH) -endif() -find_path(READLINE_INCLUDE_DIR readline/readline.h) - -if (APPLE) - find_library(READLINE_LIBRARY readline /opt/homebrew/opt/readline/lib /usr/local/opt/readline/lib /opt/local/lib /opt/lib /usr/local/lib /usr/lib NO_DEFAULT_PATH) -endif() -find_library(READLINE_LIBRARY readline) - -if (READLINE_INCLUDE_DIR AND READLINE_LIBRARY AND NOT GNU_READLINE_FOUND) - set(CMAKE_REQUIRED_INCLUDES "${READLINE_INCLUDE_DIR}") - set(CMAKE_REQUIRED_LIBRARIES "${READLINE_LIBRARY}") - include(CheckCXXSourceCompiles) - unset(GNU_READLINE_FOUND CACHE) - check_cxx_source_compiles("#include \n#include \nint main() { rl_replace_line(\"\", 0); }" GNU_READLINE_FOUND) - if (NOT GNU_READLINE_FOUND) - unset(READLINE_INCLUDE_DIR CACHE) - unset(READLINE_LIBRARY CACHE) - endif() -endif() - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(Readline DEFAULT_MSG READLINE_INCLUDE_DIR READLINE_LIBRARY) -mark_as_advanced(READLINE_INCLUDE_DIR READLINE_LIBRARY) diff --git a/third-party/td/td/CMake/GeneratePkgConfig.cmake b/third-party/td/td/CMake/GeneratePkgConfig.cmake deleted file mode 100644 index 3d3fa01d1f..0000000000 --- a/third-party/td/td/CMake/GeneratePkgConfig.cmake +++ /dev/null @@ -1,99 +0,0 @@ -function(get_relative_link OUTPUT PATH) - if (PATH MATCHES "^[$]<[$]:") - set(${OUTPUT} "" PARENT_SCOPE) - return() - endif() - string(REGEX REPLACE "^[$]<[$]>:(.*)>$" "\\1" PATH "${PATH}") - - get_filename_component(NAME "${PATH}" NAME_WE) - if (IS_ABSOLUTE ${PATH}) - get_filename_component(DIRECTORY_NAME "${PATH}" DIRECTORY) - if (WIN32) - set(${OUTPUT} "-l\"${DIRECTORY_NAME}/${NAME}\"" PARENT_SCOPE) - else() - get_filename_component(FULL_NAME "${PATH}" NAME) - set(${OUTPUT} "-L\"${DIRECTORY_NAME}\" -l:${FULL_NAME}" PARENT_SCOPE) - endif() - return() - endif() - - if (NOT WIN32 AND NAME MATCHES "^lib") - string(REGEX REPLACE "^lib" "-l" LINK "${NAME}") - elseif (NAME MATCHES "^-") - set(LINK "${NAME}") - else() - string(CONCAT LINK "-l" "${NAME}") - endif() - set(${OUTPUT} "${LINK}" PARENT_SCOPE) -endfunction() - -function(generate_pkgconfig TARGET DESCRIPTION) - # message("Generating pkg-config for ${TARGET}") - get_filename_component(PREFIX "${CMAKE_INSTALL_PREFIX}" REALPATH) - - get_target_property(LIST "${TARGET}" LINK_LIBRARIES) - set(REQS "") - set(LIBS "") - foreach (LIB ${LIST}) - if (TARGET "${LIB}") - set(HAS_REQS 1) - list(APPEND REQS "${LIB}") - else() - set(HAS_LIBS 1) - get_relative_link(LINK "${LIB}") - if (NOT LINK EQUAL "") - list(APPEND LIBS "${LINK}") - endif() - endif() - endforeach() - - if (HAS_REQS) - set(REQUIRES "") - foreach (REQ ${REQS}) - set(REQUIRES "${REQUIRES} ${REQ}") - endforeach() - set(REQUIRES "Requires.private:${REQUIRES}\n") - endif() - if (HAS_LIBS) - set(LIBRARIES "") - list(REVERSE LIBS) - list(REMOVE_DUPLICATES LIBS) - foreach (LIB ${LIBS}) - set(LIBRARIES " ${LIB}${LIBRARIES}") - endforeach() - set(LIBRARIES "Libs.private:${LIBRARIES}\n") - endif() - - if (IS_ABSOLUTE "${CMAKE_INSTALL_INCLUDEDIR}") - set(PKGCONFIG_INCLUDEDIR "${CMAKE_INSTALL_INCLUDEDIR}") - else() - set(PKGCONFIG_INCLUDEDIR "\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}") - endif() - - if (IS_ABSOLUTE "${CMAKE_INSTALL_LIBDIR}") - set(PKGCONFIG_LIBDIR "${CMAKE_INSTALL_LIBDIR}") - else() - set(PKGCONFIG_LIBDIR "\${prefix}/${CMAKE_INSTALL_LIBDIR}") - endif() - - file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/pkgconfig") - file(GENERATE OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/pkgconfig/${TARGET}.pc" CONTENT -"prefix=${PREFIX} - -Name: ${TARGET} -Description: ${DESCRIPTION} -Version: ${PROJECT_VERSION} - -CFlags: -I\"${PKGCONFIG_INCLUDEDIR}\" -Libs: -L\"${PKGCONFIG_LIBDIR}\" -l${TARGET} -${REQUIRES}${LIBRARIES}") - - get_target_property(LIBRARY_TYPE "${TARGET}" TYPE) - if (LIBRARY_TYPE STREQUAL "STATIC_LIBRARY" OR LIBRARY_TYPE STREQUAL "SHARED_LIBRARY") - install(FILES "${CMAKE_CURRENT_BINARY_DIR}/pkgconfig/${TARGET}.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig") - elseif (LIBRARY_TYPE STREQUAL "INTERFACE_LIBRARY") - # TODO: support interface libraries - else() - message(FATAL_ERROR "Don't know how to handle ${TARGET} of type ${LIBRARY_TYPE}") - endif() -endfunction() diff --git a/third-party/td/td/CMake/GetGitRevisionDescription.cmake b/third-party/td/td/CMake/GetGitRevisionDescription.cmake deleted file mode 100644 index 746c29d583..0000000000 --- a/third-party/td/td/CMake/GetGitRevisionDescription.cmake +++ /dev/null @@ -1,127 +0,0 @@ -# - Returns a version string from Git -# -# These functions force a re-configure on each git commit so that you can -# trust the values of the variables in your build system. -# -# get_git_head_revision( ) -# -# Requires CMake 2.6 or newer (uses the 'function' command) -# -# Original Author: -# 2009-2020 Ryan Pavlik -# http://academic.cleardefinition.com -# -# Copyright 2009-2013, Iowa State University. -# Copyright 2013-2020, Ryan Pavlik -# Copyright 2013-2020, Contributors -# SPDX-License-Identifier: BSL-1.0 -# Distributed under the Boost Software License, Version 1.0. -# (See accompanying file LICENSE_1_0.txt or copy at -# http://www.boost.org/LICENSE_1_0.txt) - -if (__get_git_revision_description) - return() -endif() -set(__get_git_revision_description YES) - -# We must run the following at "include" time, not at function call time, -# to find the path to this module rather than the path to a calling list file -get_filename_component(_gitdescmoddir ${CMAKE_CURRENT_LIST_FILE} PATH) - -# Function _git_find_closest_git_dir finds the next closest .git directory -# that is part of any directory in the path defined by _start_dir. -# The result is returned in the parent scope variable whose name is passed -# as variable _git_dir_var. If no .git directory can be found, the -# function returns an empty string via _git_dir_var. -# -# Example: Given a path C:/bla/foo/bar and assuming C:/bla/.git exists and -# neither foo nor bar contain a file/directory .git. This will return -# C:/bla/.git -# -function(_git_find_closest_git_dir _start_dir _git_dir_var) - set(cur_dir "${_start_dir}") - set(git_dir "${_start_dir}/.git") - while (NOT EXISTS "${git_dir}") - # .git dir not found, search parent directories - set(git_previous_parent "${cur_dir}") - get_filename_component(cur_dir "${cur_dir}" DIRECTORY) - if (cur_dir STREQUAL git_previous_parent) - # We have reached the root directory, we are not in git - set(${_git_dir_var} "" PARENT_SCOPE) - return() - endif() - set(git_dir "${cur_dir}/.git") - endwhile() - set(${_git_dir_var} "${git_dir}" PARENT_SCOPE) -endfunction() - -function(get_git_head_revision _refspecvar _hashvar) - _git_find_closest_git_dir("${CMAKE_CURRENT_SOURCE_DIR}" GIT_DIR) - - if (NOT GIT_DIR STREQUAL "") - file(RELATIVE_PATH _relative_to_source_dir "${CMAKE_CURRENT_SOURCE_DIR}" "${GIT_DIR}") - if (_relative_to_source_dir MATCHES "^[.][.]") - # We've gone above the CMake root dir. - set(GIT_DIR "") - endif() - endif() - if (GIT_DIR STREQUAL "") - set(${_refspecvar} "GITDIR-NOTFOUND" PARENT_SCOPE) - set(${_hashvar} "GITDIR-NOTFOUND" PARENT_SCOPE) - return() - endif() - - find_package(Git QUIET) - - # Check if the current source dir is a git submodule or a worktree. - # In both cases .git is a file instead of a directory. - # - if ((NOT IS_DIRECTORY ${GIT_DIR}) AND Git_FOUND) - # The following git command will return a non empty string that - # points to the super project working tree if the current - # source dir is inside a git submodule. - # Otherwise, the command will return an empty string. - # - execute_process( - COMMAND "${GIT_EXECUTABLE}" rev-parse --show-superproject-working-tree - WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" - OUTPUT_VARIABLE out - ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) - if (NOT out STREQUAL "") - # If out is non-empty, GIT_DIR/CMAKE_CURRENT_SOURCE_DIR is in a submodule - file(READ ${GIT_DIR} submodule) - string(REGEX REPLACE "gitdir: (.*)$" "\\1" GIT_DIR_RELATIVE ${submodule}) - string(STRIP ${GIT_DIR_RELATIVE} GIT_DIR_RELATIVE) - get_filename_component(SUBMODULE_DIR ${GIT_DIR} PATH) - get_filename_component(GIT_DIR ${SUBMODULE_DIR}/${GIT_DIR_RELATIVE} ABSOLUTE) - set(HEAD_SOURCE_FILE "${GIT_DIR}/HEAD") - else() - # GIT_DIR/CMAKE_CURRENT_SOURCE_DIR is in a worktree - file(READ ${GIT_DIR} worktree_ref) - # The .git directory contains a path to the worktree information directory - # inside the parent git repo of the worktree. - string(REGEX REPLACE "gitdir: (.*)$" "\\1" git_worktree_dir ${worktree_ref}) - string(STRIP ${git_worktree_dir} git_worktree_dir) - _git_find_closest_git_dir("${git_worktree_dir}" GIT_DIR) - set(HEAD_SOURCE_FILE "${git_worktree_dir}/HEAD") - endif() - else() - set(HEAD_SOURCE_FILE "${GIT_DIR}/HEAD") - endif() - if (NOT EXISTS "${HEAD_SOURCE_FILE}") - return() - endif() - - set(GIT_DATA "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/git-data") - if (NOT EXISTS "${GIT_DATA}") - file(MAKE_DIRECTORY "${GIT_DATA}") - endif() - set(HEAD_FILE "${GIT_DATA}/HEAD") - configure_file("${HEAD_SOURCE_FILE}" "${HEAD_FILE}" COPYONLY) - - configure_file("${_gitdescmoddir}/GetGitRevisionDescription.cmake.in" "${GIT_DATA}/grabRef.cmake" @ONLY) - include("${GIT_DATA}/grabRef.cmake") - - set(${_refspecvar} "${HEAD_REF}" PARENT_SCOPE) - set(${_hashvar} "${HEAD_HASH}" PARENT_SCOPE) -endfunction() diff --git a/third-party/td/td/CMake/GetGitRevisionDescription.cmake.in b/third-party/td/td/CMake/GetGitRevisionDescription.cmake.in deleted file mode 100644 index bfc1e54c15..0000000000 --- a/third-party/td/td/CMake/GetGitRevisionDescription.cmake.in +++ /dev/null @@ -1,43 +0,0 @@ -# -# Internal file for GetGitRevisionDescription.cmake -# -# Requires CMake 2.6 or newer (uses the 'function' command) -# -# Original Author: -# 2009-2010 Ryan Pavlik -# http://academic.cleardefinition.com -# Iowa State University HCI Graduate Program/VRAC -# -# Copyright 2009-2012, Iowa State University -# Copyright 2011-2015, Contributors -# Distributed under the Boost Software License, Version 1.0. -# (See accompanying file LICENSE_1_0.txt or copy at -# http://www.boost.org/LICENSE_1_0.txt) -# SPDX-License-Identifier: BSL-1.0 - -set(HEAD_HASH) - -file(READ "@HEAD_FILE@" HEAD_CONTENTS LIMIT 1024) - -string(STRIP "${HEAD_CONTENTS}" HEAD_CONTENTS) -if (HEAD_CONTENTS MATCHES "ref") - # named branch - string(REPLACE "ref: " "" HEAD_REF "${HEAD_CONTENTS}") - if (EXISTS "@GIT_DIR@/${HEAD_REF}") - configure_file("@GIT_DIR@/${HEAD_REF}" "@GIT_DATA@/head-ref" COPYONLY) - else() - configure_file("@GIT_DIR@/packed-refs" "@GIT_DATA@/packed-refs" COPYONLY) - file(READ "@GIT_DATA@/packed-refs" PACKED_REFS) - if (PACKED_REFS MATCHES "([0-9a-z]*) ${HEAD_REF}") - set(HEAD_HASH "${CMAKE_MATCH_1}") - endif() - endif() -else() - # detached HEAD - configure_file("@GIT_DIR@/HEAD" "@GIT_DATA@/head-ref" COPYONLY) -endif() - -if (NOT HEAD_HASH) - file(READ "@GIT_DATA@/head-ref" HEAD_HASH LIMIT 1024) - string(STRIP "${HEAD_HASH}" HEAD_HASH) -endif() diff --git a/third-party/td/td/CMake/PreventInSourceBuild.cmake b/third-party/td/td/CMake/PreventInSourceBuild.cmake deleted file mode 100644 index 1815e82a25..0000000000 --- a/third-party/td/td/CMake/PreventInSourceBuild.cmake +++ /dev/null @@ -1,14 +0,0 @@ -function(prevent_in_source_build) - get_filename_component(REAL_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}" REALPATH) - get_filename_component(REAL_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}" REALPATH) - - if (REAL_BINARY_DIR STREQUAL REAL_SOURCE_DIR) - message(" Out-of-source build must be used. Remove the files already") - message(" created by CMake and rerun CMake from a new directory:") - message(" rm -rf CMakeFiles CMakeCache.txt") - message(" mkdir build") - message(" cd build") - message(" cmake ..") - message(FATAL_ERROR "In-source build failed.") - endif() -endfunction() diff --git a/third-party/td/td/CMake/TdSetUpCompiler.cmake b/third-party/td/td/CMake/TdSetUpCompiler.cmake deleted file mode 100644 index a1937c2eb4..0000000000 --- a/third-party/td/td/CMake/TdSetUpCompiler.cmake +++ /dev/null @@ -1,185 +0,0 @@ -# Configures C++17 compiler, setting TDLib-specific compilation options. - -function(td_set_up_compiler) - set(CMAKE_EXPORT_COMPILE_COMMANDS 1 PARENT_SCOPE) - - set(CMAKE_POSITION_INDEPENDENT_CODE ON PARENT_SCOPE) - - include(illumos) - - if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") - set(GCC 1) - set(GCC 1 PARENT_SCOPE) - elseif (CMAKE_CXX_COMPILER_ID MATCHES "Clang") - set(CLANG 1) - set(CLANG 1 PARENT_SCOPE) - elseif (CMAKE_CXX_COMPILER_ID STREQUAL "Intel") - set(INTEL 1) - set(INTEL 1 PARENT_SCOPE) - elseif (NOT MSVC) - message(FATAL_ERROR "Compiler isn't supported") - endif() - - include(CheckCXXCompilerFlag) - - if (GCC OR CLANG OR INTEL) - if (WIN32 AND INTEL) - set(STD17_FLAG /Qstd=c++17) - else() - set(STD17_FLAG -std=c++17) - endif() - if (GCC AND (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 7.0)) - message(FATAL_ERROR "No C++17 support in the compiler. Please upgrade the compiler to at least GCC 7.0.") - endif() - if (CLANG AND (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.0)) - message(FATAL_ERROR "No C++17 support in the compiler. Please upgrade the compiler to at least clang 5.0.") - endif() - check_cxx_compiler_flag(${STD17_FLAG} HAVE_STD17) - elseif (MSVC) - set(HAVE_STD17 MSVC_VERSION>=1914) # MSVC 2017 version 15.7 - endif() - - if (NOT HAVE_STD17) - message(FATAL_ERROR "No C++17 support in the compiler. Please upgrade the compiler.") - endif() - - if (MSVC) - if (CMAKE_CXX_FLAGS_DEBUG MATCHES "/RTC1") - string(REPLACE "/RTC1" " " CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}") - endif() - add_definitions(-D_SCL_SECURE_NO_WARNINGS -D_CRT_SECURE_NO_WARNINGS) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /std:c++17 /utf-8 /GR- /W4 /wd4100 /wd4127 /wd4324 /wd4505 /wd4814 /wd4702 /bigobj") - elseif (CLANG OR GCC) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${STD17_FLAG} -fno-omit-frame-pointer -fno-exceptions -fno-rtti") - if (APPLE) - set(TD_LINKER_FLAGS "-Wl,-dead_strip") - if (NOT CMAKE_BUILD_TYPE MATCHES "Deb") - set(TD_LINKER_FLAGS "${TD_LINKER_FLAGS},-x,-S") - endif() - else() - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ffunction-sections -fdata-sections") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ffunction-sections -fdata-sections") - if (CMAKE_SYSTEM_NAME STREQUAL "SunOS") - set(TD_LINKER_FLAGS "-Wl,-z,ignore") - elseif (EMSCRIPTEN) - set(TD_LINKER_FLAGS "-Wl,--gc-sections") - elseif (ANDROID) - set(TD_LINKER_FLAGS "-Wl,--gc-sections -Wl,--exclude-libs,ALL -Wl,--icf=safe") - else() - set(TD_LINKER_FLAGS "-Wl,--gc-sections -Wl,--exclude-libs,ALL") - endif() - endif() - set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${TD_LINKER_FLAGS}") - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${TD_LINKER_FLAGS}") - - if (WIN32 OR CYGWIN) - if (GCC) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wa,-mbig-obj") - endif() - endif() - elseif (INTEL) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${STD17_FLAG}") - endif() - - if (WIN32) - add_definitions(-DNTDDI_VERSION=0x06020000 -DWINVER=0x0602 -D_WIN32_WINNT=0x0602 -DPSAPI_VERSION=1 -DNOMINMAX -DUNICODE -D_UNICODE -DWIN32_LEAN_AND_MEAN) - endif() - if (CYGWIN) - add_definitions(-D_DEFAULT_SOURCE=1 -DFD_SETSIZE=4096) - endif() - - # _FILE_OFFSET_BITS is broken in Android NDK r15, r15b and r17 and doesn't work prior to Android 7.0 - add_definitions(-D_FILE_OFFSET_BITS=64) - - # _GNU_SOURCE might not be defined by g++ - add_definitions(-D_GNU_SOURCE) - - if (CMAKE_SYSTEM_NAME STREQUAL "SunOS") - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lsocket -lnsl") - if (ILLUMOS) - add_definitions(-DTD_ILLUMOS=1) - endif() - endif() - - include(AddCXXCompilerFlag) - if (NOT MSVC) - add_cxx_compiler_flag("-Wall") - add_cxx_compiler_flag("-Wextra") - add_cxx_compiler_flag("-Wimplicit-fallthrough=2") - add_cxx_compiler_flag("-Wpointer-arith") - add_cxx_compiler_flag("-Wcast-qual") - add_cxx_compiler_flag("-Wsign-compare") - add_cxx_compiler_flag("-Wduplicated-branches") - add_cxx_compiler_flag("-Wduplicated-cond") - add_cxx_compiler_flag("-Walloc-zero") - add_cxx_compiler_flag("-Wlogical-op") - add_cxx_compiler_flag("-Wno-tautological-compare") - add_cxx_compiler_flag("-Wpointer-arith") - add_cxx_compiler_flag("-Wvla") - add_cxx_compiler_flag("-Wnon-virtual-dtor") - add_cxx_compiler_flag("-Wno-unused-parameter") - add_cxx_compiler_flag("-Wconversion") - add_cxx_compiler_flag("-Wno-sign-conversion") - add_cxx_compiler_flag("-Wc++17-compat-pedantic") - add_cxx_compiler_flag("-Wdeprecated") - add_cxx_compiler_flag("-Wno-unused-command-line-argument") - add_cxx_compiler_flag("-Qunused-arguments") - add_cxx_compiler_flag("-Wno-unknown-warning-option") - add_cxx_compiler_flag("-Wodr") - add_cxx_compiler_flag("-flto-odr-type-merging") - add_cxx_compiler_flag("-Wno-psabi") - add_cxx_compiler_flag("-Wunused-member-function") - add_cxx_compiler_flag("-Wunused-private-field") - - # add_cxx_compiler_flag("-Werror") - - # add_cxx_compiler_flag("-Wcast-align") - - #std::int32_t <-> int and off_t <-> std::size_t/std::int64_t - # add_cxx_compiler_flag("-Wuseless-cast") - - #external headers like openssl - # add_cxx_compiler_flag("-Wzero-as-null-pointer-constant") - endif() - - if (GCC) - add_cxx_compiler_flag("-Wno-maybe-uninitialized") # too many false positives - endif() - if (WIN32 AND GCC AND NOT (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 8.0)) - # warns about casts of function pointers returned by GetProcAddress - add_cxx_compiler_flag("-Wno-cast-function-type") - endif() - if (GCC AND NOT (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 9.0)) - # warns about a lot of "return std::move", which are not redundant for compilers without fix for DR 1579, i.e. GCC 4.9 or clang 3.8 - # see http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#1579 - add_cxx_compiler_flag("-Wno-redundant-move") - endif() - if (GCC AND NOT (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 12.0)) - add_cxx_compiler_flag("-Wno-stringop-overflow") # some false positives - endif() - if (CLANG AND (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.5)) - # https://stackoverflow.com/questions/26744556/warning-returning-a-captured-reference-from-a-lambda - add_cxx_compiler_flag("-Wno-return-stack-address") - endif() - if (GCC AND (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 13.0)) - # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104030 - add_cxx_compiler_flag("-Wbidi-chars=none") - endif() - - if (MINGW) - add_cxx_compiler_flag("-ftrack-macro-expansion=0") - endif() - - #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -isystem /usr/include/c++/v1") - #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++") - #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=thread") - #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address") - #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=undefined") - #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=leak") - - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}" PARENT_SCOPE) - set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}" PARENT_SCOPE) - set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS}" PARENT_SCOPE) - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}" PARENT_SCOPE) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}" PARENT_SCOPE) -endfunction() diff --git a/third-party/td/td/CMake/iOS.cmake b/third-party/td/td/CMake/iOS.cmake deleted file mode 100644 index 0bdbe7505a..0000000000 --- a/third-party/td/td/CMake/iOS.cmake +++ /dev/null @@ -1,278 +0,0 @@ -# This file is based off of the Platform/Darwin.cmake and Platform/UnixPaths.cmake -# files which are included with CMake 2.8.4 -# It has been altered for iOS development - -# Options: -# -# IOS_PLATFORM = OS (default) or SIMULATOR -# This decides if SDKS will be selected from the iPhoneOS.platform or iPhoneSimulator.platform folders -# OS - the default, used to build for iPhone and iPad physical devices, which have an arm arch. -# SIMULATOR - used to build for the Simulator platforms, which have an x86 arch. -# -# IOS_ARCH = automatic(default) or "arch1;arch2" (e.q. "x86_64;arm64") -# By default this value will be automatically chosen based on the IOS_PLATFORM value above. -# If set manually, it will override the default and force to build those architectures only. -# -# CMAKE_IOS_DEVELOPER_ROOT = automatic(default) or /path/to/platform/Developer folder -# By default this location is automatically chosen based on the IOS_PLATFORM value above. -# If set manually, it will override the default location and force the user of a particular Developer Platform -# -# CMAKE_IOS_SDK_ROOT = automatic(default) or /path/to/platform/Developer/SDKs/SDK folder -# By default this location is automatically chosen based on the CMAKE_IOS_DEVELOPER_ROOT value. -# In this case it will always be the most up-to-date SDK found in the CMAKE_IOS_DEVELOPER_ROOT path. -# If set manually, this will force the use of a specific SDK version - -# Macros: -# -# set_xcode_property (TARGET XCODE_PROPERTY XCODE_VALUE) -# A convenience macro for setting xcode specific properties on targets -# example: set_xcode_property (myioslib IPHONEOS_DEPLOYMENT_TARGET "3.1") -# -# find_host_package (PROGRAM ARGS) -# A macro used to find executable programs on the host system, not within the iOS environment. -# Thanks to the android-cmake project for providing the command - -# Standard settings -set (CMAKE_SYSTEM_NAME Darwin) -set (CMAKE_SYSTEM_VERSION 1) -set (UNIX True) -set (APPLE True) -set (IOS True) - -# Required as of cmake 2.8.10 -set (CMAKE_OSX_DEPLOYMENT_TARGET "" CACHE STRING "Force unset of the deployment target for iOS" FORCE) - -# Determine the cmake host system version so we know where to find the iOS SDKs -find_program (CMAKE_UNAME uname /bin /usr/bin /usr/local/bin) -if (CMAKE_UNAME) - execute_process(COMMAND uname -r OUTPUT_VARIABLE CMAKE_HOST_SYSTEM_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE) - string (REGEX REPLACE "^([0-9]+)\\.([0-9]+).*$" "\\1" DARWIN_MAJOR_VERSION "${CMAKE_HOST_SYSTEM_VERSION}") -endif (CMAKE_UNAME) - -# Force the compilers to gcc for iOS -set (CMAKE_C_COMPILER /usr/bin/gcc) -set (CMAKE_CXX_COMPILER /usr/bin/g++) -set (CMAKE_AR ar CACHE FILEPATH "" FORCE) -set (CMAKE_RANLIB ranlib CACHE FILEPATH "" FORCE) -set (PKG_CONFIG_EXECUTABLE pkg-config CACHE FILEPATH "" FORCE) - -# Setup iOS platform unless specified manually with IOS_PLATFORM -if (NOT DEFINED IOS_PLATFORM) - set (IOS_PLATFORM "OS") -endif (NOT DEFINED IOS_PLATFORM) -set (IOS_PLATFORM ${IOS_PLATFORM} CACHE STRING "Type of iOS Platform") - -# Check the platform selection and setup for developer root -if (IOS_PLATFORM STREQUAL "OS") - set (IOS_PLATFORM_LOCATION "iPhoneOS.platform") - set (XCODE_IOS_PLATFORM ios) - - # This causes the installers to properly locate the output libraries - set (CMAKE_XCODE_EFFECTIVE_PLATFORMS "-iphoneos") - - set (APPLE_IOS True) -elseif (IOS_PLATFORM STREQUAL "SIMULATOR") - set (SIMULATOR_FLAG true) - set (IOS_PLATFORM_LOCATION "iPhoneSimulator.platform") - set (XCODE_IOS_PLATFORM ios-simulator) - - # This causes the installers to properly locate the output libraries - set (CMAKE_XCODE_EFFECTIVE_PLATFORMS "-iphonesimulator") - - set (APPLE_IOS True) -elseif (IOS_PLATFORM STREQUAL "WATCHOS") - set (IOS_PLATFORM_LOCATION "WatchOS.platform") - set (XCODE_IOS_PLATFORM watchos) - - # This causes the installers to properly locate the output libraries - set (CMAKE_XCODE_EFFECTIVE_PLATFORMS "-watchos") - - set (APPLE_WATCH True) -elseif (IOS_PLATFORM STREQUAL "WATCHSIMULATOR") - set (SIMULATOR_FLAG true) - set (IOS_PLATFORM_LOCATION "WatchSimulator.platform") - set (XCODE_IOS_PLATFORM watchos-simulator) - - # This causes the installers to properly locate the output libraries - set (CMAKE_XCODE_EFFECTIVE_PLATFORMS "-watchsimulator") - - set (APPLE_WATCH True) -elseif (IOS_PLATFORM STREQUAL "TVOS") - set (IOS_PLATFORM_LOCATION "AppleTvOS.platform") - set (XCODE_IOS_PLATFORM tvos) - - # This causes the installers to properly locate the output libraries - set (CMAKE_XCODE_EFFECTIVE_PLATFORMS "-appletvos") - - set (APPLE_TV True) -elseif (IOS_PLATFORM STREQUAL "TVSIMULATOR") - set (SIMULATOR_FLAG true) - set (IOS_PLATFORM_LOCATION "AppleTvSimulator.platform") - set (XCODE_IOS_PLATFORM tvos-simulator) - - # This causes the installers to properly locate the output libraries - set (CMAKE_XCODE_EFFECTIVE_PLATFORMS "-tvsimulator") - - set (APPLE_TV True) -elseif (IOS_PLATFORM STREQUAL "VISIONOS") - set (IOS_PLATFORM_LOCATION "XROS.platform") - set (XCODE_IOS_PLATFORM xros) - - # This causes the installers to properly locate the output libraries - set (CMAKE_XCODE_EFFECTIVE_PLATFORMS "-xros") - - set (APPLE_VISION True) -elseif (IOS_PLATFORM STREQUAL "VISIONSIMULATOR") - set (SIMULATOR_FLAG true) - set (IOS_PLATFORM_LOCATION "XRSimulator.platform") - set (XCODE_IOS_PLATFORM xros-simulator) - - # This causes the installers to properly locate the output libraries - set (CMAKE_XCODE_EFFECTIVE_PLATFORMS "-xrsimulator") - - set (APPLE_VISION True) -else (IOS_PLATFORM STREQUAL "OS") - message (FATAL_ERROR "Unsupported IOS_PLATFORM value selected. Please choose OS, SIMULATOR, or WATCHOS.") -endif () - -# All iOS/Darwin specific settings - some may be redundant -set (CMAKE_SHARED_LIBRARY_PREFIX "lib") -set (CMAKE_SHARED_LIBRARY_SUFFIX ".dylib") -set (CMAKE_SHARED_MODULE_PREFIX "lib") -set (CMAKE_SHARED_MODULE_SUFFIX ".so") -set (CMAKE_MODULE_EXISTS 1) -set (CMAKE_DL_LIBS "") - -set (CMAKE_C_OSX_COMPATIBILITY_VERSION_FLAG "-compatibility_version ") -set (CMAKE_C_OSX_CURRENT_VERSION_FLAG "-current_version ") -set (CMAKE_CXX_OSX_COMPATIBILITY_VERSION_FLAG "${CMAKE_C_OSX_COMPATIBILITY_VERSION_FLAG}") -set (CMAKE_CXX_OSX_CURRENT_VERSION_FLAG "${CMAKE_C_OSX_CURRENT_VERSION_FLAG}") - -if (IOS_DEPLOYMENT_TARGET) - set (XCODE_IOS_PLATFORM_VERSION_FLAGS "-m${XCODE_IOS_PLATFORM}-version-min=${IOS_DEPLOYMENT_TARGET}") -endif() - -set (CMAKE_SHARED_LINKER_FLAGS_INIT "-fapplication-extension") -set (CMAKE_C_FLAGS_INIT "${XCODE_IOS_PLATFORM_VERSION_FLAGS}") -# Hidden visibility is required for cxx on iOS -set (CMAKE_CXX_FLAGS_INIT "${XCODE_IOS_PLATFORM_VERSION_FLAGS} -fvisibility-inlines-hidden") - -set (CMAKE_C_LINK_FLAGS "${XCODE_IOS_PLATFORM_VERSION_FLAGS} -fapplication-extension -Wl,-search_paths_first ${CMAKE_C_LINK_FLAGS}") -set (CMAKE_CXX_LINK_FLAGS "${XCODE_IOS_PLATFORM_VERSION_FLAGS} -fapplication-extension -Wl,-search_paths_first ${CMAKE_CXX_LINK_FLAGS}") - -set (CMAKE_PLATFORM_HAS_INSTALLNAME 1) -set (CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-dynamiclib -headerpad_max_install_names") -set (CMAKE_SHARED_MODULE_CREATE_C_FLAGS "-bundle -headerpad_max_install_names") -set (CMAKE_SHARED_MODULE_LOADER_C_FLAG "-Wl,-bundle_loader,") -set (CMAKE_SHARED_MODULE_LOADER_CXX_FLAG "-Wl,-bundle_loader,") -set (CMAKE_FIND_LIBRARY_SUFFIXES ".dylib" ".so" ".a") - -# hack: if a new cmake (which uses CMAKE_INSTALL_NAME_TOOL) runs on an old build tree -# (where install_name_tool was hardcoded) and where CMAKE_INSTALL_NAME_TOOL isn't in the cache -# and still cmake didn't fail in CMakeFindBinUtils.cmake (because it isn't rerun) -# hardcode CMAKE_INSTALL_NAME_TOOL here to install_name_tool, so it behaves as it did before, Alex -if (NOT DEFINED CMAKE_INSTALL_NAME_TOOL) - find_program(CMAKE_INSTALL_NAME_TOOL install_name_tool) -endif (NOT DEFINED CMAKE_INSTALL_NAME_TOOL) - -# Setup iOS deployment target -set (IOS_DEPLOYMENT_TARGET ${IOS_DEPLOYMENT_TARGET} CACHE STRING "Minimum iOS version") - -# Setup iOS developer location unless specified manually with CMAKE_IOS_DEVELOPER_ROOT -# Note Xcode 4.3 changed the installation location, choose the most recent one available -execute_process(COMMAND /usr/bin/xcode-select -print-path OUTPUT_VARIABLE CMAKE_XCODE_DEVELOPER_DIR OUTPUT_STRIP_TRAILING_WHITESPACE) -set (XCODE_POST_43_ROOT "${CMAKE_XCODE_DEVELOPER_DIR}/Platforms/${IOS_PLATFORM_LOCATION}/Developer") -set (XCODE_PRE_43_ROOT "/Developer/Platforms/${IOS_PLATFORM_LOCATION}/Developer") -if (NOT DEFINED CMAKE_IOS_DEVELOPER_ROOT) - if (EXISTS ${XCODE_POST_43_ROOT}) - set (CMAKE_IOS_DEVELOPER_ROOT ${XCODE_POST_43_ROOT}) - elseif (EXISTS ${XCODE_PRE_43_ROOT}) - set (CMAKE_IOS_DEVELOPER_ROOT ${XCODE_PRE_43_ROOT}) - endif (EXISTS ${XCODE_POST_43_ROOT}) -endif (NOT DEFINED CMAKE_IOS_DEVELOPER_ROOT) -set (CMAKE_IOS_DEVELOPER_ROOT ${CMAKE_IOS_DEVELOPER_ROOT} CACHE PATH "Location of iOS Platform") - -# Find and use the most recent iOS sdk unless specified manually with CMAKE_IOS_SDK_ROOT -if (NOT DEFINED CMAKE_IOS_SDK_ROOT) - file (GLOB _CMAKE_IOS_SDKS "${CMAKE_IOS_DEVELOPER_ROOT}/SDKs/*") - if (_CMAKE_IOS_SDKS) - list (SORT _CMAKE_IOS_SDKS) - list (REVERSE _CMAKE_IOS_SDKS) - list (GET _CMAKE_IOS_SDKS 0 CMAKE_IOS_SDK_ROOT) - else (_CMAKE_IOS_SDKS) - message (FATAL_ERROR "No iOS SDK's found in default search path ${CMAKE_IOS_DEVELOPER_ROOT}. Manually set CMAKE_IOS_SDK_ROOT or install the iOS SDK.") - endif (_CMAKE_IOS_SDKS) - message (STATUS "Toolchain using default iOS SDK: ${CMAKE_IOS_SDK_ROOT}") -endif (NOT DEFINED CMAKE_IOS_SDK_ROOT) -set (CMAKE_IOS_SDK_ROOT ${CMAKE_IOS_SDK_ROOT} CACHE PATH "Location of the selected iOS SDK") - -# Set the sysroot default to the most recent SDK -set (CMAKE_OSX_SYSROOT ${CMAKE_IOS_SDK_ROOT} CACHE PATH "Sysroot used for iOS support") - -# Set the architectures unless specified manually with IOS_ARCH -if (NOT DEFINED IOS_ARCH) - if (IOS_PLATFORM STREQUAL "OS") - set (IOS_ARCH "arm64") - elseif (IOS_PLATFORM STREQUAL "SIMULATOR") - set (IOS_ARCH "x86_64;arm64") - elseif (IOS_PLATFORM STREQUAL "WATCHOS") - set (IOS_ARCH "armv7k;arm64_32;arm64") - - # Include C++ Standard Library for Xcode 15 builds. - include_directories(SYSTEM "${CMAKE_IOS_SDK_ROOT}/usr/include/c++/v1") - elseif (IOS_PLATFORM STREQUAL "WATCHSIMULATOR") - set (IOS_ARCH "x86_64;arm64") - - # Include C++ Standard Library for Xcode 15 builds. - include_directories(SYSTEM "${CMAKE_IOS_SDK_ROOT}/usr/include/c++/v1") - elseif (IOS_PLATFORM STREQUAL "TVOS") - set (IOS_ARCH "arm64") - elseif (IOS_PLATFORM STREQUAL "TVSIMULATOR") - set (IOS_ARCH "x86_64;arm64") - elseif (IOS_PLATFORM STREQUAL "VISIONOS") - set (IOS_ARCH "arm64") - elseif (IOS_PLATFORM STREQUAL "VISIONSIMULATOR") - set (IOS_ARCH "x86_64;arm64") - endif() -endif() -message (STATUS "The iOS architectures: ${IOS_ARCH}") - -set (CMAKE_OSX_ARCHITECTURES ${IOS_ARCH} CACHE STRING "Build architecture for iOS") - -# Set the find root to the iOS developer roots and to user defined paths -set (CMAKE_FIND_ROOT_PATH ${CMAKE_IOS_DEVELOPER_ROOT} ${CMAKE_IOS_SDK_ROOT} ${CMAKE_PREFIX_PATH} CACHE STRING "iOS find search path root") - -# default to searching for frameworks first -set (CMAKE_FIND_FRAMEWORK FIRST) - -# set up the default search directories for frameworks -set (CMAKE_SYSTEM_FRAMEWORK_PATH - ${CMAKE_IOS_SDK_ROOT}/System/Library/Frameworks - ${CMAKE_IOS_SDK_ROOT}/System/Library/PrivateFrameworks - ${CMAKE_IOS_SDK_ROOT}/Developer/Library/Frameworks -) - -# only search the iOS sdks, not the remainder of the host filesystem -set (CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ONLY) -set (CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) -set (CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) - -# This little macro lets you set any Xcode specific property -macro (set_xcode_property TARGET XCODE_PROPERTY XCODE_VALUE) - set_property (TARGET ${TARGET} PROPERTY XCODE_ATTRIBUTE_${XCODE_PROPERTY} ${XCODE_VALUE}) -endmacro (set_xcode_property) - -# This macro lets you find executable programs on the host system -macro (find_host_package) - set (CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) - set (CMAKE_FIND_ROOT_PATH_MODE_LIBRARY NEVER) - set (CMAKE_FIND_ROOT_PATH_MODE_INCLUDE NEVER) - set (IOS FALSE) - - find_package(${ARGN}) - - set (IOS TRUE) - set (CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ONLY) - set (CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) - set (CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) -endmacro (find_host_package) diff --git a/third-party/td/td/CMake/illumos.cmake b/third-party/td/td/CMake/illumos.cmake deleted file mode 100644 index 70583d1a82..0000000000 --- a/third-party/td/td/CMake/illumos.cmake +++ /dev/null @@ -1,10 +0,0 @@ -if (CMAKE_SYSTEM_NAME STREQUAL "SunOS") - # - # Determine if the host is running an illumos distribution: - # - execute_process(COMMAND /usr/bin/uname -o OUTPUT_VARIABLE UNAME_O OUTPUT_STRIP_TRAILING_WHITESPACE) - - if (UNAME_O STREQUAL "illumos") - set(ILLUMOS 1) - endif() -endif() diff --git a/third-party/td/td/CMakeLists.txt b/third-party/td/td/CMakeLists.txt deleted file mode 100644 index d6bbc903b6..0000000000 --- a/third-party/td/td/CMakeLists.txt +++ /dev/null @@ -1,1449 +0,0 @@ -cmake_minimum_required(VERSION 3.10 FATAL_ERROR) - -project(TDLib VERSION 1.8.46 LANGUAGES CXX C) - -if (NOT DEFINED CMAKE_MODULE_PATH) - set(CMAKE_MODULE_PATH "") -endif() -set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMake" "${CMAKE_MODULE_PATH}") - -if (NOT DEFINED CMAKE_INSTALL_LIBDIR) - set(CMAKE_INSTALL_LIBDIR "lib") -endif() -if (NOT DEFINED CMAKE_INSTALL_BINDIR) - set(CMAKE_INSTALL_BINDIR "bin") -endif() -if (NOT DEFINED CMAKE_INSTALL_INCLUDEDIR) - set(CMAKE_INSTALL_INCLUDEDIR "include") -endif() - -if (POLICY CMP0074) - # use environment variables to find libraries - cmake_policy(SET CMP0074 NEW) -endif() - -include(PreventInSourceBuild) -prevent_in_source_build() - -option(TD_INSTALL_STATIC_LIBRARIES "Enable installation of static libraries." ON) -option(TD_INSTALL_SHARED_LIBRARIES "Enable installation of shared libraries." ON) -option(TD_ENABLE_JNI "Use \"ON\" to enable JNI-compatible TDLib API.") -option(TD_ENABLE_DOTNET "Use \"ON\" to enable generation of C++/CLI or C++/CX TDLib API bindings.") -if (NOT CMAKE_CROSSCOMPILING) - option(TD_GENERATE_SOURCE_FILES "Use \"ON\" to just generate TDLib source files.") -endif() - -include(CTest) - -option(TD_ENABLE_LTO "Use \"ON\" to enable Link Time Optimization.") - -if (TD_ENABLE_LTO) - include(CheckIPOSupported) - check_ipo_supported(RESULT IPO_SUPPORTED) - if (IPO_SUPPORTED) - # set_property(DIRECTORY PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE) do not work? - string(REPLACE ";" " " CXX_FLAGS_IPO "${CMAKE_CXX_COMPILE_OPTIONS_IPO}") - message(STATUS "Use link time optimization CXX options: ${CXX_FLAGS_IPO}") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CXX_FLAGS_IPO}") - - string(REPLACE ";" " " C_FLAGS_IPO "${CMAKE_C_COMPILE_OPTIONS_IPO}") - message(STATUS "Use link time optimization C options: ${C_FLAGS_IPO}") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${C_FLAGS_IPO}") - - string(REPLACE ";" " " LINK_FLAGS_IPO "${CMAKE_CXX_LINK_OPTIONS_IPO}") - message(STATUS "Use link time optimization linker options: ${LINK_FLAGS_IPO}") - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${LINK_FLAGS_IPO}") - endif() -endif() - -# Configure Ccache if available -find_program(CCACHE_FOUND ccache) -#set(CCACHE_FOUND 0) -if (CCACHE_FOUND) - message(STATUS "Found ccache") - set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache) - set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache) -else() - message(STATUS "Could NOT find ccache (this is NOT an error)") -endif() - -set(MEMPROF "" CACHE STRING "Use one of \"ON\", \"FAST\" or \"SAFE\" to enable memory profiling. \ -Works under macOS and Linux when compiled using glibc. \ -In FAST mode stack is unwinded only using frame pointers, which may fail. \ -In SAFE mode stack is unwinded using backtrace function from execinfo.h, which may be very slow. \ -By default both methods are used to achieve the maximum speed and accuracy") - -if (EMSCRIPTEN) - # use prebuilt zlib - set(ZLIB_FOUND 1) - set(ZLIB_LIBRARIES) - set(ZLIB_INCLUDE_DIR) - - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -s ALLOW_MEMORY_GROWTH=1 -s MEMFS_APPEND_TO_TYPED_ARRAYS=1 -s USE_ZLIB=1 -s MODULARIZE=1 \ - -s EXPORT_NAME=\"'createTdwebModule'\" -s WEBSOCKET_URL=\"'wss:#'\" -s EXPORTED_RUNTIME_METHODS=\"['FS','cwrap']\" -lidbfs.js -lworkerfs.js") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -s ALLOW_MEMORY_GROWTH=1 -s MEMFS_APPEND_TO_TYPED_ARRAYS=1 -s USE_ZLIB=1 -s MODULARIZE=1 \ - -s EXPORT_NAME=\"'createTdwebModule'\" -s WEBSOCKET_URL=\"'wss:#'\" -s EXPORTED_RUNTIME_METHODS=\"['FS','cwrap']\" -lidbfs.js -lworkerfs.js") - set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -s DEMANGLE_SUPPORT=1 -s ASSERTIONS=1") - set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -s DEMANGLE_SUPPORT=1 -s ASSERTIONS=1") - - set(TD_EMSCRIPTEN td_wasm) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -s WASM=1 --post-js ${CMAKE_CURRENT_SOURCE_DIR}/post.js") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -s WASM=1") -endif() - -if (NOT TD_GENERATE_SOURCE_FILES) - if (NOT OPENSSL_FOUND) - find_package(OpenSSL) - endif() - if (OPENSSL_FOUND) - message(STATUS "Found OpenSSL: ${OPENSSL_INCLUDE_DIR} ${OPENSSL_LIBRARIES}") - endif() -endif() - -set(CMAKE_THREAD_PREFER_PTHREAD ON) -set(THREADS_PREFER_PTHREAD_FLAG ON) -find_package(Threads REQUIRED) - -if (THREADS_HAVE_PTHREAD_ARG) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread") -endif() - -include(TdSetUpCompiler) -td_set_up_compiler() - -if (MSVC) - option(TD_ENABLE_MULTI_PROCESSOR_COMPILATION "Use \"ON\" to enable multi-processor compilation.") - - if (TD_ENABLE_MULTI_PROCESSOR_COMPILATION) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP") - endif() - - if (TD_ENABLE_JNI) - # https://github.com/tdlib/td/issues/2912 - add_definitions(-D_DISABLE_CONSTEXPR_MUTEX_CONSTRUCTOR) - endif() -endif() - -if (CLANG OR GCC) - if (MEMPROF) - include(CheckCXXCompilerFlag) - check_cxx_compiler_flag(-no-pie CXX_NO_PIE_FLAG) - if (CXX_NO_PIE_FLAG) - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -no-pie") - elseif (APPLE) - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-no_pie") - endif() - include(AddCXXCompilerFlag) - add_cxx_compiler_flag("-static-libstdc++") - add_cxx_compiler_flag("-static-libgcc") - endif() -endif() - -include(GetGitRevisionDescription) -get_git_head_revision(TD_GIT_REFSPEC TD_GIT_COMMIT_HASH) -message(STATUS "Git state: ${TD_GIT_COMMIT_HASH}") - -configure_file("${CMAKE_CURRENT_SOURCE_DIR}/td/telegram/GitCommitHash.cpp.in" "${CMAKE_CURRENT_BINARY_DIR}/td/telegram/GitCommitHash.cpp" @ONLY) - -add_subdirectory(tdtl) - -if (TD_GENERATE_SOURCE_FILES) - set(TDUTILS_MIME_TYPE ON CACHE BOOL "" FORCE) - set(TDUTILS_USE_EXTERNAL_DEPENDENCIES OFF CACHE BOOL "" FORCE) -endif() -set(TDUTILS_ENABLE_INSTALL ${TD_INSTALL_STATIC_LIBRARIES} CACHE BOOL "" FORCE) -add_subdirectory(tdutils) - -add_subdirectory(td/generate) - -if (NOT CMAKE_CROSSCOMPILING) - set(TD_ALWAYS_GENERATE_SOURCE "") - if (TD_GENERATE_SOURCE_FILES) - set(TD_ALWAYS_GENERATE_SOURCE "ALL") - endif() - add_custom_target(prepare_cross_compiling ${TD_ALWAYS_GENERATE_SOURCE} DEPENDS tl_generate_mtproto tl_generate_common tdmime_auto tl_generate_json) - if (TD_ENABLE_DOTNET) - add_custom_target(remove_cpp_documentation - WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" - COMMAND remove_documentation ${TL_TD_API_AUTO_SOURCE} td/telegram/Client.h td/telegram/Log.h td/tl/TlObject.h - COMMENT "Remove C++ documentation from sources" - DEPENDS remove_documentation tl_generate_mtproto tl_generate_common generate_dotnet_api ${TL_TD_API_AUTO_SOURCE} td/telegram/Client.h td/telegram/Log.h td/tl/TlObject.h - ) - - add_dependencies(prepare_cross_compiling generate_dotnet_api remove_cpp_documentation) - endif() -endif() - -if (NOT OPENSSL_FOUND) - if (NOT TD_GENERATE_SOURCE_FILES) - message(WARNING "Can't find OpenSSL: stop TDLib building") - endif() - return() -endif() - -if (NOT ZLIB_FOUND) - find_package(ZLIB) -endif() -if (NOT ZLIB_FOUND) - message(WARNING "Can't find zlib: stop TDLib building") - return() -endif() - -if (NOT TDUTILS_MIME_TYPE OR NOT TDUTILS_USE_EXTERNAL_DEPENDENCIES) - message(WARNING "Option TDUTILS_MIME_TYPE and TDUTILS_USE_EXTERNAL_DEPENDENCIES must not be disabled: stop TDLib building") - return() -endif() - -set(TDACTOR_ENABLE_INSTALL ${TD_INSTALL_STATIC_LIBRARIES} CACHE BOOL "" FORCE) -add_subdirectory(tdactor) - -set(TDNET_ENABLE_INSTALL ${TD_INSTALL_STATIC_LIBRARIES} CACHE BOOL "" FORCE) -add_subdirectory(tdnet) - -set(TDSQLITE_ENABLE_INSTALL ${TD_INSTALL_STATIC_LIBRARIES} CACHE BOOL "" FORCE) -add_subdirectory(sqlite) - -set(TDDB_ENABLE_INSTALL ${TD_INSTALL_STATIC_LIBRARIES} CACHE BOOL "" FORCE) -add_subdirectory(tddb) - -if (BUILD_TESTING) - add_subdirectory(test) -endif() - -set(TDE2E_ENABLE_INSTALL ${TD_INSTALL_STATIC_LIBRARIES} CACHE BOOL "" FORCE) -add_subdirectory(tde2e) - -if (NOT CMAKE_CROSSCOMPILING) - add_subdirectory(benchmark) -endif() - - -get_directory_property(HAS_PARENT PARENT_DIRECTORY) -if (HAS_PARENT) - set(TL_TD_JSON_AUTO ${TL_TD_JSON_AUTO_SOURCE} PARENT_SCOPE) # used in tdbot - set(TD_TEST_SOURCE ${TD_TEST_SOURCE} PARENT_SCOPE) # used to build tests -endif() - - -# SOURCE SETS - -set_source_files_properties(${TL_TD_API_AUTO_SOURCE} PROPERTIES GENERATED TRUE) -if (TD_ENABLE_JNI OR ANDROID) - set(TL_JNI_OBJECT_SOURCE - td/tl/tl_jni_object.cpp - td/tl/tl_jni_object.h - ) -else() - set(TL_JNI_OBJECT_SOURCE) -endif() - -set(TL_TD_API_SOURCE - ${TL_TD_API_AUTO_SOURCE} - ${TL_JNI_OBJECT_SOURCE} - td/tl/TlObject.h -) - -set_source_files_properties(${TL_MTPROTO_AUTO_SOURCE} PROPERTIES GENERATED TRUE) - -set_source_files_properties(${TL_TD_AUTO_SOURCE} PROPERTIES GENERATED TRUE) - -set_source_files_properties(${TL_TD_JSON_AUTO_SOURCE} PROPERTIES GENERATED TRUE) -set(TL_TD_JSON_SOURCE - ${TL_TD_JSON_AUTO_SOURCE} - td/tl/tl_json.h -) - -set_source_files_properties(${TL_C_AUTO_SOURCE} PROPERTIES GENERATED TRUE) -set(TL_C_SCHEME_SOURCE - ${TL_C_AUTO_SOURCE} -) - -set_source_files_properties(${TL_DOTNET_AUTO_SOURCE} PROPERTIES GENERATED TRUE) -set(TL_DOTNET_SCHEME_SOURCE - ${TL_DOTNET_AUTO_SOURCE} - td/tl/tl_dotnet_object.h -) - -set(TD_MTPROTO_SOURCE - td/mtproto/AuthData.cpp - td/mtproto/ConnectionManager.cpp - td/mtproto/DhHandshake.cpp - td/mtproto/Handshake.cpp - td/mtproto/HandshakeActor.cpp - td/mtproto/HttpTransport.cpp - td/mtproto/IStreamTransport.cpp - td/mtproto/KDF.cpp - td/mtproto/Ping.cpp - td/mtproto/PingConnection.cpp - td/mtproto/ProxySecret.cpp - td/mtproto/RawConnection.cpp - td/mtproto/RSA.cpp - td/mtproto/SessionConnection.cpp - td/mtproto/TcpTransport.cpp - td/mtproto/TlsInit.cpp - td/mtproto/TlsReaderByteFlow.cpp - td/mtproto/Transport.cpp - td/mtproto/utils.cpp - - td/mtproto/AuthData.h - td/mtproto/AuthKey.h - td/mtproto/ConnectionManager.h - td/mtproto/CryptoStorer.h - td/mtproto/DhCallback.h - td/mtproto/DhHandshake.h - td/mtproto/Handshake.h - td/mtproto/HandshakeActor.h - td/mtproto/HandshakeConnection.h - td/mtproto/HttpTransport.h - td/mtproto/IStreamTransport.h - td/mtproto/KDF.h - td/mtproto/MessageId.h - td/mtproto/MtprotoQuery.h - td/mtproto/NoCryptoStorer.h - td/mtproto/PacketInfo.h - td/mtproto/PacketStorer.h - td/mtproto/Ping.h - td/mtproto/PingConnection.h - td/mtproto/ProxySecret.h - td/mtproto/RawConnection.h - td/mtproto/RSA.h - td/mtproto/SessionConnection.h - td/mtproto/TcpTransport.h - td/mtproto/TlsInit.h - td/mtproto/TlsReaderByteFlow.h - td/mtproto/Transport.h - td/mtproto/TransportType.h - td/mtproto/utils.h - - ${TL_MTPROTO_AUTO_SOURCE} - - td/tl/TlObject.h - td/tl/tl_object_parse.h - td/tl/tl_object_store.h -) - -set(TDLIB_SOURCE_PART1 - td/telegram/AccountManager.cpp - td/telegram/AffiliateType.cpp - td/telegram/AlarmManager.cpp - td/telegram/AnimationsManager.cpp - td/telegram/Application.cpp - td/telegram/AttachMenuManager.cpp - td/telegram/AudiosManager.cpp - td/telegram/AuthManager.cpp - td/telegram/AutoDownloadSettings.cpp - td/telegram/AutosaveManager.cpp - td/telegram/BackgroundInfo.cpp - td/telegram/BackgroundManager.cpp - td/telegram/BackgroundType.cpp - td/telegram/BaseTheme.cpp - td/telegram/Birthdate.cpp - td/telegram/BoostManager.cpp - td/telegram/BotCommand.cpp - td/telegram/BotCommandScope.cpp - td/telegram/BotInfoManager.cpp - td/telegram/BotMenuButton.cpp - td/telegram/BotQueries.cpp - td/telegram/BotRecommendationManager.cpp - td/telegram/BotVerification.cpp - td/telegram/BotVerifierSettings.cpp - td/telegram/BusinessAwayMessage.cpp - td/telegram/BusinessAwayMessageSchedule.cpp - td/telegram/BusinessBotManageBar.cpp - td/telegram/BusinessBotRights.cpp - td/telegram/BusinessChatLink.cpp - td/telegram/BusinessConnectedBot.cpp - td/telegram/BusinessConnectionManager.cpp - td/telegram/BusinessGreetingMessage.cpp - td/telegram/BusinessInfo.cpp - td/telegram/BusinessIntro.cpp - td/telegram/BusinessManager.cpp - td/telegram/BusinessRecipients.cpp - td/telegram/BusinessWorkHours.cpp - td/telegram/CallActor.cpp - td/telegram/CallbackQueriesManager.cpp - td/telegram/CallDiscardReason.cpp - td/telegram/CallManager.cpp - td/telegram/ChannelParticipantFilter.cpp - td/telegram/ChannelRecommendationManager.cpp - td/telegram/ChatManager.cpp - td/telegram/ChatReactions.cpp - td/telegram/ClientActor.cpp - td/telegram/CommonDialogManager.cpp - td/telegram/ConfigManager.cpp - td/telegram/ConnectionState.cpp - td/telegram/ConnectionStateManager.cpp - td/telegram/Contact.cpp - td/telegram/CountryInfoManager.cpp - td/telegram/DelayDispatcher.cpp - td/telegram/Dependencies.cpp - td/telegram/DeviceTokenManager.cpp - td/telegram/DhCache.cpp - td/telegram/DialogAction.cpp - td/telegram/DialogActionBar.cpp - td/telegram/DialogActionManager.cpp - td/telegram/DialogAdministrator.cpp - td/telegram/DialogDb.cpp - td/telegram/DialogEventLog.cpp - td/telegram/DialogFilter.cpp - td/telegram/DialogFilterInviteLink.cpp - td/telegram/DialogFilterManager.cpp - td/telegram/DialogId.cpp - td/telegram/DialogInviteLink.cpp - td/telegram/DialogInviteLinkManager.cpp - td/telegram/DialogLocation.cpp - td/telegram/DialogManager.cpp - td/telegram/DialogNotificationSettings.cpp - td/telegram/DialogParticipant.cpp - td/telegram/DialogParticipantFilter.cpp - td/telegram/DialogParticipantManager.cpp - td/telegram/DialogSource.cpp - td/telegram/Dimensions.cpp - td/telegram/DisallowedGiftsSettings.cpp - td/telegram/Document.cpp - td/telegram/DocumentsManager.cpp - td/telegram/DownloadManager.cpp - td/telegram/DownloadManagerCallback.cpp - td/telegram/DraftMessage.cpp - td/telegram/EmailVerification.cpp - td/telegram/EmojiGroup.cpp - td/telegram/EmojiGroupType.cpp - td/telegram/EmojiStatus.cpp - td/telegram/FactCheck.cpp - td/telegram/FileReferenceManager.cpp - td/telegram/files/FileBitmask.cpp - td/telegram/files/FileDb.cpp - td/telegram/files/FileDownloader.cpp - td/telegram/files/FileDownloadManager.cpp - td/telegram/files/FileEncryptionKey.cpp - td/telegram/files/FileFromBytes.cpp - td/telegram/files/FileGcParameters.cpp - td/telegram/files/FileGcWorker.cpp - td/telegram/files/FileGenerateManager.cpp - td/telegram/files/FileHashUploader.cpp - td/telegram/files/FileLoaderUtils.cpp - td/telegram/files/FileLoadManager.cpp - td/telegram/files/FileManager.cpp - td/telegram/files/FileStats.cpp - td/telegram/files/FileStatsWorker.cpp - td/telegram/files/FileType.cpp - td/telegram/files/FileUploader.cpp - td/telegram/files/FileUploadManager.cpp - td/telegram/files/PartsManager.cpp - td/telegram/files/ResourceManager.cpp - td/telegram/files/ResourceState.cpp - td/telegram/ForumTopic.cpp - td/telegram/ForumTopicEditedData.cpp - td/telegram/ForumTopicIcon.cpp - td/telegram/ForumTopicInfo.cpp - td/telegram/ForumTopicManager.cpp - td/telegram/Game.cpp - td/telegram/GameManager.cpp - td/telegram/GiveawayParameters.cpp - td/telegram/Global.cpp - td/telegram/GlobalPrivacySettings.cpp - td/telegram/GroupCallManager.cpp - td/telegram/GroupCallParticipant.cpp - td/telegram/GroupCallParticipantOrder.cpp - td/telegram/GroupCallVideoPayload.cpp - td/telegram/HashtagHints.cpp - td/telegram/InlineMessageManager.cpp - td/telegram/InlineQueriesManager.cpp - td/telegram/InputBusinessChatLink.cpp - td/telegram/InputDialogId.cpp - td/telegram/InputGroupCallId.cpp - td/telegram/InputInvoice.cpp - td/telegram/InputMessageText.cpp - td/telegram/JsonValue.cpp - td/telegram/LanguagePackManager.cpp - td/telegram/LinkManager.cpp - td/telegram/Location.cpp - td/telegram/logevent/LogEventHelper.cpp - td/telegram/Logging.cpp - td/telegram/MediaArea.cpp - td/telegram/MediaAreaCoordinates.cpp - td/telegram/MessageContent.cpp - td/telegram/MessageContentType.cpp - td/telegram/MessageDb.cpp - td/telegram/MessageEntity.cpp - td/telegram/MessageExtendedMedia.cpp - td/telegram/MessageForwardInfo.cpp - td/telegram/MessageId.cpp - td/telegram/MessageImportManager.cpp - td/telegram/MessageInputReplyTo.cpp - td/telegram/MessageOrigin.cpp - td/telegram/MessageQueryManager.cpp - td/telegram/MessageQuote.cpp - td/telegram/MessageReaction.cpp - td/telegram/MessageReactor.cpp - td/telegram/MessageReplyHeader.cpp - td/telegram/MessageReplyInfo.cpp - td/telegram/MessageSearchFilter.cpp - td/telegram/MessageSearchOffset.cpp - td/telegram/MessageSelfDestructType.cpp - td/telegram/MessageSender.cpp - td/telegram/MessagesInfo.cpp - td/telegram/MessagesManager.cpp - td/telegram/MessageSource.cpp - td/telegram/MessageThreadDb.cpp - td/telegram/MessageTtl.cpp - td/telegram/MessageViewer.cpp - td/telegram/misc.cpp - td/telegram/MissingInvitee.cpp -) -set(TDLIB_SOURCE_PART2 - td/telegram/net/AuthDataShared.cpp - td/telegram/net/ConnectionCreator.cpp - td/telegram/net/DcAuthManager.cpp - td/telegram/net/DcOptionsSet.cpp - td/telegram/net/MtprotoHeader.cpp - td/telegram/net/NetActor.cpp - td/telegram/net/NetQuery.cpp - td/telegram/net/NetQueryCreator.cpp - td/telegram/net/NetQueryDelayer.cpp - td/telegram/net/NetQueryDispatcher.cpp - td/telegram/net/NetQueryStats.cpp - td/telegram/net/NetQueryVerifier.cpp - td/telegram/net/NetStatsManager.cpp - td/telegram/net/Proxy.cpp - td/telegram/net/PublicRsaKeySharedCdn.cpp - td/telegram/net/PublicRsaKeySharedMain.cpp - td/telegram/net/PublicRsaKeyWatchdog.cpp - td/telegram/net/Session.cpp - td/telegram/net/SessionMultiProxy.cpp - td/telegram/net/SessionProxy.cpp - td/telegram/NewPasswordState.cpp - td/telegram/NotificationGroupInfo.cpp - td/telegram/NotificationGroupType.cpp - td/telegram/NotificationManager.cpp - td/telegram/NotificationSettingsManager.cpp - td/telegram/NotificationSettingsScope.cpp - td/telegram/NotificationSound.cpp - td/telegram/NotificationType.cpp - td/telegram/OnlineManager.cpp - td/telegram/OptionManager.cpp - td/telegram/OrderedMessage.cpp - td/telegram/OrderInfo.cpp - td/telegram/Outline.cpp - td/telegram/PaidReactionType.cpp - td/telegram/PasswordManager.cpp - td/telegram/Payments.cpp - td/telegram/PeerColor.cpp - td/telegram/PeopleNearbyManager.cpp - td/telegram/PhoneNumberManager.cpp - td/telegram/Photo.cpp - td/telegram/PhotoSize.cpp - td/telegram/PhotoSizeSource.cpp - td/telegram/PollManager.cpp - td/telegram/Premium.cpp - td/telegram/PremiumGiftOption.cpp - td/telegram/PrivacyManager.cpp - td/telegram/PromoDataManager.cpp - td/telegram/QueryCombiner.cpp - td/telegram/QueryMerger.cpp - td/telegram/QuickReplyManager.cpp - td/telegram/ReactionListType.cpp - td/telegram/ReactionManager.cpp - td/telegram/ReactionNotificationSettings.cpp - td/telegram/ReactionNotificationsFrom.cpp - td/telegram/ReactionType.cpp - td/telegram/RecentDialogList.cpp - td/telegram/ReferralProgramInfo.cpp - td/telegram/ReferralProgramManager.cpp - td/telegram/ReferralProgramParameters.cpp - td/telegram/ReferralProgramSortOrder.cpp - td/telegram/RepliedMessageInfo.cpp - td/telegram/ReplyMarkup.cpp - td/telegram/ReportReason.cpp - td/telegram/RequestedDialogType.cpp - td/telegram/Requests.cpp - td/telegram/RestrictionReason.cpp - td/telegram/SavedMessagesManager.cpp - td/telegram/SavedMessagesTopicId.cpp - td/telegram/ScopeNotificationSettings.cpp - td/telegram/SecretChatActor.cpp - td/telegram/SecretChatDb.cpp - td/telegram/SecretChatsManager.cpp - td/telegram/SecretInputMedia.cpp - td/telegram/SecureManager.cpp - td/telegram/SecureStorage.cpp - td/telegram/SecureValue.cpp - td/telegram/SendCodeHelper.cpp - td/telegram/SentEmailCode.cpp - td/telegram/SequenceDispatcher.cpp - td/telegram/SharedDialog.cpp - td/telegram/SpecialStickerSetType.cpp - td/telegram/SponsoredMessageManager.cpp - td/telegram/StarAmount.cpp - td/telegram/StarGift.cpp - td/telegram/StarGiftAttribute.cpp - td/telegram/StarGiftId.cpp - td/telegram/StarGiftManager.cpp - td/telegram/StarGiftSettings.cpp - td/telegram/StarManager.cpp - td/telegram/StarSubscription.cpp - td/telegram/StarSubscriptionPricing.cpp - td/telegram/StateManager.cpp - td/telegram/StatisticsManager.cpp - td/telegram/StickerFormat.cpp - td/telegram/StickerListType.cpp - td/telegram/StickerMaskPosition.cpp - td/telegram/StickerPhotoSize.cpp - td/telegram/StickerSetId.cpp - td/telegram/StickersManager.cpp - td/telegram/StickerType.cpp - td/telegram/StorageManager.cpp - td/telegram/StoryContent.cpp - td/telegram/StoryContentType.cpp - td/telegram/StoryDb.cpp - td/telegram/StoryForwardInfo.cpp - td/telegram/StoryInteractionInfo.cpp - td/telegram/StoryManager.cpp - td/telegram/StoryStealthMode.cpp - td/telegram/StoryViewer.cpp - td/telegram/SuggestedAction.cpp - td/telegram/SuggestedActionManager.cpp - td/telegram/Support.cpp - td/telegram/SynchronousRequests.cpp - td/telegram/TargetDialogTypes.cpp - td/telegram/Td.cpp - td/telegram/TdDb.cpp - td/telegram/TermsOfService.cpp - td/telegram/TermsOfServiceManager.cpp - td/telegram/ThemeManager.cpp - td/telegram/ThemeSettings.cpp - td/telegram/TimeZoneManager.cpp - td/telegram/TopDialogCategory.cpp - td/telegram/TopDialogManager.cpp - td/telegram/TranscriptionInfo.cpp - td/telegram/TranscriptionManager.cpp - td/telegram/TranslationManager.cpp - td/telegram/UpdatesManager.cpp - td/telegram/UserManager.cpp - td/telegram/Usernames.cpp - td/telegram/UserPrivacySetting.cpp - td/telegram/UserPrivacySettingRule.cpp - td/telegram/UserStarGift.cpp - td/telegram/Venue.cpp - td/telegram/VerificationStatus.cpp - td/telegram/VideoNotesManager.cpp - td/telegram/VideosManager.cpp - td/telegram/VoiceNotesManager.cpp - td/telegram/WebApp.cpp - td/telegram/WebAppManager.cpp - td/telegram/WebAppOpenParameters.cpp - td/telegram/WebPageBlock.cpp - td/telegram/WebPagesManager.cpp - - td/telegram/AccentColorId.h - td/telegram/AccessRights.h - td/telegram/AccountManager.h - td/telegram/AffectedHistory.h - td/telegram/AffiliateType.h - td/telegram/AlarmManager.h - td/telegram/AnimationsManager.h - td/telegram/Application.h - td/telegram/AttachMenuManager.h - td/telegram/AudiosManager.h - td/telegram/AuthManager.h - td/telegram/AutoDownloadSettings.h - td/telegram/AutosaveManager.h - td/telegram/BackgroundId.h - td/telegram/BackgroundInfo.h - td/telegram/BackgroundManager.h - td/telegram/BackgroundType.h - td/telegram/BaseTheme.h - td/telegram/Birthdate.h - td/telegram/BotVerification.h - td/telegram/BotVerifierSettings.h - td/telegram/BlockListId.h - td/telegram/BoostManager.h - td/telegram/BotCommand.h - td/telegram/BotCommandScope.h - td/telegram/BotInfoManager.h - td/telegram/BotMenuButton.h - td/telegram/BotQueries.h - td/telegram/BotRecommendationManager.h - td/telegram/BusinessAwayMessage.h - td/telegram/BusinessAwayMessageSchedule.h - td/telegram/BusinessBotManageBar.h - td/telegram/BusinessBotRights.h - td/telegram/BusinessChatLink.h - td/telegram/BusinessConnectedBot.h - td/telegram/BusinessConnectionId.h - td/telegram/BusinessConnectionManager.h - td/telegram/BusinessGreetingMessage.h - td/telegram/BusinessInfo.h - td/telegram/BusinessIntro.h - td/telegram/BusinessManager.h - td/telegram/BusinessRecipients.h - td/telegram/BusinessWorkHours.h - td/telegram/CallActor.h - td/telegram/CallbackQueriesManager.h - td/telegram/CallDiscardReason.h - td/telegram/CallId.h - td/telegram/CallManager.h - td/telegram/ChainId.h - td/telegram/ChannelId.h - td/telegram/ChannelParticipantFilter.h - td/telegram/ChannelRecommendationManager.h - td/telegram/ChannelType.h - td/telegram/ChatId.h - td/telegram/ChatManager.h - td/telegram/ChatReactions.h - td/telegram/ClientActor.h - td/telegram/CommonDialogManager.h - td/telegram/ConfigManager.h - td/telegram/ConnectionState.h - td/telegram/ConnectionStateManager.h - td/telegram/Contact.h - td/telegram/CountryInfoManager.h - td/telegram/CustomEmojiId.h - td/telegram/DelayDispatcher.h - td/telegram/Dependencies.h - td/telegram/DeviceTokenManager.h - td/telegram/DhCache.h - td/telegram/DhConfig.h - td/telegram/DialogAction.h - td/telegram/DialogActionBar.h - td/telegram/DialogActionManager.h - td/telegram/DialogAdministrator.h - td/telegram/DialogBoostLinkInfo.h - td/telegram/DialogDate.h - td/telegram/DialogDb.h - td/telegram/DialogEventLog.h - td/telegram/DialogFilter.h - td/telegram/DialogFilterDialogInfo.h - td/telegram/DialogFilterId.h - td/telegram/DialogFilterInviteLink.h - td/telegram/DialogFilterManager.h - td/telegram/DialogId.h - td/telegram/DialogInviteLink.h - td/telegram/DialogInviteLinkManager.h - td/telegram/DialogListId.h - td/telegram/DialogLocation.h - td/telegram/DialogManager.h - td/telegram/DialogNotificationSettings.h - td/telegram/DialogParticipant.h - td/telegram/DialogParticipantFilter.h - td/telegram/DialogParticipantManager.h - td/telegram/DialogSource.h - td/telegram/Dimensions.h - td/telegram/DisallowedGiftsSettings.h - td/telegram/Document.h - td/telegram/DocumentsManager.h - td/telegram/DownloadManager.h - td/telegram/DownloadManagerCallback.h - td/telegram/DraftMessage.h - td/telegram/EmailVerification.h - td/telegram/EmojiGroup.h - td/telegram/EmojiGroupType.h - td/telegram/EmojiStatus.h - td/telegram/EncryptedFile.h - td/telegram/FactCheck.h - td/telegram/FileReferenceManager.h - td/telegram/files/FileBitmask.h - td/telegram/files/FileData.h - td/telegram/files/FileDb.h - td/telegram/files/FileDbId.h - td/telegram/files/FileDownloader.h - td/telegram/files/FileDownloadManager.h - td/telegram/files/FileEncryptionKey.h - td/telegram/files/FileFromBytes.h - td/telegram/files/FileGcParameters.h - td/telegram/files/FileGcWorker.h - td/telegram/files/FileGenerateManager.h - td/telegram/files/FileHashUploader.h - td/telegram/files/FileId.h - td/telegram/files/FileLoaderActor.h - td/telegram/files/FileLoaderUtils.h - td/telegram/files/FileLoadManager.h - td/telegram/files/FileLocation.h - td/telegram/files/FileManager.h - td/telegram/files/FileSourceId.h - td/telegram/files/FileStats.h - td/telegram/files/FileStatsWorker.h - td/telegram/files/FileType.h - td/telegram/files/FileUploader.h - td/telegram/files/FileUploadId.h - td/telegram/files/FileUploadManager.h - td/telegram/files/PartsManager.h - td/telegram/files/ResourceManager.h - td/telegram/files/ResourceState.h - td/telegram/FolderId.h - td/telegram/ForumTopic.h - td/telegram/ForumTopicEditedData.h - td/telegram/ForumTopicIcon.h - td/telegram/ForumTopicInfo.h - td/telegram/ForumTopicManager.h - td/telegram/Game.h - td/telegram/GameManager.h - td/telegram/GitCommitHash.h - td/telegram/GiveawayParameters.h - td/telegram/Global.h - td/telegram/GlobalPrivacySettings.h - td/telegram/GroupCallId.h - td/telegram/GroupCallManager.h - td/telegram/GroupCallParticipant.h - td/telegram/GroupCallParticipantOrder.h - td/telegram/GroupCallVideoPayload.h - td/telegram/HashtagHints.h - td/telegram/InlineMessageManager.h - td/telegram/InlineQueriesManager.h - td/telegram/InputBusinessChatLink.h - td/telegram/InputDialogId.h - td/telegram/InputGroupCallId.h - td/telegram/InputInvoice.h - td/telegram/InputMessageText.h - td/telegram/JsonValue.h - td/telegram/LabeledPricePart.h - td/telegram/LanguagePackManager.h - td/telegram/LinkManager.h - td/telegram/Location.h - td/telegram/logevent/LogEvent.h - td/telegram/logevent/LogEventHelper.h - td/telegram/logevent/SecretChatEvent.h - td/telegram/Logging.h - td/telegram/MediaArea.h - td/telegram/MediaAreaCoordinates.h - td/telegram/MessageContent.h - td/telegram/MessageContentType.h - td/telegram/MessageCopyOptions.h - td/telegram/MessageDb.h - td/telegram/MessageEffectId.h - td/telegram/MessageEntity.h - td/telegram/MessageExtendedMedia.h - td/telegram/MessageForwardInfo.h - td/telegram/MessageFullId.h - td/telegram/MessageId.h - td/telegram/MessageImportManager.h - td/telegram/MessageInputReplyTo.h - td/telegram/MessageLinkInfo.h - td/telegram/MessageOrigin.h - td/telegram/MessageQueryManager.h - td/telegram/MessageQuote.h - td/telegram/MessageReaction.h - td/telegram/MessageReactor.h - td/telegram/MessageReplyHeader.h - td/telegram/MessageReplyInfo.h - td/telegram/MessageSearchFilter.h - td/telegram/MessageSearchOffset.h - td/telegram/MessageSelfDestructType.h - td/telegram/MessageSender.h - td/telegram/MessagesInfo.h - td/telegram/MessagesManager.h - td/telegram/MessageSource.h - td/telegram/MessageThreadDb.h - td/telegram/MessageThreadInfo.h - td/telegram/MessageTtl.h - td/telegram/MessageViewer.h - td/telegram/MinChannel.h - td/telegram/misc.h - td/telegram/MissingInvitee.h - td/telegram/net/AuthDataShared.h - td/telegram/net/AuthKeyState.h - td/telegram/net/ConnectionCreator.h - td/telegram/net/DcAuthManager.h - td/telegram/net/DcId.h - td/telegram/net/DcOptions.h - td/telegram/net/DcOptionsSet.h - td/telegram/net/MtprotoHeader.h - td/telegram/net/NetActor.h - td/telegram/net/NetQuery.h - td/telegram/net/NetQueryCounter.h - td/telegram/net/NetQueryCreator.h - td/telegram/net/NetQueryDelayer.h - td/telegram/net/NetQueryDispatcher.h - td/telegram/net/NetQueryStats.h - td/telegram/net/NetQueryVerifier.h - td/telegram/net/NetStatsManager.h - td/telegram/net/NetType.h - td/telegram/net/Proxy.h - td/telegram/net/PublicRsaKeySharedCdn.h - td/telegram/net/PublicRsaKeySharedMain.h - td/telegram/net/PublicRsaKeyWatchdog.h - td/telegram/net/Session.h - td/telegram/net/SessionMultiProxy.h - td/telegram/net/SessionProxy.h - td/telegram/net/TempAuthKeyWatchdog.h - td/telegram/NewPasswordState.h - td/telegram/Notification.h - td/telegram/NotificationGroupFromDatabase.h - td/telegram/NotificationGroupId.h - td/telegram/NotificationGroupInfo.h - td/telegram/NotificationGroupKey.h - td/telegram/NotificationGroupType.h - td/telegram/NotificationId.h - td/telegram/NotificationManager.h - td/telegram/NotificationObjectFullId.h - td/telegram/NotificationObjectId.h - td/telegram/NotificationSettingsManager.h - td/telegram/NotificationSettingsScope.h - td/telegram/NotificationSound.h - td/telegram/NotificationSoundType.h - td/telegram/NotificationType.h - td/telegram/OnlineManager.h - td/telegram/OptionManager.h - td/telegram/OrderedMessage.h - td/telegram/OrderInfo.h - td/telegram/Outline.h - td/telegram/PaidReactionType.h - td/telegram/PasswordManager.h - td/telegram/Payments.h - td/telegram/PeerColor.h - td/telegram/PeopleNearbyManager.h - td/telegram/PhoneNumberManager.h - td/telegram/Photo.h - td/telegram/PhotoFormat.h - td/telegram/PhotoSize.h - td/telegram/PhotoSizeSource.h - td/telegram/PhotoSizeType.h - td/telegram/PollId.h - td/telegram/PollManager.h - td/telegram/Premium.h - td/telegram/PremiumGiftOption.h - td/telegram/PrivacyManager.h - td/telegram/PromoDataManager.h - td/telegram/PtsManager.h - td/telegram/PublicDialogType.h - td/telegram/QueryCombiner.h - td/telegram/QueryMerger.h - td/telegram/QuickReplyManager.h - td/telegram/QuickReplyMessageFullId.h - td/telegram/QuickReplyShortcutId.h - td/telegram/ReactionListType.h - td/telegram/ReactionManager.h - td/telegram/ReactionNotificationSettings.h - td/telegram/ReactionNotificationsFrom.h - td/telegram/ReactionType.h - td/telegram/ReactionUnavailabilityReason.h - td/telegram/RecentDialogList.h - td/telegram/ReferralProgramInfo.h - td/telegram/ReferralProgramManager.h - td/telegram/ReferralProgramParameters.h - td/telegram/ReferralProgramSortOrder.h - td/telegram/RepliedMessageInfo.h - td/telegram/ReplyMarkup.h - td/telegram/ReportReason.h - td/telegram/RequestActor.h - td/telegram/RequestedDialogType.h - td/telegram/Requests.h - td/telegram/RestrictionReason.h - td/telegram/SavedMessagesManager.h - td/telegram/SavedMessagesTopicId.h - td/telegram/ScheduledServerMessageId.h - td/telegram/ScopeNotificationSettings.h - td/telegram/SecretChatActor.h - td/telegram/SecretChatDb.h - td/telegram/SecretChatId.h - td/telegram/SecretChatLayer.h - td/telegram/SecretChatsManager.h - td/telegram/SecretInputMedia.h - td/telegram/SecureManager.h - td/telegram/SecureStorage.h - td/telegram/SecureValue.h - td/telegram/SendCodeHelper.h - td/telegram/SentEmailCode.h - td/telegram/SequenceDispatcher.h - td/telegram/ServerMessageId.h - td/telegram/SetWithPosition.h - td/telegram/SharedDialog.h - td/telegram/SpecialStickerSetType.h - td/telegram/SponsoredMessageManager.h - td/telegram/StarAmount.h - td/telegram/StarGift.h - td/telegram/StarGiftAttribute.h - td/telegram/StarGiftId.h - td/telegram/StarGiftManager.h - td/telegram/StarGiftSettings.h - td/telegram/StarManager.h - td/telegram/StarSubscription.h - td/telegram/StarSubscriptionPricing.h - td/telegram/StateManager.h - td/telegram/StatisticsManager.h - td/telegram/StickerFormat.h - td/telegram/StickerListType.h - td/telegram/StickerMaskPosition.h - td/telegram/StickerPhotoSize.h - td/telegram/StickerSetId.h - td/telegram/StickersManager.h - td/telegram/StickerType.h - td/telegram/StorageManager.h - td/telegram/StoryContent.h - td/telegram/StoryContentType.h - td/telegram/StoryDb.h - td/telegram/StoryForwardInfo.h - td/telegram/StoryFullId.h - td/telegram/StoryId.h - td/telegram/StoryInteractionInfo.h - td/telegram/StoryListId.h - td/telegram/StoryManager.h - td/telegram/StoryNotificationSettings.h - td/telegram/StoryStealthMode.h - td/telegram/StoryViewer.h - td/telegram/SuggestedAction.h - td/telegram/SuggestedActionManager.h - td/telegram/Support.h - td/telegram/SynchronousRequests.h - td/telegram/TargetDialogTypes.h - td/telegram/Td.h - td/telegram/TdCallback.h - td/telegram/TdDb.h - td/telegram/TermsOfService.h - td/telegram/TermsOfServiceManager.h - td/telegram/ThemeManager.h - td/telegram/ThemeSettings.h - td/telegram/TimeZoneManager.h - td/telegram/TopDialogCategory.h - td/telegram/TopDialogManager.h - td/telegram/TranscriptionInfo.h - td/telegram/TranscriptionManager.h - td/telegram/TranslationManager.h - td/telegram/UniqueId.h - td/telegram/UpdatesManager.h - td/telegram/UserId.h - td/telegram/UserManager.h - td/telegram/Usernames.h - td/telegram/UserPrivacySetting.h - td/telegram/UserPrivacySettingRule.h - td/telegram/UserStarGift.h - td/telegram/Venue.h - td/telegram/VerificationStatus.h - td/telegram/Version.h - td/telegram/VideoNotesManager.h - td/telegram/VideosManager.h - td/telegram/VoiceNotesManager.h - td/telegram/WebApp.h - td/telegram/WebAppManager.h - td/telegram/WebAppOpenParameters.h - td/telegram/WebPageBlock.h - td/telegram/WebPageId.h - td/telegram/WebPagesManager.h - - td/telegram/AnimationsManager.hpp - td/telegram/AudiosManager.hpp - td/telegram/AuthManager.hpp - td/telegram/BackgroundInfo.hpp - td/telegram/BackgroundType.hpp - td/telegram/Birthdate.hpp - td/telegram/BotVerification.hpp - td/telegram/BotVerifierSettings.hpp - td/telegram/BusinessAwayMessage.hpp - td/telegram/BusinessAwayMessageSchedule.hpp - td/telegram/BusinessBotRights.hpp - td/telegram/BusinessConnectedBot.hpp - td/telegram/BusinessGreetingMessage.hpp - td/telegram/BusinessInfo.hpp - td/telegram/BusinessIntro.hpp - td/telegram/BusinessRecipients.hpp - td/telegram/BusinessWorkHours.hpp - td/telegram/ChatReactions.hpp - td/telegram/DialogFilter.hpp - td/telegram/DialogInviteLink.hpp - td/telegram/DialogNotificationSettings.hpp - td/telegram/Dimensions.hpp - td/telegram/DisallowedGiftsSettings.hpp - td/telegram/Document.hpp - td/telegram/DocumentsManager.hpp - td/telegram/DraftMessage.hpp - td/telegram/EmojiGroup.hpp - td/telegram/FactCheck.hpp - td/telegram/FileReferenceManager.hpp - td/telegram/files/FileData.hpp - td/telegram/files/FileId.hpp - td/telegram/files/FileLocation.hpp - td/telegram/files/FileManager.hpp - td/telegram/files/FileSourceId.hpp - td/telegram/ForumTopic.hpp - td/telegram/ForumTopicEditedData.hpp - td/telegram/ForumTopicIcon.hpp - td/telegram/ForumTopicInfo.hpp - td/telegram/Game.hpp - td/telegram/GiveawayParameters.hpp - td/telegram/InputInvoice.hpp - td/telegram/InputMessageText.hpp - td/telegram/MediaArea.hpp - td/telegram/MediaAreaCoordinates.hpp - td/telegram/MessageEntity.hpp - td/telegram/MessageExtendedMedia.hpp - td/telegram/MessageForwardInfo.hpp - td/telegram/MessageInputReplyTo.hpp - td/telegram/MessageOrigin.hpp - td/telegram/MessageQuote.hpp - td/telegram/MessageReaction.hpp - td/telegram/MessageReactor.hpp - td/telegram/MessageReplyInfo.hpp - td/telegram/MinChannel.hpp - td/telegram/NotificationGroupInfo.hpp - td/telegram/OrderInfo.hpp - td/telegram/PaidReactionType.hpp - td/telegram/Photo.hpp - td/telegram/PhotoSize.hpp - td/telegram/PhotoSizeSource.hpp - td/telegram/PhotoSizeType.hpp - td/telegram/PollId.hpp - td/telegram/PollManager.hpp - td/telegram/PremiumGiftOption.hpp - td/telegram/ReactionManager.hpp - td/telegram/ReactionNotificationSettings.hpp - td/telegram/ReactionNotificationsFrom.hpp - td/telegram/ReactionType.hpp - td/telegram/ReferralProgramInfo.hpp - td/telegram/ReferralProgramParameters.hpp - td/telegram/RepliedMessageInfo.hpp - td/telegram/ReplyMarkup.hpp - td/telegram/RequestedDialogType.hpp - td/telegram/ScopeNotificationSettings.hpp - td/telegram/SecureValue.hpp - td/telegram/SendCodeHelper.hpp - td/telegram/SharedDialog.hpp - td/telegram/StarAmount.hpp - td/telegram/StarGift.hpp - td/telegram/StarGiftAttribute.hpp - td/telegram/StarGiftId.hpp - td/telegram/StarGiftSettings.hpp - td/telegram/StarSubscriptionPricing.hpp - td/telegram/StickerMaskPosition.hpp - td/telegram/StickerPhotoSize.hpp - td/telegram/StickersManager.hpp - td/telegram/StoryForwardInfo.hpp - td/telegram/StoryInteractionInfo.hpp - td/telegram/StoryStealthMode.hpp - td/telegram/SuggestedAction.hpp - td/telegram/TermsOfService.hpp - td/telegram/ThemeSettings.hpp - td/telegram/TranscriptionInfo.hpp - td/telegram/VideoNotesManager.hpp - td/telegram/VideosManager.hpp - td/telegram/VoiceNotesManager.hpp - td/telegram/WebApp.hpp - - ${TL_TD_AUTO_SOURCE} - - td/tl/TlObject.h - td/tl/tl_object_parse.h - td/tl/tl_object_store.h - - ${CMAKE_CURRENT_BINARY_DIR}/td/telegram/GitCommitHash.cpp -) -set(TDLIB_SOURCE - ${TDLIB_SOURCE_PART1} - ${TDLIB_SOURCE_PART2} -) - -set(MEMPROF_SOURCE - memprof/memprof.cpp - memprof/memprof.h -) - -set(MEMPROF_STAT_SOURCE - memprof/memprof_stat.cpp - memprof/memprof_stat.h -) - -# LIBRARIES - -# memprof - simple library for memory usage profiling -add_library(memprof STATIC ${MEMPROF_SOURCE}) -target_include_directories(memprof PUBLIC $) -target_link_libraries(memprof PRIVATE tdutils) -if (MEMPROF) - target_compile_definitions(memprof PRIVATE -DUSE_MEMPROF=1) - if (MEMPROF STREQUAL "SAFE") - target_compile_definitions(memprof PRIVATE -DUSE_MEMPROF_SAFE=1) - elseif (MEMPROF STREQUAL "FAST") - target_compile_definitions(memprof PRIVATE -DUSE_MEMPROF_FAST=1) - elseif (NOT MEMPROF) - message(FATAL_ERROR "Unsupported MEMPROF value \"${MEMPROF}\"") - endif() -endif() - -add_library(memprof_stat EXCLUDE_FROM_ALL STATIC ${MEMPROF_STAT_SOURCE}) -target_include_directories(memprof_stat PUBLIC $) -target_link_libraries(memprof_stat PRIVATE tdutils) - - -add_library(tdapi STATIC ${TL_TD_API_SOURCE}) -target_include_directories(tdapi PUBLIC $ INTERFACE $) -target_link_libraries(tdapi PRIVATE tdutils) - -if (TD_ENABLE_JNI AND NOT ANDROID) # jni is available by default on Android - if (NOT JNI_FOUND) - find_package(JNI REQUIRED COMPONENTS JVM) - endif() - message(STATUS "Found JNI: ${JNI_INCLUDE_DIRS} ${JNI_LIBRARIES}") - target_include_directories(tdapi PUBLIC ${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH2}) - target_link_libraries(tdapi PUBLIC ${JAVA_JVM_LIBRARY}) -endif() - -if (NOT CMAKE_CROSSCOMPILING) - add_dependencies(tdapi tl_generate_common) -endif() - -add_library(tdmtproto STATIC ${TD_MTPROTO_SOURCE}) -target_include_directories(tdmtproto PUBLIC $ $) -target_include_directories(tdmtproto SYSTEM PRIVATE ${OPENSSL_INCLUDE_DIR}) -target_link_libraries(tdmtproto PUBLIC tdactor tdnet tdutils PRIVATE ${OPENSSL_CRYPTO_LIBRARY} ${CMAKE_DL_LIBS} ${ZLIB_LIBRARIES}) -if (WIN32) - if (MINGW) - target_link_libraries(tdmtproto PRIVATE ws2_32 mswsock crypt32) - else() - target_link_libraries(tdmtproto PRIVATE ws2_32 Mswsock Crypt32) - endif() -endif() -if (NOT CMAKE_CROSSCOMPILING) - add_dependencies(tdmtproto tl_generate_mtproto) -endif() - -# tdcore - internal TDLib interface -if (MSVC AND TD_ENABLE_LTO) - add_library(tdcore_part1 STATIC ${TDLIB_SOURCE_PART1}) - target_include_directories(tdcore_part1 PUBLIC $ $) - target_link_libraries(tdcore_part1 PUBLIC tdapi tdnet tddb tdactor tde2e tdutils PRIVATE tdmtproto) - - add_library(tdcore_part2 STATIC ${TDLIB_SOURCE_PART2}) - target_include_directories(tdcore_part2 PUBLIC $ $) - target_link_libraries(tdcore_part2 PUBLIC tdapi tdnet tddb tdactor tde2e tdutils PRIVATE tdmtproto) - - add_library(tdcore INTERFACE) - target_link_libraries(tdcore INTERFACE tdcore_part1 tdcore_part2) - - set(TD_CORE_PART_TARGETS tdcore_part1 tdcore_part2) -else() - add_library(tdcore STATIC ${TDLIB_SOURCE}) - target_include_directories(tdcore PUBLIC $ $) - target_link_libraries(tdcore PUBLIC tdapi tdnet tddb tdactor tde2e tdutils PRIVATE tdmtproto) - - set(TD_CORE_PART_TARGETS) -endif() - -if (NOT CMAKE_CROSSCOMPILING) - add_dependencies(tdcore tl_generate_common) - if (TD_ENABLE_JNI) - add_dependencies(tdcore td_generate_java_api) - endif() - if (TD_ENABLE_DOTNET) - add_dependencies(tdcore remove_cpp_documentation) - endif() -endif() - -add_library(tdclient STATIC td/telegram/Client.cpp td/telegram/Client.h td/telegram/Log.cpp td/telegram/Log.h) -target_include_directories(tdclient PUBLIC - $ -) -target_link_libraries(tdclient PUBLIC tdapi PRIVATE tdcore) - -if (TD_ENABLE_DOTNET) - add_library(tddotnet SHARED - td/telegram/ClientDotNet.cpp - td/telegram/LogDotNet.cpp - ${TL_DOTNET_SCHEME_SOURCE} - ) - set_target_properties(tddotnet PROPERTIES OUTPUT_NAME Telegram.Td) - target_link_libraries(tddotnet PRIVATE tdclient tdutils) - target_include_directories(tddotnet PUBLIC - $ - ) - if (NOT CMAKE_CROSSCOMPILING) - add_dependencies(tddotnet generate_dotnet_api) - endif() - - target_compile_options(tddotnet PRIVATE "/doc") - if (CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") - set_target_properties(tddotnet PROPERTIES VS_WINRT_COMPONENT "true") - target_compile_options(tddotnet PUBLIC "/ZW") - else() - set_target_properties(tddotnet PROPERTIES COMPILE_FLAGS "/GR /clr") - target_compile_options(tddotnet PUBLIC "/EHa") - endif() -endif() - -# tdc - TDLib interface in pure C -add_library(tdc STATIC EXCLUDE_FROM_ALL ${TL_C_SCHEME_SOURCE} td/telegram/td_c_client.cpp td/telegram/td_c_client.h) -target_include_directories(tdc PUBLIC - $ - $) -target_link_libraries(tdc PRIVATE tdclient tdutils) -if (NOT CMAKE_CROSSCOMPILING) - add_dependencies(tdc tl_generate_c) -endif() - -add_library(tdjson_private STATIC ${TL_TD_JSON_SOURCE} td/telegram/ClientJson.cpp td/telegram/ClientJson.h) -target_include_directories(tdjson_private PUBLIC - $ - $) -target_link_libraries(tdjson_private PUBLIC tdclient tdutils) -if (NOT CMAKE_CROSSCOMPILING) - add_dependencies(tdjson_private tl_generate_common tl_generate_json) - if (TD_ENABLE_DOTNET) - add_dependencies(tdjson_private remove_cpp_documentation) - endif() -endif() - -set(TD_JSON_HEADERS td/telegram/td_json_client.h td/telegram/td_log.h) -set(TD_JSON_SOURCE td/telegram/td_json_client.cpp td/telegram/td_log.cpp) - -include(GenerateExportHeader) - -add_library(tdjson SHARED ${TD_JSON_SOURCE} ${TD_JSON_HEADERS}) -target_link_libraries(tdjson PRIVATE tdjson_private) -generate_export_header(tdjson EXPORT_FILE_NAME ${CMAKE_CURRENT_BINARY_DIR}/td/telegram/tdjson_export.h) -target_include_directories(tdjson PUBLIC - $ - $) -if (APPLE) - set_target_properties(tdjson PROPERTIES LINK_FLAGS "-Wl,-exported_symbols_list,${CMAKE_CURRENT_SOURCE_DIR}/tdclientjson_export_list") -endif() - -add_library(tdjson_static STATIC ${TD_JSON_SOURCE} ${TD_JSON_HEADERS}) -target_link_libraries(tdjson_static PRIVATE tdjson_private) -target_compile_definitions(tdjson_static PUBLIC TDJSON_STATIC_DEFINE) -target_include_directories(tdjson_static PUBLIC - $ - $) - -# EXECUTABLES -if (EMSCRIPTEN) - set(TD_EMSCRIPTEN_SRC td/telegram/td_emscripten.cpp) - add_executable(${TD_EMSCRIPTEN} ${TD_EMSCRIPTEN_SRC}) - target_include_directories(${TD_EMSCRIPTEN} PUBLIC $) - target_link_libraries(${TD_EMSCRIPTEN} PRIVATE tdjson_static tdactor) -endif() - -if (NOT CMAKE_CROSSCOMPILING) - add_executable(tg_cli td/telegram/cli.cpp ${TL_TD_JSON_SOURCE}) - - if (NOT READLINE_FOUND) - find_package(Readline QUIET) - endif() - if (READLINE_FOUND) - message(STATUS "Found Readline: ${READLINE_INCLUDE_DIR} ${READLINE_LIBRARY}") - if (NOT USABLE_READLINE_FOUND) - set(CMAKE_REQUIRED_INCLUDES "${READLINE_INCLUDE_DIR}") - set(CMAKE_REQUIRED_LIBRARIES "${READLINE_LIBRARY}") - include(CheckCXXSourceCompiles) - unset(USABLE_READLINE_FOUND CACHE) - check_cxx_source_compiles("#include \n#include \nint main() { rl_free(0); }" USABLE_READLINE_FOUND) - if (NOT USABLE_READLINE_FOUND) - message(STATUS "Found Readline is too old, ignore it (this is NOT an error)") - unset(READLINE_INCLUDE_DIR CACHE) - unset(READLINE_LIBRARY CACHE) - endif() - endif() - if (USABLE_READLINE_FOUND) - target_link_libraries(tg_cli PRIVATE ${READLINE_LIBRARY}) - target_include_directories(tg_cli SYSTEM PRIVATE ${READLINE_INCLUDE_DIR}) - target_compile_definitions(tg_cli PRIVATE -DUSE_READLINE=1) - endif() - endif() - target_link_libraries(tg_cli PRIVATE memprof tdclient tdcore) - add_dependencies(tg_cli tl_generate_json) -endif() - -# Exported libraries -add_library(TdStatic INTERFACE) -target_link_libraries(TdStatic INTERFACE tdclient) - -add_library(TdJson INTERFACE) -target_link_libraries(TdJson INTERFACE tdjson) - -add_library(TdJsonStatic INTERFACE) -target_link_libraries(TdJsonStatic INTERFACE tdjson_static) - -add_library(Td::TdStatic ALIAS TdStatic) -add_library(Td::TdJson ALIAS TdJson) -add_library(Td::TdJsonStatic ALIAS TdJsonStatic) - -set(INSTALL_TARGETS tdjson TdJson) -set(INSTALL_STATIC_TARGETS tdjson_static TdJsonStatic tdjson_private "${TD_CORE_PART_TARGETS}" tdcore tdmtproto tdclient TdStatic tdapi) - -if (TD_INSTALL_SHARED_LIBRARIES) - install(TARGETS ${INSTALL_TARGETS} EXPORT TdTargets - LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" - ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" - RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" - INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" - ) -endif() - -if (TD_INSTALL_STATIC_LIBRARIES) - install(TARGETS ${INSTALL_STATIC_TARGETS} EXPORT TdStaticTargets - LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" - ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" - INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" - ) -endif() - -# generate pkg-config files -include(GeneratePkgConfig) - -if (TD_INSTALL_STATIC_LIBRARIES) - generate_pkgconfig(tdutils "Telegram Library - Utils") - generate_pkgconfig(tdactor "Telegram Library - Actor") - generate_pkgconfig(tde2e "Telegram Library - E2E") - generate_pkgconfig(tdnet "Telegram Library - Net") - generate_pkgconfig(tdsqlite "Telegram Library - SQLite") - generate_pkgconfig(tddb "Telegram Library - Database") - if (MEMPROF) - # generate_pkgconfig(memprof "memprof - simple library for memory usage profiling") - endif() - generate_pkgconfig(tdmtproto "Telegram Library - MTProto implementation") - generate_pkgconfig(tdcore "Telegram Library - Core") - generate_pkgconfig(tdclient "Telegram Library - C++ Interface") - if (TD_ENABLE_DOTNET) - # generate_pkgconfig(tddotnet "Telegram Library - C# Interface") - endif() - # generate_pkgconfig(tdc "Telegram Library - C interface") - generate_pkgconfig(tdapi "Telegram Library - API") - generate_pkgconfig(tdjson_private "Telegram Library - JSON interface (private)") - generate_pkgconfig(tdjson_static "Telegram Library - JSON interface (static)") -endif() -if (TD_INSTALL_SHARED_LIBRARIES) - generate_pkgconfig(tdjson "Telegram Library - JSON interface (shared)") -endif() - -if (TD_INSTALL_SHARED_LIBRARIES) - install(EXPORT TdTargets - FILE TdTargets.cmake - NAMESPACE Td:: - DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/Td" - ) -endif() - -if (TD_INSTALL_STATIC_LIBRARIES) - install(EXPORT TdStaticTargets - FILE TdStaticTargets.cmake - NAMESPACE Td:: - DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/Td" - ) -endif() - -if (TD_INSTALL_SHARED_LIBRARIES OR TD_INSTALL_STATIC_LIBRARIES) - # Install tdjson/tdjson_static: - install(FILES ${TD_JSON_HEADERS} "${CMAKE_CURRENT_BINARY_DIR}/td/telegram/tdjson_export.h" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/td/telegram") -endif() -if (TD_INSTALL_STATIC_LIBRARIES) - # Install tdclient: - install(FILES td/telegram/Client.h td/telegram/Log.h DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/td/telegram") - # Install tdapi: - install(FILES td/tl/TlObject.h DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/td/tl") - install(FILES "${TL_TD_AUTO_INCLUDE_DIR}/td/telegram/td_api.h" "${TL_TD_AUTO_INCLUDE_DIR}/td/telegram/td_api.hpp" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/td/telegram") -endif() -if (TD_ENABLE_JNI) - install(FILES td/tl/tl_jni_object.h DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/td/tl") -endif() -if (MSVC AND VCPKG_TOOLCHAIN) - install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/$/" DESTINATION "${CMAKE_INSTALL_BINDIR}" FILES_MATCHING PATTERN "*.dll") -endif() - -include(CMakePackageConfigHelpers) -write_basic_package_version_file("TdConfigVersion.cmake" - VERSION "${TDLib_VERSION}" - COMPATIBILITY ExactVersion -) -install(FILES "TdConfig.cmake" "${CMAKE_CURRENT_BINARY_DIR}/TdConfigVersion.cmake" - DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/Td" -) - -# Add SOVERSION to shared libraries -set_property(TARGET tdjson PROPERTY SOVERSION "${TDLib_VERSION}") diff --git a/third-party/td/td/Doxyfile b/third-party/td/td/Doxyfile deleted file mode 100644 index e9e26e2d5d..0000000000 --- a/third-party/td/td/Doxyfile +++ /dev/null @@ -1,2473 +0,0 @@ -# Doxyfile 1.8.13 - -# This file describes the settings to be used by the documentation system -# doxygen (www.doxygen.org) for a project. -# -# All text after a double hash (##) is considered a comment and is placed in -# front of the TAG it is preceding. -# -# All text after a single hash (#) is considered a comment and will be ignored. -# The format is: -# TAG = value [value, ...] -# For lists, items can also be appended using: -# TAG += value [value, ...] -# Values that contain spaces should be placed between quotes (\" \"). - -#--------------------------------------------------------------------------- -# Project related configuration options -#--------------------------------------------------------------------------- - -# This tag specifies the encoding used for all characters in the config file -# that follow. The default is UTF-8 which is also the encoding used for all text -# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv -# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv -# for the list of possible encodings. -# The default value is: UTF-8. - -DOXYFILE_ENCODING = UTF-8 - -# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by -# double-quotes, unless you are using Doxywizard) that should identify the -# project for which the documentation is generated. This name is used in the -# title of most generated pages and in a few other places. -# The default value is: My Project. - -PROJECT_NAME = "TDLib" - -# The PROJECT_NUMBER tag can be used to enter a project or revision number. This -# could be handy for archiving the generated documentation or if some version -# control system is used. - -PROJECT_NUMBER = - -# Using the PROJECT_BRIEF tag one can provide an optional one line description -# for a project that appears at the top of each page and should give viewer a -# quick idea about the purpose of the project. Keep the description short. - -PROJECT_BRIEF = - -# With the PROJECT_LOGO tag one can specify a logo or an icon that is included -# in the documentation. The maximum height of the logo should not exceed 55 -# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy -# the logo to the output directory. - -PROJECT_LOGO = - -# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path -# into which the generated documentation will be written. If a relative path is -# entered, it will be relative to the location where doxygen was started. If -# left blank the current directory will be used. - -OUTPUT_DIRECTORY = "docs" - -# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub- -# directories (in 2 levels) under the output directory of each output format and -# will distribute the generated files over these directories. Enabling this -# option can be useful when feeding doxygen a huge amount of source files, where -# putting all generated files in the same directory would otherwise causes -# performance problems for the file system. -# The default value is: NO. - -CREATE_SUBDIRS = NO - -# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII -# characters to appear in the names of generated files. If set to NO, non-ASCII -# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode -# U+3044. -# The default value is: NO. - -ALLOW_UNICODE_NAMES = NO - -# The OUTPUT_LANGUAGE tag is used to specify the language in which all -# documentation generated by doxygen is written. Doxygen will use this -# information to generate all constant output in the proper language. -# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese, -# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States), -# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian, -# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages), -# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian, -# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian, -# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish, -# Ukrainian and Vietnamese. -# The default value is: English. - -OUTPUT_LANGUAGE = English - -# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member -# descriptions after the members that are listed in the file and class -# documentation (similar to Javadoc). Set to NO to disable this. -# The default value is: YES. - -BRIEF_MEMBER_DESC = YES - -# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief -# description of a member or function before the detailed description -# -# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the -# brief descriptions will be completely suppressed. -# The default value is: YES. - -REPEAT_BRIEF = YES - -# This tag implements a quasi-intelligent brief description abbreviator that is -# used to form the text in various listings. Each string in this list, if found -# as the leading text of the brief description, will be stripped from the text -# and the result, after processing the whole list, is used as the annotated -# text. Otherwise, the brief description is used as-is. If left blank, the -# following values are used ($name is automatically replaced with the name of -# the entity):The $name class, The $name widget, The $name file, is, provides, -# specifies, contains, represents, a, an and the. - -ABBREVIATE_BRIEF = "The $name class" \ - "The $name widget" \ - "The $name file" \ - is \ - provides \ - specifies \ - contains \ - represents \ - a \ - an \ - the - -# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then -# doxygen will generate a detailed section even if there is only a brief -# description. -# The default value is: NO. - -ALWAYS_DETAILED_SEC = NO - -# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all -# inherited members of a class in the documentation of that class as if those -# members were ordinary class members. Constructors, destructors and assignment -# operators of the base classes will not be shown. -# The default value is: NO. - -INLINE_INHERITED_MEMB = NO - -# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path -# before files name in the file list and in the header files. If set to NO the -# shortest path that makes the file name unique will be used -# The default value is: YES. - -FULL_PATH_NAMES = YES - -# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. -# Stripping is only done if one of the specified strings matches the left-hand -# part of the path. The tag can be used to show relative paths in the file list. -# If left blank the directory from which doxygen is run is used as the path to -# strip. -# -# Note that you can specify absolute paths here, but also relative paths, which -# will be relative from the directory where doxygen is started. -# This tag requires that the tag FULL_PATH_NAMES is set to YES. - -STRIP_FROM_PATH = - -# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the -# path mentioned in the documentation of a class, which tells the reader which -# header file to include in order to use a class. If left blank only the name of -# the header file containing the class definition is used. Otherwise one should -# specify the list of include paths that are normally passed to the compiler -# using the -I flag. - -STRIP_FROM_INC_PATH = td/generate/auto/ . - -# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but -# less readable) file names. This can be useful is your file systems doesn't -# support long names like on DOS, Mac, or CD-ROM. -# The default value is: NO. - -SHORT_NAMES = NO - -# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the -# first line (until the first dot) of a Javadoc-style comment as the brief -# description. If set to NO, the Javadoc-style will behave just like regular Qt- -# style comments (thus requiring an explicit @brief command for a brief -# description.) -# The default value is: NO. - -JAVADOC_AUTOBRIEF = NO - -# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first -# line (until the first dot) of a Qt-style comment as the brief description. If -# set to NO, the Qt-style will behave just like regular Qt-style comments (thus -# requiring an explicit \brief command for a brief description.) -# The default value is: NO. - -QT_AUTOBRIEF = NO - -# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a -# multi-line C++ special comment block (i.e. a block of //! or /// comments) as -# a brief description. This used to be the default behavior. The new default is -# to treat a multi-line C++ comment block as a detailed description. Set this -# tag to YES if you prefer the old behavior instead. -# -# Note that setting this tag to YES also means that rational rose comments are -# not recognized any more. -# The default value is: NO. - -MULTILINE_CPP_IS_BRIEF = NO - -# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the -# documentation from any documented member that it re-implements. -# The default value is: YES. - -INHERIT_DOCS = YES - -# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new -# page for each member. If set to NO, the documentation of a member will be part -# of the file/class/namespace that contains it. -# The default value is: NO. - -SEPARATE_MEMBER_PAGES = NO - -# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen -# uses this value to replace tabs by spaces in code fragments. -# Minimum value: 1, maximum value: 16, default value: 4. - -TAB_SIZE = 4 - -# This tag can be used to specify a number of aliases that act as commands in -# the documentation. An alias has the form: -# name=value -# For example adding -# "sideeffect=@par Side Effects:\n" -# will allow you to put the command \sideeffect (or @sideeffect) in the -# documentation, which will result in a user-defined paragraph with heading -# "Side Effects:". You can put \n's in the value part of an alias to insert -# newlines. - -ALIASES = - -# This tag can be used to specify a number of word-keyword mappings (TCL only). -# A mapping has the form "name=value". For example adding "class=itcl::class" -# will allow you to use the command class in the itcl::class meaning. - -TCL_SUBST = - -# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources -# only. Doxygen will then generate output that is more tailored for C. For -# instance, some of the names that are used will be different. The list of all -# members will be omitted, etc. -# The default value is: NO. - -OPTIMIZE_OUTPUT_FOR_C = NO - -# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or -# Python sources only. Doxygen will then generate output that is more tailored -# for that language. For instance, namespaces will be presented as packages, -# qualified scopes will look different, etc. -# The default value is: NO. - -OPTIMIZE_OUTPUT_JAVA = NO - -# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran -# sources. Doxygen will then generate output that is tailored for Fortran. -# The default value is: NO. - -OPTIMIZE_FOR_FORTRAN = NO - -# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL -# sources. Doxygen will then generate output that is tailored for VHDL. -# The default value is: NO. - -OPTIMIZE_OUTPUT_VHDL = NO - -# Doxygen selects the parser to use depending on the extension of the files it -# parses. With this tag you can assign which parser to use for a given -# extension. Doxygen has a built-in mapping, but you can override or extend it -# using this tag. The format is ext=language, where ext is a file extension, and -# language is one of the parsers supported by doxygen: IDL, Java, Javascript, -# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran: -# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran: -# Fortran. In the later case the parser tries to guess whether the code is fixed -# or free formatted code, this is the default for Fortran type files), VHDL. For -# instance to make doxygen treat .inc files as Fortran files (default is PHP), -# and .f files as C (default is Fortran), use: inc=Fortran f=C. -# -# Note: For files without extension you can use no_extension as a placeholder. -# -# Note that for custom extensions you also need to set FILE_PATTERNS otherwise -# the files are not read by doxygen. - -EXTENSION_MAPPING = - -# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments -# according to the Markdown format, which allows for more readable -# documentation. See http://daringfireball.net/projects/markdown/ for details. -# The output of markdown processing is further processed by doxygen, so you can -# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in -# case of backward compatibilities issues. -# The default value is: YES. - -MARKDOWN_SUPPORT = YES - -# When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up -# to that level are automatically included in the table of contents, even if -# they do not have an id attribute. -# Note: This feature currently applies only to Markdown headings. -# Minimum value: 0, maximum value: 99, default value: 0. -# This tag requires that the tag MARKDOWN_SUPPORT is set to YES. - -TOC_INCLUDE_HEADINGS = 0 - -# When enabled doxygen tries to link words that correspond to documented -# classes, or namespaces to their corresponding documentation. Such a link can -# be prevented in individual cases by putting a % sign in front of the word or -# globally by setting AUTOLINK_SUPPORT to NO. -# The default value is: YES. - -AUTOLINK_SUPPORT = YES - -# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want -# to include (a tag file for) the STL sources as input, then you should set this -# tag to YES in order to let doxygen match functions declarations and -# definitions whose arguments contain STL classes (e.g. func(std::string); -# versus func(std::string) {}). This also make the inheritance and collaboration -# diagrams that involve STL classes more complete and accurate. -# The default value is: NO. - -BUILTIN_STL_SUPPORT = YES - -# If you use Microsoft's C++/CLI language, you should set this option to YES to -# enable parsing support. -# The default value is: NO. - -CPP_CLI_SUPPORT = NO - -# Set the SIP_SUPPORT tag to YES if your project consists of sip (see: -# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen -# will parse them like normal C++ but will assume all classes use public instead -# of private inheritance when no explicit protection keyword is present. -# The default value is: NO. - -SIP_SUPPORT = NO - -# For Microsoft's IDL there are propget and propput attributes to indicate -# getter and setter methods for a property. Setting this option to YES will make -# doxygen to replace the get and set methods by a property in the documentation. -# This will only work if the methods are indeed getting or setting a simple -# type. If this is not the case, or you want to show the methods anyway, you -# should set this option to NO. -# The default value is: YES. - -IDL_PROPERTY_SUPPORT = YES - -# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC -# tag is set to YES then doxygen will reuse the documentation of the first -# member in the group (if any) for the other members of the group. By default -# all members of a group must be documented explicitly. -# The default value is: NO. - -DISTRIBUTE_GROUP_DOC = NO - -# If one adds a struct or class to a group and this option is enabled, then also -# any nested class or struct is added to the same group. By default this option -# is disabled and one has to add nested compounds explicitly via \ingroup. -# The default value is: NO. - -GROUP_NESTED_COMPOUNDS = NO - -# Set the SUBGROUPING tag to YES to allow class member groups of the same type -# (for instance a group of public functions) to be put as a subgroup of that -# type (e.g. under the Public Functions section). Set it to NO to prevent -# subgrouping. Alternatively, this can be done per class using the -# \nosubgrouping command. -# The default value is: YES. - -SUBGROUPING = YES - -# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions -# are shown inside the group in which they are included (e.g. using \ingroup) -# instead of on a separate page (for HTML and Man pages) or section (for LaTeX -# and RTF). -# -# Note that this feature does not work in combination with -# SEPARATE_MEMBER_PAGES. -# The default value is: NO. - -INLINE_GROUPED_CLASSES = NO - -# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions -# with only public data fields or simple typedef fields will be shown inline in -# the documentation of the scope in which they are defined (i.e. file, -# namespace, or group documentation), provided this scope is documented. If set -# to NO, structs, classes, and unions are shown on a separate page (for HTML and -# Man pages) or section (for LaTeX and RTF). -# The default value is: NO. - -INLINE_SIMPLE_STRUCTS = NO - -# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or -# enum is documented as struct, union, or enum with the name of the typedef. So -# typedef struct TypeS {} TypeT, will appear in the documentation as a struct -# with name TypeT. When disabled the typedef will appear as a member of a file, -# namespace, or class. And the struct will be named TypeS. This can typically be -# useful for C code in case the coding convention dictates that all compound -# types are typedef'ed and only the typedef is referenced, never the tag name. -# The default value is: NO. - -TYPEDEF_HIDES_STRUCT = NO - -# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This -# cache is used to resolve symbols given their name and scope. Since this can be -# an expensive process and often the same symbol appears multiple times in the -# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small -# doxygen will become slower. If the cache is too large, memory is wasted. The -# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range -# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 -# symbols. At the end of a run doxygen will report the cache usage and suggest -# the optimal cache size from a speed point of view. -# Minimum value: 0, maximum value: 9, default value: 0. - -LOOKUP_CACHE_SIZE = 0 - -#--------------------------------------------------------------------------- -# Build related configuration options -#--------------------------------------------------------------------------- - -# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in -# documentation are documented, even if no documentation was available. Private -# class members and static file members will be hidden unless the -# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. -# Note: This will also disable the warnings about undocumented members that are -# normally produced when WARNINGS is set to YES. -# The default value is: NO. - -EXTRACT_ALL = NO - -# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will -# be included in the documentation. -# The default value is: NO. - -EXTRACT_PRIVATE = NO - -# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal -# scope will be included in the documentation. -# The default value is: NO. - -EXTRACT_PACKAGE = NO - -# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be -# included in the documentation. -# The default value is: NO. - -EXTRACT_STATIC = NO - -# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined -# locally in source files will be included in the documentation. If set to NO, -# only classes defined in header files are included. Does not have any effect -# for Java sources. -# The default value is: YES. - -EXTRACT_LOCAL_CLASSES = YES - -# This flag is only useful for Objective-C code. If set to YES, local methods, -# which are defined in the implementation section but not in the interface are -# included in the documentation. If set to NO, only methods in the interface are -# included. -# The default value is: NO. - -EXTRACT_LOCAL_METHODS = NO - -# If this flag is set to YES, the members of anonymous namespaces will be -# extracted and appear in the documentation as a namespace called -# 'anonymous_namespace{file}', where file will be replaced with the base name of -# the file that contains the anonymous namespace. By default anonymous namespace -# are hidden. -# The default value is: NO. - -EXTRACT_ANON_NSPACES = NO - -# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all -# undocumented members inside documented classes or files. If set to NO these -# members will be included in the various overviews, but no documentation -# section is generated. This option has no effect if EXTRACT_ALL is enabled. -# The default value is: NO. - -HIDE_UNDOC_MEMBERS = NO - -# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all -# undocumented classes that are normally visible in the class hierarchy. If set -# to NO, these classes will be included in the various overviews. This option -# has no effect if EXTRACT_ALL is enabled. -# The default value is: NO. - -HIDE_UNDOC_CLASSES = NO - -# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend -# (class|struct|union) declarations. If set to NO, these declarations will be -# included in the documentation. -# The default value is: NO. - -HIDE_FRIEND_COMPOUNDS = NO - -# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any -# documentation blocks found inside the body of a function. If set to NO, these -# blocks will be appended to the function's detailed documentation block. -# The default value is: NO. - -HIDE_IN_BODY_DOCS = NO - -# The INTERNAL_DOCS tag determines if documentation that is typed after a -# \internal command is included. If the tag is set to NO then the documentation -# will be excluded. Set it to YES to include the internal documentation. -# The default value is: NO. - -INTERNAL_DOCS = NO - -# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file -# names in lower-case letters. If set to YES, upper-case letters are also -# allowed. This is useful if you have classes or files whose names only differ -# in case and if your file system supports case sensitive file names. Windows -# and Mac users are advised to set this option to NO. -# The default value is: system dependent. - -CASE_SENSE_NAMES = NO - -# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with -# their full class and namespace scopes in the documentation. If set to YES, the -# scope will be hidden. -# The default value is: NO. - -HIDE_SCOPE_NAMES = NO - -# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will -# append additional text to a page's title, such as Class Reference. If set to -# YES the compound reference will be hidden. -# The default value is: NO. - -HIDE_COMPOUND_REFERENCE= NO - -# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of -# the files that are included by a file in the documentation of that file. -# The default value is: YES. - -SHOW_INCLUDE_FILES = YES - -# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each -# grouped member an include statement to the documentation, telling the reader -# which file to include in order to use the member. -# The default value is: NO. - -SHOW_GROUPED_MEMB_INC = NO - -# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include -# files with double quotes in the documentation rather than with sharp brackets. -# The default value is: NO. - -FORCE_LOCAL_INCLUDES = NO - -# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the -# documentation for inline members. -# The default value is: YES. - -INLINE_INFO = YES - -# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the -# (detailed) documentation of file and class members alphabetically by member -# name. If set to NO, the members will appear in declaration order. -# The default value is: YES. - -SORT_MEMBER_DOCS = YES - -# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief -# descriptions of file, namespace and class members alphabetically by member -# name. If set to NO, the members will appear in declaration order. Note that -# this will also influence the order of the classes in the class list. -# The default value is: NO. - -SORT_BRIEF_DOCS = NO - -# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the -# (brief and detailed) documentation of class members so that constructors and -# destructors are listed first. If set to NO the constructors will appear in the -# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. -# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief -# member documentation. -# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting -# detailed member documentation. -# The default value is: NO. - -SORT_MEMBERS_CTORS_1ST = NO - -# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy -# of group names into alphabetical order. If set to NO the group names will -# appear in their defined order. -# The default value is: NO. - -SORT_GROUP_NAMES = NO - -# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by -# fully-qualified names, including namespaces. If set to NO, the class list will -# be sorted only by class name, not including the namespace part. -# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. -# Note: This option applies only to the class list, not to the alphabetical -# list. -# The default value is: NO. - -SORT_BY_SCOPE_NAME = NO - -# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper -# type resolution of all parameters of a function it will reject a match between -# the prototype and the implementation of a member function even if there is -# only one candidate or it is obvious which candidate to choose by doing a -# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still -# accept a match between prototype and implementation in such cases. -# The default value is: NO. - -STRICT_PROTO_MATCHING = NO - -# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo -# list. This list is created by putting \todo commands in the documentation. -# The default value is: YES. - -GENERATE_TODOLIST = YES - -# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test -# list. This list is created by putting \test commands in the documentation. -# The default value is: YES. - -GENERATE_TESTLIST = YES - -# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug -# list. This list is created by putting \bug commands in the documentation. -# The default value is: YES. - -GENERATE_BUGLIST = YES - -# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO) -# the deprecated list. This list is created by putting \deprecated commands in -# the documentation. -# The default value is: YES. - -GENERATE_DEPRECATEDLIST= YES - -# The ENABLED_SECTIONS tag can be used to enable conditional documentation -# sections, marked by \if ... \endif and \cond -# ... \endcond blocks. - -ENABLED_SECTIONS = - -# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the -# initial value of a variable or macro / define can have for it to appear in the -# documentation. If the initializer consists of more lines than specified here -# it will be hidden. Use a value of 0 to hide initializers completely. The -# appearance of the value of individual variables and macros / defines can be -# controlled using \showinitializer or \hideinitializer command in the -# documentation regardless of this setting. -# Minimum value: 0, maximum value: 10000, default value: 30. - -MAX_INITIALIZER_LINES = 30 - -# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at -# the bottom of the documentation of classes and structs. If set to YES, the -# list will mention the files that were used to generate the documentation. -# The default value is: YES. - -SHOW_USED_FILES = YES - -# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This -# will remove the Files entry from the Quick Index and from the Folder Tree View -# (if specified). -# The default value is: YES. - -SHOW_FILES = YES - -# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces -# page. This will remove the Namespaces entry from the Quick Index and from the -# Folder Tree View (if specified). -# The default value is: YES. - -SHOW_NAMESPACES = YES - -# The FILE_VERSION_FILTER tag can be used to specify a program or script that -# doxygen should invoke to get the current version for each file (typically from -# the version control system). Doxygen will invoke the program by executing (via -# popen()) the command command input-file, where command is the value of the -# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided -# by doxygen. Whatever the program writes to standard output is used as the file -# version. For an example see the documentation. - -FILE_VERSION_FILTER = - -# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed -# by doxygen. The layout file controls the global structure of the generated -# output files in an output format independent way. To create the layout file -# that represents doxygen's defaults, run doxygen with the -l option. You can -# optionally specify a file name after the option, if omitted DoxygenLayout.xml -# will be used as the name of the layout file. -# -# Note that if you run doxygen from a directory containing a file called -# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE -# tag is left empty. - -LAYOUT_FILE = - -# The CITE_BIB_FILES tag can be used to specify one or more bib files containing -# the reference definitions. This must be a list of .bib files. The .bib -# extension is automatically appended if omitted. This requires the bibtex tool -# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info. -# For LaTeX the style of the bibliography can be controlled using -# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the -# search path. See also \cite for info how to create references. - -CITE_BIB_FILES = - -#--------------------------------------------------------------------------- -# Configuration options related to warning and progress messages -#--------------------------------------------------------------------------- - -# The QUIET tag can be used to turn on/off the messages that are generated to -# standard output by doxygen. If QUIET is set to YES this implies that the -# messages are off. -# The default value is: NO. - -QUIET = NO - -# The WARNINGS tag can be used to turn on/off the warning messages that are -# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES -# this implies that the warnings are on. -# -# Tip: Turn warnings on while writing the documentation. -# The default value is: YES. - -WARNINGS = YES - -# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate -# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag -# will automatically be disabled. -# The default value is: YES. - -WARN_IF_UNDOCUMENTED = YES - -# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for -# potential errors in the documentation, such as not documenting some parameters -# in a documented function, or documenting parameters that don't exist or using -# markup commands wrongly. -# The default value is: YES. - -WARN_IF_DOC_ERROR = YES - -# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that -# are documented, but have no documentation for their parameters or return -# value. If set to NO, doxygen will only warn about wrong or incomplete -# parameter documentation, but not about the absence of documentation. -# The default value is: NO. - -WARN_NO_PARAMDOC = NO - -# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when -# a warning is encountered. -# The default value is: NO. - -WARN_AS_ERROR = NO - -# The WARN_FORMAT tag determines the format of the warning messages that doxygen -# can produce. The string should contain the $file, $line, and $text tags, which -# will be replaced by the file and line number from which the warning originated -# and the warning text. Optionally the format may contain $version, which will -# be replaced by the version of the file (if it could be obtained via -# FILE_VERSION_FILTER) -# The default value is: $file:$line: $text. - -WARN_FORMAT = "$file:$line: $text" - -# The WARN_LOGFILE tag can be used to specify a file to which warning and error -# messages should be written. If left blank the output is written to standard -# error (stderr). - -WARN_LOGFILE = - -#--------------------------------------------------------------------------- -# Configuration options related to the input files -#--------------------------------------------------------------------------- - -# The INPUT tag is used to specify the files and/or directories that contain -# documented source files. You may enter file names like myfile.cpp or -# directories like /usr/src/myproject. Separate the files or directories with -# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING -# Note: If this tag is empty the current directory is searched. - -INPUT = td/generate/auto/td/telegram/td_api.h td/generate/auto/td/telegram/td_api.hpp td/tl/TlObject.h td/telegram/Client.h td/telegram/ClientActor.h td/telegram/Log.h td/telegram/TdCallback.h td/telegram/td_json_client.h td/telegram/td_log.h ./README.md - -# This tag can be used to specify the character encoding of the source files -# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses -# libiconv (or the iconv built into libc) for the transcoding. See the libiconv -# documentation (see: http://www.gnu.org/software/libiconv) for the list of -# possible encodings. -# The default value is: UTF-8. - -INPUT_ENCODING = UTF-8 - -# If the value of the INPUT tag contains directories, you can use the -# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and -# *.h) to filter out the source-files in the directories. -# -# Note that for custom extensions or not directly supported extensions you also -# need to set EXTENSION_MAPPING for the extension otherwise the files are not -# read by doxygen. -# -# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp, -# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, -# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, -# *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, -# *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf and *.qsf. - -FILE_PATTERNS = *.c \ - *.cc \ - *.cxx \ - *.cpp \ - *.c++ \ - *.java \ - *.ii \ - *.ixx \ - *.ipp \ - *.i++ \ - *.inl \ - *.idl \ - *.ddl \ - *.odl \ - *.h \ - *.hh \ - *.hxx \ - *.hpp \ - *.h++ \ - *.cs \ - *.d \ - *.php \ - *.php4 \ - *.php5 \ - *.phtml \ - *.inc \ - *.m \ - *.markdown \ - *.md \ - *.mm \ - *.dox \ - *.py \ - *.pyw \ - *.f90 \ - *.f95 \ - *.f03 \ - *.f08 \ - *.f \ - *.for \ - *.tcl \ - *.vhd \ - *.vhdl \ - *.ucf \ - *.qsf - -# The RECURSIVE tag can be used to specify whether or not subdirectories should -# be searched for input files as well. -# The default value is: NO. - -RECURSIVE = NO - -# The EXCLUDE tag can be used to specify files and/or directories that should be -# excluded from the INPUT source files. This way you can easily exclude a -# subdirectory from a directory tree whose root is specified with the INPUT tag. -# -# Note that relative paths are relative to the directory from which doxygen is -# run. - -EXCLUDE = - -# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or -# directories that are symbolic links (a Unix file system feature) are excluded -# from the input. -# The default value is: NO. - -EXCLUDE_SYMLINKS = NO - -# If the value of the INPUT tag contains directories, you can use the -# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude -# certain files from those directories. -# -# Note that the wildcards are matched against the file with absolute path, so to -# exclude all test directories for example use the pattern */test/* - -EXCLUDE_PATTERNS = - -# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names -# (namespaces, classes, functions, etc.) that should be excluded from the -# output. The symbol name can be a fully qualified name, a word, or if the -# wildcard * is used, a substring. Examples: ANamespace, AClass, -# AClass::ANamespace, ANamespace::*Test -# -# Note that the wildcards are matched against the file with absolute path, so to -# exclude all test directories use the pattern */test/* - -EXCLUDE_SYMBOLS = - -# The EXAMPLE_PATH tag can be used to specify one or more files or directories -# that contain example code fragments that are included (see the \include -# command). - -EXAMPLE_PATH = - -# If the value of the EXAMPLE_PATH tag contains directories, you can use the -# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and -# *.h) to filter out the source-files in the directories. If left blank all -# files are included. - -EXAMPLE_PATTERNS = * - -# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be -# searched for input files to be used with the \include or \dontinclude commands -# irrespective of the value of the RECURSIVE tag. -# The default value is: NO. - -EXAMPLE_RECURSIVE = NO - -# The IMAGE_PATH tag can be used to specify one or more files or directories -# that contain images that are to be included in the documentation (see the -# \image command). - -IMAGE_PATH = - -# The INPUT_FILTER tag can be used to specify a program that doxygen should -# invoke to filter for each input file. Doxygen will invoke the filter program -# by executing (via popen()) the command: -# -# -# -# where is the value of the INPUT_FILTER tag, and is the -# name of an input file. Doxygen will then use the output that the filter -# program writes to standard output. If FILTER_PATTERNS is specified, this tag -# will be ignored. -# -# Note that the filter must not add or remove lines; it is applied before the -# code is scanned, but not when the output code is generated. If lines are added -# or removed, the anchors will not be placed correctly. -# -# Note that for custom extensions or not directly supported extensions you also -# need to set EXTENSION_MAPPING for the extension otherwise the files are not -# properly processed by doxygen. - -INPUT_FILTER = - -# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern -# basis. Doxygen will compare the file name with each pattern and apply the -# filter if there is a match. The filters are a list of the form: pattern=filter -# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how -# filters are used. If the FILTER_PATTERNS tag is empty or if none of the -# patterns match the file name, INPUT_FILTER is applied. -# -# Note that for custom extensions or not directly supported extensions you also -# need to set EXTENSION_MAPPING for the extension otherwise the files are not -# properly processed by doxygen. - -FILTER_PATTERNS = - -# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using -# INPUT_FILTER) will also be used to filter the input files that are used for -# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). -# The default value is: NO. - -FILTER_SOURCE_FILES = NO - -# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file -# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and -# it is also possible to disable source filtering for a specific pattern using -# *.ext= (so without naming a filter). -# This tag requires that the tag FILTER_SOURCE_FILES is set to YES. - -FILTER_SOURCE_PATTERNS = - -# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that -# is part of the input, its contents will be placed on the main page -# (index.html). This can be useful if you have a project on for instance GitHub -# and want to reuse the introduction page also for the doxygen output. - -USE_MDFILE_AS_MAINPAGE = ./README.md - -#--------------------------------------------------------------------------- -# Configuration options related to source browsing -#--------------------------------------------------------------------------- - -# If the SOURCE_BROWSER tag is set to YES then a list of source files will be -# generated. Documented entities will be cross-referenced with these sources. -# -# Note: To get rid of all source code in the generated output, make sure that -# also VERBATIM_HEADERS is set to NO. -# The default value is: NO. - -SOURCE_BROWSER = NO - -# Setting the INLINE_SOURCES tag to YES will include the body of functions, -# classes and enums directly into the documentation. -# The default value is: NO. - -INLINE_SOURCES = NO - -# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any -# special comment blocks from generated source code fragments. Normal C, C++ and -# Fortran comments will always remain visible. -# The default value is: YES. - -STRIP_CODE_COMMENTS = YES - -# If the REFERENCED_BY_RELATION tag is set to YES then for each documented -# function all documented functions referencing it will be listed. -# The default value is: NO. - -REFERENCED_BY_RELATION = NO - -# If the REFERENCES_RELATION tag is set to YES then for each documented function -# all documented entities called/used by that function will be listed. -# The default value is: NO. - -REFERENCES_RELATION = NO - -# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set -# to YES then the hyperlinks from functions in REFERENCES_RELATION and -# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will -# link to the documentation. -# The default value is: YES. - -REFERENCES_LINK_SOURCE = YES - -# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the -# source code will show a tooltip with additional information such as prototype, -# brief description and links to the definition and documentation. Since this -# will make the HTML file larger and loading of large files a bit slower, you -# can opt to disable this feature. -# The default value is: YES. -# This tag requires that the tag SOURCE_BROWSER is set to YES. - -SOURCE_TOOLTIPS = YES - -# If the USE_HTAGS tag is set to YES then the references to source code will -# point to the HTML generated by the htags(1) tool instead of doxygen built-in -# source browser. The htags tool is part of GNU's global source tagging system -# (see http://www.gnu.org/software/global/global.html). You will need version -# 4.8.6 or higher. -# -# To use it do the following: -# - Install the latest version of global -# - Enable SOURCE_BROWSER and USE_HTAGS in the config file -# - Make sure the INPUT points to the root of the source tree -# - Run doxygen as normal -# -# Doxygen will invoke htags (and that will in turn invoke gtags), so these -# tools must be available from the command line (i.e. in the search path). -# -# The result: instead of the source browser generated by doxygen, the links to -# source code will now point to the output of htags. -# The default value is: NO. -# This tag requires that the tag SOURCE_BROWSER is set to YES. - -USE_HTAGS = NO - -# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a -# verbatim copy of the header file for each class for which an include is -# specified. Set to NO to disable this. -# See also: Section \class. -# The default value is: YES. - -VERBATIM_HEADERS = YES - -#--------------------------------------------------------------------------- -# Configuration options related to the alphabetical class index -#--------------------------------------------------------------------------- - -# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all -# compounds will be generated. Enable this if the project contains a lot of -# classes, structs, unions or interfaces. -# The default value is: YES. - -ALPHABETICAL_INDEX = YES - -# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in -# which the alphabetical index list will be split. -# Minimum value: 1, maximum value: 20, default value: 5. -# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. - -COLS_IN_ALPHA_INDEX = 5 - -# In case all classes in a project start with a common prefix, all classes will -# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag -# can be used to specify a prefix (or a list of prefixes) that should be ignored -# while generating the index headers. -# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. - -IGNORE_PREFIX = - -#--------------------------------------------------------------------------- -# Configuration options related to the HTML output -#--------------------------------------------------------------------------- - -# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output -# The default value is: YES. - -GENERATE_HTML = YES - -# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a -# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of -# it. -# The default directory is: html. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_OUTPUT = html - -# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each -# generated HTML page (for example: .htm, .php, .asp). -# The default value is: .html. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_FILE_EXTENSION = .html - -# The HTML_HEADER tag can be used to specify a user-defined HTML header file for -# each generated HTML page. If the tag is left blank doxygen will generate a -# standard header. -# -# To get valid HTML the header file that includes any scripts and style sheets -# that doxygen needs, which is dependent on the configuration options used (e.g. -# the setting GENERATE_TREEVIEW). It is highly recommended to start with a -# default header using -# doxygen -w html new_header.html new_footer.html new_stylesheet.css -# YourConfigFile -# and then modify the file new_header.html. See also section "Doxygen usage" -# for information on how to generate the default header that doxygen normally -# uses. -# Note: The header is subject to change so you typically have to regenerate the -# default header when upgrading to a newer version of doxygen. For a description -# of the possible markers and block names see the documentation. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_HEADER = - -# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each -# generated HTML page. If the tag is left blank doxygen will generate a standard -# footer. See HTML_HEADER for more information on how to generate a default -# footer and what special commands can be used inside the footer. See also -# section "Doxygen usage" for information on how to generate the default footer -# that doxygen normally uses. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_FOOTER = - -# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style -# sheet that is used by each HTML page. It can be used to fine-tune the look of -# the HTML output. If left blank doxygen will generate a default style sheet. -# See also section "Doxygen usage" for information on how to generate the style -# sheet that doxygen normally uses. -# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as -# it is more robust and this tag (HTML_STYLESHEET) will in the future become -# obsolete. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_STYLESHEET = - -# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined -# cascading style sheets that are included after the standard style sheets -# created by doxygen. Using this option one can overrule certain style aspects. -# This is preferred over using HTML_STYLESHEET since it does not replace the -# standard style sheet and is therefore more robust against future updates. -# Doxygen will copy the style sheet files to the output directory. -# Note: The order of the extra style sheet files is of importance (e.g. the last -# style sheet in the list overrules the setting of the previous ones in the -# list). For an example see the documentation. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_EXTRA_STYLESHEET = - -# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or -# other source files which should be copied to the HTML output directory. Note -# that these files will be copied to the base HTML output directory. Use the -# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these -# files. In the HTML_STYLESHEET file, use the file name only. Also note that the -# files will be copied as-is; there are no commands or markers available. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_EXTRA_FILES = - -# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen -# will adjust the colors in the style sheet and background images according to -# this color. Hue is specified as an angle on a colorwheel, see -# http://en.wikipedia.org/wiki/Hue for more information. For instance the value -# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 -# purple, and 360 is red again. -# Minimum value: 0, maximum value: 359, default value: 220. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_COLORSTYLE_HUE = 220 - -# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors -# in the HTML output. For a value of 0 the output will use grayscales only. A -# value of 255 will produce the most vivid colors. -# Minimum value: 0, maximum value: 255, default value: 100. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_COLORSTYLE_SAT = 100 - -# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the -# luminance component of the colors in the HTML output. Values below 100 -# gradually make the output lighter, whereas values above 100 make the output -# darker. The value divided by 100 is the actual gamma applied, so 80 represents -# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not -# change the gamma. -# Minimum value: 40, maximum value: 240, default value: 80. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_COLORSTYLE_GAMMA = 80 - -# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML -# page will contain the date and time when the page was generated. Setting this -# to YES can help to show when doxygen was last run and thus if the -# documentation is up to date. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_TIMESTAMP = NO - -# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML -# documentation will contain sections that can be hidden and shown after the -# page has loaded. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_DYNAMIC_SECTIONS = NO - -# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries -# shown in the various tree structured indices initially; the user can expand -# and collapse entries dynamically later on. Doxygen will expand the tree to -# such a level that at most the specified number of entries are visible (unless -# a fully collapsed tree already exceeds this amount). So setting the number of -# entries 1 will produce a full collapsed tree by default. 0 is a special value -# representing an infinite number of entries and will result in a full expanded -# tree by default. -# Minimum value: 0, maximum value: 9999, default value: 100. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_INDEX_NUM_ENTRIES = 100 - -# If the GENERATE_DOCSET tag is set to YES, additional index files will be -# generated that can be used as input for Apple's Xcode 3 integrated development -# environment (see: http://developer.apple.com/tools/xcode/), introduced with -# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a -# Makefile in the HTML output directory. Running make will produce the docset in -# that directory and running make install will install the docset in -# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at -# startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html -# for more information. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_DOCSET = NO - -# This tag determines the name of the docset feed. A documentation feed provides -# an umbrella under which multiple documentation sets from a single provider -# (such as a company or product suite) can be grouped. -# The default value is: Doxygen generated docs. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_FEEDNAME = "Doxygen generated docs" - -# This tag specifies a string that should uniquely identify the documentation -# set bundle. This should be a reverse domain-name style string, e.g. -# com.mycompany.MyDocSet. Doxygen will append .docset to the name. -# The default value is: org.doxygen.Project. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_BUNDLE_ID = org.doxygen.Project - -# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify -# the documentation publisher. This should be a reverse domain-name style -# string, e.g. com.mycompany.MyDocSet.documentation. -# The default value is: org.doxygen.Publisher. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_PUBLISHER_ID = org.doxygen.Publisher - -# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. -# The default value is: Publisher. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_PUBLISHER_NAME = Publisher - -# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three -# additional HTML index files: index.hhp, index.hhc, and index.hhk. The -# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop -# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on -# Windows. -# -# The HTML Help Workshop contains a compiler that can convert all HTML output -# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML -# files are now used as the Windows 98 help format, and will replace the old -# Windows help format (.hlp) on all Windows platforms in the future. Compressed -# HTML files also contain an index, a table of contents, and you can search for -# words in the documentation. The HTML workshop also contains a viewer for -# compressed HTML files. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_HTMLHELP = NO - -# The CHM_FILE tag can be used to specify the file name of the resulting .chm -# file. You can add a path in front of the file if the result should not be -# written to the html output directory. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -CHM_FILE = - -# The HHC_LOCATION tag can be used to specify the location (absolute path -# including file name) of the HTML help compiler (hhc.exe). If non-empty, -# doxygen will try to run the HTML help compiler on the generated index.hhp. -# The file has to be specified with full path. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -HHC_LOCATION = - -# The GENERATE_CHI flag controls if a separate .chi index file is generated -# (YES) or that it should be included in the master .chm file (NO). -# The default value is: NO. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -GENERATE_CHI = NO - -# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc) -# and project file content. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -CHM_INDEX_ENCODING = - -# The BINARY_TOC flag controls whether a binary table of contents is generated -# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it -# enables the Previous and Next buttons. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -BINARY_TOC = NO - -# The TOC_EXPAND flag can be set to YES to add extra items for group members to -# the table of contents of the HTML help documentation and to the tree view. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -TOC_EXPAND = NO - -# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and -# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that -# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help -# (.qch) of the generated HTML documentation. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_QHP = NO - -# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify -# the file name of the resulting .qch file. The path specified is relative to -# the HTML output folder. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QCH_FILE = - -# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help -# Project output. For more information please see Qt Help Project / Namespace -# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace). -# The default value is: org.doxygen.Project. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_NAMESPACE = org.doxygen.Project - -# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt -# Help Project output. For more information please see Qt Help Project / Virtual -# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual- -# folders). -# The default value is: doc. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_VIRTUAL_FOLDER = doc - -# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom -# filter to add. For more information please see Qt Help Project / Custom -# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- -# filters). -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_CUST_FILTER_NAME = - -# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the -# custom filter to add. For more information please see Qt Help Project / Custom -# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- -# filters). -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_CUST_FILTER_ATTRS = - -# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this -# project's filter section matches. Qt Help Project / Filter Attributes (see: -# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes). -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_SECT_FILTER_ATTRS = - -# The QHG_LOCATION tag can be used to specify the location of Qt's -# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the -# generated .qhp file. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHG_LOCATION = - -# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be -# generated, together with the HTML files, they form an Eclipse help plugin. To -# install this plugin and make it available under the help contents menu in -# Eclipse, the contents of the directory containing the HTML and XML files needs -# to be copied into the plugins directory of eclipse. The name of the directory -# within the plugins directory should be the same as the ECLIPSE_DOC_ID value. -# After copying Eclipse needs to be restarted before the help appears. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_ECLIPSEHELP = NO - -# A unique identifier for the Eclipse help plugin. When installing the plugin -# the directory name containing the HTML and XML files should also have this -# name. Each documentation set should have its own identifier. -# The default value is: org.doxygen.Project. -# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES. - -ECLIPSE_DOC_ID = org.doxygen.Project - -# If you want full control over the layout of the generated HTML pages it might -# be necessary to disable the index and replace it with your own. The -# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top -# of each HTML page. A value of NO enables the index and the value YES disables -# it. Since the tabs in the index contain the same information as the navigation -# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -DISABLE_INDEX = NO - -# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index -# structure should be generated to display hierarchical information. If the tag -# value is set to YES, a side panel will be generated containing a tree-like -# index structure (just like the one that is generated for HTML Help). For this -# to work a browser that supports JavaScript, DHTML, CSS and frames is required -# (i.e. any modern browser). Windows users are probably better off using the -# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can -# further fine-tune the look of the index. As an example, the default style -# sheet generated by doxygen has an example that shows how to put an image at -# the root of the tree instead of the PROJECT_NAME. Since the tree basically has -# the same information as the tab index, you could consider setting -# DISABLE_INDEX to YES when enabling this option. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_TREEVIEW = NO - -# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that -# doxygen will group on one line in the generated HTML documentation. -# -# Note that a value of 0 will completely suppress the enum values from appearing -# in the overview section. -# Minimum value: 0, maximum value: 20, default value: 4. -# This tag requires that the tag GENERATE_HTML is set to YES. - -ENUM_VALUES_PER_LINE = 4 - -# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used -# to set the initial width (in pixels) of the frame in which the tree is shown. -# Minimum value: 0, maximum value: 1500, default value: 250. -# This tag requires that the tag GENERATE_HTML is set to YES. - -TREEVIEW_WIDTH = 250 - -# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to -# external symbols imported via tag files in a separate window. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -EXT_LINKS_IN_WINDOW = NO - -# Use this tag to change the font size of LaTeX formulas included as images in -# the HTML documentation. When you change the font size after a successful -# doxygen run you need to manually remove any form_*.png images from the HTML -# output directory to force them to be regenerated. -# Minimum value: 8, maximum value: 50, default value: 10. -# This tag requires that the tag GENERATE_HTML is set to YES. - -FORMULA_FONTSIZE = 10 - -# Use the FORMULA_TRANPARENT tag to determine whether or not the images -# generated for formulas are transparent PNGs. Transparent PNGs are not -# supported properly for IE 6.0, but are supported on all modern browsers. -# -# Note that when changing this option you need to delete any form_*.png files in -# the HTML output directory before the changes have effect. -# The default value is: YES. -# This tag requires that the tag GENERATE_HTML is set to YES. - -FORMULA_TRANSPARENT = YES - -# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see -# http://www.mathjax.org) which uses client side Javascript for the rendering -# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX -# installed or if you want to formulas look prettier in the HTML output. When -# enabled you may also need to install MathJax separately and configure the path -# to it using the MATHJAX_RELPATH option. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -USE_MATHJAX = NO - -# When MathJax is enabled you can set the default output format to be used for -# the MathJax output. See the MathJax site (see: -# http://docs.mathjax.org/en/latest/output.html) for more details. -# Possible values are: HTML-CSS (which is slower, but has the best -# compatibility), NativeMML (i.e. MathML) and SVG. -# The default value is: HTML-CSS. -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_FORMAT = HTML-CSS - -# When MathJax is enabled you need to specify the location relative to the HTML -# output directory using the MATHJAX_RELPATH option. The destination directory -# should contain the MathJax.js script. For instance, if the mathjax directory -# is located at the same level as the HTML output directory, then -# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax -# Content Delivery Network so you can quickly see the result without installing -# MathJax. However, it is strongly recommended to install a local copy of -# MathJax from http://www.mathjax.org before deployment. -# The default value is: http://cdn.mathjax.org/mathjax/latest. -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest - -# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax -# extension names that should be enabled during MathJax rendering. For example -# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_EXTENSIONS = - -# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces -# of code that will be used on startup of the MathJax code. See the MathJax site -# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an -# example see the documentation. -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_CODEFILE = - -# When the SEARCHENGINE tag is enabled doxygen will generate a search box for -# the HTML output. The underlying search engine uses javascript and DHTML and -# should work on any modern browser. Note that when using HTML help -# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) -# there is already a search function so this one should typically be disabled. -# For large projects the javascript based search engine can be slow, then -# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to -# search using the keyboard; to jump to the search box use + S -# (what the is depends on the OS and browser, but it is typically -# , /